]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: imx93-qsb/evk: add usdhc3 and lpuart5
authorFrank Li <Frank.Li@nxp.com>
Mon, 9 Jun 2025 16:52:34 +0000 (12:52 -0400)
committerShawn Guo <shawnguo@kernel.org>
Tue, 1 Jul 2025 14:16:55 +0000 (22:16 +0800)
Add usdhc3 and lpuart5 for imx93-9x9-qsb, imx93-11x11-evk and
imx93-14x14-evk, which connect to onboard wifi/bt module.

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
arch/arm64/boot/dts/freescale/imx93-14x14-evk.dts
arch/arm64/boot/dts/freescale/imx93-9x9-qsb.dts

index a6ebeb642eb650830cc36ff82c1c8327f9f1ce67..295eb8d90f03f656deeda662efa56fb812bfa3a4 100644 (file)
                gpio = <&adp5585 6 GPIO_ACTIVE_LOW>;
        };
 
+       reg_m2_pwr: regulator-m2-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "M.2-power";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pcal6524 13 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
        reg_usdhc2_vmmc: regulator-usdhc2 {
                compatible = "regulator-fixed";
                pinctrl-names = "default";
                enable-active-high;
        };
 
+       reg_usdhc3_vmmc: regulator-usdhc3 {
+               compatible = "regulator-fixed";
+               regulator-name = "WLAN_EN";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&reg_m2_pwr>;
+               gpio = <&pcal6524 20 GPIO_ACTIVE_HIGH>;
+               /*
+                * IW612 wifi chip needs more delay than other wifi chips to complete
+                * the host interface initialization after power up, otherwise the
+                * internal state of IW612 may be unstable, resulting in the failure of
+                * the SDIO3.0 switch voltage.
+                */
+               startup-delay-us = <20000>;
+               enable-active-high;
+       };
+
+       usdhc3_pwrseq: usdhc3_pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&pcal6524 12 GPIO_ACTIVE_LOW>;
+       };
+
        backlight_lvds: backlight-lvds {
                compatible = "pwm-backlight";
                pwms = <&adp5585 0 100000 0>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart5>;
        status = "okay";
+
+       bluetooth {
+               compatible = "nxp,88w8987-bt";
+       };
 };
 
 &micfil {
        no-mmc;
 };
 
+&usdhc3 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       pinctrl-0 = <&pinctrl_usdhc3>, <&pinctrl_usdhc3_wlan>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>, <&pinctrl_usdhc3_wlan>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>, <&pinctrl_usdhc3_wlan>;
+       pinctrl-3 = <&pinctrl_usdhc3_sleep>, <&pinctrl_usdhc3_wlan>;
+       mmc-pwrseq = <&usdhc3_pwrseq>;
+       vmmc-supply = <&reg_usdhc3_vmmc>;
+       bus-width = <4>;
+       keep-power-in-suspend;
+       non-removable;
+       wakeup-source;
+       status = "okay";
+};
+
 &wdog3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_wdog>;
                >;
        };
 
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__USDHC3_CLK            0x1582
+                       MX93_PAD_SD3_CMD__USDHC3_CMD            0x40001382
+                       MX93_PAD_SD3_DATA0__USDHC3_DATA0        0x40001382
+                       MX93_PAD_SD3_DATA1__USDHC3_DATA1        0x40001382
+                       MX93_PAD_SD3_DATA2__USDHC3_DATA2        0x40001382
+                       MX93_PAD_SD3_DATA3__USDHC3_DATA3        0x40001382
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__USDHC3_CLK            0x158e
+                       MX93_PAD_SD3_CMD__USDHC3_CMD            0x4000138e
+                       MX93_PAD_SD3_DATA0__USDHC3_DATA0        0x4000138e
+                       MX93_PAD_SD3_DATA1__USDHC3_DATA1        0x4000138e
+                       MX93_PAD_SD3_DATA2__USDHC3_DATA2        0x4000138e
+                       MX93_PAD_SD3_DATA3__USDHC3_DATA3        0x4000138e
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__USDHC3_CLK            0x15fe
+                       MX93_PAD_SD3_CMD__USDHC3_CMD            0x400013fe
+                       MX93_PAD_SD3_DATA0__USDHC3_DATA0        0x400013fe
+                       MX93_PAD_SD3_DATA1__USDHC3_DATA1        0x400013fe
+                       MX93_PAD_SD3_DATA2__USDHC3_DATA2        0x400013fe
+                       MX93_PAD_SD3_DATA3__USDHC3_DATA3        0x400013fe
+               >;
+       };
+
+       pinctrl_usdhc3_sleep: usdhc3grpsleepgrp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__GPIO3_IO20            0x31e
+                       MX93_PAD_SD3_CMD__GPIO3_IO21            0x31e
+                       MX93_PAD_SD3_DATA0__GPIO3_IO22          0x31e
+                       MX93_PAD_SD3_DATA1__GPIO3_IO23          0x31e
+                       MX93_PAD_SD3_DATA2__GPIO3_IO24          0x31e
+                       MX93_PAD_SD3_DATA3__GPIO3_IO25          0x31e
+               >;
+       };
+
+       pinctrl_usdhc3_wlan: usdhc3wlangrp {
+               fsl,pins = <
+                       MX93_PAD_CCM_CLKO1__GPIO3_IO26          0x31e
+               >;
+       };
+
        pinctrl_wdog: wdoggrp {
                fsl,pins = <
                        MX93_PAD_WDOG_ANY__WDOG1_WDOG_ANY       0x31e
index f556b6569a68ee602745a20de747bc2e68491ca4..c5d86b54ad33b47a81fa8f89c1f29e37d1c5e055 100644 (file)
                enable-active-high;
        };
 
