January 9, 2008 GPIOCTL 8

### NAME

gpioctl - control GPIO devices

### SYNOPSIS

gpioctl [-hq] [-d device] [pin] [0 | 1 | 2] gpioctl [-hq] [-d device] -c pin [flags]

### DESCRIPTION

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, 1-wire thermal sensors, etc., to its pins.

Each GPIO device has an associated device file in the ```/dev` directory. By default gpioctl uses ```/dev/gpio0`, which corresponds to the first found GPIO device in the system. If more than one GPIO device is present, an alternative device file can be specified with the -d option in order to access a particular GPIO device.

When executed without any arguments, gpioctl reads information about the GPIO device and displays it.

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.

Each pin can be configured with different flags with the -c option. The following configuration flags are supported by the GPIO framework:

in
  input direction
out
  output direction
inout
  bi-directional
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

Note that not all the flags can be supported by the particular GPIO controller. The list of supported flags is always displayed when executing gpioctl with the -c option. If only a pin number is specified on the command line, the current pin flags will be displayed. To change pin flags, a new flags set separated by spaces must be specified after the pin number.

The -q option causes gpioctl to operate quietly i.e. nothing is printed to stdout. The -h option displays a usage summary.

### FILES

/dev/gpiou
  GPIO device unit u file.

### EXAMPLES

Configure pin 20 to have push-pull output:

```#``gpioctl``-c` `20` `out` `pp`

Write logical 1 to pin 20:

```#``gpioctl` `20` `1`

### SEE ALSO

elansc(4), gcscpcib(4), gpio(4), gscpcib(4), nsclpcsio(4)

### HISTORY

The gpioctl command first appeared in OpenBSD3.6 and NetBSD4.0.

### AUTHORS

The gpioctl program was written by Alexander Yurchenko <grange@openbsd.org>
.