]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
gpio: 74x164: support lines-initial-states for boot-time output state
authorChanhong Jung <happycpu@gmail.com>
Wed, 29 Apr 2026 03:51:34 +0000 (12:51 +0900)
committerBartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Wed, 6 May 2026 08:08:11 +0000 (10:08 +0200)
commitcb77f8933467d08c8896674cd39ca98550a70fd6
tree7704c712e14c22c8a438b7114ca61b0b17e22ec1
parentd6e1a94888f5a4306c9998944a0f29f7bcd49411
gpio: 74x164: support lines-initial-states for boot-time output state

74HC595 and 74LVC594 chains retain their output state from the first
serial write onwards. Today the driver always kicks that first write
from a zero-initialised buffer, so every output comes up low until user
space issues a write. Boards that rely on the chain to drive signals
whose power-on state matters (active-low indicators, reset lines, etc.)
have no way to express the desired initial pattern via DT.

Read the optional lines-initial-states bitmask, recently documented for
this binding, into chip->buffer before the first
__gen_74x164_write_config() so the chain comes up in a known state on
the very first SPI transaction. Bit N maps to GPIO line N (matching the
nxp,pcf8575 convention); on this output-only device, bit=0 drives the
line low and bit=1 drives it high. Property absence keeps the existing
zeroing behaviour intact.

Suggested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chanhong Jung <happycpu@gmail.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Link: https://patch.msgid.link/20260429035134.1023330-3-happycpu@gmail.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
drivers/gpio/gpio-74x164.c