From: Chanhong Jung <happycpu@gmail.com>
To: Linus Walleij <linusw@kernel.org>,
Bartosz Golaszewski <brgl@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Maxime Ripard <mripard@kernel.org>
Cc: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH v1 0/2] gpio: 74x164: seed the chain from DT at probe time
Date: Thu, 23 Apr 2026 01:05:02 +0900 [thread overview]
Message-ID: <cover.1776872453.git.happycpu@gmail.com> (raw)
Hi all,
This short series lets the 74HC595/74LVC594 shift-register driver
initialise its chain to a board-specified pattern before the gpiochip
is registered, via a new optional 'registers-default' DT property.
Motivation
----------
74HC595 chains latch their outputs from the first serial write onwards.
The current driver always issues that first write from a zeroed buffer
during probe, so every output comes up low until user space intervenes.
Boards that wire the chain to signals whose power-on state matters
(active-low indicators, reset lines, early-boot status LEDs, etc.) have
no DT-level way to express the intended initial pattern today, and must
recreate it in user space after every probe.
The property and layout documented here have been honoured by U-Boot's
matching driver (drivers/gpio/74x164_gpio.c) for years, so this change
also restores binding parity between the two boot stages: whichever one
owns the chain first can leave it in a known state for the next.
Validation
----------
Tested on stm32mp153d-ssonic, which drives 16 active-low LEDs from two
cascaded 74HC595s with 'registers-default = /bits/ 8 <0xff 0xff 0x00
0x00>;'. With the series applied, the LED bank comes up in its defined
off-state from probe onwards; without it, the bank flashes on briefly
on every reboot until the user-space init writes the pattern.
Tooling:
- scripts/checkpatch.pl --strict: 0 errors, 0 warnings on each patch
- make dt_binding_check DT_SCHEMA_FILES=fairchild,74hc595: passes
(example DTS extracted, compiled, and validated against the new
schema)
- dt-validate on a built stm32mp153d-ssonic.dtb against the updated
processed-schema.json: 'registers-default' accepted cleanly; no
regressions against the rest of the 74hc595 binding
Patch 1 adds the binding property. Patch 2 consumes it in the driver.
Thanks for your time and reviews — feedback very welcome.
Chanhong
Chanhong Jung (2):
dt-bindings: gpio: fairchild,74hc595: add registers-default property
gpio: 74x164: support 'registers-default' DT property for initial
state
.../bindings/gpio/fairchild,74hc595.yaml | 10 ++++++++++
drivers/gpio/gpio-74x164.c | 14 ++++++++++++++
2 files changed, 24 insertions(+)
--
2.34.1
next reply other threads:[~2026-04-22 16:05 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-22 16:05 Chanhong Jung [this message]
2026-04-22 16:05 ` [PATCH v1 1/2] dt-bindings: gpio: fairchild,74hc595: add registers-default property Chanhong Jung
2026-04-23 8:59 ` Krzysztof Kozlowski
2026-04-23 10:33 ` Chanhong Jung
2026-04-28 8:40 ` Krzysztof Kozlowski
2026-04-28 9:07 ` Linus Walleij
2026-04-29 3:50 ` Chanhong Jung
2026-04-29 9:03 ` Bartosz Golaszewski
2026-05-05 9:45 ` Linus Walleij
2026-05-05 11:00 ` Bartosz Golaszewski
2026-05-05 20:24 ` Rob Herring
2026-04-22 16:05 ` [PATCH v1 2/2] gpio: 74x164: support 'registers-default' DT property for initial state Chanhong Jung
2026-04-29 3:51 ` [PATCH v2 0/2] gpio: 74x164: seed the chain from DT at probe time Chanhong Jung
2026-05-06 8:09 ` Bartosz Golaszewski
2026-04-29 3:51 ` [PATCH v2 1/2] dt-bindings: gpio: fairchild,74hc595: add lines-initial-states property Chanhong Jung
2026-04-30 12:08 ` Linus Walleij
2026-05-06 1:43 ` Rob Herring (Arm)
2026-04-29 3:51 ` [PATCH v2 2/2] gpio: 74x164: support lines-initial-states for boot-time output state Chanhong Jung
2026-04-30 12:09 ` Linus Walleij
2026-04-30 22:14 ` 정찬홍
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1776872453.git.happycpu@gmail.com \
--to=happycpu@gmail.com \
--cc=brgl@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linusw@kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mripard@kernel.org \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.