<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.gumstix.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Conor+O%27Rourke</id>
		<title>Gumstix User Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.gumstix.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Conor+O%27Rourke"/>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php/Special:Contributions/Conor_O%27Rourke"/>
		<updated>2026-04-13T11:57:52Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.3</generator>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6102</id>
		<title>Duovero Multiplexes</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6102"/>
				<updated>2014-09-26T13:24:43Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: Small address error (0x138+2 = 13A not 140)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How_to_-_linux]]&lt;br /&gt;
[[Category:Connect_hardware]]&lt;br /&gt;
&lt;br /&gt;
This wiki entry concentrates on the Duovero Parlor board and the Multiplexes available from the 40 pin connector.&lt;br /&gt;
&lt;br /&gt;
[[File:Duovero parlor conn small.png]]&lt;br /&gt;
&lt;br /&gt;
The ground pin is nearest the console connector port and the power pins are nearest the centre of the board. This is as of writing but it is highly recommended that you ''check'' before connecting! Use a voltmeter to check the 3.3V, 5V and 1.8V pins to familiarise yourself with the layout.&lt;br /&gt;
&lt;br /&gt;
There are also two connections on the Parlor board:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OMAP Pin !! GPIO # !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| AG24 || GPIO121 || user push button&lt;br /&gt;
|-&lt;br /&gt;
| AH24 || GPIO122 || user LED &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should start your journey [http://gumstix.org/hardware-design/duovero-coms.html here].&lt;br /&gt;
&lt;br /&gt;
The primary reference for multiplexes and pin functions is the Texas Instruments OMAP4 technical reference manual. The short version of that 6000 page manual is the OMAP4430 datasheet which is easier to search. The primary source reference is in the Uboot [https://github.com/gumstix/u-boot/tree/v2013.07/board/duovero code], specifically &amp;lt;tt&amp;gt;duovero_mux_data.h&amp;lt;/tt&amp;gt; which uses the defines from &amp;lt;tt&amp;gt;./arch/arm/include/asm/arch-omap4/mux_omap4.h&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Muxing ==&lt;br /&gt;
&lt;br /&gt;
A helpful post from Phil Lutz describes how multiplexing can be explored without kernel recompilation. The default multiplex for the user LED may not be set to GPIO in Uboot. It certainly is not set to GPIO by the OMAP itself. You can look at the OMAP datasheet on page 48 you can see that the official name for GPIO 122 pin is &amp;quot;abe_dmic_din3&amp;quot; (Mode 0 names are accepted pin names).&lt;br /&gt;
&lt;br /&gt;
This information can also be found by searching for &amp;quot;gpio_122&amp;quot; in the board pinmuxing configuration stored in sysfs: &amp;lt;tt&amp;gt;/sys/kernel/debug/omap_mux/board/core&amp;lt;/tt&amp;gt;. Every pin which can be configured as gpio has a hint about that.&lt;br /&gt;
&lt;br /&gt;
So now just check which is the current pinmuxing configuration for this pin by:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /sys/kernel/debug/omap_mux/abe_dmic_din3 &lt;br /&gt;
name: abe_dmic_din3.abe_dmic_din3 (0x4a100116/0x116 = 0x0100), b ah24, t NA&lt;br /&gt;
mode: OMAP_PIN_INPUT | OMAP_MUX_MODE0&lt;br /&gt;
signals: abe_dmic_din3 | slimbus2_data | abe_dmic_clk2 | gpio_122 | NA | dmtimer9_pwm_evt | NA | safe_mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the output suggests, the pin is configured in MODE0, this is 'abe_dmic_din3'. The other modes are listed in order as they appear in the OMAP data manual. gpio_122 is multiplex MODE 3. You can set it with:&lt;br /&gt;
&lt;br /&gt;
  $ echo 3 &amp;gt; /sys/kernel/debug/omap_mux/abe_dmic_din3&lt;br /&gt;
&lt;br /&gt;
Now you can turn on and off the LED using the usual gpio configuration in /sys/class/gpio/ (google it!). Note that &amp;quot;echo 3&amp;quot; does more than set Mode 3. The number is a selection of bits that set various states for the pin. A quick summary is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;100pt&amp;quot; |Bit 0,1,2 || Set the mode&lt;br /&gt;
|-&lt;br /&gt;
|Bit 3 || 0 = pull up/down disabled , 1 = enabled&lt;br /&gt;
|-&lt;br /&gt;
|Bit 4 || 0 = pull down, 1 = pull up&lt;br /&gt;
|-&lt;br /&gt;
|Bit 8 || 0 = Output only. 1 = input enable (bidirectional)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are more but these are for sleep modes and wakeup. The manual has details. The defines in mux_omap4.h are useful for interpreting the duovero_mux_data.h file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|IEN            || 1 &amp;lt;&amp;lt; 8   || Input enable (bidirectional)&lt;br /&gt;
|-&lt;br /&gt;
|IDIS           || 0 &amp;lt;&amp;lt; 8   || Output only&lt;br /&gt;
|-&lt;br /&gt;
|PTU   &amp;amp;nbsp;   || 3 &amp;lt;&amp;lt; 3 &amp;amp;nbsp;  || Enable Pullup&lt;br /&gt;
|-&lt;br /&gt;
|PTD            || 1 &amp;lt;&amp;lt; 3   || Enable Pulldown&lt;br /&gt;
|-&lt;br /&gt;
|EN             || 1 &amp;lt;&amp;lt; 3   || PU/PD enable&lt;br /&gt;
|-&lt;br /&gt;
|DIS            || 0 &amp;lt;&amp;lt; 3   || PU/PD disable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parlor pin mux table ==&lt;br /&gt;
&lt;br /&gt;
To assist in figuring out which pins on the Parlor board can be assigned to which duties, here's a table of functions. Mode 7 is &amp;quot;safe_mode&amp;quot; where the pin is effectively disconnected from any functionality. It's set to high impedance (Z) and is left out of the table. The bolded functions are those set by the current U-Boot duovero_mux_data.h. This file sets other parameters (eg: output only, disable pullup/pulldown, etc) and you must refer to the U-Boot file to know what the full state is. A partial indication of the state (wake mode) is indicated in the table by arrows (bidirectional, output, pullup, pulldown).&lt;br /&gt;
&lt;br /&gt;
Underneath the Connector entries are the IOPAD mux address offsets and under each gpio entry is the corresponding GPIO register and bit offset. These numbers are useful for device tree purposes. The gpio numbers are calculated simply as: &amp;lt;tt&amp;gt;register = int(gpionumber / 32) + 1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;offset = gpionumber % 32&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Connector Description !! OMAP Pin !! Reset state !! Mode 0 !! Mode 1 !! Mode 2 !! Mode 3 !! Mode 4 !! Mode 5 !! Mode 6&lt;br /&gt;
|-&lt;br /&gt;
| User LED&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x116&amp;lt;/small&amp;gt;        || AH24 || M7, Pulldown &amp;amp;nbsp; || '''abe_dmic_din3''' &amp;amp;hArr; || slimbus2_data || abe_dmic_clk2 || gpio_122 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[26]&amp;lt;/small&amp;gt; || - || dmtimer9_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| Button&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x114&amp;lt;/small&amp;gt;          || AG24 || M7, Pulldown || '''abe_dmic_din2''' &amp;amp;hArr;        || slimbus2_clock || abe_mcasp_axr  || gpio_121 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[25]&amp;lt;/small&amp;gt; || - || dmtimer11_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| 04: MCSPI1_CS0 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x138&amp;lt;/small&amp;gt;  || AE23 || M7, Pulldown || '''mcspi1_cs0''' &amp;amp;hArr;&amp;amp;darr;     ||   -       ||       -        || gpio_137 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[9]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 06: MCSPI1_CS1 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x13A&amp;lt;/small&amp;gt;  || AF23 || M7, Pulldown || '''mcspi1_cs1''' &amp;amp;hArr;&amp;amp;darr;     || uart1_rx  ||       -        || gpio_138 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[10]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 08: MCSPI1_CS2 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x13C&amp;lt;/small&amp;gt;  || AG23 || M7, Pullup   || mcspi1_cs2                        || uart1_cts || slimbus2_clock || gpio_139 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[11]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 10: MCSPI1_CS3 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x13E&amp;lt;/small&amp;gt;  || AH23 || M7, Pullup   || mcspi1_cs3                        || uart1_rts || slimbus2_data  || gpio_140 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[12]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 03: MCSPI1_CLK &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x132&amp;lt;/small&amp;gt;  || AF22 || M7, Pulldown || '''mcspi1_clk''' &amp;amp;hArr;           || -         ||       -        || gpio_134 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[6]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 05: MCSPI1_SIMO &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x136&amp;lt;/small&amp;gt; || AG22 || M7, Pulldown || '''mcspi1_simo''' &amp;amp;hArr;          || -         ||       -        || gpio_136 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[8]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 07: MCSPI1_SOMI &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x134&amp;lt;/small&amp;gt; || AE22 || M7, Pulldown || '''mcspi1_somi''' &amp;amp;hArr;          || -         ||       -        || gpio_135 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[7]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 09: HDQ_SIO&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x120&amp;lt;/small&amp;gt;  || AA27 || M7, Z        || '''hdq_sio''' &amp;amp;rArr;              || i2c3_sccb || i2c2_sccb      || gpio_127 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[31]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 12: I2C2_SCL&amp;lt;sup&amp;gt;c&amp;lt;/sup&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x126&amp;lt;/small&amp;gt; || C26  || M7, Pullup   || '''i2c2_scl''' &amp;amp;hArr;&amp;amp;uarr;       || uart1_rx  ||       -        || gpio_128 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[0]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 14: I2C2_SDA&amp;lt;sup&amp;gt;c&amp;lt;/sup&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x128&amp;lt;/small&amp;gt; || D26  || M7, Pullup   || '''i2c2_sda''' &amp;amp;hArr;&amp;amp;uarr;       || uart1_tx  ||       -        || gpio_129 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[1]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 11: SDMMC3_CMD &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x174&amp;lt;/small&amp;gt;  || AG10 || M7, Pullup   || usbb2_ulpitll_dat6 || usbb2_ulpiphy_dat6 || sdmmc3_cmd || '''gpio_167''' &amp;amp;hArr;&amp;amp;uarr; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO6[7]&amp;lt;/small&amp;gt; || mcspi3_simo || dispc2_data12 || rfbi_data12&lt;br /&gt;
|-&lt;br /&gt;
| 13: SDMMC3_CLK &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x176&amp;lt;/small&amp;gt;  || AE9  || M7, Pullup   || usbb2_ulpitll_dat7 || usbb2_ulpiphy_dat7 || sdmmc3_clk || '''gpio_168''' &amp;amp;hArr;&amp;amp;uarr; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO6[8]&amp;lt;/small&amp;gt; || mcspi3_clk || dispc2_data11 || rfbi_data11&lt;br /&gt;
|-&lt;br /&gt;
| 15: UART2_TX &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x11E&amp;lt;/small&amp;gt;    || AA26 || M7, Pullup   || '''uart2_tx''' &amp;amp;rArr;         || sdmmc3_dat1  || -         || gpio_126 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[30]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 17: UART2_RX &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x11C&amp;lt;/small&amp;gt;    || AA25 || M7, Pullup   || '''uart2_rx''' &amp;amp;hArr;&amp;amp;uarr;   || sdmmc3_dat0  || -         || gpio_125 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[29]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 19: BSP2_CLKX &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x0F6&amp;lt;/small&amp;gt;   || AD27 || M7, Pulldown || '''abe_mcbsp2_clkx''' &amp;amp;hArr;  || mcspi2_clk || abe_mcasp_ahclkx || gpio_110 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[14]&amp;lt;/small&amp;gt; || usbb2_mm_rxdm || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 20: BSP2_FSX &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x0FC&amp;lt;/small&amp;gt;    || AC28 || M7, Pulldown || '''abe_mcbsp2_fsx''' &amp;amp;hArr;   || mcspi2_cs0 || abe_mcasp_afsx || gpio_113 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[17]&amp;lt;/small&amp;gt; || usbb2_mm_txen || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 21: BSP2_DX &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x0FA&amp;lt;/small&amp;gt;     || AD25 || M7, Pulldown || '''abe_mcbsp2_dx''' &amp;amp;rArr;    || mcspi2_simo || abe_mcasp_amute || gpio_112 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[16]&amp;lt;/small&amp;gt; || usbb2_mm_rxrcv || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 22: BSP2_DR &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x0F8&amp;lt;/small&amp;gt;     || AD26 || M7, Pulldown || '''abe_mcbsp2_dr''' &amp;amp;hArr;    || mcspi2_somi || abe_mcasp_axr || gpio_111 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[15]&amp;lt;/small&amp;gt; || usbb2_mm_rxdp || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 23: BSP_CLKS &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x10E&amp;lt;/small&amp;gt;    || AH26 || M7, Pulldown || '''abe_clks''' &amp;amp;hArr;&amp;amp;darr;   || - || - || gpio_118 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[22]&amp;lt;/small&amp;gt; || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 25: MCSPI4_SOMI &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x158&amp;lt;/small&amp;gt; || AF21 || M7, Pullup   || '''mcspi4_somi''' &amp;amp;hArr;      || sdmmc4_dat0 || kpd_row6 || gpio_153 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[25]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 27: MCSPI4_SIMO &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x156&amp;lt;/small&amp;gt; || AF20 || M7, Pullup   || '''mcspi4_simo''' &amp;amp;hArr;      || sdmmc4_cmd  || kpd_col7 || gpio_152 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[24]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 29: MCSPI4_CLK &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x154&amp;lt;/small&amp;gt;  || AE21 || M7, Pulldown || '''mcspi4_clk'''  &amp;amp;hArr;      || sdmmc4_clk  || kpd_col6 || gpio_151 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[23]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 31: MCSPI4_CS0 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x15A&amp;lt;/small&amp;gt;  || AE20 || M7, Pullup   || '''mcspi4_cs0''' &amp;amp;hArr;&amp;amp;darr; || sdmmc4_dat3 || kpd_row7 || gpio_154 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[26]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
a) Assigned as such in u-boot but reassigned in the kernel board startup code to Mode 3 Outputs&lt;br /&gt;
&lt;br /&gt;
b) There is a 10K pull up to 1.8V, internal to the DuoVero COM, on the HDQ_SIO line. Do &amp;lt;i&amp;gt;not&amp;lt;/i&amp;gt; enable a pull down on this line. This will result in a non-logic output level (approximately 1V). This is currently considered to be a bug and may be removed in future COM revisions.&lt;br /&gt;
&lt;br /&gt;
c) There are pullups on I2C2 and I2C3 of approximately 1K. S/C current is over 2mA.&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6101</id>
		<title>Duovero Multiplexes</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6101"/>
				<updated>2014-09-26T13:21:27Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: Addition of OMAP4_IOPAD address offsets for DTS purposes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How_to_-_linux]]&lt;br /&gt;
