mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
USB: otg: twl4030: fix wrong assumption of starting state
The reset state of twl4030-usb is not sleeping, it starts up awaken and we need to disable it if we have booted with a disconnected cable to avoid over consumption on the default state. To avoid problems later, we read the current state of the transceiver from the PHY_PWR_CTRL register. The bootloader can, anyways, put the device to sleep before us. Tested on a custom OMAP board. Signed-off-by: Felipe Balbi <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
parent
7c81aafaf0
commit
461c317705
1 changed files with 5 additions and 1 deletions
|
|
@ -550,6 +550,7 @@ static int __devinit twl4030_usb_probe(struct platform_device *pdev)
|
|||
struct twl4030_usb_data *pdata = pdev->dev.platform_data;
|
||||
struct twl4030_usb *twl;
|
||||
int status, err;
|
||||
u8 pwr;
|
||||
|
||||
if (!pdata) {
|
||||
dev_dbg(&pdev->dev, "platform_data not available\n");
|
||||
|
|
@ -568,7 +569,10 @@ static int __devinit twl4030_usb_probe(struct platform_device *pdev)
|
|||
twl->otg.set_peripheral = twl4030_set_peripheral;
|
||||
twl->otg.set_suspend = twl4030_set_suspend;
|
||||
twl->usb_mode = pdata->usb_mode;
|
||||
twl->asleep = 1;
|
||||
|
||||
pwr = twl4030_usb_read(twl, PHY_PWR_CTRL);
|
||||
|
||||
twl->asleep = (pwr & PHY_PWR_PHYPWD);
|
||||
|
||||
/* init spinlock for workqueue */
|
||||
spin_lock_init(&twl->lock);
|
||||
|
|
|
|||
Loading…
Reference in a new issue