if (IS_ERR(regs))
                return PTR_ERR(regs);
 
-       dev->irq = irq_of_parse_and_map(dev->dev->of_node, 0);
-       if (!dev->irq) {
+       dev->irq = platform_get_irq(pdev, 0);
+       if (dev->irq <= 0) {
                dev_err(dev->dev, "No irq found\n");
                return -ENODEV;
        }
 
        /* Some core configurations has separate irqs for IN and OUT events */
-       dev->irqi = irq_of_parse_and_map(dev->dev->of_node, 1);
-       if (dev->irqi) {
-               dev->irqo = irq_of_parse_and_map(dev->dev->of_node, 2);
-               if (!dev->irqo) {
+       dev->irqi = platform_get_irq(pdev, 1);
+       if (dev->irqi > 0) {
+               dev->irqo = platform_get_irq(pdev, 2);
+               if (dev->irqo <= 0) {
                        dev_err(dev->dev, "Found irqi but not irqo\n");
                        return -ENODEV;
                }
+       } else {
+               dev->irqi = 0;
        }
 
        dev->gadget.name = driver_name;