[U-Boot] [PATCH] pinctrl: move dm_scan_fdt_node() out of pinctrl uclass

Simon Glass sjg at chromium.org
Fri Sep 4 06:03:40 CEST 2015


Hi Masahiro,

On 3 September 2015 at 21:43, Masahiro Yamada
<yamada.masahiro at socionext.com> wrote:
> Commit c5acf4a2b3c6 ("pinctrl: Add the concept of peripheral IDs")
> added some additional change that was not mentioned in the git-log.
>
> That commit added dm_scan_fdt_node() in the pinctrl uclass binding.
> It should be handled by the simple-bus driver, and it is totally
> unrelated to pinctrl in the first place.

Actually you mentioned this before I never got back to it, sorry.

Do you mean that pinctrl is not supposed to have child nodes with
their own compatible strings?

>
> I guess Simon's motivation was to bind GPIO banks located under the
> Rockchip pinctrl device.  It is true some chips have sub-devices
> under their pinctrl devices, but it is basically SoC-specific matter.
>
> Keep only pinctrl-generic features in the uclass and move others
> to each low-level driver.
>
> By the way, this strategy produces code duplication between low-level
> drivers and the simple-bus driver.  Theoretically, it is possible to
> have multiple compatible strings like this:
>
>      compatible = "rockchip,rk3288-pinctrl", "simple-bus";
>
> Actually, some device trees do this and Linux can handle it properly,
> but for now U-Boot cannot.  In the current implementation of U-boot,
> only the best match ("rockchip,rk3288-pinctrl" in this case) is picked
> and the others are ignored.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>
> ---
>
>  drivers/pinctrl/pinctrl-uclass.c          | 15 +++++++++------
>  drivers/pinctrl/rockchip/pinctrl_rk3288.c |  8 ++++++++
>  2 files changed, 17 insertions(+), 6 deletions(-)

Acked-by: Simon Glass <sjg at chromium.org>
Tested on Firefly:
Tested-by: Simon Glass <sjg at chromium.org>

Regards,
Simon


More information about the U-Boot mailing list