diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2013-12-02 21:12:24 -0500 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2013-12-10 20:38:19 -0500 |
commit | a91be22c9222061281a380bd3f38ec9281919a2c (patch) | |
tree | b1d24be1500e03c28820cbd54138b239c63a86fd | |
parent | fee05eb3d2ce4813b5e9a70ab888d2bc0047f4e1 (diff) |
ARM: shmobile: r8a7778: add SSIx DMAEngine support
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
-rw-r--r-- | arch/arm/mach-shmobile/include/mach/r8a7778.h | 18 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/setup-r8a7778.c | 51 |
2 files changed, 69 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/include/mach/r8a7778.h b/arch/arm/mach-shmobile/include/mach/r8a7778.h index b497f932d04f..a3440e50fafa 100644 --- a/arch/arm/mach-shmobile/include/mach/r8a7778.h +++ b/arch/arm/mach-shmobile/include/mach/r8a7778.h | |||
@@ -27,6 +27,24 @@ enum { | |||
27 | HPBDMA_SLAVE_DUMMY, | 27 | HPBDMA_SLAVE_DUMMY, |
28 | HPBDMA_SLAVE_SDHI0_TX, | 28 | HPBDMA_SLAVE_SDHI0_TX, |
29 | HPBDMA_SLAVE_SDHI0_RX, | 29 | HPBDMA_SLAVE_SDHI0_RX, |
30 | HPBDMA_SLAVE_SSI0_TX, | ||
31 | HPBDMA_SLAVE_SSI0_RX, | ||
32 | HPBDMA_SLAVE_SSI1_TX, | ||
33 | HPBDMA_SLAVE_SSI1_RX, | ||
34 | HPBDMA_SLAVE_SSI2_TX, | ||
35 | HPBDMA_SLAVE_SSI2_RX, | ||
36 | HPBDMA_SLAVE_SSI3_TX, | ||
37 | HPBDMA_SLAVE_SSI3_RX, | ||
38 | HPBDMA_SLAVE_SSI4_TX, | ||
39 | HPBDMA_SLAVE_SSI4_RX, | ||
40 | HPBDMA_SLAVE_SSI5_TX, | ||
41 | HPBDMA_SLAVE_SSI5_RX, | ||
42 | HPBDMA_SLAVE_SSI6_TX, | ||
43 | HPBDMA_SLAVE_SSI6_RX, | ||
44 | HPBDMA_SLAVE_SSI7_TX, | ||
45 | HPBDMA_SLAVE_SSI7_RX, | ||
46 | HPBDMA_SLAVE_SSI8_TX, | ||
47 | HPBDMA_SLAVE_SSI8_RX, | ||
30 | HPBDMA_SLAVE_HPBIF0_TX, | 48 | HPBDMA_SLAVE_HPBIF0_TX, |
31 | HPBDMA_SLAVE_HPBIF0_RX, | 49 | HPBDMA_SLAVE_HPBIF0_RX, |
32 | HPBDMA_SLAVE_HPBIF1_TX, | 50 | HPBDMA_SLAVE_HPBIF1_TX, |
diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c index 81701cfb6cc6..e786338701cb 100644 --- a/arch/arm/mach-shmobile/setup-r8a7778.c +++ b/arch/arm/mach-shmobile/setup-r8a7778.c | |||
@@ -319,6 +319,29 @@ void __init r8a7778_add_dt_devices(void) | |||
319 | #define HPB_DMAE_ASYNCMDR_ASMD21_SINGLE BIT(1) /* SDHI0 */ | 319 | #define HPB_DMAE_ASYNCMDR_ASMD21_SINGLE BIT(1) /* SDHI0 */ |
320 | #define HPB_DMAE_ASYNCMDR_ASMD21_MULTI 0 /* SDHI0 */ | 320 | #define HPB_DMAE_ASYNCMDR_ASMD21_MULTI 0 /* SDHI0 */ |
321 | 321 | ||
322 | #define HPBDMA_SSI(_id) \ | ||
323 | { \ | ||
324 | .id = HPBDMA_SLAVE_SSI## _id ##_TX, \ | ||
325 | .addr = 0xffd91008 + (_id * 0x40), \ | ||
326 | .dcr = HPB_DMAE_DCR_CT | \ | ||
327 | HPB_DMAE_DCR_DIP | \ | ||
328 | HPB_DMAE_DCR_SPDS_32BIT | \ | ||
329 | HPB_DMAE_DCR_DMDL | \ | ||
330 | HPB_DMAE_DCR_DPDS_32BIT, \ | ||
331 | .port = _id + (_id << 8), \ | ||
332 | .dma_ch = (28 + _id), \ | ||
333 | }, { \ | ||
334 | .id = HPBDMA_SLAVE_SSI## _id ##_RX, \ | ||
335 | .addr = 0xffd9100c + (_id * 0x40), \ | ||
336 | .dcr = HPB_DMAE_DCR_CT | \ | ||
337 | HPB_DMAE_DCR_DIP | \ | ||
338 | HPB_DMAE_DCR_SMDL | \ | ||
339 | HPB_DMAE_DCR_SPDS_32BIT | \ | ||
340 | HPB_DMAE_DCR_DPDS_32BIT, \ | ||
341 | .port = _id + (_id << 8), \ | ||
342 | .dma_ch = (28 + _id), \ | ||
343 | } | ||
344 | |||
322 | #define HPBDMA_HPBIF(_id) \ | 345 | #define HPBDMA_HPBIF(_id) \ |
323 | { \ | 346 | { \ |
324 | .id = HPBDMA_SLAVE_HPBIF## _id ##_TX, \ | 347 | .id = HPBDMA_SLAVE_HPBIF## _id ##_TX, \ |
@@ -373,6 +396,16 @@ static const struct hpb_dmae_slave_config hpb_dmae_slaves[] = { | |||
373 | .dma_ch = 22, | 396 | .dma_ch = 22, |
374 | }, | 397 | }, |
375 | 398 | ||
399 | HPBDMA_SSI(0), | ||
400 | HPBDMA_SSI(1), | ||
401 | HPBDMA_SSI(2), | ||
402 | HPBDMA_SSI(3), | ||
403 | HPBDMA_SSI(4), | ||
404 | HPBDMA_SSI(5), | ||
405 | HPBDMA_SSI(6), | ||
406 | HPBDMA_SSI(7), | ||
407 | HPBDMA_SSI(8), | ||
408 | |||
376 | HPBDMA_HPBIF(0), | 409 | HPBDMA_HPBIF(0), |
377 | HPBDMA_HPBIF(1), | 410 | HPBDMA_HPBIF(1), |
378 | HPBDMA_HPBIF(2), | 411 | HPBDMA_HPBIF(2), |
@@ -387,22 +420,40 @@ static const struct hpb_dmae_slave_config hpb_dmae_slaves[] = { | |||
387 | static const struct hpb_dmae_channel hpb_dmae_channels[] = { | 420 | static const struct hpb_dmae_channel hpb_dmae_channels[] = { |
388 | HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_TX), /* ch. 21 */ | 421 | HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_TX), /* ch. 21 */ |
389 | HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_RX), /* ch. 22 */ | 422 | HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_RX), /* ch. 22 */ |
423 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI0_TX), /* ch. 28 */ | ||
424 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI0_RX), /* ch. 28 */ | ||
390 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF0_TX), /* ch. 28 */ | 425 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF0_TX), /* ch. 28 */ |
391 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF0_RX), /* ch. 28 */ | 426 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF0_RX), /* ch. 28 */ |
427 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI1_TX), /* ch. 29 */ | ||
428 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI1_RX), /* ch. 29 */ | ||
392 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF1_TX), /* ch. 29 */ | 429 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF1_TX), /* ch. 29 */ |
393 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF1_RX), /* ch. 29 */ | 430 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF1_RX), /* ch. 29 */ |
431 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI2_TX), /* ch. 30 */ | ||
432 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI2_RX), /* ch. 30 */ | ||
394 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF2_TX), /* ch. 30 */ | 433 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF2_TX), /* ch. 30 */ |
395 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF2_RX), /* ch. 30 */ | 434 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF2_RX), /* ch. 30 */ |
435 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI3_TX), /* ch. 31 */ | ||
436 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI3_RX), /* ch. 31 */ | ||
396 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF3_TX), /* ch. 31 */ | 437 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF3_TX), /* ch. 31 */ |
397 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF3_RX), /* ch. 31 */ | 438 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF3_RX), /* ch. 31 */ |
439 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI4_TX), /* ch. 32 */ | ||
440 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI4_RX), /* ch. 32 */ | ||
398 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF4_TX), /* ch. 32 */ | 441 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF4_TX), /* ch. 32 */ |
399 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF4_RX), /* ch. 32 */ | 442 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF4_RX), /* ch. 32 */ |
443 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI5_TX), /* ch. 33 */ | ||
444 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI5_RX), /* ch. 33 */ | ||
400 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF5_TX), /* ch. 33 */ | 445 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF5_TX), /* ch. 33 */ |
401 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF5_RX), /* ch. 33 */ | 446 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF5_RX), /* ch. 33 */ |
447 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI6_TX), /* ch. 34 */ | ||
448 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI6_RX), /* ch. 34 */ | ||
402 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF6_TX), /* ch. 34 */ | 449 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF6_TX), /* ch. 34 */ |
403 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF6_RX), /* ch. 34 */ | 450 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF6_RX), /* ch. 34 */ |
451 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI7_TX), /* ch. 35 */ | ||
452 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI7_RX), /* ch. 35 */ | ||
404 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF7_TX), /* ch. 35 */ | 453 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF7_TX), /* ch. 35 */ |
405 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF7_RX), /* ch. 35 */ | 454 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF7_RX), /* ch. 35 */ |
455 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI8_TX), /* ch. 36 */ | ||
456 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI8_RX), /* ch. 36 */ | ||
406 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF8_TX), /* ch. 36 */ | 457 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF8_TX), /* ch. 36 */ |
407 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF8_RX), /* ch. 36 */ | 458 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF8_RX), /* ch. 36 */ |
408 | }; | 459 | }; |