]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
phy: meson-gxl-usb2: remove phy_meson_gxl_usb2_set_mode
authorNeil Armstrong <neil.armstrong@linaro.org>
Thu, 20 Jun 2024 07:42:52 +0000 (09:42 +0200)
committerNeil Armstrong <neil.armstrong@linaro.org>
Tue, 25 Jun 2024 13:25:10 +0000 (15:25 +0200)
Remove the public phy_meson_gxl_usb2_set_mode and move
the implementation in the the set_mode callback.

Reviewed-by: Marek Vasut <marex@denx.de>
Link: https://lore.kernel.org/r/20240620-u-boot-usb-gxl-phy-set-mode-v2-3-b81c027bc02c@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
arch/arm/include/asm/arch-meson/usb-gx.h
drivers/phy/meson-gxl-usb2.c

index 61f1809df9ce2467364e7f134316f04e143e523a..966d401730d59f8ab566479a6fac7cbbfa6aa06f 100644 (file)
@@ -9,9 +9,6 @@
 #include <generic-phy.h>
 #include <linux/usb/otg.h>
 
-/* TOFIX add set_mode to struct phy_ops */
-void phy_meson_gxl_usb2_set_mode(struct phy *phy, enum usb_dr_mode mode);
-
 int dwc3_meson_gxl_force_mode(struct udevice *dev, enum usb_dr_mode mode);
 
 #endif
index e051e662243622bb97b3272c3c1a61ea31485ee3..140e936b47ae8da48579990eb2b216f4d77d1a25 100644 (file)
@@ -19,8 +19,6 @@
 #include <linux/printk.h>
 #include <linux/usb/otg.h>
 
-#include <asm/arch/usb-gx.h>
-
 #include <linux/bitops.h>
 #include <linux/compat.h>
 
@@ -121,54 +119,39 @@ static void phy_meson_gxl_usb2_reset(struct phy_meson_gxl_usb2_priv *priv)
        udelay(RESET_COMPLETE_TIME);
 }
 
-void phy_meson_gxl_usb2_set_mode(struct phy *phy, enum usb_dr_mode mode)
+static int phy_meson_gxl_usb2_set_mode(struct phy *phy, enum phy_mode mode, int submode)
 {
        struct udevice *dev = phy->dev;
        struct phy_meson_gxl_usb2_priv *priv = dev_get_priv(dev);
        uint val;
 
+       if (submode)
+               return -EOPNOTSUPP;
+
        regmap_read(priv->regmap, U2P_R0, &val);
 
        switch (mode) {
-       case USB_DR_MODE_UNKNOWN:
-       case USB_DR_MODE_HOST:
-       case USB_DR_MODE_OTG:
-               val |= U2P_R0_DM_PULLDOWN;
-               val |= U2P_R0_DP_PULLDOWN;
-               val &= ~U2P_R0_ID_PULLUP;
-               break;
-
-       case USB_DR_MODE_PERIPHERAL:
+       case PHY_MODE_USB_DEVICE:
                val &= ~U2P_R0_DM_PULLDOWN;
                val &= ~U2P_R0_DP_PULLDOWN;
                val |= U2P_R0_ID_PULLUP;
                break;
-       }
-
-       regmap_write(priv->regmap, U2P_R0, val);
-
-       phy_meson_gxl_usb2_reset(priv);
-}
-
-static int _phy_meson_gxl_usb2_set_mode(struct phy *phy, enum phy_mode mode, int submode)
-{
-       if (submode)
-               return -EOPNOTSUPP;
-
-       switch (mode) {
-       case PHY_MODE_USB_DEVICE:
-               phy_meson_gxl_usb2_set_mode(phy, USB_DR_MODE_PERIPHERAL);
-               break;
 
        case PHY_MODE_USB_HOST:
        case PHY_MODE_USB_OTG:
-               phy_meson_gxl_usb2_set_mode(phy, USB_DR_MODE_HOST);
+               val |= U2P_R0_DM_PULLDOWN;
+               val |= U2P_R0_DP_PULLDOWN;
+               val &= ~U2P_R0_ID_PULLUP;
                break;
 
        default:
                return -EINVAL;
        }
 
+       regmap_write(priv->regmap, U2P_R0, val);
+
+       phy_meson_gxl_usb2_reset(priv);
+
        return 0;
 }
 
@@ -183,7 +166,7 @@ static int phy_meson_gxl_usb2_power_on(struct phy *phy)
        val &= ~U2P_R0_POWER_ON_RESET;
        regmap_write(priv->regmap, U2P_R0, val);
 
-       _phy_meson_gxl_usb2_set_mode(phy, PHY_MODE_USB_HOST, 0);
+       phy_meson_gxl_usb2_set_mode(phy, PHY_MODE_USB_HOST, 0);
 
        return 0;
 }
@@ -205,7 +188,7 @@ static int phy_meson_gxl_usb2_power_off(struct phy *phy)
 struct phy_ops meson_gxl_usb2_phy_ops = {
        .power_on = phy_meson_gxl_usb2_power_on,
        .power_off = phy_meson_gxl_usb2_power_off,
-       .set_mode = _phy_meson_gxl_usb2_set_mode,
+       .set_mode = phy_meson_gxl_usb2_set_mode,
 };
 
 int meson_gxl_usb2_phy_probe(struct udevice *dev)