musb_hdrc: tusb dma patch, minor
authorDavid Brownell <dbrownell@users.sourceforge.net>
Mon, 11 Dec 2006 21:25:08 +0000 (13:25 -0800)
committerTony Lindgren <tony@atomide.com>
Mon, 11 Dec 2006 21:25:08 +0000 (13:25 -0800)
Move all DMAREQ for TUSB6010 into its chip setup; it shouldn't be in
either the board-specific code, or the tusb6010 glue.  (Note, we still
aren't passing the "which channels" info to the driver...)

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
arch/arm/mach-omap2/board-h4.c
arch/arm/mach-omap2/usb-tusb6010.c
drivers/usb/musb/tusb6010_omap.c

index 7fbf378..332756a 100644 (file)
@@ -474,9 +474,10 @@ static void __init tusb_evm_setup(void)
                 */
                omap_cfg_reg(J15_24XX_GPIO99);
                irq = 99;
-               omap_cfg_reg(AA10_242X_DMAREQ0);
-               omap_cfg_reg(AA6_242X_DMAREQ1);
                dmachan = (1 << 1) | (1 << 0);
+#if !(defined(CONFIG_MTD_OMAP_NOR) || defined(CONFIG_MTD_OMAP_NOR_MODULE))
+               dmachan |= (1 << 5) | (1 << 4) (1 << 3) | (1 << 2);
+#endif
                break;
        }
 
index 5f276c5..497f733 100644 (file)
@@ -17,6 +17,7 @@
 
 #include <asm/arch/gpmc.h>
 #include <asm/arch/gpio.h>
+#include <asm/arch/mux.h>
 
 
 static u8              async_cs, sync_cs;
@@ -322,6 +323,21 @@ tusb6010_setup_interface(struct musb_hdrc_platform_data *data,
        /* REVISIT let the driver know what DMA channels work */
        if (!dmachan)
                tusb_device.dev.dma_mask = NULL;
+       else {
+               /* assume OMAP 2420 ES2.0 and later */
+               if (dmachan & (1 << 0))
+                       omap_cfg_reg(AA10_242X_DMAREQ0);
+               if (dmachan & (1 << 1))
+                       omap_cfg_reg(AA6_242X_DMAREQ1);
+               if (dmachan & (1 << 2))
+                       omap_cfg_reg(E4_242X_DMAREQ2);
+               if (dmachan & (1 << 3))
+                       omap_cfg_reg(G4_242X_DMAREQ3);
+               if (dmachan & (1 << 4))
+                       omap_cfg_reg(D3_242X_DMAREQ4);
+               if (dmachan & (1 << 5))
+                       omap_cfg_reg(E3_242X_DMAREQ5);
+       }
 
        /* so far so good ... register the device */
        status = platform_device_register(&tusb_device);
index 971d8b6..c27f924 100644 (file)
@@ -629,14 +629,6 @@ tusb_omap_dma_init(struct musb *musb, void __iomem *base)
        int                     i;
 
        /* REVISIT: Get dmareq lines used from board-*.c */
-#ifdef CONFIG_ARCH_OMAP2
-       omap_cfg_reg(AA10_242X_DMAREQ0);
-       omap_cfg_reg(AA6_242X_DMAREQ1);
-       omap_cfg_reg(E4_242X_DMAREQ2);
-       omap_cfg_reg(G4_242X_DMAREQ3);
-       omap_cfg_reg(D3_242X_DMAREQ4);
-       omap_cfg_reg(E3_242X_DMAREQ5);
-#endif
 
        musb_writel(musb->ctrl_base, TUSB_DMA_INT_MASK, 0x7fffffff);
        musb_writel(musb->ctrl_base, TUSB_DMA_EP_MAP, 0);