aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2013-12-10 19:51:04 -0500
committerSimon Horman <horms+renesas@verge.net.au>2013-12-12 08:02:14 -0500
commitaa9938644c63100219c252b9d330b95427082cef (patch)
treea1e8157daf803a54d3e2ec6c4b272a20c290a544
parent0fe35077a92ce45acfa2b7259bba516757fb0c3f (diff)
ARM: shmobile: r8a7778: add USB Func DMAEngine support
HPB-DMAC has 2 channel for USB Func (= D0/D1) D0 is used as Tx, D1 is used as Rx on this patch 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.h2
-rw-r--r--arch/arm/mach-shmobile/setup-r8a7778.c18
2 files changed, 20 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/include/mach/r8a7778.h b/arch/arm/mach-shmobile/include/mach/r8a7778.h
index 72c9d37d377d..f4076a50e970 100644
--- a/arch/arm/mach-shmobile/include/mach/r8a7778.h
+++ b/arch/arm/mach-shmobile/include/mach/r8a7778.h
@@ -62,6 +62,8 @@ enum {
62 HPBDMA_SLAVE_HPBIF7_RX, 62 HPBDMA_SLAVE_HPBIF7_RX,
63 HPBDMA_SLAVE_HPBIF8_TX, 63 HPBDMA_SLAVE_HPBIF8_TX,
64 HPBDMA_SLAVE_HPBIF8_RX, 64 HPBDMA_SLAVE_HPBIF8_RX,
65 HPBDMA_SLAVE_USBFUNC_TX,
66 HPBDMA_SLAVE_USBFUNC_RX,
65}; 67};
66 68
67extern void r8a7778_add_standard_devices(void); 69extern void r8a7778_add_standard_devices(void);
diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c
index e786338701cb..7ea6308e5da8 100644
--- a/arch/arm/mach-shmobile/setup-r8a7778.c
+++ b/arch/arm/mach-shmobile/setup-r8a7778.c
@@ -394,6 +394,22 @@ static const struct hpb_dmae_slave_config hpb_dmae_slaves[] = {
394 .port = 0x0D0C, 394 .port = 0x0D0C,
395 .flags = HPB_DMAE_SET_ASYNC_RESET | HPB_DMAE_SET_ASYNC_MODE, 395 .flags = HPB_DMAE_SET_ASYNC_RESET | HPB_DMAE_SET_ASYNC_MODE,
396 .dma_ch = 22, 396 .dma_ch = 22,
397 }, {
398 .id = HPBDMA_SLAVE_USBFUNC_TX, /* for D0 */
399 .addr = 0xffe60018,
400 .dcr = HPB_DMAE_DCR_SPDS_32BIT |
401 HPB_DMAE_DCR_DMDL |
402 HPB_DMAE_DCR_DPDS_32BIT,
403 .port = 0x0000,
404 .dma_ch = 14,
405 }, {
406 .id = HPBDMA_SLAVE_USBFUNC_RX, /* for D1 */
407 .addr = 0xffe6001c,
408 .dcr = HPB_DMAE_DCR_SMDL |
409 HPB_DMAE_DCR_SPDS_32BIT |
410 HPB_DMAE_DCR_DPDS_32BIT,
411 .port = 0x0101,
412 .dma_ch = 15,
397 }, 413 },
398 414
399 HPBDMA_SSI(0), 415 HPBDMA_SSI(0),
@@ -418,6 +434,8 @@ static const struct hpb_dmae_slave_config hpb_dmae_slaves[] = {
418}; 434};
419 435
420static const struct hpb_dmae_channel hpb_dmae_channels[] = { 436static const struct hpb_dmae_channel hpb_dmae_channels[] = {
437 HPB_DMAE_CHANNEL(0x7c, HPBDMA_SLAVE_USBFUNC_TX), /* ch. 14 */
438 HPB_DMAE_CHANNEL(0x7c, HPBDMA_SLAVE_USBFUNC_RX), /* ch. 15 */
421 HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_TX), /* ch. 21 */ 439 HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_TX), /* ch. 21 */
422 HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_RX), /* ch. 22 */ 440 HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_RX), /* ch. 22 */
423 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI0_TX), /* ch. 28 */ 441 HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI0_TX), /* ch. 28 */