[[Category:Connect_hardware]]&lt;br /&gt;
&lt;br /&gt;
This wiki entry concentrates on the Duovero Parlor board and the Multiplexes available from the 40 pin connector.&lt;br /&gt;
&lt;br /&gt;
[[File:Duovero parlor conn small.png]]&lt;br /&gt;
&lt;br /&gt;
The ground pin is nearest the console connector port and the power pins are nearest the centre of the board. This is as of writing but it is highly recommended that you ''check'' before connecting! Use a voltmeter to check the 3.3V, 5V and 1.8V pins to familiarise yourself with the layout.&lt;br /&gt;
&lt;br /&gt;
There are also two connections on the Parlor board:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OMAP Pin !! GPIO # !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| AG24 || GPIO121 || user push button&lt;br /&gt;
|-&lt;br /&gt;
| AH24 || GPIO122 || user LED &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should start your journey [http://gumstix.org/hardware-design/duovero-coms.html here].&lt;br /&gt;
&lt;br /&gt;
The primary reference for multiplexes and pin functions is the Texas Instruments OMAP4 technical reference manual. The short version of that 6000 page manual is the OMAP4430 datasheet which is easier to search. The primary source reference is in the Uboot [https://github.com/gumstix/u-boot/tree/v2013.07/board/duovero code], specifically &amp;lt;tt&amp;gt;duovero_mux_data.h&amp;lt;/tt&amp;gt; which uses the defines from &amp;lt;tt&amp;gt;./arch/arm/include/asm/arch-omap4/mux_omap4.h&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Muxing ==&lt;br /&gt;
&lt;br /&gt;
A helpful post from Phil Lutz describes how multiplexing can be explored without kernel recompilation. The default multiplex for the user LED may not be set to GPIO in Uboot. It certainly is not set to GPIO by the OMAP itself. You can look at the OMAP datasheet on page 48 you can see that the official name for GPIO 122 pin is &amp;quot;abe_dmic_din3&amp;quot; (Mode 0 names are accepted pin names).&lt;br /&gt;
&lt;br /&gt;
This information can also be found by searching for &amp;quot;gpio_122&amp;quot; in the board pinmuxing configuration stored in sysfs: &amp;lt;tt&amp;gt;/sys/kernel/debug/omap_mux/board/core&amp;lt;/tt&amp;gt;. Every pin which can be configured as gpio has a hint about that.&lt;br /&gt;
&lt;br /&gt;
So now just check which is the current pinmuxing configuration for this pin by:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /sys/kernel/debug/omap_mux/abe_dmic_din3 &lt;br /&gt;
name: abe_dmic_din3.abe_dmic_din3 (0x4a100116/0x116 = 0x0100), b ah24, t NA&lt;br /&gt;
mode: OMAP_PIN_INPUT | OMAP_MUX_MODE0&lt;br /&gt;
signals: abe_dmic_din3 | slimbus2_data | abe_dmic_clk2 | gpio_122 | NA | dmtimer9_pwm_evt | NA | safe_mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the output suggests, the pin is configured in MODE0, this is 'abe_dmic_din3'. The other modes are listed in order as they appear in the OMAP data manual. gpio_122 is multiplex MODE 3. You can set it with:&lt;br /&gt;
&lt;br /&gt;
  $ echo 3 &amp;gt; /sys/kernel/debug/omap_mux/abe_dmic_din3&lt;br /&gt;
&lt;br /&gt;
Now you can turn on and off the LED using the usual gpio configuration in /sys/class/gpio/ (google it!). Note that &amp;quot;echo 3&amp;quot; does more than set Mode 3. The number is a selection of bits that set various states for the pin. A quick summary is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;100pt&amp;quot; |Bit 0,1,2 || Set the mode&lt;br /&gt;
|-&lt;br /&gt;
|Bit 3 || 0 = pull up/down disabled , 1 = enabled&lt;br /&gt;
|-&lt;br /&gt;
|Bit 4 || 0 = pull down, 1 = pull up&lt;br /&gt;
|-&lt;br /&gt;
|Bit 8 || 0 = Output only. 1 = input enable (bidirectional)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are more but these are for sleep modes and wakeup. The manual has details. The defines in mux_omap4.h are useful for interpreting the duovero_mux_data.h file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|IEN            || 1 &amp;lt;&amp;lt; 8   || Input enable (bidirectional)&lt;br /&gt;
|-&lt;br /&gt;
|IDIS           || 0 &amp;lt;&amp;lt; 8   || Output only&lt;br /&gt;
|-&lt;br /&gt;
|PTU   &amp;amp;nbsp;   || 3 &amp;lt;&amp;lt; 3 &amp;amp;nbsp;  || Enable Pullup&lt;br /&gt;
|-&lt;br /&gt;
|PTD            || 1 &amp;lt;&amp;lt; 3   || Enable Pulldown&lt;br /&gt;
|-&lt;br /&gt;
|EN             || 1 &amp;lt;&amp;lt; 3   || PU/PD enable&lt;br /&gt;
|-&lt;br /&gt;
|DIS            || 0 &amp;lt;&amp;lt; 3   || PU/PD disable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parlor pin mux table ==&lt;br /&gt;
&lt;br /&gt;
To assist in figuring out which pins on the Parlor board can be assigned to which duties, here's a table of functions. Mode 7 is &amp;quot;safe_mode&amp;quot; where the pin is effectively disconnected from any functionality. It's set to high impedance (Z) and is left out of the table. The bolded functions are those set by the current U-Boot duovero_mux_data.h. This file sets other parameters (eg: output only, disable pullup/pulldown, etc) and you must refer to the U-Boot file to know what the full state is. A partial indication of the state (wake mode) is indicated in the table by arrows (bidirectional, output, pullup, pulldown).&lt;br /&gt;
&lt;br /&gt;
Underneath the Connector entries are the IOPAD mux address offsets and under each gpio entry is the corresponding GPIO register and bit offset. These numbers are useful for device tree purposes. The gpio numbers are calculated simply as: &amp;lt;tt&amp;gt;register = int(gpionumber / 32) + 1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;offset = gpionumber % 32&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Connector Description !! OMAP Pin !! Reset state !! Mode 0 !! Mode 1 !! Mode 2 !! Mode 3 !! Mode 4 !! Mode 5 !! Mode 6&lt;br /&gt;
|-&lt;br /&gt;
| User LED&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x116&amp;lt;/small&amp;gt;        || AH24 || M7, Pulldown &amp;amp;nbsp; || '''abe_dmic_din3''' &amp;amp;hArr; || slimbus2_data || abe_dmic_clk2 || gpio_122 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[26]&amp;lt;/small&amp;gt; || - || dmtimer9_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| Button&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x114&amp;lt;/small&amp;gt;          || AG24 || M7, Pulldown || '''abe_dmic_din2''' &amp;amp;hArr;        || slimbus2_clock || abe_mcasp_axr  || gpio_121 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[25]&amp;lt;/small&amp;gt; || - || dmtimer11_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| 04: MCSPI1_CS0 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x138&amp;lt;/small&amp;gt;  || AE23 || M7, Pulldown || '''mcspi1_cs0''' &amp;amp;hArr;&amp;amp;darr;     ||   -       ||       -        || gpio_137 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[9]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 06: MCSPI1_CS1 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x140&amp;lt;/small&amp;gt;  || AF23 || M7, Pulldown || '''mcspi1_cs1''' &amp;amp;hArr;&amp;amp;darr;     || uart1_rx  ||       -        || gpio_138 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[10]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 08: MCSPI1_CS2 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x13C&amp;lt;/small&amp;gt;  || AG23 || M7, Pullup   || mcspi1_cs2                        || uart1_cts || slimbus2_clock || gpio_139 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[11]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 10: MCSPI1_CS3 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x13E&amp;lt;/small&amp;gt;  || AH23 || M7, Pullup   || mcspi1_cs3                        || uart1_rts || slimbus2_data  || gpio_140 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[12]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 03: MCSPI1_CLK &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x132&amp;lt;/small&amp;gt;  || AF22 || M7, Pulldown || '''mcspi1_clk''' &amp;amp;hArr;           || -         ||       -        || gpio_134 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[6]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 05: MCSPI1_SIMO &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x136&amp;lt;/small&amp;gt; || AG22 || M7, Pulldown || '''mcspi1_simo''' &amp;amp;hArr;          || -         ||       -        || gpio_136 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[8]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 07: MCSPI1_SOMI &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x134&amp;lt;/small&amp;gt; || AE22 || M7, Pulldown || '''mcspi1_somi''' &amp;amp;hArr;          || -         ||       -        || gpio_135 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[7]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 09: HDQ_SIO&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x120&amp;lt;/small&amp;gt;  || AA27 || M7, Z        || '''hdq_sio''' &amp;amp;rArr;              || i2c3_sccb || i2c2_sccb      || gpio_127 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[31]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 12: I2C2_SCL&amp;lt;sup&amp;gt;c&amp;lt;/sup&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x126&amp;lt;/small&amp;gt; || C26  || M7, Pullup   || '''i2c2_scl''' &amp;amp;hArr;&amp;amp;uarr;       || uart1_rx  ||       -        || gpio_128 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[0]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 14: I2C2_SDA&amp;lt;sup&amp;gt;c&amp;lt;/sup&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x128&amp;lt;/small&amp;gt; || D26  || M7, Pullup   || '''i2c2_sda''' &amp;amp;hArr;&amp;amp;uarr;       || uart1_tx  ||       -        || gpio_129 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[1]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 11: SDMMC3_CMD &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x174&amp;lt;/small&amp;gt;  || AG10 || M7, Pullup   || usbb2_ulpitll_dat6 || usbb2_ulpiphy_dat6 || sdmmc3_cmd || '''gpio_167''' &amp;amp;hArr;&amp;amp;uarr; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO6[7]&amp;lt;/small&amp;gt; || mcspi3_simo || dispc2_data12 || rfbi_data12&lt;br /&gt;
|-&lt;br /&gt;
| 13: SDMMC3_CLK &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x176&amp;lt;/small&amp;gt;  || AE9  || M7, Pullup   || usbb2_ulpitll_dat7 || usbb2_ulpiphy_dat7 || sdmmc3_clk || '''gpio_168''' &amp;amp;hArr;&amp;amp;uarr; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO6[8]&amp;lt;/small&amp;gt; || mcspi3_clk || dispc2_data11 || rfbi_data11&lt;br /&gt;
|-&lt;br /&gt;
| 15: UART2_TX &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x11E&amp;lt;/small&amp;gt;    || AA26 || M7, Pullup   || '''uart2_tx''' &amp;amp;rArr;         || sdmmc3_dat1  || -         || gpio_126 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[30]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 17: UART2_RX &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x11C&amp;lt;/small&amp;gt;    || AA25 || M7, Pullup   || '''uart2_rx''' &amp;amp;hArr;&amp;amp;uarr;   || sdmmc3_dat0  || -         || gpio_125 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[29]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 19: BSP2_CLKX &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x0F6&amp;lt;/small&amp;gt;   || AD27 || M7, Pulldown || '''abe_mcbsp2_clkx''' &amp;amp;hArr;  || mcspi2_clk || abe_mcasp_ahclkx || gpio_110 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[14]&amp;lt;/small&amp;gt; || usbb2_mm_rxdm || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 20: BSP2_FSX &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x0FC&amp;lt;/small&amp;gt;    || AC28 || M7, Pulldown || '''abe_mcbsp2_fsx''' &amp;amp;hArr;   || mcspi2_cs0 || abe_mcasp_afsx || gpio_113 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[17]&amp;lt;/small&amp;gt; || usbb2_mm_txen || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 21: BSP2_DX &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x0FA&amp;lt;/small&amp;gt;     || AD25 || M7, Pulldown || '''abe_mcbsp2_dx''' &amp;amp;rArr;    || mcspi2_simo || abe_mcasp_amute || gpio_112 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[16]&amp;lt;/small&amp;gt; || usbb2_mm_rxrcv || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 22: BSP2_DR &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x0F8&amp;lt;/small&amp;gt;     || AD26 || M7, Pulldown || '''abe_mcbsp2_dr''' &amp;amp;hArr;    || mcspi2_somi || abe_mcasp_axr || gpio_111 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[15]&amp;lt;/small&amp;gt; || usbb2_mm_rxdp || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 23: BSP_CLKS &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x10E&amp;lt;/small&amp;gt;    || AH26 || M7, Pulldown || '''abe_clks''' &amp;amp;hArr;&amp;amp;darr;   || - || - || gpio_118 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[22]&amp;lt;/small&amp;gt; || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 25: MCSPI4_SOMI &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x158&amp;lt;/small&amp;gt; || AF21 || M7, Pullup   || '''mcspi4_somi''' &amp;amp;hArr;      || sdmmc4_dat0 || kpd_row6 || gpio_153 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[25]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 27: MCSPI4_SIMO &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x156&amp;lt;/small&amp;gt; || AF20 || M7, Pullup   || '''mcspi4_simo''' &amp;amp;hArr;      || sdmmc4_cmd  || kpd_col7 || gpio_152 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[24]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 29: MCSPI4_CLK &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x154&amp;lt;/small&amp;gt;  || AE21 || M7, Pulldown || '''mcspi4_clk'''  &amp;amp;hArr;      || sdmmc4_clk  || kpd_col6 || gpio_151 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[23]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 31: MCSPI4_CS0 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;0x15A&amp;lt;/small&amp;gt;  || AE20 || M7, Pullup   || '''mcspi4_cs0''' &amp;amp;hArr;&amp;amp;darr; || sdmmc4_dat3 || kpd_row7 || gpio_154 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[26]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
a) Assigned as such in u-boot but reassigned in the kernel board startup code to Mode 3 Outputs&lt;br /&gt;
&lt;br /&gt;
b) There is a 10K pull up to 1.8V, internal to the DuoVero COM, on the HDQ_SIO line. Do &amp;lt;i&amp;gt;not&amp;lt;/i&amp;gt; enable a pull down on this line. This will result in a non-logic output level (approximately 1V). This is currently considered to be a bug and may be removed in future COM revisions.&lt;br /&gt;
&lt;br /&gt;
c) There are pullups on I2C2 and I2C3 of approximately 1K. S/C current is over 2mA.&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6100</id>
		<title>Duovero Multiplexes</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6100"/>
				<updated>2014-09-26T12:51:38Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: Add the calculation...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How_to_-_linux]]&lt;br /&gt;
[[Category:Connect_hardware]]&lt;br /&gt;
&lt;br /&gt;
This wiki entry concentrates on the Duovero Parlor board and the Multiplexes available from the 40 pin connector.&lt;br /&gt;
&lt;br /&gt;
[[File:Duovero parlor conn small.png]]&lt;br /&gt;
&lt;br /&gt;
The ground pin is nearest the console connector port and the power pins are nearest the centre of the board. This is as of writing but it is highly recommended that you ''check'' before connecting! Use a voltmeter to check the 3.3V, 5V and 1.8V pins to familiarise yourself with the layout.&lt;br /&gt;
&lt;br /&gt;
There are also two connections on the Parlor board:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OMAP Pin !! GPIO # !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| AG24 || GPIO121 || user push button&lt;br /&gt;
|-&lt;br /&gt;
| AH24 || GPIO122 || user LED &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should start your journey [http://gumstix.org/hardware-design/duovero-coms.html here].&lt;br /&gt;
&lt;br /&gt;
The primary reference for multiplexes and pin functions is the Texas Instruments OMAP4 technical reference manual. The short version of that 6000 page manual is the OMAP4430 datasheet which is easier to search. The primary source reference is in the Uboot [https://github.com/gumstix/u-boot/tree/v2013.07/board/duovero code], specifically &amp;lt;tt&amp;gt;duovero_mux_data.h&amp;lt;/tt&amp;gt; which uses the defines from &amp;lt;tt&amp;gt;./arch/arm/include/asm/arch-omap4/mux_omap4.h&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Muxing ==&lt;br /&gt;
&lt;br /&gt;
A helpful post from Phil Lutz describes how multiplexing can be explored without kernel recompilation. The default multiplex for the user LED may not be set to GPIO in Uboot. It certainly is not set to GPIO by the OMAP itself. You can look at the OMAP datasheet on page 48 you can see that the official name for GPIO 122 pin is &amp;quot;abe_dmic_din3&amp;quot; (Mode 0 names are accepted pin names).&lt;br /&gt;
&lt;br /&gt;
This information can also be found by searching for &amp;quot;gpio_122&amp;quot; in the board pinmuxing configuration stored in sysfs: &amp;lt;tt&amp;gt;/sys/kernel/debug/omap_mux/board/core&amp;lt;/tt&amp;gt;. Every pin which can be configured as gpio has a hint about that.&lt;br /&gt;
&lt;br /&gt;
So now just check which is the current pinmuxing configuration for this pin by:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /sys/kernel/debug/omap_mux/abe_dmic_din3 &lt;br /&gt;
name: abe_dmic_din3.abe_dmic_din3 (0x4a100116/0x116 = 0x0100), b ah24, t NA&lt;br /&gt;
mode: OMAP_PIN_INPUT | OMAP_MUX_MODE0&lt;br /&gt;
signals: abe_dmic_din3 | slimbus2_data | abe_dmic_clk2 | gpio_122 | NA | dmtimer9_pwm_evt | NA | safe_mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the output suggests, the pin is configured in MODE0, this is 'abe_dmic_din3'. The other modes are listed in order as they appear in the OMAP data manual. gpio_122 is multiplex MODE 3. You can set it with:&lt;br /&gt;
&lt;br /&gt;
  $ echo 3 &amp;gt; /sys/kernel/debug/omap_mux/abe_dmic_din3&lt;br /&gt;
&lt;br /&gt;
Now you can turn on and off the LED using the usual gpio configuration in /sys/class/gpio/ (google it!). Note that &amp;quot;echo 3&amp;quot; does more than set Mode 3. The number is a selection of bits that set various states for the pin. A quick summary is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;100pt&amp;quot; |Bit 0,1,2 || Set the mode&lt;br /&gt;
|-&lt;br /&gt;
|Bit 3 || 0 = pull up/down disabled , 1 = enabled&lt;br /&gt;
|-&lt;br /&gt;
|Bit 4 || 0 = pull down, 1 = pull up&lt;br /&gt;
|-&lt;br /&gt;
|Bit 8 || 0 = Output only. 1 = input enable (bidirectional)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are more but these are for sleep modes and wakeup. The manual has details. The defines in mux_omap4.h are useful for interpreting the duovero_mux_data.h file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|IEN            || 1 &amp;lt;&amp;lt; 8   || Input enable (bidirectional)&lt;br /&gt;
|-&lt;br /&gt;
|IDIS           || 0 &amp;lt;&amp;lt; 8   || Output only&lt;br /&gt;
|-&lt;br /&gt;
|PTU   &amp;amp;nbsp;   || 3 &amp;lt;&amp;lt; 3 &amp;amp;nbsp;  || Enable Pullup&lt;br /&gt;
|-&lt;br /&gt;
|PTD            || 1 &amp;lt;&amp;lt; 3   || Enable Pulldown&lt;br /&gt;
|-&lt;br /&gt;
|EN             || 1 &amp;lt;&amp;lt; 3   || PU/PD enable&lt;br /&gt;
|-&lt;br /&gt;
|DIS            || 0 &amp;lt;&amp;lt; 3   || PU/PD disable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parlor pin mux table ==&lt;br /&gt;
&lt;br /&gt;
To assist in figuring out which pins on the Parlor board can be assigned to which duties, here's a table of functions. Mode 7 is &amp;quot;safe_mode&amp;quot; where the pin is effectively disconnected from any functionality. It's set to high impedance (Z) and is left out of the table. The bolded functions are those set by the current U-Boot duovero_mux_data.h. This file sets other parameters (eg: output only, disable pullup/pulldown, etc) and you must refer to the U-Boot file to know what the full state is. A partial indication of the state (wake mode) is indicated in the table by arrows (bidirectional, output, pullup, pulldown).&lt;br /&gt;
&lt;br /&gt;
Underneath the gpio entries are the GPIO register and bit offset. These numbers are useful for device tree purposes and are calculated simply as: &amp;lt;tt&amp;gt;register = int(gpionumber / 32) + 1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;offset = gpionumber % 32&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Connector Description !! OMAP Pin !! Reset state !! Mode 0 !! Mode 1 !! Mode 2 !! Mode 3 !! Mode 4 !! Mode 5 !! Mode 6&lt;br /&gt;
|-&lt;br /&gt;
| User LED&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt;        || AH24 || M7, Pulldown &amp;amp;nbsp; || '''abe_dmic_din3''' &amp;amp;hArr; || slimbus2_data || abe_dmic_clk2 || gpio_122 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[26]&amp;lt;/small&amp;gt; || - || dmtimer9_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| Button&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt;          || AG24 || M7, Pulldown || '''abe_dmic_din2''' &amp;amp;hArr;        || slimbus2_clock || abe_mcasp_axr  || gpio_121 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[25]&amp;lt;/small&amp;gt; || - || dmtimer11_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| 04: MCSPI1_CS0  || AE23 || M7, Pulldown || '''mcspi1_cs0''' &amp;amp;hArr;&amp;amp;darr;     ||   -       ||       -        || gpio_137 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[9]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 06: MCSPI1_CS1  || AF23 || M7, Pulldown || '''mcspi1_cs1''' &amp;amp;hArr;&amp;amp;darr;     || uart1_rx  ||       -        || gpio_138 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[10]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 08: MCSPI1_CS2  || AG23 || M7, Pullup   || mcspi1_cs2                        || uart1_cts || slimbus2_clock || gpio_139 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[11]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 10: MCSPI1_CS3  || AH23 || M7, Pullup   || mcspi1_cs3                        || uart1_rts || slimbus2_data  || gpio_140 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[12]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 03: MCSPI1_CLK  || AF22 || M7, Pulldown || '''mcspi1_clk''' &amp;amp;hArr;           || -         ||       -        || gpio_134 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[6]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 05: MCSPI1_SIMO || AG22 || M7, Pulldown || '''mcspi1_simo''' &amp;amp;hArr;          || -         ||       -        || gpio_136 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[8]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 07: MCSPI1_SOMI || AE22 || M7, Pulldown || '''mcspi1_somi''' &amp;amp;hArr;          || -         ||       -        || gpio_135 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[7]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 09: HDQ_SIO&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt;  || AA27 || M7, Z        || '''hdq_sio''' &amp;amp;rArr;              || i2c3_sccb || i2c2_sccb      || gpio_127 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[31]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 12: I2C2_SCL&amp;lt;sup&amp;gt;c&amp;lt;/sup&amp;gt; || C26  || M7, Pullup   || '''i2c2_scl''' &amp;amp;hArr;&amp;amp;uarr;       || uart1_rx  ||       -        || gpio_128 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[0]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 14: I2C2_SDA&amp;lt;sup&amp;gt;c&amp;lt;/sup&amp;gt; || D26  || M7, Pullup   || '''i2c2_sda''' &amp;amp;hArr;&amp;amp;uarr;       || uart1_tx  ||       -        || gpio_129 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[1]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 11: SDMMC3_CMD  || AG10 || M7, Pullup   || usbb2_ulpitll_dat6 || usbb2_ulpiphy_dat6 || sdmmc3_cmd || '''gpio_167''' &amp;amp;hArr;&amp;amp;uarr; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO6[7]&amp;lt;/small&amp;gt; || mcspi3_simo || dispc2_data12 || rfbi_data12&lt;br /&gt;
|-&lt;br /&gt;
| 13: SDMMC3_CLK  || AE9  || M7, Pullup   || usbb2_ulpitll_dat7 || usbb2_ulpiphy_dat7 || sdmmc3_clk || '''gpio_168''' &amp;amp;hArr;&amp;amp;uarr; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO6[8]&amp;lt;/small&amp;gt; || mcspi3_clk || dispc2_data11 || rfbi_data11&lt;br /&gt;
|-&lt;br /&gt;
| 15: UART2_TX    || AA26 || M7, Pullup   || '''uart2_tx''' &amp;amp;rArr;         || sdmmc3_dat1  || -         || gpio_126 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[30]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 17: UART2_RX    || AA25 || M7, Pullup   || '''uart2_rx''' &amp;amp;hArr;&amp;amp;uarr;   || sdmmc3_dat0  || -         || gpio_125 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[29]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 19: BSP2_CLKX   || AD27 || M7, Pulldown || '''abe_mcbsp2_clkx''' &amp;amp;hArr;  || mcspi2_clk || abe_mcasp_ahclkx || gpio_110 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[14]&amp;lt;/small&amp;gt; || usbb2_mm_rxdm || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 20: BSP2_FSX    || AC28 || M7, Pulldown || '''abe_mcbsp2_fsx''' &amp;amp;hArr;   || mcspi2_cs0 || abe_mcasp_afsx || gpio_113 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[17]&amp;lt;/small&amp;gt; || usbb2_mm_txen || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 21: BSP2_DX     || AD25 || M7, Pulldown || '''abe_mcbsp2_dx''' &amp;amp;rArr;    || mcspi2_simo || abe_mcasp_amute || gpio_112 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[16]&amp;lt;/small&amp;gt; || usbb2_mm_rxrcv || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 22: BSP2_DR     || AD26 || M7, Pulldown || '''abe_mcbsp2_dr''' &amp;amp;hArr;    || mcspi2_somi || abe_mcasp_axr || gpio_111 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[15]&amp;lt;/small&amp;gt; || usbb2_mm_rxdp || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 23: BSP_CLKS    || AH26 || M7, Pulldown || '''abe_clks''' &amp;amp;hArr;&amp;amp;darr;   || - || - || gpio_118 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[22]&amp;lt;/small&amp;gt; || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 25: MCSPI4_SOMI || AF21 || M7, Pullup   || '''mcspi4_somi''' &amp;amp;hArr;      || sdmmc4_dat0 || kpd_row6 || gpio_153 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[25]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 27: MCSPI4_SIMO || AF20 || M7, Pullup   || '''mcspi4_simo''' &amp;amp;hArr;      || sdmmc4_cmd  || kpd_col7 || gpio_152 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[24]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 29: MCSPI4_CLK  || AE21 || M7, Pulldown || '''mcspi4_clk'''  &amp;amp;hArr;      || sdmmc4_clk  || kpd_col6 || gpio_151 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[23]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 31: MCSPI4_CS0  || AE20 || M7, Pullup   || '''mcspi4_cs0''' &amp;amp;hArr;&amp;amp;darr; || sdmmc4_dat3 || kpd_row7 || gpio_154 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[26]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
a) Assigned as such in u-boot but reassigned in the kernel board startup code to Mode 3 Outputs&lt;br /&gt;
&lt;br /&gt;
b) There is a 10K pull up to 1.8V, internal to the DuoVero COM, on the HDQ_SIO line. Do &amp;lt;i&amp;gt;not&amp;lt;/i&amp;gt; enable a pull down on this line. This will result in a non-logic output level (approximately 1V). This is currently considered to be a bug and may be removed in future COM revisions.&lt;br /&gt;
&lt;br /&gt;
c) There are pullups on I2C2 and I2C3 of approximately 1K. S/C current is over 2mA.&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6099</id>
		<title>Duovero Multiplexes</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6099"/>
				<updated>2014-09-26T12:42:45Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: Addition of GPIO registers and offset for DTS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How_to_-_linux]]&lt;br /&gt;
