====== cut here ==============
[PATCH] musb: refresh NOP transceiver support for OMAP35x EVM
Removing NOP support code from usb-musb.c and adding its support at
Drivers/usb/musb/omap2430.c.
Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
---
It is against latest l-o tree + Queued patches from David (21 patches).
arch/arm/mach-omap2/usb-musb.c | 21 ---------------------
drivers/usb/musb/omap2430.c | 4 ++++
include/linux/usb/otg.h | 6 +++++-
3 files changed, 9 insertions(+), 22 deletions(-)
@@ -145,20 +145,6 @@ static struct platform_device musb_device = {
.resource = musb_resources,
};
-#ifdef CONFIG_NOP_USB_XCEIV
-static u64 nop_xceiv_dmamask = DMA_32BIT_MASK;
-
-static struct platform_device nop_xceiv_device = {
- .name = "nop_usb_xceiv",
- .id = -1,
- .dev = {
- .dma_mask = &nop_xceiv_dmamask,
- .coherent_dma_mask = DMA_32BIT_MASK,
- .platform_data = NULL,
- },
-};
-#endif
-
void __init usb_musb_init(void)
{
if (cpu_is_omap243x()) {
@@ -171,13 +157,6 @@ void __init usb_musb_init(void)
musb_resources[0].end = musb_resources[0].start + SZ_8K - 1;
-#ifdef CONFIG_NOP_USB_XCEIV
- if (platform_device_register(&nop_xceiv_device) < 0) {
- printk(KERN_ERR "Unable to register NOP-XCEIV device\n");
- return;
- }
-#endif
-
if (platform_device_register(&musb_device) < 0) {
printk(KERN_ERR "Unable to register HS-USB (MUSB) device\n");
return;
@@ -209,6 +209,9 @@ int __init musb_platform_init(struct musb *musb)
omap_cfg_reg(AE5_2430_USB0HS_STP);
#endif
+ /* OMAP35x EVM needs to regsiter NOP transceiver */
+ usb_nop_xceiv_register();
+
/* We require some kind of external transceiver, hooked
* up through ULPI. TWL4030-family PMICs include one,
* which needs a driver, drivers aren't always needed.
@@ -313,5 +316,6 @@ int musb_platform_exit(struct musb *musb)
clk_put(musb->clock);
musb->clock = 0;
+ usb_nop_xceiv_unregister();
return 0;
}
@@ -82,9 +82,13 @@ struct otg_transceiver {
extern int otg_set_transceiver(struct otg_transceiver *);
/* sometimes transceivers are accessed only through e.g. ULPI */
+#ifdef CONFIG_NOP_USB_XCEIV
extern void usb_nop_xceiv_register(void);
extern void usb_nop_xceiv_unregister(void);
-
+#else
+static inline void usb_nop_xceiv_register(void) {}
+static inline void usb_nop_xceiv_unregister(void) {}
+#endif
/* for usb host and peripheral controller drivers */
extern struct otg_transceiver *otg_get_transceiver(void);