Now that all platforms using OMAP USB host devices have been converted
to DT, drop support for legacy non-DT probe from the driver.

Signed-off-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
---
 drivers/mfd/omap-usb-host.c            | 153 +++------------------------------
 include/linux/platform_data/usb-omap.h |   4 -
 2 files changed, 13 insertions(+), 144 deletions(-)

diff --git a/drivers/mfd/omap-usb-host.c b/drivers/mfd/omap-usb-host.c
index b731026541f5..ce28e0fda55e 100644
--- a/drivers/mfd/omap-usb-host.c
+++ b/drivers/mfd/omap-usb-host.c
@@ -23,7 +23,6 @@
 #include <linux/slab.h>
 #include <linux/delay.h>
 #include <linux/clk.h>
-#include <linux/dma-mapping.h>
 #include <linux/gpio.h>
 #include <linux/platform_device.h>
 #include <linux/platform_data/usb-omap.h>
@@ -35,8 +34,6 @@
 #include "omap-usb.h"
 
 #define USBHS_DRIVER_NAME      "usbhs_omap"
-#define OMAP_EHCI_DEVICE       "ehci-omap"
-#define OMAP_OHCI_DEVICE       "ohci-omap3"
 
 /* OMAP USBHOST Register addresses  */
 
@@ -115,7 +112,6 @@ struct usbhs_hcd_omap {
 /*-------------------------------------------------------------------------*/
 
 static const char usbhs_driver_name[] = USBHS_DRIVER_NAME;
-static u64 usbhs_dmamask = DMA_BIT_MASK(32);
 
 /*-------------------------------------------------------------------------*/
 
@@ -153,119 +149,6 @@ static const char * const port_modes[] = {
        [OMAP_OHCI_PORT_MODE_TLL_2PIN_DPDM]     = "ohci-tll-2pin-dpdm",
 };
 
-static struct platform_device *omap_usbhs_alloc_child(const char *name,
-                       struct resource *res, int num_resources, void *pdata,
-                       size_t pdata_size, struct device *dev)
-{
-       struct platform_device  *child;
-       int                     ret;
-
-       child = platform_device_alloc(name, 0);
-
-       if (!child) {
-               dev_err(dev, "platform_device_alloc %s failed\n", name);
-               goto err_end;
-       }
-
-       ret = platform_device_add_resources(child, res, num_resources);
-       if (ret) {
-               dev_err(dev, "platform_device_add_resources failed\n");
-               goto err_alloc;
-       }
-
-       ret = platform_device_add_data(child, pdata, pdata_size);
-       if (ret) {
-               dev_err(dev, "platform_device_add_data failed\n");
-               goto err_alloc;
-       }
-
-       child->dev.dma_mask             = &usbhs_dmamask;
-       dma_set_coherent_mask(&child->dev, DMA_BIT_MASK(32));
-       child->dev.parent               = dev;
-
-       ret = platform_device_add(child);
-       if (ret) {
-               dev_err(dev, "platform_device_add failed\n");
-               goto err_alloc;
-       }
-
-       return child;
-
-err_alloc:
-       platform_device_put(child);
-
-err_end:
-       return NULL;
-}
-
-static int omap_usbhs_alloc_children(struct platform_device *pdev)
-{
-       struct device                           *dev = &pdev->dev;
-       struct usbhs_omap_platform_data         *pdata = dev_get_platdata(dev);
-       struct platform_device                  *ehci;
-       struct platform_device                  *ohci;
-       struct resource                         *res;
-       struct resource                         resources[2];
-       int                                     ret;
-
-       res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ehci");
-       if (!res) {
-               dev_err(dev, "EHCI get resource IORESOURCE_MEM failed\n");
-               ret = -ENODEV;
-               goto err_end;
-       }
-       resources[0] = *res;
-
-       res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, "ehci-irq");
-       if (!res) {
-               dev_err(dev, " EHCI get resource IORESOURCE_IRQ failed\n");
-               ret = -ENODEV;
-               goto err_end;
-       }
-       resources[1] = *res;
-
-       ehci = omap_usbhs_alloc_child(OMAP_EHCI_DEVICE, resources, 2, pdata,
-               sizeof(*pdata), dev);
-
-       if (!ehci) {
-               dev_err(dev, "omap_usbhs_alloc_child failed\n");
-               ret = -ENOMEM;
-               goto err_end;
-       }
-
-       res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ohci");
-       if (!res) {
-               dev_err(dev, "OHCI get resource IORESOURCE_MEM failed\n");
-               ret = -ENODEV;
-               goto err_ehci;
-       }
-       resources[0] = *res;
-
-       res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, "ohci-irq");
-       if (!res) {
-               dev_err(dev, "OHCI get resource IORESOURCE_IRQ failed\n");
-               ret = -ENODEV;
-               goto err_ehci;
-       }
-       resources[1] = *res;
-
-       ohci = omap_usbhs_alloc_child(OMAP_OHCI_DEVICE, resources, 2, pdata,
-               sizeof(*pdata), dev);
-       if (!ohci) {
-               dev_err(dev, "omap_usbhs_alloc_child failed\n");
-               ret = -ENOMEM;
-               goto err_ehci;
-       }
-
-       return 0;
-
-err_ehci:
-       platform_device_unregister(ehci);
-
-err_end:
-       return ret;
-}
-
 static bool is_ohci_port(enum usbhs_omap_port_mode pmode)
 {
        switch (pmode) {
@@ -541,31 +424,28 @@ static const struct of_device_id 
usbhs_child_match_table[] = {
 static int usbhs_omap_probe(struct platform_device *pdev)
 {
        struct device                   *dev =  &pdev->dev;
-       struct usbhs_omap_platform_data *pdata = dev_get_platdata(dev);
+       struct usbhs_omap_platform_data *pdata;
        struct usbhs_hcd_omap           *omap;
        struct resource                 *res;
        int                             ret = 0;
        int                             i;
        bool                            need_logic_fck;
 
-       dev_info(&pdev->dev, "%s\n", __func__);
-       if (dev->of_node) {
-               /* For DT boot we populate platform data from OF node */
-               pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
-               if (!pdata)
-                       return -ENOMEM;
+       /* Populate platform data from OF node */
+       if (!dev->of_node) {
+               dev_err(dev, "Missing OF node\n");
+               return -ENODEV;
+       }
 
-               ret = usbhs_omap_get_dt_pdata(dev, pdata);
-               if (ret)
-                       return ret;
+       pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
+       if (!pdata)
+               return -ENOMEM;
 
-               dev->platform_data = pdata;
-       }
+       ret = usbhs_omap_get_dt_pdata(dev, pdata);
+       if (ret)
+               return ret;
 
-       if (!pdata) {
-               dev_err(dev, "Missing platform data\n");
-               return -ENODEV;
-       }
+       dev->platform_data = pdata;
 
        if (pdata->nports > OMAP3_HS_USB_PORTS) {
                dev_info(dev, "Too many num_ports <%d> in platform_data. Max 
%d\n",
@@ -798,13 +678,6 @@ static int usbhs_omap_probe(struct platform_device *pdev)
                        goto err_mem;
                }
 
-       } else {
-               ret = omap_usbhs_alloc_children(pdev);
-               if (ret) {
-                       dev_err(dev, "omap_usbhs_alloc_children failed: %d\n",
-                                               ret);
-                       goto err_mem;
-               }
        }
 
        return 0;
diff --git a/include/linux/platform_data/usb-omap.h 
b/include/linux/platform_data/usb-omap.h
index fa579b4c666b..c051da514dc5 100644
--- a/include/linux/platform_data/usb-omap.h
+++ b/include/linux/platform_data/usb-omap.h
@@ -38,10 +38,6 @@ enum usbhs_omap_port_mode {
        OMAP_OHCI_PORT_MODE_TLL_2PIN_DPDM
 };
 
-struct usbtll_omap_platform_data {
-       enum usbhs_omap_port_mode               port_mode[OMAP3_HS_USB_PORTS];
-};
-
 struct ehci_hcd_omap_platform_data {
        enum usbhs_omap_port_mode       port_mode[OMAP3_HS_USB_PORTS];
        int                             reset_gpio_port[OMAP3_HS_USB_PORTS];
-- 
Regards,

Laurent Pinchart

Reply via email to