gpio: mvebu: Fix check for pwm support on non-A8K platforms
authorPali Rohár <pali@kernel.org>
Thu, 14 Jul 2022 18:33:25 +0000 (20:33 +0200)
committerBartosz Golaszewski <brgl@bgdev.pl>
Mon, 26 Sep 2022 07:20:09 +0000 (09:20 +0200)
pwm support incompatible with Armada 80x0/70x0 API is not only in
Armada 370, but also in Armada XP, 38x and 39x. So basically every non-A8K
platform. Fix check for pwm support appropriately.

Fixes: 85b7d8abfec7 ("gpio: mvebu: add pwm support for Armada 8K/7K")
Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
drivers/gpio/gpio-mvebu.c

index aa126ab80f0ccc8e41f04aeec0e21ccef633628e..1bb317b8dcceac60e0b5040e76b0e3496b2adbf0 100644 (file)
@@ -790,8 +790,12 @@ static int mvebu_pwm_probe(struct platform_device *pdev,
        u32 offset;
        u32 set;
 
-       if (of_device_is_compatible(mvchip->chip.of_node,
-                                   "marvell,armada-370-gpio")) {
+       if (mvchip->soc_variant == MVEBU_GPIO_SOC_VARIANT_A8K) {
+               int ret = of_property_read_u32(dev->of_node,
+                                              "marvell,pwm-offset", &offset);
+               if (ret < 0)
+                       return 0;
+       } else {
                /*
                 * There are only two sets of PWM configuration registers for
                 * all the GPIO lines on those SoCs which this driver reserves
@@ -801,13 +805,6 @@ static int mvebu_pwm_probe(struct platform_device *pdev,
                if (!platform_get_resource_byname(pdev, IORESOURCE_MEM, "pwm"))
                        return 0;
                offset = 0;
-       } else if (mvchip->soc_variant == MVEBU_GPIO_SOC_VARIANT_A8K) {
-               int ret = of_property_read_u32(dev->of_node,
-                                              "marvell,pwm-offset", &offset);
-               if (ret < 0)
-                       return 0;
-       } else {
-               return 0;
        }
 
        if (IS_ERR(mvchip->clk))