]> git.dujemihanovic.xyz Git - u-boot.git/commit
pinctrl: Check pinconfig nodes pre-reloc status recursively
authorJonas Karlman <jonas@kwiboo.se>
Sat, 17 Feb 2024 12:08:40 +0000 (12:08 +0000)
committerTom Rini <trini@konsulko.com>
Mon, 4 Mar 2024 15:25:41 +0000 (10:25 -0500)
commit1d01440b3f14f6648cd672da619489f635cb209c
treee89b50e9c4036041c0987826ae9df4725bbd7e87
parent14e110a1a439228e223b391a1fc83ec18753335d
pinctrl: Check pinconfig nodes pre-reloc status recursively

Pinconfig nodes normally bind recursively with PINCTRL_FULL and
PINCONF_RECURSIVE enabled. However, during U-Boot proper pre-relocation
any node marked with e.g. bootph-all will not bind unless its parent is
also marked for pre-reloc.

  group1 {
      pinconf1 {
          bootph-all;
      };
  };

This cause the following warning message to be shown during U-Boot
proper pre-reloc stage on Rockchip devices, e.g on RK3568:

  ns16550_serial serial@fe660000: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19

and on RK3328:

  ns16550_serial serial@ff130000: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19

Check pinconfig nodes pre-reloc status recursively to fix this and to
make pinconfig_post_bind work same at both U-Boot proper pre-reloc and
at TPL/SPL stage.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
drivers/pinctrl/pinctrl-uclass.c