xref: /rk3399_ARM-atf/include/drivers/st/stm32mp1_rcc.h (revision 4353bb20cc8937a5d540a06c4a8fe7ee880fc3ca)
1*4353bb20SYann Gautier /*
2*4353bb20SYann Gautier  * Copyright (c) 2015-2018, STMicroelectronics - All Rights Reserved
3*4353bb20SYann Gautier  *
4*4353bb20SYann Gautier  * SPDX-License-Identifier: BSD-3-Clause
5*4353bb20SYann Gautier  */
6*4353bb20SYann Gautier 
7*4353bb20SYann Gautier #ifndef __STM32MP1_RCC_H__
8*4353bb20SYann Gautier #define __STM32MP1_RCC_H__
9*4353bb20SYann Gautier 
10*4353bb20SYann Gautier #include <utils_def.h>
11*4353bb20SYann Gautier 
12*4353bb20SYann Gautier #define RCC_TZCR			U(0x00)
13*4353bb20SYann Gautier #define RCC_OCENSETR			U(0x0C)
14*4353bb20SYann Gautier #define RCC_OCENCLRR			U(0x10)
15*4353bb20SYann Gautier #define RCC_HSICFGR			U(0x18)
16*4353bb20SYann Gautier #define RCC_CSICFGR			U(0x1C)
17*4353bb20SYann Gautier #define RCC_MPCKSELR			U(0x20)
18*4353bb20SYann Gautier #define RCC_ASSCKSELR			U(0x24)
19*4353bb20SYann Gautier #define RCC_RCK12SELR			U(0x28)
20*4353bb20SYann Gautier #define RCC_MPCKDIVR			U(0x2C)
21*4353bb20SYann Gautier #define RCC_AXIDIVR			U(0x30)
22*4353bb20SYann Gautier #define RCC_APB4DIVR			U(0x3C)
23*4353bb20SYann Gautier #define RCC_APB5DIVR			U(0x40)
24*4353bb20SYann Gautier #define RCC_RTCDIVR			U(0x44)
25*4353bb20SYann Gautier #define RCC_MSSCKSELR			U(0x48)
26*4353bb20SYann Gautier #define RCC_PLL1CR			U(0x80)
27*4353bb20SYann Gautier #define RCC_PLL1CFGR1			U(0x84)
28*4353bb20SYann Gautier #define RCC_PLL1CFGR2			U(0x88)
29*4353bb20SYann Gautier #define RCC_PLL1FRACR			U(0x8C)
30*4353bb20SYann Gautier #define RCC_PLL1CSGR			U(0x90)
31*4353bb20SYann Gautier #define RCC_PLL2CR			U(0x94)
32*4353bb20SYann Gautier #define RCC_PLL2CFGR1			U(0x98)
33*4353bb20SYann Gautier #define RCC_PLL2CFGR2			U(0x9C)
34*4353bb20SYann Gautier #define RCC_PLL2FRACR			U(0xA0)
35*4353bb20SYann Gautier #define RCC_PLL2CSGR			U(0xA4)
36*4353bb20SYann Gautier #define RCC_I2C46CKSELR			U(0xC0)
37*4353bb20SYann Gautier #define RCC_SPI6CKSELR			U(0xC4)
38*4353bb20SYann Gautier #define RCC_UART1CKSELR			U(0xC8)
39*4353bb20SYann Gautier #define RCC_RNG1CKSELR			U(0xCC)
40*4353bb20SYann Gautier #define RCC_CPERCKSELR			U(0xD0)
41*4353bb20SYann Gautier #define RCC_STGENCKSELR			U(0xD4)
42*4353bb20SYann Gautier #define RCC_DDRITFCR			U(0xD8)
43*4353bb20SYann Gautier #define RCC_MP_BOOTCR			U(0x100)
44*4353bb20SYann Gautier #define RCC_MP_SREQSETR			U(0x104)
45*4353bb20SYann Gautier #define RCC_MP_SREQCLRR			U(0x108)
46*4353bb20SYann Gautier #define RCC_MP_GCR			U(0x10C)
47*4353bb20SYann Gautier #define RCC_MP_APRSTCR			U(0x110)
48*4353bb20SYann Gautier #define RCC_MP_APRSTSR			U(0x114)
49*4353bb20SYann Gautier #define RCC_BDCR			U(0x140)
50*4353bb20SYann Gautier #define RCC_RDLSICR			U(0x144)
51*4353bb20SYann Gautier #define RCC_APB4RSTSETR			U(0x180)
52*4353bb20SYann Gautier #define RCC_APB4RSTCLRR			U(0x184)
53*4353bb20SYann Gautier #define RCC_APB5RSTSETR			U(0x188)
54*4353bb20SYann Gautier #define RCC_APB5RSTCLRR			U(0x18C)
55*4353bb20SYann Gautier #define RCC_AHB5RSTSETR			U(0x190)
56*4353bb20SYann Gautier #define RCC_AHB5RSTCLRR			U(0x194)
57*4353bb20SYann Gautier #define RCC_AHB6RSTSETR			U(0x198)
58*4353bb20SYann Gautier #define RCC_AHB6RSTCLRR			U(0x19C)
59*4353bb20SYann Gautier #define RCC_TZAHB6RSTSETR		U(0x1A0)
60*4353bb20SYann Gautier #define RCC_TZAHB6RSTCLRR		U(0x1A4)
61*4353bb20SYann Gautier #define RCC_MP_APB4ENSETR		U(0x200)
62*4353bb20SYann Gautier #define RCC_MP_APB4ENCLRR		U(0x204)
63*4353bb20SYann Gautier #define RCC_MP_APB5ENSETR		U(0x208)
64*4353bb20SYann Gautier #define RCC_MP_APB5ENCLRR		U(0x20C)
65*4353bb20SYann Gautier #define RCC_MP_AHB5ENSETR		U(0x210)
66*4353bb20SYann Gautier #define RCC_MP_AHB5ENCLRR		U(0x214)
67*4353bb20SYann Gautier #define RCC_MP_AHB6ENSETR		U(0x218)
68*4353bb20SYann Gautier #define RCC_MP_AHB6ENCLRR		U(0x21C)
69*4353bb20SYann Gautier #define RCC_MP_TZAHB6ENSETR		U(0x220)
70*4353bb20SYann Gautier #define RCC_MP_TZAHB6ENCLRR		U(0x224)
71*4353bb20SYann Gautier #define RCC_MP_APB4LPENSETR		U(0x300)
72*4353bb20SYann Gautier #define RCC_MP_APB4LPENCLRR		U(0x304)
73*4353bb20SYann Gautier #define RCC_MP_APB5LPENSETR		U(0x308)
74*4353bb20SYann Gautier #define RCC_MP_APB5LPENCLRR		U(0x30C)
75*4353bb20SYann Gautier #define RCC_MP_AHB5LPENSETR		U(0x310)
76*4353bb20SYann Gautier #define RCC_MP_AHB5LPENCLRR		U(0x314)
77*4353bb20SYann Gautier #define RCC_MP_AHB6LPENSETR		U(0x318)
78*4353bb20SYann Gautier #define RCC_MP_AHB6LPENCLRR		U(0x31C)
79*4353bb20SYann Gautier #define RCC_MP_TZAHB6LPENSETR		U(0x320)
80*4353bb20SYann Gautier #define RCC_MP_TZAHB6LPENCLRR		U(0x324)
81*4353bb20SYann Gautier #define RCC_BR_RSTSCLRR			U(0x400)
82*4353bb20SYann Gautier #define RCC_MP_GRSTCSETR		U(0x404)
83*4353bb20SYann Gautier #define RCC_MP_RSTSCLRR			U(0x408)
84*4353bb20SYann Gautier #define RCC_MP_IWDGFZSETR		U(0x40C)
85*4353bb20SYann Gautier #define RCC_MP_IWDGFZCLRR		U(0x410)
86*4353bb20SYann Gautier #define RCC_MP_CIER			U(0x414)
87*4353bb20SYann Gautier #define RCC_MP_CIFR			U(0x418)
88*4353bb20SYann Gautier #define RCC_PWRLPDLYCR			U(0x41C)
89*4353bb20SYann Gautier #define RCC_MP_RSTSSETR			U(0x420)
90*4353bb20SYann Gautier #define RCC_MCO1CFGR			U(0x800)
91*4353bb20SYann Gautier #define RCC_MCO2CFGR			U(0x804)
92*4353bb20SYann Gautier #define RCC_OCRDYR			U(0x808)
93*4353bb20SYann Gautier #define RCC_DBGCFGR			U(0x80C)
94*4353bb20SYann Gautier #define RCC_RCK3SELR			U(0x820)
95*4353bb20SYann Gautier #define RCC_RCK4SELR			U(0x824)
96*4353bb20SYann Gautier #define RCC_TIMG1PRER			U(0x828)
97*4353bb20SYann Gautier #define RCC_TIMG2PRER			U(0x82C)
98*4353bb20SYann Gautier #define RCC_APB1DIVR			U(0x834)
99*4353bb20SYann Gautier #define RCC_APB2DIVR			U(0x838)
100*4353bb20SYann Gautier #define RCC_APB3DIVR			U(0x83C)
101*4353bb20SYann Gautier #define RCC_PLL3CR			U(0x880)
102*4353bb20SYann Gautier #define RCC_PLL3CFGR1			U(0x884)
103*4353bb20SYann Gautier #define RCC_PLL3CFGR2			U(0x888)
104*4353bb20SYann Gautier #define RCC_PLL3FRACR			U(0x88C)
105*4353bb20SYann Gautier #define RCC_PLL3CSGR			U(0x890)
106*4353bb20SYann Gautier #define RCC_PLL4CR			U(0x894)
107*4353bb20SYann Gautier #define RCC_PLL4CFGR1			U(0x898)
108*4353bb20SYann Gautier #define RCC_PLL4CFGR2			U(0x89C)
109*4353bb20SYann Gautier #define RCC_PLL4FRACR			U(0x8A0)
110*4353bb20SYann Gautier #define RCC_PLL4CSGR			U(0x8A4)
111*4353bb20SYann Gautier #define RCC_I2C12CKSELR			U(0x8C0)
112*4353bb20SYann Gautier #define RCC_I2C35CKSELR			U(0x8C4)
113*4353bb20SYann Gautier #define RCC_SAI1CKSELR			U(0x8C8)
114*4353bb20SYann Gautier #define RCC_SAI2CKSELR			U(0x8CC)
115*4353bb20SYann Gautier #define RCC_SAI3CKSELR			U(0x8D0)
116*4353bb20SYann Gautier #define RCC_SAI4CKSELR			U(0x8D4)
117*4353bb20SYann Gautier #define RCC_SPI2S1CKSELR		U(0x8D8)
118*4353bb20SYann Gautier #define RCC_SPI2S23CKSELR		U(0x8DC)
119*4353bb20SYann Gautier #define RCC_SPI45CKSELR			U(0x8E0)
120*4353bb20SYann Gautier #define RCC_UART6CKSELR			U(0x8E4)
121*4353bb20SYann Gautier #define RCC_UART24CKSELR		U(0x8E8)
122*4353bb20SYann Gautier #define RCC_UART35CKSELR		U(0x8EC)
123*4353bb20SYann Gautier #define RCC_UART78CKSELR		U(0x8F0)
124*4353bb20SYann Gautier #define RCC_SDMMC12CKSELR		U(0x8F4)
125*4353bb20SYann Gautier #define RCC_SDMMC3CKSELR		U(0x8F8)
126*4353bb20SYann Gautier #define RCC_ETHCKSELR			U(0x8FC)
127*4353bb20SYann Gautier #define RCC_QSPICKSELR			U(0x900)
128*4353bb20SYann Gautier #define RCC_FMCCKSELR			U(0x904)
129*4353bb20SYann Gautier #define RCC_FDCANCKSELR			U(0x90C)
130*4353bb20SYann Gautier #define RCC_SPDIFCKSELR			U(0x914)
131*4353bb20SYann Gautier #define RCC_CECCKSELR			U(0x918)
132*4353bb20SYann Gautier #define RCC_USBCKSELR			U(0x91C)
133*4353bb20SYann Gautier #define RCC_RNG2CKSELR			U(0x920)
134*4353bb20SYann Gautier #define RCC_DSICKSELR			U(0x924)
135*4353bb20SYann Gautier #define RCC_ADCCKSELR			U(0x928)
136*4353bb20SYann Gautier #define RCC_LPTIM45CKSELR		U(0x92C)
137*4353bb20SYann Gautier #define RCC_LPTIM23CKSELR		U(0x930)
138*4353bb20SYann Gautier #define RCC_LPTIM1CKSELR		U(0x934)
139*4353bb20SYann Gautier #define RCC_APB1RSTSETR			U(0x980)
140*4353bb20SYann Gautier #define RCC_APB1RSTCLRR			U(0x984)
141*4353bb20SYann Gautier #define RCC_APB2RSTSETR			U(0x988)
142*4353bb20SYann Gautier #define RCC_APB2RSTCLRR			U(0x98C)
143*4353bb20SYann Gautier #define RCC_APB3RSTSETR			U(0x990)
144*4353bb20SYann Gautier #define RCC_APB3RSTCLRR			U(0x994)
145*4353bb20SYann Gautier #define RCC_AHB2RSTSETR			U(0x998)
146*4353bb20SYann Gautier #define RCC_AHB2RSTCLRR			U(0x99C)
147*4353bb20SYann Gautier #define RCC_AHB3RSTSETR			U(0x9A0)
148*4353bb20SYann Gautier #define RCC_AHB3RSTCLRR			U(0x9A4)
149*4353bb20SYann Gautier #define RCC_AHB4RSTSETR			U(0x9A8)
150*4353bb20SYann Gautier #define RCC_AHB4RSTCLRR			U(0x9AC)
151*4353bb20SYann Gautier #define RCC_MP_APB1ENSETR		U(0xA00)
152*4353bb20SYann Gautier #define RCC_MP_APB1ENCLRR		U(0xA04)
153*4353bb20SYann Gautier #define RCC_MP_APB2ENSETR		U(0xA08)
154*4353bb20SYann Gautier #define RCC_MP_APB2ENCLRR		U(0xA0C)
155*4353bb20SYann Gautier #define RCC_MP_APB3ENSETR		U(0xA10)
156*4353bb20SYann Gautier #define RCC_MP_APB3ENCLRR		U(0xA14)
157*4353bb20SYann Gautier #define RCC_MP_AHB2ENSETR		U(0xA18)
158*4353bb20SYann Gautier #define RCC_MP_AHB2ENCLRR		U(0xA1C)
159*4353bb20SYann Gautier #define RCC_MP_AHB3ENSETR		U(0xA20)
160*4353bb20SYann Gautier #define RCC_MP_AHB3ENCLRR		U(0xA24)
161*4353bb20SYann Gautier #define RCC_MP_AHB4ENSETR		U(0xA28)
162*4353bb20SYann Gautier #define RCC_MP_AHB4ENCLRR		U(0xA2C)
163*4353bb20SYann Gautier #define RCC_MP_MLAHBENSETR		U(0xA38)
164*4353bb20SYann Gautier #define RCC_MP_MLAHBENCLRR		U(0xA3C)
165*4353bb20SYann Gautier #define RCC_MP_APB1LPENSETR		U(0xB00)
166*4353bb20SYann Gautier #define RCC_MP_APB1LPENCLRR		U(0xB04)
167*4353bb20SYann Gautier #define RCC_MP_APB2LPENSETR		U(0xB08)
168*4353bb20SYann Gautier #define RCC_MP_APB2LPENCLRR		U(0xB0C)
169*4353bb20SYann Gautier #define RCC_MP_APB3LPENSETR		U(0xB10)
170*4353bb20SYann Gautier #define RCC_MP_APB3LPENCLRR		U(0xB14)
171*4353bb20SYann Gautier #define RCC_MP_AHB2LPENSETR		U(0xB18)
172*4353bb20SYann Gautier #define RCC_MP_AHB2LPENCLRR		U(0xB1C)
173*4353bb20SYann Gautier #define RCC_MP_AHB3LPENSETR		U(0xB20)
174*4353bb20SYann Gautier #define RCC_MP_AHB3LPENCLRR		U(0xB24)
175*4353bb20SYann Gautier #define RCC_MP_AHB4LPENSETR		U(0xB28)
176*4353bb20SYann Gautier #define RCC_MP_AHB4LPENCLRR		U(0xB2C)
177*4353bb20SYann Gautier #define RCC_MP_AXIMLPENSETR		U(0xB30)
178*4353bb20SYann Gautier #define RCC_MP_AXIMLPENCLRR		U(0xB34)
179*4353bb20SYann Gautier #define RCC_MP_MLAHBLPENSETR		U(0xB38)
180*4353bb20SYann Gautier #define RCC_MP_MLAHBLPENCLRR		U(0xB3C)
181*4353bb20SYann Gautier #define RCC_VERR			U(0xFF4)
182*4353bb20SYann Gautier #define RCC_IDR				U(0xFF8)
183*4353bb20SYann Gautier #define RCC_SIDR			U(0xFFC)
184*4353bb20SYann Gautier 
185*4353bb20SYann Gautier /* Values for RCC_TZCR register */
186*4353bb20SYann Gautier #define RCC_TZCR_TZEN			BIT(0)
187*4353bb20SYann Gautier 
188*4353bb20SYann Gautier /* Used for most of RCC_<x>SELR registers */
189*4353bb20SYann Gautier #define RCC_SELR_SRC_MASK		GENMASK(2, 0)
190*4353bb20SYann Gautier #define RCC_SELR_REFCLK_SRC_MASK	GENMASK(1, 0)
191*4353bb20SYann Gautier #define RCC_SELR_SRCRDY			BIT(31)
192*4353bb20SYann Gautier 
193*4353bb20SYann Gautier /* Values of RCC_MPCKSELR register */
194*4353bb20SYann Gautier #define RCC_MPCKSELR_HSI		0x00000000
195*4353bb20SYann Gautier #define RCC_MPCKSELR_HSE		0x00000001
196*4353bb20SYann Gautier #define RCC_MPCKSELR_PLL		0x00000002
197*4353bb20SYann Gautier #define RCC_MPCKSELR_PLL_MPUDIV		0x00000003
198*4353bb20SYann Gautier 
199*4353bb20SYann Gautier /* Values of RCC_ASSCKSELR register */
200*4353bb20SYann Gautier #define RCC_ASSCKSELR_HSI		0x00000000
201*4353bb20SYann Gautier #define RCC_ASSCKSELR_HSE		0x00000001
202*4353bb20SYann Gautier #define RCC_ASSCKSELR_PLL		0x00000002
203*4353bb20SYann Gautier 
204*4353bb20SYann Gautier /* Values of RCC_MSSCKSELR register */
205*4353bb20SYann Gautier #define RCC_MSSCKSELR_HSI		0x00000000
206*4353bb20SYann Gautier #define RCC_MSSCKSELR_HSE		0x00000001
207*4353bb20SYann Gautier #define RCC_MSSCKSELR_CSI		0x00000002
208*4353bb20SYann Gautier #define RCC_MSSCKSELR_PLL		0x00000003
209*4353bb20SYann Gautier 
210*4353bb20SYann Gautier /* Values of RCC_CPERCKSELR register */
211*4353bb20SYann Gautier #define RCC_CPERCKSELR_HSI		0x00000000
212*4353bb20SYann Gautier #define RCC_CPERCKSELR_CSI		0x00000001
213*4353bb20SYann Gautier #define RCC_CPERCKSELR_HSE		0x00000002
214*4353bb20SYann Gautier 
215*4353bb20SYann Gautier /* Used for most of DIVR register: max div for RTC */
216*4353bb20SYann Gautier #define RCC_DIVR_DIV_MASK		GENMASK(5, 0)
217*4353bb20SYann Gautier #define RCC_DIVR_DIVRDY			BIT(31)
218*4353bb20SYann Gautier 
219*4353bb20SYann Gautier /* Masks for specific DIVR registers */
220*4353bb20SYann Gautier #define RCC_APBXDIV_MASK		GENMASK(2, 0)
221*4353bb20SYann Gautier #define RCC_MPUDIV_MASK			GENMASK(2, 0)
222*4353bb20SYann Gautier #define RCC_AXIDIV_MASK			GENMASK(2, 0)
223*4353bb20SYann Gautier 
224*4353bb20SYann Gautier /* Offset between RCC_MP_xxxENSETR and RCC_MP_xxxENCLRR registers */
225*4353bb20SYann Gautier #define RCC_MP_ENCLRR_OFFSET		U(4)
226*4353bb20SYann Gautier 
227*4353bb20SYann Gautier /* Fields of RCC_BDCR register */
228*4353bb20SYann Gautier #define RCC_BDCR_LSEON			BIT(0)
229*4353bb20SYann Gautier #define RCC_BDCR_LSEBYP			BIT(1)
230*4353bb20SYann Gautier #define RCC_BDCR_LSERDY			BIT(2)
231*4353bb20SYann Gautier #define RCC_BDCR_LSEDRV_MASK		GENMASK(5, 4)
232*4353bb20SYann Gautier #define RCC_BDCR_LSEDRV_SHIFT		4
233*4353bb20SYann Gautier #define RCC_BDCR_LSECSSON		BIT(8)
234*4353bb20SYann Gautier #define RCC_BDCR_RTCCKEN		BIT(20)
235*4353bb20SYann Gautier #define RCC_BDCR_RTCSRC_MASK		GENMASK(17, 16)
236*4353bb20SYann Gautier #define RCC_BDCR_RTCSRC_SHIFT		16
237*4353bb20SYann Gautier #define RCC_BDCR_VSWRST			BIT(31)
238*4353bb20SYann Gautier 
239*4353bb20SYann Gautier /* Fields of RCC_RDLSICR register */
240*4353bb20SYann Gautier #define RCC_RDLSICR_LSION		BIT(0)
241*4353bb20SYann Gautier #define RCC_RDLSICR_LSIRDY		BIT(1)
242*4353bb20SYann Gautier 
243*4353bb20SYann Gautier /* Used for all RCC_PLL<n>CR registers */
244*4353bb20SYann Gautier #define RCC_PLLNCR_PLLON		BIT(0)
245*4353bb20SYann Gautier #define RCC_PLLNCR_PLLRDY		BIT(1)
246*4353bb20SYann Gautier #define RCC_PLLNCR_DIVPEN		BIT(4)
247*4353bb20SYann Gautier #define RCC_PLLNCR_DIVQEN		BIT(5)
248*4353bb20SYann Gautier #define RCC_PLLNCR_DIVREN		BIT(6)
249*4353bb20SYann Gautier #define RCC_PLLNCR_DIVEN_SHIFT		4
250*4353bb20SYann Gautier 
251*4353bb20SYann Gautier /* Used for all RCC_PLL<n>CFGR1 registers */
252*4353bb20SYann Gautier #define RCC_PLLNCFGR1_DIVM_SHIFT	16
253*4353bb20SYann Gautier #define RCC_PLLNCFGR1_DIVM_MASK		GENMASK(21, 16)
254*4353bb20SYann Gautier #define RCC_PLLNCFGR1_DIVN_SHIFT	0
255*4353bb20SYann Gautier #define RCC_PLLNCFGR1_DIVN_MASK		GENMASK(8, 0)
256*4353bb20SYann Gautier /* Only for PLL3 and PLL4 */
257*4353bb20SYann Gautier #define RCC_PLLNCFGR1_IFRGE_SHIFT	24
258*4353bb20SYann Gautier #define RCC_PLLNCFGR1_IFRGE_MASK	GENMASK(25, 24)
259*4353bb20SYann Gautier 
260*4353bb20SYann Gautier /* Used for all RCC_PLL<n>CFGR2 registers */
261*4353bb20SYann Gautier #define RCC_PLLNCFGR2_DIVX_MASK		GENMASK(6, 0)
262*4353bb20SYann Gautier #define RCC_PLLNCFGR2_DIVP_SHIFT	0
263*4353bb20SYann Gautier #define RCC_PLLNCFGR2_DIVP_MASK		GENMASK(6, 0)
264*4353bb20SYann Gautier #define RCC_PLLNCFGR2_DIVQ_SHIFT	8
265*4353bb20SYann Gautier #define RCC_PLLNCFGR2_DIVQ_MASK		GENMASK(14, 8)
266*4353bb20SYann Gautier #define RCC_PLLNCFGR2_DIVR_SHIFT	16
267*4353bb20SYann Gautier #define RCC_PLLNCFGR2_DIVR_MASK		GENMASK(22, 16)
268*4353bb20SYann Gautier 
269*4353bb20SYann Gautier /* Used for all RCC_PLL<n>FRACR registers */
270*4353bb20SYann Gautier #define RCC_PLLNFRACR_FRACV_SHIFT	3
271*4353bb20SYann Gautier #define RCC_PLLNFRACR_FRACV_MASK	GENMASK(15, 3)
272*4353bb20SYann Gautier #define RCC_PLLNFRACR_FRACLE		BIT(16)
273*4353bb20SYann Gautier 
274*4353bb20SYann Gautier /* Used for all RCC_PLL<n>CSGR registers */
275*4353bb20SYann Gautier #define RCC_PLLNCSGR_INC_STEP_SHIFT	16
276*4353bb20SYann Gautier #define RCC_PLLNCSGR_INC_STEP_MASK	GENMASK(30, 16)
277*4353bb20SYann Gautier #define RCC_PLLNCSGR_MOD_PER_SHIFT	0
278*4353bb20SYann Gautier #define RCC_PLLNCSGR_MOD_PER_MASK	GENMASK(12, 0)
279*4353bb20SYann Gautier #define RCC_PLLNCSGR_SSCG_MODE_SHIFT	15
280*4353bb20SYann Gautier #define RCC_PLLNCSGR_SSCG_MODE_MASK	BIT(15)
281*4353bb20SYann Gautier 
282*4353bb20SYann Gautier /* Used for RCC_OCENSETR and RCC_OCENCLRR registers */
283*4353bb20SYann Gautier #define RCC_OCENR_HSION			BIT(0)
284*4353bb20SYann Gautier #define RCC_OCENR_CSION			BIT(4)
285*4353bb20SYann Gautier #define RCC_OCENR_HSEON			BIT(8)
286*4353bb20SYann Gautier #define RCC_OCENR_HSEBYP		BIT(10)
287*4353bb20SYann Gautier #define RCC_OCENR_HSECSSON		BIT(11)
288*4353bb20SYann Gautier 
289*4353bb20SYann Gautier /* Fields of RCC_OCRDYR register */
290*4353bb20SYann Gautier #define RCC_OCRDYR_HSIRDY		BIT(0)
291*4353bb20SYann Gautier #define RCC_OCRDYR_HSIDIVRDY		BIT(2)
292*4353bb20SYann Gautier #define RCC_OCRDYR_CSIRDY		BIT(4)
293*4353bb20SYann Gautier #define RCC_OCRDYR_HSERDY		BIT(8)
294*4353bb20SYann Gautier 
295*4353bb20SYann Gautier /* Fields of RCC_DDRITFCR register */
296*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRC1EN		BIT(0)
297*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRC1LPEN		BIT(1)
298*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRC2EN		BIT(2)
299*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRC2LPEN		BIT(3)
300*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRPHYCEN		BIT(4)
301*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRPHYCLPEN	BIT(5)
302*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRCAPBEN		BIT(6)
303*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRCAPBLPEN	BIT(7)
304*4353bb20SYann Gautier #define RCC_DDRITFCR_AXIDCGEN		BIT(8)
305*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRPHYCAPBEN	BIT(9)
306*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRPHYCAPBLPEN	BIT(10)
307*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRCAPBRST		BIT(14)
308*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRCAXIRST		BIT(15)
309*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRCORERST		BIT(16)
310*4353bb20SYann Gautier #define RCC_DDRITFCR_DPHYAPBRST		BIT(17)
311*4353bb20SYann Gautier #define RCC_DDRITFCR_DPHYRST		BIT(18)
312*4353bb20SYann Gautier #define RCC_DDRITFCR_DPHYCTLRST		BIT(19)
313*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRCKMOD_MASK	GENMASK(22, 20)
314*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRCKMOD_SHIFT	20
315*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRCKMOD_SSR	0
316*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRCKMOD_ASR1	BIT(20)
317*4353bb20SYann Gautier #define RCC_DDRITFCR_DDRCKMOD_HSR1	BIT(21)
318*4353bb20SYann Gautier #define RCC_DDRITFCR_GSKPCTRL		BIT(24)
319*4353bb20SYann Gautier 
320*4353bb20SYann Gautier /* Fields of RCC_HSICFGR register */
321*4353bb20SYann Gautier #define RCC_HSICFGR_HSIDIV_MASK		GENMASK(1, 0)
322*4353bb20SYann Gautier 
323*4353bb20SYann Gautier /* Used for RCC_MCO related operations */
324*4353bb20SYann Gautier #define RCC_MCOCFG_MCOON		BIT(12)
325*4353bb20SYann Gautier #define RCC_MCOCFG_MCODIV_MASK		GENMASK(7, 4)
326*4353bb20SYann Gautier #define RCC_MCOCFG_MCODIV_SHIFT		4
327*4353bb20SYann Gautier #define RCC_MCOCFG_MCOSRC_MASK		GENMASK(2, 0)
328*4353bb20SYann Gautier 
329*4353bb20SYann Gautier /* Fields of RCC_DBGCFGR register */
330*4353bb20SYann Gautier #define RCC_DBGCFGR_DBGCKEN		BIT(8)
331*4353bb20SYann Gautier 
332*4353bb20SYann Gautier /* RCC register fields for reset reasons */
333*4353bb20SYann Gautier #define  RCC_MP_RSTSCLRR_PORRSTF	BIT(0)
334*4353bb20SYann Gautier #define  RCC_MP_RSTSCLRR_BORRSTF	BIT(1)
335*4353bb20SYann Gautier #define  RCC_MP_RSTSCLRR_PADRSTF	BIT(2)
336*4353bb20SYann Gautier #define  RCC_MP_RSTSCLRR_HCSSRSTF	BIT(3)
337*4353bb20SYann Gautier #define  RCC_MP_RSTSCLRR_VCORERSTF	BIT(4)
338*4353bb20SYann Gautier #define  RCC_MP_RSTSCLRR_MPSYSRSTF	BIT(6)
339*4353bb20SYann Gautier #define  RCC_MP_RSTSCLRR_IWDG1RSTF	BIT(8)
340*4353bb20SYann Gautier #define  RCC_MP_RSTSCLRR_IWDG2RSTF	BIT(9)
341*4353bb20SYann Gautier #define  RCC_MP_RSTSCLRR_STDBYRSTF	BIT(11)
342*4353bb20SYann Gautier #define  RCC_MP_RSTSCLRR_CSTDBYRSTF	BIT(12)
343*4353bb20SYann Gautier 
344*4353bb20SYann Gautier /* Global Reset Register */
345*4353bb20SYann Gautier #define RCC_MP_GRSTCSETR_MPSYSRST	BIT(0)
346*4353bb20SYann Gautier 
347*4353bb20SYann Gautier /* Clock Source Interrupt Flag Register */
348*4353bb20SYann Gautier #define RCC_MP_CIFR_MASK		U(0x110F1F)
349*4353bb20SYann Gautier #define RCC_MP_CIFR_WKUPF		BIT(20)
350*4353bb20SYann Gautier 
351*4353bb20SYann Gautier /* Stop Request Set Register */
352*4353bb20SYann Gautier #define RCC_MP_SREQSETR_STPREQ_P0	BIT(0)
353*4353bb20SYann Gautier #define RCC_MP_SREQSETR_STPREQ_P1	BIT(1)
354*4353bb20SYann Gautier 
355*4353bb20SYann Gautier /* Stop Request Clear Register */
356*4353bb20SYann Gautier #define RCC_MP_SREQCLRR_STPREQ_P0	BIT(0)
357*4353bb20SYann Gautier #define RCC_MP_SREQCLRR_STPREQ_P1	BIT(1)
358*4353bb20SYann Gautier 
359*4353bb20SYann Gautier /* Values of RCC_UART24CKSELR register */
360*4353bb20SYann Gautier #define RCC_UART24CKSELR_HSI		0x00000002
361*4353bb20SYann Gautier 
362*4353bb20SYann Gautier /* Values of RCC_MP_APB1ENSETR register */
363*4353bb20SYann Gautier #define RCC_MP_APB1ENSETR_UART4EN	BIT(16)
364*4353bb20SYann Gautier 
365*4353bb20SYann Gautier /* Values of RCC_MP_AHB4ENSETR register */
366*4353bb20SYann Gautier #define RCC_MP_AHB4ENSETR_GPIOGEN	BIT(6)
367*4353bb20SYann Gautier 
368*4353bb20SYann Gautier #endif /* __STM32MP1_RCC_H__ */
369