diff options
Diffstat (limited to 'drivers/phy/phy-qcom-ufs-qmp-14nm.c')
-rw-r--r-- | drivers/phy/phy-qcom-ufs-qmp-14nm.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/phy/phy-qcom-ufs-qmp-14nm.c b/drivers/phy/phy-qcom-ufs-qmp-14nm.c index c6cf41964d8d..ea7387c43263 100644 --- a/drivers/phy/phy-qcom-ufs-qmp-14nm.c +++ b/drivers/phy/phy-qcom-ufs-qmp-14nm.c @@ -100,7 +100,7 @@ out: static void ufs_qcom_phy_qmp_14nm_power_control(struct ufs_qcom_phy *phy, - bool is_pwr_collapse) + bool power_ctrl) { bool is_workaround_req = false; @@ -108,7 +108,8 @@ void ufs_qcom_phy_qmp_14nm_power_control(struct ufs_qcom_phy *phy, UFS_QCOM_PHY_QUIRK_HIBERN8_EXIT_AFTER_PHY_PWR_COLLAPSE) is_workaround_req = true; - if (is_pwr_collapse) { + if (!power_ctrl) { + /* apply PHY analog power collapse */ if (is_workaround_req) { /* assert common reset before analog power collapse */ writel_relaxed(0x1, phy->mmio + QSERDES_COM_SW_RESET); @@ -119,7 +120,7 @@ void ufs_qcom_phy_qmp_14nm_power_control(struct ufs_qcom_phy *phy, mb(); } /* apply analog power collapse */ - writel_relaxed(0x1, phy->mmio + UFS_PHY_POWER_DOWN_CONTROL); + writel_relaxed(0x0, phy->mmio + UFS_PHY_POWER_DOWN_CONTROL); /* * Make sure that PHY knows its analog rail is going to be * powered OFF. @@ -127,7 +128,7 @@ void ufs_qcom_phy_qmp_14nm_power_control(struct ufs_qcom_phy *phy, mb(); } else { /* bring PHY out of analog power collapse */ - writel_relaxed(0x0, phy->mmio + UFS_PHY_POWER_DOWN_CONTROL); + writel_relaxed(0x1, phy->mmio + UFS_PHY_POWER_DOWN_CONTROL); /* * Before any transactions involving PHY, ensure PHY knows * that it's analog rail is powered ON. |