]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: imx943-evk: add i2c io expander support
authorCarlos Song <carlos.song@nxp.com>
Wed, 28 May 2025 01:58:34 +0000 (09:58 +0800)
committerShawn Guo <shawnguo@kernel.org>
Mon, 30 Jun 2025 03:30:39 +0000 (11:30 +0800)
Add i2c io expander support for imx943 evk board.

Signed-off-by: Carlos Song <carlos.song@nxp.com>
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx943-evk.dts

index a566b9d8b81392a8d90742a25e5b3c96f9b8bc02..ff6e9ac5477ff0846f504968f1bd459a4f7bd0ff 100644 (file)
        pinctrl-names = "default";
        status = "okay";
 
+       pca9670_i2c3: gpio@23 {
+               compatible = "nxp,pca9670";
+               reg = <0x23>;
+               #gpio-cells = <2>;
+               gpio-controller;
+       };
+
        pca9548_i2c3: i2c-mux@77 {
                compatible = "nxp,pca9548";
                reg = <0x77>;
                        reg = <5>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+
+                       pcal6416_i2c3_u46: gpio@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@21 {
+                               compatible = "nxp,pcal6416";
+                               reg = <0x21>;
+                               #gpio-cells = <2>;
+                               gpio-controller;
+                       };
                };
 
                i2c@6 {
                        reg = <6>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+
+                       pcal6416_i2c3_u48: gpio@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@7 {
                        reg = <7>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+
+                       pcal6408_i2c3_u172: gpio@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;
+                       };
                };
        };
 };
                        reg = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+
+                       pcal6416_i2c6_u50: gpio@21 {
+                               compatible = "nxp,pcal6416";
+                               reg = <0x21>;
+                               #gpio-cells = <2>;
+                               gpio-controller;
+                       };
                };
 
                i2c@2 {
                        reg = <2>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+
+                       pcal6408_i2c6_u170: gpio@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@3 {
                        reg = <3>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+
+                       pcal6416_i2c6_u44: gpio@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;
+                               };
+                       };
                };
        };
 };
 
 &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