[PATCH] gpio: uclass: Introduce gpio-hog-optional property

Tom Rini trini at konsulko.com
Wed Sep 14 16:16:46 CEST 2022


On Wed, Sep 14, 2022 at 08:59:52AM -0500, Nate Drude wrote:
> Hi Simon,
> 
> On 9/14/22 7:49 AM, Simon Glass wrote:
> > Hi Nate,
> > 
> > On Mon, 12 Sept 2022 at 14:57, Nate Drude <nate.d at variscite.com> wrote:
> > > 
> > > Hi Simon and Fabio,
> > > 
> > > On 9/12/22 3:16 PM, Simon Glass wrote:
> > > > Hi,
> > > > 
> > > > On Mon, 12 Sept 2022 at 12:48, Fabio Estevam <festevam at gmail.com> wrote:
> > > > > 
> > > > > Hi Nate and Simon,
> > > > > 
> > > > > On Mon, Sep 12, 2022 at 2:55 PM Nate Drude <nate.d at variscite.com> wrote:
> > > > > > 
> > > > > > gpio_hog_probe_all is invoked by init_sequence_r in board_r.c.
> > > > > > If device_probe fails for any gpio-hog, boot hangs with the following error:
> > > > > > 
> > > > > > > initcall sequence 00000000fffc8e18 failed at call 000000004023b320 (err=-121)
> > > > > > > ### ERROR ### Please RESET the board ###
> > > > > > 
> > > > > > gpio-hog-optional allows the boot sequence to continue if device_probe
> > > > > > fails for optional gpio-hog(s).
> > > > > > 
> > > > > > Signed-off-by: Nate Drude <nate.d at variscite.com>
> > > > > > ---
> > > > > >    doc/device-tree-bindings/gpio/gpio.txt | 1 +
> > > > > >    drivers/gpio/gpio-uclass.c             | 4 +++-
> > > > > >    2 files changed, 4 insertions(+), 1 deletion(-)
> > > > > > 
> > > > > > diff --git a/doc/device-tree-bindings/gpio/gpio.txt b/doc/device-tree-bindings/gpio/gpio.txt
> > > > > > index 1481ed607d..02d296316b 100644
> > > > > > --- a/doc/device-tree-bindings/gpio/gpio.txt
> > > > > > +++ b/doc/device-tree-bindings/gpio/gpio.txt
> > > > > > @@ -189,6 +189,7 @@ gpio-controller's driver probe function.
> > > > > >    Each GPIO hog definition is represented as a child node of the GPIO controller.
> > > > > >    Required properties:
> > > > > >    - gpio-hog:   A property specifying that this child node represents a GPIO hog.
> > > > > > +- gpio-hog-optional: A property specifying to continue boot when device_probe fails in gpio_hog_probe_all
> > > > > 
> > > > > gpio-hog-optional property does not exist in Linux.
> > > > > 
> > > > > If this property is introduced then U-Boot and Linux devicetrees will
> > > > > not be in sync.
> > > > > 
> > > > > Can this be fixed differently?
> > > > 
> > > > Nate, can you send a patch to Linux with the binding update?
> > > > 
> > > > Regards,
> > > > Simon
> > > 
> > > Thanks for your responses and feedback.
> > > 
> > > I don't think gpio-hog-optional is relevant to Linux.
> > 
> > Sure, but Linux is (for better or worse) the main repo for the device
> > tree bindings.
> 
> I am not understanding the action. I think you're suggesting I update the
> Linux device tree bindings so they stay aligned with U-Boot, adding a
> property gpio-hog-optional after this line: https://github.com/torvalds/linux/blob/v6.0-rc5/Documentation/devicetree/bindings/gpio/gpio.txt#L191
> 
> However, since it's not relevant to Linux, I think it will be confusing
> since it will have no effect and won't be be used in any Linux code.
> 
> Can you please advise what description I should use for the
> gpio-hog-optional property so that the Linux maintainers would accept such a
> patch?

Yes, that would be one way to go about this, and there are other
non-Linux bindings in the Linux kernel tree, but this might be the first
property of an existing binding, so that might also be a bit challenging
to get accepted, or find out what the preferred solution is.

[snip]
> > > Do you have any suggestions for a better approach? Does it make sense
> > > for gpio_hog_probe_all to cause a fatal error when the gpio hog probe
> > > fails (most devices, including the gpio-expander, will not cause a hang
> > > if they fail to probe)?
> > 
> > I think your approach is fine as is.
> 
> An alternate approach is to modify the default behavior so that
> gpio_hog_probe_all will not trigger a fatal error. Do you think this is
> better?

This too would be acceptable.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20220914/3eb65a30/attachment.sig>


More information about the U-Boot mailing list