
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@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@gmail.com wrote:
Hi Nate and Simon,
On Mon, Sep 12, 2022 at 2:55 PM Nate Drude nate.d@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@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/bin...
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.