usb: musb: Add 'extvbus' in musb_hdrc_platform_data
Some of the board might use external Vbus power supply on musb interface which would require to program ULPI_BUSCONTROL register. Adding 'extvbus' flag which can be set from such boards which will be checked at musb driver files before programming ULPI_BUSCONTROL. Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com> Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
51bf0d0e6c
commit
5fc4e77911
|
@ -2031,6 +2031,7 @@ bad_config:
|
|||
/* host side needs more setup */
|
||||
if (is_host_enabled(musb)) {
|
||||
struct usb_hcd *hcd = musb_to_hcd(musb);
|
||||
u8 busctl;
|
||||
|
||||
otg_set_host(musb->xceiv, &hcd->self);
|
||||
|
||||
|
@ -2038,6 +2039,13 @@ bad_config:
|
|||
hcd->self.otg_port = 1;
|
||||
musb->xceiv->host = &hcd->self;
|
||||
hcd->power_budget = 2 * (plat->power ? : 250);
|
||||
|
||||
/* program PHY to use external vBus if required */
|
||||
if (plat->extvbus) {
|
||||
busctl = musb_readb(musb->mregs, MUSB_ULPI_BUSCONTROL);
|
||||
busctl |= MUSB_ULPI_USE_EXTVBUS;
|
||||
musb_writeb(musb->mregs, MUSB_ULPI_BUSCONTROL, busctl);
|
||||
}
|
||||
}
|
||||
|
||||
/* For the host-only role, we can activate right away.
|
||||
|
|
|
@ -72,6 +72,10 @@
|
|||
#define MUSB_DEVCTL_HR 0x02
|
||||
#define MUSB_DEVCTL_SESSION 0x01
|
||||
|
||||
/* MUSB ULPI VBUSCONTROL */
|
||||
#define MUSB_ULPI_USE_EXTVBUS 0x01
|
||||
#define MUSB_ULPI_USE_EXTVBUSIND 0x02
|
||||
|
||||
/* TESTMODE */
|
||||
#define MUSB_TEST_FORCE_HOST 0x80
|
||||
#define MUSB_TEST_FIFO_ACCESS 0x40
|
||||
|
@ -246,6 +250,7 @@
|
|||
|
||||
/* REVISIT: vctrl/vstatus: optional vendor utmi+phy register at 0x68 */
|
||||
#define MUSB_HWVERS 0x6C /* 8 bit */
|
||||
#define MUSB_ULPI_BUSCONTROL 0x70 /* 8 bit */
|
||||
|
||||
#define MUSB_EPINFO 0x78 /* 8 bit */
|
||||
#define MUSB_RAMINFO 0x79 /* 8 bit */
|
||||
|
|
|
@ -76,6 +76,9 @@ struct musb_hdrc_platform_data {
|
|||
/* (HOST or OTG) msec/2 after VBUS on till power good */
|
||||
u8 potpgt;
|
||||
|
||||
/* (HOST or OTG) program PHY for external Vbus */
|
||||
unsigned extvbus:1;
|
||||
|
||||
/* Power the device on or off */
|
||||
int (*set_power)(int state);
|
||||
|
||||
|
|
Loading…
Reference in New Issue