Re: [PATCH v2 2/2] gpio: 74x164: support lines-initial-states for boot-time output state

From: Linus Walleij

Date: Thu Apr 30 2026 - 08:13:12 EST


On Wed, Apr 29, 2026 at 5:51 AM Chanhong Jung <happycpu@xxxxxxxxx> wrote:

> 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@xxxxxxxxxx>
> Signed-off-by: Chanhong Jung <happycpu@xxxxxxxxx>

Reviewed-by: Linus Walleij <linusw@xxxxxxxxxx>

If more users of this appears we can start thinking about brining
the support code into the core gpiolib but for now this works
fine I think.

Yours,
Linus Walleij