]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
gpio: regmap: Don't set a fixed direction line
authorLinus Walleij <linusw@kernel.org>
Mon, 11 May 2026 19:43:44 +0000 (21:43 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Tue, 12 May 2026 09:54:37 +0000 (11:54 +0200)
commit806e7acf7f331008637b4f8ecf211eb0a082e6eb
tree0ecb88fd8671c5b2f7df28979bf24b5b02d02921
parent68d801eabda5219dcc25c9de98d3bbdb5b51b0a5
gpio: regmap: Don't set a fixed direction line

If a GPIO line has a fixed direction, report an error if a consumer
anyway tries to set the direction to something other than what it is
hardcoded to.

This didn't happen much before because what we supported was all lines
input or output and then the implementer would probably not specify the
direction registers, but with sparse fixed direction we can have
a mixture so let's take this into account.

As a consequence, since gpio_regmap_set_direction() can now fail, alter
the semantics in gpio_regmap_direction_output() such that we first check
if we can set the direction to output before we set the value and the
direction.

Suggested-by: Sashiko <sashiko-bot@kernel.org>
Link: https://sashiko.dev/#/patchset/20260507-regmap-gpio-sparse-fixed-dir-v1-1-a2e5855e2701%40kernel.org
Signed-off-by: Linus Walleij <linusw@kernel.org>
Reviewed-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Alex Elder <elder@riscstar.com>
Tested-by: Alex Elder <elder@riscstar.com>
Link: https://patch.msgid.link/20260511-regmap-gpio-sparse-fixed-dir-v3-2-1429ec453be7@kernel.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
drivers/gpio/gpio-regmap.c