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_H 8*91f16700Schasinglulu #define PMU_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu /* Allocate sp reginon in pmusram */ 11*91f16700Schasinglulu #define PSRAM_SP_SIZE 0x80 12*91f16700Schasinglulu #define PSRAM_SP_BOTTOM (PSRAM_SP_TOP - PSRAM_SP_SIZE) 13*91f16700Schasinglulu 14*91f16700Schasinglulu /***************************************************************************** 15*91f16700Schasinglulu * pmu con,reg 16*91f16700Schasinglulu *****************************************************************************/ 17*91f16700Schasinglulu #define PMU_WAKEUP_CFG0 0x0 18*91f16700Schasinglulu #define PMU_WAKEUP_CFG1 0x4 19*91f16700Schasinglulu #define PMU_PWRDN_CON 0x8 20*91f16700Schasinglulu #define PMU_PWRDN_ST 0xc 21*91f16700Schasinglulu 22*91f16700Schasinglulu #define PMU_PWRMODE_CON 0x18 23*91f16700Schasinglulu #define PMU_BUS_IDE_REQ 0x10 24*91f16700Schasinglulu #define PMU_BUS_IDE_ST 0x14 25*91f16700Schasinglulu 26*91f16700Schasinglulu #define PMU_OSC_CNT 0x20 27*91f16700Schasinglulu #define PMU_PLL_CNT 0x24 28*91f16700Schasinglulu #define PMU_STABL_CNT 0x28 29*91f16700Schasinglulu #define PMU_DDRIO0_PWR_CNT 0x2c 30*91f16700Schasinglulu #define PMU_DDRIO1_PWR_CNT 0x30 31*91f16700Schasinglulu #define PMU_WKUPRST_CNT 0x44 32*91f16700Schasinglulu #define PMU_SFT_CON 0x48 33*91f16700Schasinglulu #define PMU_PWRMODE_CON1 0x90 34*91f16700Schasinglulu 35*91f16700Schasinglulu enum pmu_pdid { 36*91f16700Schasinglulu PD_CPU0 = 0, 37*91f16700Schasinglulu PD_CPU1, 38*91f16700Schasinglulu PD_CPU2, 39*91f16700Schasinglulu PD_CPU3, 40*91f16700Schasinglulu PD_BUS = 5, 41*91f16700Schasinglulu PD_PERI, 42*91f16700Schasinglulu PD_VIO, 43*91f16700Schasinglulu PD_VIDEO, 44*91f16700Schasinglulu PD_GPU, 45*91f16700Schasinglulu PD_SCU = 11, 46*91f16700Schasinglulu PD_HEVC = 14, 47*91f16700Schasinglulu PD_END 48*91f16700Schasinglulu }; 49*91f16700Schasinglulu 50*91f16700Schasinglulu enum pmu_bus_ide { 51*91f16700Schasinglulu bus_ide_req_bus = 0, 52*91f16700Schasinglulu bus_ide_req_peri, 53*91f16700Schasinglulu bus_ide_req_gpu, 54*91f16700Schasinglulu bus_ide_req_video, 55*91f16700Schasinglulu bus_ide_req_vio, 56*91f16700Schasinglulu bus_ide_req_core, 57*91f16700Schasinglulu bus_ide_req_alive, 58*91f16700Schasinglulu bus_ide_req_dma, 59*91f16700Schasinglulu bus_ide_req_cpup, 60*91f16700Schasinglulu bus_ide_req_hevc, 61*91f16700Schasinglulu bus_ide_req_end 62*91f16700Schasinglulu }; 63*91f16700Schasinglulu 64*91f16700Schasinglulu enum pmu_pwrmode { 65*91f16700Schasinglulu pmu_mode_en = 0, 66*91f16700Schasinglulu pmu_mode_core_src_gt, 67*91f16700Schasinglulu pmu_mode_glb_int_dis, 68*91f16700Schasinglulu pmu_mode_l2_flush_en, 69*91f16700Schasinglulu pmu_mode_bus_pd, 70*91f16700Schasinglulu pmu_mode_cpu0_pd, 71*91f16700Schasinglulu pmu_mode_scu_pd, 72*91f16700Schasinglulu pmu_mode_pll_pd = 7, 73*91f16700Schasinglulu pmu_mode_chip_pd, 74*91f16700Schasinglulu pmu_mode_pwr_off_comb, 75*91f16700Schasinglulu pmu_mode_pmu_alive_use_lf, 76*91f16700Schasinglulu pmu_mode_pmu_use_lf, 77*91f16700Schasinglulu pmu_mode_osc_dis = 12, 78*91f16700Schasinglulu pmu_mode_input_clamp, 79*91f16700Schasinglulu pmu_mode_wkup_rst, 80*91f16700Schasinglulu pmu_mode_sref0_enter, 81*91f16700Schasinglulu pmu_mode_sref1_enter, 82*91f16700Schasinglulu pmu_mode_ddrio0_ret, 83*91f16700Schasinglulu pmu_mode_ddrio1_ret, 84*91f16700Schasinglulu pmu_mode_ddrc0_gt, 85*91f16700Schasinglulu pmu_mode_ddrc1_gt, 86*91f16700Schasinglulu pmu_mode_ddrio0_ret_deq, 87*91f16700Schasinglulu pmu_mode_ddrio1_ret_deq, 88*91f16700Schasinglulu }; 89*91f16700Schasinglulu 90*91f16700Schasinglulu enum pmu_pwrmode1 { 91*91f16700Schasinglulu pmu_mode_clr_bus = 0, 92*91f16700Schasinglulu pmu_mode_clr_core, 93*91f16700Schasinglulu pmu_mode_clr_cpup, 94*91f16700Schasinglulu pmu_mode_clr_alive, 95*91f16700Schasinglulu pmu_mode_clr_dma, 96*91f16700Schasinglulu pmu_mode_clr_peri, 97*91f16700Schasinglulu pmu_mode_clr_gpu, 98*91f16700Schasinglulu pmu_mode_clr_video, 99*91f16700Schasinglulu pmu_mode_clr_hevc, 100*91f16700Schasinglulu pmu_mode_clr_vio 101*91f16700Schasinglulu }; 102*91f16700Schasinglulu 103*91f16700Schasinglulu enum pmu_sft_con { 104*91f16700Schasinglulu pmu_sft_ddrio0_ret_cfg = 6, 105*91f16700Schasinglulu pmu_sft_ddrio1_ret_cfg = 9, 106*91f16700Schasinglulu pmu_sft_l2flsh = 15, 107*91f16700Schasinglulu }; 108*91f16700Schasinglulu 109*91f16700Schasinglulu enum pmu_wakeup_cfg1 { 110*91f16700Schasinglulu pmu_armint_wakeup_en = 0, 111*91f16700Schasinglulu pmu_gpio_wakeup_negedge, 112*91f16700Schasinglulu pmu_sdmmc0_wakeup_en, 113*91f16700Schasinglulu pmu_gpioint_wakeup_en, 114*91f16700Schasinglulu }; 115*91f16700Schasinglulu 116*91f16700Schasinglulu enum pmu_bus_idle_st { 117*91f16700Schasinglulu pmu_idle_bus = 0, 118*91f16700Schasinglulu pmu_idle_peri, 119*91f16700Schasinglulu pmu_idle_gpu, 120*91f16700Schasinglulu pmu_idle_video, 121*91f16700Schasinglulu pmu_idle_vio, 122*91f16700Schasinglulu pmu_idle_core, 123*91f16700Schasinglulu pmu_idle_alive, 124*91f16700Schasinglulu pmu_idle_dma, 125*91f16700Schasinglulu pmu_idle_cpup, 126*91f16700Schasinglulu pmu_idle_hevc, 127*91f16700Schasinglulu pmu_idle_ack_bus = 16, 128*91f16700Schasinglulu pmu_idle_ack_peri, 129*91f16700Schasinglulu pmu_idle_ack_gpu, 130*91f16700Schasinglulu pmu_idle_ack_video, 131*91f16700Schasinglulu pmu_idle_ack_vio, 132*91f16700Schasinglulu pmu_idle_ack_core, 133*91f16700Schasinglulu pmu_idle_ack_alive, 134*91f16700Schasinglulu pmu_idle_ack_dma, 135*91f16700Schasinglulu pmu_idle_ack_cpup, 136*91f16700Schasinglulu pmu_idle_ack_hevc, 137*91f16700Schasinglulu }; 138*91f16700Schasinglulu 139*91f16700Schasinglulu #define CHECK_CPU_WFIE_BASE (0) 140*91f16700Schasinglulu 141*91f16700Schasinglulu #define clstl_cpu_wfe -1 142*91f16700Schasinglulu #define clstb_cpu_wfe -1 143*91f16700Schasinglulu #define CKECK_WFEI_MSK 0 144*91f16700Schasinglulu 145*91f16700Schasinglulu 146*91f16700Schasinglulu #define PD_CTR_LOOP 500 147*91f16700Schasinglulu #define CHK_CPU_LOOP 500 148*91f16700Schasinglulu 149*91f16700Schasinglulu #define MAX_WAIT_CONUT 1000 150*91f16700Schasinglulu 151*91f16700Schasinglulu #endif /* PMU_H */ 152