|Linux & Unix Commands - Search Man Pages
GPIOCTL(8) BSD System Manager's Manual GPIOCTL(8)
gpioctl -- control GPIO devices
gpioctl [-q] device attach device offset mask [flag]
gpioctl [-q] device pin [0 | 1 | 2]
gpioctl [-q] device pin [on | off | toggle]
gpioctl [-q] device pin set [flags] [name]
gpioctl [-q] device pin unset
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 speci-
fied 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 con-
troller 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 ``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 eas-
ier use. Besides using individual pins, device drivers that use GPIO pins can be attached
to a gpio(4) device using the gpioctl command. Such drivers can be detached at runtime
using the drvctl(8) command.
The following configuration flags are supported by the GPIO framework:
in input direction
out output direction
od open-drain output
pp push-pull output
tri tri-state (output disabled)
pu internal pull-up enabled
pd internal pull-down enabled
iin invert input
iout invert output
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.
/dev/gpiou GPIO device unit u file.
Configure pin 20 to have push-pull output:
# gpioctl gpio0 20 set out pp
Write logical 1 to pin 20:
# gpioctl gpio0 20 1
Attach a onewire(4) bus on a gpioow(4) device on pin 4:
# gpioctl gpio0 attach gpioow 4 0x01
Detach the gpioow0 device:
# drvctl -d gpioow0
Configure pin 5 as output and name it error_led:
# gpioctl gpio0 5 set out error_led
Toggle the error_led:
# gpioctl gpio0 error_led 2
The gpioctl command first appeared in OpenBSD 3.6 and NetBSD 4.0.
The gpioctl program was written by Alexander Yurchenko <firstname.lastname@example.org>. Device attach-
ment was added by Marc Balmer <email@example.com>.
BSD November 13, 2011 BSD
All times are GMT -4. The time now is 02:00 AM.