Other Parts Discussed in Thread: AM5726
Tool/software: Linux
We have a custom board with a Sitara AM5726 and WL1835MOD onboard. So far we've been unable to get Linux to initialize the WiFi module. We are using the latest 4.14 kernel from from TI's git repo. The following voltage check error keeps appearing in the startup logs.
[ 6.372827] mmc1: Skipping voltage switch [ 6.957203] mmc1: error -16 whilst initialising SDIO card [ 7.028006] sdhci-omap 480b4000.mmc: card claims to support voltages below defined range
And here are the relevant excerpts from our DTS.
/ { wlan_en_reg: smps8_reg { compatible = "regulator-fixed"; regulator-name = "wlan_en_reg"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; startup-delay-us = <70000>; // WLAN_EN GPIO for this board - Bank8, pin5 gpio = <&gpio8 5 GPIO_ACTIVE_HIGH>; enable-active-high; }; }; &dra7_pmx_core { mmc2_pins_std: pinmux_mmc2_pins_std { pinctrl-single,pins = < DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */ DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */ DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */ DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */ DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */ DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */ >; }; mmc2_pins_hs: pinmux_mmc2_pins_hs { pinctrl-single,pins = < DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */ DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */ DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */ DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */ DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */ DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */ >; }; mmc2_pins_ddr: pinmux_mmc2_pins_ddr { pinctrl-single,pins = < DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */ DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */ DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */ DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */ DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */ DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */ >; }; mmc2_pins_hs200: pinmux_mmc2_pins_hs200 { pinctrl-single,pins = < DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */ DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */ DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */ DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */ DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */ DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */ >; }; mmc2_wlan_pins: mmc2_wlan_pins { pinctrl-single,pins = < DRA7XX_CORE_IOPAD(0x4a0035ec, 0x0000e) /* bluetooth_en output pull_down */ DRA7XX_CORE_IOPAD(0x4a0035f0, 0x0000e) /* wlan_en output pull_down */ DRA7XX_CORE_IOPAD(0x4a0035f4, 0x5000e) /* wlan_sdio_irq input */ >; }; }; &mmc2 { vmmc-supply = <&wlan_en_reg>; vqmmc-supply = <&wlan_en_reg>; bus-width = <4>; max-frequency=<1000000>; status = "okay"; pinctrl-names = "default", "hs", "ddr50", "hs200", "sdr104", "sdr50", "sdr25", "sdr12", "ddr_1_8v", "hs200_1_8v"; pinctrl-0 = <&mmc2_pins_std &mmc2_wlan_pins>; pinctrl-1 = <&mmc2_pins_hs &mmc2_wlan_pins>; pinctrl-2 = <&mmc2_pins_ddr &mmc2_wlan_pins>; pinctrl-3 = <&mmc2_pins_hs200 &mmc2_wlan_pins &mmc2_iodelay_hs200_rev20_conf>; pinctrl-4 = <&mmc2_pins_std &mmc2_wlan_pins>; pinctrl-5 = <&mmc2_pins_std &mmc2_wlan_pins>; pinctrl-6 = <&mmc2_pins_std &mmc2_wlan_pins>; pinctrl-7 = <&mmc2_pins_std &mmc2_wlan_pins>; pinctrl-8 = <&mmc2_pins_ddr &mmc2_wlan_pins>; pinctrl-9 = <&mmc2_pins_hs200 &mmc2_wlan_pins &mmc2_iodelay_hs200_rev20_conf>; cd-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>; no-sd; no-mmc; mmc-hs200-1_8v; mmc-ddr-1_8v; ti,non-removable; non-removable; ti,needs-special-hs-handling; cap-power-off-card; keep-power-in-suspend; #address-cells = <1>; #size-cells = <0>; wlcore: wlcore@0 { compatible = "ti,wl1835"; reg = <2>; interrupt-parent = <&gpio8>; interrupts = <6 IRQ_TYPE_EDGE_RISING>; }; };