Other Parts Discussed in Thread: WL1835, WL1271
Hi all,
I am using a custom board based on AM3352 and having Wi-Fi chip on mmc2 interface. I am using TI processor-sdk-04.00.00.04 for my development.
ISSUE:
I have configured my device tree properly to support WL1835 on mmc2. I can see the WL_EN function as expected upon kernel boot.
The issue is, kernel does not detect the mmc2 interface what-so-ever at boot. I don't see any logs of mmc2 initialization. Below is my device tree info for WL1835 chip on mmc2:
wlan_en_reg: fixedregulator@2 {
compatible = "regulator-fixed";
regulator-name = "wlan_en_reg";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
/* WLAN_EN GPIO for this board - Bank3, pin4 */
gpio = <&gpio3 4 0>;
/* WLAN card specific delay */
startup-delay-us = <70000>;
enable-active-high;
};
mmc3_pins: pinmux_mmc3_pins {
pinctrl-single,pins = <
0x30 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad12.mmc2_dat0, INPUT_PULLUP | MODE3 */
0x34 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad13.mmc2_dat1, INPUT_PULLUP | MODE3 */
0x38 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad14.mmc2_dat2, INPUT_PULLUP | MODE3 */
0x3c (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad15.mmc2_dat3, INPUT_PULLUP | MODE3 */
0x88 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_csn3.mmc2_cmd, INPUT_PULLUP | MODE3 */
0x8C (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_clk.mmc2_clk, INPUT_PULLUP | MODE3 */
>;
};
wlan_pins: pinmux_wlan_pins {
pinctrl-single,pins = <
0x118 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gmii1_rxdv.gpio3_4 WL_EN */
0x98 (PIN_INPUT | MUX_MODE7) /* gpmc_wen.gpio2_4 WL_IRQ */
>;
};
&mmc3 {
/* these are on the crossbar and are outlined in the
xbar-event-map element */
dmas = <&edma 12
&edma 13>;
dma-names = "tx", "rx";
status = "okay";
vmmc-supply = <&wlan_en_reg>;
bus-width = <4>;
pinctrl-names = "default";
pinctrl-0 = <&mmc3_pins &wlan_pins>;
ti,non-removable;
ti,needs-special-hs-handling;
cap-power-off-card;
keep-power-in-suspend;
#address-cells = <1>;
#size-cells = <0>;
wlcore: wlcore@2 {
compatible = "ti,wl1835";
reg = <2>;
interrupt-parent = <&gpio2>;
interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
};
};
I have tried modifying the delay above, yet there is no success.
One more finding is, if I keep the wlan_en_reg in enable-active-low state or if I give mmc3 and fixed "vmmc-supply", kernel can detect the mmc2 interface, of course WL1835 won't function but I can see the kernel try to probe wlcore.
Please suggest me where I am wrong.
Thanks and Regards,
Divyeshkumar M