On Tue, Oct 27, 2026 at 11:00:57AM -0400, [email protected] wrote: > From: Frank Li <[email protected]> > > Add a GPIO mux controller to describe the onboard signal multiplexer. > Previously, the device tree relied on the hardware reset defaults to > select the mux state. Now that the kernel supports the pinctrl-multiplexer > framework, describe the onboard mux explicitly and let the kernel configure > the required routing. > > Prepare for additional device tree overlays that require different mux > configurations. > > Remove the regulator-m2uart1sel node, which incorrectly modeled the board > mux as a regulator. > > There are no backward compatibility concerns, as the affected functions > (lpuart1 for Bluetooth, spi3, and m4_lpuart) are not used by existing other > users such as U-Boot. > > Signed-off-by: Frank Li <[email protected]> > --- > change in v4 > - add idle-state = <1> (sashiko AI) > - ref to spi0_fun for sai0 > --- > arch/arm64/boot/dts/freescale/imx8dxl-evk.dts | 80 > +++++++++++++++++++++++---- > 1 file changed, 68 insertions(+), 12 deletions(-) > > diff --git a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts > b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts > index 71eff3efa6d32..f21ac208bf00e 100644 > --- a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts > +++ b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts > @@ -97,14 +97,70 @@ vdev0buffer: vdev0buffer@90400000 { > }; > }; > > - m2_uart1_sel: regulator-m2uart1sel { > - compatible = "regulator-fixed"; > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - regulator-name = "m2_uart1_sel"; > - gpio = <&pca6416_1 6 GPIO_ACTIVE_HIGH>; > - enable-active-high; > - regulator-always-on; > + m4_debug_mux: mux-controller-0 { > + compatible = "gpio-mux"; > + #mux-control-cells = <0>; > + #mux-state-cells = <1>; > + idle-state = <1>; > + mux-gpios = <&pca6416_1 3 GPIO_ACTIVE_HIGH>; > + }; > + > + spi3_mux: mux-controller-1 { > + compatible = "gpio-mux"; > + #mux-control-cells = <0>; > + #mux-state-cells = <1>; > + idle-state = <1>; > + mux-gpios = <&pca6416_1 4 GPIO_ACTIVE_HIGH>; > + }; > + > + uart1_mux: mux-controller-2 { > + compatible = "gpio-mux"; > + #mux-control-cells = <0>; > + #mux-state-cells = <1>; > + mux-gpios = <&pca6416_1 6 GPIO_ACTIVE_HIGH>; > + }; > + > + spi0_mux: mux-controller-3 { > + compatible = "gpio-mux"; > + #mux-control-cells = <0>; > + #mux-state-cells = <1>; > + mux-gpios = <&pca6416_1 7 GPIO_ACTIVE_HIGH>; > + }; > + > + pinctrl-gpiomux { > + compatible = "pinctrl-multiplexer"; > + > + m4_debug_fun: cm4-uart-grp { > + mux-states = <&m4_debug_mux 1>; > + }; > + > + spi0_fun: spi0-grp { > + mux-states = <&spi0_mux 1>; > + }; > + > + spi3_fun: spi3-grp { > + mux-states = <&spi3_mux 1>; > + }; > + > + uart1_fun: uart1-grp { > + mux-states = <&uart1_mux 1>; > + }; > + > + lcd_0_fun: lcd0-grp { > + mux-states = <&spi0_mux 0>; > + }; > + > + lcd_1_fun: lcd1-grp { > + mux-states = <&spi3_mux 0>; > + }; > + > + lcd_2_fun: lcd2-grp { > + mux-states = <&uart1_mux 0>; > + }; > + > + lcd_3_fun: lcd3-grp { > + mux-states = <&m4_debug_mux 0>; > + };
A lot of fun above! :) Joke aside, wouldn't it be more appropriate to replace 'fun' with 'func' in those label suffixes above? Otherwise: Acked-by: Laurentiu Palcu <[email protected]> -- Thanks, Laurentiu
