blob: f8769e8369d1c93b275dfd80122df6f07a466533 [file] [log] [blame]
Ryan Harkin03925792015-03-17 14:52:39 +00001/*
2 * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
3 *
dp-armfa3cf0b2017-05-03 09:38:09 +01004 * SPDX-License-Identifier: BSD-3-Clause
Ryan Harkin03925792015-03-17 14:52:39 +00005 */
6
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +00007#ifndef SP804_DELAY_TIMER_H
8#define SP804_DELAY_TIMER_H
Ryan Harkin03925792015-03-17 14:52:39 +00009
Ryan Harkin03925792015-03-17 14:52:39 +000010#include <stdint.h>
11
Antonio Nino Diaze0f90632018-12-14 00:18:21 +000012#include <drivers/delay_timer.h>
Ryan Harkin03925792015-03-17 14:52:39 +000013
14uint32_t sp804_get_timer_value(void);
15
16void sp804_timer_ops_init(uintptr_t base_addr, const timer_ops_t *ops);
17
18#define sp804_timer_init(base_addr, clk_mult, clk_div) \
Sandrine Bailleuxabad7012015-09-28 16:32:38 +010019 do { \
20 static const timer_ops_t sp804_timer_ops = { \
21 sp804_get_timer_value, \
22 (clk_mult), \
23 (clk_div) \
24 }; \
25 sp804_timer_ops_init((base_addr), &sp804_timer_ops); \
26 } while (0)
Ryan Harkin03925792015-03-17 14:52:39 +000027
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000028#endif /* SP804_DELAY_TIMER_H */