[[Category:Connect_hardware]]&lt;br /&gt;
&lt;br /&gt;
This wiki entry concentrates on the Duovero Parlor board and the Multiplexes available from the 40 pin connector.&lt;br /&gt;
&lt;br /&gt;
[[File:Duovero parlor conn small.png]]&lt;br /&gt;
&lt;br /&gt;
The ground pin is nearest the console connector port and the power pins are nearest the centre of the board. This is as of writing but it is highly recommended that you ''check'' before connecting! Use a voltmeter to check the 3.3V, 5V and 1.8V pins to familiarise yourself with the layout.&lt;br /&gt;
&lt;br /&gt;
There are also two connections on the Parlor board:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OMAP Pin !! GPIO # !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| AG24 || GPIO121 || user push button&lt;br /&gt;
|-&lt;br /&gt;
| AH24 || GPIO122 || user LED &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should start your journey [http://gumstix.org/hardware-design/duovero-coms.html here].&lt;br /&gt;
&lt;br /&gt;
The primary reference for multiplexes and pin functions is the Texas Instruments OMAP4 technical reference manual. The short version of that 6000 page manual is the OMAP4430 datasheet which is easier to search. The primary source reference is in the Uboot [https://github.com/gumstix/u-boot/tree/v2013.07/board/duovero code], specifically &amp;lt;tt&amp;gt;duovero_mux_data.h&amp;lt;/tt&amp;gt; which uses the defines from &amp;lt;tt&amp;gt;./arch/arm/include/asm/arch-omap4/mux_omap4.h&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Muxing ==&lt;br /&gt;
&lt;br /&gt;
A helpful post from Phil Lutz describes how multiplexing can be explored without kernel recompilation. The default multiplex for the user LED may not be set to GPIO in Uboot. It certainly is not set to GPIO by the OMAP itself. You can look at the OMAP datasheet on page 48 you can see that the official name for GPIO 122 pin is &amp;quot;abe_dmic_din3&amp;quot; (Mode 0 names are accepted pin names).&lt;br /&gt;
&lt;br /&gt;
This information can also be found by searching for &amp;quot;gpio_122&amp;quot; in the board pinmuxing configuration stored in sysfs: &amp;lt;tt&amp;gt;/sys/kernel/debug/omap_mux/board/core&amp;lt;/tt&amp;gt;. Every pin which can be configured as gpio has a hint about that.&lt;br /&gt;
&lt;br /&gt;
So now just check which is the current pinmuxing configuration for this pin by:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /sys/kernel/debug/omap_mux/abe_dmic_din3 &lt;br /&gt;
name: abe_dmic_din3.abe_dmic_din3 (0x4a100116/0x116 = 0x0100), b ah24, t NA&lt;br /&gt;
mode: OMAP_PIN_INPUT | OMAP_MUX_MODE0&lt;br /&gt;
signals: abe_dmic_din3 | slimbus2_data | abe_dmic_clk2 | gpio_122 | NA | dmtimer9_pwm_evt | NA | safe_mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the output suggests, the pin is configured in MODE0, this is 'abe_dmic_din3'. The other modes are listed in order as they appear in the OMAP data manual. gpio_122 is multiplex MODE 3. You can set it with:&lt;br /&gt;
&lt;br /&gt;
  $ echo 3 &amp;gt; /sys/kernel/debug/omap_mux/abe_dmic_din3&lt;br /&gt;
&lt;br /&gt;
Now you can turn on and off the LED using the usual gpio configuration in /sys/class/gpio/ (google it!). Note that &amp;quot;echo 3&amp;quot; does more than set Mode 3. The number is a selection of bits that set various states for the pin. A quick summary is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;100pt&amp;quot; |Bit 0,1,2 || Set the mode&lt;br /&gt;
|-&lt;br /&gt;
|Bit 3 || 0 = pull up/down disabled , 1 = enabled&lt;br /&gt;
|-&lt;br /&gt;
|Bit 4 || 0 = pull down, 1 = pull up&lt;br /&gt;
|-&lt;br /&gt;
|Bit 8 || 0 = Output only. 1 = input enable (bidirectional)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are more but these are for sleep modes and wakeup. The manual has details. The defines in mux_omap4.h are useful for interpreting the duovero_mux_data.h file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|IEN            || 1 &amp;lt;&amp;lt; 8   || Input enable (bidirectional)&lt;br /&gt;
|-&lt;br /&gt;
|IDIS           || 0 &amp;lt;&amp;lt; 8   || Output only&lt;br /&gt;
|-&lt;br /&gt;
|PTU   &amp;amp;nbsp;   || 3 &amp;lt;&amp;lt; 3 &amp;amp;nbsp;  || Enable Pullup&lt;br /&gt;
|-&lt;br /&gt;
|PTD            || 1 &amp;lt;&amp;lt; 3   || Enable Pulldown&lt;br /&gt;
|-&lt;br /&gt;
|EN             || 1 &amp;lt;&amp;lt; 3   || PU/PD enable&lt;br /&gt;
|-&lt;br /&gt;
|DIS            || 0 &amp;lt;&amp;lt; 3   || PU/PD disable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parlor pin mux table ==&lt;br /&gt;
&lt;br /&gt;
To assist in figuring out which pins on the Parlor board can be assigned to which duties, here's a table of functions. Mode 7 is &amp;quot;safe_mode&amp;quot; where the pin is effectively disconnected from any functionality. It's set to high impedance (Z) and is left out of the table. The bolded functions are those set by the current U-Boot duovero_mux_data.h. This file sets other parameters (eg: output only, disable pullup/pulldown, etc) and you must refer to the U-Boot file to know what the full state is. A partial indication of the state (wake mode) is indicated in the table by arrows (bidirectional, output, pullup, pulldown).&lt;br /&gt;
&lt;br /&gt;
Underneath the gpio entries are the GPIO register and bit offset. These numbers are useful for device tree purposes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Connector Description !! OMAP Pin !! Reset state !! Mode 0 !! Mode 1 !! Mode 2 !! Mode 3 !! Mode 4 !! Mode 5 !! Mode 6&lt;br /&gt;
|-&lt;br /&gt;
| User LED&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt;        || AH24 || M7, Pulldown &amp;amp;nbsp; || '''abe_dmic_din3''' &amp;amp;hArr; || slimbus2_data || abe_dmic_clk2 || gpio_122 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[26]&amp;lt;/small&amp;gt; || - || dmtimer9_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| Button&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt;          || AG24 || M7, Pulldown || '''abe_dmic_din2''' &amp;amp;hArr;        || slimbus2_clock || abe_mcasp_axr  || gpio_121 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[25]&amp;lt;/small&amp;gt; || - || dmtimer11_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| 04: MCSPI1_CS0  || AE23 || M7, Pulldown || '''mcspi1_cs0''' &amp;amp;hArr;&amp;amp;darr;     ||   -       ||       -        || gpio_137 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[9]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 06: MCSPI1_CS1  || AF23 || M7, Pulldown || '''mcspi1_cs1''' &amp;amp;hArr;&amp;amp;darr;     || uart1_rx  ||       -        || gpio_138 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[10]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 08: MCSPI1_CS2  || AG23 || M7, Pullup   || mcspi1_cs2                        || uart1_cts || slimbus2_clock || gpio_139 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[11]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 10: MCSPI1_CS3  || AH23 || M7, Pullup   || mcspi1_cs3                        || uart1_rts || slimbus2_data  || gpio_140 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[12]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 03: MCSPI1_CLK  || AF22 || M7, Pulldown || '''mcspi1_clk''' &amp;amp;hArr;           || -         ||       -        || gpio_134 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[6]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 05: MCSPI1_SIMO || AG22 || M7, Pulldown || '''mcspi1_simo''' &amp;amp;hArr;          || -         ||       -        || gpio_136 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[8]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 07: MCSPI1_SOMI || AE22 || M7, Pulldown || '''mcspi1_somi''' &amp;amp;hArr;          || -         ||       -        || gpio_135 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[7]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 09: HDQ_SIO&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt;  || AA27 || M7, Z        || '''hdq_sio''' &amp;amp;rArr;              || i2c3_sccb || i2c2_sccb      || gpio_127 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[31]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 12: I2C2_SCL&amp;lt;sup&amp;gt;c&amp;lt;/sup&amp;gt; || C26  || M7, Pullup   || '''i2c2_scl''' &amp;amp;hArr;&amp;amp;uarr;       || uart1_rx  ||       -        || gpio_128 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[0]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 14: I2C2_SDA&amp;lt;sup&amp;gt;c&amp;lt;/sup&amp;gt; || D26  || M7, Pullup   || '''i2c2_sda''' &amp;amp;hArr;&amp;amp;uarr;       || uart1_tx  ||       -        || gpio_129 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[1]&amp;lt;/small&amp;gt; || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 11: SDMMC3_CMD  || AG10 || M7, Pullup   || usbb2_ulpitll_dat6 || usbb2_ulpiphy_dat6 || sdmmc3_cmd || '''gpio_167''' &amp;amp;hArr;&amp;amp;uarr; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO6[7]&amp;lt;/small&amp;gt; || mcspi3_simo || dispc2_data12 || rfbi_data12&lt;br /&gt;
|-&lt;br /&gt;
| 13: SDMMC3_CLK  || AE9  || M7, Pullup   || usbb2_ulpitll_dat7 || usbb2_ulpiphy_dat7 || sdmmc3_clk || '''gpio_168''' &amp;amp;hArr;&amp;amp;uarr; &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO6[8]&amp;lt;/small&amp;gt; || mcspi3_clk || dispc2_data11 || rfbi_data11&lt;br /&gt;
|-&lt;br /&gt;
| 15: UART2_TX    || AA26 || M7, Pullup   || '''uart2_tx''' &amp;amp;rArr;         || sdmmc3_dat1  || -         || gpio_126 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[30]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 17: UART2_RX    || AA25 || M7, Pullup   || '''uart2_rx''' &amp;amp;hArr;&amp;amp;uarr;   || sdmmc3_dat0  || -         || gpio_125 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[29]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 19: BSP2_CLKX   || AD27 || M7, Pulldown || '''abe_mcbsp2_clkx''' &amp;amp;hArr;  || mcspi2_clk || abe_mcasp_ahclkx || gpio_110 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[14]&amp;lt;/small&amp;gt; || usbb2_mm_rxdm || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 20: BSP2_FSX    || AC28 || M7, Pulldown || '''abe_mcbsp2_fsx''' &amp;amp;hArr;   || mcspi2_cs0 || abe_mcasp_afsx || gpio_113 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[17]&amp;lt;/small&amp;gt; || usbb2_mm_txen || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 21: BSP2_DX     || AD25 || M7, Pulldown || '''abe_mcbsp2_dx''' &amp;amp;rArr;    || mcspi2_simo || abe_mcasp_amute || gpio_112 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[16]&amp;lt;/small&amp;gt; || usbb2_mm_rxrcv || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 22: BSP2_DR     || AD26 || M7, Pulldown || '''abe_mcbsp2_dr''' &amp;amp;hArr;    || mcspi2_somi || abe_mcasp_axr || gpio_111 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[15]&amp;lt;/small&amp;gt; || usbb2_mm_rxdp || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 23: BSP_CLKS    || AH26 || M7, Pulldown || '''abe_clks''' &amp;amp;hArr;&amp;amp;darr;   || - || - || gpio_118 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO4[22]&amp;lt;/small&amp;gt; || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 25: MCSPI4_SOMI || AF21 || M7, Pullup   || '''mcspi4_somi''' &amp;amp;hArr;      || sdmmc4_dat0 || kpd_row6 || gpio_153 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[25]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 27: MCSPI4_SIMO || AF20 || M7, Pullup   || '''mcspi4_simo''' &amp;amp;hArr;      || sdmmc4_cmd  || kpd_col7 || gpio_152 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[24]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 29: MCSPI4_CLK  || AE21 || M7, Pulldown || '''mcspi4_clk'''  &amp;amp;hArr;      || sdmmc4_clk  || kpd_col6 || gpio_151 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[23]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 31: MCSPI4_CS0  || AE20 || M7, Pullup   || '''mcspi4_cs0''' &amp;amp;hArr;&amp;amp;darr; || sdmmc4_dat3 || kpd_row7 || gpio_154 &amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;GPIO5[26]&amp;lt;/small&amp;gt; || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
a) Assigned as such in u-boot but reassigned in the kernel board startup code to Mode 3 Outputs&lt;br /&gt;
&lt;br /&gt;
b) There is a 10K pull up to 1.8V, internal to the DuoVero COM, on the HDQ_SIO line. Do &amp;lt;i&amp;gt;not&amp;lt;/i&amp;gt; enable a pull down on this line. This will result in a non-logic output level (approximately 1V). This is currently considered to be a bug and may be removed in future COM revisions.&lt;br /&gt;
&lt;br /&gt;
c) There are pullups on I2C2 and I2C3 of approximately 1K. S/C current is over 2mA.&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Category:How_to_-_Known_Issues&amp;diff=6035</id>
		<title>Category:How to - Known Issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Category:How_to_-_Known_Issues&amp;diff=6035"/>
				<updated>2014-03-29T17:32:22Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you have fixed a problem while setting up your gumstix board that you feel other people are likely to encounter, please document your solution here.&lt;br /&gt;
