]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
phy: marvell: mvebu-a3700-utmi: fix incorrect USB2_PHY_CTRL register access
authorGabor Juhos <j4g8y7@gmail.com>
Sat, 21 Mar 2026 14:42:32 +0000 (15:42 +0100)
committerVinod Koul <vkoul@kernel.org>
Sun, 10 May 2026 11:21:35 +0000 (16:51 +0530)
The mvebu_a3700_utmi_phy_power_off() function tries to modify the
USB2_PHY_CTRL register by using the IO address of the PHY IP block along
with the readl/writel IO accessors. However, the register exist in the
USB miscellaneous register space, and as such it must be accessed via
regmap like it is done in the mvebu_a3700_utmi_phy_power_on() function.

Change the code to use regmap_update_bits() for modífying the register
to fix this.

Fixes: cc8b7a0ae866 ("phy: add A3700 UTMI PHY driver")
Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://patch.msgid.link/20260321-a3700-utmi-fix-usb2_phy_ctrl-access-v1-1-6005ff4b5058@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/marvell/phy-mvebu-a3700-utmi.c

index 04f4fb4bed7024c933190bbd9353615d54ac172c..f882bc57649c77343c3cb9c5111db82812993c3e 100644 (file)
@@ -168,9 +168,8 @@ static int mvebu_a3700_utmi_phy_power_off(struct phy *phy)
        u32 reg;
 
        /* Disable PHY pull-up and enable USB2 suspend */
-       reg = readl(utmi->regs + USB2_PHY_CTRL(usb32));
-       reg &= ~(RB_USB2PHY_PU | RB_USB2PHY_SUSPM(usb32));
-       writel(reg, utmi->regs + USB2_PHY_CTRL(usb32));
+       regmap_update_bits(utmi->usb_misc, USB2_PHY_CTRL(usb32),
+                          RB_USB2PHY_PU | RB_USB2PHY_SUSPM(usb32), 0);
 
        /* Power down OTG module */
        if (usb32) {