HummingBoard GPIO

GPIO Header Pinout

GPIO Layout

Pin Signal Pin Signal
1 3.3V 2 5V
3 I2C_SDA 4 5V
5 I2C_SCL 6 GND
7 GPIO 1 8 UART TX
9 GND 10 UART RX
11 GPIO 73 12 GPIO 72
13 GPIO 71 14 GND
15 GPIO 10 16 GPIO 194*
17 3.3V 18 GPIO 195*
19 SPI_MOSI 20 GND
21 SPI_MISO 22 GPIO 67
23 SPI_SCLK 24 ECSPI2_SS0
25 GND 26 ECSPI2_SS1

Pins 16 and 18 are actually SD3_CMD and SD3_CLK signals that can be muxed to support flex can TX/RX interface (i.e. those can be connected to an external CAN)

Note: SPI and I2C can also be muxed to be GPIO

Accessing GPIO from Linux userspace

The external GPIOs are available under the /sys/class/gpio folder in Linux.

Get the current list of reserved GPIO

mount -t debugfs none /sys/kernel/debug
cat /sys/kernel/debug/gpio

Reserve/free a GPIO pin

echo XX > /sys/class/gpio/export
echo XX > /sys/class/gpio/unexport

Set GPIO pin Direction

echo in > /sys/class/gpio/gpioXX/direction
echo out > /sys/class/gpio/gpioXX/direction

Set the value of an output pin

echo 1 > /sys/class/gpio/gpioXX/value
echo 0 >/sys/class/gpio/gpioXX/value

Get the value of an input pin

> cat > /sys/class/gpio/gpioXX/value