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