summaryrefslogtreecommitdiff
path: root/drivers/phy/phy-qcom-ufs-qmp-14nm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/phy/phy-qcom-ufs-qmp-14nm.c')
-rw-r--r--drivers/phy/phy-qcom-ufs-qmp-14nm.c9
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.