musb: sunxi: Use base address from device tree
authorChen-Yu Tsai <wens@csie.org>
Sat, 30 Dec 2017 12:44:07 +0000 (20:44 +0800)
committerMarek Vasut <marex@denx.de>
Wed, 10 Jan 2018 10:11:05 +0000 (11:11 +0100)
Now that the musb sunxi glue driver is completely device model / device
tree driven, we should use the base address from the device tree,
instead of hard-coding it in the source code.

Fixes: 3a61b080acee ("musb: sunxi: switch to the device model")
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
drivers/usb/musb-new/sunxi.c

index 7ee44ea91900e882ce13f98feeeeb29730fe3284..aedc24b93711ae46183b210e1cb0acf373b586d5 100644 (file)
@@ -312,13 +312,16 @@ static int musb_usb_probe(struct udevice *dev)
 {
        struct musb_host_data *host = dev_get_priv(dev);
        struct usb_bus_priv *priv = dev_get_uclass_priv(dev);
+       void *base = dev_read_addr_ptr(dev);
        int ret;
 
+       if (!base)
+               return -EINVAL;
+
        priv->desc_before_addr = true;
 
 #ifdef CONFIG_USB_MUSB_HOST
-       host->host = musb_init_controller(&musb_plat, NULL,
-                                         (void *)SUNXI_USB0_BASE);
+       host->host = musb_init_controller(&musb_plat, NULL, base);
        if (!host->host)
                return -EIO;
 
@@ -326,7 +329,7 @@ static int musb_usb_probe(struct udevice *dev)
        if (!ret)
                printf("Allwinner mUSB OTG (Host)\n");
 #else
-       ret = musb_register(&musb_plat, NULL, (void *)SUNXI_USB0_BASE);
+       ret = musb_register(&musb_plat, NULL, base);
        if (!ret)
                printf("Allwinner mUSB OTG (Peripheral)\n");
 #endif