usb: otg: TWL6030: Introduce the twl6030_phy_suspend function.
authorHema HK <hemahk@ti.com>
Thu, 17 Feb 2011 06:36:08 +0000 (12:06 +0530)
committerFelipe Balbi <balbi@ti.com>
Fri, 18 Feb 2011 12:05:50 +0000 (14:05 +0200)
Introduce the twl6030_phy_suspend function and assign to otg.set_suspend
function pointer.
This function is used by the musb-omap2430 platform driver
during suspend/resume.

Signed-off-by: Hema HK <hemahk@ti.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/otg/twl6030-usb.c

index 88989e61430ca2bc26dea2f58a7fcb7bd37ff328..b4eda02c97f71f599afd973e2ec4db96faf964d5 100644 (file)
@@ -177,6 +177,17 @@ static void twl6030_phy_shutdown(struct otg_transceiver *x)
        pdata->phy_power(twl->dev, 0, 0);
 }
 
+static int twl6030_phy_suspend(struct otg_transceiver *x, int suspend)
+{
+       struct twl6030_usb *twl = xceiv_to_twl(x);
+       struct device *dev = twl->dev;
+       struct twl4030_usb_data *pdata = dev->platform_data;
+
+       pdata->phy_suspend(dev, suspend);
+
+       return 0;
+}
+
 static int twl6030_usb_ldo_init(struct twl6030_usb *twl)
 {
 
@@ -388,6 +399,7 @@ static int __devinit twl6030_usb_probe(struct platform_device *pdev)
        twl->otg.set_vbus       = twl6030_set_vbus;
        twl->otg.init           = twl6030_phy_init;
        twl->otg.shutdown       = twl6030_phy_shutdown;
+       twl->otg.set_suspend    = twl6030_phy_suspend;
 
        /* init spinlock for workqueue */
        spin_lock_init(&twl->lock);
@@ -432,6 +444,7 @@ static int __devinit twl6030_usb_probe(struct platform_device *pdev)
 
        twl->asleep = 0;
        pdata->phy_init(dev);
+       twl6030_phy_suspend(&twl->otg, 0);
        twl6030_enable_irq(&twl->otg);
        dev_info(&pdev->dev, "Initialized TWL6030 USB module\n");