Re: [PATCH v7 0/9] reset: rework reset-gpios handling

Philipp Zabel
2025-11-20T16:33:16Z

On Do, 2025-11-20 at 14:23 +0100, Bartosz Golaszewski wrote:
> Machine GPIO lookup is a nice, if a bit clunky, mechanism when we have
> absolutely no idea what the GPIO provider is or when it will be created.
> However in the case of reset-gpios, we not only know if the chip is
> there - we also already hold a reference to its firmware node.
>
> In this case using fwnode lookup makes more sense. However, since the
> reset provider is created dynamically, it doesn't have a corresponding
> firmware node (in this case: an OF-node). That leaves us with software
> nodes which currently cannot reference other implementations of the
> fwnode API, only other struct software_node objects. This is a needless
> limitation as it's imaginable that a dynamic auxiliary device (with a
> software node attached) would want to reference a real device with an OF
> node.
>
> This series does three things: extends the software node implementation,
> allowing its properties to reference not only static software nodes but
> also existing firmware nodes, updates the GPIO property interface to use
> the reworked swnode macros and finally makes the reset-gpio code the
> first user by converting the GPIO lookup from machine to swnode.
>
> Another user of the software node changes in the future could become the
> shared GPIO modules that's in the works in parallel[1].
>
> Merging strategy: the series is logically split into four parts: driver
> core, SPI, GPIO and reset respectively. However there are build-time
> dependencies between all three parts so I suggest the reset tree as the
> right one to take it upstream with an immutable branch provided to
> driver core, SPI and GPIO.

Applied to reset/next, thanks!

[1/9] software node: read the reference args via the fwnode API
https://git.pengutronix.de/cgit/pza/linux/commit/?id=f11a8e996d5e
[2/9] software node: increase the reference of the swnode by its fwnode
https://git.pengutronix.de/cgit/pza/linux/commit/?id=0651933c117e
[3/9] software node: allow referencing firmware nodes
https://git.pengutronix.de/cgit/pza/linux/commit/?id=d7cdbbc93c56
[4/9] spi: cs42l43: Use actual ACPI firmware node for chip selects
https://git.pengutronix.de/cgit/pza/linux/commit/?id=d2a6cea44acc
[5/9] gpio: swnode: allow referencing GPIO chips by firmware nodes
https://git.pengutronix.de/cgit/pza/linux/commit/?id=216c12047571
[6/9] reset: order includes alphabetically in reset/core.c
https://git.pengutronix.de/cgit/pza/linux/commit/?id=97d85328e3dc
[7/9] reset: make the provider of reset-gpios the parent of the reset device
https://git.pengutronix.de/cgit/pza/linux/commit/?id=46dae84a90f9
[8/9] reset: gpio: convert the driver to using the auxiliary bus
https://git.pengutronix.de/cgit/pza/linux/commit/?id=109ce747ac22
[9/9] reset: gpio: use software nodes to setup the GPIO lookup
https://git.pengutronix.de/cgit/pza/linux/commit/?id=5fc4e4cf7a22

5fc4e4cf7a22 is tagged as reset-gpio-for-v6.19. I'll send a separate
pull request for it.

regards
Philipp