We made a CPU board based on AM4378(broadly based on am437x-gp-evm) with onboard wireless LAN (WL1835MOD). Now I have the following problem in Wireless LAN.
- If I enter “iw wlan0 scan | grep SSID “from the command line, I got the error “command failed: Network is down (-100) “
- If I enter “cat /proc/interrupts | grep wl18xx “from the command line, I got the message as follows
209: 0 481ac000.gpio 21 Level wlxx
I hope that above “0” is not correct. It should be greater than “0”. How do I achieve this?
3. I am not able to ping my am4378 board to router. How do I achieve ping and scan SSID ?
Note : I am using Linksys wireless router with password protected.
I have added the following lines in the device tree source file,
&am43xx_pinmux {
pinctrl-names = "default", "sleep";
pinctrl-0 = <& wlan_irq_pins_default &ddr3_vtt_toggle_default>;
pinctrl-1 = <& wlan_irq_pins_sleep >;
ddr3_vtt_toggle_default: ddr_vtt_toggle_default {
pinctrl-single,pins = <
0x25C (DS0_PULL_UP_DOWN_EN | PIN_OUTPUT_PULLUP | DS0_FORCE_OFF_MODE | MUX_MODE7) /* spi0_cs0.gpio5_7 */
>;
};
mmc2_pins_default: mmc2_pins_default {
pinctrl-single,pins = <
0x13c ( PIN_INPUT | MUX_MODE6 ) /* (B16) mii1_rxd1.mmc2_clk */
0x114 ( PIN_OUTPUT | MUX_MODE6 ) /* (A13) mii1_tx_en.mmc2_cmd */
0x118 ( PIN_INPUT | MUX_MODE5 ) /* (A15) mii1_rx_dv.mmc2_dat0 */
0x11c ( PIN_INPUT | MUX_MODE5 ) /* (C16) mii1_txd3.mmc2_dat1 *
0x120 ( PIN_INPUT | MUX_MODE5 ) /* (C13) mii1_txd2.mmc2_dat2 */
0x108 ( PIN_INPUT | MUX_MODE5 ) /* (D16) mii1_col.mmc2_dat3 */
>;
};
/* Optional sleep pin settings. Must manually enter values in the below skeleton. */
mmc2_pins_sleep: mmc2_pins_sleep {
pinctrl-single,pins = <
0x13c ( ) /* (B16) mii1_rxd1.mmc2_clk */
0x114 ( ) /* (A13) mii1_tx_en.mmc2_cmd */
0x118 ( ) /* (A15) mii1_rx_dv.mmc2_dat0 */
0x11c ( ) /* (C16) mii1_txd3.mmc2_dat1 */
0x120 ( ) /* (C13) mii1_txd2.mmc2_dat2 */
0x108 ( ) /* (D16) mii1_col.mmc2_dat3 */
>;
};
wlan_irq_pins_default: wlan_irq_pins_default {
pinctrl-single,pins = <
0x140 ( PIN_INPUT | MUX_MODE2 ) /* (F17) mii1_rxd0.rgmii1_rd0 */
0x1a0 ( PIN_OUTPUT_PULLUP | MUX_MODE9 ) /* (L23) mcasp0_aclkr.gpio0[18] =>this line is connected to wireless & Bluetooth (wl1835) enable signal(pin no: 40&41 */
>;
};
/* Optional sleep pin settings. Must manually enter values in the below skeleton. */
wlan_irq_pins_sleep: wlan_irq_pins_sleep {
pinctrl-single,pins = <
0x140 ( ) /* (F17) mii1_rxd0.rgmii1_rd0 */
0x1a0 ( PIN_OUTPUT_PULLUP | MUX_MODE9 ) /* (L23) mcasp0_aclkr.gpio0[18] */
>;
};
Please clarify the below line,
0x1a0 ( PIN_OUTPUT_PULLUP | MUX_MODE9 ) /* (L23) mcasp0_aclkr.gpio0[18] =>this line is connected to wireless & Bluetooth (wl1835) enable signal of wl1835mod(pin no: 40&41) */
Does the above declaration is correct?
Note: If I use “PIN_OUTPUT_PULLDOWN” instead of “PIN_OUTPUT_PULLUP”, wireless module is not enabled.
The following things also I have done to make wireless module work.
- I built WL18xx module and copied the required file to file system. I referred below link to built WL18xx script.
http://processors.wiki.ti.com/index.php/WL18xx_System_Build_Scripts
- I initialized the wireless module using “configure-device.sh” after boots”
Note : I got a message also in the kernel boot log as “mmc2: new high speed SDIO crad at address 0001” . wl1835mod is connected as “mmc2”
Thanking you.
Regards,
Winiston.P