On 6/18/24 9:55 AM, Neil Armstrong wrote:
Implement set_mode callback by calling the current public
function.

Signed-off-by: Neil Armstrong <neil.armstr...@linaro.org>
---
  drivers/phy/meson-gxl-usb2.c | 25 ++++++++++++++++++++++++-
  1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/drivers/phy/meson-gxl-usb2.c b/drivers/phy/meson-gxl-usb2.c
index 92c285103c..e051e66224 100644
--- a/drivers/phy/meson-gxl-usb2.c
+++ b/drivers/phy/meson-gxl-usb2.c
@@ -150,6 +150,28 @@ void phy_meson_gxl_usb2_set_mode(struct phy *phy, enum 
usb_dr_mode mode)
        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);
+               break;
+
+       default:
+               return -EINVAL;
+       }
+
+       return 0;
+}
+
  static int phy_meson_gxl_usb2_power_on(struct phy *phy)
  {
        struct udevice *dev = phy->dev;
@@ -161,7 +183,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, USB_DR_MODE_HOST);

Could you rename this ^ to some phy_meson_gxl_usb2_set_mode_inner() and ...

+       _phy_meson_gxl_usb2_set_mode(phy, PHY_MODE_USB_HOST, 0);

... remove the leading underscore here.

        return 0;
  }
@@ -183,6 +205,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,

... and here ?

[...]

Reply via email to