summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorChuanhong Guo <gch981213@gmail.com>2020-03-15 20:13:37 +0800
committerBartosz Golaszewski <bgolaszewski@baylibre.com>2020-03-25 09:50:45 +0100
commitd19d2de61fb131abcd29f7c61d3f168f687bfd6e (patch)
treefda8cb7a01b6d9df22d36c5c8e5b4c1a6feb5dc7 /include
parentd1ee7e1f5c9191afb69ce46cc7752e4257340a31 (diff)
downloadlinux-d19d2de61fb131abcd29f7c61d3f168f687bfd6e.tar.bz2
gpio: mmio: introduce BGPIOF_NO_SET_ON_INPUT
Some gpio controllers ignores pin value writing when that pin is configured as input mode. As a result, bgpio_dir_out should set pin to output before configuring pin values or gpio pin values can't be set up properly. Introduce two variants of bgpio_dir_out: bgpio_dir_out_val_first and bgpio_dir_out_dir_first, and assign direction_output according to a new flag: BGPIOF_NO_SET_ON_INPUT. Signed-off-by: Chuanhong Guo <gch981213@gmail.com> Tested-by: René van Dorst <opensource@vdorst.com> Reviewed-by: Sergio Paracuellos <sergio.paracuellos@gmail.com> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/gpio/driver.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h
index 6ef05bccc0a6..ed65e00ee977 100644
--- a/include/linux/gpio/driver.h
+++ b/include/linux/gpio/driver.h
@@ -572,6 +572,7 @@ int bgpio_init(struct gpio_chip *gc, struct device *dev,
#define BGPIOF_BIG_ENDIAN_BYTE_ORDER BIT(3)
#define BGPIOF_READ_OUTPUT_REG_SET BIT(4) /* reg_set stores output value */
#define BGPIOF_NO_OUTPUT BIT(5) /* only input */
+#define BGPIOF_NO_SET_ON_INPUT BIT(6)
int gpiochip_irq_map(struct irq_domain *d, unsigned int irq,
irq_hw_number_t hwirq);