xref: /rk3399_ARM-atf/include/dt-bindings/clock/stm32mp15-clksrc.h (revision 1b8898eb32c3872a34fc59f4216736f23af0c6ea)
1*1b8898ebSYann Gautier /* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */
2*1b8898ebSYann Gautier /*
3*1b8898ebSYann Gautier  * Copyright (C) 2017-2022, STMicroelectronics - All Rights Reserved
4*1b8898ebSYann Gautier  */
5*1b8898ebSYann Gautier 
6*1b8898ebSYann Gautier #ifndef _DT_BINDINGS_CLOCK_STM32MP15_CLKSRC_H_
7*1b8898ebSYann Gautier #define _DT_BINDINGS_CLOCK_STM32MP15_CLKSRC_H_
8*1b8898ebSYann Gautier 
9*1b8898ebSYann Gautier /* PLL output is enable when x=1, with x=p,q or r */
10*1b8898ebSYann Gautier #define PQR(p, q, r)	(((p) & 1) | (((q) & 1) << 1) | (((r) & 1) << 2))
11*1b8898ebSYann Gautier 
12*1b8898ebSYann Gautier /* st,clksrc: mandatory clock source */
13*1b8898ebSYann Gautier #define CLK_MPU_HSI		0x00000200
14*1b8898ebSYann Gautier #define CLK_MPU_HSE		0x00000201
15*1b8898ebSYann Gautier #define CLK_MPU_PLL1P		0x00000202
16*1b8898ebSYann Gautier #define CLK_MPU_PLL1P_DIV	0x00000203
17*1b8898ebSYann Gautier 
18*1b8898ebSYann Gautier #define CLK_AXI_HSI		0x00000240
19*1b8898ebSYann Gautier #define CLK_AXI_HSE		0x00000241
20*1b8898ebSYann Gautier #define CLK_AXI_PLL2P		0x00000242
21*1b8898ebSYann Gautier 
22*1b8898ebSYann Gautier #define CLK_MCU_HSI		0x00000480
23*1b8898ebSYann Gautier #define CLK_MCU_HSE		0x00000481
24*1b8898ebSYann Gautier #define CLK_MCU_CSI		0x00000482
25*1b8898ebSYann Gautier #define CLK_MCU_PLL3P		0x00000483
26*1b8898ebSYann Gautier 
27*1b8898ebSYann Gautier #define CLK_PLL12_HSI		0x00000280
28*1b8898ebSYann Gautier #define CLK_PLL12_HSE		0x00000281
29*1b8898ebSYann Gautier 
30*1b8898ebSYann Gautier #define CLK_PLL3_HSI		0x00008200
31*1b8898ebSYann Gautier #define CLK_PLL3_HSE		0x00008201
32*1b8898ebSYann Gautier #define CLK_PLL3_CSI		0x00008202
33*1b8898ebSYann Gautier 
34*1b8898ebSYann Gautier #define CLK_PLL4_HSI		0x00008240
35*1b8898ebSYann Gautier #define CLK_PLL4_HSE		0x00008241
36*1b8898ebSYann Gautier #define CLK_PLL4_CSI		0x00008242
37*1b8898ebSYann Gautier #define CLK_PLL4_I2SCKIN	0x00008243
38*1b8898ebSYann Gautier 
39*1b8898ebSYann Gautier #define CLK_RTC_DISABLED	0x00001400
40*1b8898ebSYann Gautier #define CLK_RTC_LSE		0x00001401
41*1b8898ebSYann Gautier #define CLK_RTC_LSI		0x00001402
42*1b8898ebSYann Gautier #define CLK_RTC_HSE		0x00001403
43*1b8898ebSYann Gautier 
44*1b8898ebSYann Gautier #define CLK_MCO1_HSI		0x00008000
45*1b8898ebSYann Gautier #define CLK_MCO1_HSE		0x00008001
46*1b8898ebSYann Gautier #define CLK_MCO1_CSI		0x00008002
47*1b8898ebSYann Gautier #define CLK_MCO1_LSI		0x00008003
48*1b8898ebSYann Gautier #define CLK_MCO1_LSE		0x00008004
49*1b8898ebSYann Gautier #define CLK_MCO1_DISABLED	0x0000800F
50*1b8898ebSYann Gautier 
51*1b8898ebSYann Gautier #define CLK_MCO2_MPU		0x00008040
52*1b8898ebSYann Gautier #define CLK_MCO2_AXI		0x00008041
53*1b8898ebSYann Gautier #define CLK_MCO2_MCU		0x00008042
54*1b8898ebSYann Gautier #define CLK_MCO2_PLL4P		0x00008043
55*1b8898ebSYann Gautier #define CLK_MCO2_HSE		0x00008044
56*1b8898ebSYann Gautier #define CLK_MCO2_HSI		0x00008045
57*1b8898ebSYann Gautier #define CLK_MCO2_DISABLED	0x0000804F
58*1b8898ebSYann Gautier 
59*1b8898ebSYann Gautier /* st,pkcs: peripheral kernel clock source */
60*1b8898ebSYann Gautier 
61*1b8898ebSYann Gautier #define CLK_I2C12_PCLK1		0x00008C00
62*1b8898ebSYann Gautier #define CLK_I2C12_PLL4R		0x00008C01
63*1b8898ebSYann Gautier #define CLK_I2C12_HSI		0x00008C02
64*1b8898ebSYann Gautier #define CLK_I2C12_CSI		0x00008C03
65*1b8898ebSYann Gautier #define CLK_I2C12_DISABLED	0x00008C07
66*1b8898ebSYann Gautier 
67*1b8898ebSYann Gautier #define CLK_I2C35_PCLK1		0x00008C40
68*1b8898ebSYann Gautier #define CLK_I2C35_PLL4R		0x00008C41
69*1b8898ebSYann Gautier #define CLK_I2C35_HSI		0x00008C42
70*1b8898ebSYann Gautier #define CLK_I2C35_CSI		0x00008C43
71*1b8898ebSYann Gautier #define CLK_I2C35_DISABLED	0x00008C47
72*1b8898ebSYann Gautier 
73*1b8898ebSYann Gautier #define CLK_I2C46_PCLK5		0x00000C00
74*1b8898ebSYann Gautier #define CLK_I2C46_PLL3Q		0x00000C01
75*1b8898ebSYann Gautier #define CLK_I2C46_HSI		0x00000C02
76*1b8898ebSYann Gautier #define CLK_I2C46_CSI		0x00000C03
77*1b8898ebSYann Gautier #define CLK_I2C46_DISABLED	0x00000C07
78*1b8898ebSYann Gautier 
79*1b8898ebSYann Gautier #define CLK_SAI1_PLL4Q		0x00008C80
80*1b8898ebSYann Gautier #define CLK_SAI1_PLL3Q		0x00008C81
81*1b8898ebSYann Gautier #define CLK_SAI1_I2SCKIN	0x00008C82
82*1b8898ebSYann Gautier #define CLK_SAI1_CKPER		0x00008C83
83*1b8898ebSYann Gautier #define CLK_SAI1_PLL3R		0x00008C84
84*1b8898ebSYann Gautier #define CLK_SAI1_DISABLED	0x00008C87
85*1b8898ebSYann Gautier 
86*1b8898ebSYann Gautier #define CLK_SAI2_PLL4Q		0x00008CC0
87*1b8898ebSYann Gautier #define CLK_SAI2_PLL3Q		0x00008CC1
88*1b8898ebSYann Gautier #define CLK_SAI2_I2SCKIN	0x00008CC2
89*1b8898ebSYann Gautier #define CLK_SAI2_CKPER		0x00008CC3
90*1b8898ebSYann Gautier #define CLK_SAI2_SPDIF		0x00008CC4
91*1b8898ebSYann Gautier #define CLK_SAI2_PLL3R		0x00008CC5
92*1b8898ebSYann Gautier #define CLK_SAI2_DISABLED	0x00008CC7
93*1b8898ebSYann Gautier 
94*1b8898ebSYann Gautier #define CLK_SAI3_PLL4Q		0x00008D00
95*1b8898ebSYann Gautier #define CLK_SAI3_PLL3Q		0x00008D01
96*1b8898ebSYann Gautier #define CLK_SAI3_I2SCKIN	0x00008D02
97*1b8898ebSYann Gautier #define CLK_SAI3_CKPER		0x00008D03
98*1b8898ebSYann Gautier #define CLK_SAI3_PLL3R		0x00008D04
99*1b8898ebSYann Gautier #define CLK_SAI3_DISABLED	0x00008D07
100*1b8898ebSYann Gautier 
101*1b8898ebSYann Gautier #define CLK_SAI4_PLL4Q		0x00008D40
102*1b8898ebSYann Gautier #define CLK_SAI4_PLL3Q		0x00008D41
103*1b8898ebSYann Gautier #define CLK_SAI4_I2SCKIN	0x00008D42
104*1b8898ebSYann Gautier #define CLK_SAI4_CKPER		0x00008D43
105*1b8898ebSYann Gautier #define CLK_SAI4_PLL3R		0x00008D44
106*1b8898ebSYann Gautier #define CLK_SAI4_DISABLED	0x00008D47
107*1b8898ebSYann Gautier 
108*1b8898ebSYann Gautier #define CLK_SPI2S1_PLL4P	0x00008D80
109*1b8898ebSYann Gautier #define CLK_SPI2S1_PLL3Q	0x00008D81
110*1b8898ebSYann Gautier #define CLK_SPI2S1_I2SCKIN	0x00008D82
111*1b8898ebSYann Gautier #define CLK_SPI2S1_CKPER	0x00008D83
112*1b8898ebSYann Gautier #define CLK_SPI2S1_PLL3R	0x00008D84
113*1b8898ebSYann Gautier #define CLK_SPI2S1_DISABLED	0x00008D87
114*1b8898ebSYann Gautier 
115*1b8898ebSYann Gautier #define CLK_SPI2S23_PLL4P	0x00008DC0
116*1b8898ebSYann Gautier #define CLK_SPI2S23_PLL3Q	0x00008DC1
117*1b8898ebSYann Gautier #define CLK_SPI2S23_I2SCKIN	0x00008DC2
118*1b8898ebSYann Gautier #define CLK_SPI2S23_CKPER	0x00008DC3
119*1b8898ebSYann Gautier #define CLK_SPI2S23_PLL3R	0x00008DC4
120*1b8898ebSYann Gautier #define CLK_SPI2S23_DISABLED	0x00008DC7
121*1b8898ebSYann Gautier 
122*1b8898ebSYann Gautier #define CLK_SPI45_PCLK2		0x00008E00
123*1b8898ebSYann Gautier #define CLK_SPI45_PLL4Q		0x00008E01
124*1b8898ebSYann Gautier #define CLK_SPI45_HSI		0x00008E02
125*1b8898ebSYann Gautier #define CLK_SPI45_CSI		0x00008E03
126*1b8898ebSYann Gautier #define CLK_SPI45_HSE		0x00008E04
127*1b8898ebSYann Gautier #define CLK_SPI45_DISABLED	0x00008E07
128*1b8898ebSYann Gautier 
129*1b8898ebSYann Gautier #define CLK_SPI6_PCLK5		0x00000C40
130*1b8898ebSYann Gautier #define CLK_SPI6_PLL4Q		0x00000C41
131*1b8898ebSYann Gautier #define CLK_SPI6_HSI		0x00000C42
132*1b8898ebSYann Gautier #define CLK_SPI6_CSI		0x00000C43
133*1b8898ebSYann Gautier #define CLK_SPI6_HSE		0x00000C44
134*1b8898ebSYann Gautier #define CLK_SPI6_PLL3Q		0x00000C45
135*1b8898ebSYann Gautier #define CLK_SPI6_DISABLED	0x00000C47
136*1b8898ebSYann Gautier 
137*1b8898ebSYann Gautier #define CLK_UART6_PCLK2		0x00008E40
138*1b8898ebSYann Gautier #define CLK_UART6_PLL4Q		0x00008E41
139*1b8898ebSYann Gautier #define CLK_UART6_HSI		0x00008E42
140*1b8898ebSYann Gautier #define CLK_UART6_CSI		0x00008E43
141*1b8898ebSYann Gautier #define CLK_UART6_HSE		0x00008E44
142*1b8898ebSYann Gautier #define CLK_UART6_DISABLED	0x00008E47
143*1b8898ebSYann Gautier 
144*1b8898ebSYann Gautier #define CLK_UART24_PCLK1	0x00008E80
145*1b8898ebSYann Gautier #define CLK_UART24_PLL4Q	0x00008E81
146*1b8898ebSYann Gautier #define CLK_UART24_HSI		0x00008E82
147*1b8898ebSYann Gautier #define CLK_UART24_CSI		0x00008E83
148*1b8898ebSYann Gautier #define CLK_UART24_HSE		0x00008E84
149*1b8898ebSYann Gautier #define CLK_UART24_DISABLED	0x00008E87
150*1b8898ebSYann Gautier 
151*1b8898ebSYann Gautier #define CLK_UART35_PCLK1	0x00008EC0
152*1b8898ebSYann Gautier #define CLK_UART35_PLL4Q	0x00008EC1
153*1b8898ebSYann Gautier #define CLK_UART35_HSI		0x00008EC2
154*1b8898ebSYann Gautier #define CLK_UART35_CSI		0x00008EC3
155*1b8898ebSYann Gautier #define CLK_UART35_HSE		0x00008EC4
156*1b8898ebSYann Gautier #define CLK_UART35_DISABLED	0x00008EC7
157*1b8898ebSYann Gautier 
158*1b8898ebSYann Gautier #define CLK_UART78_PCLK1	0x00008F00
159*1b8898ebSYann Gautier #define CLK_UART78_PLL4Q	0x00008F01
160*1b8898ebSYann Gautier #define CLK_UART78_HSI		0x00008F02
161*1b8898ebSYann Gautier #define CLK_UART78_CSI		0x00008F03
162*1b8898ebSYann Gautier #define CLK_UART78_HSE		0x00008F04
163*1b8898ebSYann Gautier #define CLK_UART78_DISABLED	0x00008F07
164*1b8898ebSYann Gautier 
165*1b8898ebSYann Gautier #define CLK_UART1_PCLK5		0x00000C80
166*1b8898ebSYann Gautier #define CLK_UART1_PLL3Q		0x00000C81
167*1b8898ebSYann Gautier #define CLK_UART1_HSI		0x00000C82
168*1b8898ebSYann Gautier #define CLK_UART1_CSI		0x00000C83
169*1b8898ebSYann Gautier #define CLK_UART1_PLL4Q		0x00000C84
170*1b8898ebSYann Gautier #define CLK_UART1_HSE		0x00000C85
171*1b8898ebSYann Gautier #define CLK_UART1_DISABLED	0x00000C87
172*1b8898ebSYann Gautier 
173*1b8898ebSYann Gautier #define CLK_SDMMC12_HCLK6	0x00008F40
174*1b8898ebSYann Gautier #define CLK_SDMMC12_PLL3R	0x00008F41
175*1b8898ebSYann Gautier #define CLK_SDMMC12_PLL4P	0x00008F42
176*1b8898ebSYann Gautier #define CLK_SDMMC12_HSI		0x00008F43
177*1b8898ebSYann Gautier #define CLK_SDMMC12_DISABLED	0x00008F47
178*1b8898ebSYann Gautier 
179*1b8898ebSYann Gautier #define CLK_SDMMC3_HCLK2	0x00008F80
180*1b8898ebSYann Gautier #define CLK_SDMMC3_PLL3R	0x00008F81
181*1b8898ebSYann Gautier #define CLK_SDMMC3_PLL4P	0x00008F82
182*1b8898ebSYann Gautier #define CLK_SDMMC3_HSI		0x00008F83
183*1b8898ebSYann Gautier #define CLK_SDMMC3_DISABLED	0x00008F87
184*1b8898ebSYann Gautier 
185*1b8898ebSYann Gautier #define CLK_ETH_PLL4P		0x00008FC0
186*1b8898ebSYann Gautier #define CLK_ETH_PLL3Q		0x00008FC1
187*1b8898ebSYann Gautier #define CLK_ETH_DISABLED	0x00008FC3
188*1b8898ebSYann Gautier 
189*1b8898ebSYann Gautier #define CLK_QSPI_ACLK		0x00009000
190*1b8898ebSYann Gautier #define CLK_QSPI_PLL3R		0x00009001
191*1b8898ebSYann Gautier #define CLK_QSPI_PLL4P		0x00009002
192*1b8898ebSYann Gautier #define CLK_QSPI_CKPER		0x00009003
193*1b8898ebSYann Gautier 
194*1b8898ebSYann Gautier #define CLK_FMC_ACLK		0x00009040
195*1b8898ebSYann Gautier #define CLK_FMC_PLL3R		0x00009041
196*1b8898ebSYann Gautier #define CLK_FMC_PLL4P		0x00009042
197*1b8898ebSYann Gautier #define CLK_FMC_CKPER		0x00009043
198*1b8898ebSYann Gautier 
199*1b8898ebSYann Gautier #define CLK_FDCAN_HSE		0x000090C0
200*1b8898ebSYann Gautier #define CLK_FDCAN_PLL3Q		0x000090C1
201*1b8898ebSYann Gautier #define CLK_FDCAN_PLL4Q		0x000090C2
202*1b8898ebSYann Gautier #define CLK_FDCAN_PLL4R		0x000090C3
203*1b8898ebSYann Gautier 
204*1b8898ebSYann Gautier #define CLK_SPDIF_PLL4P		0x00009140
205*1b8898ebSYann Gautier #define CLK_SPDIF_PLL3Q		0x00009141
206*1b8898ebSYann Gautier #define CLK_SPDIF_HSI		0x00009142
207*1b8898ebSYann Gautier #define CLK_SPDIF_DISABLED	0x00009143
208*1b8898ebSYann Gautier 
209*1b8898ebSYann Gautier #define CLK_CEC_LSE		0x00009180
210*1b8898ebSYann Gautier #define CLK_CEC_LSI		0x00009181
211*1b8898ebSYann Gautier #define CLK_CEC_CSI_DIV122	0x00009182
212*1b8898ebSYann Gautier #define CLK_CEC_DISABLED	0x00009183
213*1b8898ebSYann Gautier 
214*1b8898ebSYann Gautier #define CLK_USBPHY_HSE		0x000091C0
215*1b8898ebSYann Gautier #define CLK_USBPHY_PLL4R	0x000091C1
216*1b8898ebSYann Gautier #define CLK_USBPHY_HSE_DIV2	0x000091C2
217*1b8898ebSYann Gautier #define CLK_USBPHY_DISABLED	0x000091C3
218*1b8898ebSYann Gautier 
219*1b8898ebSYann Gautier #define CLK_USBO_PLL4R		0x800091C0
220*1b8898ebSYann Gautier #define CLK_USBO_USBPHY		0x800091C1
221*1b8898ebSYann Gautier 
222*1b8898ebSYann Gautier #define CLK_RNG1_CSI		0x00000CC0
223*1b8898ebSYann Gautier #define CLK_RNG1_PLL4R		0x00000CC1
224*1b8898ebSYann Gautier #define CLK_RNG1_LSE		0x00000CC2
225*1b8898ebSYann Gautier #define CLK_RNG1_LSI		0x00000CC3
226*1b8898ebSYann Gautier 
227*1b8898ebSYann Gautier #define CLK_RNG2_CSI		0x00009200
228*1b8898ebSYann Gautier #define CLK_RNG2_PLL4R		0x00009201
229*1b8898ebSYann Gautier #define CLK_RNG2_LSE		0x00009202
230*1b8898ebSYann Gautier #define CLK_RNG2_LSI		0x00009203
231*1b8898ebSYann Gautier 
232*1b8898ebSYann Gautier #define CLK_CKPER_HSI		0x00000D00
233*1b8898ebSYann Gautier #define CLK_CKPER_CSI		0x00000D01
234*1b8898ebSYann Gautier #define CLK_CKPER_HSE		0x00000D02
235*1b8898ebSYann Gautier #define CLK_CKPER_DISABLED	0x00000D03
236*1b8898ebSYann Gautier 
237*1b8898ebSYann Gautier #define CLK_STGEN_HSI		0x00000D40
238*1b8898ebSYann Gautier #define CLK_STGEN_HSE		0x00000D41
239*1b8898ebSYann Gautier #define CLK_STGEN_DISABLED	0x00000D43
240*1b8898ebSYann Gautier 
241*1b8898ebSYann Gautier #define CLK_DSI_DSIPLL		0x00009240
242*1b8898ebSYann Gautier #define CLK_DSI_PLL4P		0x00009241
243*1b8898ebSYann Gautier 
244*1b8898ebSYann Gautier #define CLK_ADC_PLL4R		0x00009280
245*1b8898ebSYann Gautier #define CLK_ADC_CKPER		0x00009281
246*1b8898ebSYann Gautier #define CLK_ADC_PLL3Q		0x00009282
247*1b8898ebSYann Gautier #define CLK_ADC_DISABLED	0x00009283
248*1b8898ebSYann Gautier 
249*1b8898ebSYann Gautier #define CLK_LPTIM45_PCLK3	0x000092C0
250*1b8898ebSYann Gautier #define CLK_LPTIM45_PLL4P	0x000092C1
251*1b8898ebSYann Gautier #define CLK_LPTIM45_PLL3Q	0x000092C2
252*1b8898ebSYann Gautier #define CLK_LPTIM45_LSE		0x000092C3
253*1b8898ebSYann Gautier #define CLK_LPTIM45_LSI		0x000092C4
254*1b8898ebSYann Gautier #define CLK_LPTIM45_CKPER	0x000092C5
255*1b8898ebSYann Gautier #define CLK_LPTIM45_DISABLED	0x000092C7
256*1b8898ebSYann Gautier 
257*1b8898ebSYann Gautier #define CLK_LPTIM23_PCLK3	0x00009300
258*1b8898ebSYann Gautier #define CLK_LPTIM23_PLL4Q	0x00009301
259*1b8898ebSYann Gautier #define CLK_LPTIM23_CKPER	0x00009302
260*1b8898ebSYann Gautier #define CLK_LPTIM23_LSE		0x00009303
261*1b8898ebSYann Gautier #define CLK_LPTIM23_LSI		0x00009304
262*1b8898ebSYann Gautier #define CLK_LPTIM23_DISABLED	0x00009307
263*1b8898ebSYann Gautier 
264*1b8898ebSYann Gautier #define CLK_LPTIM1_PCLK1	0x00009340
265*1b8898ebSYann Gautier #define CLK_LPTIM1_PLL4P	0x00009341
266*1b8898ebSYann Gautier #define CLK_LPTIM1_PLL3Q	0x00009342
267*1b8898ebSYann Gautier #define CLK_LPTIM1_LSE		0x00009343
268*1b8898ebSYann Gautier #define CLK_LPTIM1_LSI		0x00009344
269*1b8898ebSYann Gautier #define CLK_LPTIM1_CKPER	0x00009345
270*1b8898ebSYann Gautier #define CLK_LPTIM1_DISABLED	0x00009347
271*1b8898ebSYann Gautier 
272*1b8898ebSYann Gautier /* define for st,pll /csg */
273*1b8898ebSYann Gautier #define SSCG_MODE_CENTER_SPREAD	0
274*1b8898ebSYann Gautier #define SSCG_MODE_DOWN_SPREAD	1
275*1b8898ebSYann Gautier 
276*1b8898ebSYann Gautier /* define for st,drive */
277*1b8898ebSYann Gautier #define LSEDRV_LOWEST		0
278*1b8898ebSYann Gautier #define LSEDRV_MEDIUM_LOW	1
279*1b8898ebSYann Gautier #define LSEDRV_MEDIUM_HIGH	2
280*1b8898ebSYann Gautier #define LSEDRV_HIGHEST		3
281*1b8898ebSYann Gautier 
282*1b8898ebSYann Gautier #endif
283