The
gpioctl program allows manipulation of GPIO (General Purpose Input/Output) device pins. Such devices can be either part of the chipset or embedded CPU, or a separate chip. The usual way of using GPIO is to connect some simple devices such as LEDs and 1-wire thermal sensors to its pins.
Each GPIO device has an associated device file in the
/dev directory.
device can be specified with or without the
/dev prefix. For example,
/dev/gpio0 or
gpio0.
GPIO pins can be either “read” or “written” with the values of logical 0 or 1. If only a
pin number is specified on the command line, the pin state will be read from the GPIO controller and displayed. To write to a pin, a value must be specified after the
pin number. Values can be either 0 or 1. A value of 2 has a special meaning: it “toggles” the pin, i.e. changes its state to the opposite. Instead of the numerical values, the word
on,
off, or
toggle can be used.
Only pins that have been configured at securelevel 0, typically during system startup, are accessible once the securelevel has been raised. Pins can be given symbolic names for easier use. Besides using individual pins, device drivers that use GPIO pins can be attached to a
gpio(4) device using the
gpioctl command.
The following configuration
flags are supported by the GPIO framework:
tri
tri-state (output disabled)
pu
internal pull-up enabled
pd
internal pull-down enabled
pulsate
pulsate output at a hardware-defined frequency and duty cycle
Note that not all the flags may be supported by the particular GPIO controller.
When executed with only the
gpio(4) device name as argument,
gpioctl reads information about the GPIO device and displays it. At securelevel 0 the number of physically available pins is displayed, at higher securelevels the number of configured (set) pins is displayed.
The options are as follows:
-q
Operate quietly i.e. nothing is printed to stdout.