]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
gpio: aspeed: Add open-source and open-drain support
authorAndrew Jeffery <andrew@aj.id.au>
Fri, 7 Apr 2017 12:59:02 +0000 (22:29 +0930)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 24 Apr 2017 12:51:57 +0000 (14:51 +0200)
As per the datasheet, manage the IO and value states to implement
open-source/open-drain, but do this by falling back to gpiolib's
emulation.

This commit simply makes the behaviour explicit for clarity, rather than
relying on the implicit return of -ENOTSUPP to trigger the emulation.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-aspeed.c

index 3327a48df8623967c4ef39db0f86e4982d95c51b..ccea609676eebfe8bbcd6e01acaa8f6c4499ffe7 100644 (file)
@@ -761,6 +761,10 @@ static int aspeed_gpio_set_config(struct gpio_chip *chip, unsigned int offset,
                        param == PIN_CONFIG_BIAS_PULL_DOWN ||
                        param == PIN_CONFIG_DRIVE_STRENGTH)
                return pinctrl_gpio_set_config(offset, config);
+       else if (param == PIN_CONFIG_DRIVE_OPEN_DRAIN ||
+                       param == PIN_CONFIG_DRIVE_OPEN_SOURCE)
+               /* Return -ENOTSUPP to trigger emulation, as per datasheet */
+               return -ENOTSUPP;
 
        return -ENOTSUPP;
 }