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