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>
This commit is contained in:

committed by
Linus Walleij

parent
c65d1fd350
commit
380639c7cc
12
include/linux/gpio/gpio-reg.h
Normal file
12
include/linux/gpio/gpio-reg.h
Normal file
@@ -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
|
Reference in New Issue
Block a user