phy: sun4i-usb: change PHYCTL register clearing code
authorIcenowy Zheng <icenowy@aosc.xyz>
Sat, 25 Mar 2017 14:50:09 +0000 (22:50 +0800)
committerKishon Vijay Abraham I <kishon@ti.com>
Mon, 10 Apr 2017 11:12:57 +0000 (16:42 +0530)
It seems that all SoCs with the PHYCTL register offset as 0x10 need the
PHYCTL register to be cleared before it's written.

Change PHYCTL register clearing code to judge whether clearing is needed
based on the PHYCTL offset.

Signed-off-by: Icenowy Zheng <icenowy@aosc.xyz>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
drivers/phy/phy-sun4i-usb.c

index a21b5f24a3406eef0438cdd6b3cb337784ebcbc0..62b4d25448c68f1b8f8f0ea47c2caca27d6ad15f 100644 (file)
@@ -188,10 +188,8 @@ static void sun4i_usb_phy_write(struct sun4i_usb_phy *phy, u32 addr, u32 data,
 
        spin_lock_irqsave(&phy_data->reg_lock, flags);
 
-       if (phy_data->cfg->type == sun8i_a33_phy ||
-           phy_data->cfg->type == sun50i_a64_phy ||
-           phy_data->cfg->type == sun8i_v3s_phy) {
-               /* A33 or A64 needs us to set phyctl to 0 explicitly */
+       if (phy_data->cfg->phyctl_offset == REG_PHYCTL_A33) {
+               /* SoCs newer than A33 need us to set phyctl to 0 explicitly */
                writel(0, phyctl);
        }