usb: musb: Set transceiver interface type
Program the OTG_INTERFSEL register based on transcevier type passed from board file. Adapt signature of musb_platform_init() function for davinci, blackfin and tusb6010. Signed-off-by: Maulik Mankad <x0082077@ti.com> Cc: David Brownell <david-b@pacbell.net> Cc: Sergei Shtylyov <sshtylyov@mvista.com> Cc: Olof Johansson <olof@lixom.net> Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
e6c213b296
commit
de2e1b0c98
|
@ -270,7 +270,7 @@ int musb_platform_set_mode(struct musb *musb, u8 musb_mode)
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
int __init musb_platform_init(struct musb *musb)
|
int __init musb_platform_init(struct musb *musb, void *board_data)
|
||||||
{
|
{
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -376,7 +376,7 @@ int musb_platform_set_mode(struct musb *musb, u8 mode)
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
int __init musb_platform_init(struct musb *musb)
|
int __init musb_platform_init(struct musb *musb, void *board_data)
|
||||||
{
|
{
|
||||||
void __iomem *tibase = musb->ctrl_base;
|
void __iomem *tibase = musb->ctrl_base;
|
||||||
u32 revision;
|
u32 revision;
|
||||||
|
|
|
@ -1943,7 +1943,7 @@ bad_config:
|
||||||
* isp1504, non-OTG, etc) mostly hooking up through ULPI.
|
* isp1504, non-OTG, etc) mostly hooking up through ULPI.
|
||||||
*/
|
*/
|
||||||
musb->isr = generic_interrupt;
|
musb->isr = generic_interrupt;
|
||||||
status = musb_platform_init(musb);
|
status = musb_platform_init(musb, plat->board_data);
|
||||||
if (status < 0)
|
if (status < 0)
|
||||||
goto fail2;
|
goto fail2;
|
||||||
|
|
||||||
|
|
|
@ -608,7 +608,7 @@ extern int musb_platform_get_vbus_status(struct musb *musb);
|
||||||
#define musb_platform_get_vbus_status(x) 0
|
#define musb_platform_get_vbus_status(x) 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern int __init musb_platform_init(struct musb *musb);
|
extern int __init musb_platform_init(struct musb *musb, void *board_data);
|
||||||
extern int musb_platform_exit(struct musb *musb);
|
extern int musb_platform_exit(struct musb *musb);
|
||||||
|
|
||||||
#endif /* __MUSB_CORE_H__ */
|
#endif /* __MUSB_CORE_H__ */
|
||||||
|
|
|
@ -199,9 +199,10 @@ int musb_platform_set_mode(struct musb *musb, u8 musb_mode)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int __init musb_platform_init(struct musb *musb)
|
int __init musb_platform_init(struct musb *musb, void *board_data)
|
||||||
{
|
{
|
||||||
u32 l;
|
u32 l;
|
||||||
|
struct omap_musb_board_data *data = board_data;
|
||||||
|
|
||||||
#if defined(CONFIG_ARCH_OMAP2430)
|
#if defined(CONFIG_ARCH_OMAP2430)
|
||||||
omap_cfg_reg(AE5_2430_USB0HS_STP);
|
omap_cfg_reg(AE5_2430_USB0HS_STP);
|
||||||
|
@ -235,7 +236,15 @@ int __init musb_platform_init(struct musb *musb)
|
||||||
musb_writel(musb->mregs, OTG_SYSCONFIG, l);
|
musb_writel(musb->mregs, OTG_SYSCONFIG, l);
|
||||||
|
|
||||||
l = musb_readl(musb->mregs, OTG_INTERFSEL);
|
l = musb_readl(musb->mregs, OTG_INTERFSEL);
|
||||||
l |= ULPI_12PIN;
|
|
||||||
|
if (data->interface_type == MUSB_INTERFACE_UTMI) {
|
||||||
|
/* OMAP4 uses Internal PHY GS70 which uses UTMI interface */
|
||||||
|
l &= ~ULPI_12PIN; /* Disable ULPI */
|
||||||
|
l |= UTMI_8BIT; /* Enable UTMI */
|
||||||
|
} else {
|
||||||
|
l |= ULPI_12PIN;
|
||||||
|
}
|
||||||
|
|
||||||
musb_writel(musb->mregs, OTG_INTERFSEL, l);
|
musb_writel(musb->mregs, OTG_INTERFSEL, l);
|
||||||
|
|
||||||
pr_debug("HS USB OTG: revision 0x%x, sysconfig 0x%02x, "
|
pr_debug("HS USB OTG: revision 0x%x, sysconfig 0x%02x, "
|
||||||
|
|
|
@ -1104,7 +1104,7 @@ err:
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
int __init musb_platform_init(struct musb *musb)
|
int __init musb_platform_init(struct musb *musb, void *board_data)
|
||||||
{
|
{
|
||||||
struct platform_device *pdev;
|
struct platform_device *pdev;
|
||||||
struct resource *mem;
|
struct resource *mem;
|
||||||
|
|
Loading…
Reference in New Issue