&lt;br /&gt;
== Network Problems ==&lt;br /&gt;
&lt;br /&gt;
===Network Services Do Not Come Up===&lt;br /&gt;
&lt;br /&gt;
'''Symptom:''' Network services do not come up. LAN link lights blink for a couple of seconds during bootup, but then remain out. This has been observed with the connex board with the netCF expansion module running a fresh install of OpenEmbedded.&lt;br /&gt;
&lt;br /&gt;
'''Solution:''' The file /etc/network/interfaces contains network interface definitions for several classes of devices. If you are not using the wireless ethernet expansion module, comment out the wlan0 interface section and reboot the unit.&lt;br /&gt;
&lt;br /&gt;
===Wired Ethernet Does Not Come Up===&lt;br /&gt;
'''Symptom:''' When booting an Overo with Tobi expansion board, the wired Ethernet eth0 interface does not come up. No IP address is acquired via DHCP, even though eth0 is configured to use DHCP.&lt;br /&gt;
&lt;br /&gt;
'''Solution:''' The solution is documented here: [[Overo Tobi Ethernet]].&lt;br /&gt;
&lt;br /&gt;
== Issues with prebuilt DuoVero images ==&lt;br /&gt;
&lt;br /&gt;
The serial port on Uart2 is /dev/ttyO1. This is interfered with by the Bluetooth systemd service which isn't necessary on this board. Disable this systemd service to get proper access to /dev/ttyO1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;systemctl disable bluetooth&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and rebooting is a good start.&lt;br /&gt;
&lt;br /&gt;
== Issues with prebuild overo images ==&lt;br /&gt;
&lt;br /&gt;
Images are here: http://www.sakoman.com/feeds/omap3/glibc/images/overo/&lt;br /&gt;
&lt;br /&gt;
=== Overo fire with Palo35 ===&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;background:#e2e2e2;&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
!  Version      || Bootup  || Login   || LCD     || Touchscreen&lt;br /&gt;
|- bgcolor=&amp;quot;#f8f8ff&amp;quot;&lt;br /&gt;
|  201004220807 || {{Yes}} || {{Yes}} || {{Yes}}  || {{Yes}}&lt;br /&gt;
|- bgcolor=&amp;quot;#f8f8ff&amp;quot;&lt;br /&gt;
|  201004141106 || {{Yes}} || {{Yes}} || {{No}}  || {{No}}&lt;br /&gt;
|- bgcolor=&amp;quot;#f8f8ff&amp;quot;&lt;br /&gt;
|  201002031857 || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Category:How_to_-_Known_Issues&amp;diff=6034</id>
		<title>Category:How to - Known Issues</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Category:How_to_-_Known_Issues&amp;diff=6034"/>
				<updated>2014-03-29T17:31:16Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: Add duovero section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you have fixed a problem while setting up your gumstix board that you feel other people are likely to encounter, please document your solution here.&lt;br /&gt;
&lt;br /&gt;
== Network Problems ==&lt;br /&gt;
&lt;br /&gt;
===Network Services Do Not Come Up===&lt;br /&gt;
&lt;br /&gt;
'''Symptom:''' Network services do not come up. LAN link lights blink for a couple of seconds during bootup, but then remain out. This has been observed with the connex board with the netCF expansion module running a fresh install of OpenEmbedded.&lt;br /&gt;
&lt;br /&gt;
'''Solution:''' The file /etc/network/interfaces contains network interface definitions for several classes of devices. If you are not using the wireless ethernet expansion module, comment out the wlan0 interface section and reboot the unit.&lt;br /&gt;
&lt;br /&gt;
===Wired Ethernet Does Not Come Up===&lt;br /&gt;
'''Symptom:''' When booting an Overo with Tobi expansion board, the wired Ethernet eth0 interface does not come up. No IP address is acquired via DHCP, even though eth0 is configured to use DHCP.&lt;br /&gt;
&lt;br /&gt;
'''Solution:''' The solution is documented here: [[Overo Tobi Ethernet]].&lt;br /&gt;
&lt;br /&gt;
== Issues with prebuilt DuoVero images ==&lt;br /&gt;
&lt;br /&gt;
The serial port on Uart2 is /dev/ttyO1. This is interfered with by the Bluetooth systemd service which isn't necessary on this board. Disable this systemd service to get access to /dev/ttyO2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;systemctl disable bluetooth&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and rebooting is a good start.&lt;br /&gt;
&lt;br /&gt;
== Issues with prebuild overo images ==&lt;br /&gt;
&lt;br /&gt;
Images are here: http://www.sakoman.com/feeds/omap3/glibc/images/overo/&lt;br /&gt;
&lt;br /&gt;
=== Overo fire with Palo35 ===&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;background:#e2e2e2;&amp;quot; class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
!  Version      || Bootup  || Login   || LCD     || Touchscreen&lt;br /&gt;
|- bgcolor=&amp;quot;#f8f8ff&amp;quot;&lt;br /&gt;
|  201004220807 || {{Yes}} || {{Yes}} || {{Yes}}  || {{Yes}}&lt;br /&gt;
|- bgcolor=&amp;quot;#f8f8ff&amp;quot;&lt;br /&gt;
|  201004141106 || {{Yes}} || {{Yes}} || {{No}}  || {{No}}&lt;br /&gt;
|- bgcolor=&amp;quot;#f8f8ff&amp;quot;&lt;br /&gt;
|  201002031857 || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6030</id>
		<title>Duovero Multiplexes</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6030"/>
				<updated>2013-12-10T09:32:46Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How_to_-_linux]]&lt;br /&gt;
[[Category:Connect_hardware]]&lt;br /&gt;
&lt;br /&gt;
This wiki entry concentrates on the Duovero Parlor board and the Multiplexes available from the 40 pin connector.&lt;br /&gt;
&lt;br /&gt;
[[File:Duovero parlor conn small.png]]&lt;br /&gt;
&lt;br /&gt;
The ground pin is nearest the console connector port and the power pins are nearest the centre of the board. This is as of writing but it is highly recommended that you ''check'' before connecting! Use a voltmeter to check the 3.3V, 5V and 1.8V pins to familiarise yourself with the layout.&lt;br /&gt;
&lt;br /&gt;
There are also two connections on the Parlor board:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OMAP Pin !! GPIO # !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| AG24 || GPIO121 || user push button&lt;br /&gt;
|-&lt;br /&gt;
| AH24 || GPIO122 || user LED &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should start your journey [http://gumstix.org/hardware-design/duovero-coms.html here].&lt;br /&gt;
&lt;br /&gt;
The primary reference for multiplexes and pin functions is the Texas Instruments OMAP4 technical reference manual. The short version of that 6000 page manual is the OMAP4430 datasheet which is easier to search. The primary source reference is in the Uboot [https://github.com/gumstix/u-boot/tree/v2013.07/board/duovero code], specifically &amp;lt;tt&amp;gt;duovero_mux_data.h&amp;lt;/tt&amp;gt; which uses the defines from &amp;lt;tt&amp;gt;./arch/arm/include/asm/arch-omap4/mux_omap4.h&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Muxing ==&lt;br /&gt;
&lt;br /&gt;
A helpful post from Phil Lutz describes how multiplexing can be explored without kernel recompilation. The default multiplex for the user LED may not be set to GPIO in Uboot. It certainly is not set to GPIO by the OMAP itself. You can look at the OMAP datasheet on page 48 you can see that the official name for GPIO 122 pin is &amp;quot;abe_dmic_din3&amp;quot; (Mode 0 names are accepted pin names).&lt;br /&gt;
&lt;br /&gt;
This information can also be found by searching for &amp;quot;gpio_122&amp;quot; in the board pinmuxing configuration stored in sysfs: &amp;lt;tt&amp;gt;/sys/kernel/debug/omap_mux/board/core&amp;lt;/tt&amp;gt;. Every pin which can be configured as gpio has a hint about that.&lt;br /&gt;
&lt;br /&gt;
So now just check which is the current pinmuxing configuration for this pin by:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /sys/kernel/debug/omap_mux/abe_dmic_din3 &lt;br /&gt;
name: abe_dmic_din3.abe_dmic_din3 (0x4a100116/0x116 = 0x0100), b ah24, t NA&lt;br /&gt;
mode: OMAP_PIN_INPUT | OMAP_MUX_MODE0&lt;br /&gt;
signals: abe_dmic_din3 | slimbus2_data | abe_dmic_clk2 | gpio_122 | NA | dmtimer9_pwm_evt | NA | safe_mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the output suggests, the pin is configured in MODE0, this is 'abe_dmic_din3'. The other modes are listed in order as they appear in the OMAP data manual. gpio_122 is multiplex MODE 3. You can set it with:&lt;br /&gt;
&lt;br /&gt;
  $ echo 3 &amp;gt; /sys/kernel/debug/omap_mux/abe_dmic_din3&lt;br /&gt;
&lt;br /&gt;
Now you can turn on and off the LED using the usual gpio configuration in /sys/class/gpio/ (google it!). Note that &amp;quot;echo 3&amp;quot; does more than set Mode 3. The number is a selection of bits that set various states for the pin. A quick summary is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;100pt&amp;quot; |Bit 0,1,2 || Set the mode&lt;br /&gt;
|-&lt;br /&gt;
|Bit 3 || 0 = pull up/down disabled , 1 = enabled&lt;br /&gt;
|-&lt;br /&gt;
|Bit 4 || 0 = pull down, 1 = pull up&lt;br /&gt;
|-&lt;br /&gt;
|Bit 8 || 0 = Output only. 1 = input enable (bidirectional)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are more but these are for sleep modes and wakeup. The manual has details. The defines in mux_omap4.h are useful for interpreting the duovero_mux_data.h file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|IEN            || 1 &amp;lt;&amp;lt; 8   || Input enable (bidirectional)&lt;br /&gt;
|-&lt;br /&gt;
|IDIS           || 0 &amp;lt;&amp;lt; 8   || Output only&lt;br /&gt;
|-&lt;br /&gt;
|PTU   &amp;amp;nbsp;   || 3 &amp;lt;&amp;lt; 3 &amp;amp;nbsp;  || Enable Pullup&lt;br /&gt;
|-&lt;br /&gt;
|PTD            || 1 &amp;lt;&amp;lt; 3   || Enable Pulldown&lt;br /&gt;
|-&lt;br /&gt;
|EN             || 1 &amp;lt;&amp;lt; 3   || PU/PD enable&lt;br /&gt;
|-&lt;br /&gt;
|DIS            || 0 &amp;lt;&amp;lt; 3   || PU/PD disable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parlor pin mux table ==&lt;br /&gt;
&lt;br /&gt;
To assist in figuring out which pins on the Parlor board can be assigned to which duties, here's a table of functions. Mode 7 is &amp;quot;safe_mode&amp;quot; where the pin is effectively disconnected from any functionality. It's set to high impedance (Z) and is left out of the table. The bolded functions are those set by the current U-Boot duovero_mux_data.h. This file sets other parameters (eg: output only, disable pullup/pulldown, etc) and you must refer to the U-Boot file to know what the full state is. A partial indication of the state (wake mode) is indicated in the table by arrows (bidirectional, output, pullup, pulldown).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Connector Description !! OMAP Pin !! Reset state !! Mode 0 !! Mode 1 !! Mode 2 !! Mode 3 !! Mode 4 !! Mode 5 !! Mode 6&lt;br /&gt;
|-&lt;br /&gt;
| User LED&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt;        || AH24 || M7, Pulldown &amp;amp;nbsp; || '''abe_dmic_din3''' &amp;amp;hArr; || slimbus2_data || abe_dmic_clk2 || gpio_122 || - || dmtimer9_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| Button&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt;          || AG24 || M7, Pulldown || '''abe_dmic_din2''' &amp;amp;hArr;        || slimbus2_clock || abe_mcasp_axr  || gpio_121 || - || dmtimer11_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| 04: MCSPI1_CS0  || AE23 || M7, Pulldown || '''mcspi1_cs0''' &amp;amp;hArr;&amp;amp;darr;     ||   -       ||       -        || gpio_137 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 06: MCSPI1_CS1  || AF23 || M7, Pulldown || '''mcspi1_cs1''' &amp;amp;hArr;&amp;amp;darr;     || uart1_rx  ||       -        || gpio_138 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 08: MCSPI1_CS2  || AG23 || M7, Pullup   || mcspi1_cs2                        || uart1_cts || slimbus2_clock || gpio_139 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 10: MCSPI1_CS3  || AH23 || M7, Pullup   || mcspi1_cs3                        || uart1_rts || slimbus2_data  || gpio_140 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 03: MCSPI1_CLK  || AF22 || M7, Pulldown || '''mcspi1_clk''' &amp;amp;hArr;           || -         ||       -        || gpio_134 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 05: MCSPI1_SIMO || AG22 || M7, Pulldown || '''mcspi1_simo''' &amp;amp;hArr;          || -         ||       -        || gpio_136 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 07: MCSPI1_SOMI || AE22 || M7, Pulldown || '''mcspi1_somi''' &amp;amp;hArr;          || -         ||       -        || gpio_135 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 09: HDQ_SIO&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt;  || AA27 || M7, Z        || '''hdq_sio''' &amp;amp;rArr;              || i2c3_sccb || i2c2_sccb      || gpio_127 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 12: I2C2_SCL&amp;lt;sup&amp;gt;c&amp;lt;/sup&amp;gt; || C26  || M7, Pullup   || '''i2c2_scl''' &amp;amp;hArr;&amp;amp;uarr;       || uart1_rx  ||       -        || gpio_128 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 14: I2C2_SDA&amp;lt;sup&amp;gt;c&amp;lt;/sup&amp;gt; || D26  || M7, Pullup   || '''i2c2_sda''' &amp;amp;hArr;&amp;amp;uarr;       || uart1_tx  ||       -        || gpio_129 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 11: SDMMC3_CMD  || AG10 || M7, Pullup   || usbb2_ulpitll_dat6 || usbb2_ulpiphy_dat6 || sdmmc3_cmd || '''gpio_167''' &amp;amp;hArr;&amp;amp;uarr; || mcspi3_simo || dispc2_data12 || rfbi_data12&lt;br /&gt;
|-&lt;br /&gt;
| 13: SDMMC3_CLK  || AE9  || M7, Pullup   || usbb2_ulpitll_dat7 || usbb2_ulpiphy_dat7 || sdmmc3_clk || '''gpio_168''' &amp;amp;hArr;&amp;amp;uarr; || mcspi3_clk || dispc2_data11 || rfbi_data11&lt;br /&gt;
|-&lt;br /&gt;
| 15: UART2_TX    || AA26 || M7, Pullup   || '''uart2_tx''' &amp;amp;rArr;         || sdmmc3_dat1  || -         || gpio_126 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 17: UART2_RX    || AA25 || M7, Pullup   || '''uart2_rx''' &amp;amp;hArr;&amp;amp;uarr;   || sdmmc3_dat0  || -         || gpio_125 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 19: BSP2_CLKX   || AD27 || M7, Pulldown || '''abe_mcbsp2_clkx''' &amp;amp;hArr;  || mcspi2_clk || abe_mcasp_ahclkx || gpio_110 || usbb2_mm_rxdm || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 20: BSP2_FSX    || AC28 || M7, Pulldown || '''abe_mcbsp2_fsx''' &amp;amp;hArr;   || mcspi2_cs0 || abe_mcasp_afsx || gpio_113 || usbb2_mm_txen || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 21: BSP2_DX     || AD25 || M7, Pulldown || '''abe_mcbsp2_dx''' &amp;amp;rArr;    || mcspi2_simo || abe_mcasp_amute || gpio_112 || usbb2_mm_rxrcv || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 22: BSP2_DR     || AD26 || M7, Pulldown || '''abe_mcbsp2_dr''' &amp;amp;hArr;    || mcspi2_somi || abe_mcasp_axr || gpio_111 || usbb2_mm_rxdp || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 23: BSP_CLKS    || AH26 || M7, Pulldown || '''abe_clks''' &amp;amp;hArr;&amp;amp;darr;   || - || - || gpio_118 || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 25: MCSPI4_SOMI || AF21 || M7, Pullup   || '''mcspi4_somi''' &amp;amp;hArr;      || sdmmc4_dat0 || kpd_row6 || gpio_153 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 27: MCSPI4_SIMO || AF20 || M7, Pullup   || '''mcspi4_simo''' &amp;amp;hArr;      || sdmmc4_cmd  || kpd_col7 || gpio_152 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 29: MCSPI4_CLK  || AE21 || M7, Pulldown || '''mcspi4_clk'''  &amp;amp;hArr;      || sdmmc4_clk  || kpd_col6 || gpio_151 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 31: MCSPI4_CS0  || AE20 || M7, Pullup   || '''mcspi4_cs0''' &amp;amp;hArr;&amp;amp;darr; || sdmmc4_dat3 || kpd_row7 || gpio_154 || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
a) Assigned as such in u-boot but reassigned in the kernel board startup code to Mode 3 Outputs&lt;br /&gt;
&lt;br /&gt;
b) There is a 10K pull up to 1.8V, internal to the DuoVero COM, on the HDQ_SIO line. Do &amp;lt;i&amp;gt;not&amp;lt;/i&amp;gt; enable a pull down on this line. This will result in a non-logic output level (approximately 1V). This is currently considered to be a bug and may be removed in future COM revisions.&lt;br /&gt;
&lt;br /&gt;
c) There are pullups on I2C2 and I2C3 of approximately 1K. S/C current is over 2mA.&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6029</id>
		<title>Duovero Multiplexes</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6029"/>
				<updated>2013-12-10T09:30:35Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: Added notes on pins&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How_to_-_linux]]&lt;br /&gt;
