diff options
author | Soby Mathew <soby.mathew@arm.com> | 2019-12-17 16:41:30 +0000 |
---|---|---|
committer | TrustedFirmware Code Review <review@review.trustedfirmware.org> | 2019-12-17 16:41:30 +0000 |
commit | 287a81dfada75024e06a16544ea8da2672630011 (patch) | |
tree | f8b5dfa9532bce8b9d704c3301335e4b5c691b1e /plat/rockchip/rk3399 | |
parent | 37ebe8e5ee080e12cd9657b6a954c6f6a5a8f64e (diff) | |
parent | b4899041e5f0b8e8b388c6511b5233516b8785ec (diff) | |
download | trusted-firmware-a-287a81dfada75024e06a16544ea8da2672630011.tar.gz |
Merge "plat/rockchip: enable power domains of rk3399 before reset" into integration
Diffstat (limited to 'plat/rockchip/rk3399')
-rw-r--r-- | plat/rockchip/rk3399/drivers/pmu/pmu.c | 19 | ||||
-rw-r--r-- | plat/rockchip/rk3399/drivers/pmu/pmu.h | 1 | ||||
-rw-r--r-- | plat/rockchip/rk3399/drivers/soc/soc.c | 2 |
3 files changed, 22 insertions, 0 deletions
diff --git a/plat/rockchip/rk3399/drivers/pmu/pmu.c b/plat/rockchip/rk3399/drivers/pmu/pmu.c index 30941fd077..faee6787dd 100644 --- a/plat/rockchip/rk3399/drivers/pmu/pmu.c +++ b/plat/rockchip/rk3399/drivers/pmu/pmu.c @@ -400,6 +400,25 @@ static void pmu_power_domains_resume(void) clk_gate_con_restore(); } +void pmu_power_domains_on(void) +{ + clk_gate_con_disable(); + pmu_set_power_domain(PD_VDU, pmu_pd_on); + pmu_set_power_domain(PD_VCODEC, pmu_pd_on); + pmu_set_power_domain(PD_RGA, pmu_pd_on); + pmu_set_power_domain(PD_IEP, pmu_pd_on); + pmu_set_power_domain(PD_EDP, pmu_pd_on); + pmu_set_power_domain(PD_GMAC, pmu_pd_on); + pmu_set_power_domain(PD_SDIOAUDIO, pmu_pd_on); + pmu_set_power_domain(PD_HDCP, pmu_pd_on); + pmu_set_power_domain(PD_ISP1, pmu_pd_on); + pmu_set_power_domain(PD_ISP0, pmu_pd_on); + pmu_set_power_domain(PD_VO, pmu_pd_on); + pmu_set_power_domain(PD_TCPD1, pmu_pd_on); + pmu_set_power_domain(PD_TCPD0, pmu_pd_on); + pmu_set_power_domain(PD_GPU, pmu_pd_on); +} + void rk3399_flush_l2_b(void) { uint32_t wait_cnt = 0; diff --git a/plat/rockchip/rk3399/drivers/pmu/pmu.h b/plat/rockchip/rk3399/drivers/pmu/pmu.h index 74db82ff20..bb7de5091a 100644 --- a/plat/rockchip/rk3399/drivers/pmu/pmu.h +++ b/plat/rockchip/rk3399/drivers/pmu/pmu.h @@ -136,5 +136,6 @@ struct pmu_slpdata_s { extern uint32_t clst_warmboot_data[PLATFORM_CLUSTER_COUNT]; extern void sram_func_set_ddrctl_pll(uint32_t pll_src); +void pmu_power_domains_on(void); #endif /* PMU_H */ diff --git a/plat/rockchip/rk3399/drivers/soc/soc.c b/plat/rockchip/rk3399/drivers/soc/soc.c index c877dbde84..98b5ad6469 100644 --- a/plat/rockchip/rk3399/drivers/soc/soc.c +++ b/plat/rockchip/rk3399/drivers/soc/soc.c @@ -17,6 +17,7 @@ #include <dram.h> #include <m0_ctl.h> #include <plat_private.h> +#include <pmu.h> #include <rk3399_def.h> #include <secure.h> #include <soc.h> @@ -327,6 +328,7 @@ void soc_global_soft_reset_init(void) void __dead2 soc_global_soft_reset(void) { + pmu_power_domains_on(); set_pll_slow_mode(VPLL_ID); set_pll_slow_mode(NPLL_ID); set_pll_slow_mode(GPLL_ID); |