dev_err(&pdev->dev, "ngpios property is not valid\n");
                        return err;
                }
-               if (ath79_gpio_count >= 32) {
-                       dev_err(&pdev->dev, "ngpios must be less than 32\n");
-                       return -EINVAL;
-               }
                oe_inverted = of_device_is_compatible(np, "qca,ar9340-gpio");
        } else if (pdata) {
                ath79_gpio_count = pdata->ngpios;
                return -EINVAL;
        }
 
+       if (ath79_gpio_count >= 32) {
+               dev_err(&pdev->dev, "ngpios must be less than 32\n");
+               return -EINVAL;
+       }
+
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        ctrl->base = devm_ioremap_nocache(
                &pdev->dev, res->start, resource_size(res));