ASoC: omap-mcpdm: Use platform_get_resource_* to get resources
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Fri, 14 Sep 2012 12:05:54 +0000 (15:05 +0300)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Sat, 22 Sep 2012 15:13:00 +0000 (11:13 -0400)
Get the needed resources in a correct way and avoid using defines for them.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/omap/omap-mcpdm.c

index baf92da..f90d5de 100644 (file)
@@ -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;