From 56b89b6b7512ce2c4e3ab70f8f041f4673e5fd7e Mon Sep 17 00:00:00 2001 From: David Brownell Date: Mon, 11 Dec 2006 13:25:08 -0800 Subject: [PATCH] musb_hdrc: tusb dma patch, minor 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 --- arch/arm/mach-omap2/board-h4.c | 5 +++-- arch/arm/mach-omap2/usb-tusb6010.c | 16 ++++++++++++++++ drivers/usb/musb/tusb6010_omap.c | 8 -------- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c index 7fbf378811b..332756a5bf5 100644 --- a/arch/arm/mach-omap2/board-h4.c +++ b/arch/arm/mach-omap2/board-h4.c @@ -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; } diff --git a/arch/arm/mach-omap2/usb-tusb6010.c b/arch/arm/mach-omap2/usb-tusb6010.c index 5f276c5e442..497f7333c23 100644 --- a/arch/arm/mach-omap2/usb-tusb6010.c +++ b/arch/arm/mach-omap2/usb-tusb6010.c @@ -17,6 +17,7 @@ #include #include +#include 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); diff --git a/drivers/usb/musb/tusb6010_omap.c b/drivers/usb/musb/tusb6010_omap.c index 971d8b68062..c27f9241707 100644 --- a/drivers/usb/musb/tusb6010_omap.c +++ b/drivers/usb/musb/tusb6010_omap.c @@ -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); -- 2.41.0