#include <linux/dma-mapping.h>
 #include <linux/io.h>
+#include <linux/irq.h>
 #include <linux/module.h>
 #include <sound/pcm_params.h>
 #include <linux/regmap.h>
 {
        int ret;
 
-       i2s_priv->r_irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
-       if (!i2s_priv->r_irq) {
-               dev_err(&pdev->dev, "Unable to get register irq resource.\n");
-               return -ENODEV;
-       }
+       ret = platform_get_irq(pdev, 0);
+       if (ret < 0)
+               return ret;
 
-       ret = devm_request_irq(&pdev->dev, i2s_priv->r_irq->start, i2s_dma_isr,
-                       i2s_priv->r_irq->flags, "i2s_dma", (void *)i2s_priv);
+       ret = devm_request_irq(&pdev->dev, ret, i2s_dma_isr,
+                              irq_get_trigger_type(ret), "i2s_dma", (void *)i2s_priv);
        if (ret) {
                dev_err(&pdev->dev,
                        "i2s_init: failed to request interrupt.ret=%d\n", ret);