diff options
author | Sudhakar Rajashekhara <sudhakar.raj@ti.com> | 2009-05-21 07:41:35 -0400 |
---|---|---|
committer | Kevin Hilman <khilman@deeprootsystems.com> | 2009-08-26 03:56:56 -0400 |
commit | 60902a2cb12c3c1682ee7a04ad7448ec16dc0c29 (patch) | |
tree | ba754bff7fadd7106dc9f8549136a514177d0fd1 /arch/arm/mach-davinci/devices.c | |
parent | 4c5adde7943b982d22a7bf711654fbb5cb810667 (diff) |
davinci: EDMA: multiple CCs, channel mapping and API changes
- restructure to support multiple channel controllers by using
additional struct resources for each CC
- interface changes visible to EDMA clients
Introduce macros to build IDs from controller and channel number,
and to extract them. Modify the edma_alloc_slot function to take an
extra argument for the controller.
Also update ASoC drivers to use API. ASoC changes
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
- Move queue related mappings to dm<soc>.c
EDMA in DM355 and DM644x has two transfer controllers while DM646x
has four transfer controllers. Moving the queue to tc mapping and
queue priority mapping to dm<soc>.c will be helpful to probe these
mappings from platform device so that the machine_is_* testing will
be avoided.
- add channel mapping logic
Channel mapping logic is introduced in dm646x EDMA. This implies
that there is no fixed association for a channel number to a
parameter entry number. In other words, using the DMA channel
mapping registers (DCHMAPn), a PaRAM entry can be mapped to any
channel. While in the case of dm644x and dm355 there is a fixed
mapping between the EDMA channel and Param entry number.
Signed-off-by: Naresh Medisetty <naresh@ti.com>
Signed-off-by: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
Reviewed-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch/arm/mach-davinci/devices.c')
-rw-r--r-- | arch/arm/mach-davinci/devices.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/arm/mach-davinci/devices.c b/arch/arm/mach-davinci/devices.c index de16f347566a..7a2f8ae89be2 100644 --- a/arch/arm/mach-davinci/devices.c +++ b/arch/arm/mach-davinci/devices.c | |||
@@ -82,10 +82,10 @@ static struct resource mmcsd0_resources[] = { | |||
82 | }, | 82 | }, |
83 | /* DMA channels: RX, then TX */ | 83 | /* DMA channels: RX, then TX */ |
84 | { | 84 | { |
85 | .start = DAVINCI_DMA_MMCRXEVT, | 85 | .start = EDMA_CTLR_CHAN(0, DAVINCI_DMA_MMCRXEVT), |
86 | .flags = IORESOURCE_DMA, | 86 | .flags = IORESOURCE_DMA, |
87 | }, { | 87 | }, { |
88 | .start = DAVINCI_DMA_MMCTXEVT, | 88 | .start = EDMA_CTLR_CHAN(0, DAVINCI_DMA_MMCTXEVT), |
89 | .flags = IORESOURCE_DMA, | 89 | .flags = IORESOURCE_DMA, |
90 | }, | 90 | }, |
91 | }; | 91 | }; |
@@ -119,10 +119,10 @@ static struct resource mmcsd1_resources[] = { | |||
119 | }, | 119 | }, |
120 | /* DMA channels: RX, then TX */ | 120 | /* DMA channels: RX, then TX */ |
121 | { | 121 | { |
122 | .start = 30, /* rx */ | 122 | .start = EDMA_CTLR_CHAN(0, 30), /* rx */ |
123 | .flags = IORESOURCE_DMA, | 123 | .flags = IORESOURCE_DMA, |
124 | }, { | 124 | }, { |
125 | .start = 31, /* tx */ | 125 | .start = EDMA_CTLR_CHAN(0, 31), /* tx */ |
126 | .flags = IORESOURCE_DMA, | 126 | .flags = IORESOURCE_DMA, |
127 | }, | 127 | }, |
128 | }; | 128 | }; |