static int gpio_rcar_probe(struct platform_device *pdev)
 {
        struct gpio_rcar_priv *p;
-       struct resource *irq;
        struct gpio_chip *gpio_chip;
        struct irq_chip *irq_chip;
        struct gpio_irq_chip *girq;
 
        pm_runtime_enable(dev);
 
-       irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
-       if (!irq) {
-               dev_err(dev, "missing IRQ\n");
-               ret = -EINVAL;
+       ret = platform_get_irq(pdev, 0);
+       if (ret < 0)
                goto err0;
-       }
+       p->irq_parent = ret;
 
        p->base = devm_platform_ioremap_resource(pdev, 0);
        if (IS_ERR(p->base)) {
                goto err0;
        }
 
-       p->irq_parent = irq->start;
-       if (devm_request_irq(dev, irq->start, gpio_rcar_irq_handler,
+       if (devm_request_irq(dev, p->irq_parent, gpio_rcar_irq_handler,
                             IRQF_SHARED, name, p)) {
                dev_err(dev, "failed to request IRQ\n");
                ret = -ENOENT;