Hi,


From: Bob Feretich <bob.feretich@rafresearch.com>
To: gumstix-users@lists.sourceforge.net
Cc: gumstix-users-request@lists.sourceforge.net
Sent: Friday, August 17, 2012 12:48:52 PM
Subject: Re: [Gumstix-users] overo air, does the wifi needs the uart ?

Probably not. On the older versions (non-Storm), the Wifi/bt chip is connected to a mmc port.
This is still most likely true. (I have not examined a xxxStorm version Overo.)
The uart does not have the performance to run at WiFi speeds. (The mmc port is 4-bits wide.)

The TI OMAP chips have a pin muxing capability. This means that the internal peripheral controllers can be bought out on different physical pins. The various options are listed in the OMAP Technical Reference Manual.

In the case of the Overo Fire, it uses an integrated Wifi/Bluetooth chip. However, the WiFi module uses an MMC/SDIO channel. As for the Bluetooth/UART2 port, check the schematics and pin mux-settings to see if it is connected to the UART. I don't remember off-hand. 

If you want to enable UART2 on the Overo Fire, then you will have to end-up disabling the Bluetooth interface, to enable UART2 to allow it to be exposed on the expansion header.

For example, here is a patch that you can apply to u-boot to disable bluetooth and enable UART 2. You can add this patch to your u-boot OpenEmbedded recipe
and build u-boot. This approach sets the pin muxing at boottime. Another option is to reconfigure it in the kernel.

diff --git a/board/omap3/overo/overo.h b/board/omap3/overo/overo.h
index 0b59120..59dc76d 100644
--- a/board/omap3/overo/overo.h
+++ b/board/omap3/overo/overo.h
@@ -213,14 +213,14 @@ const omap3_sysinfo sysinfo = {
 MUX_VAL(CP(MMC2_DAT6), (IEN  | PTU | EN  | M1)) /*MMC2_DIR_CMD*/\
 MUX_VAL(CP(MMC2_DAT7), (IEN  | PTU | EN  | M1)) /*MMC2_CLKIN*/\
 /*Bluetooth*/\
- MUX_VAL(CP(MCBSP3_DX), (IEN  | PTD | DIS | M1)) /*UART2_CTS*/\
- MUX_VAL(CP(MCBSP3_DR), (IDIS | PTD | DIS | M1)) /*UART2_RTS*/\
- MUX_VAL(CP(MCBSP3_CLKX), (IDIS | PTD | DIS | M1)) /*UART2_TX*/\
- MUX_VAL(CP(MCBSP3_FSX), (IEN  | PTD | DIS | M1)) /*UART2_RX*/\
+ MUX_VAL(CP(MCBSP3_DX), (IDIS | PTD | DIS | M0)) /*McBSP3_DX*/\
+ MUX_VAL(CP(MCBSP3_DR), (IDIS | PTD | DIS | M0)) /*McBSP3_DR*/\
+ MUX_VAL(CP(MCBSP3_CLKX), (IDIS | PTD | DIS | M0)) /*McBSP3_CLKX*/\
+ MUX_VAL(CP(MCBSP3_FSX), (IDIS | PTD | DIS | M0)) /*McBSP3_FSX*/\
 MUX_VAL(CP(UART2_CTS), (IEN  | PTD | DIS | M4)) /*GPIO_144 - LCD_EN*/\
 MUX_VAL(CP(UART2_RTS), (IEN  | PTD | DIS | M4)) /*GPIO_145*/\
- MUX_VAL(CP(UART2_TX), (IEN  | PTD | DIS | M4)) /*GPIO_146*/\
- MUX_VAL(CP(UART2_RX), (IEN  | PTD | DIS | M4)) /*GPIO_147*/\
+ MUX_VAL(CP(UART2_TX), (IDIS | PTD | DIS | M0)) /*UART2_TX*/\
+ MUX_VAL(CP(UART2_RX), (IEN  | PTD | DIS | M0)) /*UART2_RX*/\
 MUX_VAL(CP(UART1_TX), (IDIS | PTD | DIS | M0)) /*UART1_TX*/\
 MUX_VAL(CP(UART1_RTS), (IEN  | PTU | DIS | M4)) /*GPIO_149*/ \
 MUX_VAL(CP(UART1_CTS), (IEN  | PTU | DIS | M4)) /*GPIO_150-MMC3_WP*/\
-- 

To find out more about the wifi interface and setup using MMC/SDIO interface, see the linux kernel sources and go through the file board-overo.c. In general, all embedded wifi solutions use an MMC/SDIO interface (e.g. TI WLAN WL1271 chipsets, etc).

Best regards,

Elvis Dowson