[[Category:Connect_hardware]]&lt;br /&gt;
&lt;br /&gt;
This wiki entry concentrates on the Duovero Parlor board and the Multiplexes available from the 40 pin connector.&lt;br /&gt;
&lt;br /&gt;
[[File:Duovero parlor conn small.png]]&lt;br /&gt;
&lt;br /&gt;
The ground pin is nearest the console connector port and the power pins are nearest the centre of the board. This is as of writing but it is highly recommended that you ''check'' before connecting! Use a voltmeter to check the 3.3V, 5V and 1.8V pins to familiarise yourself with the layout.&lt;br /&gt;
&lt;br /&gt;
There are also two connections on the Parlor board:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OMAP Pin !! GPIO # !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| AG24 || GPIO121 || user push button&lt;br /&gt;
|-&lt;br /&gt;
| AH24 || GPIO122 || user LED &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should start your journey [http://gumstix.org/hardware-design/duovero-coms.html here].&lt;br /&gt;
&lt;br /&gt;
The primary reference for multiplexes and pin functions is the Texas Instruments OMAP4 technical reference manual. The short version of that 6000 page manual is the OMAP4430 datasheet which is easier to search. The primary source reference is in the Uboot [https://github.com/gumstix/u-boot/tree/v2013.07/board/duovero code], specifically &amp;lt;tt&amp;gt;duovero_mux_data.h&amp;lt;/tt&amp;gt; which uses the defines from &amp;lt;tt&amp;gt;./arch/arm/include/asm/arch-omap4/mux_omap4.h&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Muxing ==&lt;br /&gt;
&lt;br /&gt;
A helpful post from Phil Lutz describes how multiplexing can be explored without kernel recompilation. The default multiplex for the user LED may not be set to GPIO in Uboot. It certainly is not set to GPIO by the OMAP itself. You can look at the OMAP datasheet on page 48 you can see that the official name for GPIO 122 pin is &amp;quot;abe_dmic_din3&amp;quot; (Mode 0 names are accepted pin names).&lt;br /&gt;
&lt;br /&gt;
This information can also be found by searching for &amp;quot;gpio_122&amp;quot; in the board pinmuxing configuration stored in sysfs: &amp;lt;tt&amp;gt;/sys/kernel/debug/omap_mux/board/core&amp;lt;/tt&amp;gt;. Every pin which can be configured as gpio has a hint about that.&lt;br /&gt;
&lt;br /&gt;
So now just check which is the current pinmuxing configuration for this pin by:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /sys/kernel/debug/omap_mux/abe_dmic_din3 &lt;br /&gt;
name: abe_dmic_din3.abe_dmic_din3 (0x4a100116/0x116 = 0x0100), b ah24, t NA&lt;br /&gt;
mode: OMAP_PIN_INPUT | OMAP_MUX_MODE0&lt;br /&gt;
signals: abe_dmic_din3 | slimbus2_data | abe_dmic_clk2 | gpio_122 | NA | dmtimer9_pwm_evt | NA | safe_mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the output suggests, the pin is configured in MODE0, this is 'abe_dmic_din3'. The other modes are listed in order as they appear in the OMAP data manual. gpio_122 is multiplex MODE 3. You can set it with:&lt;br /&gt;
&lt;br /&gt;
  $ echo 3 &amp;gt; /sys/kernel/debug/omap_mux/abe_dmic_din3&lt;br /&gt;
&lt;br /&gt;
Now you can turn on and off the LED using the usual gpio configuration in /sys/class/gpio/ (google it!). Note that &amp;quot;echo 3&amp;quot; does more than set Mode 3. The number is a selection of bits that set various states for the pin. A quick summary is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;100pt&amp;quot; |Bit 0,1,2 || Set the mode&lt;br /&gt;
|-&lt;br /&gt;
|Bit 3 || 0 = pull up/down disabled , 1 = enabled&lt;br /&gt;
|-&lt;br /&gt;
|Bit 4 || 0 = pull down, 1 = pull up&lt;br /&gt;
|-&lt;br /&gt;
|Bit 8 || 0 = Output only. 1 = input enable (bidirectional)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are more but these are for sleep modes and wakeup. The manual has details. The defines in mux_omap4.h are useful for interpreting the duovero_mux_data.h file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|IEN            || 1 &amp;lt;&amp;lt; 8   || Input enable (bidirectional)&lt;br /&gt;
|-&lt;br /&gt;
|IDIS           || 0 &amp;lt;&amp;lt; 8   || Output only&lt;br /&gt;
|-&lt;br /&gt;
|PTU   &amp;amp;nbsp;   || 3 &amp;lt;&amp;lt; 3 &amp;amp;nbsp;  || Enable Pullup&lt;br /&gt;
|-&lt;br /&gt;
|PTD            || 1 &amp;lt;&amp;lt; 3   || Enable Pulldown&lt;br /&gt;
|-&lt;br /&gt;
|EN             || 1 &amp;lt;&amp;lt; 3   || PU/PD enable&lt;br /&gt;
|-&lt;br /&gt;
|DIS            || 0 &amp;lt;&amp;lt; 3   || PU/PD disable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parlor pin mux table ==&lt;br /&gt;
&lt;br /&gt;
To assist in figuring out which pins on the Parlor board can be assigned to which duties, here's a table of functions. Mode 7 is &amp;quot;safe_mode&amp;quot; where the pin is effectively disconnected from any functionality. It's set to high impedance (Z) and is left out of the table. The bolded functions are those set by the current U-Boot duovero_mux_data.h. This file sets other parameters (eg: output only, disable pullup/pulldown, etc) and you must refer to the U-Boot file to know what the full state is. A partial indication of the state (wake mode) is indicated in the table by arrows (bidirectional, output, pullup, pulldown).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Connector Description !! OMAP Pin !! Reset state !! Mode 0 !! Mode 1 !! Mode 2 !! Mode 3 !! Mode 4 !! Mode 5 !! Mode 6&lt;br /&gt;
|-&lt;br /&gt;
| User LED&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt;        || AH24 || M7, Pulldown &amp;amp;nbsp; || '''abe_dmic_din3''' &amp;amp;hArr; || slimbus2_data || abe_dmic_clk2 || gpio_122 || - || dmtimer9_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| Button&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt;          || AG24 || M7, Pulldown || '''abe_dmic_din2''' &amp;amp;hArr;        || slimbus2_clock || abe_mcasp_axr  || gpio_121 || - || dmtimer11_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| 04: MCSPI1_CS0  || AE23 || M7, Pulldown || '''mcspi1_cs0''' &amp;amp;hArr;&amp;amp;darr;     ||   -       ||       -        || gpio_137 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 06: MCSPI1_CS1  || AF23 || M7, Pulldown || '''mcspi1_cs1''' &amp;amp;hArr;&amp;amp;darr;     || uart1_rx  ||       -        || gpio_138 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 08: MCSPI1_CS2  || AG23 || M7, Pullup   || mcspi1_cs2                        || uart1_cts || slimbus2_clock || gpio_139 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 10: MCSPI1_CS3  || AH23 || M7, Pullup   || mcspi1_cs3                        || uart1_rts || slimbus2_data  || gpio_140 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 03: MCSPI1_CLK  || AF22 || M7, Pulldown || '''mcspi1_clk''' &amp;amp;hArr;           || -         ||       -        || gpio_134 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 05: MCSPI1_SIMO || AG22 || M7, Pulldown || '''mcspi1_simo''' &amp;amp;hArr;          || -         ||       -        || gpio_136 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 07: MCSPI1_SOMI || AE22 || M7, Pulldown || '''mcspi1_somi''' &amp;amp;hArr;          || -         ||       -        || gpio_135 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 09: HDQ_SIO&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt;  || AA27 || M7, Z        || '''hdq_sio''' &amp;amp;rArr;              || i2c3_sccb || i2c2_sccb      || gpio_127 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 12: I2C2_SCL&amp;lt;sup&amp;gt;c&amp;lt;/sup&amp;gt; || C26  || M7, Pullup   || '''i2c2_scl''' &amp;amp;hArr;&amp;amp;uarr;       || uart1_rx  ||       -        || gpio_128 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 14: I2C2_SDA&amp;lt;sup&amp;gt;c&amp;lt;/sup&amp;gt; || D26  || M7, Pullup   || '''i2c2_sda''' &amp;amp;hArr;&amp;amp;uarr;       || uart1_tx  ||       -        || gpio_129 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 11: SDMMC3_CMD  || AG10 || M7, Pullup   || usbb2_ulpitll_dat6 || usbb2_ulpiphy_dat6 || sdmmc3_cmd || '''gpio_167''' &amp;amp;hArr;&amp;amp;uarr; || mcspi3_simo || dispc2_data12 || rfbi_data12&lt;br /&gt;
|-&lt;br /&gt;
| 13: SDMMC3_CLK  || AE9  || M7, Pullup   || usbb2_ulpitll_dat7 || usbb2_ulpiphy_dat7 || sdmmc3_clk || '''gpio_168''' &amp;amp;hArr;&amp;amp;uarr; || mcspi3_clk || dispc2_data11 || rfbi_data11&lt;br /&gt;
|-&lt;br /&gt;
| 15: UART2_TX    || AA26 || M7, Pullup   || '''uart2_tx''' &amp;amp;rArr;         || sdmmc3_dat1  || -         || gpio_126 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 17: UART2_RX    || AA25 || M7, Pullup   || '''uart2_rx''' &amp;amp;hArr;&amp;amp;uarr;   || sdmmc3_dat0  || -         || gpio_125 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 19: BSP2_CLKX   || AD27 || M7, Pulldown || '''abe_mcbsp2_clkx''' &amp;amp;hArr;  || mcspi2_clk || abe_mcasp_ahclkx || gpio_110 || usbb2_mm_rxdm || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 20: BSP2_FSX    || AC28 || M7, Pulldown || '''abe_mcbsp2_fsx''' &amp;amp;hArr;   || mcspi2_cs0 || abe_mcasp_afsx || gpio_113 || usbb2_mm_txen || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 21: BSP2_DX     || AD25 || M7, Pulldown || '''abe_mcbsp2_dx''' &amp;amp;rArr;    || mcspi2_simo || abe_mcasp_amute || gpio_112 || usbb2_mm_rxrcv || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 22: BSP2_DR     || AD26 || M7, Pulldown || '''abe_mcbsp2_dr''' &amp;amp;hArr;    || mcspi2_somi || abe_mcasp_axr || gpio_111 || usbb2_mm_rxdp || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 23: BSP_CLKS    || AH26 || M7, Pulldown || '''abe_clks''' &amp;amp;hArr;&amp;amp;darr;   || - || - || gpio_118 || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 25: MCSPI4_SOMI || AF21 || M7, Pullup   || '''mcspi4_somi''' &amp;amp;hArr;      || sdmmc4_dat0 || kpd_row6 || gpio_153 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 27: MCSPI4_SIMO || AF20 || M7, Pullup   || '''mcspi4_simo''' &amp;amp;hArr;      || sdmmc4_cmd  || kpd_col7 || gpio_152 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 29: MCSPI4_CLK  || AE21 || M7, Pulldown || '''mcspi4_clk'''  &amp;amp;hArr;      || sdmmc4_clk  || kpd_col6 || gpio_151 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 31: MCSPI4_CS0  || AE20 || M7, Pullup   || '''mcspi4_cs0''' &amp;amp;hArr;&amp;amp;darr; || sdmmc4_dat3 || kpd_row7 || gpio_154 || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
a) Assigned as such in u-boot but reassigned in the kernel board startup code to Mode 3 Outputs&lt;br /&gt;
&lt;br /&gt;
b) A design error resulted in an internal 10K pull up to 1.8 internal to the DuoVero on the HDQ_SIO line. Do not enable a pull down on this line. This will result in a non-logic output level (approximately 1V).&lt;br /&gt;
&lt;br /&gt;
c) There are pullups on I2C2 and I2C3 of approximately 1K. S/C current is over 2mA.&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6026</id>
		<title>Duovero Multiplexes</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6026"/>
				<updated>2013-11-25T14:14:37Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: Add an indication of current U-Boot settings with bold and arrows.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How_to_-_linux]]&lt;br /&gt;
