
Hi Masahiro,
On 3 September 2015 at 21:43, Masahiro Yamada yamada.masahiro@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@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@chromium.org Tested on Firefly: Tested-by: Simon Glass sjg@chromium.org
Regards, Simon