1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef SP804_DELAY_TIMER_H 8*91f16700Schasinglulu #define SP804_DELAY_TIMER_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu #include <stdint.h> 11*91f16700Schasinglulu 12*91f16700Schasinglulu #include <drivers/delay_timer.h> 13*91f16700Schasinglulu 14*91f16700Schasinglulu uint32_t sp804_get_timer_value(void); 15*91f16700Schasinglulu 16*91f16700Schasinglulu void sp804_timer_ops_init(uintptr_t base_addr, const timer_ops_t *ops); 17*91f16700Schasinglulu 18*91f16700Schasinglulu #define sp804_timer_init(base_addr, clk_mult, clk_div) \ 19*91f16700Schasinglulu do { \ 20*91f16700Schasinglulu static const timer_ops_t sp804_timer_ops = { \ 21*91f16700Schasinglulu sp804_get_timer_value, \ 22*91f16700Schasinglulu (clk_mult), \ 23*91f16700Schasinglulu (clk_div) \ 24*91f16700Schasinglulu }; \ 25*91f16700Schasinglulu sp804_timer_ops_init((base_addr), &sp804_timer_ops); \ 26*91f16700Schasinglulu } while (0) 27*91f16700Schasinglulu 28*91f16700Schasinglulu #endif /* SP804_DELAY_TIMER_H */ 29