Difference between revisions of "Mux instructions"

From IGEP - ISEE Wiki

Jump to: navigation, search
Line 78: Line 78:
  
 
Set sdmmc2_dat6 to gpio138 (mode 4):  
 
Set sdmmc2_dat6 to gpio138 (mode 4):  
<pre>echo 0x004 &gt; sdmmc2_dat6 </pre>  
+
<pre>echo 0x004 &gt; sdmmc2_dat7</pre>  
 
Revise that:  
 
Revise that:  
<pre>root@localhost:/sys/kernel/debug/omap_mux# cat sdmmc2_dat6
+
<pre>root@localhost:/sys/kernel/debug/omap_mux# cat sdmmc2_dat7
name: sdmmc2_dat6.gpio_138 (0x48002168/0x138 = 0x0004), b af3, t NA
+
name: sdmmc2_dat7.gpio_139 (0x4800216a/0x13a = 0x0004), b ae3, t NA
 
mode: OMAP_PIN_OUTPUT | OMAP_MUX_MODE4
 
mode: OMAP_PIN_OUTPUT | OMAP_MUX_MODE4
signals: sdmmc2_dat6 | sdmmc2_dir_cmd | cam_shutter | sdmmc3_dat2 | gpio_138 | hsusb3_tll_dir | NA | safe_mode
+
signals: sdmmc2_dat7 | sdmmc2_clkin | NA | sdmmc3_dat3 | gpio_139 | hsusb3_tll_nxt | mm3_rxdm | safe_mode
 
root@localhost:/sys/kernel/debug/omap_mux#  
 
root@localhost:/sys/kernel/debug/omap_mux#  
 
</pre>  
 
</pre>  
 
Go to: /sys/class/gpio/  
 
Go to: /sys/class/gpio/  
  
Check that gpio138 is in user space:  
+
Check that gpio139 is in user space:  
 
<pre>root@localhost:/sys/class/gpio# ls
 
<pre>root@localhost:/sys/class/gpio# ls
export   gpio137  gpio140 gpio157 gpio64       gpiochip160 gpiochip64
+
export gpio137  gpio138  gpio139 gpio170 gpio64  gpiochip0 gpiochip128 gpiochip160 gpiochip192  gpiochip32 gpiochip64 gpiochip96 unexport
gpio126 gpio138 gpio141 gpio167  gpiochip0    gpiochip192  gpiochip96
 
gpio136 gpio139 gpio156 gpio170  gpiochip128  gpiochip32  unexport
 
 
root@localhost:/sys/class/gpio#  
 
root@localhost:/sys/class/gpio#  
 
</pre>  
 
</pre>  
If you don't have it, you should export gpio138: <br>  
+
If you don't have it, you should export gpio139: <br>  
<pre>echo 138 &gt; /sys/class/gpio/export </pre>  
+
<pre>echo 139 &gt; /sys/class/gpio/export </pre>  
Set gpio138 to low value to disable bluetooth:  
+
Set gpio139 to low value to disable bluetooth:  
<pre>echo 0 &gt; /sys/class/gpio/gpio138/value</pre>  
+
<pre>echo 0 &gt; /sys/class/gpio/gpio139/value</pre>  
 
Revise that:  
 
Revise that:  
<pre>root@localhost:/sys/class/gpio# cat /sys/class/gpio/gpio138/value  
+
<pre>root@localhost:/sys/class/gpio# cat /sys/class/gpio/gpio139/value  
 
0
 
0
 
root@localhost:/sys/class/gpio#  
 
root@localhost:/sys/class/gpio#  
 
</pre>  
 
</pre>  
===== Second way (not tested):  =====
+
===== Second way :  =====
  
 
Configure kernel sources. Configuration will be permanent. There are many ways to edit source code, this method is focused for igep0020 RC without igep0022 support. <br> Go to [http://git.igep.es/?p=pub/scm/linux-omap-2.6.git;a=blob_plain;f=arch/arm/mach-omap2/board-igep00x0.c;hb=e620ef8e577d73681f16ab80471332286c1b9fd5 $(kernel path)/arch/arm/mach-omap2/board-igep00x0.c] and search next line: <br>  
 
Configure kernel sources. Configuration will be permanent. There are many ways to edit source code, this method is focused for igep0020 RC without igep0022 support. <br> Go to [http://git.igep.es/?p=pub/scm/linux-omap-2.6.git;a=blob_plain;f=arch/arm/mach-omap2/board-igep00x0.c;hb=e620ef8e577d73681f16ab80471332286c1b9fd5 $(kernel path)/arch/arm/mach-omap2/board-igep00x0.c] and search next line: <br>  

Revision as of 13:50, 1 February 2012

Overview

Detailed instructions to configure mux. See this page for more information.

Feedback and Contributing

At any point, if you see a mistake you can contribute to this How-To.

Disable Peripherals

BT/WIFI

See FAQ to see with pins need to configure. More information about configure BT and WIFI

Bluetooth

First way:

This mode has a issue, when your system reboot or shutdown you will need to configure again. Using user space to configure mux and disable bluetooth.

Logging with root user via SSH or Serial cable.

Go to /sys/kernel/debug/omap_mux/

Set sdmmc2_dat5 to gpio137 (mode 4):

echo 0x004 > sdmmc2_dat5 

Revise that:

root@localhost:/sys/kernel/debug/omap_mux# cat sdmmc2_dat5
name: sdmmc2_dat5.gpio_137 (0x48002166/0x136 = 0x0004), b ah3, t NA
mode: OMAP_PIN_OUTPUT | OMAP_MUX_MODE4
signals: sdmmc2_dat5 | sdmmc2_dir_dat1 | cam_global_reset | sdmmc3_dat1 | gpio_137 | hsusb3_tll_stp | mm3_rxdp | safe_mode

Go to: /sys/class/gpio/

Check that gpio137 is in user space:

root@localhost:/sys/class/gpio# ls
export  gpio137  gpio138  gpio139  gpio170  gpio64  gpiochip0  gpiochip128  gpiochip160  gpiochip192  gpiochip32  gpiochip64  gpiochip96  unexport
root@localhost:/sys/class/gpio# 

If you don't have it, you should export gpio137:

echo 137 > /sys/class/gpio/export 

Set gpio137 to low value to disable bluetooth:

echo 0 > /sys/class/gpio/gpio137/value

Revise that:

root@localhost:/sys/class/gpio# cat /sys/class/gpio/gpio137/value 
0
root@localhost:/sys/class/gpio# 
Second way:

Configure kernel sources. Configuration will be permanent. There are many ways to edit source code, this method is focused for igep0020 RC without igep0022 support.

Go to $(kernel path)/arch/arm/mach-omap2/board-igep0020.c and search next line:

	else if (hwrev == IGEP2_BOARD_HWREV_C)
		igep00x0_wifi_bt_init(IGEP2_RC_GPIO_WIFI_NPD,
			IGEP2_RC_GPIO_WIFI_NRESET, IGEP2_RC_GPIO_BT_NRESET,
			!opt); 

"igep00x0_wifi_bt_init" function initializes WIFI and Bluetooth peripherals. "opt" variable is used for disable Bluetooth in some cases: enabled (opt!=0) or disabled (opt==0). For example you can disable it permanently replacing "opt" by 1:

	else if (hwrev == IGEP2_BOARD_HWREV_C)
		igep00x0_wifi_bt_init(IGEP2_RC_GPIO_WIFI_NPD,
			IGEP2_RC_GPIO_WIFI_NRESET, IGEP2_RC_GPIO_BT_NRESET,
			!1); 

Compile kernel source code

Use this tutorial (Kernel) and this other (IGEPxloader) to install Linaro Headless with your custom kernel in SD card.  You can compile the IGEPxloader, but is not necessary.

WIFI

First way:

This mode has a issue, when your system reboot or shutdown you will need to configure again. Using user space to configure mux and disable WIFI.

NOTE: If you need bluetooth activate, configure it before disable WIFI. Follow this tutorial.

Logging with root user via SSH or Serial cable.

Go to /sys/kernel/debug/omap_mux/

Set sdmmc2_dat6 to gpio138 (mode 4):

echo 0x004 > sdmmc2_dat7

Revise that:

root@localhost:/sys/kernel/debug/omap_mux# cat sdmmc2_dat7
name: sdmmc2_dat7.gpio_139 (0x4800216a/0x13a = 0x0004), b ae3, t NA
mode: OMAP_PIN_OUTPUT | OMAP_MUX_MODE4
signals: sdmmc2_dat7 | sdmmc2_clkin | NA | sdmmc3_dat3 | gpio_139 | hsusb3_tll_nxt | mm3_rxdm | safe_mode
root@localhost:/sys/kernel/debug/omap_mux# 

Go to: /sys/class/gpio/

Check that gpio139 is in user space:

root@localhost:/sys/class/gpio# ls
export  gpio137  gpio138  gpio139  gpio170  gpio64  gpiochip0  gpiochip128  gpiochip160  gpiochip192  gpiochip32  gpiochip64  gpiochip96  unexport
root@localhost:/sys/class/gpio# 

If you don't have it, you should export gpio139:

echo 139 > /sys/class/gpio/export 

Set gpio139 to low value to disable bluetooth:

echo 0 > /sys/class/gpio/gpio139/value

Revise that:

root@localhost:/sys/class/gpio# cat /sys/class/gpio/gpio139/value 
0
root@localhost:/sys/class/gpio# 
Second way :

Configure kernel sources. Configuration will be permanent. There are many ways to edit source code, this method is focused for igep0020 RC without igep0022 support.
Go to $(kernel path)/arch/arm/mach-omap2/board-igep00x0.c and search next line:

	if ((gpio_request(wifi_nreset, "WIFI NRESET") == 0) &&
	    (gpio_direction_output(wifi_nreset, 1) == 0)) {
		gpio_export(wifi_nreset, 0);
		gpio_set_value(wifi_nreset, 0);
		udelay(10);
		gpio_set_value(wifi_nreset, 1);
	} else 

"igep00x0_wifi_bt_init" function initializes WIFI and Bluetooth peripherals, this code make a PWM to initialize WIFI. Edit lines to disable this initialization.

		if ((gpio_request(wifi_nreset, "WIFI NRESET") == 0) &&
	    (gpio_direction_output(wifi_nreset, 0) == 0)) {
		gpio_export(wifi_nreset, 0);

	} else 

Compile kernel source code

Use this tutorial (Kernel) and this other (IGEPxloader) to install Linaro Headless with your custom kernel in SD card.  You can compile the IGEPxloader, but is not necessary.

TP65950 PCM VSP

Disable BT audio

Default kernel  has disabled TWL4030 PCM voice interface output pins to high impedance, otherwise this module forces the level of mcbsp3_fsx and mcbsp3_clkx pins. To make sure, go to $(kernel path)/sound/soc/codecs/twl4030.c file already read:

	0x04, /* REG_VOICE_IF		(0xF)	*/

Enable BT audio

	0x00, /* REG_VOICE_IF		(0xF)	*/


Edit mux

UART1 in J990

Use ebuddies to configure UART1 in J990, go to igep.ini:

 board.ei485=  [yes, no]
               Format: <string>
               no: disable ei485, use UART1 as RS232, supported by igep0020
               default: yes

More information about RS485 here and here

You can test new configuration using this tutorial

GPIO in J990

Reset WIFI, BT or TPS if you use some pad shared with this connector,

Configure GPIO, don't use these GPIO in IGEP WIFI/BT versions.

Please contribute

More information here.

GPIO in JTAG

Please contribute

GPIO in JC30

Please contribute

GPIO in JA42

Please contribute

GPIO in JA41

Please contribute

GPIO in TP

Please contribute


Under construction