[PATCH 3/6] arm64: dts: imx943-evk: add i2c io expander support

Frank Li Frank.li at nxp.com
Mon May 19 11:47:41 PDT 2025


On Thu, May 15, 2025 at 01:18:57PM +0800, Shengjiu Wang wrote:
> From: Carlos Song <carlos.song at nxp.com>
>
> Add i2c io expander support for imx943 evk board.
>
> Signed-off-by: Carlos Song <carlos.song at nxp.com>
> Signed-off-by: Shengjiu Wang <shengjiu.wang at nxp.com>

Reviewed-by: Frank Li <Frank.Li at nxp.com>

> ---
>  arch/arm64/boot/dts/freescale/imx943-evk.dts | 105 +++++++++++++++++++
>  1 file changed, 105 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
> index a566b9d8b813..ff6e9ac5477f 100644
> --- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
> @@ -62,6 +62,13 @@ &lpi2c3 {
>  	pinctrl-names = "default";
>  	status = "okay";
>
> +	pca9670_i2c3: gpio at 23 {
> +		compatible = "nxp,pca9670";
> +		reg = <0x23>;
> +		#gpio-cells = <2>;
> +		gpio-controller;
> +	};
> +
>  	pca9548_i2c3: i2c-mux at 77 {
>  		compatible = "nxp,pca9548";
>  		reg = <0x77>;
> @@ -102,18 +109,63 @@ i2c at 5 {
>  			reg = <5>;
>  			#address-cells = <1>;
>  			#size-cells = <0>;
> +
> +			pcal6416_i2c3_u46: gpio at 20 {
> +				compatible = "nxp,pcal6416";
> +				reg = <0x20>;
> +				#gpio-cells = <2>;
> +				gpio-controller;
> +
> +				sd-card-on-hog {
> +					gpios = <13 GPIO_ACTIVE_HIGH>;
> +					gpio-hog;
> +					output-high;
> +				};
> +			};
> +
> +			pcal6416_i2c3_u171: gpio at 21 {
> +				compatible = "nxp,pcal6416";
> +				reg = <0x21>;
> +				#gpio-cells = <2>;
> +				gpio-controller;
> +			};
>  		};
>
>  		i2c at 6 {
>  			reg = <6>;
>  			#address-cells = <1>;
>  			#size-cells = <0>;
> +
> +			pcal6416_i2c3_u48: gpio at 20 {
> +				compatible = "nxp,pcal6416";
> +				reg = <0x20>;
> +				#interrupt-cells = <2>;
> +				interrupt-controller;
> +				interrupt-parent = <&gpio3>;
> +				interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
> +				#gpio-cells = <2>;
> +				gpio-controller;
> +				pinctrl-0 = <&pinctrl_ioexpander_int>;
> +				pinctrl-names = "default";
> +			};
>  		};
>
>  		i2c at 7 {
>  			reg = <7>;
>  			#address-cells = <1>;
>  			#size-cells = <0>;
> +
> +			pcal6408_i2c3_u172: gpio at 20 {
> +				compatible = "nxp,pcal6408";
> +				reg = <0x20>;
> +				#interrupt-cells = <2>;
> +				interrupt-controller;
> +				interrupt-parent = <&gpio3>;
> +				/* shared int pin with u48 */
> +				interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
> +				#gpio-cells = <2>;
> +				gpio-controller;
> +			};
>  		};
>  	};
>  };
> @@ -147,18 +199,59 @@ i2c at 1 {
>  			reg = <1>;
>  			#address-cells = <1>;
>  			#size-cells = <0>;
> +
> +			pcal6416_i2c6_u50: gpio at 21 {
> +				compatible = "nxp,pcal6416";
> +				reg = <0x21>;
> +				#gpio-cells = <2>;
> +				gpio-controller;
> +			};
>  		};
>
>  		i2c at 2 {
>  			reg = <2>;
>  			#address-cells = <1>;
>  			#size-cells = <0>;
> +
> +			pcal6408_i2c6_u170: gpio at 20 {
> +				compatible = "nxp,pcal6408";
> +				reg = <0x20>;
> +				#interrupt-cells = <2>;
> +				interrupt-controller;
> +				interrupt-parent = <&gpio4>;
> +				interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
> +				#gpio-cells = <2>;
> +				gpio-controller;
> +				pinctrl-0 = <&pinctrl_ioexpander_int2>;
> +				pinctrl-names = "default";
> +			};
>  		};
>
>  		i2c at 3 {
>  			reg = <3>;
>  			#address-cells = <1>;
>  			#size-cells = <0>;
> +
> +			pcal6416_i2c6_u44: gpio at 20 {
> +				compatible = "nxp,pcal6416";
> +				reg = <0x20>;
> +				#gpio-cells = <2>;
> +				gpio-controller;
> +
> +				/* eMMC IOMUX selection */
> +				sd1-sel-hog {
> +					gpios = <0 GPIO_ACTIVE_HIGH>;
> +					gpio-hog;
> +					output-high;
> +				};
> +
> +				/* SD card IOMUX selection */
> +				sd2-sel-hog {
> +					gpios = <1 GPIO_ACTIVE_HIGH>;
> +					gpio-hog;
> +					output-high;
> +				};
> +			};
>  		};
>  	};
>  };
> @@ -171,6 +264,18 @@ &lpuart1 {
>
>  &scmi_iomuxc {
>
> +	pinctrl_ioexpander_int2: ioexpanderint2grp {
> +		fsl,pins = <
> +			IMX94_PAD_CCM_CLKO4__GPIO4_IO3		0x31e
> +		>;
> +	};
> +
> +	pinctrl_ioexpander_int: ioexpanderintgrp {
> +		fsl,pins = <
> +			IMX94_PAD_GPIO_IO45__GPIO3_IO13		0x31e
> +		>;
> +	};
> +
>  	pinctrl_lpi2c3: lpi2c3grp {
>  		fsl,pins = <
>  			IMX94_PAD_GPIO_IO16__LPI2C3_SDA		0x40000b9e
> --
> 2.34.1
>



More information about the linux-arm-kernel mailing list