1*2ec3cec5SNicolas Le Bayon /* 2*2ec3cec5SNicolas Le Bayon * Copyright (c) 2025, STMicroelectronics - All Rights Reserved 3*2ec3cec5SNicolas Le Bayon * 4*2ec3cec5SNicolas Le Bayon * SPDX-License-Identifier: BSD-3-Clause 5*2ec3cec5SNicolas Le Bayon */ 6*2ec3cec5SNicolas Le Bayon 7*2ec3cec5SNicolas Le Bayon #ifndef STM32MP21_PWR_H 8*2ec3cec5SNicolas Le Bayon #define STM32MP21_PWR_H 9*2ec3cec5SNicolas Le Bayon 10*2ec3cec5SNicolas Le Bayon #include <lib/utils_def.h> 11*2ec3cec5SNicolas Le Bayon 12*2ec3cec5SNicolas Le Bayon #define PWR_CR1 U(0x00) 13*2ec3cec5SNicolas Le Bayon #define PWR_CR2 U(0x04) 14*2ec3cec5SNicolas Le Bayon #define PWR_CR3 U(0x08) 15*2ec3cec5SNicolas Le Bayon #define PWR_CR7 U(0x18) 16*2ec3cec5SNicolas Le Bayon #define PWR_CR8 U(0x1C) 17*2ec3cec5SNicolas Le Bayon #define PWR_CR9 U(0x20) 18*2ec3cec5SNicolas Le Bayon #define PWR_CR10 U(0x24) 19*2ec3cec5SNicolas Le Bayon #define PWR_CR11 U(0x28) 20*2ec3cec5SNicolas Le Bayon #define PWR_BDCR U(0x38) 21*2ec3cec5SNicolas Le Bayon #define PWR_CPU1CR U(0x40) 22*2ec3cec5SNicolas Le Bayon #define PWR_CPU2CR U(0x44) 23*2ec3cec5SNicolas Le Bayon #define PWR_D1CR U(0x4C) 24*2ec3cec5SNicolas Le Bayon #define PWR_D2CR U(0x50) 25*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR1 U(0x60) 26*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR2 U(0x64) 27*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR3 U(0x68) 28*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR4 U(0x6C) 29*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR5 U(0x70) 30*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR6 U(0x74) 31*2ec3cec5SNicolas Le Bayon #define PWR_RSECCFGR U(0x100) 32*2ec3cec5SNicolas Le Bayon #define PWR_RPRIVCFGR U(0x104) 33*2ec3cec5SNicolas Le Bayon #define PWR_R0CIDCFGR U(0x108) 34*2ec3cec5SNicolas Le Bayon #define PWR_R1CIDCFGR U(0x10C) 35*2ec3cec5SNicolas Le Bayon #define PWR_R2CIDCFGR U(0x110) 36*2ec3cec5SNicolas Le Bayon #define PWR_R3CIDCFGR U(0x114) 37*2ec3cec5SNicolas Le Bayon #define PWR_R4CIDCFGR U(0x118) 38*2ec3cec5SNicolas Le Bayon #define PWR_R5CIDCFGR U(0x11C) 39*2ec3cec5SNicolas Le Bayon #define PWR_R6CIDCFGR U(0x120) 40*2ec3cec5SNicolas Le Bayon #define PWR_WIOSECCFGR U(0x180) 41*2ec3cec5SNicolas Le Bayon #define PWR_WIOPRIVCFGR U(0x184) 42*2ec3cec5SNicolas Le Bayon #define PWR_WIO1CIDCFGR U(0x188) 43*2ec3cec5SNicolas Le Bayon #define PWR_WIO1SEMCR U(0x18C) 44*2ec3cec5SNicolas Le Bayon #define PWR_WIO2CIDCFGR U(0x190) 45*2ec3cec5SNicolas Le Bayon #define PWR_WIO2SEMCR U(0x194) 46*2ec3cec5SNicolas Le Bayon #define PWR_WIO3CIDCFGR U(0x198) 47*2ec3cec5SNicolas Le Bayon #define PWR_WIO3SEMCR U(0x19C) 48*2ec3cec5SNicolas Le Bayon #define PWR_WIO4CIDCFGR U(0x1A0) 49*2ec3cec5SNicolas Le Bayon #define PWR_WIO4SEMCR U(0x1A4) 50*2ec3cec5SNicolas Le Bayon #define PWR_WIO5CIDCFGR U(0x1A8) 51*2ec3cec5SNicolas Le Bayon #define PWR_WIO5SEMCR U(0x1AC) 52*2ec3cec5SNicolas Le Bayon #define PWR_WIO6CIDCFGR U(0x1B0) 53*2ec3cec5SNicolas Le Bayon #define PWR_WIO6SEMCR U(0x1B4) 54*2ec3cec5SNicolas Le Bayon #define PWR_CPU1D1SR U(0x200) 55*2ec3cec5SNicolas Le Bayon #define PWR_CPU2D2SR U(0x204) 56*2ec3cec5SNicolas Le Bayon #define PWR_DBGR U(0x308) 57*2ec3cec5SNicolas Le Bayon #define PWR_VERR U(0x3F4) 58*2ec3cec5SNicolas Le Bayon #define PWR_IPIDR U(0x3F8) 59*2ec3cec5SNicolas Le Bayon #define PWR_SIDR U(0x3FC) 60*2ec3cec5SNicolas Le Bayon 61*2ec3cec5SNicolas Le Bayon /* PWR_CR1 register fields */ 62*2ec3cec5SNicolas Le Bayon #define PWR_CR1_VDDIO3VMEN BIT(0) 63*2ec3cec5SNicolas Le Bayon #define PWR_CR1_USB33VMEN BIT(2) 64*2ec3cec5SNicolas Le Bayon #define PWR_CR1_AVMEN BIT(4) 65*2ec3cec5SNicolas Le Bayon #define PWR_CR1_VDDIO3SV BIT(8) 66*2ec3cec5SNicolas Le Bayon #define PWR_CR1_USB33SV BIT(10) 67*2ec3cec5SNicolas Le Bayon #define PWR_CR1_ASV BIT(12) 68*2ec3cec5SNicolas Le Bayon #define PWR_CR1_VDDIO3RDY BIT(16) 69*2ec3cec5SNicolas Le Bayon #define PWR_CR1_USB33RDY BIT(18) 70*2ec3cec5SNicolas Le Bayon #define PWR_CR1_ARDY BIT(20) 71*2ec3cec5SNicolas Le Bayon #define PWR_CR1_VDDIOVRSEL BIT(24) 72*2ec3cec5SNicolas Le Bayon #define PWR_CR1_VDDIO3VRSEL BIT(25) 73*2ec3cec5SNicolas Le Bayon #define PWR_CR1_GPVMO BIT(31) 74*2ec3cec5SNicolas Le Bayon 75*2ec3cec5SNicolas Le Bayon /* PWR_CR2 register fields */ 76*2ec3cec5SNicolas Le Bayon #define PWR_CR2_MONEN BIT(0) 77*2ec3cec5SNicolas Le Bayon #define PWR_CR2_VBATL BIT(8) 78*2ec3cec5SNicolas Le Bayon #define PWR_CR2_VBATH BIT(9) 79*2ec3cec5SNicolas Le Bayon #define PWR_CR2_TEMPL BIT(10) 80*2ec3cec5SNicolas Le Bayon #define PWR_CR2_TEMPH BIT(11) 81*2ec3cec5SNicolas Le Bayon 82*2ec3cec5SNicolas Le Bayon /* PWR_CR3 register fields */ 83*2ec3cec5SNicolas Le Bayon #define PWR_CR3_PVDEN BIT(0) 84*2ec3cec5SNicolas Le Bayon #define PWR_CR3_PVDO BIT(8) 85*2ec3cec5SNicolas Le Bayon 86*2ec3cec5SNicolas Le Bayon /* PWR_CR7 register fields */ 87*2ec3cec5SNicolas Le Bayon #define PWR_CR7_VDDIO2VMEN BIT(0) 88*2ec3cec5SNicolas Le Bayon #define PWR_CR7_VDDIO2SV BIT(8) 89*2ec3cec5SNicolas Le Bayon #define PWR_CR7_VDDIO2RDY BIT(16) 90*2ec3cec5SNicolas Le Bayon #define PWR_CR7_VDDIO2VRSEL BIT(24) 91*2ec3cec5SNicolas Le Bayon #define PWR_CR7_VDDIO2VRSTBY BIT(25) 92*2ec3cec5SNicolas Le Bayon 93*2ec3cec5SNicolas Le Bayon /* PWR_CR8 register fields */ 94*2ec3cec5SNicolas Le Bayon #define PWR_CR8_VDDIO1VMEN BIT(0) 95*2ec3cec5SNicolas Le Bayon #define PWR_CR8_VDDIO1SV BIT(8) 96*2ec3cec5SNicolas Le Bayon #define PWR_CR8_VDDIO1RDY BIT(16) 97*2ec3cec5SNicolas Le Bayon #define PWR_CR8_VDDIO1VRSEL BIT(24) 98*2ec3cec5SNicolas Le Bayon #define PWR_CR8_VDDIO1VRSTBY BIT(25) 99*2ec3cec5SNicolas Le Bayon 100*2ec3cec5SNicolas Le Bayon /* PWR_CR9 register fields */ 101*2ec3cec5SNicolas Le Bayon #define PWR_CR9_BKPRBSEN BIT(0) 102*2ec3cec5SNicolas Le Bayon 103*2ec3cec5SNicolas Le Bayon /* PWR_CR10 register fields */ 104*2ec3cec5SNicolas Le Bayon #define PWR_CR10_RETRBSEN_MASK GENMASK_32(1, 0) 105*2ec3cec5SNicolas Le Bayon #define PWR_CR10_RETRBSEN_SHIFT 0 106*2ec3cec5SNicolas Le Bayon #define PWR_CR10_RETRBSEN_DISABLE 0U 107*2ec3cec5SNicolas Le Bayon #define PWR_CR10_RETRBSEN_STANDBY_VBAT 1U 108*2ec3cec5SNicolas Le Bayon #define PWR_CR10_RETRBSEN_STANDBY 2U 109*2ec3cec5SNicolas Le Bayon 110*2ec3cec5SNicolas Le Bayon /* PWR_CR11 register fields */ 111*2ec3cec5SNicolas Le Bayon #define PWR_CR11_DDRRETDIS BIT(0) 112*2ec3cec5SNicolas Le Bayon 113*2ec3cec5SNicolas Le Bayon /* PWR_BDCR register fields */ 114*2ec3cec5SNicolas Le Bayon #define PWR_BDCR_DBP BIT(0) 115*2ec3cec5SNicolas Le Bayon 116*2ec3cec5SNicolas Le Bayon /* PWR_CPU1CR register fields */ 117*2ec3cec5SNicolas Le Bayon #define PWR_CPU1CR_PDDS_D2 BIT(0) 118*2ec3cec5SNicolas Le Bayon #define PWR_CPU1CR_PDDS_D1 BIT(1) 119*2ec3cec5SNicolas Le Bayon #define PWR_CPU1CR_VBF BIT(4) 120*2ec3cec5SNicolas Le Bayon #define PWR_CPU1CR_STOPF BIT(5) 121*2ec3cec5SNicolas Le Bayon #define PWR_CPU1CR_SBF BIT(6) 122*2ec3cec5SNicolas Le Bayon #define PWR_CPU1CR_SBF_D1 BIT(7) 123*2ec3cec5SNicolas Le Bayon #define PWR_CPU1CR_CSSF BIT(9) 124*2ec3cec5SNicolas Le Bayon #define PWR_CPU1CR_STANDBYWFIL2 BIT(15) 125*2ec3cec5SNicolas Le Bayon #define PWR_CPU1CR_LPDS_D1 BIT(16) 126*2ec3cec5SNicolas Le Bayon #define PWR_CPU1CR_LVDS_D1 BIT(17) 127*2ec3cec5SNicolas Le Bayon 128*2ec3cec5SNicolas Le Bayon /* PWR_CPU2CR register fields */ 129*2ec3cec5SNicolas Le Bayon #define PWR_CPU2CR_PDDS_D2 BIT(0) 130*2ec3cec5SNicolas Le Bayon #define PWR_CPU2CR_VBF BIT(4) 131*2ec3cec5SNicolas Le Bayon #define PWR_CPU2CR_STOPF BIT(5) 132*2ec3cec5SNicolas Le Bayon #define PWR_CPU2CR_SBF BIT(6) 133*2ec3cec5SNicolas Le Bayon #define PWR_CPU2CR_SBF_D2 BIT(7) 134*2ec3cec5SNicolas Le Bayon #define PWR_CPU2CR_CSSF BIT(9) 135*2ec3cec5SNicolas Le Bayon #define PWR_CPU2CR_DEEPSLEEP BIT(15) 136*2ec3cec5SNicolas Le Bayon #define PWR_CPU2CR_LPDS_D2 BIT(16) 137*2ec3cec5SNicolas Le Bayon #define PWR_CPU2CR_LVDS_D2 BIT(17) 138*2ec3cec5SNicolas Le Bayon 139*2ec3cec5SNicolas Le Bayon /* PWR_D1CR register fields */ 140*2ec3cec5SNicolas Le Bayon #define PWR_D1CR_LPCFG_D1 BIT(0) 141*2ec3cec5SNicolas Le Bayon #define PWR_D1CR_POPL_D1_MASK GENMASK_32(12, 8) 142*2ec3cec5SNicolas Le Bayon #define PWR_D1CR_POPL_D1_SHIFT 8 143*2ec3cec5SNicolas Le Bayon 144*2ec3cec5SNicolas Le Bayon /* PWR_D2CR register fields */ 145*2ec3cec5SNicolas Le Bayon #define PWR_D2CR_LPCFG_D2 BIT(0) 146*2ec3cec5SNicolas Le Bayon #define PWR_D2CR_POPL_D2_MASK GENMASK_32(12, 8) 147*2ec3cec5SNicolas Le Bayon #define PWR_D2CR_POPL_D2_SHIFT 8 148*2ec3cec5SNicolas Le Bayon #define PWR_D2CR_LPLVDLY_D2_MASK GENMASK_32(18, 16) 149*2ec3cec5SNicolas Le Bayon #define PWR_D2CR_LPLVDLY_D2_SHIFT 16 150*2ec3cec5SNicolas Le Bayon #define PWR_D2CR_PODH_D2_MASK GENMASK_32(27, 24) 151*2ec3cec5SNicolas Le Bayon #define PWR_D2CR_PODH_D2_SHIFT 24 152*2ec3cec5SNicolas Le Bayon 153*2ec3cec5SNicolas Le Bayon /* PWR_WKUPCR1 register fields */ 154*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR1_WKUPC BIT(0) 155*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR1_WKUPP BIT(8) 156*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR1_WKUPPUPD_MASK GENMASK_32(13, 12) 157*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR1_WKUPPUPD_SHIFT 12 158*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR1_WKUPENCPU1 BIT(16) 159*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR1_WKUPENCPU2 BIT(17) 160*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR1_WKUPF BIT(31) 161*2ec3cec5SNicolas Le Bayon 162*2ec3cec5SNicolas Le Bayon /* PWR_WKUPCR2 register fields */ 163*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR2_WKUPC BIT(0) 164*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR2_WKUPP BIT(8) 165*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR2_WKUPPUPD_MASK GENMASK_32(13, 12) 166*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR2_WKUPPUPD_SHIFT 12 167*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR2_WKUPENCPU1 BIT(16) 168*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR2_WKUPENCPU2 BIT(17) 169*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR2_WKUPF BIT(31) 170*2ec3cec5SNicolas Le Bayon 171*2ec3cec5SNicolas Le Bayon /* PWR_WKUPCR3 register fields */ 172*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR3_WKUPC BIT(0) 173*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR3_WKUPP BIT(8) 174*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR3_WKUPPUPD_MASK GENMASK_32(13, 12) 175*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR3_WKUPPUPD_SHIFT 12 176*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR3_WKUPENCPU1 BIT(16) 177*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR3_WKUPENCPU2 BIT(17) 178*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR3_WKUPF BIT(31) 179*2ec3cec5SNicolas Le Bayon 180*2ec3cec5SNicolas Le Bayon /* PWR_WKUPCR4 register fields */ 181*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR4_WKUPC BIT(0) 182*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR4_WKUPP BIT(8) 183*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR4_WKUPPUPD_MASK GENMASK_32(13, 12) 184*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR4_WKUPPUPD_SHIFT 12 185*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR4_WKUPENCPU1 BIT(16) 186*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR4_WKUPENCPU2 BIT(17) 187*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR4_WKUPF BIT(31) 188*2ec3cec5SNicolas Le Bayon 189*2ec3cec5SNicolas Le Bayon /* PWR_WKUPCR5 register fields */ 190*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR5_WKUPC BIT(0) 191*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR5_WKUPP BIT(8) 192*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR5_WKUPPUPD_MASK GENMASK_32(13, 12) 193*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR5_WKUPPUPD_SHIFT 12 194*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR5_WKUPENCPU1 BIT(16) 195*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR5_WKUPENCPU2 BIT(17) 196*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR5_WKUPF BIT(31) 197*2ec3cec5SNicolas Le Bayon 198*2ec3cec5SNicolas Le Bayon /* PWR_WKUPCR6 register fields */ 199*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR6_WKUPC BIT(0) 200*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR6_WKUPP BIT(8) 201*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR6_WKUPPUPD_MASK GENMASK_32(13, 12) 202*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR6_WKUPPUPD_SHIFT 12 203*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR6_WKUPENCPU1 BIT(16) 204*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR6_WKUPENCPU2 BIT(17) 205*2ec3cec5SNicolas Le Bayon #define PWR_WKUPCR6_WKUPF BIT(31) 206*2ec3cec5SNicolas Le Bayon 207*2ec3cec5SNicolas Le Bayon /* PWR_RSECCFGR register fields */ 208*2ec3cec5SNicolas Le Bayon #define PWR_RSECCFGR_RSEC0 BIT(0) 209*2ec3cec5SNicolas Le Bayon #define PWR_RSECCFGR_RSEC1 BIT(1) 210*2ec3cec5SNicolas Le Bayon #define PWR_RSECCFGR_RSEC2 BIT(2) 211*2ec3cec5SNicolas Le Bayon #define PWR_RSECCFGR_RSEC3 BIT(3) 212*2ec3cec5SNicolas Le Bayon #define PWR_RSECCFGR_RSEC4 BIT(4) 213*2ec3cec5SNicolas Le Bayon #define PWR_RSECCFGR_RSEC5 BIT(5) 214*2ec3cec5SNicolas Le Bayon #define PWR_RSECCFGR_RSEC6 BIT(6) 215*2ec3cec5SNicolas Le Bayon 216*2ec3cec5SNicolas Le Bayon /* PWR_RPRIVCFGR register fields */ 217*2ec3cec5SNicolas Le Bayon #define PWR_RPRIVCFGR_RPRIV0 BIT(0) 218*2ec3cec5SNicolas Le Bayon #define PWR_RPRIVCFGR_RPRIV1 BIT(1) 219*2ec3cec5SNicolas Le Bayon #define PWR_RPRIVCFGR_RPRIV2 BIT(2) 220*2ec3cec5SNicolas Le Bayon #define PWR_RPRIVCFGR_RPRIV3 BIT(3) 221*2ec3cec5SNicolas Le Bayon #define PWR_RPRIVCFGR_RPRIV4 BIT(4) 222*2ec3cec5SNicolas Le Bayon #define PWR_RPRIVCFGR_RPRIV5 BIT(5) 223*2ec3cec5SNicolas Le Bayon #define PWR_RPRIVCFGR_RPRIV6 BIT(6) 224*2ec3cec5SNicolas Le Bayon 225*2ec3cec5SNicolas Le Bayon /* PWR_R0CIDCFGR register fields */ 226*2ec3cec5SNicolas Le Bayon #define PWR_R0CIDCFGR_CFEN BIT(0) 227*2ec3cec5SNicolas Le Bayon #define PWR_R0CIDCFGR_SCID_MASK GENMASK_32(6, 4) 228*2ec3cec5SNicolas Le Bayon #define PWR_R0CIDCFGR_SCID_SHIFT 4 229*2ec3cec5SNicolas Le Bayon 230*2ec3cec5SNicolas Le Bayon /* PWR_R1CIDCFGR register fields */ 231*2ec3cec5SNicolas Le Bayon #define PWR_R1CIDCFGR_CFEN BIT(0) 232*2ec3cec5SNicolas Le Bayon #define PWR_R1CIDCFGR_SCID_MASK GENMASK_32(6, 4) 233*2ec3cec5SNicolas Le Bayon #define PWR_R1CIDCFGR_SCID_SHIFT 4 234*2ec3cec5SNicolas Le Bayon 235*2ec3cec5SNicolas Le Bayon /* PWR_R2CIDCFGR register fields */ 236*2ec3cec5SNicolas Le Bayon #define PWR_R2CIDCFGR_CFEN BIT(0) 237*2ec3cec5SNicolas Le Bayon #define PWR_R2CIDCFGR_SCID_MASK GENMASK_32(6, 4) 238*2ec3cec5SNicolas Le Bayon #define PWR_R2CIDCFGR_SCID_SHIFT 4 239*2ec3cec5SNicolas Le Bayon 240*2ec3cec5SNicolas Le Bayon /* PWR_R3CIDCFGR register fields */ 241*2ec3cec5SNicolas Le Bayon #define PWR_R3CIDCFGR_CFEN BIT(0) 242*2ec3cec5SNicolas Le Bayon #define PWR_R3CIDCFGR_SCID_MASK GENMASK_32(6, 4) 243*2ec3cec5SNicolas Le Bayon #define PWR_R3CIDCFGR_SCID_SHIFT 4 244*2ec3cec5SNicolas Le Bayon 245*2ec3cec5SNicolas Le Bayon /* PWR_R4CIDCFGR register fields */ 246*2ec3cec5SNicolas Le Bayon #define PWR_R4CIDCFGR_CFEN BIT(0) 247*2ec3cec5SNicolas Le Bayon #define PWR_R4CIDCFGR_SCID_MASK GENMASK_32(6, 4) 248*2ec3cec5SNicolas Le Bayon #define PWR_R4CIDCFGR_SCID_SHIFT 4 249*2ec3cec5SNicolas Le Bayon 250*2ec3cec5SNicolas Le Bayon /* PWR_R5CIDCFGR register fields */ 251*2ec3cec5SNicolas Le Bayon #define PWR_R5CIDCFGR_CFEN BIT(0) 252*2ec3cec5SNicolas Le Bayon #define PWR_R5CIDCFGR_SCID_MASK GENMASK_32(6, 4) 253*2ec3cec5SNicolas Le Bayon #define PWR_R5CIDCFGR_SCID_SHIFT 4 254*2ec3cec5SNicolas Le Bayon 255*2ec3cec5SNicolas Le Bayon /* PWR_R6CIDCFGR register fields */ 256*2ec3cec5SNicolas Le Bayon #define PWR_R6CIDCFGR_CFEN BIT(0) 257*2ec3cec5SNicolas Le Bayon #define PWR_R6CIDCFGR_SCID_MASK GENMASK_32(6, 4) 258*2ec3cec5SNicolas Le Bayon #define PWR_R6CIDCFGR_SCID_SHIFT 4 259*2ec3cec5SNicolas Le Bayon 260*2ec3cec5SNicolas Le Bayon /* PWR_WIOSECCFGR register fields */ 261*2ec3cec5SNicolas Le Bayon #define PWR_WIOSECCFGR_WIOSEC1 BIT(0) 262*2ec3cec5SNicolas Le Bayon #define PWR_WIOSECCFGR_WIOSEC2 BIT(1) 263*2ec3cec5SNicolas Le Bayon #define PWR_WIOSECCFGR_WIOSEC3 BIT(2) 264*2ec3cec5SNicolas Le Bayon #define PWR_WIOSECCFGR_WIOSEC4 BIT(3) 265*2ec3cec5SNicolas Le Bayon #define PWR_WIOSECCFGR_WIOSEC5 BIT(4) 266*2ec3cec5SNicolas Le Bayon #define PWR_WIOSECCFGR_WIOSEC6 BIT(5) 267*2ec3cec5SNicolas Le Bayon 268*2ec3cec5SNicolas Le Bayon /* PWR_WIOPRIVCFGR register fields */ 269*2ec3cec5SNicolas Le Bayon #define PWR_WIOPRIVCFGR_WIOPRIV1 BIT(0) 270*2ec3cec5SNicolas Le Bayon #define PWR_WIOPRIVCFGR_WIOPRIV2 BIT(1) 271*2ec3cec5SNicolas Le Bayon #define PWR_WIOPRIVCFGR_WIOPRIV3 BIT(2) 272*2ec3cec5SNicolas Le Bayon #define PWR_WIOPRIVCFGR_WIOPRIV4 BIT(3) 273*2ec3cec5SNicolas Le Bayon #define PWR_WIOPRIVCFGR_WIOPRIV5 BIT(4) 274*2ec3cec5SNicolas Le Bayon #define PWR_WIOPRIVCFGR_WIOPRIV6 BIT(5) 275*2ec3cec5SNicolas Le Bayon 276*2ec3cec5SNicolas Le Bayon /* PWR_WIO1CIDCFGR register fields */ 277*2ec3cec5SNicolas Le Bayon #define PWR_WIO1CIDCFGR_CFEN BIT(0) 278*2ec3cec5SNicolas Le Bayon #define PWR_WIO1CIDCFGR_SEM_EN BIT(1) 279*2ec3cec5SNicolas Le Bayon #define PWR_WIO1CIDCFGR_SCID_MASK GENMASK_32(6, 4) 280*2ec3cec5SNicolas Le Bayon #define PWR_WIO1CIDCFGR_SCID_SHIFT 4 281*2ec3cec5SNicolas Le Bayon #define PWR_WIO1CIDCFGR_SEMWLC0 BIT(16) 282*2ec3cec5SNicolas Le Bayon #define PWR_WIO1CIDCFGR_SEMWLC1 BIT(17) 283*2ec3cec5SNicolas Le Bayon #define PWR_WIO1CIDCFGR_SEMWLC2 BIT(18) 284*2ec3cec5SNicolas Le Bayon #define PWR_WIO1CIDCFGR_SEMWLC3 BIT(19) 285*2ec3cec5SNicolas Le Bayon #define PWR_WIO1CIDCFGR_SEMWLC4 BIT(20) 286*2ec3cec5SNicolas Le Bayon #define PWR_WIO1CIDCFGR_SEMWLC5 BIT(21) 287*2ec3cec5SNicolas Le Bayon #define PWR_WIO1CIDCFGR_SEMWLC6 BIT(22) 288*2ec3cec5SNicolas Le Bayon #define PWR_WIO1CIDCFGR_SEMWLC7 BIT(23) 289*2ec3cec5SNicolas Le Bayon 290*2ec3cec5SNicolas Le Bayon /* PWR_WIO1SEMCR register fields */ 291*2ec3cec5SNicolas Le Bayon #define PWR_WIO1SEMCR_SEM_MUTEX BIT(0) 292*2ec3cec5SNicolas Le Bayon #define PWR_WIO1SEMCR_SEMCID_MASK GENMASK_32(6, 4) 293*2ec3cec5SNicolas Le Bayon #define PWR_WIO1SEMCR_SEMCID_SHIFT 4 294*2ec3cec5SNicolas Le Bayon 295*2ec3cec5SNicolas Le Bayon /* PWR_WIO2CIDCFGR register fields */ 296*2ec3cec5SNicolas Le Bayon #define PWR_WIO2CIDCFGR_CFEN BIT(0) 297*2ec3cec5SNicolas Le Bayon #define PWR_WIO2CIDCFGR_SEM_EN BIT(1) 298*2ec3cec5SNicolas Le Bayon #define PWR_WIO2CIDCFGR_SCID_MASK GENMASK_32(6, 4) 299*2ec3cec5SNicolas Le Bayon #define PWR_WIO2CIDCFGR_SCID_SHIFT 4 300*2ec3cec5SNicolas Le Bayon #define PWR_WIO2CIDCFGR_SEMWLC0 BIT(16) 301*2ec3cec5SNicolas Le Bayon #define PWR_WIO2CIDCFGR_SEMWLC1 BIT(17) 302*2ec3cec5SNicolas Le Bayon #define PWR_WIO2CIDCFGR_SEMWLC2 BIT(18) 303*2ec3cec5SNicolas Le Bayon #define PWR_WIO2CIDCFGR_SEMWLC3 BIT(19) 304*2ec3cec5SNicolas Le Bayon #define PWR_WIO2CIDCFGR_SEMWLC4 BIT(20) 305*2ec3cec5SNicolas Le Bayon #define PWR_WIO2CIDCFGR_SEMWLC5 BIT(21) 306*2ec3cec5SNicolas Le Bayon #define PWR_WIO2CIDCFGR_SEMWLC6 BIT(22) 307*2ec3cec5SNicolas Le Bayon #define PWR_WIO2CIDCFGR_SEMWLC7 BIT(23) 308*2ec3cec5SNicolas Le Bayon 309*2ec3cec5SNicolas Le Bayon /* PWR_WIO2SEMCR register fields */ 310*2ec3cec5SNicolas Le Bayon #define PWR_WIO2SEMCR_SEM_MUTEX BIT(0) 311*2ec3cec5SNicolas Le Bayon #define PWR_WIO2SEMCR_SEMCID_MASK GENMASK_32(6, 4) 312*2ec3cec5SNicolas Le Bayon #define PWR_WIO2SEMCR_SEMCID_SHIFT 4 313*2ec3cec5SNicolas Le Bayon 314*2ec3cec5SNicolas Le Bayon /* PWR_WIO3CIDCFGR register fields */ 315*2ec3cec5SNicolas Le Bayon #define PWR_WIO3CIDCFGR_CFEN BIT(0) 316*2ec3cec5SNicolas Le Bayon #define PWR_WIO3CIDCFGR_SEM_EN BIT(1) 317*2ec3cec5SNicolas Le Bayon #define PWR_WIO3CIDCFGR_SCID_MASK GENMASK_32(6, 4) 318*2ec3cec5SNicolas Le Bayon #define PWR_WIO3CIDCFGR_SCID_SHIFT 4 319*2ec3cec5SNicolas Le Bayon #define PWR_WIO3CIDCFGR_SEMWLC0 BIT(16) 320*2ec3cec5SNicolas Le Bayon #define PWR_WIO3CIDCFGR_SEMWLC1 BIT(17) 321*2ec3cec5SNicolas Le Bayon #define PWR_WIO3CIDCFGR_SEMWLC2 BIT(18) 322*2ec3cec5SNicolas Le Bayon #define PWR_WIO3CIDCFGR_SEMWLC3 BIT(19) 323*2ec3cec5SNicolas Le Bayon #define PWR_WIO3CIDCFGR_SEMWLC4 BIT(20) 324*2ec3cec5SNicolas Le Bayon #define PWR_WIO3CIDCFGR_SEMWLC5 BIT(21) 325*2ec3cec5SNicolas Le Bayon #define PWR_WIO3CIDCFGR_SEMWLC6 BIT(22) 326*2ec3cec5SNicolas Le Bayon #define PWR_WIO3CIDCFGR_SEMWLC7 BIT(23) 327*2ec3cec5SNicolas Le Bayon 328*2ec3cec5SNicolas Le Bayon /* PWR_WIO3SEMCR register fields */ 329*2ec3cec5SNicolas Le Bayon #define PWR_WIO3SEMCR_SEM_MUTEX BIT(0) 330*2ec3cec5SNicolas Le Bayon #define PWR_WIO3SEMCR_SEMCID_MASK GENMASK_32(6, 4) 331*2ec3cec5SNicolas Le Bayon #define PWR_WIO3SEMCR_SEMCID_SHIFT 4 332*2ec3cec5SNicolas Le Bayon 333*2ec3cec5SNicolas Le Bayon /* PWR_WIO4CIDCFGR register fields */ 334*2ec3cec5SNicolas Le Bayon #define PWR_WIO4CIDCFGR_CFEN BIT(0) 335*2ec3cec5SNicolas Le Bayon #define PWR_WIO4CIDCFGR_SEM_EN BIT(1) 336*2ec3cec5SNicolas Le Bayon #define PWR_WIO4CIDCFGR_SCID_MASK GENMASK_32(6, 4) 337*2ec3cec5SNicolas Le Bayon #define PWR_WIO4CIDCFGR_SCID_SHIFT 4 338*2ec3cec5SNicolas Le Bayon #define PWR_WIO4CIDCFGR_SEMWLC0 BIT(16) 339*2ec3cec5SNicolas Le Bayon #define PWR_WIO4CIDCFGR_SEMWLC1 BIT(17) 340*2ec3cec5SNicolas Le Bayon #define PWR_WIO4CIDCFGR_SEMWLC2 BIT(18) 341*2ec3cec5SNicolas Le Bayon #define PWR_WIO4CIDCFGR_SEMWLC3 BIT(19) 342*2ec3cec5SNicolas Le Bayon #define PWR_WIO4CIDCFGR_SEMWLC4 BIT(20) 343*2ec3cec5SNicolas Le Bayon #define PWR_WIO4CIDCFGR_SEMWLC5 BIT(21) 344*2ec3cec5SNicolas Le Bayon #define PWR_WIO4CIDCFGR_SEMWLC6 BIT(22) 345*2ec3cec5SNicolas Le Bayon #define PWR_WIO4CIDCFGR_SEMWLC7 BIT(23) 346*2ec3cec5SNicolas Le Bayon 347*2ec3cec5SNicolas Le Bayon /* PWR_WIO4SEMCR register fields */ 348*2ec3cec5SNicolas Le Bayon #define PWR_WIO4SEMCR_SEM_MUTEX BIT(0) 349*2ec3cec5SNicolas Le Bayon #define PWR_WIO4SEMCR_SEMCID_MASK GENMASK_32(6, 4) 350*2ec3cec5SNicolas Le Bayon #define PWR_WIO4SEMCR_SEMCID_SHIFT 4 351*2ec3cec5SNicolas Le Bayon 352*2ec3cec5SNicolas Le Bayon /* PWR_WIO5CIDCFGR register fields */ 353*2ec3cec5SNicolas Le Bayon #define PWR_WIO5CIDCFGR_CFEN BIT(0) 354*2ec3cec5SNicolas Le Bayon #define PWR_WIO5CIDCFGR_SEM_EN BIT(1) 355*2ec3cec5SNicolas Le Bayon #define PWR_WIO5CIDCFGR_SCID_MASK GENMASK_32(6, 4) 356*2ec3cec5SNicolas Le Bayon #define PWR_WIO5CIDCFGR_SCID_SHIFT 4 357*2ec3cec5SNicolas Le Bayon #define PWR_WIO5CIDCFGR_SEMWLC0 BIT(16) 358*2ec3cec5SNicolas Le Bayon #define PWR_WIO5CIDCFGR_SEMWLC1 BIT(17) 359*2ec3cec5SNicolas Le Bayon #define PWR_WIO5CIDCFGR_SEMWLC2 BIT(18) 360*2ec3cec5SNicolas Le Bayon #define PWR_WIO5CIDCFGR_SEMWLC3 BIT(19) 361*2ec3cec5SNicolas Le Bayon #define PWR_WIO5CIDCFGR_SEMWLC4 BIT(20) 362*2ec3cec5SNicolas Le Bayon #define PWR_WIO5CIDCFGR_SEMWLC5 BIT(21) 363*2ec3cec5SNicolas Le Bayon #define PWR_WIO5CIDCFGR_SEMWLC6 BIT(22) 364*2ec3cec5SNicolas Le Bayon #define PWR_WIO5CIDCFGR_SEMWLC7 BIT(23) 365*2ec3cec5SNicolas Le Bayon 366*2ec3cec5SNicolas Le Bayon /* PWR_WIO5SEMCR register fields */ 367*2ec3cec5SNicolas Le Bayon #define PWR_WIO5SEMCR_SEM_MUTEX BIT(0) 368*2ec3cec5SNicolas Le Bayon #define PWR_WIO5SEMCR_SEMCID_MASK GENMASK_32(6, 4) 369*2ec3cec5SNicolas Le Bayon #define PWR_WIO5SEMCR_SEMCID_SHIFT 4 370*2ec3cec5SNicolas Le Bayon 371*2ec3cec5SNicolas Le Bayon /* PWR_WIO6CIDCFGR register fields */ 372*2ec3cec5SNicolas Le Bayon #define PWR_WIO6CIDCFGR_CFEN BIT(0) 373*2ec3cec5SNicolas Le Bayon #define PWR_WIO6CIDCFGR_SEM_EN BIT(1) 374*2ec3cec5SNicolas Le Bayon #define PWR_WIO6CIDCFGR_SCID_MASK GENMASK_32(6, 4) 375*2ec3cec5SNicolas Le Bayon #define PWR_WIO6CIDCFGR_SCID_SHIFT 4 376*2ec3cec5SNicolas Le Bayon #define PWR_WIO6CIDCFGR_SEMWLC0 BIT(16) 377*2ec3cec5SNicolas Le Bayon #define PWR_WIO6CIDCFGR_SEMWLC1 BIT(17) 378*2ec3cec5SNicolas Le Bayon #define PWR_WIO6CIDCFGR_SEMWLC2 BIT(18) 379*2ec3cec5SNicolas Le Bayon #define PWR_WIO6CIDCFGR_SEMWLC3 BIT(19) 380*2ec3cec5SNicolas Le Bayon #define PWR_WIO6CIDCFGR_SEMWLC4 BIT(20) 381*2ec3cec5SNicolas Le Bayon #define PWR_WIO6CIDCFGR_SEMWLC5 BIT(21) 382*2ec3cec5SNicolas Le Bayon #define PWR_WIO6CIDCFGR_SEMWLC6 BIT(22) 383*2ec3cec5SNicolas Le Bayon #define PWR_WIO6CIDCFGR_SEMWLC7 BIT(23) 384*2ec3cec5SNicolas Le Bayon 385*2ec3cec5SNicolas Le Bayon /* PWR_WIO6SEMCR register fields */ 386*2ec3cec5SNicolas Le Bayon #define PWR_WIO6SEMCR_SEM_MUTEX BIT(0) 387*2ec3cec5SNicolas Le Bayon #define PWR_WIO6SEMCR_SEMCID_MASK GENMASK_32(6, 4) 388*2ec3cec5SNicolas Le Bayon #define PWR_WIO6SEMCR_SEMCID_SHIFT 4 389*2ec3cec5SNicolas Le Bayon 390*2ec3cec5SNicolas Le Bayon /* PWR_CPU1D1SR register fields */ 391*2ec3cec5SNicolas Le Bayon #define PWR_CPU1D1SR_HOLD_BOOT BIT(0) 392*2ec3cec5SNicolas Le Bayon #define PWR_CPU1D1SR_CSTATE_MASK GENMASK_32(3, 2) 393*2ec3cec5SNicolas Le Bayon #define PWR_CPU1D1SR_CSTATE_SHIFT 2 394*2ec3cec5SNicolas Le Bayon #define PWR_CPU1D1SR_DSTATE_MASK GENMASK_32(10, 8) 395*2ec3cec5SNicolas Le Bayon #define PWR_CPU1D1SR_DSTATE_SHIFT 8 396*2ec3cec5SNicolas Le Bayon 397*2ec3cec5SNicolas Le Bayon /* PWR_CPU2D2SR register fields */ 398*2ec3cec5SNicolas Le Bayon #define PWR_CPU2D2SR_HOLD_BOOT BIT(0) 399*2ec3cec5SNicolas Le Bayon #define PWR_CPU2D2SR_WFBEN BIT(1) 400*2ec3cec5SNicolas Le Bayon #define PWR_CPU2D2SR_CSTATE_MASK GENMASK_32(3, 2) 401*2ec3cec5SNicolas Le Bayon #define PWR_CPU2D2SR_CSTATE_SHIFT 2 402*2ec3cec5SNicolas Le Bayon #define PWR_CPU2D2SR_DSTATE_MASK GENMASK_32(10, 8) 403*2ec3cec5SNicolas Le Bayon #define PWR_CPU2D2SR_DSTATE_SHIFT 8 404*2ec3cec5SNicolas Le Bayon 405*2ec3cec5SNicolas Le Bayon /* PWR_DBGR register fields */ 406*2ec3cec5SNicolas Le Bayon #define PWR_DBGR_VDDIOKRETRAM BIT(16) 407*2ec3cec5SNicolas Le Bayon #define PWR_DBGR_VDDIOKBKPRAM BIT(17) 408*2ec3cec5SNicolas Le Bayon 409*2ec3cec5SNicolas Le Bayon /* PWR_VERR register fields */ 410*2ec3cec5SNicolas Le Bayon #define PWR_VERR_MINREV_MASK GENMASK_32(3, 0) 411*2ec3cec5SNicolas Le Bayon #define PWR_VERR_MINREV_SHIFT 0 412*2ec3cec5SNicolas Le Bayon #define PWR_VERR_MAJREV_MASK GENMASK_32(7, 4) 413*2ec3cec5SNicolas Le Bayon #define PWR_VERR_MAJREV_SHIFT 4 414*2ec3cec5SNicolas Le Bayon 415*2ec3cec5SNicolas Le Bayon #endif /* STM32MP21_PWR_H */ 416*2ec3cec5SNicolas Le Bayon 417