|
78 | 78 |
|
79 | 79 | #define CCM_LPCG_START 0x4040
|
80 | 80 | #define CCM_LPCG_STEP 0x10
|
| 81 | +#define CCM_EIM_LPCG 0x4160 |
| 82 | +#define CCM_PXP_LPCG 0x44c0 |
81 | 83 | #define CCM_PCIE_LPCG 0x4600
|
82 | 84 |
|
83 | 85 | #define BM_CCM_ROOT_POST_PODF 0x3f
|
@@ -715,11 +717,15 @@ static int imx7_pm_enter(suspend_state_t state)
|
715 | 717 | imx_gpcv2_pre_suspend(true);
|
716 | 718 | if (imx_gpcv2_is_mf_mix_off()) {
|
717 | 719 | /*
|
718 |
| - * per design requirement, EXSC for PCIe/EIM |
| 720 | + * per design requirement, EXSC for PCIe/EIM/PXP |
719 | 721 | * will need clock to recover RDC setting on
|
720 | 722 | * resume, so enable PCIe/EIM LPCG for RDC
|
721 | 723 | * recovery when M/F mix off
|
722 | 724 | */
|
| 725 | + writel_relaxed(0x3, pm_info->ccm_base.vbase + |
| 726 | + CCM_EIM_LPCG); |
| 727 | + writel_relaxed(0x3, pm_info->ccm_base.vbase + |
| 728 | + CCM_PXP_LPCG); |
723 | 729 | writel_relaxed(0x3, pm_info->ccm_base.vbase +
|
724 | 730 | CCM_PCIE_LPCG);
|
725 | 731 | /* stop m4 if mix will also be shutdown */
|
@@ -759,6 +765,10 @@ static int imx7_pm_enter(suspend_state_t state)
|
759 | 765 | }
|
760 | 766 | if (imx_gpcv2_is_mf_mix_off() ||
|
761 | 767 | imx7_pm_is_resume_from_lpsr()) {
|
| 768 | + writel_relaxed(0x0, pm_info->ccm_base.vbase + |
| 769 | + CCM_EIM_LPCG); |
| 770 | + writel_relaxed(0x0, pm_info->ccm_base.vbase + |
| 771 | + CCM_PXP_LPCG); |
762 | 772 | writel_relaxed(0x0, pm_info->ccm_base.vbase +
|
763 | 773 | CCM_PCIE_LPCG);
|
764 | 774 | memcpy(ocram_base, ocram_saved_in_ddr, ocram_size);
|
|
0 commit comments