|
@@ -463,3 +463,133 @@ static const struct sh_dmae_slave_config sh73a0_dmae_slaves[] = {
|
|
|
.chcr = CHCR_TX(XMIT_SZ_8BIT),
|
|
|
.mid_rid = 0x39,
|
|
|
}, {
|
|
|
+ .slave_id = SHDMA_SLAVE_SCIF4_RX,
|
|
|
+ .addr = 0xe6c80024,
|
|
|
+ .chcr = CHCR_RX(XMIT_SZ_8BIT),
|
|
|
+ .mid_rid = 0x3a,
|
|
|
+ }, {
|
|
|
+ .slave_id = SHDMA_SLAVE_SCIF5_TX,
|
|
|
+ .addr = 0xe6cb0020,
|
|
|
+ .chcr = CHCR_TX(XMIT_SZ_8BIT),
|
|
|
+ .mid_rid = 0x35,
|
|
|
+ }, {
|
|
|
+ .slave_id = SHDMA_SLAVE_SCIF5_RX,
|
|
|
+ .addr = 0xe6cb0024,
|
|
|
+ .chcr = CHCR_RX(XMIT_SZ_8BIT),
|
|
|
+ .mid_rid = 0x36,
|
|
|
+ }, {
|
|
|
+ .slave_id = SHDMA_SLAVE_SCIF6_TX,
|
|
|
+ .addr = 0xe6cc0020,
|
|
|
+ .chcr = CHCR_TX(XMIT_SZ_8BIT),
|
|
|
+ .mid_rid = 0x1d,
|
|
|
+ }, {
|
|
|
+ .slave_id = SHDMA_SLAVE_SCIF6_RX,
|
|
|
+ .addr = 0xe6cc0024,
|
|
|
+ .chcr = CHCR_RX(XMIT_SZ_8BIT),
|
|
|
+ .mid_rid = 0x1e,
|
|
|
+ }, {
|
|
|
+ .slave_id = SHDMA_SLAVE_SCIF7_TX,
|
|
|
+ .addr = 0xe6cd0020,
|
|
|
+ .chcr = CHCR_TX(XMIT_SZ_8BIT),
|
|
|
+ .mid_rid = 0x19,
|
|
|
+ }, {
|
|
|
+ .slave_id = SHDMA_SLAVE_SCIF7_RX,
|
|
|
+ .addr = 0xe6cd0024,
|
|
|
+ .chcr = CHCR_RX(XMIT_SZ_8BIT),
|
|
|
+ .mid_rid = 0x1a,
|
|
|
+ }, {
|
|
|
+ .slave_id = SHDMA_SLAVE_SCIF8_TX,
|
|
|
+ .addr = 0xe6c30040,
|
|
|
+ .chcr = CHCR_TX(XMIT_SZ_8BIT),
|
|
|
+ .mid_rid = 0x3d,
|
|
|
+ }, {
|
|
|
+ .slave_id = SHDMA_SLAVE_SCIF8_RX,
|
|
|
+ .addr = 0xe6c30060,
|
|
|
+ .chcr = CHCR_RX(XMIT_SZ_8BIT),
|
|
|
+ .mid_rid = 0x3e,
|
|
|
+ }, {
|
|
|
+ .slave_id = SHDMA_SLAVE_SDHI0_TX,
|
|
|
+ .addr = 0xee100030,
|
|
|
+ .chcr = CHCR_TX(XMIT_SZ_16BIT),
|
|
|
+ .mid_rid = 0xc1,
|
|
|
+ }, {
|
|
|
+ .slave_id = SHDMA_SLAVE_SDHI0_RX,
|
|
|
+ .addr = 0xee100030,
|
|
|
+ .chcr = CHCR_RX(XMIT_SZ_16BIT),
|
|
|
+ .mid_rid = 0xc2,
|
|
|
+ }, {
|
|
|
+ .slave_id = SHDMA_SLAVE_SDHI1_TX,
|
|
|
+ .addr = 0xee120030,
|
|
|
+ .chcr = CHCR_TX(XMIT_SZ_16BIT),
|
|
|
+ .mid_rid = 0xc9,
|
|
|
+ }, {
|
|
|
+ .slave_id = SHDMA_SLAVE_SDHI1_RX,
|
|
|
+ .addr = 0xee120030,
|
|
|
+ .chcr = CHCR_RX(XMIT_SZ_16BIT),
|
|
|
+ .mid_rid = 0xca,
|
|
|
+ }, {
|
|
|
+ .slave_id = SHDMA_SLAVE_SDHI2_TX,
|
|
|
+ .addr = 0xee140030,
|
|
|
+ .chcr = CHCR_TX(XMIT_SZ_16BIT),
|
|
|
+ .mid_rid = 0xcd,
|
|
|
+ }, {
|
|
|
+ .slave_id = SHDMA_SLAVE_SDHI2_RX,
|
|
|
+ .addr = 0xee140030,
|
|
|
+ .chcr = CHCR_RX(XMIT_SZ_16BIT),
|
|
|
+ .mid_rid = 0xce,
|
|
|
+ }, {
|
|
|
+ .slave_id = SHDMA_SLAVE_MMCIF_TX,
|
|
|
+ .addr = 0xe6bd0034,
|
|
|
+ .chcr = CHCR_TX(XMIT_SZ_32BIT),
|
|
|
+ .mid_rid = 0xd1,
|
|
|
+ }, {
|
|
|
+ .slave_id = SHDMA_SLAVE_MMCIF_RX,
|
|
|
+ .addr = 0xe6bd0034,
|
|
|
+ .chcr = CHCR_RX(XMIT_SZ_32BIT),
|
|
|
+ .mid_rid = 0xd2,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+#define DMAE_CHANNEL(_offset) \
|
|
|
+ { \
|
|
|
+ .offset = _offset - 0x20, \
|
|
|
+ .dmars = _offset - 0x20 + 0x40, \
|
|
|
+ }
|
|
|
+
|
|
|
+static const struct sh_dmae_channel sh73a0_dmae_channels[] = {
|
|
|
+ DMAE_CHANNEL(0x8000),
|
|
|
+ DMAE_CHANNEL(0x8080),
|
|
|
+ DMAE_CHANNEL(0x8100),
|
|
|
+ DMAE_CHANNEL(0x8180),
|
|
|
+ DMAE_CHANNEL(0x8200),
|
|
|
+ DMAE_CHANNEL(0x8280),
|
|
|
+ DMAE_CHANNEL(0x8300),
|
|
|
+ DMAE_CHANNEL(0x8380),
|
|
|
+ DMAE_CHANNEL(0x8400),
|
|
|
+ DMAE_CHANNEL(0x8480),
|
|
|
+ DMAE_CHANNEL(0x8500),
|
|
|
+ DMAE_CHANNEL(0x8580),
|
|
|
+ DMAE_CHANNEL(0x8600),
|
|
|
+ DMAE_CHANNEL(0x8680),
|
|
|
+ DMAE_CHANNEL(0x8700),
|
|
|
+ DMAE_CHANNEL(0x8780),
|
|
|
+ DMAE_CHANNEL(0x8800),
|
|
|
+ DMAE_CHANNEL(0x8880),
|
|
|
+ DMAE_CHANNEL(0x8900),
|
|
|
+ DMAE_CHANNEL(0x8980),
|
|
|
+};
|
|
|
+
|
|
|
+static struct sh_dmae_pdata sh73a0_dmae_platform_data = {
|
|
|
+ .slave = sh73a0_dmae_slaves,
|
|
|
+ .slave_num = ARRAY_SIZE(sh73a0_dmae_slaves),
|
|
|
+ .channel = sh73a0_dmae_channels,
|
|
|
+ .channel_num = ARRAY_SIZE(sh73a0_dmae_channels),
|
|
|
+ .ts_low_shift = TS_LOW_SHIFT,
|
|
|
+ .ts_low_mask = TS_LOW_BIT << TS_LOW_SHIFT,
|
|
|
+ .ts_high_shift = TS_HI_SHIFT,
|
|
|
+ .ts_high_mask = TS_HI_BIT << TS_HI_SHIFT,
|
|
|
+ .ts_shift = dma_ts_shift,
|
|
|
+ .ts_shift_num = ARRAY_SIZE(dma_ts_shift),
|
|
|
+ .dmaor_init = DMAOR_DME,
|
|
|
+};
|
|
|
+
|