Rock4/hardware/gpio
< Rock4 | hardware(Redirected from Rockpi4/hardware/gpio)
ROCK 4 > Hardware > GPIO
GPIO
wiringX GPIO mapping
general purpose input-output (GPIO) connector
ROCK 4 series has a 40-pin expansion header. Each pin is distinguished by color. For ROCK 4C+, the following pin-out is applicable for version 1.2 and later.
GPIO number | Function2 | Function1 | GPIO | Pin# | Pin# | GPIO | Function1 | Function2 | GPIO number | |
---|---|---|---|---|---|---|---|---|---|---|
+3.3V | 1 | 2 | +5.0V | |||||||
71 | I2C7_SDA | GPIO2_A7 | 3 | 4 | +5.0V | |||||
72 | I2C7_SCL | GPIO2_B0 | 5 | 6 | GND | |||||
75 | SPI2_CLK | GPIO2_B3 | 7 | 8 | GPIO4_C4 | UART2_TXD | 148 | |||
GND | 9 | 10 | GPIO4_C3 | UART2_RXD | 147 | |||||
146 | PWM0 | GPIO4_C2 | 11 | 12 | GPIO4_A3 | I2S1_SCLK | 131 | |||
150 | PWM1 | GPIO4_C6 | 13 | 14 | GND | |||||
149 | SPDIF_TX | GPIO4_C5 | 15 | 16 | GPIO4_D2 | 154 | ||||
+3.3V | 17 | 18 | GPIO4_D4 | 156 | ||||||
40 | UART4_TXD | SPI1_TXD | GPIO1_B0 | 19 | 20 | GND | ||||
39 | UART4_RXD | SPI1_RXD | GPIO1_A7 | 21 | 22 | GPIO4_D5 | 157 | |||
41 | SPI1_CLK | GPIO1_B1 | 23 | 24 | GPIO1_B2 | SPI1_CSn | 42 | |||
GND | 25 | 26 | ADC_IN0 | |||||||
64 | I2C2_SDA | GPIO2_A0 | 27 | 28 | GPIO2_A1 | I2C2_CLK | 65 | |||
74 | I2C6_SCL | SPI2_TXD | GPIO2_B2 | 29 | 30 | GND | ||||
73 | I2C6_SDA | SPI2_RXD | GPIO2_B1 | 31 | 32 | GPIO3_C0 | SPDIF_TX | UART3_CTSn | 112 | |
76 | SPI2_CSn | GPIO2_B4 | 33 | 34 | GND | |||||
133 | I2S1_LRCK_TX | GPIO4_A5 | 35 | 36 | GPIO4_A4 | I2S1_LRCK_RX | 132 | |||
158 | GPIO4_D6 | 37 | 38 | GPIO4_A6 | I2S1_SDI | 134 | ||||
GND | 39 | 40 | GPIO4_A7 | I2S1_SDO | 135 |
ROCK 4C+ v1.0/1.1 general purpose input-output (GPIO) connector
ROCK 4C+ v1.0/1.1 are pre-production version. Mass production began from v1.2. The following pinout is only for early adapters.
GPIO number | Function2 | Function1 | GPIO | Pin# | Pin# | GPIO | Function1 | Function2 | GPIO number | |
---|---|---|---|---|---|---|---|---|---|---|
+3.3V | 1 | 2 | +5.0V | |||||||
71 | I2C7_SDA | GPIO2_A7 | 3 | 4 | +5.0V | |||||
72 | I2C7_SCL | GPIO2_B0 | 5 | 6 | GND | |||||
75 | SPI2_CLK | GPIO2_B3 | 7 | 8 | GPIO4_C4 | UART2_TXD | 148 | |||
GND | 9 | 10 | GPIO4_C3 | UART2_RXD | 147 | |||||
146 | PWM0 | GPIO4_C2 | 11 | 12 | GPIO2_D3 | 91 | ||||
33 | GPIO1_A1 | 13 | 14 | GND | ||||||
149 | SPDIF_TX | GPIO4_C5 | 15 | 16 | GPIO4_D2 | 154 | ||||
+3.3V | 17 | 18 | GPIO4_D4 | 156 | ||||||
40 | UART4_TXD | SPI1_TXD | GPIO1_B0 | 19 | 20 | GND | ||||
39 | UART4_RXD | SPI1_RXD | GPIO1_A7 | 21 | 22 | GPIO4_D5 | 157 | |||
41 | SPI1_CLK | GPIO1_B1 | 23 | 24 | GPIO1_B2 | SPI1_CSn | 42 | |||
GND | 25 | 26 | ADC_IN0 | |||||||
64 | I2C2_SDA | GPIO2_A0 | 27 | 28 | GPIO2_A1 | I2C2_CLK | 65 | |||
74 | I2C6_SCL | SPI2_TXD | GPIO2_B2 | 29 | 30 | GND | ||||
73 | I2C6_SDA | SPI2_RXD | GPIO2_B1 | 31 | 32 | GPIO3_C0 | SPDIF_TX | UART3_CTSn | 112 | |
76 | SPI2_CSn | GPIO2_B4 | 33 | 34 | GND | |||||
133 | I2S1_LRCK_TX | GPIO4_A5 | 35 | 36 | GPIO2_D4 | 92 | ||||
158 | GPIO4_D6 | 37 | 38 | GPIO1_A4 | 36 | |||||
GND | 39 | 40 | GPIO1_C4 | 52 |
Notes about 40-pin Header
- Function marked with color orange is the default function of this pin.
- Except Pins for power supply, all pins are routed directly to SoC RK3399.
- For pin 3, 5, 27, 28, 29 and 31, each pin is connected to the 3.0V supply through a 4.7K pull-up resistor.
- Pin 7 is routed directly to the pin of MIPI CSI on board.
- SPI
- Pin 19, 21, 23, 24 also route to the pins of SPI flash on board. If the ROCK 4 model has SPI flash soldered on board, the SPI function is not available on GPIO header.
- UART
- UART2 is enabled as U-boot and Linux serial console by default. Check Rockpi4/dev/serial-console to use. Check Rockpi4/hardware/devtree_overlays to disable serial console on UART2.
- UART2 & UART4 support a wide range of baud rate. It includes but not is not limited to the following baud rates. For instance, 115200bps. 500000bps, 1500000bps and so on.
- For v1.4 and later hardware, on board SPI flash is soldered, UART4 PINs are used as SPI function.
- For I2C-2 and I2C-7
- We have do the test using the i2c device e2prom. We need to open the i2c device file, and then do the read or write operation.
IO Voltage
RK3399 have three IO voltages, 1.8V/3.0V/3.3V. For ROCK Pi 4, below is the default voltage:
| GPIO | Voltage Level | Tolerance | | ---------- | ------------- | --------- | | GPIO3_C0 | 3.3V | 3.465V | | ADC_IN0 | 1.8V | 1.98V | | Other GPIO | 3.0V | 3.14V |
GPIO number
Rockchip RK3399 GPIO has 5 banks, GPIO0 to GPIO4, each bank has 32pins, naming as below:
GPIO0_A0 ~ A7 GPIO0_B0 ~ B7 GPIO0_C0 ~ C7 GPIO0_D0 ~ D7 GPIO1_A0 ~ A7 .... GPIO1_D0 ~ D7
For Rockchip 4.4 kernel, the GPIO number can be calculated as below, take GPIO4_D5 (PIN22 on 40PIN GPIO) as an example:
GPIO4_D5 = 4*32 + 3*8 + 5 = 157 (A=0, B=1, C=2, D=3)
To set GPIO4_D5 output
cd /sys/class/gpio echo 157 > export cd gpio157 echo out > direction echo 1 > value # output high echo 0 > value # output low