1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
2c4b45009SScott Branden /*
3c4b45009SScott Branden  * Copyright 2014 Broadcom Corporation.
4c4b45009SScott Branden  */
5c4b45009SScott Branden 
6c4b45009SScott Branden #ifndef __TIMER_H
7c4b45009SScott Branden #define __TIMER_H
8c4b45009SScott Branden 
9c4b45009SScott Branden #include <linux/types.h>
10c4b45009SScott Branden 
11c4b45009SScott Branden void timer_systick_init(uint32_t tick_ms);
12c4b45009SScott Branden void timer_global_init(void);
13c4b45009SScott Branden 
14c4b45009SScott Branden /* ARM A9 Private Timer */
15c4b45009SScott Branden #define TIMER_PVT_LOAD_OFFSET			0x00000000
16c4b45009SScott Branden #define TIMER_PVT_COUNTER_OFFSET		0x00000004
17c4b45009SScott Branden #define TIMER_PVT_CTRL_OFFSET			0x00000008
18c4b45009SScott Branden #define TIMER_PVT_STATUS_OFFSET			0x0000000C
19c4b45009SScott Branden #define TIMER_PVT_TIM_CTRL_TIM_EN		0x00000001
20c4b45009SScott Branden #define TIMER_PVT_TIM_CTRL_AUTO_RELD		0x00000002
21c4b45009SScott Branden #define TIMER_PVT_TIM_CTRL_INT_EN		0x00000004
22c4b45009SScott Branden #define TIMER_PVT_TIM_CTRL_PRESC_MASK		0x0000FF00
23c4b45009SScott Branden #define TIMER_PVT_TIM_INT_STATUS_SET		0x00000001
24c4b45009SScott Branden 
25c4b45009SScott Branden /* Global timer */
26c4b45009SScott Branden #define TIMER_GLB_LOW_OFFSET			0x00000000
27c4b45009SScott Branden #define TIMER_GLB_HI_OFFSET			0x00000004
28c4b45009SScott Branden #define TIMER_GLB_CTRL_OFFSET			0x00000008
29c4b45009SScott Branden #define TIMER_GLB_TIM_CTRL_TIM_EN		0x00000001
30c4b45009SScott Branden #define TIMER_GLB_TIM_CTRL_COMP_EN		0x00000002
31c4b45009SScott Branden #define TIMER_GLB_TIM_CTRL_INT_EN		0x00000004
32c4b45009SScott Branden #define TIMER_GLB_TIM_CTRL_AUTO_INC		0x00000008
33c4b45009SScott Branden #define TIMER_GLB_TIM_CTRL_PRESC_MASK		0x0000FF00
34c4b45009SScott Branden #define TIMER_GLB_TIM_INT_STATUS_SET		0x00000001
35c4b45009SScott Branden 
36c4b45009SScott Branden #endif /*__TIMER_H */
37