arm: pinctrl: Define .mux_mask field for NXP's SoC
authorLukasz Majewski <lukma@denx.de>
Fri, 27 Jun 2025 05:49:43 +0000 (07:49 +0200)
committerFabio Estevam <festevam@gmail.com>
Sun, 29 Jun 2025 13:07:55 +0000 (10:07 -0300)
commit612421af51e55a4d122565f3f1779d3725eca6e7
tree6ffb56121ef3f02c6bf47a0f847582f7322d6a32
parent2a775b0259a4949c261474e614ec66662971d819
arm: pinctrl: Define .mux_mask field for NXP's SoC

The commit e8a9521e649f
("vf500/vf610: synchronise device trees with linux")
has synchronized U-Boot's DTS with v5.19 Linux kernel.
It turned out that in Linux's upstream iomuxc node description the
'fsl,mux_mask' was missing, so the U-Boot's pinctrl driver for NXP's
Vybrid SoC was not working properly.

As by default the mux mask was set to 0, for example the vf610 based
boards (like BK4) were bricked, due to misconfiguration of gpio at
early boot stage.

The fix for all NXP eligible boards is to define .mux_mask field for
soc specific *pinctrl_soc_info structure and use it directly in pinctrl
MMIO driver, without the need to read the "fsl,mux_mask" property from
device tree.

This change brings the NXP's pinctrl driver in U-Boot closer to Linux
upstream one.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com> #for i.MX8ULP
arch/arm/dts/imx8ulp-evk-u-boot.dtsi
arch/arm/dts/imxrt1020.dtsi
arch/arm/dts/imxrt1170.dtsi
drivers/pinctrl/nxp/pinctrl-imx-mmio.c
drivers/pinctrl/nxp/pinctrl-imx8ulp.c
drivers/pinctrl/nxp/pinctrl-imxrt.c
drivers/pinctrl/nxp/pinctrl-vf610.c