Commit fbb7c4a1 authored by Stephan Gerhold's avatar Stephan Gerhold Committed by Linus Walleij

ARM: dts: ux500: samsung-golden: Add WiFi

samsung-golden uses a BCM4334 WiFi+BT combo chip, connected to SDIO.
It is supported by the brcmfmac driver in mainline,
so we only need to set up the device tree to make it work correctly.

Note: brcmfmac requires (proprietary) firmware + a device-specific
NVRAM file. Both can be extracted from the stock Android system
used on samsung-golden:
  - /system/etc/wifi/bcmdhd_sta.bin_b2   -> /lib/firmware/brcm/brcmfmac4334-sdio.bin
  - /system/etc/wifi/nvram_net.txt_GPIO4 -> /lib/firmware/brcm/brcmfmac4334-sdio.samsung,golden.txt

brcmfmac4334-sdio.bin from linux-firmware also seems to work,
but results in occasional errors for some reason.
Signed-off-by: default avatarStephan Gerhold <stephan@gerhold.net>
Link: https://lore.kernel.org/r/20191219202052.19039-8-stephan@gerhold.netSigned-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 234a0387
......@@ -64,9 +64,27 @@ sdi1_per2@80118000 {
non-removable;
cap-sd-highspeed;
vmmc-supply = <&wl_reg_on>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&mc1_a_2_default>;
pinctrl-1 = <&mc1_a_2_sleep>;
#address-cells = <1>;
#size-cells = <0>;
wifi@1 {
compatible = "brcm,bcm4329-fmac";
reg = <1>;
/* GPIO216 (WLAN_HOST_WAKE) */
interrupt-parent = <&gpio6>;
interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
interrupt-names = "host-wake";
pinctrl-names = "default";
pinctrl-0 = <&wlan_default>;
};
};
/* eMMC */
......@@ -290,6 +308,28 @@ sd_level_translator: regulator-sd-level-translator {
pinctrl-names = "default";
pinctrl-0 = <&sd_level_translator_default>;
};
/*
* WL_REG_ON takes WLAN out of reset and enables the internal regulators.
* The voltage specified here is only used to determine the OCR mask,
* the BCM chip is actually connected directly to VBAT.
*/
wl_reg_on: regulator-wl-reg-on {
compatible = "regulator-fixed";
regulator-name = "wl-reg-on";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
startup-delay-us = <100000>;
/* GPIO215 (WLAN_EN) */
gpio = <&gpio6 23 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-names = "default";
pinctrl-0 = <&wlan_en_default>;
};
};
&pinctrl {
......@@ -340,6 +380,22 @@ golden_cfg1 {
};
};
wlan {
wlan_default: wlan_default {
golden_cfg1 {
pins = "GPIO216_AG12"; /* WLAN_HOST_WAKE */
ste,config = <&gpio_in_pd>;
};
};
wlan_en_default: wlan_en_default {
golden_cfg1 {
pins = "GPIO215_AH13"; /* WLAN_EN */
ste,config = <&gpio_out_lo>;
};
};
};
vibrator {
vibrator_default: vibrator_default {
golden_cfg1 {
......
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