pwm: bcm2835: Dynamically allocate base
authorFlorian Fainelli <f.fainelli@gmail.com>
Mon, 3 Feb 2020 21:35:35 +0000 (13:35 -0800)
committerThierry Reding <thierry.reding@gmail.com>
Mon, 30 Mar 2020 14:55:25 +0000 (16:55 +0200)
The newer 2711 and 7211 chips have two PWM controllers and failure to
dynamically allocate the PWM base would prevent the second PWM
controller instance being probed for succeeding with an -EEXIST error
from alloc_pwms().

Fixes: e5a06dc5ac1f ("pwm: Add BCM2835 PWM driver")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
drivers/pwm/pwm-bcm2835.c

index 91e24f01b54ed0e0285414194a2ddd8049f8e7a5..d78f86f8e46210e7072558bd119f27f8f20cac95 100644 (file)
@@ -166,6 +166,7 @@ static int bcm2835_pwm_probe(struct platform_device *pdev)
 
        pc->chip.dev = &pdev->dev;
        pc->chip.ops = &bcm2835_pwm_ops;
+       pc->chip.base = -1;
        pc->chip.npwm = 2;
        pc->chip.of_xlate = of_pwm_xlate_with_flags;
        pc->chip.of_pwm_n_cells = 3;