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:
Родитель
e6c213b296
Коммит
de2e1b0c98
|
@ -270,7 +270,7 @@ int musb_platform_set_mode(struct musb *musb, u8 musb_mode)
|
|||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
u32 revision;
|
||||
|
|
|
@ -1943,7 +1943,7 @@ bad_config:
|
|||
* isp1504, non-OTG, etc) mostly hooking up through ULPI.
|
||||
*/
|
||||
musb->isr = generic_interrupt;
|
||||
status = musb_platform_init(musb);
|
||||
status = musb_platform_init(musb, plat->board_data);
|
||||
if (status < 0)
|
||||
goto fail2;
|
||||
|
||||
|
|
|
@ -608,7 +608,7 @@ extern int musb_platform_get_vbus_status(struct musb *musb);
|
|||
#define musb_platform_get_vbus_status(x) 0
|
||||
#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);
|
||||
|
||||
#endif /* __MUSB_CORE_H__ */
|
||||
|
|
|
@ -199,9 +199,10 @@ int musb_platform_set_mode(struct musb *musb, u8 musb_mode)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int __init musb_platform_init(struct musb *musb)
|
||||
int __init musb_platform_init(struct musb *musb, void *board_data)
|
||||
{
|
||||
u32 l;
|
||||
struct omap_musb_board_data *data = board_data;
|
||||
|
||||
#if defined(CONFIG_ARCH_OMAP2430)
|
||||
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);
|
||||
|
||||
l = musb_readl(musb->mregs, OTG_INTERFSEL);
|
||||
|
||||
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);
|
||||
|
||||
pr_debug("HS USB OTG: revision 0x%x, sysconfig 0x%02x, "
|
||||
|
|
|
@ -1104,7 +1104,7 @@ err:
|
|||
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 resource *mem;
|
||||
|
|
Загрузка…
Ссылка в новой задаче