|
@@ -71,15 +71,11 @@ struct omap_mcpdm {
|
|
|
static struct omap_pcm_dma_data omap_mcpdm_dai_dma_params[] = {
|
|
|
{
|
|
|
.name = "Audio playback",
|
|
|
- .dma_req = OMAP44XX_DMA_MCPDM_DL,
|
|
|
.data_type = OMAP_DMA_DATA_TYPE_S32,
|
|
|
- .port_addr = OMAP44XX_MCPDM_L3_BASE + MCPDM_REG_DN_DATA,
|
|
|
},
|
|
|
{
|
|
|
.name = "Audio capture",
|
|
|
- .dma_req = OMAP44XX_DMA_MCPDM_UP,
|
|
|
.data_type = OMAP_DMA_DATA_TYPE_S32,
|
|
|
- .port_addr = OMAP44XX_MCPDM_L3_BASE + MCPDM_REG_UP_DATA,
|
|
|
},
|
|
|
};
|
|
|
|
|
@@ -452,10 +448,33 @@ static __devinit int asoc_mcpdm_probe(struct platform_device *pdev)
|
|
|
|
|
|
mutex_init(&mcpdm->mutex);
|
|
|
|
|
|
+ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dma");
|
|
|
+ if (res == NULL)
|
|
|
+ return -ENOMEM;
|
|
|
+
|
|
|
+ omap_mcpdm_dai_dma_params[0].port_addr = res->start + MCPDM_REG_DN_DATA;
|
|
|
+ omap_mcpdm_dai_dma_params[1].port_addr = res->start + MCPDM_REG_UP_DATA;
|
|
|
+
|
|
|
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
|
|
if (res == NULL)
|
|
|
return -ENOMEM;
|
|
|
|
|
|
+ res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "dn_link");
|
|
|
+ if (!res)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
+ omap_mcpdm_dai_dma_params[0].dma_req = res->start;
|
|
|
+
|
|
|
+ res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "up_link");
|
|
|
+ if (!res)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
+ omap_mcpdm_dai_dma_params[1].dma_req = res->start;
|
|
|
+
|
|
|
+ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mpu");
|
|
|
+ if (res == NULL)
|
|
|
+ return -ENOMEM;
|
|
|
+
|
|
|
if (!devm_request_mem_region(&pdev->dev, res->start,
|
|
|
resource_size(res), "McPDM"))
|
|
|
return -EBUSY;
|