arm64: dts: imx8mq-librem5: add power sequencing for M.2 cards
authorAngus Ainslie <angus@akkea.ca>
Tue, 5 Oct 2021 13:49:00 +0000 (15:49 +0200)
committerShawn Guo <shawnguo@kernel.org>
Fri, 15 Oct 2021 01:44:50 +0000 (09:44 +0800)
Some wifi cards need reset asserted until after the power supplies
have been enabled.

So wire up the W_DISABLE signal for the SDIO port (WIFI_REG_ON net) and
the BT_REG_ON net to use it for power sequencing.

Signed-off-by: Angus Ainslie <angus@akkea.ca>
Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi

index 7a09312..396eb44 100644 (file)
                };
        };
 
+       usdhc2_pwrseq: pwrseq {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_bt>, <&pinctrl_wifi_disable>;
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>,
+                             <&gpio4 29 GPIO_ACTIVE_HIGH>;
+       };
+
        bm818_codec: sound-wwan-codec {
                compatible = "broadmobi,bm818", "option,gtm601";
                #sound-dai-cells = <0>;
                >;
        };
 
+       pinctrl_bt: btgrp {
+               fsl,pins = <
+                       /* BT_REG_ON */
+                       MX8MQ_IOMUXC_SAI5_MCLK_GPIO3_IO25       0x83
+               >;
+       };
+
        pinctrl_charger_in: chargeringrp {
                fsl,pins = <
                        /* CHRG_INT */
                >;
        };
 
+       pinctrl_wifi_disable: wifidisablegrp {
+               fsl,pins = <
+                       /* WIFI_REG_ON */
+                       MX8MQ_IOMUXC_SAI3_RXC_GPIO4_IO29        0x83
+               >;
+       };
+
        pinctrl_wifi_pwr: wifipwrgrp {
                fsl,pins = <
                        /* WIFI3V3_EN */
        pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
        bus-width = <4>;
        vmmc-supply = <&reg_wifi_3v3>;
+       mmc-pwrseq = <&usdhc2_pwrseq>;
        post-power-on-delay-ms = <1000>;
        cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
        disable-wp;