Message ID | 20221012132754.292151-1-s.hauer@pengutronix.de (mailing list archive) |
---|---|
State | Accepted |
Commit | 32c6fefb291bf84c5a4dbc7d52b56a1605ed9aae |
Headers | show |
Series | usb: phy: generic: make vcc regulator optional | expand |
On 12.10.22 15:27, Sascha Hauer wrote: > phy-generic uses the existance of the property "vcc-supply" to see if a > regulator is optional or not. Use devm_regulator_get_optional() instead > which exists for this purpose. Using devm_regulator_get_optional() > avoids "supply vcc not found, using dummy regulator" messages. Gentle ping. > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> > --- > drivers/usb/phy/phy-generic.c | 14 +++++--------- > 1 file changed, 5 insertions(+), 9 deletions(-) > > diff --git a/drivers/usb/phy/phy-generic.c b/drivers/usb/phy/phy-generic.c > index 34b9f81401871..92d3e067067c6 100644 > --- a/drivers/usb/phy/phy-generic.c > +++ b/drivers/usb/phy/phy-generic.c > @@ -209,7 +209,7 @@ int usb_phy_gen_create_phy(struct device *dev, struct usb_phy_generic *nop) > int err = 0; > > u32 clk_rate = 0; > - bool needs_vcc = false, needs_clk = false; > + bool needs_clk = false; > > if (dev->of_node) { > struct device_node *node = dev->of_node; > @@ -217,7 +217,6 @@ int usb_phy_gen_create_phy(struct device *dev, struct usb_phy_generic *nop) > if (of_property_read_u32(node, "clock-frequency", &clk_rate)) > clk_rate = 0; > > - needs_vcc = of_property_read_bool(node, "vcc-supply"); > needs_clk = of_property_read_bool(node, "clocks"); > } > nop->gpiod_reset = devm_gpiod_get_optional(dev, "reset", > @@ -260,13 +259,10 @@ int usb_phy_gen_create_phy(struct device *dev, struct usb_phy_generic *nop) > } > } > > - nop->vcc = devm_regulator_get(dev, "vcc"); > - if (IS_ERR(nop->vcc)) { > - dev_dbg(dev, "Error getting vcc regulator: %ld\n", > - PTR_ERR(nop->vcc)); > - if (needs_vcc) > - return -EPROBE_DEFER; > - } > + nop->vcc = devm_regulator_get_optional(dev, "vcc"); > + if (IS_ERR(nop->vcc) && PTR_ERR(nop->vcc) != -ENODEV) > + return dev_err_probe(dev, PTR_ERR(nop->vcc), > + "could not get vcc regulator\n"); > > nop->vbus_draw = devm_regulator_get_exclusive(dev, "vbus"); > if (PTR_ERR(nop->vbus_draw) == -ENODEV)
diff --git a/drivers/usb/phy/phy-generic.c b/drivers/usb/phy/phy-generic.c index 34b9f81401871..92d3e067067c6 100644 --- a/drivers/usb/phy/phy-generic.c +++ b/drivers/usb/phy/phy-generic.c @@ -209,7 +209,7 @@ int usb_phy_gen_create_phy(struct device *dev, struct usb_phy_generic *nop) int err = 0; u32 clk_rate = 0; - bool needs_vcc = false, needs_clk = false; + bool needs_clk = false; if (dev->of_node) { struct device_node *node = dev->of_node; @@ -217,7 +217,6 @@ int usb_phy_gen_create_phy(struct device *dev, struct usb_phy_generic *nop) if (of_property_read_u32(node, "clock-frequency", &clk_rate)) clk_rate = 0; - needs_vcc = of_property_read_bool(node, "vcc-supply"); needs_clk = of_property_read_bool(node, "clocks"); } nop->gpiod_reset = devm_gpiod_get_optional(dev, "reset", @@ -260,13 +259,10 @@ int usb_phy_gen_create_phy(struct device *dev, struct usb_phy_generic *nop) } } - nop->vcc = devm_regulator_get(dev, "vcc"); - if (IS_ERR(nop->vcc)) { - dev_dbg(dev, "Error getting vcc regulator: %ld\n", - PTR_ERR(nop->vcc)); - if (needs_vcc) - return -EPROBE_DEFER; - } + nop->vcc = devm_regulator_get_optional(dev, "vcc"); + if (IS_ERR(nop->vcc) && PTR_ERR(nop->vcc) != -ENODEV) + return dev_err_probe(dev, PTR_ERR(nop->vcc), + "could not get vcc regulator\n"); nop->vbus_draw = devm_regulator_get_exclusive(dev, "vbus"); if (PTR_ERR(nop->vbus_draw) == -ENODEV)
phy-generic uses the existance of the property "vcc-supply" to see if a regulator is optional or not. Use devm_regulator_get_optional() instead which exists for this purpose. Using devm_regulator_get_optional() avoids "supply vcc not found, using dummy regulator" messages. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> --- drivers/usb/phy/phy-generic.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-)