|
@@ -307,22 +307,12 @@ static struct musb_hdrc_config musb_config = {
|
|
.ram_bits = SUNXI_MUSB_RAM_BITS,
|
|
.ram_bits = SUNXI_MUSB_RAM_BITS,
|
|
};
|
|
};
|
|
|
|
|
|
-static struct musb_hdrc_platform_data musb_plat = {
|
|
|
|
-#if defined(CONFIG_USB_MUSB_HOST)
|
|
|
|
- .mode = MUSB_HOST,
|
|
|
|
-#else
|
|
|
|
- .mode = MUSB_PERIPHERAL,
|
|
|
|
-#endif
|
|
|
|
- .config = &musb_config,
|
|
|
|
- .power = 250,
|
|
|
|
- .platform_ops = &sunxi_musb_ops,
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
static int musb_usb_probe(struct udevice *dev)
|
|
static int musb_usb_probe(struct udevice *dev)
|
|
{
|
|
{
|
|
struct sunxi_glue *glue = dev_get_priv(dev);
|
|
struct sunxi_glue *glue = dev_get_priv(dev);
|
|
struct musb_host_data *host = &glue->mdata;
|
|
struct musb_host_data *host = &glue->mdata;
|
|
struct usb_bus_priv *priv = dev_get_uclass_priv(dev);
|
|
struct usb_bus_priv *priv = dev_get_uclass_priv(dev);
|
|
|
|
+ struct musb_hdrc_platform_data pdata;
|
|
void *base = dev_read_addr_ptr(dev);
|
|
void *base = dev_read_addr_ptr(dev);
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
@@ -335,8 +325,14 @@ static int musb_usb_probe(struct udevice *dev)
|
|
|
|
|
|
priv->desc_before_addr = true;
|
|
priv->desc_before_addr = true;
|
|
|
|
|
|
|
|
+ memset(&pdata, 0, sizeof(pdata));
|
|
|
|
+ pdata.power = 250;
|
|
|
|
+ pdata.platform_ops = &sunxi_musb_ops;
|
|
|
|
+ pdata.config = &musb_config;
|
|
|
|
+
|
|
#ifdef CONFIG_USB_MUSB_HOST
|
|
#ifdef CONFIG_USB_MUSB_HOST
|
|
- host->host = musb_init_controller(&musb_plat, &glue->dev, base);
|
|
|
|
|
|
+ pdata.mode = MUSB_HOST;
|
|
|
|
+ host->host = musb_init_controller(&pdata, &glue->dev, base);
|
|
if (!host->host)
|
|
if (!host->host)
|
|
return -EIO;
|
|
return -EIO;
|
|
|
|
|
|
@@ -344,7 +340,8 @@ static int musb_usb_probe(struct udevice *dev)
|
|
if (!ret)
|
|
if (!ret)
|
|
printf("Allwinner mUSB OTG (Host)\n");
|
|
printf("Allwinner mUSB OTG (Host)\n");
|
|
#else
|
|
#else
|
|
- ret = musb_register(&musb_plat, &glue->dev, base);
|
|
|
|
|
|
+ pdata.mode = MUSB_PERIPHERAL;
|
|
|
|
+ ret = musb_register(&pdata, &glue->dev, base);
|
|
if (!ret)
|
|
if (!ret)
|
|
printf("Allwinner mUSB OTG (Peripheral)\n");
|
|
printf("Allwinner mUSB OTG (Peripheral)\n");
|
|
#endif
|
|
#endif
|