On Wed, Aug 24, 2022 at 4:27 PM Henning Schild <henning.schild@xxxxxxxxxxx> wrote: > > If we register a "leds-gpio" platform device for GPIO pins that do not > exist we get a -EPROBE_DEFER and the probe will be tried again later. > If there is not driver to provide that pin we will poll forever and also not --> no > create a lot of log messages. > > So check if that GPIO driver is configured, if so it will come up > eventually. If not we exit our probe function early and do not even not, we > bother registering the "leds-gpio". This method was chosen over "Kconfig > depends" since this way we can add support for more devices and GPIO > backends more easily without "depends"ing on all GPIO backends. "depends":ing The code is fine from my perspective, Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> thanks! > Fixes: a6c80bec3c93 ("leds: simatic-ipc-leds-gpio: Add GPIO version of Siemens driver") > Signed-off-by: Henning Schild <henning.schild@xxxxxxxxxxx> > --- > drivers/leds/simple/simatic-ipc-leds-gpio.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/leds/simple/simatic-ipc-leds-gpio.c b/drivers/leds/simple/simatic-ipc-leds-gpio.c > index 4c9e663a90ba..0c96ba98e338 100644 > --- a/drivers/leds/simple/simatic-ipc-leds-gpio.c > +++ b/drivers/leds/simple/simatic-ipc-leds-gpio.c > @@ -57,6 +57,8 @@ static int simatic_ipc_leds_gpio_probe(struct platform_device *pdev) > struct gpio_desc *gpiod; > int err; > > + if (!IS_ENABLED(CONFIG_PINCTRL_BROXTON)) > + return -ENODEV; > gpiod_add_lookup_table(&simatic_ipc_led_gpio_table); > simatic_leds_pdev = platform_device_register_resndata(NULL, > "leds-gpio", PLATFORM_DEVID_NONE, NULL, 0, > -- > 2.35.1 > -- With Best Regards, Andy Shevchenko