This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

WL1271 WLAN IRQ behaviour during startup

Other Parts Discussed in Thread: WL1271, OMAP3530

We have a system that uses OMAP3530 and a LSR TiWi R2 module (copied from the OMAP3530 evm + Wl1271 daughtercard).    As far as we know the system is working correctly on a small number of units.  System is running 2.6.32 kernel with (I think) WL1271 SDK v3.0.01.06-WL6.1.6.3 General Available Release derived binaries.

Looking at the WLAN IRQ signal from the TiWi module to the OMAP with an oscilloscope, I see some odd behavior.

1) before I load the tiwlan_drv.ko the signal is low - signal is expected to be active low, it's odd that the module default state for an interrupt is active.

2) after initiating loading the tiwlan_drv.ko module, the signal goes to about 1V.  There are some low pulses, and then it holds at 1V.  The IO voltage on the TiWi and OMAP is 1.8V.

3) when I run ifconfig up tiwlan0 the signal changes to the correct 1.8V and starts periodically interrupting and the system works as expected.

The signal is a direct connect between the TiWi and GPIO149 on the omap.  There are no other pullups/pulldowns.

My main concern is in the period where the signal is at 1V on a 1.8V GPIO.  Does anything in the tiwlan_drv.ko and later steps rely on proper functioning of the interrupt before the ifconfig command does whatever it does to set the IO drive correctly?  Are we just getting lucky with the voltage thresholds on the chips we have?

I assume there are different drive options in the WL1271 that get set up.  I checked the OMAP GPIO pinmux on GPIO149 (interrupt line) and from u-boot the pin is setup as an input with no pullup/pulldown.  After tiwlan_drv.ko the pinmux is changed to a pulldown and doesn't change.

 

  • Are you seeing this behavior on the omap3 evm? Let us try on the EVM and let you know our observations.

    Regards,

    Sinoj

     

  • The pin-mux configuration for the mmc2, the wl_en and the wlan_irq is done in the tiwlan_drv.ko. Also, gpio_149 is registered as interrupt in the tiwlan_drv.ko. So, the wlan_irq sequence will be as follows;

    1. Before loading the tiwlan_drv.ko -  Reset value in pad config register (CONTROL_PADCONF_UART1_TX)( irq line is low)

    2. While loading the driver - The wlan_irq (gpio_149) is set to input and pull-up. since the wifi core is down, the wl1271 cannot drive irq to 1.8v. 

    3. While doing ifconfig - The wl1271 drives irq to proper 1.8v; works as expected.

    Thanks,

    Sinoj