16fba6e04STony Xie /* 26fba6e04STony Xie * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. 36fba6e04STony Xie * 46fba6e04STony Xie * Redistribution and use in source and binary forms, with or without 56fba6e04STony Xie * modification, are permitted provided that the following conditions are met: 66fba6e04STony Xie * 76fba6e04STony Xie * Redistributions of source code must retain the above copyright notice, this 86fba6e04STony Xie * list of conditions and the following disclaimer. 96fba6e04STony Xie * 106fba6e04STony Xie * Redistributions in binary form must reproduce the above copyright notice, 116fba6e04STony Xie * this list of conditions and the following disclaimer in the documentation 126fba6e04STony Xie * and/or other materials provided with the distribution. 136fba6e04STony Xie * 146fba6e04STony Xie * Neither the name of ARM nor the names of its contributors may be used 156fba6e04STony Xie * to endorse or promote products derived from this software without specific 166fba6e04STony Xie * prior written permission. 176fba6e04STony Xie * 186fba6e04STony Xie * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 196fba6e04STony Xie * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 206fba6e04STony Xie * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 216fba6e04STony Xie * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 226fba6e04STony Xie * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 236fba6e04STony Xie * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 246fba6e04STony Xie * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 256fba6e04STony Xie * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 266fba6e04STony Xie * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 276fba6e04STony Xie * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 286fba6e04STony Xie * POSSIBILITY OF SUCH DAMAGE. 296fba6e04STony Xie */ 306fba6e04STony Xie 316fba6e04STony Xie #ifndef __PMU_H__ 326fba6e04STony Xie #define __PMU_H__ 336fba6e04STony Xie 346fba6e04STony Xie /* Allocate sp reginon in pmusram */ 356fba6e04STony Xie #define PSRAM_SP_SIZE 0x80 366fba6e04STony Xie #define PSRAM_SP_BOTTOM (PSRAM_SP_TOP - PSRAM_SP_SIZE) 376fba6e04STony Xie 386fba6e04STony Xie /***************************************************************************** 396fba6e04STony Xie * Common define for per soc pmu.h 406fba6e04STony Xie *****************************************************************************/ 416fba6e04STony Xie /* The ways of cores power domain contorlling */ 426fba6e04STony Xie enum cores_pm_ctr_mode { 436fba6e04STony Xie core_pwr_pd = 0, 446fba6e04STony Xie core_pwr_wfi = 1, 456fba6e04STony Xie core_pwr_wfi_int = 2 466fba6e04STony Xie }; 476fba6e04STony Xie 486fba6e04STony Xie /***************************************************************************** 496fba6e04STony Xie * pmu con,reg 506fba6e04STony Xie *****************************************************************************/ 516fba6e04STony Xie #define PMU_WKUP_CFG(n) ((n) * 4) 526fba6e04STony Xie 536fba6e04STony Xie #define PMU_CORE_PM_CON(cpu) (0xc0 + (cpu * 4)) 546fba6e04STony Xie 556fba6e04STony Xie /* the shift of bits for cores status */ 566fba6e04STony Xie enum pmu_core_pwrst_shift { 576fba6e04STony Xie clstl_cpu_wfe = 2, 586fba6e04STony Xie clstl_cpu_wfi = 6, 596fba6e04STony Xie clstb_cpu_wfe = 12, 606fba6e04STony Xie clstb_cpu_wfi = 16 616fba6e04STony Xie }; 626fba6e04STony Xie 636fba6e04STony Xie #define CKECK_WFE_MSK 0x1 646fba6e04STony Xie #define CKECK_WFI_MSK 0x10 656fba6e04STony Xie #define CKECK_WFEI_MSK 0x11 666fba6e04STony Xie 676fba6e04STony Xie enum pmu_powerdomain_id { 686fba6e04STony Xie PD_CPUL0 = 0, 696fba6e04STony Xie PD_CPUL1, 706fba6e04STony Xie PD_CPUL2, 716fba6e04STony Xie PD_CPUL3, 726fba6e04STony Xie PD_CPUB0, 736fba6e04STony Xie PD_CPUB1, 746fba6e04STony Xie PD_SCUL, 756fba6e04STony Xie PD_SCUB, 766fba6e04STony Xie PD_TCPD0, 776fba6e04STony Xie PD_TCPD1, 786fba6e04STony Xie PD_CCI, 796fba6e04STony Xie PD_PERILP, 806fba6e04STony Xie PD_PERIHP, 816fba6e04STony Xie PD_CENTER, 826fba6e04STony Xie PD_VIO, 836fba6e04STony Xie PD_GPU, 846fba6e04STony Xie PD_VCODEC, 856fba6e04STony Xie PD_VDU, 866fba6e04STony Xie PD_RGA, 876fba6e04STony Xie PD_IEP, 886fba6e04STony Xie PD_VO, 896fba6e04STony Xie PD_ISP0 = 22, 906fba6e04STony Xie PD_ISP1, 916fba6e04STony Xie PD_HDCP, 926fba6e04STony Xie PD_GMAC, 936fba6e04STony Xie PD_EMMC, 946fba6e04STony Xie PD_USB3, 956fba6e04STony Xie PD_EDP, 966fba6e04STony Xie PD_GIC, 976fba6e04STony Xie PD_SD, 986fba6e04STony Xie PD_SDIOAUDIO, 996fba6e04STony Xie PD_END 1006fba6e04STony Xie }; 1016fba6e04STony Xie 1026fba6e04STony Xie enum powerdomain_state { 1036fba6e04STony Xie PMU_POWER_ON = 0, 1046fba6e04STony Xie PMU_POWER_OFF, 1056fba6e04STony Xie }; 1066fba6e04STony Xie 1076fba6e04STony Xie enum pmu_bus_id { 1086fba6e04STony Xie BUS_ID_GPU = 0, 1096fba6e04STony Xie BUS_ID_PERILP, 1106fba6e04STony Xie BUS_ID_PERIHP, 1116fba6e04STony Xie BUS_ID_VCODEC, 1126fba6e04STony Xie BUS_ID_VDU, 1136fba6e04STony Xie BUS_ID_RGA, 1146fba6e04STony Xie BUS_ID_IEP, 1156fba6e04STony Xie BUS_ID_VOPB, 1166fba6e04STony Xie BUS_ID_VOPL, 1176fba6e04STony Xie BUS_ID_ISP0, 1186fba6e04STony Xie BUS_ID_ISP1, 1196fba6e04STony Xie BUS_ID_HDCP, 1206fba6e04STony Xie BUS_ID_USB3, 1216fba6e04STony Xie BUS_ID_PERILPM0, 1226fba6e04STony Xie BUS_ID_CENTER, 1236fba6e04STony Xie BUS_ID_CCIM0, 1246fba6e04STony Xie BUS_ID_CCIM1, 1256fba6e04STony Xie BUS_ID_VIO, 1266fba6e04STony Xie BUS_ID_MSCH0, 1276fba6e04STony Xie BUS_ID_MSCH1, 1286fba6e04STony Xie BUS_ID_ALIVE, 1296fba6e04STony Xie BUS_ID_PMU, 1306fba6e04STony Xie BUS_ID_EDP, 1316fba6e04STony Xie BUS_ID_GMAC, 1326fba6e04STony Xie BUS_ID_EMMC, 1336fba6e04STony Xie BUS_ID_CENTER1, 1346fba6e04STony Xie BUS_ID_PMUM0, 1356fba6e04STony Xie BUS_ID_GIC, 1366fba6e04STony Xie BUS_ID_SD, 1376fba6e04STony Xie BUS_ID_SDIOAUDIO, 1386fba6e04STony Xie }; 1396fba6e04STony Xie 1406fba6e04STony Xie enum pmu_bus_state { 1416fba6e04STony Xie BUS_ACTIVE, 1426fba6e04STony Xie BUS_IDLE, 1436fba6e04STony Xie }; 1446fba6e04STony Xie 1456fba6e04STony Xie /* pmu_cpuapm bit */ 1466fba6e04STony Xie enum pmu_cores_pm_by_wfi { 1476fba6e04STony Xie core_pm_en = 0, 1486fba6e04STony Xie core_pm_int_wakeup_en, 1496fba6e04STony Xie core_pm_resv, 1506fba6e04STony Xie core_pm_sft_wakeup_en 1516fba6e04STony Xie }; 1526fba6e04STony Xie 1536fba6e04STony Xie enum pmu_wkup_cfg0 { 1546fba6e04STony Xie PMU_GPIO0A_POSE_WKUP_EN = 0, 1556fba6e04STony Xie PMU_GPIO0B_POSE_WKUP_EN = 8, 1566fba6e04STony Xie PMU_GPIO0C_POSE_WKUP_EN = 16, 1576fba6e04STony Xie PMU_GPIO0D_POSE_WKUP_EN = 24, 1586fba6e04STony Xie }; 1596fba6e04STony Xie 1606fba6e04STony Xie enum pmu_wkup_cfg1 { 1616fba6e04STony Xie PMU_GPIO0A_NEGEDGE_WKUP_EN = 0, 1626fba6e04STony Xie PMU_GPIO0B_NEGEDGE_WKUP_EN = 7, 1636fba6e04STony Xie PMU_GPIO0C_NEGEDGE_WKUP_EN = 16, 1646fba6e04STony Xie PMU_GPIO0D_NEGEDGE_WKUP_EN = 24, 1656fba6e04STony Xie }; 1666fba6e04STony Xie 1676fba6e04STony Xie enum pmu_wkup_cfg2 { 1686fba6e04STony Xie PMU_GPIO1A_POSE_WKUP_EN = 0, 1696fba6e04STony Xie PMU_GPIO1B_POSE_WKUP_EN = 7, 1706fba6e04STony Xie PMU_GPIO1C_POSE_WKUP_EN = 16, 1716fba6e04STony Xie PMU_GPIO1D_POSE_WKUP_EN = 24, 1726fba6e04STony Xie }; 1736fba6e04STony Xie 1746fba6e04STony Xie enum pmu_wkup_cfg3 { 1756fba6e04STony Xie PMU_GPIO1A_NEGEDGE_WKUP_EN = 0, 1766fba6e04STony Xie PMU_GPIO1B_NEGEDGE_WKUP_EN = 7, 1776fba6e04STony Xie PMU_GPIO1C_NEGEDGE_WKUP_EN = 16, 1786fba6e04STony Xie PMU_GPIO1D_NEGEDGE_WKUP_EN = 24, 1796fba6e04STony Xie }; 1806fba6e04STony Xie 1816fba6e04STony Xie /* pmu_wkup_cfg4 */ 1826fba6e04STony Xie enum pmu_wkup_cfg4 { 1836fba6e04STony Xie PMU_CLUSTER_L_WKUP_EN = 0, 1846fba6e04STony Xie PMU_CLUSTER_B_WKUP_EN, 1856fba6e04STony Xie PMU_GPIO_WKUP_EN, 1866fba6e04STony Xie PMU_SDIO_WKUP_EN, 1876fba6e04STony Xie 1886fba6e04STony Xie PMU_SDMMC_WKUP_EN, 1896fba6e04STony Xie PMU_TIMER_WKUP_EN = 6, 1906fba6e04STony Xie PMU_USBDEV_WKUP_EN, 1916fba6e04STony Xie 1926fba6e04STony Xie PMU_SFT_WKUP_EN, 1936fba6e04STony Xie PMU_M0_WDT_WKUP_EN, 1946fba6e04STony Xie PMU_TIMEOUT_WKUP_EN, 1956fba6e04STony Xie PMU_PWM_WKUP_EN, 1966fba6e04STony Xie 1976fba6e04STony Xie PMU_PCIE_WKUP_EN = 13, 1986fba6e04STony Xie }; 1996fba6e04STony Xie 2006fba6e04STony Xie enum pmu_pwrdn_con { 2016fba6e04STony Xie PMU_A53_L0_PWRDWN_EN = 0, 2026fba6e04STony Xie PMU_A53_L1_PWRDWN_EN, 2036fba6e04STony Xie PMU_A53_L2_PWRDWN_EN, 2046fba6e04STony Xie PMU_A53_L3_PWRDWN_EN, 2056fba6e04STony Xie 2066fba6e04STony Xie PMU_A72_B0_PWRDWN_EN, 2076fba6e04STony Xie PMU_A72_B1_PWRDWN_EN, 2086fba6e04STony Xie PMU_SCU_L_PWRDWN_EN, 2096fba6e04STony Xie PMU_SCU_B_PWRDWN_EN, 2106fba6e04STony Xie 2116fba6e04STony Xie PMU_TCPD0_PWRDWN_EN, 2126fba6e04STony Xie PMU_TCPD1_PWRDWN_EN, 2136fba6e04STony Xie PMU_CCI_PWRDWN_EN, 2146fba6e04STony Xie PMU_PERILP_PWRDWN_EN, 2156fba6e04STony Xie 2166fba6e04STony Xie PMU_PERIHP_PWRDWN_EN, 2176fba6e04STony Xie PMU_CENTER_PWRDWN_EN, 2186fba6e04STony Xie PMU_VIO_PWRDWN_EN, 2196fba6e04STony Xie PMU_GPU_PWRDWN_EN, 2206fba6e04STony Xie 2216fba6e04STony Xie PMU_VCODEC_PWRDWN_EN, 2226fba6e04STony Xie PMU_VDU_PWRDWN_EN, 2236fba6e04STony Xie PMU_RGA_PWRDWN_EN, 2246fba6e04STony Xie PMU_IEP_PWRDWN_EN, 2256fba6e04STony Xie 2266fba6e04STony Xie PMU_VO_PWRDWN_EN, 2276fba6e04STony Xie PMU_ISP0_PWRDWN_EN = 22, 2286fba6e04STony Xie PMU_ISP1_PWRDWN_EN, 2296fba6e04STony Xie 2306fba6e04STony Xie PMU_HDCP_PWRDWN_EN, 2316fba6e04STony Xie PMU_GMAC_PWRDWN_EN, 2326fba6e04STony Xie PMU_EMMC_PWRDWN_EN, 2336fba6e04STony Xie PMU_USB3_PWRDWN_EN, 2346fba6e04STony Xie 2356fba6e04STony Xie PMU_EDP_PWRDWN_EN, 2366fba6e04STony Xie PMU_GIC_PWRDWN_EN, 2376fba6e04STony Xie PMU_SD_PWRDWN_EN, 2386fba6e04STony Xie PMU_SDIOAUDIO_PWRDWN_EN, 2396fba6e04STony Xie }; 2406fba6e04STony Xie 2416fba6e04STony Xie enum pmu_pwrdn_st { 2426fba6e04STony Xie PMU_A53_L0_PWRDWN_ST = 0, 2436fba6e04STony Xie PMU_A53_L1_PWRDWN_ST, 2446fba6e04STony Xie PMU_A53_L2_PWRDWN_ST, 2456fba6e04STony Xie PMU_A53_L3_PWRDWN_ST, 2466fba6e04STony Xie 2476fba6e04STony Xie PMU_A72_B0_PWRDWN_ST, 2486fba6e04STony Xie PMU_A72_B1_PWRDWN_ST, 2496fba6e04STony Xie PMU_SCU_L_PWRDWN_ST, 2506fba6e04STony Xie PMU_SCU_B_PWRDWN_ST, 2516fba6e04STony Xie 2526fba6e04STony Xie PMU_TCPD0_PWRDWN_ST, 2536fba6e04STony Xie PMU_TCPD1_PWRDWN_ST, 2546fba6e04STony Xie PMU_CCI_PWRDWN_ST, 2556fba6e04STony Xie PMU_PERILP_PWRDWN_ST, 2566fba6e04STony Xie 2576fba6e04STony Xie PMU_PERIHP_PWRDWN_ST, 2586fba6e04STony Xie PMU_CENTER_PWRDWN_ST, 2596fba6e04STony Xie PMU_VIO_PWRDWN_ST, 2606fba6e04STony Xie PMU_GPU_PWRDWN_ST, 2616fba6e04STony Xie 2626fba6e04STony Xie PMU_VCODEC_PWRDWN_ST, 2636fba6e04STony Xie PMU_VDU_PWRDWN_ST, 2646fba6e04STony Xie PMU_RGA_PWRDWN_ST, 2656fba6e04STony Xie PMU_IEP_PWRDWN_ST, 2666fba6e04STony Xie 2676fba6e04STony Xie PMU_VO_PWRDWN_ST, 2686fba6e04STony Xie PMU_ISP0_PWRDWN_ST = 22, 2696fba6e04STony Xie PMU_ISP1_PWRDWN_ST, 2706fba6e04STony Xie 2716fba6e04STony Xie PMU_HDCP_PWRDWN_ST, 2726fba6e04STony Xie PMU_GMAC_PWRDWN_ST, 2736fba6e04STony Xie PMU_EMMC_PWRDWN_ST, 2746fba6e04STony Xie PMU_USB3_PWRDWN_ST, 2756fba6e04STony Xie 2766fba6e04STony Xie PMU_EDP_PWRDWN_ST, 2776fba6e04STony Xie PMU_GIC_PWRDWN_ST, 2786fba6e04STony Xie PMU_SD_PWRDWN_ST, 2796fba6e04STony Xie PMU_SDIOAUDIO_PWRDWN_ST, 2806fba6e04STony Xie 2816fba6e04STony Xie }; 2826fba6e04STony Xie 2836fba6e04STony Xie enum pmu_pll_con { 2846fba6e04STony Xie PMU_PLL_PD_CFG = 0, 2856fba6e04STony Xie PMU_SFT_PLL_PD = 8, 2866fba6e04STony Xie }; 2876fba6e04STony Xie 2886fba6e04STony Xie enum pmu_pwermode_con { 2896fba6e04STony Xie PMU_PWR_MODE_EN = 0, 2906fba6e04STony Xie PMU_WKUP_RST_EN, 2916fba6e04STony Xie PMU_INPUT_CLAMP_EN, 2926fba6e04STony Xie PMU_OSC_DIS, 2936fba6e04STony Xie 2946fba6e04STony Xie PMU_ALIVE_USE_LF, 2956fba6e04STony Xie PMU_PMU_USE_LF, 2966fba6e04STony Xie PMU_POWER_OFF_REQ_CFG, 2976fba6e04STony Xie PMU_CHIP_PD_EN, 2986fba6e04STony Xie 2996fba6e04STony Xie PMU_PLL_PD_EN, 3006fba6e04STony Xie PMU_CPU0_PD_EN, 3016fba6e04STony Xie PMU_L2_FLUSH_EN, 3026fba6e04STony Xie PMU_L2_IDLE_EN, 3036fba6e04STony Xie 3046fba6e04STony Xie PMU_SCU_PD_EN, 3056fba6e04STony Xie PMU_CCI_PD_EN, 3066fba6e04STony Xie PMU_PERILP_PD_EN, 3076fba6e04STony Xie PMU_CENTER_PD_EN, 3086fba6e04STony Xie 3096fba6e04STony Xie PMU_SREF0_ENTER_EN, 3106fba6e04STony Xie PMU_DDRC0_GATING_EN, 3116fba6e04STony Xie PMU_DDRIO0_RET_EN, 3126fba6e04STony Xie PMU_DDRIO0_RET_DE_REQ, 3136fba6e04STony Xie 3146fba6e04STony Xie PMU_SREF1_ENTER_EN, 3156fba6e04STony Xie PMU_DDRC1_GATING_EN, 3166fba6e04STony Xie PMU_DDRIO1_RET_EN, 3176fba6e04STony Xie PMU_DDRIO1_RET_DE_REQ, 3186fba6e04STony Xie 3196fba6e04STony Xie PMU_CLK_CENTER_SRC_GATE_EN = 26, 3206fba6e04STony Xie PMU_CLK_PERILP_SRC_GATE_EN, 3216fba6e04STony Xie 3226fba6e04STony Xie PMU_CLK_CORE_SRC_GATE_EN, 3236fba6e04STony Xie PMU_DDRIO_RET_HW_DE_REQ, 3246fba6e04STony Xie PMU_SLP_OUTPUT_CFG, 3256fba6e04STony Xie PMU_MAIN_CLUSTER, 3266fba6e04STony Xie }; 3276fba6e04STony Xie 3286fba6e04STony Xie enum pmu_sft_con { 3296fba6e04STony Xie PMU_WKUP_SFT = 0, 3306fba6e04STony Xie PMU_INPUT_CLAMP_CFG, 3316fba6e04STony Xie PMU_OSC_DIS_CFG, 3326fba6e04STony Xie PMU_PMU_LF_EN_CFG, 3336fba6e04STony Xie 3346fba6e04STony Xie PMU_ALIVE_LF_EN_CFG, 3356fba6e04STony Xie PMU_24M_EN_CFG, 3366fba6e04STony Xie PMU_DBG_PWRUP_L0_CFG, 3376fba6e04STony Xie PMU_WKUP_SFT_M0, 3386fba6e04STony Xie 3396fba6e04STony Xie PMU_DDRCTL0_C_SYSREQ_CFG, 3406fba6e04STony Xie PMU_DDR0_IO_RET_CFG, 3416fba6e04STony Xie 3426fba6e04STony Xie PMU_DDRCTL1_C_SYSREQ_CFG = 12, 3436fba6e04STony Xie PMU_DDR1_IO_RET_CFG, 344f47a25ddSCaesar Wang DBG_PWRUP_B0_CFG = 15, 345f47a25ddSCaesar Wang 346f47a25ddSCaesar Wang DBG_NOPWERDWN_L0_EN, 347f47a25ddSCaesar Wang DBG_NOPWERDWN_L1_EN, 348f47a25ddSCaesar Wang DBG_NOPWERDWN_L2_EN, 349f47a25ddSCaesar Wang DBG_NOPWERDWN_L3_EN, 350f47a25ddSCaesar Wang 351f47a25ddSCaesar Wang DBG_PWRUP_REQ_L_EN = 20, 352f47a25ddSCaesar Wang CLUSTER_L_CLK_SRC_GATING_CFG, 353f47a25ddSCaesar Wang L2_FLUSH_REQ_CLUSTER_L, 354f47a25ddSCaesar Wang ACINACTM_CLUSTER_L_CFG, 355f47a25ddSCaesar Wang 356f47a25ddSCaesar Wang DBG_NO_PWERDWN_B0_EN, 357f47a25ddSCaesar Wang DBG_NO_PWERDWN_B1_EN, 358f47a25ddSCaesar Wang 359f47a25ddSCaesar Wang DBG_PWRUP_REQ_B_EN = 28, 360f47a25ddSCaesar Wang CLUSTER_B_CLK_SRC_GATING_CFG, 361f47a25ddSCaesar Wang L2_FLUSH_REQ_CLUSTER_B, 362f47a25ddSCaesar Wang ACINACTM_CLUSTER_B_CFG, 3636fba6e04STony Xie }; 3646fba6e04STony Xie 3656fba6e04STony Xie enum pmu_int_con { 3666fba6e04STony Xie PMU_PMU_INT_EN = 0, 3676fba6e04STony Xie PMU_PWRMD_WKUP_INT_EN, 3686fba6e04STony Xie PMU_WKUP_GPIO0_NEG_INT_EN, 3696fba6e04STony Xie PMU_WKUP_GPIO0_POS_INT_EN, 3706fba6e04STony Xie PMU_WKUP_GPIO1_NEG_INT_EN, 3716fba6e04STony Xie PMU_WKUP_GPIO1_POS_INT_EN, 3726fba6e04STony Xie }; 3736fba6e04STony Xie 3746fba6e04STony Xie enum pmu_int_st { 3756fba6e04STony Xie PMU_PWRMD_WKUP_INT_ST = 1, 3766fba6e04STony Xie PMU_WKUP_GPIO0_NEG_INT_ST, 3776fba6e04STony Xie PMU_WKUP_GPIO0_POS_INT_ST, 3786fba6e04STony Xie PMU_WKUP_GPIO1_NEG_INT_ST, 3796fba6e04STony Xie PMU_WKUP_GPIO1_POS_INT_ST, 3806fba6e04STony Xie }; 3816fba6e04STony Xie 3826fba6e04STony Xie enum pmu_gpio0_pos_int_con { 3836fba6e04STony Xie PMU_GPIO0A_POS_INT_EN = 0, 3846fba6e04STony Xie PMU_GPIO0B_POS_INT_EN = 8, 3856fba6e04STony Xie PMU_GPIO0C_POS_INT_EN = 16, 3866fba6e04STony Xie PMU_GPIO0D_POS_INT_EN = 24, 3876fba6e04STony Xie }; 3886fba6e04STony Xie 3896fba6e04STony Xie enum pmu_gpio0_neg_int_con { 3906fba6e04STony Xie PMU_GPIO0A_NEG_INT_EN = 0, 3916fba6e04STony Xie PMU_GPIO0B_NEG_INT_EN = 8, 3926fba6e04STony Xie PMU_GPIO0C_NEG_INT_EN = 16, 3936fba6e04STony Xie PMU_GPIO0D_NEG_INT_EN = 24, 3946fba6e04STony Xie }; 3956fba6e04STony Xie 3966fba6e04STony Xie enum pmu_gpio1_pos_int_con { 3976fba6e04STony Xie PMU_GPIO1A_POS_INT_EN = 0, 3986fba6e04STony Xie PMU_GPIO1B_POS_INT_EN = 8, 3996fba6e04STony Xie PMU_GPIO1C_POS_INT_EN = 16, 4006fba6e04STony Xie PMU_GPIO1D_POS_INT_EN = 24, 4016fba6e04STony Xie }; 4026fba6e04STony Xie 4036fba6e04STony Xie enum pmu_gpio1_neg_int_con { 4046fba6e04STony Xie PMU_GPIO1A_NEG_INT_EN = 0, 4056fba6e04STony Xie PMU_GPIO1B_NEG_INT_EN = 8, 4066fba6e04STony Xie PMU_GPIO1C_NEG_INT_EN = 16, 4076fba6e04STony Xie PMU_GPIO1D_NEG_INT_EN = 24, 4086fba6e04STony Xie }; 4096fba6e04STony Xie 4106fba6e04STony Xie enum pmu_gpio0_pos_int_st { 4116fba6e04STony Xie PMU_GPIO0A_POS_INT_ST = 0, 4126fba6e04STony Xie PMU_GPIO0B_POS_INT_ST = 8, 4136fba6e04STony Xie PMU_GPIO0C_POS_INT_ST = 16, 4146fba6e04STony Xie PMU_GPIO0D_POS_INT_ST = 24, 4156fba6e04STony Xie }; 4166fba6e04STony Xie 4176fba6e04STony Xie enum pmu_gpio0_neg_int_st { 4186fba6e04STony Xie PMU_GPIO0A_NEG_INT_ST = 0, 4196fba6e04STony Xie PMU_GPIO0B_NEG_INT_ST = 8, 4206fba6e04STony Xie PMU_GPIO0C_NEG_INT_ST = 16, 4216fba6e04STony Xie PMU_GPIO0D_NEG_INT_ST = 24, 4226fba6e04STony Xie }; 4236fba6e04STony Xie 4246fba6e04STony Xie enum pmu_gpio1_pos_int_st { 4256fba6e04STony Xie PMU_GPIO1A_POS_INT_ST = 0, 4266fba6e04STony Xie PMU_GPIO1B_POS_INT_ST = 8, 4276fba6e04STony Xie PMU_GPIO1C_POS_INT_ST = 16, 4286fba6e04STony Xie PMU_GPIO1D_POS_INT_ST = 24, 4296fba6e04STony Xie }; 4306fba6e04STony Xie 4316fba6e04STony Xie enum pmu_gpio1_neg_int_st { 4326fba6e04STony Xie PMU_GPIO1A_NEG_INT_ST = 0, 4336fba6e04STony Xie PMU_GPIO1B_NEG_INT_ST = 8, 4346fba6e04STony Xie PMU_GPIO1C_NEG_INT_ST = 16, 4356fba6e04STony Xie PMU_GPIO1D_NEG_INT_ST = 24, 4366fba6e04STony Xie }; 4376fba6e04STony Xie 4386fba6e04STony Xie /* pmu power down configure register 0x0050 */ 4396fba6e04STony Xie enum pmu_pwrdn_inten { 4406fba6e04STony Xie PMU_A53_L0_PWR_SWITCH_INT_EN = 0, 4416fba6e04STony Xie PMU_A53_L1_PWR_SWITCH_INT_EN, 4426fba6e04STony Xie PMU_A53_L2_PWR_SWITCH_INT_EN, 4436fba6e04STony Xie PMU_A53_L3_PWR_SWITCH_INT_EN, 4446fba6e04STony Xie 4456fba6e04STony Xie PMU_A72_B0_PWR_SWITCH_INT_EN, 4466fba6e04STony Xie PMU_A72_B1_PWR_SWITCH_INT_EN, 4476fba6e04STony Xie PMU_SCU_L_PWR_SWITCH_INT_EN, 4486fba6e04STony Xie PMU_SCU_B_PWR_SWITCH_INT_EN, 4496fba6e04STony Xie 4506fba6e04STony Xie PMU_TCPD0_PWR_SWITCH_INT_EN, 4516fba6e04STony Xie PMU_TCPD1_PWR_SWITCH_INT_EN, 4526fba6e04STony Xie PMU_CCI_PWR_SWITCH_INT_EN, 4536fba6e04STony Xie PMU_PERILP_PWR_SWITCH_INT_EN, 4546fba6e04STony Xie 4556fba6e04STony Xie PMU_PERIHP_PWR_SWITCH_INT_EN, 4566fba6e04STony Xie PMU_CENTER_PWR_SWITCH_INT_EN, 4576fba6e04STony Xie PMU_VIO_PWR_SWITCH_INT_EN, 4586fba6e04STony Xie PMU_GPU_PWR_SWITCH_INT_EN, 4596fba6e04STony Xie 4606fba6e04STony Xie PMU_VCODEC_PWR_SWITCH_INT_EN, 4616fba6e04STony Xie PMU_VDU_PWR_SWITCH_INT_EN, 4626fba6e04STony Xie PMU_RGA_PWR_SWITCH_INT_EN, 4636fba6e04STony Xie PMU_IEP_PWR_SWITCH_INT_EN, 4646fba6e04STony Xie 4656fba6e04STony Xie PMU_VO_PWR_SWITCH_INT_EN, 4666fba6e04STony Xie PMU_ISP0_PWR_SWITCH_INT_EN = 22, 4676fba6e04STony Xie PMU_ISP1_PWR_SWITCH_INT_EN, 4686fba6e04STony Xie 4696fba6e04STony Xie PMU_HDCP_PWR_SWITCH_INT_EN, 4706fba6e04STony Xie PMU_GMAC_PWR_SWITCH_INT_EN, 4716fba6e04STony Xie PMU_EMMC_PWR_SWITCH_INT_EN, 4726fba6e04STony Xie PMU_USB3_PWR_SWITCH_INT_EN, 4736fba6e04STony Xie 4746fba6e04STony Xie PMU_EDP_PWR_SWITCH_INT_EN, 4756fba6e04STony Xie PMU_GIC_PWR_SWITCH_INT_EN, 4766fba6e04STony Xie PMU_SD_PWR_SWITCH_INT_EN, 4776fba6e04STony Xie PMU_SDIOAUDIO_PWR_SWITCH_INT_EN, 4786fba6e04STony Xie }; 4796fba6e04STony Xie 4806fba6e04STony Xie enum pmu_wkup_status { 4816fba6e04STony Xie PMU_WKUP_BY_CLSTER_L_INT = 0, 4826fba6e04STony Xie PMU_WKUP_BY_CLSTER_b_INT, 4836fba6e04STony Xie PMU_WKUP_BY_GPIO_INT, 4846fba6e04STony Xie PMU_WKUP_BY_SDIO_DET, 4856fba6e04STony Xie 4866fba6e04STony Xie PMU_WKUP_BY_SDMMC_DET, 4876fba6e04STony Xie PMU_WKUP_BY_TIMER = 6, 4886fba6e04STony Xie PMU_WKUP_BY_USBDEV_DET, 4896fba6e04STony Xie 4906fba6e04STony Xie PMU_WKUP_BY_M0_SFT, 4916fba6e04STony Xie PMU_WKUP_BY_M0_WDT_INT, 4926fba6e04STony Xie PMU_WKUP_BY_TIMEOUT, 4936fba6e04STony Xie PMU_WKUP_BY_PWM, 4946fba6e04STony Xie 4956fba6e04STony Xie PMU_WKUP_BY_PCIE = 13, 4966fba6e04STony Xie }; 4976fba6e04STony Xie 4986fba6e04STony Xie enum pmu_bus_clr { 4996fba6e04STony Xie PMU_CLR_GPU = 0, 5006fba6e04STony Xie PMU_CLR_PERILP, 5016fba6e04STony Xie PMU_CLR_PERIHP, 5026fba6e04STony Xie PMU_CLR_VCODEC, 5036fba6e04STony Xie 5046fba6e04STony Xie PMU_CLR_VDU, 5056fba6e04STony Xie PMU_CLR_RGA, 5066fba6e04STony Xie PMU_CLR_IEP, 5076fba6e04STony Xie PMU_CLR_VOPB, 5086fba6e04STony Xie 5096fba6e04STony Xie PMU_CLR_VOPL, 5106fba6e04STony Xie PMU_CLR_ISP0, 5116fba6e04STony Xie PMU_CLR_ISP1, 5126fba6e04STony Xie PMU_CLR_HDCP, 5136fba6e04STony Xie 5146fba6e04STony Xie PMU_CLR_USB3, 5156fba6e04STony Xie PMU_CLR_PERILPM0, 5166fba6e04STony Xie PMU_CLR_CENTER, 5176fba6e04STony Xie PMU_CLR_CCIM1, 5186fba6e04STony Xie 5196fba6e04STony Xie PMU_CLR_CCIM0, 5206fba6e04STony Xie PMU_CLR_VIO, 5216fba6e04STony Xie PMU_CLR_MSCH0, 5226fba6e04STony Xie PMU_CLR_MSCH1, 5236fba6e04STony Xie 5246fba6e04STony Xie PMU_CLR_ALIVE, 5256fba6e04STony Xie PMU_CLR_PMU, 5266fba6e04STony Xie PMU_CLR_EDP, 5276fba6e04STony Xie PMU_CLR_GMAC, 5286fba6e04STony Xie 5296fba6e04STony Xie PMU_CLR_EMMC, 5306fba6e04STony Xie PMU_CLR_CENTER1, 5316fba6e04STony Xie PMU_CLR_PMUM0, 5326fba6e04STony Xie PMU_CLR_GIC, 5336fba6e04STony Xie 5346fba6e04STony Xie PMU_CLR_SD, 5356fba6e04STony Xie PMU_CLR_SDIOAUDIO, 5366fba6e04STony Xie }; 5376fba6e04STony Xie 5386fba6e04STony Xie /* PMU bus idle request register */ 5396fba6e04STony Xie enum pmu_bus_idle_req { 5406fba6e04STony Xie PMU_IDLE_REQ_GPU = 0, 5416fba6e04STony Xie PMU_IDLE_REQ_PERILP, 5426fba6e04STony Xie PMU_IDLE_REQ_PERIHP, 5436fba6e04STony Xie PMU_IDLE_REQ_VCODEC, 5446fba6e04STony Xie 5456fba6e04STony Xie PMU_IDLE_REQ_VDU, 5466fba6e04STony Xie PMU_IDLE_REQ_RGA, 5476fba6e04STony Xie PMU_IDLE_REQ_IEP, 5486fba6e04STony Xie PMU_IDLE_REQ_VOPB, 5496fba6e04STony Xie 5506fba6e04STony Xie PMU_IDLE_REQ_VOPL, 5516fba6e04STony Xie PMU_IDLE_REQ_ISP0, 5526fba6e04STony Xie PMU_IDLE_REQ_ISP1, 5536fba6e04STony Xie PMU_IDLE_REQ_HDCP, 5546fba6e04STony Xie 5556fba6e04STony Xie PMU_IDLE_REQ_USB3, 5566fba6e04STony Xie PMU_IDLE_REQ_PERILPM0, 5576fba6e04STony Xie PMU_IDLE_REQ_CENTER, 5586fba6e04STony Xie PMU_IDLE_REQ_CCIM0, 5596fba6e04STony Xie 5606fba6e04STony Xie PMU_IDLE_REQ_CCIM1, 5616fba6e04STony Xie PMU_IDLE_REQ_VIO, 5626fba6e04STony Xie PMU_IDLE_REQ_MSCH0, 5636fba6e04STony Xie PMU_IDLE_REQ_MSCH1, 5646fba6e04STony Xie 5656fba6e04STony Xie PMU_IDLE_REQ_ALIVE, 5666fba6e04STony Xie PMU_IDLE_REQ_PMU, 5676fba6e04STony Xie PMU_IDLE_REQ_EDP, 5686fba6e04STony Xie PMU_IDLE_REQ_GMAC, 5696fba6e04STony Xie 5706fba6e04STony Xie PMU_IDLE_REQ_EMMC, 5716fba6e04STony Xie PMU_IDLE_REQ_CENTER1, 5726fba6e04STony Xie PMU_IDLE_REQ_PMUM0, 5736fba6e04STony Xie PMU_IDLE_REQ_GIC, 5746fba6e04STony Xie 5756fba6e04STony Xie PMU_IDLE_REQ_SD, 5766fba6e04STony Xie PMU_IDLE_REQ_SDIOAUDIO, 5776fba6e04STony Xie }; 5786fba6e04STony Xie 5796fba6e04STony Xie /* pmu bus idle status register */ 5806fba6e04STony Xie enum pmu_bus_idle_st { 5816fba6e04STony Xie PMU_IDLE_ST_GPU = 0, 5826fba6e04STony Xie PMU_IDLE_ST_PERILP, 5836fba6e04STony Xie PMU_IDLE_ST_PERIHP, 5846fba6e04STony Xie PMU_IDLE_ST_VCODEC, 5856fba6e04STony Xie 5866fba6e04STony Xie PMU_IDLE_ST_VDU, 5876fba6e04STony Xie PMU_IDLE_ST_RGA, 5886fba6e04STony Xie PMU_IDLE_ST_IEP, 5896fba6e04STony Xie PMU_IDLE_ST_VOPB, 5906fba6e04STony Xie 5916fba6e04STony Xie PMU_IDLE_ST_VOPL, 5926fba6e04STony Xie PMU_IDLE_ST_ISP0, 5936fba6e04STony Xie PMU_IDLE_ST_ISP1, 5946fba6e04STony Xie PMU_IDLE_ST_HDCP, 5956fba6e04STony Xie 5966fba6e04STony Xie PMU_IDLE_ST_USB3, 5976fba6e04STony Xie PMU_IDLE_ST_PERILPM0, 5986fba6e04STony Xie PMU_IDLE_ST_CENTER, 5996fba6e04STony Xie PMU_IDLE_ST_CCIM0, 6006fba6e04STony Xie 6016fba6e04STony Xie PMU_IDLE_ST_CCIM1, 6026fba6e04STony Xie PMU_IDLE_ST_VIO, 6036fba6e04STony Xie PMU_IDLE_ST_MSCH0, 6046fba6e04STony Xie PMU_IDLE_ST_MSCH1, 6056fba6e04STony Xie 6066fba6e04STony Xie PMU_IDLE_ST_ALIVE, 6076fba6e04STony Xie PMU_IDLE_ST_PMU, 6086fba6e04STony Xie PMU_IDLE_ST_EDP, 6096fba6e04STony Xie PMU_IDLE_ST_GMAC, 6106fba6e04STony Xie 6116fba6e04STony Xie PMU_IDLE_ST_EMMC, 6126fba6e04STony Xie PMU_IDLE_ST_CENTER1, 6136fba6e04STony Xie PMU_IDLE_ST_PMUM0, 6146fba6e04STony Xie PMU_IDLE_ST_GIC, 6156fba6e04STony Xie 6166fba6e04STony Xie PMU_IDLE_ST_SD, 6176fba6e04STony Xie PMU_IDLE_ST_SDIOAUDIO, 6186fba6e04STony Xie }; 6196fba6e04STony Xie 6206fba6e04STony Xie enum pmu_bus_idle_ack { 6216fba6e04STony Xie PMU_IDLE_ACK_GPU = 0, 6226fba6e04STony Xie PMU_IDLE_ACK_PERILP, 6236fba6e04STony Xie PMU_IDLE_ACK_PERIHP, 6246fba6e04STony Xie PMU_IDLE_ACK_VCODEC, 6256fba6e04STony Xie 6266fba6e04STony Xie PMU_IDLE_ACK_VDU, 6276fba6e04STony Xie PMU_IDLE_ACK_RGA, 6286fba6e04STony Xie PMU_IDLE_ACK_IEP, 6296fba6e04STony Xie PMU_IDLE_ACK_VOPB, 6306fba6e04STony Xie 6316fba6e04STony Xie PMU_IDLE_ACK_VOPL, 6326fba6e04STony Xie PMU_IDLE_ACK_ISP0, 6336fba6e04STony Xie PMU_IDLE_ACK_ISP1, 6346fba6e04STony Xie PMU_IDLE_ACK_HDCP, 6356fba6e04STony Xie 6366fba6e04STony Xie PMU_IDLE_ACK_USB3, 6376fba6e04STony Xie PMU_IDLE_ACK_PERILPM0, 6386fba6e04STony Xie PMU_IDLE_ACK_CENTER, 6396fba6e04STony Xie PMU_IDLE_ACK_CCIM0, 6406fba6e04STony Xie 6416fba6e04STony Xie PMU_IDLE_ACK_CCIM1, 6426fba6e04STony Xie PMU_IDLE_ACK_VIO, 6436fba6e04STony Xie PMU_IDLE_ACK_MSCH0, 6446fba6e04STony Xie PMU_IDLE_ACK_MSCH1, 6456fba6e04STony Xie 6466fba6e04STony Xie PMU_IDLE_ACK_ALIVE, 6476fba6e04STony Xie PMU_IDLE_ACK_PMU, 6486fba6e04STony Xie PMU_IDLE_ACK_EDP, 6496fba6e04STony Xie PMU_IDLE_ACK_GMAC, 6506fba6e04STony Xie 6516fba6e04STony Xie PMU_IDLE_ACK_EMMC, 6526fba6e04STony Xie PMU_IDLE_ACK_CENTER1, 6536fba6e04STony Xie PMU_IDLE_ACK_PMUM0, 6546fba6e04STony Xie PMU_IDLE_ACK_GIC, 6556fba6e04STony Xie 6566fba6e04STony Xie PMU_IDLE_ACK_SD, 6576fba6e04STony Xie PMU_IDLE_ACK_SDIOAUDIO, 6586fba6e04STony Xie }; 6596fba6e04STony Xie 660f47a25ddSCaesar Wang enum pmu_cci500_con { 661f47a25ddSCaesar Wang PMU_PREQ_CCI500_CFG_SW = 0, 662f47a25ddSCaesar Wang PMU_CLR_PREQ_CCI500_HW, 663f47a25ddSCaesar Wang PMU_PSTATE_CCI500_0, 664f47a25ddSCaesar Wang PMU_PSTATE_CCI500_1, 665f47a25ddSCaesar Wang 666f47a25ddSCaesar Wang PMU_PSTATE_CCI500_2, 667f47a25ddSCaesar Wang PMU_QREQ_CCI500_CFG_SW, 668f47a25ddSCaesar Wang PMU_CLR_QREQ_CCI500_HW, 669f47a25ddSCaesar Wang PMU_QGATING_CCI500_CFG, 670f47a25ddSCaesar Wang 671f47a25ddSCaesar Wang PMU_PREQ_CCI500_CFG_SW_WMSK = 16, 672f47a25ddSCaesar Wang PMU_CLR_PREQ_CCI500_HW_WMSK, 673f47a25ddSCaesar Wang PMU_PSTATE_CCI500_0_WMSK, 674f47a25ddSCaesar Wang PMU_PSTATE_CCI500_1_WMSK, 675f47a25ddSCaesar Wang 676f47a25ddSCaesar Wang PMU_PSTATE_CCI500_2_WMSK, 677f47a25ddSCaesar Wang PMU_QREQ_CCI500_CFG_SW_WMSK, 678f47a25ddSCaesar Wang PMU_CLR_QREQ_CCI500_HW_WMSK, 679f47a25ddSCaesar Wang PMU_QGATING_CCI500_CFG_WMSK, 680f47a25ddSCaesar Wang }; 681f47a25ddSCaesar Wang 682f47a25ddSCaesar Wang enum pmu_adb400_con { 683f47a25ddSCaesar Wang PMU_PWRDWN_REQ_CXCS_SW = 0, 684f47a25ddSCaesar Wang PMU_PWRDWN_REQ_CORE_L_SW, 685f47a25ddSCaesar Wang PMU_PWRDWN_REQ_CORE_L_2GIC_SW, 686f47a25ddSCaesar Wang PMU_PWRDWN_REQ_GIC2_CORE_L_SW, 687f47a25ddSCaesar Wang 688f47a25ddSCaesar Wang PMU_PWRDWN_REQ_CORE_B_SW, 689f47a25ddSCaesar Wang PMU_PWRDWN_REQ_CORE_B_2GIC_SW, 690f47a25ddSCaesar Wang PMU_PWRDWN_REQ_GIC2_CORE_B_SW, 691f47a25ddSCaesar Wang 692f47a25ddSCaesar Wang PMU_CLR_CXCS_HW = 8, 693f47a25ddSCaesar Wang PMU_CLR_CORE_L_HW, 694f47a25ddSCaesar Wang PMU_CLR_CORE_L_2GIC_HW, 695f47a25ddSCaesar Wang PMU_CLR_GIC2_CORE_L_HW, 696f47a25ddSCaesar Wang 697f47a25ddSCaesar Wang PMU_CLR_CORE_B_HW, 698f47a25ddSCaesar Wang PMU_CLR_CORE_B_2GIC_HW, 699f47a25ddSCaesar Wang PMU_CLR_GIC2_CORE_B_HW, 700f47a25ddSCaesar Wang 701f47a25ddSCaesar Wang PMU_PWRDWN_REQ_CXCS_SW_WMSK = 16, 702f47a25ddSCaesar Wang PMU_PWRDWN_REQ_CORE_L_SW_WMSK, 703f47a25ddSCaesar Wang PMU_PWRDWN_REQ_CORE_L_2GIC_SW_WMSK, 704f47a25ddSCaesar Wang PMU_PWRDWN_REQ_GIC2_CORE_L_SW_WMSK, 705f47a25ddSCaesar Wang 706f47a25ddSCaesar Wang PMU_PWRDWN_REQ_CORE_B_SW_WMSK, 707f47a25ddSCaesar Wang PMU_PWRDWN_REQ_CORE_B_2GIC_SW_WMSK, 708f47a25ddSCaesar Wang PMU_PWRDWN_REQ_GIC2_CORE_B_SW_WMSK, 709f47a25ddSCaesar Wang 710f47a25ddSCaesar Wang PMU_CLR_CXCS_HW_WMSK = 24, 711f47a25ddSCaesar Wang PMU_CLR_CORE_L_HW_WMSK, 712f47a25ddSCaesar Wang PMU_CLR_CORE_L_2GIC_HW_WMSK, 713f47a25ddSCaesar Wang PMU_CLR_GIC2_CORE_L_HW_WMSK, 714f47a25ddSCaesar Wang 715f47a25ddSCaesar Wang PMU_CLR_CORE_B_HW_WMSK, 716f47a25ddSCaesar Wang PMU_CLR_CORE_B_2GIC_HW_WMSK, 717f47a25ddSCaesar Wang PMU_CLR_GIC2_CORE_B_HW_WMSK, 718f47a25ddSCaesar Wang }; 719f47a25ddSCaesar Wang 720f47a25ddSCaesar Wang enum pmu_adb400_st { 721f47a25ddSCaesar Wang PMU_PWRDWN_REQ_CXCS_SW_ST = 0, 722f47a25ddSCaesar Wang PMU_PWRDWN_REQ_CORE_L_SW_ST, 723f47a25ddSCaesar Wang PMU_PWRDWN_REQ_CORE_L_2GIC_SW_ST, 724f47a25ddSCaesar Wang PMU_PWRDWN_REQ_GIC2_CORE_L_SW_ST, 725f47a25ddSCaesar Wang 726f47a25ddSCaesar Wang PMU_PWRDWN_REQ_CORE_B_SW_ST, 727f47a25ddSCaesar Wang PMU_PWRDWN_REQ_CORE_B_2GIC_SW_ST, 728f47a25ddSCaesar Wang PMU_PWRDWN_REQ_GIC2_CORE_B_SW_ST, 729f47a25ddSCaesar Wang 730f47a25ddSCaesar Wang PMU_CLR_CXCS_HW_ST = 8, 731f47a25ddSCaesar Wang PMU_CLR_CORE_L_HW_ST, 732f47a25ddSCaesar Wang PMU_CLR_CORE_L_2GIC_HW_ST, 733f47a25ddSCaesar Wang PMU_CLR_GIC2_CORE_L_HW_ST, 734f47a25ddSCaesar Wang 735f47a25ddSCaesar Wang PMU_CLR_CORE_B_HW_ST, 736f47a25ddSCaesar Wang PMU_CLR_CORE_B_2GIC_HW_ST, 737f47a25ddSCaesar Wang PMU_CLR_GIC2_CORE_B_HW_ST, 738f47a25ddSCaesar Wang }; 739f47a25ddSCaesar Wang 7406fba6e04STony Xie enum pmu_pwrdn_con1 { 7416fba6e04STony Xie PMU_VD_SCU_L_PWRDN_EN = 0, 7426fba6e04STony Xie PMU_VD_SCU_B_PWRDN_EN, 7436fba6e04STony Xie PMU_VD_CENTER_PWRDN_EN, 7446fba6e04STony Xie }; 7456fba6e04STony Xie 746f47a25ddSCaesar Wang enum pmu_core_pwr_st { 747f47a25ddSCaesar Wang L2_FLUSHDONE_CLUSTER_L = 0, 748f47a25ddSCaesar Wang STANDBY_BY_WFIL2_CLUSTER_L, 749f47a25ddSCaesar Wang 750f47a25ddSCaesar Wang L2_FLUSHDONE_CLUSTER_B = 10, 751f47a25ddSCaesar Wang STANDBY_BY_WFIL2_CLUSTER_B, 752f47a25ddSCaesar Wang }; 753f47a25ddSCaesar Wang 7546fba6e04STony Xie #define PMU_WKUP_CFG0 0x00 7556fba6e04STony Xie #define PMU_WKUP_CFG1 0x04 7566fba6e04STony Xie #define PMU_WKUP_CFG2 0x08 7576fba6e04STony Xie #define PMU_WKUP_CFG3 0x0c 7586fba6e04STony Xie #define PMU_WKUP_CFG4 0x10 7596fba6e04STony Xie #define PMU_PWRDN_CON 0x14 7606fba6e04STony Xie #define PMU_PWRDN_ST 0x18 7616fba6e04STony Xie #define PMU_PLL_CON 0x1c 7626fba6e04STony Xie #define PMU_PWRMODE_CON 0x20 7636fba6e04STony Xie #define PMU_SFT_CON 0x24 7646fba6e04STony Xie #define PMU_INT_CON 0x28 7656fba6e04STony Xie #define PMU_INT_ST 0x2c 7666fba6e04STony Xie #define PMU_GPIO0_POS_INT_CON 0x30 7676fba6e04STony Xie #define PMU_GPIO0_NEG_INT_CON 0x34 7686fba6e04STony Xie #define PMU_GPIO1_POS_INT_CON 0x38 7696fba6e04STony Xie #define PMU_GPIO1_NEG_INT_CON 0x3c 7706fba6e04STony Xie #define PMU_GPIO0_POS_INT_ST 0x40 7716fba6e04STony Xie #define PMU_GPIO0_NEG_INT_ST 0x44 7726fba6e04STony Xie #define PMU_GPIO1_POS_INT_ST 0x48 7736fba6e04STony Xie #define PMU_GPIO1_NEG_INT_ST 0x4c 7746fba6e04STony Xie #define PMU_PWRDN_INTEN 0x50 7756fba6e04STony Xie #define PMU_PWRDN_STATUS 0x54 7766fba6e04STony Xie #define PMU_WAKEUP_STATUS 0x58 7776fba6e04STony Xie #define PMU_BUS_CLR 0x5c 7786fba6e04STony Xie #define PMU_BUS_IDLE_REQ 0x60 7796fba6e04STony Xie #define PMU_BUS_IDLE_ST 0x64 7806fba6e04STony Xie #define PMU_BUS_IDLE_ACK 0x68 7816fba6e04STony Xie #define PMU_CCI500_CON 0x6c 7826fba6e04STony Xie #define PMU_ADB400_CON 0x70 7836fba6e04STony Xie #define PMU_ADB400_ST 0x74 7846fba6e04STony Xie #define PMU_POWER_ST 0x78 7856fba6e04STony Xie #define PMU_CORE_PWR_ST 0x7c 7866fba6e04STony Xie #define PMU_OSC_CNT 0x80 7876fba6e04STony Xie #define PMU_PLLLOCK_CNT 0x84 7886fba6e04STony Xie #define PMU_PLLRST_CNT 0x88 7896fba6e04STony Xie #define PMU_STABLE_CNT 0x8c 7906fba6e04STony Xie #define PMU_DDRIO_PWRON_CNT 0x90 7916fba6e04STony Xie #define PMU_WAKEUP_RST_CLR_CNT 0x94 7926fba6e04STony Xie #define PMU_DDR_SREF_ST 0x98 7936fba6e04STony Xie #define PMU_SCU_L_PWRDN_CNT 0x9c 7946fba6e04STony Xie #define PMU_SCU_L_PWRUP_CNT 0xa0 7956fba6e04STony Xie #define PMU_SCU_B_PWRDN_CNT 0xa4 7966fba6e04STony Xie #define PMU_SCU_B_PWRUP_CNT 0xa8 7976fba6e04STony Xie #define PMU_GPU_PWRDN_CNT 0xac 7986fba6e04STony Xie #define PMU_GPU_PWRUP_CNT 0xb0 7996fba6e04STony Xie #define PMU_CENTER_PWRDN_CNT 0xb4 8006fba6e04STony Xie #define PMU_CENTER_PWRUP_CNT 0xb8 8016fba6e04STony Xie #define PMU_TIMEOUT_CNT 0xbc 8026fba6e04STony Xie #define PMU_CPU0APM_CON 0xc0 8036fba6e04STony Xie #define PMU_CPU1APM_CON 0xc4 8046fba6e04STony Xie #define PMU_CPU2APM_CON 0xc8 8056fba6e04STony Xie #define PMU_CPU3APM_CON 0xcc 8066fba6e04STony Xie #define PMU_CPU0BPM_CON 0xd0 8076fba6e04STony Xie #define PMU_CPU1BPM_CON 0xd4 8086fba6e04STony Xie #define PMU_NOC_AUTO_ENA 0xd8 8096fba6e04STony Xie #define PMU_PWRDN_CON1 0xdc 8106fba6e04STony Xie 811f47a25ddSCaesar Wang #define PMUGRF_GPIO1A_IOMUX 0x10 812f47a25ddSCaesar Wang #define AP_PWROFF 0x0a 813*86c253e4SCaesar Wang #define GPIO1A6_IOMUX BITS_WITH_WMASK(0, 3, 12) 814*86c253e4SCaesar Wang #define TSADC_INT_PIN 38 8156fba6e04STony Xie #define CORES_PM_DISABLE 0x0 8166fba6e04STony Xie 8176fba6e04STony Xie #define PD_CTR_LOOP 500 8186fba6e04STony Xie #define CHK_CPU_LOOP 500 819f47a25ddSCaesar Wang #define MAX_WAIT_CONUT 1000 8206fba6e04STony Xie 8216fba6e04STony Xie #endif /* __PMU_H__ */ 822