diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2016-08-31 08:49:44 +0100 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2017-03-24 14:04:46 +0100 |
commit | 380639c7cc786ec663e43eb3896ccf9172a46900 (patch) | |
tree | b51574a49f52ff542c8c915a582450ac06de68b8 /include/linux/gpio | |
parent | c65d1fd350fa28de79e86e18ef73b902a67c791a (diff) | |
download | blackbird-op-linux-380639c7cc786ec663e43eb3896ccf9172a46900.tar.gz blackbird-op-linux-380639c7cc786ec663e43eb3896ccf9172a46900.zip |
gpio: add generic single-register fixed-direction GPIO driver
Add a simple, generic, single register fixed-direction GPIO driver.
This is able to support a single register with a mixture of inputs
and outputs.
This is different from gpio-mmio and gpio-74xx-mmio:
* gpio-mmio doesn't allow a fixed direction, it assumes there is always
a direction register.
* gpio-74xx-mmio only supports all-in or all-out setups
* gpio-74xx-mmio is DT only, this needs to support legacy too
* they don't double-read when getting the GPIO value, as required by
some implementations that this driver supports
* we need to always do 32-bit reads, which bgpio doesn't guarantee
* the current output state may not be readable from the hardware
register - reading may reflect input status but not output status.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'include/linux/gpio')
-rw-r--r-- | include/linux/gpio/gpio-reg.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/gpio/gpio-reg.h b/include/linux/gpio/gpio-reg.h new file mode 100644 index 000000000000..0352bec7319a --- /dev/null +++ b/include/linux/gpio/gpio-reg.h @@ -0,0 +1,12 @@ +#ifndef GPIO_REG_H +#define GPIO_REG_H + +struct device; + +struct gpio_chip *gpio_reg_init(struct device *dev, void __iomem *reg, + int base, int num, const char *label, u32 direction, u32 def_out, + const char *const *names); + +int gpio_reg_resume(struct gpio_chip *gc); + +#endif |