AnsweredAssumed Answered

Device tree setup for BCM4343W

Question asked by jayakumar2 on Jul 19, 2017
Latest reply on Jul 20, 2017 by igorpadykov

Hi,

 

I have a new board using i.mx6sololite interfaced via SD3 (mmc2) to a BCM4343W wifi/bluetooth chip. I'm using Linux 4.1.15. I'm running into a bit of trouble getting the chip detected. I wanted to check if anyone else has a working device tree setup that is similar so that I can compare if I've made some mistakes in the configuration. My current configuration is:

 

wlan_en_reg: fixedregulator {
compatible = "regulator-fixed";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-name = "wlan_enable_regulator";
gpio = <&gpio5 10>; //active high /* this is WL_REG_ON/WIFI_REG_ON/SD1_DAT7/GPIO5_IO10 */
enable-active-high;
startup-delay-us = <100>;
};

 

&usdhc3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc3>;
no-1-8-v;
non-removable;
cd-post;
pm-ignore-notify;
bus-width = <4>;
vmmc-supply = <&wlan_en_reg>;
keep-power-in-suspend;
enable-sdio-wakeup;
needs-special-hs-handling;
status = "okay";
wifi-host;

bcmdhd_wlan_0: bcmdhd_wlan@0 {
compatible = "android,bcmdhd_wlan";
wlreg_on-supply = <&wlan_en_reg>;
};

};

 

pinctrl_usdhc3: usdhc3grp {
fsl,pins = <
MX6SL_PAD_SD3_CMD__SD3_CMD 0x17059
MX6SL_PAD_SD3_CLK__SD3_CLK 0x10059
MX6SL_PAD_SD3_DAT0__SD3_DATA0 0x17059
MX6SL_PAD_SD3_DAT1__SD3_DATA1 0x17059
MX6SL_PAD_SD3_DAT2__SD3_DATA2 0x17059
MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x17059
MX6SL_PAD_SD1_DAT6__GPIO5_IO07 0x13059 /* wlan irq for solace */
MX6SL_PAD_SD1_DAT7__GPIO5_IO10 0x13059 /* wlan en for solace */
>;
};

 

With these settings, I'm getting the following bootup output:

sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
/soc/aips-bus@02100000/usdhc@02190000: voltage-ranges unspecified
sdhci-esdhc-imx 2190000.usdhc: No vmmc regulator found
sdhci-esdhc-imx 2190000.usdhc: No vqmmc regulator found
mmc0: SDHCI controller on 2190000.usdhc [2190000.usdhc] using DMA
/soc/aips-bus@02100000/usdhc@02194000: voltage-ranges unspecified
sdhci-esdhc-imx 2194000.usdhc: No vmmc regulator found
sdhci-esdhc-imx 2194000.usdhc: No vqmmc regulator found
mmc0: host does not support reading read-only switch, assuming write-enable
mmc1: SDHCI controller on 2194000.usdhc [2194000.usdhc] using DMA
/soc/aips-bus@02100000/usdhc@02198000: voltage-ranges unspecified
sdhci-esdhc-imx 2198000.usdhc: assigned as wifi host
sdhci-esdhc-imx 2198000.usdhc: Failed getting OCR mask: 0
mmc0: new high speed SDHC card at address 0007
sdhci-esdhc-imx 2198000.usdhc: No vqmmc regulator found
mmcblk0: mmc0:0007 Y008B 7.42 GiB
sdhci-esdhc-imx 2198000.usdhc: could not set regulator OCR (-22)
mmcblk0: p1 p2
sdhci-esdhc-imx 2198000.usdhc: could not set regulator OCR (-22)
mmc2: SDHCI controller on 2198000.usdhc [2198000.usdhc] using DMA

 

The other SD/MMC interfaces on mmc0 and mmc1 are working fine. But mmc2 is not detecting the chip. It is a 5V chip so I thought my regulator settings are correct. As an experiment, I also tried:

 

wlan_en_reg: fixedregulator {
compatible = "regulator-fixed";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-name = "wlan_enable_regulator";
gpio = <&gpio5 10 GPIO_ACTIVE_HIGH>; //active high /* this is WL_REG_ON/WIFI_REG_ON/SD1_DAT7/GPIO5_IO10 */
output-high;
enable-active-high;
};

 

&usdhc3 {
non-removable;
no-1-8-v;
bus-width = <4>;
cap-power-off-card;
vmmc-supply = <&wlan_en_reg>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc3>;
keep-power-in-suspend;
enable-sdio-wakeup;
needs-special-hs-handling;
status = "okay";

};

 

and I got a similar set of errors:

 

sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
/soc/aips-bus@02100000/usdhc@02190000: voltage-ranges unspecified
sdhci-esdhc-imx 2190000.usdhc: No vmmc regulator found
sdhci-esdhc-imx 2190000.usdhc: No vqmmc regulator found
mmc0: SDHCI controller on 2190000.usdhc [2190000.usdhc] using DMA
/soc/aips-bus@02100000/usdhc@02194000: voltage-ranges unspecified
sdhci-esdhc-imx 2194000.usdhc: No vmmc regulator found
sdhci-esdhc-imx 2194000.usdhc: No vqmmc regulator found
mmc0: host does not support reading read-only switch, assuming write-enable
mmc1: SDHCI controller on 2194000.usdhc [2194000.usdhc] using DMA
/soc/aips-bus@02100000/usdhc@02198000: voltage-ranges unspecified
sdhci-esdhc-imx 2198000.usdhc: No vqmmc regulator found
mmc0: new high speed SDHC card at address 0007
mmcblk0: mmc0:0007 Y008B 7.42 GiB
mmcblk0: p1 p2
mmc2: SDHCI controller on 2198000.usdhc [2198000.usdhc] using DMA

 

Thanks in advance for any suggestions / feedback.

Outcomes