|
|
|
@ -113,14 +113,19 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_DM_USB |
|
|
|
|
static int xhci_dwc3_setup_phy(struct udevice *dev, int count) |
|
|
|
|
static int xhci_dwc3_setup_phy(struct udevice *dev) |
|
|
|
|
{ |
|
|
|
|
struct xhci_dwc3_platdata *plat = dev_get_platdata(dev); |
|
|
|
|
int i, ret; |
|
|
|
|
int i, ret, count; |
|
|
|
|
|
|
|
|
|
if (!count) |
|
|
|
|
/* Return if no phy declared */ |
|
|
|
|
if (!dev_read_prop(dev, "phys", NULL)) |
|
|
|
|
return 0; |
|
|
|
|
|
|
|
|
|
count = dev_count_phandle_with_args(dev, "phys", "#phy-cells"); |
|
|
|
|
if (count <= 0) |
|
|
|
|
return count; |
|
|
|
|
|
|
|
|
|
plat->usb_phys = devm_kcalloc(dev, count, sizeof(struct phy), |
|
|
|
|
GFP_KERNEL); |
|
|
|
|
if (!plat->usb_phys) |
|
|
|
@ -157,7 +162,6 @@ static int xhci_dwc3_setup_phy(struct udevice *dev, int count) |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
phys_poweron_err: |
|
|
|
|
for (; i >= 0; i--) |
|
|
|
|
generic_phy_power_off(&plat->usb_phys[i]); |
|
|
|
@ -206,8 +210,7 @@ static int xhci_dwc3_probe(struct udevice *dev) |
|
|
|
|
hcor = (struct xhci_hcor *)((uintptr_t)hccr + |
|
|
|
|
HC_LENGTH(xhci_readl(&(hccr)->cr_capbase))); |
|
|
|
|
|
|
|
|
|
ret = xhci_dwc3_setup_phy(dev, dev_count_phandle_with_args( |
|
|
|
|
dev, "phys", "#phy-cells")); |
|
|
|
|
ret = xhci_dwc3_setup_phy(dev); |
|
|
|
|
if (ret) |
|
|
|
|
return ret; |
|
|
|
|
|
|
|
|
|