1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef PMU_BITS_H 8*91f16700Schasinglulu #define PMU_BITS_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu enum pmu_powerdomain_id { 11*91f16700Schasinglulu PD_CPUL0 = 0, 12*91f16700Schasinglulu PD_CPUL1, 13*91f16700Schasinglulu PD_CPUL2, 14*91f16700Schasinglulu PD_CPUL3, 15*91f16700Schasinglulu PD_CPUB0, 16*91f16700Schasinglulu PD_CPUB1, 17*91f16700Schasinglulu PD_SCUL, 18*91f16700Schasinglulu PD_SCUB, 19*91f16700Schasinglulu PD_TCPD0, 20*91f16700Schasinglulu PD_TCPD1, 21*91f16700Schasinglulu PD_CCI, 22*91f16700Schasinglulu PD_PERILP, 23*91f16700Schasinglulu PD_PERIHP, 24*91f16700Schasinglulu PD_CENTER, 25*91f16700Schasinglulu PD_VIO, 26*91f16700Schasinglulu PD_GPU, 27*91f16700Schasinglulu PD_VCODEC, 28*91f16700Schasinglulu PD_VDU, 29*91f16700Schasinglulu PD_RGA, 30*91f16700Schasinglulu PD_IEP, 31*91f16700Schasinglulu PD_VO, 32*91f16700Schasinglulu PD_ISP0 = 22, 33*91f16700Schasinglulu PD_ISP1, 34*91f16700Schasinglulu PD_HDCP, 35*91f16700Schasinglulu PD_GMAC, 36*91f16700Schasinglulu PD_EMMC, 37*91f16700Schasinglulu PD_USB3, 38*91f16700Schasinglulu PD_EDP, 39*91f16700Schasinglulu PD_GIC, 40*91f16700Schasinglulu PD_SD, 41*91f16700Schasinglulu PD_SDIOAUDIO, 42*91f16700Schasinglulu PD_END 43*91f16700Schasinglulu }; 44*91f16700Schasinglulu 45*91f16700Schasinglulu enum powerdomain_state { 46*91f16700Schasinglulu PMU_POWER_ON = 0, 47*91f16700Schasinglulu PMU_POWER_OFF, 48*91f16700Schasinglulu }; 49*91f16700Schasinglulu 50*91f16700Schasinglulu enum pmu_bus_id { 51*91f16700Schasinglulu BUS_ID_GPU = 0, 52*91f16700Schasinglulu BUS_ID_PERILP, 53*91f16700Schasinglulu BUS_ID_PERIHP, 54*91f16700Schasinglulu BUS_ID_VCODEC, 55*91f16700Schasinglulu BUS_ID_VDU, 56*91f16700Schasinglulu BUS_ID_RGA, 57*91f16700Schasinglulu BUS_ID_IEP, 58*91f16700Schasinglulu BUS_ID_VOPB, 59*91f16700Schasinglulu BUS_ID_VOPL, 60*91f16700Schasinglulu BUS_ID_ISP0, 61*91f16700Schasinglulu BUS_ID_ISP1, 62*91f16700Schasinglulu BUS_ID_HDCP, 63*91f16700Schasinglulu BUS_ID_USB3, 64*91f16700Schasinglulu BUS_ID_PERILPM0, 65*91f16700Schasinglulu BUS_ID_CENTER, 66*91f16700Schasinglulu BUS_ID_CCIM0, 67*91f16700Schasinglulu BUS_ID_CCIM1, 68*91f16700Schasinglulu BUS_ID_VIO, 69*91f16700Schasinglulu BUS_ID_MSCH0, 70*91f16700Schasinglulu BUS_ID_MSCH1, 71*91f16700Schasinglulu BUS_ID_ALIVE, 72*91f16700Schasinglulu BUS_ID_PMU, 73*91f16700Schasinglulu BUS_ID_EDP, 74*91f16700Schasinglulu BUS_ID_GMAC, 75*91f16700Schasinglulu BUS_ID_EMMC, 76*91f16700Schasinglulu BUS_ID_CENTER1, 77*91f16700Schasinglulu BUS_ID_PMUM0, 78*91f16700Schasinglulu BUS_ID_GIC, 79*91f16700Schasinglulu BUS_ID_SD, 80*91f16700Schasinglulu BUS_ID_SDIOAUDIO, 81*91f16700Schasinglulu }; 82*91f16700Schasinglulu 83*91f16700Schasinglulu enum pmu_bus_state { 84*91f16700Schasinglulu BUS_ACTIVE, 85*91f16700Schasinglulu BUS_IDLE, 86*91f16700Schasinglulu }; 87*91f16700Schasinglulu 88*91f16700Schasinglulu /* pmu_cpuapm bit */ 89*91f16700Schasinglulu enum pmu_cores_pm_by_wfi { 90*91f16700Schasinglulu core_pm_en = 0, 91*91f16700Schasinglulu core_pm_int_wakeup_en, 92*91f16700Schasinglulu core_pm_resv, 93*91f16700Schasinglulu core_pm_sft_wakeup_en 94*91f16700Schasinglulu }; 95*91f16700Schasinglulu 96*91f16700Schasinglulu enum pmu_wkup_cfg0 { 97*91f16700Schasinglulu PMU_GPIO0A_POSE_WKUP_EN = 0, 98*91f16700Schasinglulu PMU_GPIO0B_POSE_WKUP_EN = 8, 99*91f16700Schasinglulu PMU_GPIO0C_POSE_WKUP_EN = 16, 100*91f16700Schasinglulu PMU_GPIO0D_POSE_WKUP_EN = 24, 101*91f16700Schasinglulu }; 102*91f16700Schasinglulu 103*91f16700Schasinglulu enum pmu_wkup_cfg1 { 104*91f16700Schasinglulu PMU_GPIO0A_NEGEDGE_WKUP_EN = 0, 105*91f16700Schasinglulu PMU_GPIO0B_NEGEDGE_WKUP_EN = 7, 106*91f16700Schasinglulu PMU_GPIO0C_NEGEDGE_WKUP_EN = 16, 107*91f16700Schasinglulu PMU_GPIO0D_NEGEDGE_WKUP_EN = 24, 108*91f16700Schasinglulu }; 109*91f16700Schasinglulu 110*91f16700Schasinglulu enum pmu_wkup_cfg2 { 111*91f16700Schasinglulu PMU_GPIO1A_POSE_WKUP_EN = 0, 112*91f16700Schasinglulu PMU_GPIO1B_POSE_WKUP_EN = 7, 113*91f16700Schasinglulu PMU_GPIO1C_POSE_WKUP_EN = 16, 114*91f16700Schasinglulu PMU_GPIO1D_POSE_WKUP_EN = 24, 115*91f16700Schasinglulu }; 116*91f16700Schasinglulu 117*91f16700Schasinglulu enum pmu_wkup_cfg3 { 118*91f16700Schasinglulu PMU_GPIO1A_NEGEDGE_WKUP_EN = 0, 119*91f16700Schasinglulu PMU_GPIO1B_NEGEDGE_WKUP_EN = 7, 120*91f16700Schasinglulu PMU_GPIO1C_NEGEDGE_WKUP_EN = 16, 121*91f16700Schasinglulu PMU_GPIO1D_NEGEDGE_WKUP_EN = 24, 122*91f16700Schasinglulu }; 123*91f16700Schasinglulu 124*91f16700Schasinglulu /* pmu_wkup_cfg4 */ 125*91f16700Schasinglulu enum pmu_wkup_cfg4 { 126*91f16700Schasinglulu PMU_CLUSTER_L_WKUP_EN = 0, 127*91f16700Schasinglulu PMU_CLUSTER_B_WKUP_EN, 128*91f16700Schasinglulu PMU_GPIO_WKUP_EN, 129*91f16700Schasinglulu PMU_SDIO_WKUP_EN, 130*91f16700Schasinglulu 131*91f16700Schasinglulu PMU_SDMMC_WKUP_EN, 132*91f16700Schasinglulu PMU_TIMER_WKUP_EN = 6, 133*91f16700Schasinglulu PMU_USBDEV_WKUP_EN, 134*91f16700Schasinglulu 135*91f16700Schasinglulu PMU_SFT_WKUP_EN, 136*91f16700Schasinglulu PMU_M0_WDT_WKUP_EN, 137*91f16700Schasinglulu PMU_TIMEOUT_WKUP_EN, 138*91f16700Schasinglulu PMU_PWM_WKUP_EN, 139*91f16700Schasinglulu 140*91f16700Schasinglulu PMU_PCIE_WKUP_EN = 13, 141*91f16700Schasinglulu }; 142*91f16700Schasinglulu 143*91f16700Schasinglulu enum pmu_pwrdn_con { 144*91f16700Schasinglulu PMU_A53_L0_PWRDWN_EN = 0, 145*91f16700Schasinglulu PMU_A53_L1_PWRDWN_EN, 146*91f16700Schasinglulu PMU_A53_L2_PWRDWN_EN, 147*91f16700Schasinglulu PMU_A53_L3_PWRDWN_EN, 148*91f16700Schasinglulu 149*91f16700Schasinglulu PMU_A72_B0_PWRDWN_EN, 150*91f16700Schasinglulu PMU_A72_B1_PWRDWN_EN, 151*91f16700Schasinglulu PMU_SCU_L_PWRDWN_EN, 152*91f16700Schasinglulu PMU_SCU_B_PWRDWN_EN, 153*91f16700Schasinglulu 154*91f16700Schasinglulu PMU_TCPD0_PWRDWN_EN, 155*91f16700Schasinglulu PMU_TCPD1_PWRDWN_EN, 156*91f16700Schasinglulu PMU_CCI_PWRDWN_EN, 157*91f16700Schasinglulu PMU_PERILP_PWRDWN_EN, 158*91f16700Schasinglulu 159*91f16700Schasinglulu PMU_PERIHP_PWRDWN_EN, 160*91f16700Schasinglulu PMU_CENTER_PWRDWN_EN, 161*91f16700Schasinglulu PMU_VIO_PWRDWN_EN, 162*91f16700Schasinglulu PMU_GPU_PWRDWN_EN, 163*91f16700Schasinglulu 164*91f16700Schasinglulu PMU_VCODEC_PWRDWN_EN, 165*91f16700Schasinglulu PMU_VDU_PWRDWN_EN, 166*91f16700Schasinglulu PMU_RGA_PWRDWN_EN, 167*91f16700Schasinglulu PMU_IEP_PWRDWN_EN, 168*91f16700Schasinglulu 169*91f16700Schasinglulu PMU_VO_PWRDWN_EN, 170*91f16700Schasinglulu PMU_ISP0_PWRDWN_EN = 22, 171*91f16700Schasinglulu PMU_ISP1_PWRDWN_EN, 172*91f16700Schasinglulu 173*91f16700Schasinglulu PMU_HDCP_PWRDWN_EN, 174*91f16700Schasinglulu PMU_GMAC_PWRDWN_EN, 175*91f16700Schasinglulu PMU_EMMC_PWRDWN_EN, 176*91f16700Schasinglulu PMU_USB3_PWRDWN_EN, 177*91f16700Schasinglulu 178*91f16700Schasinglulu PMU_EDP_PWRDWN_EN, 179*91f16700Schasinglulu PMU_GIC_PWRDWN_EN, 180*91f16700Schasinglulu PMU_SD_PWRDWN_EN, 181*91f16700Schasinglulu PMU_SDIOAUDIO_PWRDWN_EN, 182*91f16700Schasinglulu }; 183*91f16700Schasinglulu 184*91f16700Schasinglulu enum pmu_pwrdn_st { 185*91f16700Schasinglulu PMU_A53_L0_PWRDWN_ST = 0, 186*91f16700Schasinglulu PMU_A53_L1_PWRDWN_ST, 187*91f16700Schasinglulu PMU_A53_L2_PWRDWN_ST, 188*91f16700Schasinglulu PMU_A53_L3_PWRDWN_ST, 189*91f16700Schasinglulu 190*91f16700Schasinglulu PMU_A72_B0_PWRDWN_ST, 191*91f16700Schasinglulu PMU_A72_B1_PWRDWN_ST, 192*91f16700Schasinglulu PMU_SCU_L_PWRDWN_ST, 193*91f16700Schasinglulu PMU_SCU_B_PWRDWN_ST, 194*91f16700Schasinglulu 195*91f16700Schasinglulu PMU_TCPD0_PWRDWN_ST, 196*91f16700Schasinglulu PMU_TCPD1_PWRDWN_ST, 197*91f16700Schasinglulu PMU_CCI_PWRDWN_ST, 198*91f16700Schasinglulu PMU_PERILP_PWRDWN_ST, 199*91f16700Schasinglulu 200*91f16700Schasinglulu PMU_PERIHP_PWRDWN_ST, 201*91f16700Schasinglulu PMU_CENTER_PWRDWN_ST, 202*91f16700Schasinglulu PMU_VIO_PWRDWN_ST, 203*91f16700Schasinglulu PMU_GPU_PWRDWN_ST, 204*91f16700Schasinglulu 205*91f16700Schasinglulu PMU_VCODEC_PWRDWN_ST, 206*91f16700Schasinglulu PMU_VDU_PWRDWN_ST, 207*91f16700Schasinglulu PMU_RGA_PWRDWN_ST, 208*91f16700Schasinglulu PMU_IEP_PWRDWN_ST, 209*91f16700Schasinglulu 210*91f16700Schasinglulu PMU_VO_PWRDWN_ST, 211*91f16700Schasinglulu PMU_ISP0_PWRDWN_ST = 22, 212*91f16700Schasinglulu PMU_ISP1_PWRDWN_ST, 213*91f16700Schasinglulu 214*91f16700Schasinglulu PMU_HDCP_PWRDWN_ST, 215*91f16700Schasinglulu PMU_GMAC_PWRDWN_ST, 216*91f16700Schasinglulu PMU_EMMC_PWRDWN_ST, 217*91f16700Schasinglulu PMU_USB3_PWRDWN_ST, 218*91f16700Schasinglulu 219*91f16700Schasinglulu PMU_EDP_PWRDWN_ST, 220*91f16700Schasinglulu PMU_GIC_PWRDWN_ST, 221*91f16700Schasinglulu PMU_SD_PWRDWN_ST, 222*91f16700Schasinglulu PMU_SDIOAUDIO_PWRDWN_ST, 223*91f16700Schasinglulu 224*91f16700Schasinglulu }; 225*91f16700Schasinglulu 226*91f16700Schasinglulu enum pmu_pll_con { 227*91f16700Schasinglulu PMU_PLL_PD_CFG = 0, 228*91f16700Schasinglulu PMU_SFT_PLL_PD = 8, 229*91f16700Schasinglulu }; 230*91f16700Schasinglulu 231*91f16700Schasinglulu enum pmu_pwermode_con { 232*91f16700Schasinglulu PMU_PWR_MODE_EN = 0, 233*91f16700Schasinglulu PMU_WKUP_RST_EN, 234*91f16700Schasinglulu PMU_INPUT_CLAMP_EN, 235*91f16700Schasinglulu PMU_OSC_DIS, 236*91f16700Schasinglulu 237*91f16700Schasinglulu PMU_ALIVE_USE_LF, 238*91f16700Schasinglulu PMU_PMU_USE_LF, 239*91f16700Schasinglulu PMU_POWER_OFF_REQ_CFG, 240*91f16700Schasinglulu PMU_CHIP_PD_EN, 241*91f16700Schasinglulu 242*91f16700Schasinglulu PMU_PLL_PD_EN, 243*91f16700Schasinglulu PMU_CPU0_PD_EN, 244*91f16700Schasinglulu PMU_L2_FLUSH_EN, 245*91f16700Schasinglulu PMU_L2_IDLE_EN, 246*91f16700Schasinglulu 247*91f16700Schasinglulu PMU_SCU_PD_EN, 248*91f16700Schasinglulu PMU_CCI_PD_EN, 249*91f16700Schasinglulu PMU_PERILP_PD_EN, 250*91f16700Schasinglulu PMU_CENTER_PD_EN, 251*91f16700Schasinglulu 252*91f16700Schasinglulu PMU_SREF0_ENTER_EN, 253*91f16700Schasinglulu PMU_DDRC0_GATING_EN, 254*91f16700Schasinglulu PMU_DDRIO0_RET_EN, 255*91f16700Schasinglulu PMU_DDRIO0_RET_DE_REQ, 256*91f16700Schasinglulu 257*91f16700Schasinglulu PMU_SREF1_ENTER_EN, 258*91f16700Schasinglulu PMU_DDRC1_GATING_EN, 259*91f16700Schasinglulu PMU_DDRIO1_RET_EN, 260*91f16700Schasinglulu PMU_DDRIO1_RET_DE_REQ, 261*91f16700Schasinglulu 262*91f16700Schasinglulu PMU_CLK_CENTER_SRC_GATE_EN = 26, 263*91f16700Schasinglulu PMU_CLK_PERILP_SRC_GATE_EN, 264*91f16700Schasinglulu 265*91f16700Schasinglulu PMU_CLK_CORE_SRC_GATE_EN, 266*91f16700Schasinglulu PMU_DDRIO_RET_HW_DE_REQ, 267*91f16700Schasinglulu PMU_SLP_OUTPUT_CFG, 268*91f16700Schasinglulu PMU_MAIN_CLUSTER, 269*91f16700Schasinglulu }; 270*91f16700Schasinglulu 271*91f16700Schasinglulu enum pmu_sft_con { 272*91f16700Schasinglulu PMU_WKUP_SFT = 0, 273*91f16700Schasinglulu PMU_INPUT_CLAMP_CFG, 274*91f16700Schasinglulu PMU_OSC_DIS_CFG, 275*91f16700Schasinglulu PMU_PMU_LF_EN_CFG, 276*91f16700Schasinglulu 277*91f16700Schasinglulu PMU_ALIVE_LF_EN_CFG, 278*91f16700Schasinglulu PMU_24M_EN_CFG, 279*91f16700Schasinglulu PMU_DBG_PWRUP_L0_CFG, 280*91f16700Schasinglulu PMU_WKUP_SFT_M0, 281*91f16700Schasinglulu 282*91f16700Schasinglulu PMU_DDRCTL0_C_SYSREQ_CFG, 283*91f16700Schasinglulu PMU_DDR0_IO_RET_CFG, 284*91f16700Schasinglulu 285*91f16700Schasinglulu PMU_DDRCTL1_C_SYSREQ_CFG = 12, 286*91f16700Schasinglulu PMU_DDR1_IO_RET_CFG, 287*91f16700Schasinglulu DBG_PWRUP_B0_CFG = 15, 288*91f16700Schasinglulu 289*91f16700Schasinglulu DBG_NOPWERDWN_L0_EN, 290*91f16700Schasinglulu DBG_NOPWERDWN_L1_EN, 291*91f16700Schasinglulu DBG_NOPWERDWN_L2_EN, 292*91f16700Schasinglulu DBG_NOPWERDWN_L3_EN, 293*91f16700Schasinglulu 294*91f16700Schasinglulu DBG_PWRUP_REQ_L_EN = 20, 295*91f16700Schasinglulu CLUSTER_L_CLK_SRC_GATING_CFG, 296*91f16700Schasinglulu L2_FLUSH_REQ_CLUSTER_L, 297*91f16700Schasinglulu ACINACTM_CLUSTER_L_CFG, 298*91f16700Schasinglulu 299*91f16700Schasinglulu DBG_NO_PWERDWN_B0_EN, 300*91f16700Schasinglulu DBG_NO_PWERDWN_B1_EN, 301*91f16700Schasinglulu 302*91f16700Schasinglulu DBG_PWRUP_REQ_B_EN = 28, 303*91f16700Schasinglulu CLUSTER_B_CLK_SRC_GATING_CFG, 304*91f16700Schasinglulu L2_FLUSH_REQ_CLUSTER_B, 305*91f16700Schasinglulu ACINACTM_CLUSTER_B_CFG, 306*91f16700Schasinglulu }; 307*91f16700Schasinglulu 308*91f16700Schasinglulu enum pmu_int_con { 309*91f16700Schasinglulu PMU_PMU_INT_EN = 0, 310*91f16700Schasinglulu PMU_PWRMD_WKUP_INT_EN, 311*91f16700Schasinglulu PMU_WKUP_GPIO0_NEG_INT_EN, 312*91f16700Schasinglulu PMU_WKUP_GPIO0_POS_INT_EN, 313*91f16700Schasinglulu PMU_WKUP_GPIO1_NEG_INT_EN, 314*91f16700Schasinglulu PMU_WKUP_GPIO1_POS_INT_EN, 315*91f16700Schasinglulu }; 316*91f16700Schasinglulu 317*91f16700Schasinglulu enum pmu_int_st { 318*91f16700Schasinglulu PMU_PWRMD_WKUP_INT_ST = 1, 319*91f16700Schasinglulu PMU_WKUP_GPIO0_NEG_INT_ST, 320*91f16700Schasinglulu PMU_WKUP_GPIO0_POS_INT_ST, 321*91f16700Schasinglulu PMU_WKUP_GPIO1_NEG_INT_ST, 322*91f16700Schasinglulu PMU_WKUP_GPIO1_POS_INT_ST, 323*91f16700Schasinglulu }; 324*91f16700Schasinglulu 325*91f16700Schasinglulu enum pmu_gpio0_pos_int_con { 326*91f16700Schasinglulu PMU_GPIO0A_POS_INT_EN = 0, 327*91f16700Schasinglulu PMU_GPIO0B_POS_INT_EN = 8, 328*91f16700Schasinglulu PMU_GPIO0C_POS_INT_EN = 16, 329*91f16700Schasinglulu PMU_GPIO0D_POS_INT_EN = 24, 330*91f16700Schasinglulu }; 331*91f16700Schasinglulu 332*91f16700Schasinglulu enum pmu_gpio0_neg_int_con { 333*91f16700Schasinglulu PMU_GPIO0A_NEG_INT_EN = 0, 334*91f16700Schasinglulu PMU_GPIO0B_NEG_INT_EN = 8, 335*91f16700Schasinglulu PMU_GPIO0C_NEG_INT_EN = 16, 336*91f16700Schasinglulu PMU_GPIO0D_NEG_INT_EN = 24, 337*91f16700Schasinglulu }; 338*91f16700Schasinglulu 339*91f16700Schasinglulu enum pmu_gpio1_pos_int_con { 340*91f16700Schasinglulu PMU_GPIO1A_POS_INT_EN = 0, 341*91f16700Schasinglulu PMU_GPIO1B_POS_INT_EN = 8, 342*91f16700Schasinglulu PMU_GPIO1C_POS_INT_EN = 16, 343*91f16700Schasinglulu PMU_GPIO1D_POS_INT_EN = 24, 344*91f16700Schasinglulu }; 345*91f16700Schasinglulu 346*91f16700Schasinglulu enum pmu_gpio1_neg_int_con { 347*91f16700Schasinglulu PMU_GPIO1A_NEG_INT_EN = 0, 348*91f16700Schasinglulu PMU_GPIO1B_NEG_INT_EN = 8, 349*91f16700Schasinglulu PMU_GPIO1C_NEG_INT_EN = 16, 350*91f16700Schasinglulu PMU_GPIO1D_NEG_INT_EN = 24, 351*91f16700Schasinglulu }; 352*91f16700Schasinglulu 353*91f16700Schasinglulu enum pmu_gpio0_pos_int_st { 354*91f16700Schasinglulu PMU_GPIO0A_POS_INT_ST = 0, 355*91f16700Schasinglulu PMU_GPIO0B_POS_INT_ST = 8, 356*91f16700Schasinglulu PMU_GPIO0C_POS_INT_ST = 16, 357*91f16700Schasinglulu PMU_GPIO0D_POS_INT_ST = 24, 358*91f16700Schasinglulu }; 359*91f16700Schasinglulu 360*91f16700Schasinglulu enum pmu_gpio0_neg_int_st { 361*91f16700Schasinglulu PMU_GPIO0A_NEG_INT_ST = 0, 362*91f16700Schasinglulu PMU_GPIO0B_NEG_INT_ST = 8, 363*91f16700Schasinglulu PMU_GPIO0C_NEG_INT_ST = 16, 364*91f16700Schasinglulu PMU_GPIO0D_NEG_INT_ST = 24, 365*91f16700Schasinglulu }; 366*91f16700Schasinglulu 367*91f16700Schasinglulu enum pmu_gpio1_pos_int_st { 368*91f16700Schasinglulu PMU_GPIO1A_POS_INT_ST = 0, 369*91f16700Schasinglulu PMU_GPIO1B_POS_INT_ST = 8, 370*91f16700Schasinglulu PMU_GPIO1C_POS_INT_ST = 16, 371*91f16700Schasinglulu PMU_GPIO1D_POS_INT_ST = 24, 372*91f16700Schasinglulu }; 373*91f16700Schasinglulu 374*91f16700Schasinglulu enum pmu_gpio1_neg_int_st { 375*91f16700Schasinglulu PMU_GPIO1A_NEG_INT_ST = 0, 376*91f16700Schasinglulu PMU_GPIO1B_NEG_INT_ST = 8, 377*91f16700Schasinglulu PMU_GPIO1C_NEG_INT_ST = 16, 378*91f16700Schasinglulu PMU_GPIO1D_NEG_INT_ST = 24, 379*91f16700Schasinglulu }; 380*91f16700Schasinglulu 381*91f16700Schasinglulu /* pmu power down configure register 0x0050 */ 382*91f16700Schasinglulu enum pmu_pwrdn_inten { 383*91f16700Schasinglulu PMU_A53_L0_PWR_SWITCH_INT_EN = 0, 384*91f16700Schasinglulu PMU_A53_L1_PWR_SWITCH_INT_EN, 385*91f16700Schasinglulu PMU_A53_L2_PWR_SWITCH_INT_EN, 386*91f16700Schasinglulu PMU_A53_L3_PWR_SWITCH_INT_EN, 387*91f16700Schasinglulu 388*91f16700Schasinglulu PMU_A72_B0_PWR_SWITCH_INT_EN, 389*91f16700Schasinglulu PMU_A72_B1_PWR_SWITCH_INT_EN, 390*91f16700Schasinglulu PMU_SCU_L_PWR_SWITCH_INT_EN, 391*91f16700Schasinglulu PMU_SCU_B_PWR_SWITCH_INT_EN, 392*91f16700Schasinglulu 393*91f16700Schasinglulu PMU_TCPD0_PWR_SWITCH_INT_EN, 394*91f16700Schasinglulu PMU_TCPD1_PWR_SWITCH_INT_EN, 395*91f16700Schasinglulu PMU_CCI_PWR_SWITCH_INT_EN, 396*91f16700Schasinglulu PMU_PERILP_PWR_SWITCH_INT_EN, 397*91f16700Schasinglulu 398*91f16700Schasinglulu PMU_PERIHP_PWR_SWITCH_INT_EN, 399*91f16700Schasinglulu PMU_CENTER_PWR_SWITCH_INT_EN, 400*91f16700Schasinglulu PMU_VIO_PWR_SWITCH_INT_EN, 401*91f16700Schasinglulu PMU_GPU_PWR_SWITCH_INT_EN, 402*91f16700Schasinglulu 403*91f16700Schasinglulu PMU_VCODEC_PWR_SWITCH_INT_EN, 404*91f16700Schasinglulu PMU_VDU_PWR_SWITCH_INT_EN, 405*91f16700Schasinglulu PMU_RGA_PWR_SWITCH_INT_EN, 406*91f16700Schasinglulu PMU_IEP_PWR_SWITCH_INT_EN, 407*91f16700Schasinglulu 408*91f16700Schasinglulu PMU_VO_PWR_SWITCH_INT_EN, 409*91f16700Schasinglulu PMU_ISP0_PWR_SWITCH_INT_EN = 22, 410*91f16700Schasinglulu PMU_ISP1_PWR_SWITCH_INT_EN, 411*91f16700Schasinglulu 412*91f16700Schasinglulu PMU_HDCP_PWR_SWITCH_INT_EN, 413*91f16700Schasinglulu PMU_GMAC_PWR_SWITCH_INT_EN, 414*91f16700Schasinglulu PMU_EMMC_PWR_SWITCH_INT_EN, 415*91f16700Schasinglulu PMU_USB3_PWR_SWITCH_INT_EN, 416*91f16700Schasinglulu 417*91f16700Schasinglulu PMU_EDP_PWR_SWITCH_INT_EN, 418*91f16700Schasinglulu PMU_GIC_PWR_SWITCH_INT_EN, 419*91f16700Schasinglulu PMU_SD_PWR_SWITCH_INT_EN, 420*91f16700Schasinglulu PMU_SDIOAUDIO_PWR_SWITCH_INT_EN, 421*91f16700Schasinglulu }; 422*91f16700Schasinglulu 423*91f16700Schasinglulu enum pmu_wkup_status { 424*91f16700Schasinglulu PMU_WKUP_BY_CLSTER_L_INT = 0, 425*91f16700Schasinglulu PMU_WKUP_BY_CLSTER_b_INT, 426*91f16700Schasinglulu PMU_WKUP_BY_GPIO_INT, 427*91f16700Schasinglulu PMU_WKUP_BY_SDIO_DET, 428*91f16700Schasinglulu 429*91f16700Schasinglulu PMU_WKUP_BY_SDMMC_DET, 430*91f16700Schasinglulu PMU_WKUP_BY_TIMER = 6, 431*91f16700Schasinglulu PMU_WKUP_BY_USBDEV_DET, 432*91f16700Schasinglulu 433*91f16700Schasinglulu PMU_WKUP_BY_M0_SFT, 434*91f16700Schasinglulu PMU_WKUP_BY_M0_WDT_INT, 435*91f16700Schasinglulu PMU_WKUP_BY_TIMEOUT, 436*91f16700Schasinglulu PMU_WKUP_BY_PWM, 437*91f16700Schasinglulu 438*91f16700Schasinglulu PMU_WKUP_BY_PCIE = 13, 439*91f16700Schasinglulu }; 440*91f16700Schasinglulu 441*91f16700Schasinglulu enum pmu_bus_clr { 442*91f16700Schasinglulu PMU_CLR_GPU = 0, 443*91f16700Schasinglulu PMU_CLR_PERILP, 444*91f16700Schasinglulu PMU_CLR_PERIHP, 445*91f16700Schasinglulu PMU_CLR_VCODEC, 446*91f16700Schasinglulu 447*91f16700Schasinglulu PMU_CLR_VDU, 448*91f16700Schasinglulu PMU_CLR_RGA, 449*91f16700Schasinglulu PMU_CLR_IEP, 450*91f16700Schasinglulu PMU_CLR_VOPB, 451*91f16700Schasinglulu 452*91f16700Schasinglulu PMU_CLR_VOPL, 453*91f16700Schasinglulu PMU_CLR_ISP0, 454*91f16700Schasinglulu PMU_CLR_ISP1, 455*91f16700Schasinglulu PMU_CLR_HDCP, 456*91f16700Schasinglulu 457*91f16700Schasinglulu PMU_CLR_USB3, 458*91f16700Schasinglulu PMU_CLR_PERILPM0, 459*91f16700Schasinglulu PMU_CLR_CENTER, 460*91f16700Schasinglulu PMU_CLR_CCIM1, 461*91f16700Schasinglulu 462*91f16700Schasinglulu PMU_CLR_CCIM0, 463*91f16700Schasinglulu PMU_CLR_VIO, 464*91f16700Schasinglulu PMU_CLR_MSCH0, 465*91f16700Schasinglulu PMU_CLR_MSCH1, 466*91f16700Schasinglulu 467*91f16700Schasinglulu PMU_CLR_ALIVE, 468*91f16700Schasinglulu PMU_CLR_PMU, 469*91f16700Schasinglulu PMU_CLR_EDP, 470*91f16700Schasinglulu PMU_CLR_GMAC, 471*91f16700Schasinglulu 472*91f16700Schasinglulu PMU_CLR_EMMC, 473*91f16700Schasinglulu PMU_CLR_CENTER1, 474*91f16700Schasinglulu PMU_CLR_PMUM0, 475*91f16700Schasinglulu PMU_CLR_GIC, 476*91f16700Schasinglulu 477*91f16700Schasinglulu PMU_CLR_SD, 478*91f16700Schasinglulu PMU_CLR_SDIOAUDIO, 479*91f16700Schasinglulu }; 480*91f16700Schasinglulu 481*91f16700Schasinglulu /* PMU bus idle request register */ 482*91f16700Schasinglulu enum pmu_bus_idle_req { 483*91f16700Schasinglulu PMU_IDLE_REQ_GPU = 0, 484*91f16700Schasinglulu PMU_IDLE_REQ_PERILP, 485*91f16700Schasinglulu PMU_IDLE_REQ_PERIHP, 486*91f16700Schasinglulu PMU_IDLE_REQ_VCODEC, 487*91f16700Schasinglulu 488*91f16700Schasinglulu PMU_IDLE_REQ_VDU, 489*91f16700Schasinglulu PMU_IDLE_REQ_RGA, 490*91f16700Schasinglulu PMU_IDLE_REQ_IEP, 491*91f16700Schasinglulu PMU_IDLE_REQ_VOPB, 492*91f16700Schasinglulu 493*91f16700Schasinglulu PMU_IDLE_REQ_VOPL, 494*91f16700Schasinglulu PMU_IDLE_REQ_ISP0, 495*91f16700Schasinglulu PMU_IDLE_REQ_ISP1, 496*91f16700Schasinglulu PMU_IDLE_REQ_HDCP, 497*91f16700Schasinglulu 498*91f16700Schasinglulu PMU_IDLE_REQ_USB3, 499*91f16700Schasinglulu PMU_IDLE_REQ_PERILPM0, 500*91f16700Schasinglulu PMU_IDLE_REQ_CENTER, 501*91f16700Schasinglulu PMU_IDLE_REQ_CCIM0, 502*91f16700Schasinglulu 503*91f16700Schasinglulu PMU_IDLE_REQ_CCIM1, 504*91f16700Schasinglulu PMU_IDLE_REQ_VIO, 505*91f16700Schasinglulu PMU_IDLE_REQ_MSCH0, 506*91f16700Schasinglulu PMU_IDLE_REQ_MSCH1, 507*91f16700Schasinglulu 508*91f16700Schasinglulu PMU_IDLE_REQ_ALIVE, 509*91f16700Schasinglulu PMU_IDLE_REQ_PMU, 510*91f16700Schasinglulu PMU_IDLE_REQ_EDP, 511*91f16700Schasinglulu PMU_IDLE_REQ_GMAC, 512*91f16700Schasinglulu 513*91f16700Schasinglulu PMU_IDLE_REQ_EMMC, 514*91f16700Schasinglulu PMU_IDLE_REQ_CENTER1, 515*91f16700Schasinglulu PMU_IDLE_REQ_PMUM0, 516*91f16700Schasinglulu PMU_IDLE_REQ_GIC, 517*91f16700Schasinglulu 518*91f16700Schasinglulu PMU_IDLE_REQ_SD, 519*91f16700Schasinglulu PMU_IDLE_REQ_SDIOAUDIO, 520*91f16700Schasinglulu }; 521*91f16700Schasinglulu 522*91f16700Schasinglulu /* pmu bus idle status register */ 523*91f16700Schasinglulu enum pmu_bus_idle_st { 524*91f16700Schasinglulu PMU_IDLE_ST_GPU = 0, 525*91f16700Schasinglulu PMU_IDLE_ST_PERILP, 526*91f16700Schasinglulu PMU_IDLE_ST_PERIHP, 527*91f16700Schasinglulu PMU_IDLE_ST_VCODEC, 528*91f16700Schasinglulu 529*91f16700Schasinglulu PMU_IDLE_ST_VDU, 530*91f16700Schasinglulu PMU_IDLE_ST_RGA, 531*91f16700Schasinglulu PMU_IDLE_ST_IEP, 532*91f16700Schasinglulu PMU_IDLE_ST_VOPB, 533*91f16700Schasinglulu 534*91f16700Schasinglulu PMU_IDLE_ST_VOPL, 535*91f16700Schasinglulu PMU_IDLE_ST_ISP0, 536*91f16700Schasinglulu PMU_IDLE_ST_ISP1, 537*91f16700Schasinglulu PMU_IDLE_ST_HDCP, 538*91f16700Schasinglulu 539*91f16700Schasinglulu PMU_IDLE_ST_USB3, 540*91f16700Schasinglulu PMU_IDLE_ST_PERILPM0, 541*91f16700Schasinglulu PMU_IDLE_ST_CENTER, 542*91f16700Schasinglulu PMU_IDLE_ST_CCIM0, 543*91f16700Schasinglulu 544*91f16700Schasinglulu PMU_IDLE_ST_CCIM1, 545*91f16700Schasinglulu PMU_IDLE_ST_VIO, 546*91f16700Schasinglulu PMU_IDLE_ST_MSCH0, 547*91f16700Schasinglulu PMU_IDLE_ST_MSCH1, 548*91f16700Schasinglulu 549*91f16700Schasinglulu PMU_IDLE_ST_ALIVE, 550*91f16700Schasinglulu PMU_IDLE_ST_PMU, 551*91f16700Schasinglulu PMU_IDLE_ST_EDP, 552*91f16700Schasinglulu PMU_IDLE_ST_GMAC, 553*91f16700Schasinglulu 554*91f16700Schasinglulu PMU_IDLE_ST_EMMC, 555*91f16700Schasinglulu PMU_IDLE_ST_CENTER1, 556*91f16700Schasinglulu PMU_IDLE_ST_PMUM0, 557*91f16700Schasinglulu PMU_IDLE_ST_GIC, 558*91f16700Schasinglulu 559*91f16700Schasinglulu PMU_IDLE_ST_SD, 560*91f16700Schasinglulu PMU_IDLE_ST_SDIOAUDIO, 561*91f16700Schasinglulu }; 562*91f16700Schasinglulu 563*91f16700Schasinglulu enum pmu_bus_idle_ack { 564*91f16700Schasinglulu PMU_IDLE_ACK_GPU = 0, 565*91f16700Schasinglulu PMU_IDLE_ACK_PERILP, 566*91f16700Schasinglulu PMU_IDLE_ACK_PERIHP, 567*91f16700Schasinglulu PMU_IDLE_ACK_VCODEC, 568*91f16700Schasinglulu 569*91f16700Schasinglulu PMU_IDLE_ACK_VDU, 570*91f16700Schasinglulu PMU_IDLE_ACK_RGA, 571*91f16700Schasinglulu PMU_IDLE_ACK_IEP, 572*91f16700Schasinglulu PMU_IDLE_ACK_VOPB, 573*91f16700Schasinglulu 574*91f16700Schasinglulu PMU_IDLE_ACK_VOPL, 575*91f16700Schasinglulu PMU_IDLE_ACK_ISP0, 576*91f16700Schasinglulu PMU_IDLE_ACK_ISP1, 577*91f16700Schasinglulu PMU_IDLE_ACK_HDCP, 578*91f16700Schasinglulu 579*91f16700Schasinglulu PMU_IDLE_ACK_USB3, 580*91f16700Schasinglulu PMU_IDLE_ACK_PERILPM0, 581*91f16700Schasinglulu PMU_IDLE_ACK_CENTER, 582*91f16700Schasinglulu PMU_IDLE_ACK_CCIM0, 583*91f16700Schasinglulu 584*91f16700Schasinglulu PMU_IDLE_ACK_CCIM1, 585*91f16700Schasinglulu PMU_IDLE_ACK_VIO, 586*91f16700Schasinglulu PMU_IDLE_ACK_MSCH0, 587*91f16700Schasinglulu PMU_IDLE_ACK_MSCH1, 588*91f16700Schasinglulu 589*91f16700Schasinglulu PMU_IDLE_ACK_ALIVE, 590*91f16700Schasinglulu PMU_IDLE_ACK_PMU, 591*91f16700Schasinglulu PMU_IDLE_ACK_EDP, 592*91f16700Schasinglulu PMU_IDLE_ACK_GMAC, 593*91f16700Schasinglulu 594*91f16700Schasinglulu PMU_IDLE_ACK_EMMC, 595*91f16700Schasinglulu PMU_IDLE_ACK_CENTER1, 596*91f16700Schasinglulu PMU_IDLE_ACK_PMUM0, 597*91f16700Schasinglulu PMU_IDLE_ACK_GIC, 598*91f16700Schasinglulu 599*91f16700Schasinglulu PMU_IDLE_ACK_SD, 600*91f16700Schasinglulu PMU_IDLE_ACK_SDIOAUDIO, 601*91f16700Schasinglulu }; 602*91f16700Schasinglulu 603*91f16700Schasinglulu enum pmu_cci500_con { 604*91f16700Schasinglulu PMU_PREQ_CCI500_CFG_SW = 0, 605*91f16700Schasinglulu PMU_CLR_PREQ_CCI500_HW, 606*91f16700Schasinglulu PMU_PSTATE_CCI500_0, 607*91f16700Schasinglulu PMU_PSTATE_CCI500_1, 608*91f16700Schasinglulu 609*91f16700Schasinglulu PMU_PSTATE_CCI500_2, 610*91f16700Schasinglulu PMU_QREQ_CCI500_CFG_SW, 611*91f16700Schasinglulu PMU_CLR_QREQ_CCI500_HW, 612*91f16700Schasinglulu PMU_QGATING_CCI500_CFG, 613*91f16700Schasinglulu 614*91f16700Schasinglulu PMU_PREQ_CCI500_CFG_SW_WMSK = 16, 615*91f16700Schasinglulu PMU_CLR_PREQ_CCI500_HW_WMSK, 616*91f16700Schasinglulu PMU_PSTATE_CCI500_0_WMSK, 617*91f16700Schasinglulu PMU_PSTATE_CCI500_1_WMSK, 618*91f16700Schasinglulu 619*91f16700Schasinglulu PMU_PSTATE_CCI500_2_WMSK, 620*91f16700Schasinglulu PMU_QREQ_CCI500_CFG_SW_WMSK, 621*91f16700Schasinglulu PMU_CLR_QREQ_CCI500_HW_WMSK, 622*91f16700Schasinglulu PMU_QGATING_CCI500_CFG_WMSK, 623*91f16700Schasinglulu }; 624*91f16700Schasinglulu 625*91f16700Schasinglulu enum pmu_adb400_con { 626*91f16700Schasinglulu PMU_PWRDWN_REQ_CXCS_SW = 0, 627*91f16700Schasinglulu PMU_PWRDWN_REQ_CORE_L_SW, 628*91f16700Schasinglulu PMU_PWRDWN_REQ_CORE_L_2GIC_SW, 629*91f16700Schasinglulu PMU_PWRDWN_REQ_GIC2_CORE_L_SW, 630*91f16700Schasinglulu 631*91f16700Schasinglulu PMU_PWRDWN_REQ_CORE_B_SW, 632*91f16700Schasinglulu PMU_PWRDWN_REQ_CORE_B_2GIC_SW, 633*91f16700Schasinglulu PMU_PWRDWN_REQ_GIC2_CORE_B_SW, 634*91f16700Schasinglulu 635*91f16700Schasinglulu PMU_CLR_CXCS_HW = 8, 636*91f16700Schasinglulu PMU_CLR_CORE_L_HW, 637*91f16700Schasinglulu PMU_CLR_CORE_L_2GIC_HW, 638*91f16700Schasinglulu PMU_CLR_GIC2_CORE_L_HW, 639*91f16700Schasinglulu 640*91f16700Schasinglulu PMU_CLR_CORE_B_HW, 641*91f16700Schasinglulu PMU_CLR_CORE_B_2GIC_HW, 642*91f16700Schasinglulu PMU_CLR_GIC2_CORE_B_HW, 643*91f16700Schasinglulu 644*91f16700Schasinglulu PMU_PWRDWN_REQ_CXCS_SW_WMSK = 16, 645*91f16700Schasinglulu PMU_PWRDWN_REQ_CORE_L_SW_WMSK, 646*91f16700Schasinglulu PMU_PWRDWN_REQ_CORE_L_2GIC_SW_WMSK, 647*91f16700Schasinglulu PMU_PWRDWN_REQ_GIC2_CORE_L_SW_WMSK, 648*91f16700Schasinglulu 649*91f16700Schasinglulu PMU_PWRDWN_REQ_CORE_B_SW_WMSK, 650*91f16700Schasinglulu PMU_PWRDWN_REQ_CORE_B_2GIC_SW_WMSK, 651*91f16700Schasinglulu PMU_PWRDWN_REQ_GIC2_CORE_B_SW_WMSK, 652*91f16700Schasinglulu 653*91f16700Schasinglulu PMU_CLR_CXCS_HW_WMSK = 24, 654*91f16700Schasinglulu PMU_CLR_CORE_L_HW_WMSK, 655*91f16700Schasinglulu PMU_CLR_CORE_L_2GIC_HW_WMSK, 656*91f16700Schasinglulu PMU_CLR_GIC2_CORE_L_HW_WMSK, 657*91f16700Schasinglulu 658*91f16700Schasinglulu PMU_CLR_CORE_B_HW_WMSK, 659*91f16700Schasinglulu PMU_CLR_CORE_B_2GIC_HW_WMSK, 660*91f16700Schasinglulu PMU_CLR_GIC2_CORE_B_HW_WMSK, 661*91f16700Schasinglulu }; 662*91f16700Schasinglulu 663*91f16700Schasinglulu enum pmu_adb400_st { 664*91f16700Schasinglulu PMU_PWRDWN_REQ_CXCS_SW_ST = 0, 665*91f16700Schasinglulu PMU_PWRDWN_REQ_CORE_L_SW_ST, 666*91f16700Schasinglulu PMU_PWRDWN_REQ_CORE_L_2GIC_SW_ST, 667*91f16700Schasinglulu PMU_PWRDWN_REQ_GIC2_CORE_L_SW_ST, 668*91f16700Schasinglulu 669*91f16700Schasinglulu PMU_PWRDWN_REQ_CORE_B_SW_ST, 670*91f16700Schasinglulu PMU_PWRDWN_REQ_CORE_B_2GIC_SW_ST, 671*91f16700Schasinglulu PMU_PWRDWN_REQ_GIC2_CORE_B_SW_ST, 672*91f16700Schasinglulu 673*91f16700Schasinglulu PMU_CLR_CXCS_HW_ST = 8, 674*91f16700Schasinglulu PMU_CLR_CORE_L_HW_ST, 675*91f16700Schasinglulu PMU_CLR_CORE_L_2GIC_HW_ST, 676*91f16700Schasinglulu PMU_CLR_GIC2_CORE_L_HW_ST, 677*91f16700Schasinglulu 678*91f16700Schasinglulu PMU_CLR_CORE_B_HW_ST, 679*91f16700Schasinglulu PMU_CLR_CORE_B_2GIC_HW_ST, 680*91f16700Schasinglulu PMU_CLR_GIC2_CORE_B_HW_ST, 681*91f16700Schasinglulu }; 682*91f16700Schasinglulu 683*91f16700Schasinglulu enum pmu_pwrdn_con1 { 684*91f16700Schasinglulu PMU_VD_SCU_L_PWRDN_EN = 0, 685*91f16700Schasinglulu PMU_VD_SCU_B_PWRDN_EN, 686*91f16700Schasinglulu PMU_VD_CENTER_PWRDN_EN, 687*91f16700Schasinglulu }; 688*91f16700Schasinglulu 689*91f16700Schasinglulu enum pmu_core_pwr_st { 690*91f16700Schasinglulu L2_FLUSHDONE_CLUSTER_L = 0, 691*91f16700Schasinglulu STANDBY_BY_WFIL2_CLUSTER_L, 692*91f16700Schasinglulu 693*91f16700Schasinglulu L2_FLUSHDONE_CLUSTER_B = 10, 694*91f16700Schasinglulu STANDBY_BY_WFIL2_CLUSTER_B, 695*91f16700Schasinglulu }; 696*91f16700Schasinglulu 697*91f16700Schasinglulu #endif /* PMU_BITS_H */ 698