xref: /rk3399_ARM-atf/plat/rockchip/rk3399/drivers/pmu/pmu.h (revision f47a25ddd876738c7b078efc002a48c53e48d7c0)
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,
344*f47a25ddSCaesar Wang 	DBG_PWRUP_B0_CFG = 15,
345*f47a25ddSCaesar Wang 
346*f47a25ddSCaesar Wang 	DBG_NOPWERDWN_L0_EN,
347*f47a25ddSCaesar Wang 	DBG_NOPWERDWN_L1_EN,
348*f47a25ddSCaesar Wang 	DBG_NOPWERDWN_L2_EN,
349*f47a25ddSCaesar Wang 	DBG_NOPWERDWN_L3_EN,
350*f47a25ddSCaesar Wang 
351*f47a25ddSCaesar Wang 	DBG_PWRUP_REQ_L_EN = 20,
352*f47a25ddSCaesar Wang 	CLUSTER_L_CLK_SRC_GATING_CFG,
353*f47a25ddSCaesar Wang 	L2_FLUSH_REQ_CLUSTER_L,
354*f47a25ddSCaesar Wang 	ACINACTM_CLUSTER_L_CFG,
355*f47a25ddSCaesar Wang 
356*f47a25ddSCaesar Wang 	DBG_NO_PWERDWN_B0_EN,
357*f47a25ddSCaesar Wang 	DBG_NO_PWERDWN_B1_EN,
358*f47a25ddSCaesar Wang 
359*f47a25ddSCaesar Wang 	DBG_PWRUP_REQ_B_EN = 28,
360*f47a25ddSCaesar Wang 	CLUSTER_B_CLK_SRC_GATING_CFG,
361*f47a25ddSCaesar Wang 	L2_FLUSH_REQ_CLUSTER_B,
362*f47a25ddSCaesar 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 
660*f47a25ddSCaesar Wang enum pmu_cci500_con {
661*f47a25ddSCaesar Wang 	PMU_PREQ_CCI500_CFG_SW = 0,
662*f47a25ddSCaesar Wang 	PMU_CLR_PREQ_CCI500_HW,
663*f47a25ddSCaesar Wang 	PMU_PSTATE_CCI500_0,
664*f47a25ddSCaesar Wang 	PMU_PSTATE_CCI500_1,
665*f47a25ddSCaesar Wang 
666*f47a25ddSCaesar Wang 	PMU_PSTATE_CCI500_2,
667*f47a25ddSCaesar Wang 	PMU_QREQ_CCI500_CFG_SW,
668*f47a25ddSCaesar Wang 	PMU_CLR_QREQ_CCI500_HW,
669*f47a25ddSCaesar Wang 	PMU_QGATING_CCI500_CFG,
670*f47a25ddSCaesar Wang 
671*f47a25ddSCaesar Wang 	PMU_PREQ_CCI500_CFG_SW_WMSK = 16,
672*f47a25ddSCaesar Wang 	PMU_CLR_PREQ_CCI500_HW_WMSK,
673*f47a25ddSCaesar Wang 	PMU_PSTATE_CCI500_0_WMSK,
674*f47a25ddSCaesar Wang 	PMU_PSTATE_CCI500_1_WMSK,
675*f47a25ddSCaesar Wang 
676*f47a25ddSCaesar Wang 	PMU_PSTATE_CCI500_2_WMSK,
677*f47a25ddSCaesar Wang 	PMU_QREQ_CCI500_CFG_SW_WMSK,
678*f47a25ddSCaesar Wang 	PMU_CLR_QREQ_CCI500_HW_WMSK,
679*f47a25ddSCaesar Wang 	PMU_QGATING_CCI500_CFG_WMSK,
680*f47a25ddSCaesar Wang };
681*f47a25ddSCaesar Wang 
682*f47a25ddSCaesar Wang enum pmu_adb400_con {
683*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_CXCS_SW = 0,
684*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_CORE_L_SW,
685*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_CORE_L_2GIC_SW,
686*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_GIC2_CORE_L_SW,
687*f47a25ddSCaesar Wang 
688*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_CORE_B_SW,
689*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_CORE_B_2GIC_SW,
690*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_GIC2_CORE_B_SW,
691*f47a25ddSCaesar Wang 
692*f47a25ddSCaesar Wang 	PMU_CLR_CXCS_HW = 8,
693*f47a25ddSCaesar Wang 	PMU_CLR_CORE_L_HW,
694*f47a25ddSCaesar Wang 	PMU_CLR_CORE_L_2GIC_HW,
695*f47a25ddSCaesar Wang 	PMU_CLR_GIC2_CORE_L_HW,
696*f47a25ddSCaesar Wang 
697*f47a25ddSCaesar Wang 	PMU_CLR_CORE_B_HW,
698*f47a25ddSCaesar Wang 	PMU_CLR_CORE_B_2GIC_HW,
699*f47a25ddSCaesar Wang 	PMU_CLR_GIC2_CORE_B_HW,
700*f47a25ddSCaesar Wang 
701*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_CXCS_SW_WMSK = 16,
702*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_CORE_L_SW_WMSK,
703*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_CORE_L_2GIC_SW_WMSK,
704*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_GIC2_CORE_L_SW_WMSK,
705*f47a25ddSCaesar Wang 
706*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_CORE_B_SW_WMSK,
707*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_CORE_B_2GIC_SW_WMSK,
708*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_GIC2_CORE_B_SW_WMSK,
709*f47a25ddSCaesar Wang 
710*f47a25ddSCaesar Wang 	PMU_CLR_CXCS_HW_WMSK = 24,
711*f47a25ddSCaesar Wang 	PMU_CLR_CORE_L_HW_WMSK,
712*f47a25ddSCaesar Wang 	PMU_CLR_CORE_L_2GIC_HW_WMSK,
713*f47a25ddSCaesar Wang 	PMU_CLR_GIC2_CORE_L_HW_WMSK,
714*f47a25ddSCaesar Wang 
715*f47a25ddSCaesar Wang 	PMU_CLR_CORE_B_HW_WMSK,
716*f47a25ddSCaesar Wang 	PMU_CLR_CORE_B_2GIC_HW_WMSK,
717*f47a25ddSCaesar Wang 	PMU_CLR_GIC2_CORE_B_HW_WMSK,
718*f47a25ddSCaesar Wang };
719*f47a25ddSCaesar Wang 
720*f47a25ddSCaesar Wang enum pmu_adb400_st {
721*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_CXCS_SW_ST = 0,
722*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_CORE_L_SW_ST,
723*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_CORE_L_2GIC_SW_ST,
724*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_GIC2_CORE_L_SW_ST,
725*f47a25ddSCaesar Wang 
726*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_CORE_B_SW_ST,
727*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_CORE_B_2GIC_SW_ST,
728*f47a25ddSCaesar Wang 	PMU_PWRDWN_REQ_GIC2_CORE_B_SW_ST,
729*f47a25ddSCaesar Wang 
730*f47a25ddSCaesar Wang 	PMU_CLR_CXCS_HW_ST = 8,
731*f47a25ddSCaesar Wang 	PMU_CLR_CORE_L_HW_ST,
732*f47a25ddSCaesar Wang 	PMU_CLR_CORE_L_2GIC_HW_ST,
733*f47a25ddSCaesar Wang 	PMU_CLR_GIC2_CORE_L_HW_ST,
734*f47a25ddSCaesar Wang 
735*f47a25ddSCaesar Wang 	PMU_CLR_CORE_B_HW_ST,
736*f47a25ddSCaesar Wang 	PMU_CLR_CORE_B_2GIC_HW_ST,
737*f47a25ddSCaesar Wang 	PMU_CLR_GIC2_CORE_B_HW_ST,
738*f47a25ddSCaesar Wang };
739*f47a25ddSCaesar 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 
746*f47a25ddSCaesar Wang enum pmu_core_pwr_st {
747*f47a25ddSCaesar Wang 	L2_FLUSHDONE_CLUSTER_L = 0,
748*f47a25ddSCaesar Wang 	STANDBY_BY_WFIL2_CLUSTER_L,
749*f47a25ddSCaesar Wang 
750*f47a25ddSCaesar Wang 	L2_FLUSHDONE_CLUSTER_B = 10,
751*f47a25ddSCaesar Wang 	STANDBY_BY_WFIL2_CLUSTER_B,
752*f47a25ddSCaesar Wang };
753*f47a25ddSCaesar 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 
811*f47a25ddSCaesar Wang #define PMUGRF_GPIO1A_IOMUX	0x10
812*f47a25ddSCaesar Wang #define AP_PWROFF		0x0a
8136fba6e04STony Xie #define CORES_PM_DISABLE	0x0
8146fba6e04STony Xie 
8156fba6e04STony Xie #define PD_CTR_LOOP		500
8166fba6e04STony Xie #define CHK_CPU_LOOP		500
817*f47a25ddSCaesar Wang #define MAX_WAIT_CONUT		1000
8186fba6e04STony Xie 
8196fba6e04STony Xie #endif /* __PMU_H__ */
820