mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-27 23:20:26 +09:00
Merge git://git.denx.de/u-boot-usb
This commit is contained in:
commit
ec37f05ec0
@ -838,6 +838,9 @@ unknown:
|
|||||||
ctrl->bRequestType, ctrl->bRequest,
|
ctrl->bRequestType, ctrl->bRequest,
|
||||||
w_value, w_index, w_length);
|
w_value, w_index, w_length);
|
||||||
|
|
||||||
|
if (!cdev->config)
|
||||||
|
goto done;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* functions always handle their interfaces and endpoints...
|
* functions always handle their interfaces and endpoints...
|
||||||
* punt other recipients (other, WUSB, ...) to the current
|
* punt other recipients (other, WUSB, ...) to the current
|
||||||
@ -882,7 +885,7 @@ unknown:
|
|||||||
value = f->setup(f, ctrl);
|
value = f->setup(f, ctrl);
|
||||||
else {
|
else {
|
||||||
c = cdev->config;
|
c = cdev->config;
|
||||||
if (c && c->setup)
|
if (c->setup)
|
||||||
value = c->setup(c, ctrl);
|
value = c->setup(c, ctrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,16 +113,21 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_DM_USB
|
#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);
|
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;
|
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),
|
plat->usb_phys = devm_kcalloc(dev, count, sizeof(struct phy),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!plat->usb_phys)
|
if (!plat->usb_phys)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
@ -136,7 +141,7 @@ static int xhci_dwc3_setup_phy(struct udevice *dev, int count)
|
|||||||
|
|
||||||
++plat->num_phys;
|
++plat->num_phys;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < plat->num_phys; i++) {
|
for (i = 0; i < plat->num_phys; i++) {
|
||||||
ret = generic_phy_init(&plat->usb_phys[i]);
|
ret = generic_phy_init(&plat->usb_phys[i]);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
@ -145,7 +150,7 @@ static int xhci_dwc3_setup_phy(struct udevice *dev, int count)
|
|||||||
goto phys_init_err;
|
goto phys_init_err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < plat->num_phys; i++) {
|
for (i = 0; i < plat->num_phys; i++) {
|
||||||
ret = generic_phy_power_on(&plat->usb_phys[i]);
|
ret = generic_phy_power_on(&plat->usb_phys[i]);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
@ -157,7 +162,6 @@ static int xhci_dwc3_setup_phy(struct udevice *dev, int count)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
||||||
phys_poweron_err:
|
phys_poweron_err:
|
||||||
for (; i >= 0; i--)
|
for (; i >= 0; i--)
|
||||||
generic_phy_power_off(&plat->usb_phys[i]);
|
generic_phy_power_off(&plat->usb_phys[i]);
|
||||||
@ -187,7 +191,7 @@ static int xhci_dwc3_shutdown_phy(struct udevice *dev)
|
|||||||
ret |= generic_phy_exit(&plat->usb_phys[i]);
|
ret |= generic_phy_exit(&plat->usb_phys[i]);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
pr_err("Can't shutdown USB PHY%d for %s\n",
|
pr_err("Can't shutdown USB PHY%d for %s\n",
|
||||||
i, dev->name);
|
i, dev->name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -206,8 +210,7 @@ static int xhci_dwc3_probe(struct udevice *dev)
|
|||||||
hcor = (struct xhci_hcor *)((uintptr_t)hccr +
|
hcor = (struct xhci_hcor *)((uintptr_t)hccr +
|
||||||
HC_LENGTH(xhci_readl(&(hccr)->cr_capbase)));
|
HC_LENGTH(xhci_readl(&(hccr)->cr_capbase)));
|
||||||
|
|
||||||
ret = xhci_dwc3_setup_phy(dev, dev_count_phandle_with_args(
|
ret = xhci_dwc3_setup_phy(dev);
|
||||||
dev, "phys", "#phy-cells"));
|
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user