> ---
> This patch is refreshed based on David's recommendations at
> [1] and [2].
>
> [1]
http://marc.info/?l=linux-omap&m=123904265231360&w=2
> [2]
http://www.mail-archive.com/linux-omap@vger.kernel.org/msg13891.html
>
> arch/arm/mach-omap2/board-omap3evm.c | 3 +++
> arch/arm/mach-omap2/usb-musb.c | 21 ---------------------
> drivers/usb/musb/Kconfig | 1 +
> 3 files changed, 4 insertions(+), 21 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
> index 595beac..ad3c78c 100644
> --- a/arch/arm/mach-omap2/board-omap3evm.c
> +++ b/arch/arm/mach-omap2/board-omap3evm.c
> @@ -25,6 +25,7 @@
> #include <linux/spi/spi.h>
> #include <linux/spi/ads7846.h>
> #include <linux/i2c/twl4030.h>
> +#include <linux/usb/otg.h>
>
> #include <mach/hardware.h>
> #include <asm/mach-types.h>
> @@ -307,6 +308,8 @@ static void __init omap3_evm_init(void)
> ARRAY_SIZE(omap3evm_spi_board_info));
>
> omap_serial_init();
> + /* OMAP3EVM uses ISP1504 phy and thus has to register nop transceiver */
> + usb_nop_xceiv_register();
> usb_musb_init();
> usb_ehci_init(EHCI_HCD_OMAP_MODE_PHY, true, true, 57, 61);
> ads7846_dev_init();
> diff --git a/arch/arm/mach-omap2/usb-musb.c b/arch/arm/mach-omap2/usb-musb.c
> index d85296d..739e59e 100644
> --- a/arch/arm/mach-omap2/usb-musb.c
> +++ b/arch/arm/mach-omap2/usb-musb.c
> @@ -155,20 +155,6 @@ static struct platform_device musb_device = {
> .resource = musb_resources,
> };
>
> -#ifdef CONFIG_NOP_USB_XCEIV
> -static u64 nop_xceiv_dmamask = DMA_BIT_MASK(32);
> -
> -static struct platform_device nop_xceiv_device = {
> - .name = "nop_usb_xceiv",
> - .id = -1,
> - .dev = {
> - .dma_mask = &nop_xceiv_dmamask,
> - .coherent_dma_mask = DMA_BIT_MASK(32),
> - .platform_data = NULL,
> - },
> -};
> -#endif
> -
> void __init usb_musb_init(void)
> {
> if (cpu_is_omap243x())
> @@ -183,13 +169,6 @@ void __init usb_musb_init(void)
> */
> musb_plat.clock = "ick";
>
> -#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;
> diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
> index 70073b1..f822fd5 100644
> --- a/drivers/usb/musb/Kconfig
> +++ b/drivers/usb/musb/Kconfig
> @@ -11,6 +11,7 @@ config USB_MUSB_HDRC
> depends on (USB || USB_GADGET) && HAVE_CLK
> depends on !SUPERH
> select NOP_USB_XCEIV if ARCH_DAVINCI
> + select NOP_USB_XCEIV if MACH_OMAP3EVM
> select TWL4030_USB if MACH_OMAP_3430SDP
> select USB_OTG_UTILS
> tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)'
> --
> 1.6.2.4
>
>