Commit ea452678 authored by Ulf Hansson's avatar Ulf Hansson

arm64: dts: hikey: Fix WiFi support

The description of the connection between the dwmmc (SDIO) controller and
the Wifi chip, which is attached to the SDIO bus is wrong. Currently the
SDIO card can't be detected and thus the Wifi doesn't work.

Let's fix this by assigning the correct vmmc supply, which is the always on
regulator VDD_3V3 and remove the WLAN enable regulator altogether. Then to
properly deal with the power on/off sequence, add a mmc-pwrseq node to
describe the resources needed to detect the SDIO card.

Except for the WLAN enable GPIO and its corresponding assert/de-assert
delays, the mmc-pwrseq node also contains a handle to a clock provided by
the hi655x pmic. This clock is also needed to be able to turn on the WiFi
chip.
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
parent 76f1dfb6
...@@ -111,6 +111,15 @@ reg_5v_hub: regulator@2 { ...@@ -111,6 +111,15 @@ reg_5v_hub: regulator@2 {
vin-supply = <&reg_sys_5v>; vin-supply = <&reg_sys_5v>;
}; };
wl1835_pwrseq: wl1835-pwrseq {
compatible = "mmc-pwrseq-simple";
/* WLAN_EN GPIO */
reset-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
clocks = <&pmic>;
clock-names = "ext_clock";
power-off-delay-us = <10>;
};
soc { soc {
spi0: spi@f7106000 { spi0: spi@f7106000 {
status = "ok"; status = "ok";
...@@ -307,11 +316,10 @@ dwmmc_1: dwmmc1@f723e000 { ...@@ -307,11 +316,10 @@ dwmmc_1: dwmmc1@f723e000 {
}; };
dwmmc_2: dwmmc2@f723f000 { dwmmc_2: dwmmc2@f723f000 {
broken-cd;
bus-width = <0x4>; bus-width = <0x4>;
non-removable; non-removable;
/* WL_EN */ vmmc-supply = <&reg_vdd_3v3>;
vmmc-supply = <&wlan_en_reg>; mmc-pwrseq = <&wl1835_pwrseq>;
#address-cells = <0x1>; #address-cells = <0x1>;
#size-cells = <0x0>; #size-cells = <0x0>;
...@@ -323,18 +331,6 @@ wlcore: wlcore@2 { ...@@ -323,18 +331,6 @@ wlcore: wlcore@2 {
interrupts = <3 IRQ_TYPE_EDGE_RISING>; interrupts = <3 IRQ_TYPE_EDGE_RISING>;
}; };
}; };
wlan_en_reg: regulator@1 {
compatible = "regulator-fixed";
regulator-name = "wlan-en-regulator";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
/* WLAN_EN GPIO */
gpio = <&gpio0 5 0>;
/* WLAN card specific delay */
startup-delay-us = <70000>;
enable-active-high;
};
}; };
leds { leds {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment