gpioutil

List, read from, write to, and configure GPIOs.

Usage

gpioutil <command> [<name>] [<value>]

Commands

list

gpioutil list

List the known GPIOs.

list returns values like this:

[gpio-0] GPIO_HW_ID_3

The value inside the brackets (gpio-0) is a reference to the pin index. The value after the brackets (GPIO_HW_ID_3) is the <name> value to provide to other gpioutil commands. See GPIO names for more details.

Aliases: l

read

gpioutil read <name>

Read the current value of a GPIO that's configured as OUT.

<name> should be one of the values returned from list.

Possible return values are 0 (LOW) or 1 (HIGH).

Aliases: r

write

gpioutil write <name> <value>

Write a value to a GPIO that's configured as IN.

<name> should be one of the values returned from list.

<value> should be 0 (LOW) or 1 (HIGH).

This command doesn't return a value.

Aliases: w

in

gpioutil in <name> <value>

Configure a GPIO as IN.

<name> should be one of the values returned from list.

<value> is the resistor pull. Accepted values are down, up, or none.

This command doesn't return a value.

Aliases: i

out

gpioutil out <name> <value>

Configure a GPIO as OUT.

<name> should be one of the values returned from list.

<value> is the initial OUT value. Accepted values are 0 (LOW) or 1 (HIGH).

This command doesn't return a value.

Aliases: o

drive

gpioutil drive <name> [<value>]

Get or set the drive strength of a GPIO in microamps.

<name> should be one of the values returned from list.

When <value> is omitted, drive returns the current drive strength of the GPIO in microamps.

When <value> is provided, drive updates the drive strength of the GPIO. <value> should be in microamps.

Aliases: d

interrupt

gpioutil interrupt <name> [<value>]

Get the GPIO interrupt and wait for it to be triggered once.

<name> should be one of the values returned from list.

<value> is the interrupt mode to use. Accepted values are default, edge-high, edge-low, edge-both, level-low, or level-high.

Aliases: q

help

gpioutil help

Print help text.

Aliases: h

Examples

List all known GPIOs

$ gpioutil list
[gpio-0] GPIO_HW_ID_3
[gpio-1] GPIO_SOC_TH_BOOT_MODE_L
...

Read the current value of a GPIO

$ gpioutil read GPIO_HW_ID_3
GPIO Value: 1

Write a LOW value to a GPIO

$ gpioutil write GPIO_HW_ID_3 0

Configure a GPIO as IN with a pull-down resistor

$ gpioutil in GPIO_HW_ID_3 down

Configure a GPIO as OUT with an initial value of HIGH

$ gpioutil out GPIO_HW_ID_3 1

Get the current drive strength of a GPIO in microamps

$ gpioutil drive GPIO_HW_ID_3
Drive Strength: 500 ua

Set the drive strength of a GPIO to 500 microamps

$ gpioutil drive GPIO_HW_ID_3 500
Set drive strength to 500

Wait for a falling edge on a GPIO

$ gpioutil interrupt GPIO_HW_ID_3 edge-low
Received interrupt at time 12345

Notes

<<./_access.md>>

GPIO names

GPIO names are defined in the driver source code and usually match the datasheet's name for the GPIO. See the DECL_GPIO_PIN statements in vim3-gpio.cc for an example.

Source code

Source code for gpioutil: //src/devices/gpio/bin/gpioutil/