xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-spear/spr_gpt.h (revision 326ea986ac150acdc7656d57fca647db80b50158)
1819833afSPeter Tyser /*
2819833afSPeter Tyser  * (C) Copyright 2009
3819833afSPeter Tyser  * Vipin Kumar, ST Micoelectronics, vipin.kumar@st.com.
4819833afSPeter Tyser  *
5*1a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
6819833afSPeter Tyser  */
7819833afSPeter Tyser 
8819833afSPeter Tyser #ifndef _SPR_GPT_H
9819833afSPeter Tyser #define _SPR_GPT_H
10819833afSPeter Tyser 
11819833afSPeter Tyser struct gpt_regs {
12819833afSPeter Tyser 	u8 reserved[0x80];
13819833afSPeter Tyser 	u32 control;
14819833afSPeter Tyser 	u32 status;
15819833afSPeter Tyser 	u32 compare;
16819833afSPeter Tyser 	u32 count;
17819833afSPeter Tyser 	u32 capture_re;
18819833afSPeter Tyser 	u32 capture_fe;
19819833afSPeter Tyser };
20819833afSPeter Tyser 
21819833afSPeter Tyser /*
22819833afSPeter Tyser  * TIMER_CONTROL register settings
23819833afSPeter Tyser  */
24819833afSPeter Tyser 
25819833afSPeter Tyser #define GPT_PRESCALER_MASK		0x000F
26819833afSPeter Tyser #define GPT_PRESCALER_1			0x0000
27819833afSPeter Tyser #define GPT_PRESCALER_2 		0x0001
28819833afSPeter Tyser #define GPT_PRESCALER_4 		0x0002
29819833afSPeter Tyser #define GPT_PRESCALER_8 		0x0003
30819833afSPeter Tyser #define GPT_PRESCALER_16		0x0004
31819833afSPeter Tyser #define GPT_PRESCALER_32		0x0005
32819833afSPeter Tyser #define GPT_PRESCALER_64		0x0006
33819833afSPeter Tyser #define GPT_PRESCALER_128		0x0007
34819833afSPeter Tyser #define GPT_PRESCALER_256		0x0008
35819833afSPeter Tyser 
36819833afSPeter Tyser #define GPT_MODE_SINGLE_SHOT		0x0010
37819833afSPeter Tyser #define GPT_MODE_AUTO_RELOAD		0x0000
38819833afSPeter Tyser 
39819833afSPeter Tyser #define GPT_ENABLE			0x0020
40819833afSPeter Tyser 
41819833afSPeter Tyser #define GPT_CAPT_MODE_MASK		0x00C0
42819833afSPeter Tyser #define GPT_CAPT_MODE_NONE		0x0000
43819833afSPeter Tyser #define GPT_CAPT_MODE_RE		0x0040
44819833afSPeter Tyser #define GPT_CAPT_MODE_FE		0x0080
45819833afSPeter Tyser #define GPT_CAPT_MODE_BOTH		0x00C0
46819833afSPeter Tyser 
47819833afSPeter Tyser #define GPT_INT_MATCH			0x0100
48819833afSPeter Tyser #define GPT_INT_FE			0x0200
49819833afSPeter Tyser #define GPT_INT_RE			0x0400
50819833afSPeter Tyser 
51819833afSPeter Tyser /*
52819833afSPeter Tyser  * TIMER_STATUS register settings
53819833afSPeter Tyser  */
54819833afSPeter Tyser 
55819833afSPeter Tyser #define GPT_STS_MATCH			0x0001
56819833afSPeter Tyser #define GPT_STS_FE			0x0002
57819833afSPeter Tyser #define GPT_STS_RE			0x0004
58819833afSPeter Tyser 
59819833afSPeter Tyser /*
60819833afSPeter Tyser  * TIMER_COMPARE register settings
61819833afSPeter Tyser  */
62819833afSPeter Tyser 
63819833afSPeter Tyser #define GPT_FREE_RUNNING		0xFFFF
64819833afSPeter Tyser 
65819833afSPeter Tyser /* Timer, HZ specific defines */
66bc0bdf4cSAmit Virdi #define CONFIG_SPEAR_HZ			1000
67bc0bdf4cSAmit Virdi #define CONFIG_SPEAR_HZ_CLOCK		8300000
68819833afSPeter Tyser 
69819833afSPeter Tyser #endif
70