[Sound-open-firmware] [PATCH] dma: Add DMAC2 for CHT
Liam Girdwood
liam.r.girdwood at linux.intel.com
Thu Oct 20 16:51:27 CEST 2016
CHT has 3 DMACs compared to the 2 DMACs on BYT
Signed-off-by: Liam Girdwood <liam.r.girdwood at linux.intel.com>
---
src/platform/baytrail/dma.c | 51 +++++++++++++++++++++-
src/platform/baytrail/include/platform/dma.h | 6 +++
src/platform/baytrail/include/platform/interrupt.h | 2 +
3 files changed, 58 insertions(+), 1 deletion(-)
diff --git a/src/platform/baytrail/dma.c b/src/platform/baytrail/dma.c
index 62baadb..6cb1fda 100644
--- a/src/platform/baytrail/dma.c
+++ b/src/platform/baytrail/dma.c
@@ -106,6 +106,43 @@ static struct dw_drv_plat_data dmac1 = {
},
};
+#if defined CONFIG_CHERRYTRAIL
+static struct dw_drv_plat_data dmac2 = {
+ .chan[0] = {
+ .class = 7,
+ .weight = 0,
+ },
+ .chan[1] = {
+ .class = 7,
+ .weight = 0,
+ },
+ .chan[2] = {
+ .class = 7,
+ .weight = 0,
+ },
+ .chan[3] = {
+ .class = 7,
+ .weight = 0,
+ },
+ .chan[4] = {
+ .class = 7,
+ .weight = 0,
+ },
+ .chan[5] = {
+ .class = 7,
+ .weight = 0,
+ },
+ .chan[6] = {
+ .class = 7,
+ .weight = 0,
+ },
+ .chan[7] = {
+ .class = 7,
+ .weight = 0,
+ },
+};
+#endif
+
static struct dma dma[] = {
{
.plat_data = {
@@ -124,7 +161,19 @@ static struct dma dma[] = {
.drv_plat_data = &dmac1,
},
.ops = &dw_dma_ops,
-},};
+},
+#if defined CONFIG_CHERRYTRAIL
+{
+ .plat_data = {
+ .id = DMA_ID_DMAC2,
+ .base = DMA2_BASE,
+ .irq = IRQ_NUM_EXT_DMAC2,
+ .drv_plat_data = &dmac2,
+ },
+ .ops = &dw_dma_ops,
+},
+#endif
+};
struct dma *dma_get(int dmac_id)
{
diff --git a/src/platform/baytrail/include/platform/dma.h b/src/platform/baytrail/include/platform/dma.h
index e880eac..8a1a806 100644
--- a/src/platform/baytrail/include/platform/dma.h
+++ b/src/platform/baytrail/include/platform/dma.h
@@ -43,5 +43,11 @@
#define DMA_HANDSHAKE_SSP1_TX 3
#define DMA_HANDSHAKE_SSP2_RX 4
#define DMA_HANDSHAKE_SSP2_TX 5
+#define DMA_HANDSHAKE_SSP3_RX 6
+#define DMA_HANDSHAKE_SSP3_TX 7
+#define DMA_HANDSHAKE_SSP4_RX 8
+#define DMA_HANDSHAKE_SSP4_TX 9
+#define DMA_HANDSHAKE_SSP5_RX 10
+#define DMA_HANDSHAKE_SSP6_TX 11
#endif
diff --git a/src/platform/baytrail/include/platform/interrupt.h b/src/platform/baytrail/include/platform/interrupt.h
index 3d96ba5..8c97122 100644
--- a/src/platform/baytrail/include/platform/interrupt.h
+++ b/src/platform/baytrail/include/platform/interrupt.h
@@ -53,6 +53,7 @@
#define IRQ_NUM_EXT_SSP0 16 /* Level 5 */
#define IRQ_NUM_EXT_SSP1 17 /* Level 5 */
#define IRQ_NUM_EXT_SSP2 18 /* Level 5 */
+#define IRQ_NUM_EXT_DMAC2 19 /* Level 5 */
#define IRQ_NUM_NMI 20 /* Level 7 */
/* IRQ Masks */
@@ -74,5 +75,6 @@
#define IRQ_MASK_EXT_SSP0 (1 << IRQ_NUM_EXT_SSP0)
#define IRQ_MASK_EXT_SSP1 (1 << IRQ_NUM_EXT_SSP1)
#define IRQ_MASK_EXT_SSP2 (1 << IRQ_NUM_EXT_SSP2)
+#define IRQ_MASK_EXT_DMAC2 (1 << IRQ_NUM_EXT_DMAC2)
#endif
--
2.7.4
More information about the Sound-open-firmware
mailing list