feat(esp_hw_support): update pmu support for esp32p4 v3.0

This commit is contained in:
wuzhenghui
2025-11-04 16:03:27 +08:00
parent 03227b9c14
commit 819fa8ccb2
7 changed files with 55 additions and 10 deletions
+42 -6
View File
@@ -379,32 +379,68 @@ FORCE_INLINE_ATTR void pmu_ll_imm_set_lp_pad_hold_all(pmu_dev_t *hw, bool hold_a
FORCE_INLINE_ATTR void pmu_ll_hp_set_power_force_reset(pmu_dev_t *hw, pmu_hp_power_domain_t domain, bool rst)
{
hw->power.hp_pd[domain].force_reset = rst;
if (domain == PMU_HP_PD_CPU) {
#if SOC_PMU_STRUCT_HW_VER >= 3
hw->power_pd_hp_cpu_cntl.force_hp_cpu_reset = rst;
#endif
} else {
hw->power.hp_pd[domain].force_reset = rst;
}
}
FORCE_INLINE_ATTR void pmu_ll_hp_set_power_force_isolate(pmu_dev_t *hw, pmu_hp_power_domain_t domain, bool iso)
{
hw->power.hp_pd[domain].force_iso = iso;
if (domain == PMU_HP_PD_CPU) {
#if SOC_PMU_STRUCT_HW_VER >= 3
hw->power_pd_hp_cpu_cntl.force_hp_cpu_iso = iso;
#endif
} else {
hw->power.hp_pd[domain].force_iso = iso;
}
}
FORCE_INLINE_ATTR void pmu_ll_hp_set_power_force_power_up(pmu_dev_t *hw, pmu_hp_power_domain_t domain, bool fpu)
{
hw->power.hp_pd[domain].force_pu = fpu;
if (domain == PMU_HP_PD_CPU) {
#if SOC_PMU_STRUCT_HW_VER >= 3
hw->power_pd_hp_cpu_cntl.force_hp_cpu_pu = fpu;
#endif
} else {
hw->power.hp_pd[domain].force_pu = fpu;
}
}
FORCE_INLINE_ATTR void pmu_ll_hp_set_power_force_no_reset(pmu_dev_t *hw, pmu_hp_power_domain_t domain, bool no_rst)
{
hw->power.hp_pd[domain].force_no_reset = no_rst;
if (domain == PMU_HP_PD_CPU) {
#if SOC_PMU_STRUCT_HW_VER >= 3
hw->power_pd_hp_cpu_cntl.force_hp_cpu_no_reset = no_rst;
#endif
} else {
hw->power.hp_pd[domain].force_no_reset = no_rst;
}
}
FORCE_INLINE_ATTR void pmu_ll_hp_set_power_force_no_isolate(pmu_dev_t *hw, pmu_hp_power_domain_t domain, bool no_iso)
{
hw->power.hp_pd[domain].force_no_iso = no_iso;
if (domain == PMU_HP_PD_CPU) {
#if SOC_PMU_STRUCT_HW_VER >= 3
hw->power_pd_hp_cpu_cntl.force_hp_cpu_no_iso = no_iso;
#endif
} else {
hw->power.hp_pd[domain].force_no_iso = no_iso;
}
}
FORCE_INLINE_ATTR void pmu_ll_hp_set_power_force_power_down(pmu_dev_t *hw, pmu_hp_power_domain_t domain, bool fpd)
{
hw->power.hp_pd[domain].force_pd = fpd;
if (domain == PMU_HP_PD_CPU) {
#if SOC_PMU_STRUCT_HW_VER >= 3
hw->power_pd_hp_cpu_cntl.force_hp_cpu_pd = fpd;
#endif
} else {
hw->power.hp_pd[domain].force_pd = fpd;
}
}
FORCE_INLINE_ATTR void pmu_ll_lp_set_power_force_reset(pmu_dev_t *hw, bool rst)