struct phy_meson_g12a_usb2_priv {
struct regmap *regmap;
-#if CONFIG_IS_ENABLED(DM_REGULATOR)
- struct udevice *phy_supply;
-#endif
#if CONFIG_IS_ENABLED(CLK)
struct clk clk;
#endif
struct reset_ctl reset;
};
-
-static int phy_meson_g12a_usb2_power_on(struct phy *phy)
-{
-#if CONFIG_IS_ENABLED(DM_REGULATOR)
- struct udevice *dev = phy->dev;
- struct phy_meson_g12a_usb2_priv *priv = dev_get_priv(dev);
-
- if (priv->phy_supply) {
- int ret = regulator_set_enable(priv->phy_supply, true);
- if (ret)
- return ret;
- }
-#endif
-
- return 0;
-}
-
-static int phy_meson_g12a_usb2_power_off(struct phy *phy)
-{
-#if CONFIG_IS_ENABLED(DM_REGULATOR)
- struct udevice *dev = phy->dev;
- struct phy_meson_g12a_usb2_priv *priv = dev_get_priv(dev);
-
- if (priv->phy_supply) {
- int ret = regulator_set_enable(priv->phy_supply, false);
- if (ret) {
- pr_err("Error disabling PHY supply\n");
- return ret;
- }
- }
-#endif
-
- return 0;
-}
-
static int phy_meson_g12a_usb2_init(struct phy *phy)
{
struct udevice *dev = phy->dev;
struct phy_ops meson_g12a_usb2_phy_ops = {
.init = phy_meson_g12a_usb2_init,
.exit = phy_meson_g12a_usb2_exit,
- .power_on = phy_meson_g12a_usb2_power_on,
- .power_off = phy_meson_g12a_usb2_power_off,
};
int meson_g12a_usb2_phy_probe(struct udevice *dev)
}
#endif
-#if CONFIG_IS_ENABLED(DM_REGULATOR)
- ret = device_get_supply_regulator(dev, "phy-supply", &priv->phy_supply);
- if (ret && ret != -ENOENT) {
- pr_err("Failed to get PHY regulator\n");
- return ret;
- }
-#endif
-
return 0;
}
#include <clk.h>
#include <dm.h>
#include <generic-phy.h>
-#include <power/regulator.h>
#include <regmap.h>
#include <reset.h>
#include <linux/bitops.h>
struct phy_meson_gxbb_usb2_priv {
struct regmap *regmap;
struct reset_ctl_bulk resets;
-#if CONFIG_IS_ENABLED(DM_REGULATOR)
- struct udevice *phy_supply;
-#endif
};
static int phy_meson_gxbb_usb2_power_on(struct phy *phy)
struct phy_meson_gxbb_usb2_priv *priv = dev_get_priv(dev);
uint val;
-#if CONFIG_IS_ENABLED(DM_REGULATOR)
- if (priv->phy_supply) {
- int ret = regulator_set_enable(priv->phy_supply, true);
-
- if (ret)
- return ret;
- }
-#endif
-
regmap_update_bits(priv->regmap, REG_CONFIG,
REG_CONFIG_CLK_32k_ALTSEL,
REG_CONFIG_CLK_32k_ALTSEL);
return 0;
}
-static int phy_meson_gxbb_usb2_power_off(struct phy *phy)
-{
-#if CONFIG_IS_ENABLED(DM_REGULATOR)
- struct udevice *dev = phy->dev;
- struct phy_meson_gxbb_usb2_priv *priv = dev_get_priv(dev);
-
- if (priv->phy_supply) {
- int ret = regulator_set_enable(priv->phy_supply, false);
-
- if (ret)
- return ret;
- }
-#endif
-
- return 0;
-}
-
static struct phy_ops meson_gxbb_usb2_phy_ops = {
.power_on = phy_meson_gxbb_usb2_power_on,
- .power_off = phy_meson_gxbb_usb2_power_off,
};
static int meson_gxbb_usb2_phy_probe(struct udevice *dev)
return ret;
}
-#if CONFIG_IS_ENABLED(DM_REGULATOR)
- ret = device_get_supply_regulator(dev, "phy-supply", &priv->phy_supply);
- if (ret && ret != -ENOENT) {
- pr_err("Failed to get PHY regulator\n");
- return ret;
- }
-#endif
ret = reset_get_bulk(dev, &priv->resets);
if (!ret) {
ret = reset_deassert_bulk(&priv->resets);
#include <generic-phy.h>
#include <regmap.h>
#include <linux/delay.h>
-#include <power/regulator.h>
#include <clk.h>
#include <linux/usb/otg.h>
struct phy_meson_gxl_usb2_priv {
struct regmap *regmap;
-#if CONFIG_IS_ENABLED(DM_REGULATOR)
- struct udevice *phy_supply;
-#endif
#if CONFIG_IS_ENABLED(CLK)
struct clk clk;
#endif
phy_meson_gxl_usb2_set_mode(phy, USB_DR_MODE_HOST);
-#if CONFIG_IS_ENABLED(DM_REGULATOR)
- if (priv->phy_supply) {
- int ret = regulator_set_enable(priv->phy_supply, true);
- if (ret)
- return ret;
- }
-#endif
-
return 0;
}
val |= U2P_R0_POWER_ON_RESET;
regmap_write(priv->regmap, U2P_R0, val);
-#if CONFIG_IS_ENABLED(DM_REGULATOR)
- if (priv->phy_supply) {
- int ret = regulator_set_enable(priv->phy_supply, false);
- if (ret) {
- pr_err("Error disabling PHY supply\n");
- return ret;
- }
- }
-#endif
-
return 0;
}
}
#endif
-#if CONFIG_IS_ENABLED(DM_REGULATOR)
- ret = device_get_supply_regulator(dev, "phy-supply", &priv->phy_supply);
- if (ret && ret != -ENOENT) {
- pr_err("Failed to get PHY regulator\n");
- return ret;
- }
-#endif
-
return 0;
}