1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * Copyright 2017 Texas Instruments, Inc.
4 */
5#ifndef __DT_BINDINGS_CLK_AM4_H
6#define __DT_BINDINGS_CLK_AM4_H
7
8#define AM4_CLKCTRL_OFFSET	0x20
9#define AM4_CLKCTRL_INDEX(offset)	((offset) - AM4_CLKCTRL_OFFSET)
10
11/* XXX: Compatibility part begin, remove this once compatibility support is no longer needed */
12
13/* l4_wkup clocks */
14#define AM4_ADC_TSC_CLKCTRL	AM4_CLKCTRL_INDEX(0x120)
15#define AM4_L4_WKUP_CLKCTRL	AM4_CLKCTRL_INDEX(0x220)
16#define AM4_WKUP_M3_CLKCTRL	AM4_CLKCTRL_INDEX(0x228)
17#define AM4_COUNTER_32K_CLKCTRL	AM4_CLKCTRL_INDEX(0x230)
18#define AM4_TIMER1_CLKCTRL	AM4_CLKCTRL_INDEX(0x328)
19#define AM4_WD_TIMER2_CLKCTRL	AM4_CLKCTRL_INDEX(0x338)
20#define AM4_I2C1_CLKCTRL	AM4_CLKCTRL_INDEX(0x340)
21#define AM4_UART1_CLKCTRL	AM4_CLKCTRL_INDEX(0x348)
22#define AM4_SMARTREFLEX0_CLKCTRL	AM4_CLKCTRL_INDEX(0x350)
23#define AM4_SMARTREFLEX1_CLKCTRL	AM4_CLKCTRL_INDEX(0x358)
24#define AM4_CONTROL_CLKCTRL	AM4_CLKCTRL_INDEX(0x360)
25#define AM4_GPIO1_CLKCTRL	AM4_CLKCTRL_INDEX(0x368)
26
27/* mpu clocks */
28#define AM4_MPU_CLKCTRL	AM4_CLKCTRL_INDEX(0x20)
29
30/* gfx_l3 clocks */
31#define AM4_GFX_CLKCTRL	AM4_CLKCTRL_INDEX(0x20)
32
33/* l4_rtc clocks */
34#define AM4_RTC_CLKCTRL	AM4_CLKCTRL_INDEX(0x20)
35
36/* l4_per clocks */
37#define AM4_L3_MAIN_CLKCTRL	AM4_CLKCTRL_INDEX(0x20)
38#define AM4_AES_CLKCTRL	AM4_CLKCTRL_INDEX(0x28)
39#define AM4_DES_CLKCTRL	AM4_CLKCTRL_INDEX(0x30)
40#define AM4_L3_INSTR_CLKCTRL	AM4_CLKCTRL_INDEX(0x40)
41#define AM4_OCMCRAM_CLKCTRL	AM4_CLKCTRL_INDEX(0x50)
42#define AM4_SHAM_CLKCTRL	AM4_CLKCTRL_INDEX(0x58)
43#define AM4_VPFE0_CLKCTRL	AM4_CLKCTRL_INDEX(0x68)
44#define AM4_VPFE1_CLKCTRL	AM4_CLKCTRL_INDEX(0x70)
45#define AM4_TPCC_CLKCTRL	AM4_CLKCTRL_INDEX(0x78)
46#define AM4_TPTC0_CLKCTRL	AM4_CLKCTRL_INDEX(0x80)
47#define AM4_TPTC1_CLKCTRL	AM4_CLKCTRL_INDEX(0x88)
48#define AM4_TPTC2_CLKCTRL	AM4_CLKCTRL_INDEX(0x90)
49#define AM4_L4_HS_CLKCTRL	AM4_CLKCTRL_INDEX(0xa0)
50#define AM4_GPMC_CLKCTRL	AM4_CLKCTRL_INDEX(0x220)
51#define AM4_MCASP0_CLKCTRL	AM4_CLKCTRL_INDEX(0x238)
52#define AM4_MCASP1_CLKCTRL	AM4_CLKCTRL_INDEX(0x240)
53#define AM4_MMC3_CLKCTRL	AM4_CLKCTRL_INDEX(0x248)
54#define AM4_QSPI_CLKCTRL	AM4_CLKCTRL_INDEX(0x258)
55#define AM4_USB_OTG_SS0_CLKCTRL	AM4_CLKCTRL_INDEX(0x260)
56#define AM4_USB_OTG_SS1_CLKCTRL	AM4_CLKCTRL_INDEX(0x268)
57#define AM4_PRUSS_CLKCTRL	AM4_CLKCTRL_INDEX(0x320)
58#define AM4_L4_LS_CLKCTRL	AM4_CLKCTRL_INDEX(0x420)
59#define AM4_D_CAN0_CLKCTRL	AM4_CLKCTRL_INDEX(0x428)
60#define AM4_D_CAN1_CLKCTRL	AM4_CLKCTRL_INDEX(0x430)
61#define AM4_EPWMSS0_CLKCTRL	AM4_CLKCTRL_INDEX(0x438)
62#define AM4_EPWMSS1_CLKCTRL	AM4_CLKCTRL_INDEX(0x440)
63#define AM4_EPWMSS2_CLKCTRL	AM4_CLKCTRL_INDEX(0x448)
64#define AM4_EPWMSS3_CLKCTRL	AM4_CLKCTRL_INDEX(0x450)
65#define AM4_EPWMSS4_CLKCTRL	AM4_CLKCTRL_INDEX(0x458)
66#define AM4_EPWMSS5_CLKCTRL	AM4_CLKCTRL_INDEX(0x460)
67#define AM4_ELM_CLKCTRL	AM4_CLKCTRL_INDEX(0x468)
68#define AM4_GPIO2_CLKCTRL	AM4_CLKCTRL_INDEX(0x478)
69#define AM4_GPIO3_CLKCTRL	AM4_CLKCTRL_INDEX(0x480)
70#define AM4_GPIO4_CLKCTRL	AM4_CLKCTRL_INDEX(0x488)
71#define AM4_GPIO5_CLKCTRL	AM4_CLKCTRL_INDEX(0x490)
72#define AM4_GPIO6_CLKCTRL	AM4_CLKCTRL_INDEX(0x498)
73#define AM4_HDQ1W_CLKCTRL	AM4_CLKCTRL_INDEX(0x4a0)
74#define AM4_I2C2_CLKCTRL	AM4_CLKCTRL_INDEX(0x4a8)
75#define AM4_I2C3_CLKCTRL	AM4_CLKCTRL_INDEX(0x4b0)
76#define AM4_MAILBOX_CLKCTRL	AM4_CLKCTRL_INDEX(0x4b8)
77#define AM4_MMC1_CLKCTRL	AM4_CLKCTRL_INDEX(0x4c0)
78#define AM4_MMC2_CLKCTRL	AM4_CLKCTRL_INDEX(0x4c8)
79#define AM4_RNG_CLKCTRL	AM4_CLKCTRL_INDEX(0x4e0)
80#define AM4_SPI0_CLKCTRL	AM4_CLKCTRL_INDEX(0x500)
81#define AM4_SPI1_CLKCTRL	AM4_CLKCTRL_INDEX(0x508)
82#define AM4_SPI2_CLKCTRL	AM4_CLKCTRL_INDEX(0x510)
83#define AM4_SPI3_CLKCTRL	AM4_CLKCTRL_INDEX(0x518)
84#define AM4_SPI4_CLKCTRL	AM4_CLKCTRL_INDEX(0x520)
85#define AM4_SPINLOCK_CLKCTRL	AM4_CLKCTRL_INDEX(0x528)
86#define AM4_TIMER2_CLKCTRL	AM4_CLKCTRL_INDEX(0x530)
87#define AM4_TIMER3_CLKCTRL	AM4_CLKCTRL_INDEX(0x538)
88#define AM4_TIMER4_CLKCTRL	AM4_CLKCTRL_INDEX(0x540)
89#define AM4_TIMER5_CLKCTRL	AM4_CLKCTRL_INDEX(0x548)
90#define AM4_TIMER6_CLKCTRL	AM4_CLKCTRL_INDEX(0x550)
91#define AM4_TIMER7_CLKCTRL	AM4_CLKCTRL_INDEX(0x558)
92#define AM4_TIMER8_CLKCTRL	AM4_CLKCTRL_INDEX(0x560)
93#define AM4_TIMER9_CLKCTRL	AM4_CLKCTRL_INDEX(0x568)
94#define AM4_TIMER10_CLKCTRL	AM4_CLKCTRL_INDEX(0x570)
95#define AM4_TIMER11_CLKCTRL	AM4_CLKCTRL_INDEX(0x578)
96#define AM4_UART2_CLKCTRL	AM4_CLKCTRL_INDEX(0x580)
97#define AM4_UART3_CLKCTRL	AM4_CLKCTRL_INDEX(0x588)
98#define AM4_UART4_CLKCTRL	AM4_CLKCTRL_INDEX(0x590)
99#define AM4_UART5_CLKCTRL	AM4_CLKCTRL_INDEX(0x598)
100#define AM4_UART6_CLKCTRL	AM4_CLKCTRL_INDEX(0x5a0)
101#define AM4_OCP2SCP0_CLKCTRL	AM4_CLKCTRL_INDEX(0x5b8)
102#define AM4_OCP2SCP1_CLKCTRL	AM4_CLKCTRL_INDEX(0x5c0)
103#define AM4_EMIF_CLKCTRL	AM4_CLKCTRL_INDEX(0x720)
104#define AM4_DSS_CORE_CLKCTRL	AM4_CLKCTRL_INDEX(0xa20)
105#define AM4_CPGMAC0_CLKCTRL	AM4_CLKCTRL_INDEX(0xb20)
106
107/* XXX: Compatibility part end. */
108
109/* l3s_tsc clocks */
110#define AM4_L3S_TSC_CLKCTRL_OFFSET	0x120
111#define AM4_L3S_TSC_CLKCTRL_INDEX(offset)	((offset) - AM4_L3S_TSC_CLKCTRL_OFFSET)
112#define AM4_L3S_TSC_ADC_TSC_CLKCTRL	AM4_L3S_TSC_CLKCTRL_INDEX(0x120)
113
114/* l4_wkup_aon clocks */
115#define AM4_L4_WKUP_AON_CLKCTRL_OFFSET	0x228
116#define AM4_L4_WKUP_AON_CLKCTRL_INDEX(offset)	((offset) - AM4_L4_WKUP_AON_CLKCTRL_OFFSET)
117#define AM4_L4_WKUP_AON_WKUP_M3_CLKCTRL	AM4_L4_WKUP_AON_CLKCTRL_INDEX(0x228)
118#define AM4_L4_WKUP_AON_COUNTER_32K_CLKCTRL	AM4_L4_WKUP_AON_CLKCTRL_INDEX(0x230)
119
120/* l4_wkup clocks */
121#define AM4_L4_WKUP_CLKCTRL_OFFSET	0x220
122#define AM4_L4_WKUP_CLKCTRL_INDEX(offset)	((offset) - AM4_L4_WKUP_CLKCTRL_OFFSET)
123#define AM4_L4_WKUP_L4_WKUP_CLKCTRL	AM4_L4_WKUP_CLKCTRL_INDEX(0x220)
124#define AM4_L4_WKUP_TIMER1_CLKCTRL	AM4_L4_WKUP_CLKCTRL_INDEX(0x328)
125#define AM4_L4_WKUP_WD_TIMER2_CLKCTRL	AM4_L4_WKUP_CLKCTRL_INDEX(0x338)
126#define AM4_L4_WKUP_I2C1_CLKCTRL	AM4_L4_WKUP_CLKCTRL_INDEX(0x340)
127#define AM4_L4_WKUP_UART1_CLKCTRL	AM4_L4_WKUP_CLKCTRL_INDEX(0x348)
128#define AM4_L4_WKUP_SMARTREFLEX0_CLKCTRL	AM4_L4_WKUP_CLKCTRL_INDEX(0x350)
129#define AM4_L4_WKUP_SMARTREFLEX1_CLKCTRL	AM4_L4_WKUP_CLKCTRL_INDEX(0x358)
130#define AM4_L4_WKUP_CONTROL_CLKCTRL	AM4_L4_WKUP_CLKCTRL_INDEX(0x360)
131#define AM4_L4_WKUP_GPIO1_CLKCTRL	AM4_L4_WKUP_CLKCTRL_INDEX(0x368)
132
133/* mpu clocks */
134#define AM4_MPU_MPU_CLKCTRL	AM4_CLKCTRL_INDEX(0x20)
135
136/* gfx_l3 clocks */
137#define AM4_GFX_L3_GFX_CLKCTRL	AM4_CLKCTRL_INDEX(0x20)
138
139/* l4_rtc clocks */
140#define AM4_L4_RTC_RTC_CLKCTRL	AM4_CLKCTRL_INDEX(0x20)
141
142/* l3 clocks */
143#define AM4_L3_L3_MAIN_CLKCTRL	AM4_CLKCTRL_INDEX(0x20)
144#define AM4_L3_AES_CLKCTRL	AM4_CLKCTRL_INDEX(0x28)
145#define AM4_L3_DES_CLKCTRL	AM4_CLKCTRL_INDEX(0x30)
146#define AM4_L3_L3_INSTR_CLKCTRL	AM4_CLKCTRL_INDEX(0x40)
147#define AM4_L3_OCMCRAM_CLKCTRL	AM4_CLKCTRL_INDEX(0x50)
148#define AM4_L3_SHAM_CLKCTRL	AM4_CLKCTRL_INDEX(0x58)
149#define AM4_L3_TPCC_CLKCTRL	AM4_CLKCTRL_INDEX(0x78)
150#define AM4_L3_TPTC0_CLKCTRL	AM4_CLKCTRL_INDEX(0x80)
151#define AM4_L3_TPTC1_CLKCTRL	AM4_CLKCTRL_INDEX(0x88)
152#define AM4_L3_TPTC2_CLKCTRL	AM4_CLKCTRL_INDEX(0x90)
153#define AM4_L3_L4_HS_CLKCTRL	AM4_CLKCTRL_INDEX(0xa0)
154
155/* l3s clocks */
156#define AM4_L3S_CLKCTRL_OFFSET	0x68
157#define AM4_L3S_CLKCTRL_INDEX(offset)	((offset) - AM4_L3S_CLKCTRL_OFFSET)
158#define AM4_L3S_VPFE0_CLKCTRL	AM4_L3S_CLKCTRL_INDEX(0x68)
159#define AM4_L3S_VPFE1_CLKCTRL	AM4_L3S_CLKCTRL_INDEX(0x70)
160#define AM4_L3S_GPMC_CLKCTRL	AM4_L3S_CLKCTRL_INDEX(0x220)
161#define AM4_L3S_MCASP0_CLKCTRL	AM4_L3S_CLKCTRL_INDEX(0x238)
162#define AM4_L3S_MCASP1_CLKCTRL	AM4_L3S_CLKCTRL_INDEX(0x240)
163#define AM4_L3S_MMC3_CLKCTRL	AM4_L3S_CLKCTRL_INDEX(0x248)
164#define AM4_L3S_QSPI_CLKCTRL	AM4_L3S_CLKCTRL_INDEX(0x258)
165#define AM4_L3S_USB_OTG_SS0_CLKCTRL	AM4_L3S_CLKCTRL_INDEX(0x260)
166#define AM4_L3S_USB_OTG_SS1_CLKCTRL	AM4_L3S_CLKCTRL_INDEX(0x268)
167
168/* pruss_ocp clocks */
169#define AM4_PRUSS_OCP_CLKCTRL_OFFSET	0x320
170#define AM4_PRUSS_OCP_CLKCTRL_INDEX(offset)	((offset) - AM4_PRUSS_OCP_CLKCTRL_OFFSET)
171#define AM4_PRUSS_OCP_PRUSS_CLKCTRL	AM4_PRUSS_OCP_CLKCTRL_INDEX(0x320)
172
173/* l4ls clocks */
174#define AM4_L4LS_CLKCTRL_OFFSET	0x420
175#define AM4_L4LS_CLKCTRL_INDEX(offset)	((offset) - AM4_L4LS_CLKCTRL_OFFSET)
176#define AM4_L4LS_L4_LS_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x420)
177#define AM4_L4LS_D_CAN0_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x428)
178#define AM4_L4LS_D_CAN1_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x430)
179#define AM4_L4LS_EPWMSS0_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x438)
180#define AM4_L4LS_EPWMSS1_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x440)
181#define AM4_L4LS_EPWMSS2_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x448)
182#define AM4_L4LS_EPWMSS3_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x450)
183#define AM4_L4LS_EPWMSS4_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x458)
184#define AM4_L4LS_EPWMSS5_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x460)
185#define AM4_L4LS_ELM_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x468)
186#define AM4_L4LS_GPIO2_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x478)
187#define AM4_L4LS_GPIO3_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x480)
188#define AM4_L4LS_GPIO4_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x488)
189#define AM4_L4LS_GPIO5_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x490)
190#define AM4_L4LS_GPIO6_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x498)
191#define AM4_L4LS_HDQ1W_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x4a0)
192#define AM4_L4LS_I2C2_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x4a8)
193#define AM4_L4LS_I2C3_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x4b0)
194#define AM4_L4LS_MAILBOX_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x4b8)
195#define AM4_L4LS_MMC1_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x4c0)
196#define AM4_L4LS_MMC2_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x4c8)
197#define AM4_L4LS_RNG_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x4e0)
198#define AM4_L4LS_SPI0_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x500)
199#define AM4_L4LS_SPI1_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x508)
200#define AM4_L4LS_SPI2_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x510)
201#define AM4_L4LS_SPI3_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x518)
202#define AM4_L4LS_SPI4_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x520)
203#define AM4_L4LS_SPINLOCK_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x528)
204#define AM4_L4LS_TIMER2_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x530)
205#define AM4_L4LS_TIMER3_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x538)
206#define AM4_L4LS_TIMER4_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x540)
207#define AM4_L4LS_TIMER5_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x548)
208#define AM4_L4LS_TIMER6_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x550)
209#define AM4_L4LS_TIMER7_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x558)
210#define AM4_L4LS_TIMER8_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x560)
211#define AM4_L4LS_TIMER9_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x568)
212#define AM4_L4LS_TIMER10_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x570)
213#define AM4_L4LS_TIMER11_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x578)
214#define AM4_L4LS_UART2_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x580)
215#define AM4_L4LS_UART3_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x588)
216#define AM4_L4LS_UART4_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x590)
217#define AM4_L4LS_UART5_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x598)
218#define AM4_L4LS_UART6_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x5a0)
219#define AM4_L4LS_OCP2SCP0_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x5b8)
220#define AM4_L4LS_OCP2SCP1_CLKCTRL	AM4_L4LS_CLKCTRL_INDEX(0x5c0)
221
222/* emif clocks */
223#define AM4_EMIF_CLKCTRL_OFFSET	0x720
224#define AM4_EMIF_CLKCTRL_INDEX(offset)	((offset) - AM4_EMIF_CLKCTRL_OFFSET)
225#define AM4_EMIF_EMIF_CLKCTRL	AM4_EMIF_CLKCTRL_INDEX(0x720)
226
227/* dss clocks */
228#define AM4_DSS_CLKCTRL_OFFSET	0xa20
229#define AM4_DSS_CLKCTRL_INDEX(offset)	((offset) - AM4_DSS_CLKCTRL_OFFSET)
230#define AM4_DSS_DSS_CORE_CLKCTRL	AM4_DSS_CLKCTRL_INDEX(0xa20)
231
232/* cpsw_125mhz clocks */
233#define AM4_CPSW_125MHZ_CLKCTRL_OFFSET	0xb20
234#define AM4_CPSW_125MHZ_CLKCTRL_INDEX(offset)	((offset) - AM4_CPSW_125MHZ_CLKCTRL_OFFSET)
235#define AM4_CPSW_125MHZ_CPGMAC0_CLKCTRL	AM4_CPSW_125MHZ_CLKCTRL_INDEX(0xb20)
236
237#endif
238