aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2017-01-17 06:57:32 -0500
committerVinod Koul <vinod.koul@intel.com>2017-01-25 01:21:40 -0500
commitf7c799e950f96191a16f18606e43e6f861b2a361 (patch)
tree2ec2e9bc483f1e0120f8b02cb338731428d4172b
parent199244d69458770770890f8b5988a1b6cad701ad (diff)
dmaengine: dw: we do support Merrifield SoC in PCI mode
Intel Merrifield platform contains Intel integrated DMA (iDMA 32-bit) which has a slightly different register mapping, e.g. some bits in CTL_* and CFG_* channel registers, and has to use platform data since there is no autoconfiguration. The iDMA 32-bit specification is available in the publicly available documentation for Intel Braswell and BayTrail SoCs as LPE Audio DMA. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
-rw-r--r--drivers/dma/dw/pci.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/dma/dw/pci.c b/drivers/dma/dw/pci.c
index 47194372f738..7778ed705a1a 100644
--- a/drivers/dma/dw/pci.c
+++ b/drivers/dma/dw/pci.c
@@ -15,6 +15,18 @@
15 15
16#include "internal.h" 16#include "internal.h"
17 17
18static struct dw_dma_platform_data mrfld_pdata = {
19 .nr_channels = 8,
20 .is_private = true,
21 .is_memcpy = true,
22 .is_idma32 = true,
23 .chan_allocation_order = CHAN_ALLOCATION_ASCENDING,
24 .chan_priority = CHAN_PRIORITY_ASCENDING,
25 .block_size = 131071,
26 .nr_masters = 1,
27 .data_width = {4},
28};
29
18static int dw_pci_probe(struct pci_dev *pdev, const struct pci_device_id *pid) 30static int dw_pci_probe(struct pci_dev *pdev, const struct pci_device_id *pid)
19{ 31{
20 const struct dw_dma_platform_data *pdata = (void *)pid->driver_data; 32 const struct dw_dma_platform_data *pdata = (void *)pid->driver_data;
@@ -103,6 +115,9 @@ static const struct pci_device_id dw_pci_id_table[] = {
103 { PCI_VDEVICE(INTEL, 0x0f06) }, 115 { PCI_VDEVICE(INTEL, 0x0f06) },
104 { PCI_VDEVICE(INTEL, 0x0f40) }, 116 { PCI_VDEVICE(INTEL, 0x0f40) },
105 117
118 /* Merrifield iDMA 32-bit (GPDMA) */
119 { PCI_VDEVICE(INTEL, 0x11a2), (kernel_ulong_t)&mrfld_pdata },
120
106 /* Braswell */ 121 /* Braswell */
107 { PCI_VDEVICE(INTEL, 0x2286) }, 122 { PCI_VDEVICE(INTEL, 0x2286) },
108 { PCI_VDEVICE(INTEL, 0x22c0) }, 123 { PCI_VDEVICE(INTEL, 0x22c0) },