The twl6025 uses a different regulator for USB than the 6030 so select
the correct regulator name depending on the subclass of device.

Since V1

Use features passed via platform data instead of global variable.

Signed-off-by: Graeme Gregory <g...@slimlogic.co.uk>
---
 drivers/usb/otg/twl6030-usb.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/drivers/usb/otg/twl6030-usb.c b/drivers/usb/otg/twl6030-usb.c
index 6e920de..2ad69a4 100644
--- a/drivers/usb/otg/twl6030-usb.c
+++ b/drivers/usb/otg/twl6030-usb.c
@@ -99,6 +99,7 @@ struct twl6030_usb {
        u8                      linkstat;
        u8                      asleep;
        bool                    irq_enabled;
+       unsigned long           features;
 };
 
 #define xceiv_to_twl(x)                container_of((x), struct twl6030_usb, 
otg)
@@ -190,6 +191,12 @@ static int twl6030_phy_suspend(struct otg_transceiver *x, 
int suspend)
 
 static int twl6030_usb_ldo_init(struct twl6030_usb *twl)
 {
+       char *regulator_name;
+
+       if (twl->features & TWL6025_SUBCLASS)
+               regulator_name = "ldousb";
+       else
+               regulator_name = "vusb";
 
        /* Set to OTG_REV 1.3 and turn on the ID_WAKEUP_COMP */
        twl6030_writeb(twl, TWL6030_MODULE_ID0 , 0x1, TWL6030_BACKUP_REG);
@@ -200,7 +207,7 @@ static int twl6030_usb_ldo_init(struct twl6030_usb *twl)
        /* Program MISC2 register and set bit VUSB_IN_VBAT */
        twl6030_writeb(twl, TWL6030_MODULE_ID0 , 0x10, TWL6030_MISC2);
 
-       twl->usb3v3 = regulator_get(twl->dev, "vusb");
+       twl->usb3v3 = regulator_get(twl->dev, regulator_name);
        if (IS_ERR(twl->usb3v3))
                return -ENODEV;
 
@@ -395,6 +402,7 @@ static int __devinit twl6030_usb_probe(struct 
platform_device *pdev)
        twl->dev                = &pdev->dev;
        twl->irq1               = platform_get_irq(pdev, 0);
        twl->irq2               = platform_get_irq(pdev, 1);
+       twl->features           = pdata->features;
        twl->otg.dev            = twl->dev;
        twl->otg.label          = "twl6030";
        twl->otg.set_host       = twl6030_set_host;
-- 
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to