From 8dae8f2c0d01f8ed75e3732d3f61b8b9703efb4a Mon Sep 17 00:00:00 2001 From: William Wu Date: Wed, 17 Nov 2021 10:23:47 +0800 Subject: [PATCH] phy: rockchip: inno-usb2: fix charge detection Fixes: 61b9414d7185 ("phy: rockchip: inno-usb2: keep utmi clk on during charge detection") Signed-off-by: William Wu Change-Id: Ifcaf0ec333399a73a0c7af32cc053379763b83c2 --- drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c index ba327fc3f509..bb651c1497a5 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c @@ -1314,13 +1314,15 @@ static void rockchip_chg_detect_work(struct work_struct *work) rphy->chg_state = USB_CHG_STATE_DETECTED; fallthrough; case USB_CHG_STATE_DETECTED: + if (rphy->phy_cfg->chg_det.chg_mode.offset != + rport->port_cfg->phy_sus.offset) + property_enable(base, &rphy->phy_cfg->chg_det.chg_mode, false); + /* Restore the PHY suspend configuration */ phy_sus_reg = &rport->port_cfg->phy_sus; mask = GENMASK(phy_sus_reg->bitend, phy_sus_reg->bitstart); ret = regmap_write(base, phy_sus_reg->offset, - ((rphy->phy_sus_cfg << - phy_sus_reg->bitstart) | - (mask << BIT_WRITEABLE_SHIFT))); + (rphy->phy_sus_cfg | (mask << BIT_WRITEABLE_SHIFT))); if (ret) dev_err(&rport->phy->dev, "Fail to set phy_sus reg offset 0x%x, ret %d\n",