diff options
Diffstat (limited to 'arch/arm/mach-s3c2440/dma.c')
-rw-r--r-- | arch/arm/mach-s3c2440/dma.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c2440/dma.c b/arch/arm/mach-s3c2440/dma.c index 8e51137620f2..2bb2926554c8 100644 --- a/arch/arm/mach-s3c2440/dma.c +++ b/arch/arm/mach-s3c2440/dma.c | |||
@@ -147,8 +147,52 @@ static struct s3c24xx_dma_selection __initdata s3c2440_dma_sel = { | |||
147 | .map_size = ARRAY_SIZE(s3c2440_dma_mappings), | 147 | .map_size = ARRAY_SIZE(s3c2440_dma_mappings), |
148 | }; | 148 | }; |
149 | 149 | ||
150 | static struct s3c24xx_dma_order __initdata s3c2440_dma_order = { | ||
151 | .channels = { | ||
152 | [DMACH_SDI] = { | ||
153 | .list = { | ||
154 | [0] = 3 | DMA_CH_VALID, | ||
155 | [1] = 2 | DMA_CH_VALID, | ||
156 | [2] = 1 | DMA_CH_VALID, | ||
157 | [3] = 0 | DMA_CH_VALID, | ||
158 | }, | ||
159 | }, | ||
160 | [DMACH_I2S_IN] = { | ||
161 | .list = { | ||
162 | [0] = 1 | DMA_CH_VALID, | ||
163 | [1] = 2 | DMA_CH_VALID, | ||
164 | }, | ||
165 | }, | ||
166 | [DMACH_I2S_OUT] = { | ||
167 | .list = { | ||
168 | [0] = 2 | DMA_CH_VALID, | ||
169 | [1] = 1 | DMA_CH_VALID, | ||
170 | }, | ||
171 | }, | ||
172 | [DMACH_PCM_IN] = { | ||
173 | .list = { | ||
174 | [0] = 2 | DMA_CH_VALID, | ||
175 | [1] = 1 | DMA_CH_VALID, | ||
176 | }, | ||
177 | }, | ||
178 | [DMACH_PCM_OUT] = { | ||
179 | .list = { | ||
180 | [0] = 1 | DMA_CH_VALID, | ||
181 | [1] = 3 | DMA_CH_VALID, | ||
182 | }, | ||
183 | }, | ||
184 | [DMACH_MIC_IN] = { | ||
185 | .list = { | ||
186 | [0] = 3 | DMA_CH_VALID, | ||
187 | [1] = 2 | DMA_CH_VALID, | ||
188 | }, | ||
189 | }, | ||
190 | }, | ||
191 | }; | ||
192 | |||
150 | static int s3c2440_dma_add(struct sys_device *sysdev) | 193 | static int s3c2440_dma_add(struct sys_device *sysdev) |
151 | { | 194 | { |
195 | s3c24xx_dma_order_set(&s3c2440_dma_order); | ||
152 | return s3c24xx_dma_init_map(&s3c2440_dma_sel); | 196 | return s3c24xx_dma_init_map(&s3c2440_dma_sel); |
153 | } | 197 | } |
154 | 198 | ||