Almost all function pins of a SOC are GPIO ( General Purpose Input Output).
They can be configured to serve as a simple input, output or with a special function (i.e. I2C or UART).
Most pins can be configured with additional settings like drive-strength, pull-up or -down, keeper, etc.
Using a GPIO from Command Line
As already mentioned a pin can be configured to serve as GPIO or as a special function.
The following commands only work as expected, when the pin is configured as GPIO!
Path in Sysfs:
/sys/class/gpioThe first
First thing to do, is to export control of a GPIO to userspace by writing its number to 'export':
$ echo 68 > /sys/class/gpio/export
This will create an entry for gpio3.IO[4] = ((bank-1)*32)+pin = ((3-1)*32)+4 = 68 at:
/sys/class/gpio/gpio68
To reverse the effect of exporting GPIO 68 to userspace call:
$ echo 68 > /sys/class/gpio/unexport
Configure GPIO as Input
$ echo in > /sys/class/gpio/gpio68/direction
Read GPIO level
$ cat /sys/class/gpio/gpio68/value
Configure GPIO as Output
$ echo out > /sys/class/gpio/gpio68/direction
Instead of using 'out', you can use 'low' and 'high' to ensure glitch free initialization:
$ echo high > /sys/class/gpio/gpio68/direction
$ echo low > /sys/class/gpio/gpio68/direction
Write GPIO level
Set pin low:
$ echo 0 > /sys/class/gpio/gpio68/value
Set pin high:
$ echo 1 > /sys/class/gpio/gpio68/value
Trizeps VII & Trizeps VIII GPIOs
SODIMM | Name | ||
---|---|---|---|
1 | MIC_OUT | ||
2 | AD3 | ||
3 | MIC_GND | ||
4 | AD2 | ||
5 | LINEIN_L | ||
6 | AD1 | ||
7 | LINEIN_R | ||
8 | AD0 | ||
9 | AGND | ||
10 | VDDA | ||
11 | AGND | ||
12 | VDDA | ||
13 | HEADPHONE_GND | ||
14 | TSPX | ||
15 | HEADPHONE_L | ||
16 | TSMX | ||
17 | HEADPHONE_R | ||
18 | TSPY | ||
19 | UART3_RXD | gpio4.IO[7] | gpio5.IO[6] |
20 | TSMY | ||
21 | UART3_TXD | gpio4.IO[6] | gpio5.IO[7] |
22 | VDD_OTP | gpio5.IO[8] | |
23 | UART1_DTR | gpio7.IO[7] | gpio3.IO[19] |
24 | BATT | gpio5.IO[9] | |
25 | UART1_CTS | gpio7.IO[3] | gpio5.IO[27] |
26 | RESET_IN | gpio2.IO[7] | |
27 | UART1_RTS | gpio7.IO[2] | gpio5.IO[26] |
28 | SPEAKER_P | ||
29 | UART1_DSR | gpio6.IO[14] | gpio3.IO[20] |
30 | SPEAKER_L | ||
31 | UART1_DCD | gpio6.IO[15] | gpio4.IO[21] |
32 | UART2_CTS | gpio7.IO[5] | gpio5.IO[29] |
33 | UART1_RXD | gpio7.IO[1] | gpio5.IO[22] |
34 | UART2_RTS | gpio7.IO[4] | gpio5.IO[28] |
35 | UART1_TXD | gpio7.IO[0] | gpio5.IO[23] |
36 | UART2_RXD | gpio6.IO[18] | gpio5.IO[24] |
37 | UART1_RI | gpio1.IO[5] | gpio4.IO[22] |
38 | UART2_TXD | gpio6.IO[17] | gpio5.IO[25] |
39 | GND | ||
40 | VCC | ||
41 | GND | ||
42 | VCC | ||
43 | IRQ_SP43 | gpio2.IO[6] | gpio1.IO[7] |
44 | LCD_DE | gpio4.IO[17] | |
45 | SP45 | gpio2.IO[3] | gpio3.IO[4] |
46 | LCD_D07 | gpio4.IO[28] | |
47 | SD2_CLK | gpio1.IO[10] | gpio2.IO[13] |
48 | LCD_D09 | gpio4.IO[30] | |
49 | CIF_DATA0 | gpio5.IO[30] | gpio4.IO[2] |
50 | LCD_D11 | gpio5.IO[5] | |
51 | SD2_DATA3 | gpio1.IO[12] | gpio2.IO[18] |
52 | LCD_D12 | gpio5.IO[6] | |
53 | CIF_DATA1 | gpio5.IO[31] | gpio4.IO[3] |
54 | LCD_D13 | gpio5.IO[7] | |
55 | SP55 | gpio2.IO[5] | gpio3.IO[21] |
56 | LCD_PCLK | gpio4.IO[16] | |
57 | CIF_DATA2 | gpio6.IO[0] | gpio4.IO[4] |
58 | LCD_D03 | gpio4.IO[24] | |
59 | SD2_CARD_DETECT | gpio1.IO[4] | gpio2.IO[12] |
60 | LCD_D02 | gpio4.IO[23] | |
61 | CIF_DATA3 | gpio6.IO[1] | gpio4.IO[5] |
62 | LCD_D08 | gpio4.IO[29] | |
63 | CIF_DATA4 | gpio6.IO[2] | gpio4.IO[6] |
64 | LCD_D15 | gpio5.IO[9] | |
65 | CIF_DATA5 | gpio6.IO[3] | gpio4.IO[7] |
66 | LCD_D14 | gpio5.IO[8] | |
67 | CIF_DATA6 | gpio6.IO[4] | gpio4.IO[8] |
68 | LCD_HSYNC | gpio4.IO[18] | |
69 | PWM1 | gpio6.IO[9] | gpio5.IO[2] |
70 | LCD_D01 | gpio4.IO[22] | |
71 | CIF_DATA7 | gpio6.IO[5] | gpio4.IO[9] |
72 | LCD_D05 | gpio4.IO[26] | |
73 | CIF_DATA8 / Backlight_Enable | gpio4.IO[20] | gpio3.IO[22] |
74 | LCD_D10 | gpio4.IO[31] | |
75 | CIF_DATA9 / SP75 | gpio5.IO[28] | gpio3.IO[23] |
76 | LCD_D00 | gpio4.IO[21] | |
77 | PWM2 | gpio1.IO[9] | gpio1.IO[1] |
78 | LCD_D04 | gpio4.IO[25] | |
79 | POWERFAIL | gpio2.IO[4] | gpio3.IO[24] |
80 | LCD_D06 | gpio4.IO[27] | |
81 | SD2_DATA1 | gpio1.IO[14] | gpio2.IO[16] |
82 | LCD_VSYNC | gpio4.IO[19] | |
83 | GND | ||
84 | VCC | ||
85 | SD2_DATA2 | gpio1.IO[13] | gpio2.IO[17] |
86 | CIF_VSYNC / SPI_SS0 | gpio5.IO[13] | |
87 | RESET_OUT | gpio7.IO[12] | |
88 | CIF_MCLK / SPI_SCLK | ||
89 | WE / SP89 | gpio2.IO[26] | |
90 | CIF_PCLK | ||
91 | OE / SP91 | gpio2.IO[25] | |
92 | CIF_HSYNC | ||
93 | RD/WR / SP95 | gpio5.IO[29] | gpio3.IO[18] |
94 | I2C1_SCL / SP94 | gpio5.IO[27] | gpio5.IO[14] |
95 | RDY | gpio5.IO[0] | gpio3.IO[16] |
96 | I2C1_SDA / SP96 | gpio5.IO[26] | gpio5.IO[15] |
97 | CAN1_RX | gpio1.IO[8] | |
98 | SP98 | gpio7.IO[6] | gpio1.IO[0] |
99 | CAN1_TX | gpio1.IO[7] | |
100 | LCD_PWR_EN | gpio5.IO[20] | gpio1.IO[5] |
101 | CAN2_RX | gpio4.IO[15] | gpio4.IO[31] |
102 | SP102 | gpio7.IO[8] | gpio1.IO[8] |
103 | CAN2_TX | gpio4.IO[14] | gpio5.IO[0] |
104 | SP104 | gpio2.IO[27] | gpio3.IO[11] |
105 | CS1 | gpio3.IO[0] | |
106 | CS4 | gpio3.IO[25] | |
107 | CS3 | gpio2.IO[23] | gpio3.IO[1] |
108 | VCC | ||
109 | GND | ||
110 | A08 | gpio3.IO[8] | gpio4.IO[12] |
111 | A00 | gpio3.IO[0] | gpio3.IO[6] |
112 | A09 | gpio3.IO[9] | gpio4.IO[13] |
113 | A01 | gpio3.IO[1] | gpio3.IO[7] |
114 | A10 | gpio3.IO[10] | gpio4.IO[14] |
115 | A02 | gpio3.IO[2] | gpio5.IO[20] |
116 | A11 | gpio3.IO[11] | gpio4.IO[15] |
117 | A03 | gpio3.IO[3] | gpio3.IO[8] |
118 | A12 | gpio3.IO[12] | gpio4.IO[16] |
119 | A04 | gpio3.IO[4] | gpio3.IO[9] |
120 | A13 | gpio3.IO[13] | gpio4.IO[17] |
121 | A05 | gpio3.IO[5] | gpio3.IO[10] |
122 | A14 | gpio3.IO[14] | gpio4.IO[18] |
123 | A06 | gpio3.IO[6] | gpio1.IO[3] |
124 | A15 | gpio3.IO[15] | gpio4.IO[19] |
125 | A07 | gpio3.IO[7] | gpio1.IO[6] |
126 | DQM0 | gpio2.IO[28] | gpio4.IO[10] |
127 | USB_OTG_PEN | gpio2.IO[0] | gpio1.IO[12] |
128 | DQM1 | gpio2.IO[29] | gpio4.IO[11] |
129 | USB_HOST_PEN | gpio2.IO[2] | gpio1.IO[14] |
130 | DQM2 | gpio2.IO[30] | |
131 | USB_HOST_OC | gpio1.IO[3] | gpio1.IO[15] |
132 | DQM3 | gpio2.IO[31] | gpio3.IO[12] |
133 | USB_OTG_OC | gpio6.IO[10] | gpio1.IO[13] |
134 | A25 | gpio5.IO[2] | gpio3.IO[3] |
135 | USB_OTG_VBUS | ||
136 | A24 | gpio5.IO[4] | gpio3.IO[15] |
137 | USB_OTG_ID | gpio1.IO[1] | |
138 | A23 | gpio6.IO[6] | |
139 | USB_OTG_DP | ||
140 | A22 | gpio2.IO[16] | |
141 | USB_OTG_DN | ||
142 | A21 | gpio2.IO[17] | |
143 | USB_HOST_DP | ||
144 | A20 | gpio2.IO[18] | |
145 | USB_HOST_DN | ||
146 | A19 / PCM_IN | gpio2.IO[19] | gpio5.IO[1] |
147 | GND | ||
148 | VCC | ||
149 | D00 / DDC_SDA | gpio3.IO[16] | |
150 | D16 / LCD_D16 | gpio5.IO[10] | |
151 | D01 | gpio3.IO[17] | |
152 | D17 / LCD_D17 | gpio5.IO[11] | |
153 | D02 | gpio3.IO[18] | |
154 | D18 / PCIE_WAKE | gpio6.IO[7] | gpio3.IO[13] |
155 | D03 | gpio3.IO[19] | |
156 | D19 / LDO | ||
157 | D04 | gpio3.IO[20] | |
158 | D20 / PCIE_CLKN | ||
159 | D05 / SPDIF_IN | gpio3.IO[21] | gpio5.IO[4] |
160 | D21 / PCIE_CLKP | ||
161 | D06 / SPDIF_OUT | gpio3.IO[22] | gpio5.IO[3] |
162 | D22 / PCIE_TXP | ||
163 | D07 / SPDIF_EXT_CLK | gpio3.IO[23] | gpio5.IO[5] |
164 | D23 / PCIE_TXN | ||
165 | D08 | gpio3.IO[24] | |
166 | D24 / PCIE_RXP | ||
167 | D09 | gpio3.IO[25] | |
168 | D25 / PCIE_RXN | ||
169 | D10 | gpio3.IO[26] | |
170 | LCD_D21 | gpio5.IO[15] | |
171 | D11 | gpio3.IO[27] | |
172 | LCD_D20 | gpio5.IO[14] | |
173 | D12 | gpio3.IO[28] | |
174 | LCD_D19 | gpio5.IO[13] | |
175 | D13 | gpio3.IO[29] | |
176 | LCD_D18 | gpio5.IO[12] | |
177 | D14 | gpio3.IO[30] | |
178 | LCD_D23 | gpio5.IO[17] | |
179 | D15 | gpio3.IO[31] | |
180 | LCD_D22 | gpio5.IO[16] | |
181 | GND | ||
182 | VCC | ||
183 | ETH_LINK_AKT | ||
184 | A18 / PCM_OUT | gpio2.IO[20] | gpio4.IO[30] |
185 | ETH_SPEED | ||
186 | A17 / PCM_CLK | gpio2.IO[21] | gpio4.IO[29] |
187 | ETH_TXN | ||
188 | A16 / PCM_SYNC | gpio2.IO[22] | gpio4.IO[28] |
189 | ETH_TXP | ||
190 | SD2_CMD | gpio1.IO[11] | gpio2.IO[14] |
191 | ETH_GND | ||
192 | SD2_DATA0 | gpio1.IO[15] | gpio2.IO[15] |
193 | ETH_RXN | ||
194 | I2C2_SDA | gpio4.IO[13] | gpio5.IO[17] |
195 | ETH_RXP | ||
196 | I2C2_SCL | gpio4.IO[12] | gpio5.IO[16] |
197 | GND | ||
198 | VCC | ||
199 | GND | ||
200 | VCC RTC |