blob: 3bd2b0e2454d6de3a3410cbfc0bc4275b2d8ff55 [file] [log] [blame]
Varun Wadekarbc74fec2015-07-16 15:47:03 +05301/*
Anthony Zhouee4be0f2017-04-27 22:00:54 +08002 * Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved.
Varun Wadekarbc74fec2015-07-16 15:47:03 +05303 *
dp-armfa3cf0b2017-05-03 09:38:09 +01004 * SPDX-License-Identifier: BSD-3-Clause
Varun Wadekarbc74fec2015-07-16 15:47:03 +05305 */
6
7#include <delay_timer.h>
8#include <mmio.h>
9#include <tegra_def.h>
Anthony Zhouee4be0f2017-04-27 22:00:54 +080010#include <tegra_private.h>
Varun Wadekarbc74fec2015-07-16 15:47:03 +053011
12static uint32_t tegra_timerus_get_value(void)
13{
14 return mmio_read_32(TEGRA_TMRUS_BASE);
15}
16
Varun Wadekarbc74fec2015-07-16 15:47:03 +053017/*
18 * Initialise the on-chip free rolling us counter as the delay
19 * timer.
20 */
21void tegra_delay_timer_init(void)
22{
Anthony Zhouee4be0f2017-04-27 22:00:54 +080023 static const timer_ops_t tegra_timer_ops = {
24 .get_timer_value = tegra_timerus_get_value,
25 .clk_mult = 1,
26 .clk_div = 1,
27 };
28
Varun Wadekarbc74fec2015-07-16 15:47:03 +053029 timer_init(&tegra_timer_ops);
30}