On 14.01.22 09:47, Ahmad Fatoum wrote: > From: Michael Riesch <michael.riesch@xxxxxxxxxxxxxx> > > We've so far relied on GPIO controllers being named "gpioX", while the > binding mandates gpio controllers being just called "gpio". This already > broke rk3288 support and rk3568.dtsi upstream also differs from the > version in barebox' arch/arm/dts in that regard. > > Instead, do like Linux does and use the alias to match the controllers to > the GPIO banks with a fallback to probe order. > > Fixes: 3f2f5980d517 ("dts: update to v5.16-rc1") > Signed-off-by: Michael Riesch <michael.riesch@xxxxxxxxxxxxxx> > [afa: drop strncmp in favor of id comparison, reword commit message] > Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> @Sascha, can this go into a master? V7 Rockchip boards should be broken without this. > --- > drivers/pinctrl/pinctrl-rockchip.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c > index 5cf77c58b218..ea748b600419 100644 > --- a/drivers/pinctrl/pinctrl-rockchip.c > +++ b/drivers/pinctrl/pinctrl-rockchip.c > @@ -877,18 +877,24 @@ static struct rockchip_pin_ctrl *rockchip_pinctrl_get_soc_data( > struct rockchip_pin_bank *bank; > char *name; > int grf_offs, pmu_offs, drv_grf_offs, drv_pmu_offs, i, j; > + int gpio = 0; > > match = of_match_node(rockchip_pinctrl_dt_match, node); > ctrl = (struct rockchip_pin_ctrl *)match->data; > > for_each_child_of_node(node, np) { > + int id; > + > if (!of_find_property(np, "gpio-controller", NULL)) > continue; > > + id = of_alias_get_id(np, "gpio"); > + if (id < 0) > + id = gpio++; > + > bank = ctrl->pin_banks; > for (i = 0; i < ctrl->nr_banks; ++i, ++bank) { > - name = bank->name; > - if (!strncmp(name, np->name, strlen(name))) { > + if (bank->bank_num == id) { > bank->of_node = np; > if (!rockchip_get_bank_data(bank, dev)) > bank->valid = true; > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox