xref: /optee_os/core/include/drivers/stm32mp1_rcc.h (revision e07f9212d5ad3ed6753d8d20daf37fc0b9860d44)
16b651796SEtienne Carriere /* SPDX-License-Identifier: BSD-3-Clause */
26b651796SEtienne Carriere /*
36b651796SEtienne Carriere  * Copyright (c) 2017-2018, STMicroelectronics
46b651796SEtienne Carriere  */
56b651796SEtienne Carriere 
66b651796SEtienne Carriere #ifndef __DRIVERS_STM32MP1_RCC_H__
76b651796SEtienne Carriere #define __DRIVERS_STM32MP1_RCC_H__
86b651796SEtienne Carriere 
96b651796SEtienne Carriere #include <io.h>
106b651796SEtienne Carriere #include <stdbool.h>
116b651796SEtienne Carriere #include <util.h>
126b651796SEtienne Carriere 
136b651796SEtienne Carriere #define RCC_TZCR			0x00
146b651796SEtienne Carriere #define RCC_OCENSETR			0x0C
156b651796SEtienne Carriere #define RCC_OCENCLRR			0x10
166b651796SEtienne Carriere #define RCC_HSICFGR			0x18
176b651796SEtienne Carriere #define RCC_CSICFGR			0x1C
186b651796SEtienne Carriere #define RCC_MPCKSELR			0x20
196b651796SEtienne Carriere #define RCC_ASSCKSELR			0x24
206b651796SEtienne Carriere #define RCC_RCK12SELR			0x28
216b651796SEtienne Carriere #define RCC_MPCKDIVR			0x2C
226b651796SEtienne Carriere #define RCC_AXIDIVR			0x30
236b651796SEtienne Carriere #define RCC_APB4DIVR			0x3C
246b651796SEtienne Carriere #define RCC_APB5DIVR			0x40
256b651796SEtienne Carriere #define RCC_RTCDIVR			0x44
266b651796SEtienne Carriere #define RCC_MSSCKSELR			0x48
276b651796SEtienne Carriere #define RCC_PLL1CR			0x80
286b651796SEtienne Carriere #define RCC_PLL1CFGR1			0x84
296b651796SEtienne Carriere #define RCC_PLL1CFGR2			0x88
306b651796SEtienne Carriere #define RCC_PLL1FRACR			0x8C
316b651796SEtienne Carriere #define RCC_PLL1CSGR			0x90
326b651796SEtienne Carriere #define RCC_PLL2CR			0x94
336b651796SEtienne Carriere #define RCC_PLL2CFGR1			0x98
346b651796SEtienne Carriere #define RCC_PLL2CFGR2			0x9C
356b651796SEtienne Carriere #define RCC_PLL2FRACR			0xA0
366b651796SEtienne Carriere #define RCC_PLL2CSGR			0xA4
376b651796SEtienne Carriere #define RCC_I2C46CKSELR			0xC0
386b651796SEtienne Carriere #define RCC_SPI6CKSELR			0xC4
396b651796SEtienne Carriere #define RCC_UART1CKSELR			0xC8
406b651796SEtienne Carriere #define RCC_RNG1CKSELR			0xCC
416b651796SEtienne Carriere #define RCC_CPERCKSELR			0xD0
426b651796SEtienne Carriere #define RCC_STGENCKSELR			0xD4
436b651796SEtienne Carriere #define RCC_DDRITFCR			0xD8
446b651796SEtienne Carriere #define RCC_MP_BOOTCR			0x100
456b651796SEtienne Carriere #define RCC_MP_SREQSETR			0x104
466b651796SEtienne Carriere #define RCC_MP_SREQCLRR			0x108
476b651796SEtienne Carriere #define RCC_MP_GCR			0x10C
486b651796SEtienne Carriere #define RCC_MP_APRSTCR			0x110
496b651796SEtienne Carriere #define RCC_MP_APRSTSR			0x114
506b651796SEtienne Carriere #define RCC_BDCR			0x140
516b651796SEtienne Carriere #define RCC_RDLSICR			0x144
526b651796SEtienne Carriere #define RCC_APB4RSTSETR			0x180
536b651796SEtienne Carriere #define RCC_APB4RSTCLRR			0x184
546b651796SEtienne Carriere #define RCC_APB5RSTSETR			0x188
556b651796SEtienne Carriere #define RCC_APB5RSTCLRR			0x18C
566b651796SEtienne Carriere #define RCC_AHB5RSTSETR			0x190
576b651796SEtienne Carriere #define RCC_AHB5RSTCLRR			0x194
586b651796SEtienne Carriere #define RCC_AHB6RSTSETR			0x198
596b651796SEtienne Carriere #define RCC_AHB6RSTCLRR			0x19C
606b651796SEtienne Carriere #define RCC_TZAHB6RSTSETR		0x1A0
616b651796SEtienne Carriere #define RCC_TZAHB6RSTCLRR		0x1A4
626b651796SEtienne Carriere #define RCC_MP_APB4ENSETR		0x200
636b651796SEtienne Carriere #define RCC_MP_APB4ENCLRR		0x204
646b651796SEtienne Carriere #define RCC_MP_APB5ENSETR		0x208
656b651796SEtienne Carriere #define RCC_MP_APB5ENCLRR		0x20C
666b651796SEtienne Carriere #define RCC_MP_AHB5ENSETR		0x210
676b651796SEtienne Carriere #define RCC_MP_AHB5ENCLRR		0x214
686b651796SEtienne Carriere #define RCC_MP_AHB6ENSETR		0x218
696b651796SEtienne Carriere #define RCC_MP_AHB6ENCLRR		0x21C
706b651796SEtienne Carriere #define RCC_MP_TZAHB6ENSETR		0x220
716b651796SEtienne Carriere #define RCC_MP_TZAHB6ENCLRR		0x224
726b651796SEtienne Carriere #define RCC_MC_APB4ENSETR		0x280
736b651796SEtienne Carriere #define RCC_MC_APB4ENCLRR		0x284
746b651796SEtienne Carriere #define RCC_MC_APB5ENSETR		0x288
756b651796SEtienne Carriere #define RCC_MC_APB5ENCLRR		0x28C
766b651796SEtienne Carriere #define RCC_MC_AHB5ENSETR		0x290
776b651796SEtienne Carriere #define RCC_MC_AHB5ENCLRR		0x294
786b651796SEtienne Carriere #define RCC_MC_AHB6ENSETR		0x298
796b651796SEtienne Carriere #define RCC_MC_AHB6ENCLRR		0x29C
806b651796SEtienne Carriere #define RCC_MP_APB4LPENSETR		0x300
816b651796SEtienne Carriere #define RCC_MP_APB4LPENCLRR		0x304
826b651796SEtienne Carriere #define RCC_MP_APB5LPENSETR		0x308
836b651796SEtienne Carriere #define RCC_MP_APB5LPENCLRR		0x30C
846b651796SEtienne Carriere #define RCC_MP_AHB5LPENSETR		0x310
856b651796SEtienne Carriere #define RCC_MP_AHB5LPENCLRR		0x314
866b651796SEtienne Carriere #define RCC_MP_AHB6LPENSETR		0x318
876b651796SEtienne Carriere #define RCC_MP_AHB6LPENCLRR		0x31C
886b651796SEtienne Carriere #define RCC_MP_TZAHB6LPENSETR		0x320
896b651796SEtienne Carriere #define RCC_MP_TZAHB6LPENCLRR		0x324
906b651796SEtienne Carriere #define RCC_MC_APB4LPENSETR		0x380
916b651796SEtienne Carriere #define RCC_MC_APB4LPENCLRR		0x384
926b651796SEtienne Carriere #define RCC_MC_APB5LPENSETR		0x388
936b651796SEtienne Carriere #define RCC_MC_APB5LPENCLRR		0x38C
946b651796SEtienne Carriere #define RCC_MC_AHB5LPENSETR		0x390
956b651796SEtienne Carriere #define RCC_MC_AHB5LPENCLRR		0x394
966b651796SEtienne Carriere #define RCC_MC_AHB6LPENSETR		0x398
976b651796SEtienne Carriere #define RCC_MC_AHB6LPENCLRR		0x39C
986b651796SEtienne Carriere #define RCC_BR_RSTSCLRR			0x400
996b651796SEtienne Carriere #define RCC_MP_GRSTCSETR		0x404
1006b651796SEtienne Carriere #define RCC_MP_RSTSCLRR			0x408
1016b651796SEtienne Carriere #define RCC_MP_IWDGFZSETR		0x40C
1026b651796SEtienne Carriere #define RCC_MP_IWDGFZCLRR		0x410
1036b651796SEtienne Carriere #define RCC_MP_CIER			0x414
1046b651796SEtienne Carriere #define RCC_MP_CIFR			0x418
1056b651796SEtienne Carriere #define RCC_PWRLPDLYCR			0x41C
1066b651796SEtienne Carriere #define RCC_MP_RSTSSETR			0x420
1076b651796SEtienne Carriere #define RCC_MCO1CFGR			0x800
1086b651796SEtienne Carriere #define RCC_MCO2CFGR			0x804
1096b651796SEtienne Carriere #define RCC_OCRDYR			0x808
1106b651796SEtienne Carriere #define RCC_DBGCFGR			0x80C
1116b651796SEtienne Carriere #define RCC_RCK3SELR			0x820
1126b651796SEtienne Carriere #define RCC_RCK4SELR			0x824
1136b651796SEtienne Carriere #define RCC_TIMG1PRER			0x828
1146b651796SEtienne Carriere #define RCC_TIMG2PRER			0x82C
1156b651796SEtienne Carriere #define RCC_MCUDIVR			0x830
1166b651796SEtienne Carriere #define RCC_APB1DIVR			0x834
1176b651796SEtienne Carriere #define RCC_APB2DIVR			0x838
1186b651796SEtienne Carriere #define RCC_APB3DIVR			0x83C
1196b651796SEtienne Carriere #define RCC_PLL3CR			0x880
1206b651796SEtienne Carriere #define RCC_PLL3CFGR1			0x884
1216b651796SEtienne Carriere #define RCC_PLL3CFGR2			0x888
1226b651796SEtienne Carriere #define RCC_PLL3FRACR			0x88C
1236b651796SEtienne Carriere #define RCC_PLL3CSGR			0x890
1246b651796SEtienne Carriere #define RCC_PLL4CR			0x894
1256b651796SEtienne Carriere #define RCC_PLL4CFGR1			0x898
1266b651796SEtienne Carriere #define RCC_PLL4CFGR2			0x89C
1276b651796SEtienne Carriere #define RCC_PLL4FRACR			0x8A0
1286b651796SEtienne Carriere #define RCC_PLL4CSGR			0x8A4
1296b651796SEtienne Carriere #define RCC_I2C12CKSELR			0x8C0
1306b651796SEtienne Carriere #define RCC_I2C35CKSELR			0x8C4
1316b651796SEtienne Carriere #define RCC_SAI1CKSELR			0x8C8
1326b651796SEtienne Carriere #define RCC_SAI2CKSELR			0x8CC
1336b651796SEtienne Carriere #define RCC_SAI3CKSELR			0x8D0
1346b651796SEtienne Carriere #define RCC_SAI4CKSELR			0x8D4
1356b651796SEtienne Carriere #define RCC_SPI2S1CKSELR		0x8D8
1366b651796SEtienne Carriere #define RCC_SPI2S23CKSELR		0x8DC
1376b651796SEtienne Carriere #define RCC_SPI45CKSELR			0x8E0
1386b651796SEtienne Carriere #define RCC_UART6CKSELR			0x8E4
1396b651796SEtienne Carriere #define RCC_UART24CKSELR		0x8E8
1406b651796SEtienne Carriere #define RCC_UART35CKSELR		0x8EC
1416b651796SEtienne Carriere #define RCC_UART78CKSELR		0x8F0
1426b651796SEtienne Carriere #define RCC_SDMMC12CKSELR		0x8F4
1436b651796SEtienne Carriere #define RCC_SDMMC3CKSELR		0x8F8
1446b651796SEtienne Carriere #define RCC_ETHCKSELR			0x8FC
1456b651796SEtienne Carriere #define RCC_QSPICKSELR			0x900
1466b651796SEtienne Carriere #define RCC_FMCCKSELR			0x904
1476b651796SEtienne Carriere #define RCC_FDCANCKSELR			0x90C
1486b651796SEtienne Carriere #define RCC_SPDIFCKSELR			0x914
1496b651796SEtienne Carriere #define RCC_CECCKSELR			0x918
1506b651796SEtienne Carriere #define RCC_USBCKSELR			0x91C
1516b651796SEtienne Carriere #define RCC_RNG2CKSELR			0x920
1526b651796SEtienne Carriere #define RCC_DSICKSELR			0x924
1536b651796SEtienne Carriere #define RCC_ADCCKSELR			0x928
1546b651796SEtienne Carriere #define RCC_LPTIM45CKSELR		0x92C
1556b651796SEtienne Carriere #define RCC_LPTIM23CKSELR		0x930
1566b651796SEtienne Carriere #define RCC_LPTIM1CKSELR		0x934
1576b651796SEtienne Carriere #define RCC_APB1RSTSETR			0x980
1586b651796SEtienne Carriere #define RCC_APB1RSTCLRR			0x984
1596b651796SEtienne Carriere #define RCC_APB2RSTSETR			0x988
1606b651796SEtienne Carriere #define RCC_APB2RSTCLRR			0x98C
1616b651796SEtienne Carriere #define RCC_APB3RSTSETR			0x990
1626b651796SEtienne Carriere #define RCC_APB3RSTCLRR			0x994
1636b651796SEtienne Carriere #define RCC_AHB2RSTSETR			0x998
1646b651796SEtienne Carriere #define RCC_AHB2RSTCLRR			0x99C
1656b651796SEtienne Carriere #define RCC_AHB3RSTSETR			0x9A0
1666b651796SEtienne Carriere #define RCC_AHB3RSTCLRR			0x9A4
1676b651796SEtienne Carriere #define RCC_AHB4RSTSETR			0x9A8
1686b651796SEtienne Carriere #define RCC_AHB4RSTCLRR			0x9AC
1696b651796SEtienne Carriere #define RCC_MP_APB1ENSETR		0xA00
1706b651796SEtienne Carriere #define RCC_MP_APB1ENCLRR		0xA04
1716b651796SEtienne Carriere #define RCC_MP_APB2ENSETR		0xA08
1726b651796SEtienne Carriere #define RCC_MP_APB2ENCLRR		0xA0C
1736b651796SEtienne Carriere #define RCC_MP_APB3ENSETR		0xA10
1746b651796SEtienne Carriere #define RCC_MP_APB3ENCLRR		0xA14
1756b651796SEtienne Carriere #define RCC_MP_AHB2ENSETR		0xA18
1766b651796SEtienne Carriere #define RCC_MP_AHB2ENCLRR		0xA1C
1776b651796SEtienne Carriere #define RCC_MP_AHB3ENSETR		0xA20
1786b651796SEtienne Carriere #define RCC_MP_AHB3ENCLRR		0xA24
1796b651796SEtienne Carriere #define RCC_MP_AHB4ENSETR		0xA28
1806b651796SEtienne Carriere #define RCC_MP_AHB4ENCLRR		0xA2C
1816b651796SEtienne Carriere #define RCC_MP_MLAHBENSETR		0xA38
1826b651796SEtienne Carriere #define RCC_MP_MLAHBENCLRR		0xA3C
1836b651796SEtienne Carriere #define RCC_MC_APB1ENSETR		0xA80
1846b651796SEtienne Carriere #define RCC_MC_APB1ENCLRR		0xA84
1856b651796SEtienne Carriere #define RCC_MC_APB2ENSETR		0xA88
1866b651796SEtienne Carriere #define RCC_MC_APB2ENCLRR		0xA8C
1876b651796SEtienne Carriere #define RCC_MC_APB3ENSETR		0xA90
1886b651796SEtienne Carriere #define RCC_MC_APB3ENCLRR		0xA94
1896b651796SEtienne Carriere #define RCC_MC_AHB2ENSETR		0xA98
1906b651796SEtienne Carriere #define RCC_MC_AHB2ENCLRR		0xA9C
1916b651796SEtienne Carriere #define RCC_MC_AHB3ENSETR		0xAA0
1926b651796SEtienne Carriere #define RCC_MC_AHB3ENCLRR		0xAA4
1936b651796SEtienne Carriere #define RCC_MC_AHB4ENSETR		0xAA8
1946b651796SEtienne Carriere #define RCC_MC_AHB4ENCLRR		0xAAC
1956b651796SEtienne Carriere #define RCC_MC_AXIMENSETR		0xAB0
1966b651796SEtienne Carriere #define RCC_MC_AXIMENCLRR		0xAB4
1976b651796SEtienne Carriere #define RCC_MC_MLAHBENSETR		0xAB8
1986b651796SEtienne Carriere #define RCC_MC_MLAHBENCLRR		0xABC
1996b651796SEtienne Carriere #define RCC_MP_APB1LPENSETR		0xB00
2006b651796SEtienne Carriere #define RCC_MP_APB1LPENCLRR		0xB04
2016b651796SEtienne Carriere #define RCC_MP_APB2LPENSETR		0xB08
2026b651796SEtienne Carriere #define RCC_MP_APB2LPENCLRR		0xB0C
2036b651796SEtienne Carriere #define RCC_MP_APB3LPENSETR		0xB10
2046b651796SEtienne Carriere #define RCC_MP_APB3LPENCLRR		0xB14
2056b651796SEtienne Carriere #define RCC_MP_AHB2LPENSETR		0xB18
2066b651796SEtienne Carriere #define RCC_MP_AHB2LPENCLRR		0xB1C
2076b651796SEtienne Carriere #define RCC_MP_AHB3LPENSETR		0xB20
2086b651796SEtienne Carriere #define RCC_MP_AHB3LPENCLRR		0xB24
2096b651796SEtienne Carriere #define RCC_MP_AHB4LPENSETR		0xB28
2106b651796SEtienne Carriere #define RCC_MP_AHB4LPENCLRR		0xB2C
2116b651796SEtienne Carriere #define RCC_MP_AXIMLPENSETR		0xB30
2126b651796SEtienne Carriere #define RCC_MP_AXIMLPENCLRR		0xB34
2136b651796SEtienne Carriere #define RCC_MP_MLAHBLPENSETR		0xB38
2146b651796SEtienne Carriere #define RCC_MP_MLAHBLPENCLRR		0xB3C
2156b651796SEtienne Carriere #define RCC_MC_APB1LPENSETR		0xB80
2166b651796SEtienne Carriere #define RCC_MC_APB1LPENCLRR		0xB84
2176b651796SEtienne Carriere #define RCC_MC_APB2LPENSETR		0xB88
2186b651796SEtienne Carriere #define RCC_MC_APB2LPENCLRR		0xB8C
2196b651796SEtienne Carriere #define RCC_MC_APB3LPENSETR		0xB90
2206b651796SEtienne Carriere #define RCC_MC_APB3LPENCLRR		0xB94
2216b651796SEtienne Carriere #define RCC_MC_AHB2LPENSETR		0xB98
2226b651796SEtienne Carriere #define RCC_MC_AHB2LPENCLRR		0xB9C
2236b651796SEtienne Carriere #define RCC_MC_AHB3LPENSETR		0xBA0
2246b651796SEtienne Carriere #define RCC_MC_AHB3LPENCLRR		0xBA4
2256b651796SEtienne Carriere #define RCC_MC_AHB4LPENSETR		0xBA8
2266b651796SEtienne Carriere #define RCC_MC_AHB4LPENCLRR		0xBAC
2276b651796SEtienne Carriere #define RCC_MC_AXIMLPENSETR		0xBB0
2286b651796SEtienne Carriere #define RCC_MC_AXIMLPENCLRR		0xBB4
2296b651796SEtienne Carriere #define RCC_MC_MLAHBLPENSETR		0xBB8
2306b651796SEtienne Carriere #define RCC_MC_MLAHBLPENCLRR		0xBBC
2316b651796SEtienne Carriere #define RCC_MC_RSTSCLRR			0xC00
2326b651796SEtienne Carriere #define RCC_MC_CIER			0xC14
2336b651796SEtienne Carriere #define RCC_MC_CIFR			0xC18
2346b651796SEtienne Carriere #define RCC_VERR			0xFF4
2356b651796SEtienne Carriere #define RCC_IDR				0xFF8
2366b651796SEtienne Carriere #define RCC_SIDR			0xFFC
2376b651796SEtienne Carriere 
2386b651796SEtienne Carriere #define RCC_OFFSET_MASK			GENMASK_32(11, 0)
2396b651796SEtienne Carriere 
2406b651796SEtienne Carriere /* Values for RCC_TZCR register */
2416b651796SEtienne Carriere #define RCC_TZCR_TZEN			BIT(0)
2426b651796SEtienne Carriere #define RCC_TZCR_MCKPROT		BIT(1)
2436b651796SEtienne Carriere 
2446b651796SEtienne Carriere /* Used for most of RCC_<x>SELR registers */
2456b651796SEtienne Carriere #define RCC_SELR_SRC_MASK		GENMASK_32(2, 0)
2466b651796SEtienne Carriere #define RCC_SELR_REFCLK_SRC_MASK	GENMASK_32(1, 0)
2476b651796SEtienne Carriere #define RCC_SELR_SRCRDY			BIT(31)
2486b651796SEtienne Carriere 
2496b651796SEtienne Carriere /* Values of RCC_MPCKSELR register */
2506b651796SEtienne Carriere #define RCC_MPCKSELR_HSI		0x00000000
2516b651796SEtienne Carriere #define RCC_MPCKSELR_HSE		0x00000001
2526b651796SEtienne Carriere #define RCC_MPCKSELR_PLL		0x00000002
2536b651796SEtienne Carriere #define RCC_MPCKSELR_PLL_MPUDIV		0x00000003
2546b651796SEtienne Carriere 
2556b651796SEtienne Carriere /* Values of RCC_ASSCKSELR register */
2566b651796SEtienne Carriere #define RCC_ASSCKSELR_HSI		0x00000000
2576b651796SEtienne Carriere #define RCC_ASSCKSELR_HSE		0x00000001
2586b651796SEtienne Carriere #define RCC_ASSCKSELR_PLL		0x00000002
2596b651796SEtienne Carriere 
2606b651796SEtienne Carriere /* Values of RCC_MSSCKSELR register */
2616b651796SEtienne Carriere #define RCC_MSSCKSELR_HSI		0x00000000
2626b651796SEtienne Carriere #define RCC_MSSCKSELR_HSE		0x00000001
2636b651796SEtienne Carriere #define RCC_MSSCKSELR_CSI		0x00000002
2646b651796SEtienne Carriere #define RCC_MSSCKSELR_PLL		0x00000003
2656b651796SEtienne Carriere 
2666b651796SEtienne Carriere /* Values of RCC_CPERCKSELR register */
2676b651796SEtienne Carriere #define RCC_CPERCKSELR_HSI		0x00000000
2686b651796SEtienne Carriere #define RCC_CPERCKSELR_CSI		0x00000001
2696b651796SEtienne Carriere #define RCC_CPERCKSELR_HSE		0x00000002
2706b651796SEtienne Carriere 
2716b651796SEtienne Carriere /* used for most of RCC_<x>DIVR registers: max div for RTC */
2726b651796SEtienne Carriere #define RCC_DIVR_DIV_MASK		GENMASK_32(5, 0)
2736b651796SEtienne Carriere #define RCC_DIVR_DIVRDY			BIT(31)
2746b651796SEtienne Carriere 
2756b651796SEtienne Carriere /* Masks for specific DIVR registers */
2766b651796SEtienne Carriere #define RCC_APBXDIV_MASK		GENMASK_32(2, 0)
2776b651796SEtienne Carriere #define RCC_MPUDIV_MASK			GENMASK_32(2, 0)
2786b651796SEtienne Carriere #define RCC_AXIDIV_MASK			GENMASK_32(2, 0)
2796b651796SEtienne Carriere #define RCC_MCUDIV_MASK			GENMASK_32(3, 0)
2806b651796SEtienne Carriere 
2816b651796SEtienne Carriere /* Used for TIMER Prescaler */
2826b651796SEtienne Carriere #define RCC_TIMGXPRER_TIMGXPRE		BIT(0)
2836b651796SEtienne Carriere 
2846b651796SEtienne Carriere /* Offset between RCC_MP_xxxENSETR and RCC_MP_xxxENCLRR registers */
2856b651796SEtienne Carriere #define RCC_MP_ENCLRR_OFFSET		4u
2866b651796SEtienne Carriere 
2876b651796SEtienne Carriere /* Offset between RCC_MP_xxxRSTSETR and RCC_MP_xxxRSTCLRR registers */
2886b651796SEtienne Carriere #define RCC_MP_RSTCLRR_OFFSET		4u
2896b651796SEtienne Carriere 
2906b651796SEtienne Carriere /* Fields of RCC_BDCR register */
2916b651796SEtienne Carriere #define RCC_BDCR_LSEON			BIT(0)
2926b651796SEtienne Carriere #define RCC_BDCR_LSEBYP			BIT(1)
2936b651796SEtienne Carriere #define RCC_BDCR_LSERDY			BIT(2)
2946b651796SEtienne Carriere #define RCC_BDCR_DIGBYP			BIT(3)
2956b651796SEtienne Carriere #define RCC_BDCR_LSEDRV_MASK		GENMASK_32(5, 4)
2966b651796SEtienne Carriere #define RCC_BDCR_LSEDRV_SHIFT		4
2976b651796SEtienne Carriere #define RCC_BDCR_LSECSSON		BIT(8)
2986b651796SEtienne Carriere #define RCC_BDCR_RTCCKEN_POS		20
2996b651796SEtienne Carriere #define RCC_BDCR_RTCCKEN		BIT(RCC_BDCR_RTCCKEN_POS)
3006b651796SEtienne Carriere #define RCC_BDCR_RTCSRC_MASK		GENMASK_32(17, 16)
3016b651796SEtienne Carriere #define RCC_BDCR_RTCSRC_SHIFT		16
3026b651796SEtienne Carriere #define RCC_BDCR_VSWRST			BIT(31)
3036b651796SEtienne Carriere 
3046b651796SEtienne Carriere /* Fields of RCC_RDLSICR register */
3056b651796SEtienne Carriere #define RCC_RDLSICR_LSION		BIT(0)
3066b651796SEtienne Carriere #define RCC_RDLSICR_LSIRDY		BIT(1)
3076b651796SEtienne Carriere 
3086b651796SEtienne Carriere /* Used for all RCC_PLL<n>CR registers */
3096b651796SEtienne Carriere #define RCC_PLLNCR_PLLON		BIT(0)
3106b651796SEtienne Carriere #define RCC_PLLNCR_PLLRDY		BIT(1)
3116b651796SEtienne Carriere #define RCC_PLLNCR_SSCG_CTRL		BIT(2)
3126b651796SEtienne Carriere #define RCC_PLLNCR_DIVPEN		BIT(4)
3136b651796SEtienne Carriere #define RCC_PLLNCR_DIVQEN		BIT(5)
3146b651796SEtienne Carriere #define RCC_PLLNCR_DIVREN		BIT(6)
3156b651796SEtienne Carriere #define RCC_PLLNCR_DIVEN_SHIFT		4
3166b651796SEtienne Carriere 
3176b651796SEtienne Carriere /* Used for all RCC_PLL<n>CFGR1 registers */
3186b651796SEtienne Carriere #define RCC_PLLNCFGR1_DIVM_SHIFT	16
3196b651796SEtienne Carriere #define RCC_PLLNCFGR1_DIVM_MASK		GENMASK_32(21, 16)
3206b651796SEtienne Carriere #define RCC_PLLNCFGR1_DIVN_SHIFT	0
3216b651796SEtienne Carriere #define RCC_PLLNCFGR1_DIVN_MASK		GENMASK_32(8, 0)
3226b651796SEtienne Carriere /* Only for PLL3 and PLL4 */
3236b651796SEtienne Carriere #define RCC_PLLNCFGR1_IFRGE_SHIFT	24
3246b651796SEtienne Carriere #define RCC_PLLNCFGR1_IFRGE_MASK	GENMASK_32(25, 24)
3256b651796SEtienne Carriere 
3266b651796SEtienne Carriere /* Used for all RCC_PLL<n>CFGR2 registers */
3276b651796SEtienne Carriere #define RCC_PLLNCFGR2_DIVX_MASK		GENMASK_32(6, 0)
3286b651796SEtienne Carriere #define RCC_PLLNCFGR2_DIVP_SHIFT	0
3296b651796SEtienne Carriere #define RCC_PLLNCFGR2_DIVP_MASK		GENMASK_32(6, 0)
3306b651796SEtienne Carriere #define RCC_PLLNCFGR2_DIVQ_SHIFT	8
3316b651796SEtienne Carriere #define RCC_PLLNCFGR2_DIVQ_MASK		GENMASK_32(14, 8)
3326b651796SEtienne Carriere #define RCC_PLLNCFGR2_DIVR_SHIFT	16
3336b651796SEtienne Carriere #define RCC_PLLNCFGR2_DIVR_MASK		GENMASK_32(22, 16)
3346b651796SEtienne Carriere 
3356b651796SEtienne Carriere /* Used for all RCC_PLL<n>FRACR registers */
3366b651796SEtienne Carriere #define RCC_PLLNFRACR_FRACV_SHIFT	3
3376b651796SEtienne Carriere #define RCC_PLLNFRACR_FRACV_MASK	GENMASK_32(15, 3)
3386b651796SEtienne Carriere #define RCC_PLLNFRACR_FRACLE		BIT(16)
3396b651796SEtienne Carriere 
3406b651796SEtienne Carriere /* Used for all RCC_PLL<n>CSGR registers */
3416b651796SEtienne Carriere #define RCC_PLLNCSGR_INC_STEP_SHIFT	16
3426b651796SEtienne Carriere #define RCC_PLLNCSGR_INC_STEP_MASK	GENMASK_32(30, 16)
3436b651796SEtienne Carriere #define RCC_PLLNCSGR_MOD_PER_SHIFT	0
3446b651796SEtienne Carriere #define RCC_PLLNCSGR_MOD_PER_MASK	GENMASK_32(12, 0)
3456b651796SEtienne Carriere #define RCC_PLLNCSGR_SSCG_MODE_SHIFT	15
3466b651796SEtienne Carriere #define RCC_PLLNCSGR_SSCG_MODE_MASK	BIT(15)
3476b651796SEtienne Carriere 
3486b651796SEtienne Carriere /* Used for RCC_OCENSETR and RCC_OCENCLRR registers */
3496b651796SEtienne Carriere #define RCC_OCENR_HSION			BIT(0)
3506b651796SEtienne Carriere #define RCC_OCENR_HSIKERON		BIT(1)
3516b651796SEtienne Carriere #define RCC_OCENR_CSION			BIT(4)
3526b651796SEtienne Carriere #define RCC_OCENR_CSIKERON		BIT(5)
3536b651796SEtienne Carriere #define RCC_OCENR_DIGBYP		BIT(7)
3546b651796SEtienne Carriere #define RCC_OCENR_HSEON			BIT(8)
3556b651796SEtienne Carriere #define RCC_OCENR_HSEKERON		BIT(9)
3566b651796SEtienne Carriere #define RCC_OCENR_HSEBYP		BIT(10)
3576b651796SEtienne Carriere #define RCC_OCENR_HSECSSON		BIT(11)
3586b651796SEtienne Carriere 
3596b651796SEtienne Carriere /* Fields of RCC_OCRDYR register */
3606b651796SEtienne Carriere #define RCC_OCRDYR_HSIRDY		BIT(0)
3616b651796SEtienne Carriere #define RCC_OCRDYR_HSIDIVRDY		BIT(2)
3626b651796SEtienne Carriere #define RCC_OCRDYR_CSIRDY		BIT(4)
3636b651796SEtienne Carriere #define RCC_OCRDYR_HSERDY		BIT(8)
3646b651796SEtienne Carriere 
3656b651796SEtienne Carriere /* Fields of RCC_DDRITFCR register */
3666b651796SEtienne Carriere #define RCC_DDRITFCR_DDRC1EN		BIT(0)
3676b651796SEtienne Carriere #define RCC_DDRITFCR_DDRC1LPEN		BIT(1)
3686b651796SEtienne Carriere #define RCC_DDRITFCR_DDRC2EN		BIT(2)
3696b651796SEtienne Carriere #define RCC_DDRITFCR_DDRC2LPEN		BIT(3)
3706b651796SEtienne Carriere #define RCC_DDRITFCR_DDRPHYCEN		BIT(4)
3716b651796SEtienne Carriere #define RCC_DDRITFCR_DDRPHYCLPEN	BIT(5)
3726b651796SEtienne Carriere #define RCC_DDRITFCR_DDRCAPBEN		BIT(6)
3736b651796SEtienne Carriere #define RCC_DDRITFCR_DDRCAPBLPEN	BIT(7)
3746b651796SEtienne Carriere #define RCC_DDRITFCR_AXIDCGEN		BIT(8)
3756b651796SEtienne Carriere #define RCC_DDRITFCR_DDRPHYCAPBEN	BIT(9)
3766b651796SEtienne Carriere #define RCC_DDRITFCR_DDRPHYCAPBLPEN	BIT(10)
3776b651796SEtienne Carriere #define RCC_DDRITFCR_DDRCAPBRST		BIT(14)
3786b651796SEtienne Carriere #define RCC_DDRITFCR_DDRCAXIRST		BIT(15)
3796b651796SEtienne Carriere #define RCC_DDRITFCR_DDRCORERST		BIT(16)
3806b651796SEtienne Carriere #define RCC_DDRITFCR_DPHYAPBRST		BIT(17)
3816b651796SEtienne Carriere #define RCC_DDRITFCR_DPHYRST		BIT(18)
3826b651796SEtienne Carriere #define RCC_DDRITFCR_DPHYCTLRST		BIT(19)
3836b651796SEtienne Carriere #define RCC_DDRITFCR_DDRCKMOD_MASK	GENMASK_32(22, 20)
3846b651796SEtienne Carriere #define RCC_DDRITFCR_DDRCKMOD_SHIFT	20
3856b651796SEtienne Carriere #define RCC_DDRITFCR_DDRCKMOD_SSR	0
3866b651796SEtienne Carriere #define RCC_DDRITFCR_DDRCKMOD_ASR1	BIT(20)
3876b651796SEtienne Carriere #define RCC_DDRITFCR_DDRCKMOD_HSR1	BIT(21)
3886b651796SEtienne Carriere #define RCC_DDRITFCR_GSKPCTRL		BIT(24)
3896b651796SEtienne Carriere 
3906b651796SEtienne Carriere /* Fields of RCC_HSICFGR register */
3916b651796SEtienne Carriere #define RCC_HSICFGR_HSIDIV_MASK		GENMASK_32(1, 0)
3926b651796SEtienne Carriere #define RCC_HSICFGR_HSITRIM_SHIFT	8
3936b651796SEtienne Carriere #define RCC_HSICFGR_HSITRIM_MASK	GENMASK_32(14, 8)
3946b651796SEtienne Carriere #define RCC_HSICFGR_HSICAL_SHIFT	16
3956b651796SEtienne Carriere #define RCC_HSICFGR_HSICAL_MASK		GENMASK_32(27, 16)
3966b651796SEtienne Carriere 
3976b651796SEtienne Carriere /* Fields of RCC_CSICFGR register */
3986b651796SEtienne Carriere #define RCC_CSICFGR_CSITRIM_SHIFT	8
3996b651796SEtienne Carriere #define RCC_CSICFGR_CSITRIM_MASK	GENMASK_32(12, 8)
4006b651796SEtienne Carriere #define RCC_CSICFGR_CSICAL_SHIFT	16
4016b651796SEtienne Carriere #define RCC_CSICFGR_CSICAL_MASK		GENMASK_32(23, 16)
4026b651796SEtienne Carriere 
4036b651796SEtienne Carriere /* Used for RCC_MCO related operations */
4046b651796SEtienne Carriere #define RCC_MCOCFG_MCOON		BIT(12)
4056b651796SEtienne Carriere #define RCC_MCOCFG_MCODIV_MASK		GENMASK_32(7, 4)
4066b651796SEtienne Carriere #define RCC_MCOCFG_MCODIV_SHIFT		4
4076b651796SEtienne Carriere #define RCC_MCOCFG_MCOSRC_MASK		GENMASK_32(2, 0)
4086b651796SEtienne Carriere 
4096b651796SEtienne Carriere /* Fields of RCC_DBGCFGR register */
4106b651796SEtienne Carriere #define RCC_DBGCFGR_DBGCKEN		BIT(8)
4116b651796SEtienne Carriere 
4126b651796SEtienne Carriere /* RCC register fields for reset reasons */
4136b651796SEtienne Carriere #define RCC_MP_RSTSCLRR_PORRSTF		BIT(0)
4146b651796SEtienne Carriere #define RCC_MP_RSTSCLRR_BORRSTF		BIT(1)
4156b651796SEtienne Carriere #define RCC_MP_RSTSCLRR_PADRSTF		BIT(2)
4166b651796SEtienne Carriere #define RCC_MP_RSTSCLRR_HCSSRSTF	BIT(3)
4176b651796SEtienne Carriere #define RCC_MP_RSTSCLRR_VCORERSTF	BIT(4)
4186b651796SEtienne Carriere #define RCC_MP_RSTSCLRR_MPSYSRSTF	BIT(6)
4196b651796SEtienne Carriere #define RCC_MP_RSTSCLRR_MCSYSRSTF	BIT(7)
4206b651796SEtienne Carriere #define RCC_MP_RSTSCLRR_IWDG1RSTF	BIT(8)
4216b651796SEtienne Carriere #define RCC_MP_RSTSCLRR_IWDG2RSTF	BIT(9)
4226b651796SEtienne Carriere #define RCC_MP_RSTSCLRR_STDBYRSTF	BIT(11)
4236b651796SEtienne Carriere #define RCC_MP_RSTSCLRR_CSTDBYRSTF	BIT(12)
4246b651796SEtienne Carriere 
4256b651796SEtienne Carriere /* Global Reset Register */
4266b651796SEtienne Carriere #define RCC_MP_GRSTCSETR_MPSYSRST	BIT(0)
4276b651796SEtienne Carriere #define RCC_MP_GRSTCSETR_MCURST		BIT(1)
4286b651796SEtienne Carriere #define RCC_MP_GRSTCSETR_MPUP0RST	BIT(4)
4296b651796SEtienne Carriere #define RCC_MP_GRSTCSETR_MPUP1RST	BIT(5)
4306b651796SEtienne Carriere 
4316b651796SEtienne Carriere /* Clock Source Interrupt Flag Register */
4326b651796SEtienne Carriere #define RCC_MP_CIFR_LSIRDYF		BIT(0)
4336b651796SEtienne Carriere #define RCC_MP_CIFR_LSERDYF		BIT(1)
4346b651796SEtienne Carriere #define RCC_MP_CIFR_HSIRDYF		BIT(2)
4356b651796SEtienne Carriere #define RCC_MP_CIFR_HSERDYF		BIT(3)
4366b651796SEtienne Carriere #define RCC_MP_CIFR_CSIRDYF		BIT(4)
4376b651796SEtienne Carriere #define RCC_MP_CIFR_PLL1DYF		BIT(8)
4386b651796SEtienne Carriere #define RCC_MP_CIFR_PLL2DYF		BIT(9)
4396b651796SEtienne Carriere #define RCC_MP_CIFR_PLL3DYF		BIT(10)
4406b651796SEtienne Carriere #define RCC_MP_CIFR_PLL4DYF		BIT(11)
4416b651796SEtienne Carriere #define RCC_MP_CIFR_LSECSSF		BIT(16)
4426b651796SEtienne Carriere #define RCC_MP_CIFR_WKUPF		BIT(20)
4436b651796SEtienne Carriere #define RCC_MP_CIFR_MASK	(RCC_MP_CIFR_LSIRDYF | RCC_MP_CIFR_LSERDYF | \
4446b651796SEtienne Carriere 				 RCC_MP_CIFR_HSIRDYF | RCC_MP_CIFR_HSERDYF | \
4456b651796SEtienne Carriere 				 RCC_MP_CIFR_CSIRDYF | RCC_MP_CIFR_PLL1DYF | \
4466b651796SEtienne Carriere 				 RCC_MP_CIFR_PLL2DYF | RCC_MP_CIFR_PLL3DYF | \
4476b651796SEtienne Carriere 				 RCC_MP_CIFR_PLL4DYF | RCC_MP_CIFR_LSECSSF | \
4486b651796SEtienne Carriere 				 RCC_MP_CIFR_WKUPF)
4496b651796SEtienne Carriere 
4506b651796SEtienne Carriere /* Stop Request Set Register */
4516b651796SEtienne Carriere #define RCC_MP_SREQSETR_STPREQ_P0	BIT(0)
4526b651796SEtienne Carriere #define RCC_MP_SREQSETR_STPREQ_P1	BIT(1)
4536b651796SEtienne Carriere 
4546b651796SEtienne Carriere /* Stop Request Clear Register */
4556b651796SEtienne Carriere #define RCC_MP_SREQCLRR_STPREQ_P0	BIT(0)
4566b651796SEtienne Carriere #define RCC_MP_SREQCLRR_STPREQ_P1	BIT(1)
4576b651796SEtienne Carriere 
4586b651796SEtienne Carriere /* Global Control Register */
4596b651796SEtienne Carriere #define RCC_MP_GCR_BOOT_MCU		BIT(0)
4606b651796SEtienne Carriere 
4616b651796SEtienne Carriere /* RCC_MP_APB5RST(SET|CLR)R bit fields */
4626b651796SEtienne Carriere #define RCC_APB5RSTSETR_SPI6RST		BIT(0)
4636b651796SEtienne Carriere #define RCC_APB5RSTSETR_I2C4RST		BIT(2)
4646b651796SEtienne Carriere #define RCC_APB5RSTSETR_I2C6RST		BIT(3)
4656b651796SEtienne Carriere #define RCC_APB5RSTSETR_USART1RST	BIT(4)
4666b651796SEtienne Carriere #define RCC_APB5RSTSETR_STGENRST	BIT(20)
4676b651796SEtienne Carriere 
468a3009556SMichael Scott /* RCC_MP_APB1EN(SET|CLR)R bit fields */
469a3009556SMichael Scott #define RCC_MP_APB1ENSETR_I2C5EN_POS		24
470a3009556SMichael Scott 
471a3009556SMichael Scott #define RCC_MP_APB1ENSETR_I2C5EN	BIT(RCC_MP_APB1ENSETR_I2C5EN_POS)
472a3009556SMichael Scott 
4736b651796SEtienne Carriere /* RCC_MP_APB5EN(SET|CLR)R bit fields */
4746b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_SPI6EN_POS		0
4756b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_I2C4EN_POS		2
4766b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_I2C6EN_POS		3
4776b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_USART1EN_POS		4
4786b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_RTCAPBEN_POS		8
4796b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_TZC1EN_POS		11
4806b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_TZC2EN_POS		12
4816b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_TZPCEN_POS		13
4826b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_IWDG1APBEN_POS	15
4836b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_BSECEN_POS		16
4846b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_STGENEN_POS		20
4856b651796SEtienne Carriere 
4866b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_SPI6EN	BIT(RCC_MP_APB5ENSETR_SPI6EN_POS)
4876b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_I2C4EN	BIT(RCC_MP_APB5ENSETR_I2C4EN_POS)
4886b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_I2C6EN	BIT(RCC_MP_APB5ENSETR_I2C6EN_POS)
4896b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_USART1EN	BIT(RCC_MP_APB5ENSETR_USART1EN_POS)
4906b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_RTCAPBEN	BIT(RCC_MP_APB5ENSETR_RTCAPBEN_POS)
4916b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_TZC1EN	BIT(RCC_MP_APB5ENSETR_TZC1EN_POS)
4926b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_TZC2EN	BIT(RCC_MP_APB5ENSETR_TZC2EN_POS)
4936b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_TZPCEN	BIT(RCC_MP_APB5ENSETR_TZPCEN_POS)
4946b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_IWDG1APBEN	BIT(RCC_MP_APB5ENSETR_IWDG1APBEN_POS)
4956b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_BSECEN	BIT(RCC_MP_APB5ENSETR_BSECEN_POS)
4966b651796SEtienne Carriere #define RCC_MP_APB5ENSETR_STGENEN	BIT(RCC_MP_APB5ENSETR_STGENEN_POS)
4976b651796SEtienne Carriere 
4986b651796SEtienne Carriere /* RCC_MP_APB5LPEN(SET|CLR)R bit fields */
4996b651796SEtienne Carriere #define RCC_MP_APB5LPENSETR_SPI6LPEN		BIT(0)
5006b651796SEtienne Carriere #define RCC_MP_APB5LPENSETR_I2C4LPEN		BIT(2)
5016b651796SEtienne Carriere #define RCC_MP_APB5LPENSETR_I2C6LPEN		BIT(3)
5026b651796SEtienne Carriere #define RCC_MP_APB5LPENSETR_USART1LPEN		BIT(4)
5036b651796SEtienne Carriere #define RCC_MP_APB5LPENSETR_RTCAPBLPEN		BIT(8)
5046b651796SEtienne Carriere #define RCC_MP_APB5LPENSETR_TZC1LPEN		BIT(11)
5056b651796SEtienne Carriere #define RCC_MP_APB5LPENSETR_TZC2LPEN		BIT(12)
5066b651796SEtienne Carriere #define RCC_MP_APB5LPENSETR_TZPCLPEN		BIT(13)
5076b651796SEtienne Carriere #define RCC_MP_APB5LPENSETR_IWDG1APBLPEN	BIT(15)
5086b651796SEtienne Carriere #define RCC_MP_APB5LPENSETR_BSECLPEN		BIT(16)
5096b651796SEtienne Carriere #define RCC_MP_APB5LPENSETR_STGENLPEN		BIT(20)
5106b651796SEtienne Carriere #define RCC_MP_APB5LPENSETR_STGENSTPEN		BIT(21)
5116b651796SEtienne Carriere 
5126b651796SEtienne Carriere /* RCC_MP_AHB5RST(SET|CLR)R bit fields */
5136b651796SEtienne Carriere #define RCC_AHB5RSTSETR_GPIOZRST		BIT(0)
5146b651796SEtienne Carriere #define RCC_AHB5RSTSETR_CRYP1RST		BIT(4)
5156b651796SEtienne Carriere #define RCC_AHB5RSTSETR_HASH1RST		BIT(5)
5166b651796SEtienne Carriere #define RCC_AHB5RSTSETR_RNG1RST			BIT(6)
5176b651796SEtienne Carriere #define RCC_AHB5RSTSETR_AXIMCRST		BIT(16)
5186b651796SEtienne Carriere 
5196b651796SEtienne Carriere /* RCC_MP_AHB5EN(SET|CLR)R bit fields */
5206b651796SEtienne Carriere #define RCC_MP_AHB5ENSETR_GPIOZEN_POS		0
5216b651796SEtienne Carriere #define RCC_MP_AHB5ENSETR_CRYP1EN_POS		4
5226b651796SEtienne Carriere #define RCC_MP_AHB5ENSETR_HASH1EN_POS		5
5236b651796SEtienne Carriere #define RCC_MP_AHB5ENSETR_RNG1EN_POS		6
5246b651796SEtienne Carriere #define RCC_MP_AHB5ENSETR_BKPSRAMEN_POS		8
5256b651796SEtienne Carriere #define RCC_MP_AHB5ENSETR_AXIMCEN_POS		16
5266b651796SEtienne Carriere 
5276b651796SEtienne Carriere #define RCC_MP_AHB5ENSETR_GPIOZEN	BIT(RCC_MP_AHB5ENSETR_GPIOZEN_POS)
5286b651796SEtienne Carriere #define RCC_MP_AHB5ENSETR_CRYP1EN	BIT(RCC_MP_AHB5ENSETR_CRYP1EN_POS)
5296b651796SEtienne Carriere #define RCC_MP_AHB5ENSETR_HASH1EN	BIT(RCC_MP_AHB5ENSETR_HASH1EN_POS)
5306b651796SEtienne Carriere #define RCC_MP_AHB5ENSETR_RNG1EN	BIT(RCC_MP_AHB5ENSETR_RNG1EN_POS)
5316b651796SEtienne Carriere #define RCC_MP_AHB5ENSETR_BKPSRAMEN	BIT(RCC_MP_AHB5ENSETR_BKPSRAMEN_POS)
5326b651796SEtienne Carriere #define RCC_MP_AHB5ENSETR_AXIMCEN	BIT(RCC_MP_AHB5ENSETR_AXIMCEN_POS)
5336b651796SEtienne Carriere 
5346b651796SEtienne Carriere /* RCC_MP_AHB5LPEN(SET|CLR)R bit fields */
5356b651796SEtienne Carriere #define RCC_MP_AHB5LPENSETR_GPIOZLPEN		BIT(0)
5366b651796SEtienne Carriere #define RCC_MP_AHB5LPENSETR_CRYP1LPEN		BIT(4)
5376b651796SEtienne Carriere #define RCC_MP_AHB5LPENSETR_HASH1LPEN		BIT(5)
5386b651796SEtienne Carriere #define RCC_MP_AHB5LPENSETR_RNG1LPEN		BIT(6)
5396b651796SEtienne Carriere #define RCC_MP_AHB5LPENSETR_BKPSRAMLPEN		BIT(8)
5406b651796SEtienne Carriere 
5416b651796SEtienne Carriere /* RCC_MP_TZAHB6EN(SET|CLR)R bit fields */
5426b651796SEtienne Carriere #define RCC_MP_TZAHB6ENSETR_MDMA_POS	0
5436b651796SEtienne Carriere #define RCC_MP_TZAHB6ENSETR_MDMA	BIT(RCC_MP_TZAHB6ENSETR_MDMA_POS)
5446b651796SEtienne Carriere 
5456b651796SEtienne Carriere /* RCC_MP_IWDGFZ(SET|CLR)R bit fields */
5466b651796SEtienne Carriere #define RCC_MP_IWDGFZSETR_IWDG1			BIT(0)
5476b651796SEtienne Carriere #define RCC_MP_IWDGFZSETR_IWDG2			BIT(1)
5486b651796SEtienne Carriere 
5496b651796SEtienne Carriere #define DT_RCC_CLK_COMPAT		"st,stm32mp1-rcc"
5506b651796SEtienne Carriere #define DT_RCC_SECURE_CLK_COMPAT	"st,stm32mp1-rcc-secure"
5516b651796SEtienne Carriere 
5526b651796SEtienne Carriere #ifndef __ASSEMBLER__
553569d17b0SEtienne Carriere #include <stm32_util.h>
5546b651796SEtienne Carriere 
stm32_rcc_is_secure(void)5556b651796SEtienne Carriere static inline bool stm32_rcc_is_secure(void)
5566b651796SEtienne Carriere {
5576b651796SEtienne Carriere 	return io_read32(stm32_rcc_base() + RCC_TZCR) & RCC_TZCR_TZEN;
5586b651796SEtienne Carriere }
5596b651796SEtienne Carriere 
stm32_rcc_is_mckprot(void)5606b651796SEtienne Carriere static inline bool stm32_rcc_is_mckprot(void)
5616b651796SEtienne Carriere {
5626b651796SEtienne Carriere 	return io_read32(stm32_rcc_base() + RCC_TZCR) & RCC_TZCR_MCKPROT;
5636b651796SEtienne Carriere }
564*e07f9212SEtienne Carriere 
stm32_rcc_set_mckprot(bool enable)565*e07f9212SEtienne Carriere static inline void stm32_rcc_set_mckprot(bool enable)
566*e07f9212SEtienne Carriere {
567*e07f9212SEtienne Carriere 	vaddr_t tzcr_reg = stm32_rcc_base() + RCC_TZCR;
568*e07f9212SEtienne Carriere 
569*e07f9212SEtienne Carriere 	if (enable)
570*e07f9212SEtienne Carriere 		io_setbits32(tzcr_reg, RCC_TZCR_MCKPROT);
571*e07f9212SEtienne Carriere 	else
572*e07f9212SEtienne Carriere 		io_clrbits32(tzcr_reg, RCC_TZCR_MCKPROT);
573*e07f9212SEtienne Carriere }
574*e07f9212SEtienne Carriere 
5756b651796SEtienne Carriere #endif /*__ASSEMBLER__*/
5766b651796SEtienne Carriere 
5776b651796SEtienne Carriere #endif /*__DRIVERS_STM32MP1_RCC_H__*/
578