List, read from, write to, and configure GPIOs.
gpioutil <command> [<name>] [<value>]
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
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
gpioutil in <name>
Configure a GPIO as IN.
<name> should be one of the values returned from list.
This command doesn't return a value.
Aliases: i
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
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
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
gpioutil function <name> <value>
Set the function for a pin.
<name> should be one of the values returned from list.
<value> is an function number that is specific to the GPIO controller being used.
Aliases: f
gpioutil pull <name> <value>
Configure the pull-up or pull-down resistor for a pin.
<name> should be one of the values returned from list.
<value> is the resistor pull. Accepted values are down, up, or none.
Aliases: p
gpioutil help
Print help text.
Aliases: h
$ gpioutil list [gpio-0] GPIO_HW_ID_3 [gpio-1] GPIO_SOC_TH_BOOT_MODE_L ...
$ gpioutil read GPIO_HW_ID_3 GPIO Value: 1
$ gpioutil write GPIO_HW_ID_3 0
$ gpioutil in GPIO_HW_ID_3 down
$ gpioutil out GPIO_HW_ID_3 1
$ gpioutil drive GPIO_HW_ID_3 Drive Strength: 500 ua
$ gpioutil drive GPIO_HW_ID_3 500 Set drive strength to 500
$ gpioutil interrupt GPIO_HW_ID_3 edge-low Received interrupt at time 12345
$ gpioutil function GPIO_HW_ID_3 6
<<./_access.md>>
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 for gpioutil: //src/devices/gpio/bin/gpioutil/