+       reg_m2_pwr: regulator-m2-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "M.2-power";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pcal6524 13 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
        reg_usdhc2_vmmc: regulator-usdhc2 {
                compatible = "regulator-fixed";
                pinctrl-names = "default";
                off-on-delay-us = <12000>;
        };
 
+       reg_usdhc3_vmmc: regulator-usdhc3 {
+               compatible = "regulator-fixed";
+               regulator-name = "WLAN_EN";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&reg_m2_pwr>;
+               gpio = <&pcal6524 20 GPIO_ACTIVE_HIGH>;
+               /*
+                * IW612 wifi chip needs more delay than other wifi chips to complete
+                * the host interface initialization after power up, otherwise the
+                * internal state of IW612 may be unstable, resulting in the failure of
+                * the SDIO3.0 switch voltage.
+                */
+               startup-delay-us = <20000>;
+               enable-active-high;
+       };
+
        reg_vdd_12v: regulator-vdd-12v {
                compatible = "regulator-fixed";
                regulator-name = "reg_vdd_12v";
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <1800000>;
        };
+
+       usdhc3_pwrseq: usdhc3_pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&pcal6524 12 GPIO_ACTIVE_LOW>;
+       };
 };
 
 &adc1 {
        status = "okay";
 };
 
+&usdhc3 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       pinctrl-0 = <&pinctrl_usdhc3>, <&pinctrl_usdhc3_wlan>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>, <&pinctrl_usdhc3_wlan>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>, <&pinctrl_usdhc3_wlan>;
+       pinctrl-3 = <&pinctrl_usdhc3_sleep>, <&pinctrl_usdhc3_wlan>;
+       mmc-pwrseq = <&usdhc3_pwrseq>;
+       vmmc-supply = <&reg_usdhc3_vmmc>;
+       bus-width = <4>;
+       keep-power-in-suspend;
+       non-removable;
+       wakeup-source;
+       status = "okay";
+};
+
 &wdog3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_wdog>;
                >;
        };
 
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__USDHC3_CLK            0x1582
+                       MX93_PAD_SD3_CMD__USDHC3_CMD            0x40001382
+                       MX93_PAD_SD3_DATA0__USDHC3_DATA0        0x40001382
+                       MX93_PAD_SD3_DATA1__USDHC3_DATA1        0x40001382
+                       MX93_PAD_SD3_DATA2__USDHC3_DATA2        0x40001382
+                       MX93_PAD_SD3_DATA3__USDHC3_DATA3        0x40001382
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__USDHC3_CLK            0x158e
+                       MX93_PAD_SD3_CMD__USDHC3_CMD            0x4000138e
+                       MX93_PAD_SD3_DATA0__USDHC3_DATA0        0x4000138e
+                       MX93_PAD_SD3_DATA1__USDHC3_DATA1        0x4000138e
+                       MX93_PAD_SD3_DATA2__USDHC3_DATA2        0x4000138e
+                       MX93_PAD_SD3_DATA3__USDHC3_DATA3        0x4000138e
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__USDHC3_CLK            0x15fe
+                       MX93_PAD_SD3_CMD__USDHC3_CMD            0x400013fe
+                       MX93_PAD_SD3_DATA0__USDHC3_DATA0        0x400013fe
+                       MX93_PAD_SD3_DATA1__USDHC3_DATA1        0x400013fe
+                       MX93_PAD_SD3_DATA2__USDHC3_DATA2        0x400013fe
+                       MX93_PAD_SD3_DATA3__USDHC3_DATA3        0x400013fe
+               >;
+       };
+
+       pinctrl_usdhc3_sleep: usdhc3grpsleepgrp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__GPIO3_IO20            0x31e
+                       MX93_PAD_SD3_CMD__GPIO3_IO21            0x31e
+                       MX93_PAD_SD3_DATA0__GPIO3_IO22          0x31e
+                       MX93_PAD_SD3_DATA1__GPIO3_IO23          0x31e
+                       MX93_PAD_SD3_DATA2__GPIO3_IO24          0x31e
+                       MX93_PAD_SD3_DATA3__GPIO3_IO25          0x31e
+               >;
+       };
+
+       pinctrl_usdhc3_wlan: usdhc3wlangrp {
+               fsl,pins = <
+                       MX93_PAD_CCM_CLKO1__GPIO3_IO26    0x31e
+               >;
+       };
+
        pinctrl_wdog: wdoggrp {
                fsl,pins = <
                        MX93_PAD_WDOG_ANY__WDOG1_WDOG_ANY       0x31e
index cceca130c5b4e8c84769decce07b4fba31fb452a..f6f8d105b737e6db5962202777d05a031aa0d18c 100644 (file)
                enable-active-high;
        };
 
