diff --git a/arch/arm64/boot/dts/sunxi/sun60i-a733-bananapi-m8.dts b/arch/arm64/boot/dts/sunxi/sun60i-a733-bananapi-m8.dts index 07c0579e1..86c102a2d 100644 --- a/arch/arm64/boot/dts/sunxi/sun60i-a733-bananapi-m8.dts +++ b/arch/arm64/boot/dts/sunxi/sun60i-a733-bananapi-m8.dts @@ -60,6 +60,12 @@ regulator-boot-on; }; + wifi_pwrseq: wifi-pwrseq { + compatible = "mmc-pwrseq-simple"; + reset-gpios = <&r_pio PM 1 GPIO_ACTIVE_LOW>; + post-power-on-delay-ms = <200>; + }; + standby_param: standby_param { vdd-cpub = <0x00000004 0x00000000>; vdd-cpu = <0x00000010 0x00000000>; @@ -890,12 +896,14 @@ bus-width = <4>; no-mmc; no-sd; + non-removable; cap-sd-highspeed; /*sunxi-power-save-mode;*/ sunxi-dis-signal-vol-sw; cap-sdio-irq; keep-power-in-suspend; ignore-pm-notify; + mmc-pwrseq = <&wifi_pwrseq>; /* * The on-board Wi-Fi SDIO link is unstable at SDR104/200MHz on BPI-M8: * the card can probe once, then hit cmd7/cmd52 timeouts and re-enumerate. @@ -1667,7 +1675,7 @@ wlan_power = "axp8191-dcdc1", "axp8191-bldo5", "axp8191-cldo1"; /* vcc-wifi/vcc-pg/vcc-pm */ wlan_power_vol= <3300000>, <1800000>, <1800000>; wlan_busnum = <0x1>; - wlan_regon = <&r_pio PM 1 GPIO_ACTIVE_HIGH>; + /* PM1/WLAN_REGON is owned by wifi_pwrseq for pre-enumeration power-up. */ wlan_hostwake = <&r_pio PM 0 GPIO_ACTIVE_HIGH>; wakeup-source; }; diff --git a/arch/arm64/configs/sun60iw2p1_bsp_defconfig b/arch/arm64/configs/sun60iw2p1_bsp_defconfig index ef6806420..b9db46f9b 100644 --- a/arch/arm64/configs/sun60iw2p1_bsp_defconfig +++ b/arch/arm64/configs/sun60iw2p1_bsp_defconfig @@ -253,7 +253,7 @@ CONFIG_TYPEC=y CONFIG_USB_ROLE_SWITCH=y CONFIG_MMC=y # CONFIG_PWRSEQ_EMMC is not set -# CONFIG_PWRSEQ_SIMPLE is not set +CONFIG_PWRSEQ_SIMPLE=y CONFIG_MMC_CQHCI=y CONFIG_MMC_HSQ=y CONFIG_DMABUF_HEAPS=y