diff options
Diffstat (limited to 'drivers/phy')
| -rw-r--r-- | drivers/phy/allwinner/phy-sun4i-usb.c | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c index 2def87897d4..42e67b47328 100644 --- a/drivers/phy/allwinner/phy-sun4i-usb.c +++ b/drivers/phy/allwinner/phy-sun4i-usb.c @@ -86,23 +86,18 @@ struct sun4i_usb_phy_cfg { }; struct sun4i_usb_phy_info { - const char *gpio_vbus_det; const char *gpio_id_det; } phy_info[] = { { - .gpio_vbus_det = CONFIG_USB0_VBUS_DET, .gpio_id_det = CONFIG_USB0_ID_DET, }, { - .gpio_vbus_det = NULL, .gpio_id_det = NULL, }, { - .gpio_vbus_det = NULL, .gpio_id_det = NULL, }, { - .gpio_vbus_det = NULL, .gpio_id_det = NULL, }, }; @@ -494,17 +489,16 @@ static int sun4i_usb_phy_probe(struct udevice *dev) return ret; } - ret = dm_gpio_lookup_name(info->gpio_vbus_det, - &phy->gpio_vbus_det); - if (ret == 0) { - ret = dm_gpio_request(&phy->gpio_vbus_det, - "usb_vbus_det"); - if (ret) - return ret; - ret = dm_gpio_set_dir_flags(&phy->gpio_vbus_det, - GPIOD_IS_IN); - if (ret) + if (i == 0) { + ret = gpio_request_by_name(dev, "usb0_vbus_det-gpios", + 0, &phy->gpio_vbus_det, + GPIOD_IS_IN); + if (ret && ret != -ENOENT) { + dev_err(dev, + "failed to get VBUS detect GPIO: %d\n", + ret); return ret; + } } ret = dm_gpio_lookup_name(info->gpio_id_det, &phy->gpio_id_det); |
