gpio-button-hotplug: do not error on interrupt attached keys
authorTim Harvey <tharvey@gateworks.com>
Tue, 28 Feb 2023 00:56:25 +0000 (16:56 -0800)
committerChristian Lamparter <chunkeey@gmail.com>
Thu, 18 May 2023 15:11:43 +0000 (17:11 +0200)
The Linux gpio-keys driver bindings allow for GPIO attached or interrupt
attached keys. Currently if an interrupt attached key is encountered
gpio_keys_button_probe() will fail due to not being able to get a gpio
descriptor:
gpio-keys: probe of gpio-keys failed with error -2

Skip the failure in the case of interrupt attached keys to resolve this.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c

index 2b39ec8f3be52e4c27986cf51844287829e032bd..522085bb2fa2e21b5b94fa4bf40e8bdd63daba9f 100644 (file)
@@ -506,6 +506,13 @@ static int gpio_keys_button_probe(struct platform_device *pdev,
                        goto out;
                }
 
+               if (button->irq) {
+                       dev_err(dev, "skipping button %s (only gpio buttons supported)\n",
+                               button->desc);
+                       bdata->b = &pdata->buttons[i];
+                       continue;
+               }
+
                if (gpio_is_valid(button->gpio)) {
                        /* legacy platform data... but is it the lookup table? */
                        bdata->gpiod = devm_gpiod_get_index(dev, desc, i,