|
|
|
@ -45,10 +45,10 @@ static int ehci_usb_probe(struct udevice *dev) |
|
|
|
|
* clocks resp. phys. |
|
|
|
|
*/ |
|
|
|
|
priv->ahb_gate_mask = 1 << AHB_GATE_OFFSET_USB_EHCI0; |
|
|
|
|
#ifdef CONFIG_MACH_SUN8I_H3 |
|
|
|
|
#if defined(CONFIG_MACH_SUN8I_H3) || defined(CONFIG_MACH_SUN50I) |
|
|
|
|
extra_ahb_gate_mask = 1 << AHB_GATE_OFFSET_USB_OHCI0; |
|
|
|
|
#endif |
|
|
|
|
priv->phy_index = ((u32)hccr - SUNXI_USB1_BASE) / BASE_DIST; |
|
|
|
|
priv->phy_index = ((uintptr_t)hccr - SUNXI_USB1_BASE) / BASE_DIST; |
|
|
|
|
priv->ahb_gate_mask <<= priv->phy_index * AHB_CLK_DIST; |
|
|
|
|
extra_ahb_gate_mask <<= priv->phy_index * AHB_CLK_DIST; |
|
|
|
|
priv->phy_index++; /* Non otg phys start at 1 */ |
|
|
|
@ -63,7 +63,7 @@ static int ehci_usb_probe(struct udevice *dev) |
|
|
|
|
sunxi_usb_phy_init(priv->phy_index); |
|
|
|
|
sunxi_usb_phy_power_on(priv->phy_index); |
|
|
|
|
|
|
|
|
|
hcor = (struct ehci_hcor *)((uint32_t)hccr + |
|
|
|
|
hcor = (struct ehci_hcor *)((uintptr_t)hccr + |
|
|
|
|
HC_LENGTH(ehci_readl(&hccr->cr_capbase))); |
|
|
|
|
|
|
|
|
|
return ehci_register(dev, hccr, hcor, NULL, 0, plat->init_type); |
|
|
|
@ -98,6 +98,7 @@ static const struct udevice_id ehci_usb_ids[] = { |
|
|
|
|
{ .compatible = "allwinner,sun8i-a83t-ehci", }, |
|
|
|
|
{ .compatible = "allwinner,sun8i-h3-ehci", }, |
|
|
|
|
{ .compatible = "allwinner,sun9i-a80-ehci", }, |
|
|
|
|
{ .compatible = "allwinner,sun50i-a64-ehci", }, |
|
|
|
|
{ } |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|