usb: gadget: mv_udc: drop ARCH dependency
authorNeil Zhang <zhangwm@marvell.com>
Tue, 20 Dec 2011 05:20:21 +0000 (13:20 +0800)
committerFelipe Balbi <balbi@ti.com>
Tue, 20 Dec 2011 10:55:06 +0000 (12:55 +0200)
This patch do the following things:
1. Change the Kconfig information.
2. Rename the driver name.
3. Don't do any type cast to io memory.
4. Add dummy stub for clk framework.

Signed-off-by: Neil Zhang <zhangwm@marvell.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/Kconfig
drivers/usb/gadget/Makefile
drivers/usb/gadget/mv_udc.h
drivers/usb/gadget/mv_udc_core.c
include/linux/platform_data/mv_usb.h

index 953b00c..f1a5409 100644 (file)
@@ -309,13 +309,13 @@ config USB_S3C_HSUDC
 
          This driver has been tested on S3C2416 and S3C2450 processors.
 
-config USB_PXA_U2O
-       tristate "PXA9xx Processor USB2.0 controller"
-       depends on ARCH_MMP
+config USB_MV_UDC
+       tristate "Marvell USB2.0 Device Controller"
        select USB_GADGET_DUALSPEED
        help
-         PXA9xx Processor series include a high speed USB2.0 device
-         controller, which support high speed and full speed USB peripheral.
+         Marvell Socs (including PXA and MMP series) include a high speed
+         USB2.0 OTG controller, which can be configured as high speed or
+         full speed USB peripheral.
 
 config USB_GADGET_DWC3
        tristate "DesignWare USB3.0 (DRD) Controller"
index b54ac61..b7f6eef 100644 (file)
@@ -27,7 +27,7 @@ obj-$(CONFIG_USB_S3C_HSOTG)   += s3c-hsotg.o
 obj-$(CONFIG_USB_S3C_HSUDC)    += s3c-hsudc.o
 obj-$(CONFIG_USB_LANGWELL)     += langwell_udc.o
 obj-$(CONFIG_USB_EG20T)                += pch_udc.o
-obj-$(CONFIG_USB_PXA_U2O)      += mv_udc.o
+obj-$(CONFIG_USB_MV_UDC)       += mv_udc.o
 mv_udc-y                       := mv_udc_core.o
 obj-$(CONFIG_USB_CI13XXX_MSM)  += ci13xxx_msm.o
 obj-$(CONFIG_USB_FUSB300)      += fusb300_udc.o
index 3d84044..34aadfa 100644 (file)
@@ -180,7 +180,7 @@ struct mv_udc {
 
        struct mv_cap_regs __iomem      *cap_regs;
        struct mv_op_regs __iomem       *op_regs;
-       unsigned int                    phy_regs;
+       void __iomem                    *phy_regs;
        unsigned int                    max_eps;
        struct mv_dqh                   *ep_dqh;
        size_t                          ep_dqh_size;
index a3a7664..f0596ac 100644 (file)
@@ -2128,11 +2128,9 @@ static int __devexit mv_udc_remove(struct platform_device *dev)
 
        if (udc->cap_regs)
                iounmap(udc->cap_regs);
-       udc->cap_regs = NULL;
 
        if (udc->phy_regs)
-               iounmap((void *)udc->phy_regs);
-       udc->phy_regs = 0;
+               iounmap(udc->phy_regs);
 
        if (udc->status_req) {
                kfree(udc->status_req->req.buf);
@@ -2217,8 +2215,8 @@ static int __devinit mv_udc_probe(struct platform_device *dev)
                goto err_iounmap_capreg;
        }
 
-       udc->phy_regs = (unsigned int)ioremap(r->start, resource_size(r));
-       if (udc->phy_regs == 0) {
+       udc->phy_regs = ioremap(r->start, resource_size(r));
+       if (udc->phy_regs == NULL) {
                dev_err(&dev->dev, "failed to map phy I/O memory\n");
                retval = -EBUSY;
                goto err_iounmap_capreg;
@@ -2229,7 +2227,8 @@ static int __devinit mv_udc_probe(struct platform_device *dev)
        if (retval)
                goto err_iounmap_phyreg;
 
-       udc->op_regs = (struct mv_op_regs __iomem *)((u32)udc->cap_regs
+       udc->op_regs =
+               (struct mv_op_regs __iomem *)((unsigned long)udc->cap_regs
                + (readl(&udc->cap_regs->caplength_hciversion)
                        & CAPLENGTH_MASK));
        udc->max_eps = readl(&udc->cap_regs->dccparams) & DCCPARAMS_DEN_MASK;
@@ -2389,7 +2388,7 @@ err_free_dma:
 err_disable_clock:
        mv_udc_disable_internal(udc);
 err_iounmap_phyreg:
-       iounmap((void *)udc->phy_regs);
+       iounmap(udc->phy_regs);
 err_iounmap_capreg:
        iounmap(udc->cap_regs);
 err_put_clk:
@@ -2480,13 +2479,13 @@ static struct platform_driver udc_driver = {
        .shutdown       = mv_udc_shutdown,
        .driver         = {
                .owner  = THIS_MODULE,
-               .name   = "pxa-u2o",
+               .name   = "mv-udc",
 #ifdef CONFIG_PM
                .pm     = &mv_udc_pm_ops,
 #endif
        },
 };
-MODULE_ALIAS("platform:pxa-u2o");
+MODULE_ALIAS("platform:mv-udc");
 
 MODULE_DESCRIPTION(DRIVER_DESC);
 MODULE_AUTHOR("Chao Xie <chao.xie@marvell.com>");
index e9d9149..a642cf2 100644 (file)
@@ -42,9 +42,17 @@ struct mv_usb_platform_data {
        /* only valid for HCD. OTG or Host only*/
        unsigned int            mode;
 
-       int     (*phy_init)(unsigned int regbase);
-       void    (*phy_deinit)(unsigned int regbase);
+       int     (*phy_init)(void __iomem *regbase);
+       void    (*phy_deinit)(void __iomem *regbase);
        int     (*set_vbus)(unsigned int vbus);
 };
 
+#ifndef CONFIG_HAVE_CLK
+/* Dummy stub for clk framework */
+#define clk_get(dev, id)       NULL
+#define clk_put(clock)         do {} while (0)
+#define clk_enable(clock)      do {} while (0)
+#define clk_disable(clock)     do {} while (0)
+#endif
+
 #endif