+       reg_m2_pwr: regulator-m2-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "M.2-power";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pcal6524 13 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
        reg_rpi_3v3: regulator-rpi {
                compatible = "regulator-fixed";
                regulator-name = "VDD_RPI_3V3";
                off-on-delay-us = <12000>;
        };
 
+       reg_usdhc3_vmmc: regulator-usdhc3 {
+               compatible = "regulator-fixed";
+               regulator-name = "WLAN_EN";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&reg_m2_pwr>;
+               gpio = <&pcal6524 20 GPIO_ACTIVE_HIGH>;
+               /*
+                * IW612 wifi chip needs more delay than other wifi chips to complete
+                * the host interface initialization after power up, otherwise the
+                * internal state of IW612 may be unstable, resulting in the failure of
+                * the SDIO3.0 switch voltage.
+                */
+               startup-delay-us = <20000>;
+               enable-active-high;
+       };
+
        sound-bt-sco {
                compatible = "simple-audio-card";
                simple-audio-card,name = "bt-sco-audio";
                        "IN3R", "AMIC",
                        "IN1R", "AMIC";
        };
+
+       usdhc3_pwrseq: usdhc3_pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&pcal6524 12 GPIO_ACTIVE_LOW>;
+       };
 };
 
 &adc1 {
        status = "okay";
 };
 
+&lpuart5 {
+       /* BT */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5>;
+       status = "okay";
+
+       bluetooth {
+               compatible = "nxp,88w8987-bt";
+       };
+};
+
 &micfil {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pdm>;
        status = "okay";
 };
 
+&usdhc3 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       mmc-pwrseq = <&usdhc3_pwrseq>;
+       vmmc-supply = <&reg_usdhc3_vmmc>;
+       bus-width = <4>;
+       keep-power-in-suspend;
+       non-removable;
+       wakeup-source;
+       status = "okay";
+};
+
 &wdog3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_wdog>;
                >;
        };
 
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__USDHC3_CLK            0x1582
+                       MX93_PAD_SD3_CMD__USDHC3_CMD            0x40001382
+                       MX93_PAD_SD3_DATA0__USDHC3_DATA0        0x40001382
+                       MX93_PAD_SD3_DATA1__USDHC3_DATA1        0x40001382
+                       MX93_PAD_SD3_DATA2__USDHC3_DATA2        0x40001382
+                       MX93_PAD_SD3_DATA3__USDHC3_DATA3        0x40001382
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__USDHC3_CLK            0x158e
+                       MX93_PAD_SD3_CMD__USDHC3_CMD            0x4000138e
+                       MX93_PAD_SD3_DATA0__USDHC3_DATA0        0x4000138e
+                       MX93_PAD_SD3_DATA1__USDHC3_DATA1        0x4000138e
+                       MX93_PAD_SD3_DATA2__USDHC3_DATA2        0x4000138e
+                       MX93_PAD_SD3_DATA3__USDHC3_DATA3        0x4000138e
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD3_CLK__USDHC3_CLK            0x15fe
+                       MX93_PAD_SD3_CMD__USDHC3_CMD            0x400013fe
+                       MX93_PAD_SD3_DATA0__USDHC3_DATA0        0x400013fe
+                       MX93_PAD_SD3_DATA1__USDHC3_DATA1        0x400013fe
+                       MX93_PAD_SD3_DATA2__USDHC3_DATA2        0x400013fe
+                       MX93_PAD_SD3_DATA3__USDHC3_DATA3        0x400013fe
+               >;
+       };
+
        pinctrl_wdog: wdoggrp {
                fsl,pins = <
                        MX93_PAD_WDOG_ANY__WDOG1_WDOG_ANY       0x31e