diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2013-12-10 19:51:04 -0500 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2013-12-12 08:02:14 -0500 |
commit | aa9938644c63100219c252b9d330b95427082cef (patch) | |
tree | a1e8157daf803a54d3e2ec6c4b272a20c290a544 | |
parent | 0fe35077a92ce45acfa2b7259bba516757fb0c3f (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.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/setup-r8a7778.c | 18 |
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 | ||
67 | extern void r8a7778_add_standard_devices(void); | 69 | extern 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 | ||
420 | static const struct hpb_dmae_channel hpb_dmae_channels[] = { | 436 | static 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 */ |