usb: phy: phy-generic: propagate clk_get error if clock is required
If the clock handle is given in the DT, it means the clock is required for proper operation of the PHY. In that case a failure to obtain the clock must be propagated to stop the driver from probing. This fixes working with clocks, which request probe deferral. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
This commit is contained in:
parent
bbb1cc0508
commit
f9c5d1dbda
|
@ -224,7 +224,7 @@ int usb_phy_gen_create_phy(struct device *dev, struct usb_phy_generic *nop,
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
u32 clk_rate = 0;
|
u32 clk_rate = 0;
|
||||||
bool needs_vcc = false;
|
bool needs_vcc = false, needs_clk = false;
|
||||||
|
|
||||||
if (dev->of_node) {
|
if (dev->of_node) {
|
||||||
struct device_node *node = dev->of_node;
|
struct device_node *node = dev->of_node;
|
||||||
|
@ -233,6 +233,7 @@ int usb_phy_gen_create_phy(struct device *dev, struct usb_phy_generic *nop,
|
||||||
clk_rate = 0;
|
clk_rate = 0;
|
||||||
|
|
||||||
needs_vcc = of_property_read_bool(node, "vcc-supply");
|
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",
|
nop->gpiod_reset = devm_gpiod_get_optional(dev, "reset",
|
||||||
GPIOD_ASIS);
|
GPIOD_ASIS);
|
||||||
err = PTR_ERR_OR_ZERO(nop->gpiod_reset);
|
err = PTR_ERR_OR_ZERO(nop->gpiod_reset);
|
||||||
|
@ -275,6 +276,8 @@ int usb_phy_gen_create_phy(struct device *dev, struct usb_phy_generic *nop,
|
||||||
if (IS_ERR(nop->clk)) {
|
if (IS_ERR(nop->clk)) {
|
||||||
dev_dbg(dev, "Can't get phy clock: %ld\n",
|
dev_dbg(dev, "Can't get phy clock: %ld\n",
|
||||||
PTR_ERR(nop->clk));
|
PTR_ERR(nop->clk));
|
||||||
|
if (needs_clk)
|
||||||
|
return PTR_ERR(nop->clk);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!IS_ERR(nop->clk) && clk_rate) {
|
if (!IS_ERR(nop->clk) && clk_rate) {
|
||||||
|
|
Loading…
Reference in New Issue