mmc: omap_hsmmc: use platform_get_resource_byname for tx/rx DMA channels
[firefly-linux-kernel-4.4.55.git] / drivers / mmc / host / omap_hsmmc.c
index 36e7f5bc58a35432772ab52c693097678cd6f2b3..a6f19f17f0d80242ff366af4a5ba7202044f02d9 100644 (file)
@@ -1981,32 +1981,19 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev)
 
        omap_hsmmc_conf_bus_power(host);
 
-       /* Select DMA lines */
-       switch (host->id) {
-       case OMAP_MMC1_DEVID:
-               host->dma_line_tx = OMAP24XX_DMA_MMC1_TX;
-               host->dma_line_rx = OMAP24XX_DMA_MMC1_RX;
-               break;
-       case OMAP_MMC2_DEVID:
-               host->dma_line_tx = OMAP24XX_DMA_MMC2_TX;
-               host->dma_line_rx = OMAP24XX_DMA_MMC2_RX;
-               break;
-       case OMAP_MMC3_DEVID:
-               host->dma_line_tx = OMAP34XX_DMA_MMC3_TX;
-               host->dma_line_rx = OMAP34XX_DMA_MMC3_RX;
-               break;
-       case OMAP_MMC4_DEVID:
-               host->dma_line_tx = OMAP44XX_DMA_MMC4_TX;
-               host->dma_line_rx = OMAP44XX_DMA_MMC4_RX;
-               break;
-       case OMAP_MMC5_DEVID:
-               host->dma_line_tx = OMAP44XX_DMA_MMC5_TX;
-               host->dma_line_rx = OMAP44XX_DMA_MMC5_RX;
-               break;
-       default:
-               dev_err(mmc_dev(host->mmc), "Invalid MMC id\n");
+       res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "tx");
+       if (!res) {
+               dev_err(mmc_dev(host->mmc), "cannot get DMA TX channel\n");
+               goto err_irq;
+       }
+       host->dma_line_tx = res->start;
+
+       res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx");
+       if (!res) {
+               dev_err(mmc_dev(host->mmc), "cannot get DMA RX channel\n");
                goto err_irq;
        }
+       host->dma_line_rx = res->start;
 
        /* Request IRQ for MMC operations */
        ret = request_irq(host->irq, omap_hsmmc_irq, 0,