Re: [PATCH 1/5] phy: meson-gxl-usb2: add set_mode callback
Marek Vasut <[email protected]>
| Newsgroups | io.groups.u-boot-amlogic,org.u-boot-project.lists.u-boot |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> > --- > 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 ? [...]