[[Category:Connect_hardware]]&lt;br /&gt;
&lt;br /&gt;
This wiki entry concentrates on the Duovero Parlor board and the Multiplexes available from the 40 pin connector.&lt;br /&gt;
&lt;br /&gt;
[[File:Duovero parlor conn small.png]]&lt;br /&gt;
&lt;br /&gt;
The ground pin is nearest the console connector port and the power pins are nearest the centre of the board. This is as of writing but it is highly recommended that you ''check'' before connecting! Use a voltmeter to check the 3.3V, 5V and 1.8V pins to familiarise yourself with the layout.&lt;br /&gt;
&lt;br /&gt;
There are also two connections on the Parlor board:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OMAP Pin !! GPIO # !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| AG24 || GPIO121 || user push button&lt;br /&gt;
|-&lt;br /&gt;
| AH24 || GPIO122 || user LED &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should start your journey [http://gumstix.org/hardware-design/duovero-coms.html here].&lt;br /&gt;
&lt;br /&gt;
The primary reference for multiplexes and pin functions is the Texas Instruments OMAP4 technical reference manual. The short version of that 6000 page manual is the OMAP4430 datasheet which is easier to search. The primary source reference is in the Uboot [https://github.com/gumstix/u-boot/tree/v2013.07/board/duovero code], specifically &amp;lt;tt&amp;gt;duovero_mux_data.h&amp;lt;/tt&amp;gt; which uses the defines from &amp;lt;tt&amp;gt;./arch/arm/include/asm/arch-omap4/mux_omap4.h&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Muxing ==&lt;br /&gt;
&lt;br /&gt;
A helpful post from Phil Lutz describes how multiplexing can be explored without kernel recompilation. The default multiplex for the user LED may not be set to GPIO in Uboot. It certainly is not set to GPIO by the OMAP itself. You can look at the OMAP datasheet on page 48 you can see that the official name for GPIO 122 pin is &amp;quot;abe_dmic_din3&amp;quot; (Mode 0 names are accepted pin names).&lt;br /&gt;
&lt;br /&gt;
This information can also be found by searching for &amp;quot;gpio_122&amp;quot; in the board pinmuxing configuration stored in sysfs: &amp;lt;tt&amp;gt;/sys/kernel/debug/omap_mux/board/core&amp;lt;/tt&amp;gt;. Every pin which can be configured as gpio has a hint about that.&lt;br /&gt;
&lt;br /&gt;
So now just check which is the current pinmuxing configuration for this pin by:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /sys/kernel/debug/omap_mux/abe_dmic_din3 &lt;br /&gt;
name: abe_dmic_din3.abe_dmic_din3 (0x4a100116/0x116 = 0x0100), b ah24, t NA&lt;br /&gt;
mode: OMAP_PIN_INPUT | OMAP_MUX_MODE0&lt;br /&gt;
signals: abe_dmic_din3 | slimbus2_data | abe_dmic_clk2 | gpio_122 | NA | dmtimer9_pwm_evt | NA | safe_mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the output suggests, the pin is configured in MODE0, this is 'abe_dmic_din3'. The other modes are listed in order as they appear in the OMAP data manual. gpio_122 is multiplex MODE 3. You can set it with:&lt;br /&gt;
&lt;br /&gt;
  $ echo 3 &amp;gt; /sys/kernel/debug/omap_mux/abe_dmic_din3&lt;br /&gt;
&lt;br /&gt;
Now you can turn on and off the LED using the usual gpio configuration in /sys/class/gpio/ (google it!). Note that &amp;quot;echo 3&amp;quot; does more than set Mode 3. The number is a selection of bits that set various states for the pin. A quick summary is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;100pt&amp;quot; |Bit 0,1,2 || Set the mode&lt;br /&gt;
|-&lt;br /&gt;
|Bit 3 || 0 = pull up/down disabled , 1 = enabled&lt;br /&gt;
|-&lt;br /&gt;
|Bit 4 || 0 = pull down, 1 = pull up&lt;br /&gt;
|-&lt;br /&gt;
|Bit 8 || 0 = Output only. 1 = input enable (bidirectional)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are more but these are for sleep modes and wakeup. The manual has details. The defines in mux_omap4.h are useful for interpreting the duovero_mux_data.h file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|IEN            || 1 &amp;lt;&amp;lt; 8   || Input enable (bidirectional)&lt;br /&gt;
|-&lt;br /&gt;
|IDIS           || 0 &amp;lt;&amp;lt; 8   || Output only&lt;br /&gt;
|-&lt;br /&gt;
|PTU   &amp;amp;nbsp;   || 3 &amp;lt;&amp;lt; 3 &amp;amp;nbsp;  || Enable Pullup&lt;br /&gt;
|-&lt;br /&gt;
|PTD            || 1 &amp;lt;&amp;lt; 3   || Enable Pulldown&lt;br /&gt;
|-&lt;br /&gt;
|EN             || 1 &amp;lt;&amp;lt; 3   || PU/PD enable&lt;br /&gt;
|-&lt;br /&gt;
|DIS            || 0 &amp;lt;&amp;lt; 3   || PU/PD disable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parlor pin mux table ==&lt;br /&gt;
&lt;br /&gt;
To assist in figuring out which pins on the Parlor board can be assigned to which duties, here's a table of functions. Mode 7 is &amp;quot;safe_mode&amp;quot; where the pin is effectively disconnected from any functionality. It's set to high impedance (Z) and is left out of the table. The bolded functions are those set by the current U-Boot duovero_mux_data.h. This file sets other parameters (eg: output only, disable pullup/pulldown, etc) and you must refer to the U-Boot file to know what the full state is. A partial indication of the state (wake mode) is indicated in the table by arrows (bidirectional, output, pullup, pulldown).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Connector Description !! OMAP Pin !! Reset state !! Mode 0 !! Mode 1 !! Mode 2 !! Mode 3 !! Mode 4 !! Mode 5 !! Mode 6&lt;br /&gt;
|-&lt;br /&gt;
| User LED        || AH24 || M7, Pulldown &amp;amp;nbsp; || '''abe_dmic_din3''' &amp;amp;hArr; || slimbus2_data || abe_dmic_clk2 || gpio_122 || - || dmtimer9_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| Button          || AG24 || M7, Pulldown || '''abe_dmic_din2''' &amp;amp;hArr;        || slimbus2_clock || abe_mcasp_axr  || gpio_121 || - || dmtimer11_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| 04: MCSPI1_CS0  || AE23 || M7, Pulldown || '''mcspi1_cs0''' &amp;amp;hArr;&amp;amp;darr;     ||   -       ||       -        || gpio_137 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 06: MCSPI1_CS1  || AF23 || M7, Pulldown || '''mcspi1_cs1''' &amp;amp;hArr;&amp;amp;darr;     || uart1_rx  ||       -        || gpio_138 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 08: MCSPI1_CS2  || AG23 || M7, Pullup   || mcspi1_cs2                        || uart1_cts || slimbus2_clock || gpio_139 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 10: MCSPI1_CS3  || AH23 || M7, Pullup   || mcspi1_cs3                        || uart1_rts || slimbus2_data  || gpio_140 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 03: MCSPI1_CLK  || AF22 || M7, Pulldown || '''mcspi1_clk''' &amp;amp;hArr;           || -         ||       -        || gpio_134 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 05: MCSPI1_SIMO || AG22 || M7, Pulldown || '''mcspi1_simo''' &amp;amp;hArr;          || -         ||       -        || gpio_136 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 07: MCSPI1_SOMI || AE22 || M7, Pulldown || '''mcspi1_somi''' &amp;amp;hArr;          || -         ||       -        || gpio_135 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 09: HDQ_SIO     || AA27 || M7, Z        || '''hdq_sio''' &amp;amp;rArr;              || i2c3_sccb || i2c2_sccb      || gpio_127 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 12: I2C2_SCL    || C26  || M7, Pullup   || '''i2c2_scl''' &amp;amp;hArr;&amp;amp;uarr;       || uart1_rx  ||       -        || gpio_128 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 14: I2C2_SDA    || D26  || M7, Pullup   || '''i2c2_sda''' &amp;amp;hArr;&amp;amp;uarr;       || uart1_tx  ||       -        || gpio_129 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 11: SDMMC3_CMD  || AG10 || M7, Pullup   || usbb2_ulpitll_dat6 || usbb2_ulpiphy_dat6 || sdmmc3_cmd || '''gpio_167''' &amp;amp;hArr;&amp;amp;uarr; || mcspi3_simo || dispc2_data12 || rfbi_data12&lt;br /&gt;
|-&lt;br /&gt;
| 13: SDMMC3_CLK  || AE9  || M7, Pullup   || usbb2_ulpitll_dat7 || usbb2_ulpiphy_dat7 || sdmmc3_clk || '''gpio_168''' &amp;amp;hArr;&amp;amp;uarr; || mcspi3_clk || dispc2_data11 || rfbi_data11&lt;br /&gt;
|-&lt;br /&gt;
| 15: UART2_TX    || AA26 || M7, Pullup   || '''uart2_tx''' &amp;amp;rArr;         || sdmmc3_dat1  || -         || gpio_126 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 17: UART2_RX    || AA25 || M7, Pullup   || '''uart2_rx''' &amp;amp;hArr;&amp;amp;uarr;   || sdmmc3_dat0  || -         || gpio_125 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 19: BSP2_CLKX   || AD27 || M7, Pulldown || '''abe_mcbsp2_clkx''' &amp;amp;hArr;  || mcspi2_clk || abe_mcasp_ahclkx || gpio_110 || usbb2_mm_rxdm || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 20: BSP2_FSX    || AC28 || M7, Pulldown || '''abe_mcbsp2_fsx''' &amp;amp;hArr;   || mcspi2_cs0 || abe_mcasp_afsx || gpio_113 || usbb2_mm_txen || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 21: BSP2_DX     || AD25 || M7, Pulldown || '''abe_mcbsp2_dx''' &amp;amp;rArr;    || mcspi2_simo || abe_mcasp_amute || gpio_112 || usbb2_mm_rxrcv || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 22: BSP2_DR     || AD26 || M7, Pulldown || '''abe_mcbsp2_dr''' &amp;amp;hArr;    || mcspi2_somi || abe_mcasp_axr || gpio_111 || usbb2_mm_rxdp || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 23: BSP_CLKS    || AH26 || M7, Pulldown || '''abe_clks''' &amp;amp;hArr;&amp;amp;darr;   || - || - || gpio_118 || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 25: MCSPI4_SOMI || AF21 || M7, Pullup   || '''mcspi4_somi''' &amp;amp;hArr;      || sdmmc4_dat0 || kpd_row6 || gpio_153 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 27: MCSPI4_SIMO || AF20 || M7, Pullup   || '''mcspi4_simo''' &amp;amp;hArr;      || sdmmc4_cmd  || kpd_col7 || gpio_152 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 29: MCSPI4_CLK  || AE21 || M7, Pulldown || '''mcspi4_clk'''  &amp;amp;hArr;      || sdmmc4_clk  || kpd_col6 || gpio_151 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 31: MCSPI4_CS0  || AE20 || M7, Pullup   || '''mcspi4_cs0''' &amp;amp;hArr;&amp;amp;darr; || sdmmc4_dat3 || kpd_row7 || gpio_154 || - || - || -&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Kernel_Build&amp;diff=6025</id>
		<title>Kernel Build</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Kernel_Build&amp;diff=6025"/>
				<updated>2013-11-25T12:14:27Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki entry adds a few details on building the Gumstix Linux kernel and bootloader from source.&lt;br /&gt;
&lt;br /&gt;
Start by installing the [http://wiki.gumstix.org/index.php?title=Toolchain toolchain].&lt;br /&gt;
&lt;br /&gt;
You will also need the U-boot 'mkimage' utility.  Debian and Ubuntu users can install it from their respective repositories.  It's also compiled when U-boot is built if you can't get it otherwise.  On top of that you will need 'git' and 'make'.&lt;br /&gt;
 $ sudo apt-get install uboot-mkimage git make&lt;br /&gt;
&lt;br /&gt;
The official kernel build [http://gumstix.org/basic-cross-compilation.html instructions] are the best source to describe building a kernel and are up to date. The gumstix kernels are stored on [https://github.com/gumstix/linux github] and are in different branches for differing platforms. There is a table of branches against platforms on the [http://gumstix.org/access-source-code.html gumstix.org website].&lt;br /&gt;
&lt;br /&gt;
The most usual way to pull the source code is using git:&lt;br /&gt;
&lt;br /&gt;
 $ git clone --branch omap-3.6 git://github.com/gumstix/linux.git linux&lt;br /&gt;
&lt;br /&gt;
will clone the entire source tree to your machine and checkout the omap-3.6 branch into the &amp;quot;linux&amp;quot; directory. You can also use &amp;lt;tt&amp;gt;https&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;git&amp;lt;/tt&amp;gt;. There are plenty of guides online to using git but a few timesaving methods are worth mentioning:&lt;br /&gt;
&lt;br /&gt;
=== Cloning a shallow tree ===&lt;br /&gt;
&lt;br /&gt;
You can clone just the tip of the relevant branch using a shallow clone. This has some restrictions but saves time and bandwidth:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;$ git clone --depth 1 --branch omap-3.6 https://github.com/gumstix/linux.git omap-3.6&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As of November 2013, this will pull 190MB from the server instead of over a gigabyte.&lt;br /&gt;
&lt;br /&gt;
You can also pull a zip file of this branch, either using the [https://github.com/gumstix/linux website] or by finding the appropriate link (use the website!) and using curl or wget.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;$ wget https://github.com/gumstix/linux/archive/omap-3.6.zip&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(this will do a 301 redirect so be aware of this - you might get a very small file with html in it!)&lt;br /&gt;
&lt;br /&gt;
For the 3.6 branch, this will pull approximately 123MB from the github server.&lt;br /&gt;
&lt;br /&gt;
=== Subtleties ===&lt;br /&gt;
&lt;br /&gt;
There is absolutely no difference in result aside from the presence of the &amp;quot;.git&amp;quot; directory, but this has a few subtle consequences. If you build with the zip file, you will get kernel and module versions stamped &amp;quot;3.6.0&amp;quot;. If you build from the git repository, the make process:&lt;br /&gt;
&lt;br /&gt;
* detects the git repository presence&lt;br /&gt;
* see that the checkout is not stamped with a tag (eg: &amp;quot;3.6.0&amp;quot;).&lt;br /&gt;
* adds a + to all versions to show that the repository is not officially 3.6.0.&lt;br /&gt;
&lt;br /&gt;
Thus you will get kernel and module version stamped with &amp;quot;3.6.0+&amp;quot;. If you try and load a 3.6.0+ module into a 3.6.0 kernel, it will fail with an &amp;quot;invalid module format&amp;quot; error. You can force it with &amp;quot;modprobe -f&amp;quot; but that isn't really a recommended action generally. The normal procedure is to install the kernel and modules together (see the [http://gumstix.org/basic-cross-compilation.html website] for details.&lt;br /&gt;
&lt;br /&gt;
You can override the version modification by setting LOCALVERSION (to anything) before running make.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== U-Boot ==&lt;br /&gt;
&lt;br /&gt;
The source for U-Boot is held in [https://github.com/gumstix/u-boot github]. The branch that the Yocto recipes are using is currently 2013.07 (although there is a 2013.10 branch too). You can checkout the branch with:&lt;br /&gt;
&lt;br /&gt;
  $ git clone --branch v2013.07 git://github.com/gumstix/u-boot.git&lt;br /&gt;
&lt;br /&gt;
or some variation of same (see above). You can also pull the zip file directly in the same way as above. You can configure U-Boot for:&lt;br /&gt;
&lt;br /&gt;
Overo:&lt;br /&gt;
  $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- omap3_overo_config&lt;br /&gt;
&lt;br /&gt;
Duovero:&lt;br /&gt;
  $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- omap4_duovero_config&lt;br /&gt;
&lt;br /&gt;
Then build u-boot:&lt;br /&gt;
  $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- all&lt;br /&gt;
&lt;br /&gt;
This should create MLO, u-boot.bin and u-boot.img in your u-boot directory.&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Kernel_Build&amp;diff=6024</id>
		<title>Kernel Build</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Kernel_Build&amp;diff=6024"/>
				<updated>2013-11-25T12:13:31Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: Add U-Boot details&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki entry adds a few details on building the Gumstix Linux kernel and bootloader from source.&lt;br /&gt;
&lt;br /&gt;
Start by installing the [http://wiki.gumstix.org/index.php?title=Toolchain toolchain].&lt;br /&gt;
&lt;br /&gt;
You will also need the U-boot 'mkimage' utility.  Debian and Ubuntu users can install it from their respective repositories.  It's also compiled when U-boot is built if you can't get it otherwise.  On top of that you will need 'git' and 'make'.&lt;br /&gt;
 $ sudo apt-get install uboot-mkimage git make&lt;br /&gt;
&lt;br /&gt;
The official kernel build [http://gumstix.org/basic-cross-compilation.html instructions] are the best source to describe building a kernel and are up to date. The gumstix kernels are stored on [https://github.com/gumstix/linux github] and are in different branches for differing platforms. There is a table of branches against platforms on the [http://gumstix.org/access-source-code.html gumstix.org website].&lt;br /&gt;
&lt;br /&gt;
The most usual way to pull the source code is using git:&lt;br /&gt;
&lt;br /&gt;
 $ git clone --branch omap-3.6 git://github.com/gumstix/linux.git linux&lt;br /&gt;
&lt;br /&gt;
will clone the entire source tree to your machine and checkout the omap-3.6 branch into the &amp;quot;linux&amp;quot; directory. You can also use &amp;lt;tt&amp;gt;https&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;git&amp;lt;/tt&amp;gt;. There are plenty of guides online to using git but a few timesaving methods are worth mentioning:&lt;br /&gt;
&lt;br /&gt;
=== Cloning a shallow tree ===&lt;br /&gt;
&lt;br /&gt;
You can clone just the tip of the relevant branch using a shallow clone. This has some restrictions but saves time and bandwidth:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;$ git clone --depth 1 --branch omap-3.6 https://github.com/gumstix/linux.git omap-3.6&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As of November 2013, this will pull 190MB from the server instead of over a gigabyte.&lt;br /&gt;
&lt;br /&gt;
You can also pull a zip file of this branch, either using the [https://github.com/gumstix/linux website] or by finding the appropriate link (use the website!) and using curl or wget.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;$ wget https://github.com/gumstix/linux/archive/omap-3.6.zip&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(this will do a 301 redirect so be aware of this - you might get a very small file with html in it!)&lt;br /&gt;
&lt;br /&gt;
For the 3.6 branch, this will pull approximately 123MB from the github server.&lt;br /&gt;
&lt;br /&gt;
=== Subtleties ===&lt;br /&gt;
&lt;br /&gt;
There is absolutely no difference in result aside from the presence of the &amp;quot;.git&amp;quot; directory, but this has a few subtle consequences. If you build with the zip file, you will get kernel and module versions stamped &amp;quot;3.6.0&amp;quot;. If you build from the git repository, the make process:&lt;br /&gt;
&lt;br /&gt;
* detects the git repository presence&lt;br /&gt;
* see that the checkout is not stamped with a tag (eg: &amp;quot;3.6.0&amp;quot;).&lt;br /&gt;
* adds a + to all versions to show that the repository is not officially 3.6.0.&lt;br /&gt;
&lt;br /&gt;
Thus you will get kernel and module version stamped with &amp;quot;3.6.0+&amp;quot;. If you try and load a 3.6.0+ module into a 3.6.0 kernel, it will fail with an &amp;quot;invalid module format&amp;quot; error. You can force it with &amp;quot;modprobe -f&amp;quot; but that isn't really a recommended action generally. The normal procedure is to install the kernel and modules together (see the [http://gumstix.org/basic-cross-compilation.html website] for details.&lt;br /&gt;
&lt;br /&gt;
You can override the version modification by setting LOCALVERSION (to anything) before running make.&lt;br /&gt;
&lt;br /&gt;
=== U-Boot ===&lt;br /&gt;
&lt;br /&gt;
The source for U-Boot is held in [https://github.com/gumstix/u-boot github]. The branch that the Yocto recipes are using is currently 2013.07 (although there is a 2013.10 branch too). You can checkout the branch with:&lt;br /&gt;
&lt;br /&gt;
  $ git clone --branch v2013.07 git://github.com/gumstix/u-boot.git&lt;br /&gt;
&lt;br /&gt;
or some variation of same (see above). You can also pull the zip file directly in the same way as above. You can configure U-Boot for:&lt;br /&gt;
&lt;br /&gt;
Overo:&lt;br /&gt;
  $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- omap3_overo_config&lt;br /&gt;
&lt;br /&gt;
Duovero:&lt;br /&gt;
  $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- omap4_duovero_config&lt;br /&gt;
&lt;br /&gt;
Then build u-boot:&lt;br /&gt;
  $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- all&lt;br /&gt;
&lt;br /&gt;
This should create MLO, u-boot.bin and u-boot.img in your u-boot directory.&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6023</id>
		<title>Duovero Multiplexes</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6023"/>
				<updated>2013-11-19T16:00:58Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: Add into categories&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How_to_-_linux]]&lt;br /&gt;
[[Category:Connect_hardware]]&lt;br /&gt;
&lt;br /&gt;
This wiki entry concentrates on the Duovero Parlor board and the Multiplexes available from the 40 pin connector.&lt;br /&gt;
&lt;br /&gt;
[[File:Duovero parlor conn small.png]]&lt;br /&gt;
&lt;br /&gt;
The ground pin is nearest the console connector port and the power pins are nearest the centre of the board. This is as of writing but it is highly recommended that you ''check'' before connecting! Use a voltmeter to check the 3.3V, 5V and 1.8V pins to familiarise yourself with the layout.&lt;br /&gt;
&lt;br /&gt;
There are also two connections on the Parlor board:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OMAP Pin !! GPIO # !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| AG24 || GPIO121 || user push button&lt;br /&gt;
|-&lt;br /&gt;
| AH24 || GPIO122 || user LED &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should start your journey [http://gumstix.org/hardware-design/duovero-coms.html here].&lt;br /&gt;
&lt;br /&gt;
The primary reference for multiplexes and pin functions is the Texas Instruments OMAP4 technical reference manual. The short version of that 6000 page manual is the OMAP4430 datasheet which is easier to search. The primary source reference is in the Uboot [https://github.com/gumstix/u-boot/tree/v2013.07/board/duovero code], specifically &amp;lt;tt&amp;gt;duovero_mux_data.h&amp;lt;/tt&amp;gt; which uses the defines from &amp;lt;tt&amp;gt;./arch/arm/include/asm/arch-omap4/mux_omap4.h&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Muxing ==&lt;br /&gt;
&lt;br /&gt;
A helpful post from Phil Lutz describes how multiplexing can be explored without kernel recompilation. The default multiplex for the user LED may not be set to GPIO in Uboot. It certainly is not set to GPIO by the OMAP itself. You can look at the OMAP datasheet on page 48 you can see that the official name for GPIO 122 pin is &amp;quot;abe_dmic_din3&amp;quot; (Mode 0 names are accepted pin names).&lt;br /&gt;
&lt;br /&gt;
This information can also be found by searching for &amp;quot;gpio_122&amp;quot; in the board pinmuxing configuration stored in sysfs: &amp;lt;tt&amp;gt;/sys/kernel/debug/omap_mux/board/core&amp;lt;/tt&amp;gt;. Every pin which can be configured as gpio has a hint about that.&lt;br /&gt;
&lt;br /&gt;
So now just check which is the current pinmuxing configuration for this pin by:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /sys/kernel/debug/omap_mux/abe_dmic_din3 &lt;br /&gt;
name: abe_dmic_din3.abe_dmic_din3 (0x4a100116/0x116 = 0x0100), b ah24, t NA&lt;br /&gt;
mode: OMAP_PIN_INPUT | OMAP_MUX_MODE0&lt;br /&gt;
signals: abe_dmic_din3 | slimbus2_data | abe_dmic_clk2 | gpio_122 | NA | dmtimer9_pwm_evt | NA | safe_mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the output suggests, the pin is configured in MODE0, this is 'abe_dmic_din3'. The other modes are listed in order as they appear in the OMAP data manual. gpio_122 is multiplex MODE 3. You can set it with:&lt;br /&gt;
&lt;br /&gt;
  $ echo 3 &amp;gt; /sys/kernel/debug/omap_mux/abe_dmic_din3&lt;br /&gt;
&lt;br /&gt;
Now you can turn on and off the LED using the usual gpio configuration in /sys/class/gpio/ (google it!). Note that &amp;quot;echo 3&amp;quot; does more than set Mode 3. The number is a selection of bits that set various states for the pin. A quick summary is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;100pt&amp;quot; |Bit 0,1,2 || Set the mode&lt;br /&gt;
|-&lt;br /&gt;
|Bit 3 || 0 = pull up/down disabled , 1 = enabled&lt;br /&gt;
|-&lt;br /&gt;
|Bit 4 || 0 = pull down, 1 = pull up&lt;br /&gt;
|-&lt;br /&gt;
|Bit 8 || 0 = Output only. 1 = input enable (bidirectional)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are more but these are for sleep modes and wakeup. The manual has details. The defines in mux_omap4.h are useful for interpreting the duovero_mux_data.h file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|IEN            || 1 &amp;lt;&amp;lt; 8   || Input enable (bidirectional)&lt;br /&gt;
|-&lt;br /&gt;
|IDIS           || 0 &amp;lt;&amp;lt; 8   || Output only&lt;br /&gt;
|-&lt;br /&gt;
|PTU   &amp;amp;nbsp;   || 3 &amp;lt;&amp;lt; 3 &amp;amp;nbsp;  || Enable Pullup&lt;br /&gt;
|-&lt;br /&gt;
|PTD            || 1 &amp;lt;&amp;lt; 3   || Enable Pulldown&lt;br /&gt;
|-&lt;br /&gt;
|EN             || 1 &amp;lt;&amp;lt; 3   || PU/PD enable&lt;br /&gt;
|-&lt;br /&gt;
|DIS            || 0 &amp;lt;&amp;lt; 3   || PU/PD disable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parlor pin mux table ==&lt;br /&gt;
&lt;br /&gt;
To assist in figuring out which pins on the Parlor board can be assigned to which duties, here's a table of functions. Mode 7 is &amp;quot;safe_mode&amp;quot; where the pin is effectively disconnected from any functionality. It's set to high impedance (Z). I leave it out of the following table:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Connector Description !! OMAP Pin !! Reset state !! Mode 0 !! Mode 1 !! Mode 2 !! Mode 3 !! Mode 4 !! Mode 5 !! Mode 6&lt;br /&gt;
|-&lt;br /&gt;
| User LED        || AH24 || M7, Pulldown &amp;amp;nbsp; || abe_dmic_din3      || slimbus2_data || abe_dmic_clk2 || gpio_122 || -  || dmtimer9_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| Button          || AG24 || M7, Pulldown || abe_dmic_din2      || slimbus2_clock || abe_mcasp_axr  || gpio_121 || -  || dmtimer11_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| 04: MCSPI1_CS0  || AE23 || M7, Pulldown || mcspi1_cs0         ||   -       ||       -        || gpio_137 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 06: MCSPI1_CS1  || AF23 || M7, Pulldown || mcspi1_cs1         || uart1_rx  ||       -        || gpio_138 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 08: MCSPI1_CS2  || AG23 || M7, Pullup   || mcspi1_cs2         || uart1_cts || slimbus2_clock || gpio_139 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 10: MCSPI1_CS3  || AH23 || M7, Pullup   || mcspi1_cs3         || uart1_rts || slimbus2_data  || gpio_140 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 03: MCSPI1_CLK  || AF22 || M7, Pulldown || mcspi1_clk         || -         ||       -        || gpio_134 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 05: MCSPI1_SIMO || AG22 || M7, Pulldown || mcspi1_simo        || -         ||       -        || gpio_136 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 07: MCSPI1_SOMI || AE22 || M7, Pulldown || mcspi1_somi        || -         ||       -        || gpio_135 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 09: HDQ_SIO     || AA27 || M7, Z        || hdq_sio            || i2c3_sccb || i2c2_sccb      || gpio_127 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 12: I2C2_SCL    || C26  || M7, Pullup   || i2c2_scl           || uart1_rx  ||       -        || gpio_128 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 14: I2C2_SDA    || D26  || M7, Pullup   || i2c2_sda           || uart1_tx  ||       -        || gpio_129 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 11: SDMMC3_CMD  || AG10 || M7, Pullup   || usbb2_ulpitll_dat6 || usbb2_ulpiphy_dat6 || sdmmc3_cmd || gpio_167 || mcspi3_simo || dispc2_data12 || rfbi_data12&lt;br /&gt;
|-&lt;br /&gt;
| 13: SDMMC3_CLK  || AE9  || M7, Pullup   || usbb2_ulpitll_dat7 || usbb2_ulpiphy_dat7 || sdmmc3_clk || gpio_168 || mcspi3_clk || dispc2_data11 || rfbi_data11&lt;br /&gt;
|-&lt;br /&gt;
| 15: UART2_TX    || AA26 || M7, Pullup   || uart2_tx           || sdmmc3_dat1  || -         || gpio_126 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 17: UART2_RX    || AA25 || M7, Pullup   || uart2_rx           || sdmmc3_dat0  || -         || gpio_125 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 19: BSP2_CLKX   || AD27 || M7, Pulldown || abe_mcbsp2_clkx || mcspi2_clk || abe_mcasp_ahclkx || gpio_110 || usbb2_mm_rxdm || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 20: BSP2_FSX    || AC28 || M7, Pulldown || abe_mcbsp2_fsx || mcspi2_cs0 || abe_mcasp_afsx || gpio_113 || usbb2_mm_txen || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 21: BSP2_DX     || AD25 || M7, Pulldown || abe_mcbsp2_dx || mcspi2_simo || abe_mcasp_amute || gpio_112 || usbb2_mm_rxrcv || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 22: BSP2_DR     || AD26 || M7, Pulldown || abe_mcbsp2_dr || mcspi2_somi || abe_mcasp_axr || gpio_111 || usbb2_mm_rxdp || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 23: BSP_CLKS    || AH26 || M7, Pulldown || abe_clks || - || - || gpio_118 || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 25: MCSPI4_SOMI || AF21 || M7, Pullup   || mcspi4_somi || sdmmc4_dat0 || kpd_row6 || gpio_153 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 27: MCSPI4_SIMO || AF20 || M7, Pullup   || mcspi4_simo || sdmmc4_cmd  || kpd_col7 || gpio_152 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 29: MCSPI4_CLK  || AE21 || M7, Pulldown || mcspi4_clk  || sdmmc4_clk  || kpd_col6 || gpio_151 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 31: MCSPI4_CS0  || AE20 || M7, Pullup   || mcspi4_cs0  || sdmmc4_dat3 || kpd_row7 || gpio_154 || - || - || -&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6022</id>
		<title>Duovero Multiplexes</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6022"/>
				<updated>2013-11-19T15:08:24Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: Duovero hardware and pin muxes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki entry concentrates on the Duovero Parlor board and the Multiplexes available from the 40 pin connector.&lt;br /&gt;
&lt;br /&gt;
[[File:Duovero parlor conn small.png]]&lt;br /&gt;
&lt;br /&gt;
The ground pin is nearest the console connector port and the power pins are nearest the centre of the board. This is as of writing but it is highly recommended that you ''check'' before connecting! Use a voltmeter to check the 3.3V, 5V and 1.8V pins to familiarise yourself with the layout.&lt;br /&gt;
&lt;br /&gt;
There are also two connections on the Parlor board:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OMAP Pin !! GPIO # !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| AG24 || GPIO121 || user push button&lt;br /&gt;
|-&lt;br /&gt;
| AH24 || GPIO122 || user LED &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should start your journey [http://gumstix.org/hardware-design/duovero-coms.html here].&lt;br /&gt;
&lt;br /&gt;
The primary reference for multiplexes and pin functions is the Texas Instruments OMAP4 technical reference manual. The short version of that 6000 page manual is the OMAP4430 datasheet which is easier to search. The primary source reference is in the Uboot [https://github.com/gumstix/u-boot/tree/v2013.07/board/duovero code], specifically &amp;lt;tt&amp;gt;duovero_mux_data.h&amp;lt;/tt&amp;gt; which uses the defines from &amp;lt;tt&amp;gt;./arch/arm/include/asm/arch-omap4/mux_omap4.h&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Muxing ==&lt;br /&gt;
&lt;br /&gt;
A helpful post from Phil Lutz describes how multiplexing can be explored without kernel recompilation. The default multiplex for the user LED may not be set to GPIO in Uboot. It certainly is not set to GPIO by the OMAP itself. You can look at the OMAP datasheet on page 48 you can see that the official name for GPIO 122 pin is &amp;quot;abe_dmic_din3&amp;quot; (Mode 0 names are accepted pin names).&lt;br /&gt;
&lt;br /&gt;
This information can also be found by searching for &amp;quot;gpio_122&amp;quot; in the board pinmuxing configuration stored in sysfs: &amp;lt;tt&amp;gt;/sys/kernel/debug/omap_mux/board/core&amp;lt;/tt&amp;gt;. Every pin which can be configured as gpio has a hint about that.&lt;br /&gt;
&lt;br /&gt;
So now just check which is the current pinmuxing configuration for this pin by:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /sys/kernel/debug/omap_mux/abe_dmic_din3 &lt;br /&gt;
name: abe_dmic_din3.abe_dmic_din3 (0x4a100116/0x116 = 0x0100), b ah24, t NA&lt;br /&gt;
mode: OMAP_PIN_INPUT | OMAP_MUX_MODE0&lt;br /&gt;
signals: abe_dmic_din3 | slimbus2_data | abe_dmic_clk2 | gpio_122 | NA | dmtimer9_pwm_evt | NA | safe_mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the output suggests, the pin is configured in MODE0, this is 'abe_dmic_din3'. The other modes are listed in order as they appear in the OMAP data manual. gpio_122 is multiplex MODE 3. You can set it with:&lt;br /&gt;
&lt;br /&gt;
  $ echo 3 &amp;gt; /sys/kernel/debug/omap_mux/abe_dmic_din3&lt;br /&gt;
&lt;br /&gt;
Now you can turn on and off the LED using the usual gpio configuration in /sys/class/gpio/ (google it!). Note that &amp;quot;echo 3&amp;quot; does more than set Mode 3. The number is a selection of bits that set various states for the pin. A quick summary is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;100pt&amp;quot; |Bit 0,1,2 || Set the mode&lt;br /&gt;
|-&lt;br /&gt;
|Bit 3 || 0 = pull up/down disabled , 1 = enabled&lt;br /&gt;
|-&lt;br /&gt;
|Bit 4 || 0 = pull down, 1 = pull up&lt;br /&gt;
|-&lt;br /&gt;
|Bit 8 || 0 = Output only. 1 = input enable (bidirectional)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are more but these are for sleep modes and wakeup. The manual has details. The defines in mux_omap4.h are useful for interpreting the duovero_mux_data.h file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|IEN            || 1 &amp;lt;&amp;lt; 8   || Input enable (bidirectional)&lt;br /&gt;
|-&lt;br /&gt;
|IDIS           || 0 &amp;lt;&amp;lt; 8   || Output only&lt;br /&gt;
|-&lt;br /&gt;
|PTU   &amp;amp;nbsp;   || 3 &amp;lt;&amp;lt; 3 &amp;amp;nbsp;  || Enable Pullup&lt;br /&gt;
|-&lt;br /&gt;
|PTD            || 1 &amp;lt;&amp;lt; 3   || Enable Pulldown&lt;br /&gt;
|-&lt;br /&gt;
|EN             || 1 &amp;lt;&amp;lt; 3   || PU/PD enable&lt;br /&gt;
|-&lt;br /&gt;
|DIS            || 0 &amp;lt;&amp;lt; 3   || PU/PD disable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parlor pin mux table ==&lt;br /&gt;
&lt;br /&gt;
To assist in figuring out which pins on the Parlor board can be assigned to which duties, here's a table of functions. Mode 7 is &amp;quot;safe_mode&amp;quot; where the pin is effectively disconnected from any functionality. It's set to high impedance (Z). I leave it out of the following table:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Connector Description !! OMAP Pin !! Reset state !! Mode 0 !! Mode 1 !! Mode 2 !! Mode 3 !! Mode 4 !! Mode 5 !! Mode 6&lt;br /&gt;
|-&lt;br /&gt;
| User LED        || AH24 || M7, Pulldown &amp;amp;nbsp; || abe_dmic_din3      || slimbus2_data || abe_dmic_clk2 || gpio_122 || -  || dmtimer9_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| Button          || AG24 || M7, Pulldown || abe_dmic_din2      || slimbus2_clock || abe_mcasp_axr  || gpio_121 || -  || dmtimer11_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| 04: MCSPI1_CS0  || AE23 || M7, Pulldown || mcspi1_cs0         ||   -       ||       -        || gpio_137 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 06: MCSPI1_CS1  || AF23 || M7, Pulldown || mcspi1_cs1         || uart1_rx  ||       -        || gpio_138 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 08: MCSPI1_CS2  || AG23 || M7, Pullup   || mcspi1_cs2         || uart1_cts || slimbus2_clock || gpio_139 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 10: MCSPI1_CS3  || AH23 || M7, Pullup   || mcspi1_cs3         || uart1_rts || slimbus2_data  || gpio_140 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 03: MCSPI1_CLK  || AF22 || M7, Pulldown || mcspi1_clk         || -         ||       -        || gpio_134 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 05: MCSPI1_SIMO || AG22 || M7, Pulldown || mcspi1_simo        || -         ||       -        || gpio_136 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 07: MCSPI1_SOMI || AE22 || M7, Pulldown || mcspi1_somi        || -         ||       -        || gpio_135 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 09: HDQ_SIO     || AA27 || M7, Z        || hdq_sio            || i2c3_sccb || i2c2_sccb      || gpio_127 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 12: I2C2_SCL    || C26  || M7, Pullup   || i2c2_scl           || uart1_rx  ||       -        || gpio_128 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 14: I2C2_SDA    || D26  || M7, Pullup   || i2c2_sda           || uart1_tx  ||       -        || gpio_129 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 11: SDMMC3_CMD  || AG10 || M7, Pullup   || usbb2_ulpitll_dat6 || usbb2_ulpiphy_dat6 || sdmmc3_cmd || gpio_167 || mcspi3_simo || dispc2_data12 || rfbi_data12&lt;br /&gt;
|-&lt;br /&gt;
| 13: SDMMC3_CLK  || AE9  || M7, Pullup   || usbb2_ulpitll_dat7 || usbb2_ulpiphy_dat7 || sdmmc3_clk || gpio_168 || mcspi3_clk || dispc2_data11 || rfbi_data11&lt;br /&gt;
|-&lt;br /&gt;
| 15: UART2_TX    || AA26 || M7, Pullup   || uart2_tx           || sdmmc3_dat1  || -         || gpio_126 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 17: UART2_RX    || AA25 || M7, Pullup   || uart2_rx           || sdmmc3_dat0  || -         || gpio_125 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 19: BSP2_CLKX   || AD27 || M7, Pulldown || abe_mcbsp2_clkx || mcspi2_clk || abe_mcasp_ahclkx || gpio_110 || usbb2_mm_rxdm || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 20: BSP2_FSX    || AC28 || M7, Pulldown || abe_mcbsp2_fsx || mcspi2_cs0 || abe_mcasp_afsx || gpio_113 || usbb2_mm_txen || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 21: BSP2_DX     || AD25 || M7, Pulldown || abe_mcbsp2_dx || mcspi2_simo || abe_mcasp_amute || gpio_112 || usbb2_mm_rxrcv || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 22: BSP2_DR     || AD26 || M7, Pulldown || abe_mcbsp2_dr || mcspi2_somi || abe_mcasp_axr || gpio_111 || usbb2_mm_rxdp || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 23: BSP_CLKS    || AH26 || M7, Pulldown || abe_clks || - || - || gpio_118 || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
| 25: MCSPI4_SOMI || AF21 || M7, Pullup   || mcspi4_somi || sdmmc4_dat0 || kpd_row6 || gpio_153 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 27: MCSPI4_SIMO || AF20 || M7, Pullup   || mcspi4_simo || sdmmc4_cmd  || kpd_col7 || gpio_152 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 29: MCSPI4_CLK  || AE21 || M7, Pulldown || mcspi4_clk  || sdmmc4_clk  || kpd_col6 || gpio_151 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 31: MCSPI4_CS0  || AE20 || M7, Pullup   || mcspi4_cs0  || sdmmc4_dat3 || kpd_row7 || gpio_154 || - || - || -&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6021</id>
		<title>Duovero Multiplexes</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6021"/>
				<updated>2013-11-19T14:34:49Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: Still in progress!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki entries concentrates on the Duovero Parlor board and the Multiplexes available from the 40 pin connector.&lt;br /&gt;
&lt;br /&gt;
[[File:Duovero parlor conn small.png]]&lt;br /&gt;
&lt;br /&gt;
The ground pin is nearest the console connector port and the power pins are nearest the centre of the board. This is as of writing but it is highly recommended that you ''check'' before connecting! Use a voltmeter to check the 3.3V, 5V and 1.8V pins to familiarise yourself with the layout.&lt;br /&gt;
&lt;br /&gt;
There are also two connections on the Parlor board:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OMAP Pin !! GPIO # !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| AG24 || GPIO121 || user push button&lt;br /&gt;
|-&lt;br /&gt;
| AH24 || GPIO122 || user LED &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should start your journey [http://gumstix.org/hardware-design/duovero-coms.html here].&lt;br /&gt;
&lt;br /&gt;
The primary reference for multiplexes and pin functions is the Texas Instruments OMAP4 technical reference manual. The short version of that 6000 page manual is the OMAP4430 datasheet which is easier to search. The primary source reference is in the Uboot [https://github.com/gumstix/u-boot/tree/v2013.07/board/duovero code], specifically &amp;lt;tt&amp;gt;duovero_mux_data.h&amp;lt;/tt&amp;gt; which uses the defines from &amp;lt;tt&amp;gt;./arch/arm/include/asm/arch-omap4/mux_omap4.h&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software Muxing ==&lt;br /&gt;
&lt;br /&gt;
A helpful post from Phil Lutz describes how multiplexing can be explored without kernel recompilation. The default multiplex for the user LED may not be set to GPIO in Uboot. It certainly is not set to GPIO by the OMAP itself. You can look at the OMAP datasheet on page 48 you can see that the official name for GPIO 122 pin is &amp;quot;abe_dmic_din3&amp;quot; (Mode 0 names are accepted pin names).&lt;br /&gt;
&lt;br /&gt;
This information can also be found by searching for &amp;quot;gpio_122&amp;quot; in the board pinmuxing configuration stored in sysfs: &amp;lt;tt&amp;gt;/sys/kernel/debug/omap_mux/board/core&amp;lt;/tt&amp;gt;. Every pin which can be configured as gpio has a hint about that.&lt;br /&gt;
&lt;br /&gt;
So now just check which is the current pinmuxing configuration for this pin by:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /sys/kernel/debug/omap_mux/abe_dmic_din3 &lt;br /&gt;
name: abe_dmic_din3.abe_dmic_din3 (0x4a100116/0x116 = 0x0100), b ah24, t NA&lt;br /&gt;
mode: OMAP_PIN_INPUT | OMAP_MUX_MODE0&lt;br /&gt;
signals: abe_dmic_din3 | slimbus2_data | abe_dmic_clk2 | gpio_122 | NA | dmtimer9_pwm_evt | NA | safe_mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the output suggests, the pin is configured in MODE0, this is 'abe_dmic_din3'. The other modes are listed in order as they appear in the OMAP data manual. gpio_122 is multiplex MODE 3. You can set it with:&lt;br /&gt;
&lt;br /&gt;
  $ echo 3 &amp;gt; /sys/kernel/debug/omap_mux/abe_dmic_din3&lt;br /&gt;
&lt;br /&gt;
Now you can turn on and off the LED using the usual gpio configuration in /sys/class/gpio/ (google it!). Note that &amp;quot;echo 3&amp;quot; does more than set Mode 3. The number is a selection of bits that set various states for the pin. A quick summary is:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;100pt&amp;quot; |Bit 0,1,2 || Set the mode&lt;br /&gt;
|-&lt;br /&gt;
|Bit 3 || 0 = pull up/down disabled , 1 = enabled&lt;br /&gt;
|-&lt;br /&gt;
|Bit 4 || 0 = pull down, 1 = pull up&lt;br /&gt;
|-&lt;br /&gt;
|Bit 8 || 0 = Output only. 1 = input enable (bidirectional)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are more but these are for sleep modes and wakeup. The manual has details. The defines in mux_omap4.h are useful for interpreting the duovero_mux_data.h file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Define !! Set to &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;!! Purpose&lt;br /&gt;
|-&lt;br /&gt;
|IEN            || 1 &amp;lt;&amp;lt; 8   || Input enable (bidirectional)&lt;br /&gt;
|-&lt;br /&gt;
|IDIS           || 0 &amp;lt;&amp;lt; 8   || Output only&lt;br /&gt;
|-&lt;br /&gt;
|PTU            || 3 &amp;lt;&amp;lt; 3   || Enable Pullup&lt;br /&gt;
|-&lt;br /&gt;
|PTD            || 1 &amp;lt;&amp;lt; 3   || Enable Pulldown&lt;br /&gt;
|-&lt;br /&gt;
|EN             || 1 &amp;lt;&amp;lt; 3   || PU/PD enable&lt;br /&gt;
|-&lt;br /&gt;
|DIS            || 0 &amp;lt;&amp;lt; 3   || PU/PD disable&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parlor pin mux table ==&lt;br /&gt;
&lt;br /&gt;
To assist in figuring out which pins on the Parlor board can be assigned to which duties, here's a table of functions. Mode 7 is &amp;quot;safe_mode&amp;quot; where the pin is effectively disconnected from any functionality. It's set to high impedance (Z). I leave it out of the following table:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Connector Description !! OMAP Pin !! Reset state !! Mode 0 !! Mode 1 !! Mode 2 !! Mode 3 !! Mode 4 !! Mode 5 !! Mode 6&lt;br /&gt;
|-&lt;br /&gt;
| User LED        || AH24 || M7, Pulldown || abe_dmic_din3      || slimbus2_data || abe_dmic_clk2 || gpio_122 || -  || dmtimer9_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| Button          || AG24 || M7, Pulldown || abe_dmic_din2      || slimbus2_clock || abe_mcasp_axr  || gpio_121 || -  || dmtimer11_pwm_evt || -&lt;br /&gt;
|-&lt;br /&gt;
| 04: MCSPI1_CS0  || AE23 || M7, Pulldown || mcspi1_cs0         ||   -       ||       -        || gpio_137 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 06: MCSPI1_CS1  || AF23 || M7, Pulldown || mcspi1_cs1         || uart1_rx  ||       -        || gpio_138 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 08: MCSPI1_CS2  || AG23 || M7, Pullup   || mcspi1_cs2         || uart1_cts || slimbus2_clock || gpio_139 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 10: MCSPI1_CS3  || AH23 || M7, Pullup   || mcspi1_cs3         || uart1_rts || slimbus2_data  || gpio_140 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 03: MCSPI1_CLK  || AF22 || M7, Pulldown || mcspi1_clk         || -         ||       -        || gpio_134 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 05: MCSPI1_SIMO || AG22 || M7, Pulldown || mcspi1_simo        || -         ||       -        || gpio_136 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 07: MCSPI1_SOMI || AE22 || M7, Pulldown || mcspi1_somi        || -         ||       -        || gpio_135 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 09: HDQ_SIO     || AA27 || M7, Z        || hdq_sio            || i2c3_sccb || i2c2_sccb      || gpio_127 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 12: I2C2_SCL    || C26  || M7, Pullup   || i2c2_scl           || uart1_rx  ||       -        || gpio_128 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 14: I2C2_SDA    || D26  || M7, Pullup   || i2c2_sda           || uart1_tx  ||       -        || gpio_129 || -  || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 11: SDMMC3_CMD  || AG10 || M7, Pullup   || usbb2_ulpitll_dat6 || usbb2_ulpiphy_dat6 || sdmmc3_cmd || gpio_167 || mcspi3_simo || dispc2_data12 || rfbi_data12&lt;br /&gt;
|-&lt;br /&gt;
| 13: SDMMC3_CLK  || AE9  || M7, Pullup   || usbb2_ulpitll_dat7 || usbb2_ulpiphy_dat7 || sdmmc3_clk || gpio_168 || mcspi3_clk || dispc2_data11 || rfbi_data11&lt;br /&gt;
|-&lt;br /&gt;
| 15: UART2_TX    || AA26 || M7, Pullup   || uart2_tx           || sdmmc3_dat1  || -         || gpio_126 || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
| 17: UART2_RX    || AA25 || M7, Pullup   || uart2_rx           || sdmmc3_dat0  || -         || gpio_125 || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In progress...!&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6020</id>
		<title>Duovero Multiplexes</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Duovero_Multiplexes&amp;diff=6020"/>
				<updated>2013-11-19T12:17:42Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: Page in progress...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki entries concentrates on the Duovero Parlor board and the Multiplexes available from the 40 pin connector.&lt;br /&gt;
&lt;br /&gt;
[[File:Duovero parlor conn small.png]]&lt;br /&gt;
&lt;br /&gt;
The ground pin is nearest the console connector port and the power pins are nearest the centre of the board. This is as of writing but it is highly recommended that you ''check'' before connecting! Use a voltmeter to check the 3.3V, 5V and 1.8V pins to familiarise yourself with the layout.&lt;br /&gt;
&lt;br /&gt;
There are also two connections on the Parlor board:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OMAP Pin !! GPIO # !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| AG24 || GPIO121 || user push button&lt;br /&gt;
|-&lt;br /&gt;
| AH24 || GPIO122 || user LED &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The primary reference for multiplexes and pin functions is the Texas Instruments OMAP4 technical reference manual. The primary source reference is in the Uboot [https://github.com/gumstix/u-boot/tree/v2013.07/board/duovero code] in duovero_mux_data.h. You should start your journey [http://gumstix.org/hardware-design/duovero-coms.html here].&lt;br /&gt;
&lt;br /&gt;
== Software Muxing ==&lt;br /&gt;
&lt;br /&gt;
A helpful post from Phil Lutz describes how multiplexing can be explored without kernel recompilation. The default multiplex for the user LED may not be set to GPIO in Uboot. It certainly is not set to GPIO by the OMAP itself. You can look at the OMAP data manual on page 48 you can see that the official name for GPIO 122 pin is &amp;quot;abe_dmic_din3&amp;quot; (Mode 0 names are accepted pin names).&lt;br /&gt;
&lt;br /&gt;
This information can also be found by searching for &amp;quot;gpio_122&amp;quot; in the board pinmuxing configuration stored in sysfs: &amp;lt;tt&amp;gt;/sys/kernel/debug/omap_mux/board/core&amp;lt;/tt&amp;gt;. Every pin which can be configured as gpio has a hint about that.&lt;br /&gt;
&lt;br /&gt;
So now just check which is the current pinmuxing configuration for this pin by:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /sys/kernel/debug/omap_mux/abe_dmic_din3 &lt;br /&gt;
name: abe_dmic_din3.abe_dmic_din3 (0x4a100116/0x116 = 0x0100), b ah24, t NA&lt;br /&gt;
mode: OMAP_PIN_INPUT | OMAP_MUX_MODE0&lt;br /&gt;
signals: abe_dmic_din3 | slimbus2_data | abe_dmic_clk2 | gpio_122 | NA | dmtimer9_pwm_evt | NA | safe_mode&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the output suggests, the pin is configured in MODE0, this is 'abe_dmic_din3'. The other modes are listed in order as they appear in the OMAP data manual. gpio_122 is multiplex MODE 3. You can set it with:&lt;br /&gt;
&lt;br /&gt;
  $ echo 3 &amp;gt; /sys/kernel/debug/omap_mux/abe_dmic_din3&lt;br /&gt;
&lt;br /&gt;
Now you can turn on and off the LED using the usual gpio configuration in /sys/class/gpio/ (google it!).&lt;br /&gt;
&lt;br /&gt;
== Parlor pin mux table ==&lt;br /&gt;
&lt;br /&gt;
To assist in figuring out which pins on the Parlor board can be assigned to which duties, here's a table of functions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Connector Description !! OMAP Pin !! Reset state !! Mode0 !! Mode1 !! Mode2 !! Mode3 !! Mode4 !! Mode5 !! Mode6 !! Mode7&lt;br /&gt;
|-&lt;br /&gt;
| User LED || AH24 || 7, Z, Pulldown || abe_dmic_din3 || slimbus2_data || abe_dmic_clk2 || gpio_122 || NA || dmtimer9_pwm_evt || NA || safe_mode&lt;br /&gt;
|-&lt;br /&gt;
| Button || AG24 || 7, Z, Pulldown || abe_dmic_din2 || slimbus2_clock || abe_mcasp_axr  || gpio_121 || NA || dmtimer11_pwm_evt || NA || safe_mode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In progress...!&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=File:Duovero_parlor_conn_small.png&amp;diff=6019</id>
		<title>File:Duovero parlor conn small.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=File:Duovero_parlor_conn_small.png&amp;diff=6019"/>
				<updated>2013-11-19T11:33:33Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: Small version of File:duovero_parlor_conn.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Small version of [[File:duovero_parlor_conn.png]]&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=File:Duovero_parlor_conn.png&amp;diff=6018</id>
		<title>File:Duovero parlor conn.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=File:Duovero_parlor_conn.png&amp;diff=6018"/>
				<updated>2013-11-19T11:28:43Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: Duovero connector taken as a screenshot of the official circuit diagram pdf. This is copyright Gumstix.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Duovero connector taken as a screenshot of the official circuit diagram pdf. This is copyright Gumstix.&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Kernel_Build&amp;diff=6017</id>
		<title>Kernel Build</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Kernel_Build&amp;diff=6017"/>
				<updated>2013-11-19T11:16:15Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki entry adds a few details on building the Gumstix Linux kernel from source.&lt;br /&gt;
&lt;br /&gt;
Start by installing the [http://wiki.gumstix.org/index.php?title=Toolchain toolchain].&lt;br /&gt;
&lt;br /&gt;
You will also need the U-boot 'mkimage' utility.  Debian and Ubuntu users can install it from their respective repositories.  It's also compiled when U-boot is built if you can't get it otherwise.  On top of that you will need 'git' and 'make'.&lt;br /&gt;
 $ sudo apt-get install uboot-mkimage git make&lt;br /&gt;
&lt;br /&gt;
The official kernel build [http://gumstix.org/basic-cross-compilation.html instructions] are the best source to describe building a kernel and are up to date. The gumstix kernels are stored on [https://github.com/gumstix/linux github] and are in different branches for differing platforms. There is a table of branches against platforms on the [http://gumstix.org/access-source-code.html gumstix.org website].&lt;br /&gt;
&lt;br /&gt;
The most usual way to pull the source code is using git:&lt;br /&gt;
&lt;br /&gt;
 $ git clone --branch omap-3.6 git://github.com/gumstix/linux.git Linux&lt;br /&gt;
&lt;br /&gt;
will clone the entire source tree to your machine and checkout the omap-3.6 branch into the &amp;quot;linux&amp;quot; directory. There are plenty of guides online to using git but a few timesaving methods are worth mentioning:&lt;br /&gt;
&lt;br /&gt;
=== Cloning a shallow tree ===&lt;br /&gt;
&lt;br /&gt;
You can clone just the tip of the relevant branch using a shallow clone. This has some restrictions but saves time and bandwidth:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;$ git clone --depth 1 --branch omap-3.6 https://github.com/gumstix/linux.git omap-3.6&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As of November 2013, this will pull 190MB from the server instead of over a gigabyte.&lt;br /&gt;
&lt;br /&gt;
You can also pull a zip file of this branch, either using the [https://github.com/gumstix/linux website] or by finding the appropriate link (use the website!) and using curl or wget.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;$ wget https://github.com/gumstix/linux/archive/omap-3.6.zip&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(this will do a 301 redirect so be aware of this - you might get a very small file with html in it!)&lt;br /&gt;
&lt;br /&gt;
For the 3.6 branch, this will pull approximately 123MB from the github server.&lt;br /&gt;
&lt;br /&gt;
=== Subtleties ===&lt;br /&gt;
&lt;br /&gt;
There is absolutely no difference in result aside from the presence of the &amp;quot;.git&amp;quot; directory, but this has a few subtle consequences. If you build with the zip file, you will get kernel and module versions stamped &amp;quot;3.6.0&amp;quot;. If you build from the git repository, the make process:&lt;br /&gt;
&lt;br /&gt;
* detects the git repository presence&lt;br /&gt;
* see that the checkout is not stamped with a tag (eg: &amp;quot;3.6.0&amp;quot;).&lt;br /&gt;
* adds a + to all versions to show that the repository is not officially 3.6.0.&lt;br /&gt;
&lt;br /&gt;
Thus you will get kernel and module version stamped with &amp;quot;3.6.0+&amp;quot;. If you try and load a 3.6.0+ module into a 3.6.0 kernel, it will fail with an &amp;quot;invalid module format&amp;quot; error. You can force it with &amp;quot;modprobe -f&amp;quot; but that isn't really a recommended action generally. The normal procedure is to install the kernel and modules together (see the [http://gumstix.org/basic-cross-compilation.html website] for details.&lt;br /&gt;
&lt;br /&gt;
You can override the version modification by setting LOCALVERSION (to anything) before running make.&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Kernel_Build&amp;diff=6016</id>
		<title>Kernel Build</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Kernel_Build&amp;diff=6016"/>
				<updated>2013-11-19T11:15:46Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki entry adds a few details on building the Gumstix Linux kernel from source.&lt;br /&gt;
&lt;br /&gt;
Start by installing the [http://wiki.gumstix.org/index.php?title=Toolchain toolchain].&lt;br /&gt;
&lt;br /&gt;
You will also need the U-boot 'mkimage' utility.  Debian and Ubuntu users can install it from their respective repositories.  It's also compiled when U-boot is built if you can't get it otherwise.  On top of that you will need 'git' and 'make'.&lt;br /&gt;
 $ sudo apt-get install uboot-mkimage git make&lt;br /&gt;
&lt;br /&gt;
The official kernel build [http://gumstix.org/basic-cross-compilation.html instructions] are the best source to describe building a kernel and are up to date. The gumstix kernels are stored on [https://github.com/gumstix/linux github] and are in different branches for differing platforms. There is a table of branches against platforms on the [http://gumstix.org/access-source-code.html gumstix.org website].&lt;br /&gt;
&lt;br /&gt;
The most usual way to pull the source code is using git:&lt;br /&gt;
&lt;br /&gt;
 $ git clone --branch omap-3.6 git://github.com/gumstix/linux.git Linux&lt;br /&gt;
&lt;br /&gt;
will clone the entire source tree to your machine and checkout the omap-3.6 branch into the &amp;quot;linux&amp;quot; directory. There are plenty of guides online to using git but a few timesaving methods are worth mentioning:&lt;br /&gt;
&lt;br /&gt;
=== Cloning a shallow tree ===&lt;br /&gt;
&lt;br /&gt;
You can clone just the tip of the relevant branch using a shallow clone. This has some restrictions but saves time and bandwidth:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;$ git clone --depth 1 --branch omap-3.6 https://github.com/gumstix/linux.git omap-3.6&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As of November 2013, this will pull 190MB from the server instead of over a gigabyte.&lt;br /&gt;
&lt;br /&gt;
You can also pull a zip file of this branch, either using the [https://github.com/gumstix/linux website] or by finding the appropriate link (use the website!) and using curl or wget.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;$ wget https://github.com/gumstix/linux/archive/omap-3.6.zip&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(this will do a 301 redirect so be aware of this - you might get a very small file with html in it!)&lt;br /&gt;
&lt;br /&gt;
For the 3.6 branch, this will pull approximately 123MB from the github server.&lt;br /&gt;
&lt;br /&gt;
== Subtleties ===&lt;br /&gt;
&lt;br /&gt;
There is absolutely no difference in result aside from the presence of the &amp;quot;.git&amp;quot; directory, but this has a few subtle consequences. If you build with the zip file, you will get kernel and module versions stamped &amp;quot;3.6.0&amp;quot;. If you build from the git repository, the make process:&lt;br /&gt;
&lt;br /&gt;
* detects the git repository presence&lt;br /&gt;
* see that the checkout is not stamped with a tag (eg: &amp;quot;3.6.0&amp;quot;).&lt;br /&gt;
* adds a + to all versions to show that the repository is not officially 3.6.0.&lt;br /&gt;
&lt;br /&gt;
Thus you will get kernel and module version stamped with &amp;quot;3.6.0+&amp;quot;. If you try and load a 3.6.0+ module into a 3.6.0 kernel, it will fail with an &amp;quot;invalid module format&amp;quot; error. You can force it with &amp;quot;modprobe -f&amp;quot; but that isn't really a recommended action generally. The normal procedure is to install the kernel and modules together (see the [http://gumstix.org/basic-cross-compilation.html website] for details.&lt;br /&gt;
&lt;br /&gt;
You can override the version modification by setting LOCALVERSION (to anything) before running make.&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Kernel_Build&amp;diff=6015</id>
		<title>Kernel Build</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Kernel_Build&amp;diff=6015"/>
				<updated>2013-11-19T11:14:39Z</updated>
		
		<summary type="html">&lt;p&gt;Conor O'Rourke: Main website is up to date so just add hints and tips to this entry&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This wiki entry adds a few details on building the Gumstix Linux kernel from source.&lt;br /&gt;
&lt;br /&gt;
Start by installing the [http://wiki.gumstix.org/index.php?title=Toolchain toolchain].&lt;br /&gt;
&lt;br /&gt;
You will also need the U-boot 'mkimage' utility.  Debian and Ubuntu users can install it from their respective repositories.  It's also compiled when U-boot is built if you can't get it otherwise.  On top of that you will need 'git' and 'make'.&lt;br /&gt;
 $ sudo apt-get install uboot-mkimage git make&lt;br /&gt;
&lt;br /&gt;
The official kernel build [http://gumstix.org/basic-cross-compilation.html instructions] are the best source to describe building a kernel and are up to date. The gumstix kernels are stored on [https://github.com/gumstix/linux github] and are in different branches for differing platforms. There is a table of branches against platforms on the [http://gumstix.org/access-source-code.html gumstix.org website].&lt;br /&gt;
&lt;br /&gt;
The most usual way to pull the source code is using git:&lt;br /&gt;
&lt;br /&gt;
 $ git clone --branch omap-3.6 git://github.com/gumstix/linux.git Linux&lt;br /&gt;
&lt;br /&gt;
will clone the entire source tree to your machine and checkout the omap-3.6 branch into the &amp;quot;linux&amp;quot; directory. There are plenty of guides online to using git but a few timesaving methods are worth mentioning:&lt;br /&gt;
&lt;br /&gt;
=== Cloning a shallow tree ===&lt;br /&gt;
&lt;br /&gt;
You can clone just the tip of the relevant branch using a shallow clone. This has some restrictions but saves time and bandwidth:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;$ git clone --depth 1 --branch omap-3.6 https://github.com/gumstix/linux.git omap-3.6&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As of November 2013, this will pull 190MB from the server instead of over a gigabyte.&lt;br /&gt;
&lt;br /&gt;
You can also pull a zip file of this branch, either using the [https://github.com/gumstix/linux website] or by finding the appropriate link (use the website!) and using curl or wget.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;$ wget https://github.com/gumstix/linux/archive/omap-3.6.zip&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(this will do a 301 redirect so be aware of this - you might get a very small file with html in it!)&lt;br /&gt;
&lt;br /&gt;
For the 3.6 branch, this will and pull approximately 123MB from the github server.&lt;br /&gt;
&lt;br /&gt;
There is absolutely no difference in result aside from the presence of the &amp;quot;.git&amp;quot; directory, but this has a few subtle consequences. If you build with the zip file, you will get kernel and module versions stamped &amp;quot;3.6.0&amp;quot;. If you build from the git repository, the make process:&lt;br /&gt;
&lt;br /&gt;
* detects the git repository presence&lt;br /&gt;
* see that the checkout is not stamped with a tag (eg: &amp;quot;3.6.0&amp;quot;).&lt;br /&gt;
* adds a + to all versions to show that the repository is not officially 3.6.0.&lt;br /&gt;
&lt;br /&gt;
Thus you will get kernel and module version stamped with &amp;quot;3.6.0+&amp;quot;. If you try and load a 3.6.0+ module into a 3.6.0 kernel, it will fail with an &amp;quot;invalid module format&amp;quot; error. You can force it with &amp;quot;modprobe -f&amp;quot; but that isn't really a recommended action generally. The normal procedure is to install the kernel and modules together (see the [http://gumstix.org/basic-cross-compilation.html website] for details.&lt;br /&gt;
&lt;br /&gt;
You can override the version modification by setting LOCALVERSION (to anything) before running make.&lt;/div&gt;</summary>
		<author><name>Conor O'Rourke</name></author>	</entry>

	</feed>