You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
152 lines
2.8 KiB
152 lines
2.8 KiB
4 months ago
|
/*
|
||
|
* Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
|
||
|
*
|
||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||
|
*/
|
||
|
|
||
|
#ifndef PMU_H
|
||
|
#define PMU_H
|
||
|
|
||
|
/* Allocate sp reginon in pmusram */
|
||
|
#define PSRAM_SP_SIZE 0x80
|
||
|
#define PSRAM_SP_BOTTOM (PSRAM_SP_TOP - PSRAM_SP_SIZE)
|
||
|
|
||
|
/*****************************************************************************
|
||
|
* pmu con,reg
|
||
|
*****************************************************************************/
|
||
|
#define PMU_WAKEUP_CFG0 0x0
|
||
|
#define PMU_WAKEUP_CFG1 0x4
|
||
|
#define PMU_PWRDN_CON 0x8
|
||
|
#define PMU_PWRDN_ST 0xc
|
||
|
|
||
|
#define PMU_PWRMODE_CON 0x18
|
||
|
#define PMU_BUS_IDE_REQ 0x10
|
||
|
#define PMU_BUS_IDE_ST 0x14
|
||
|
|
||
|
#define PMU_OSC_CNT 0x20
|
||
|
#define PMU_PLL_CNT 0x24
|
||
|
#define PMU_STABL_CNT 0x28
|
||
|
#define PMU_DDRIO0_PWR_CNT 0x2c
|
||
|
#define PMU_DDRIO1_PWR_CNT 0x30
|
||
|
#define PMU_WKUPRST_CNT 0x44
|
||
|
#define PMU_SFT_CON 0x48
|
||
|
#define PMU_PWRMODE_CON1 0x90
|
||
|
|
||
|
enum pmu_pdid {
|
||
|
PD_CPU0 = 0,
|
||
|
PD_CPU1,
|
||
|
PD_CPU2,
|
||
|
PD_CPU3,
|
||
|
PD_BUS = 5,
|
||
|
PD_PERI,
|
||
|
PD_VIO,
|
||
|
PD_VIDEO,
|
||
|
PD_GPU,
|
||
|
PD_SCU = 11,
|
||
|
PD_HEVC = 14,
|
||
|
PD_END
|
||
|
};
|
||
|
|
||
|
enum pmu_bus_ide {
|
||
|
bus_ide_req_bus = 0,
|
||
|
bus_ide_req_peri,
|
||
|
bus_ide_req_gpu,
|
||
|
bus_ide_req_video,
|
||
|
bus_ide_req_vio,
|
||
|
bus_ide_req_core,
|
||
|
bus_ide_req_alive,
|
||
|
bus_ide_req_dma,
|
||
|
bus_ide_req_cpup,
|
||
|
bus_ide_req_hevc,
|
||
|
bus_ide_req_end
|
||
|
};
|
||
|
|
||
|
enum pmu_pwrmode {
|
||
|
pmu_mode_en = 0,
|
||
|
pmu_mode_core_src_gt,
|
||
|
pmu_mode_glb_int_dis,
|
||
|
pmu_mode_l2_flush_en,
|
||
|
pmu_mode_bus_pd,
|
||
|
pmu_mode_cpu0_pd,
|
||
|
pmu_mode_scu_pd,
|
||
|
pmu_mode_pll_pd = 7,
|
||
|
pmu_mode_chip_pd,
|
||
|
pmu_mode_pwr_off_comb,
|
||
|
pmu_mode_pmu_alive_use_lf,
|
||
|
pmu_mode_pmu_use_lf,
|
||
|
pmu_mode_osc_dis = 12,
|
||
|
pmu_mode_input_clamp,
|
||
|
pmu_mode_wkup_rst,
|
||
|
pmu_mode_sref0_enter,
|
||
|
pmu_mode_sref1_enter,
|
||
|
pmu_mode_ddrio0_ret,
|
||
|
pmu_mode_ddrio1_ret,
|
||
|
pmu_mode_ddrc0_gt,
|
||
|
pmu_mode_ddrc1_gt,
|
||
|
pmu_mode_ddrio0_ret_deq,
|
||
|
pmu_mode_ddrio1_ret_deq,
|
||
|
};
|
||
|
|
||
|
enum pmu_pwrmode1 {
|
||
|
pmu_mode_clr_bus = 0,
|
||
|
pmu_mode_clr_core,
|
||
|
pmu_mode_clr_cpup,
|
||
|
pmu_mode_clr_alive,
|
||
|
pmu_mode_clr_dma,
|
||
|
pmu_mode_clr_peri,
|
||
|
pmu_mode_clr_gpu,
|
||
|
pmu_mode_clr_video,
|
||
|
pmu_mode_clr_hevc,
|
||
|
pmu_mode_clr_vio
|
||
|
};
|
||
|
|
||
|
enum pmu_sft_con {
|
||
|
pmu_sft_ddrio0_ret_cfg = 6,
|
||
|
pmu_sft_ddrio1_ret_cfg = 9,
|
||
|
pmu_sft_l2flsh = 15,
|
||
|
};
|
||
|
|
||
|
enum pmu_wakeup_cfg1 {
|
||
|
pmu_armint_wakeup_en = 0,
|
||
|
pmu_gpio_wakeup_negedge,
|
||
|
pmu_sdmmc0_wakeup_en,
|
||
|
pmu_gpioint_wakeup_en,
|
||
|
};
|
||
|
|
||
|
enum pmu_bus_idle_st {
|
||
|
pmu_idle_bus = 0,
|
||
|
pmu_idle_peri,
|
||
|
pmu_idle_gpu,
|
||
|
pmu_idle_video,
|
||
|
pmu_idle_vio,
|
||
|
pmu_idle_core,
|
||
|
pmu_idle_alive,
|
||
|
pmu_idle_dma,
|
||
|
pmu_idle_cpup,
|
||
|
pmu_idle_hevc,
|
||
|
pmu_idle_ack_bus = 16,
|
||
|
pmu_idle_ack_peri,
|
||
|
pmu_idle_ack_gpu,
|
||
|
pmu_idle_ack_video,
|
||
|
pmu_idle_ack_vio,
|
||
|
pmu_idle_ack_core,
|
||
|
pmu_idle_ack_alive,
|
||
|
pmu_idle_ack_dma,
|
||
|
pmu_idle_ack_cpup,
|
||
|
pmu_idle_ack_hevc,
|
||
|
};
|
||
|
|
||
|
#define CHECK_CPU_WFIE_BASE (0)
|
||
|
|
||
|
#define clstl_cpu_wfe -1
|
||
|
#define clstb_cpu_wfe -1
|
||
|
#define CKECK_WFEI_MSK 0
|
||
|
|
||
|
|
||
|
#define PD_CTR_LOOP 500
|
||
|
#define CHK_CPU_LOOP 500
|
||
|
|
||
|
#define MAX_WAIT_CONUT 1000
|
||
|
|
||
|
#endif /* PMU_H */
|