General-purpose input/output

GPIOGPIGPIOsI/O pinsbi-directional portsdigital input/outputgeneral purpose I/OGeneral purpose I/O pinsgeneral-purpose I/OPAL
A general-purpose input/output (GPIO) is an uncommitted digital signal pin on an integrated circuit or electronic circuit board whose behavior—including whether it acts as input or output—is controllable by the user at run time.wikipedia
102 Related Articles

I²C

I 2 CI2CI 2 C bus
Examples of the former include the Intel 8255, which interfaces 24 GPIOs to a parallel bus, and various GPIO "expander" ICs, which interface GPIOs to serial buses such as I²C and SMBus. For example, two GPIOs may be used to implement a serial communication bus such as I²C, and four GPIOs can be used to implement an SPI bus; these are typically used to facilitate serial communication with ICs and other devices which have compatible serial interfaces, such as sensors (e.g., temperature sensors, pressure sensors, accelerometers) and motor controllers.
A particular strength of I²C is the capability of a microcontroller to control a network of device chips with just two general-purpose I/O pins and software.

Raspberry Pi

RaspbianRaspberry Pi 2Raspberry Pi 3
GPIOs are also found on embedded controller boards such as Arduino, BeagleBone and Raspberry Pi.
Lower-level output is provided by a number of GPIO pins, which support common protocols like I²C.

SGPIO

SGPIO
It is considered an extension of the general-purpose input/output (GPIO) concept.

Special input/output

Special input/output
Some kinds of special I/O functions can sometimes be emulated with general-purpose input/output and bit banging software.

Serial Peripheral Interface

SPImicrowireSPI bus
For example, two GPIOs may be used to implement a serial communication bus such as I²C, and four GPIOs can be used to implement an SPI bus; these are typically used to facilitate serial communication with ICs and other devices which have compatible serial interfaces, such as sensors (e.g., temperature sensors, pressure sensors, accelerometers) and motor controllers.
All communications that were out-of-band of the LPC bus like general-purpose input/output (GPIO) and System Management Bus (SMBus) are tunneled through the eSPI bus via virtual wire cycles and out-of-band message cycles respectively in order to remove those pins from motherboard designs using eSPI.

Integrated circuit

integrated circuitsmicrochipchip
A general-purpose input/output (GPIO) is an uncommitted digital signal pin on an integrated circuit or electronic circuit board whose behavior—including whether it acts as input or output—is controllable by the user at run time.

Run time (program lifecycle phase)

run timerun-timeruntime
A general-purpose input/output (GPIO) is an uncommitted digital signal pin on an integrated circuit or electronic circuit board whose behavior—including whether it acts as input or output—is controllable by the user at run time.

Intel 8255

82558255 PIO8255A
Examples of the former include the Intel 8255, which interfaces 24 GPIOs to a parallel bus, and various GPIO "expander" ICs, which interface GPIOs to serial buses such as I²C and SMBus.

System Management Bus

SMBusPacket Error CheckingSMB
Examples of the former include the Intel 8255, which interfaces 24 GPIOs to a parallel bus, and various GPIO "expander" ICs, which interface GPIOs to serial buses such as I²C and SMBus.

Realtek

8139tooRealsil Microelectronics IncRealtek Semiconductor
An example of the latter is the Realtek ALC260 IC, which provides eight GPIOs in addition to its primary function of audio codec.

Audio codec

audio codecsaudio codingcodec
An example of the latter is the Realtek ALC260 IC, which provides eight GPIOs in addition to its primary function of audio codec.

Microcontroller

microcontrollersMCUmicro-controller
Microcontroller ICs typically include GPIOs.

Field-programmable gate array

FPGAFPGAsfield programmable gate array
FPGAs extend this capability by allowing GPIO pin mapping, instantiation and architecture to be programmatically controlled.

Arduino

Arduino boardsArduino IDEArduino.cc
GPIOs are also found on embedded controller boards such as Arduino, BeagleBone and Raspberry Pi.

BeagleBoard

BeagleBeagleBoard-X15beaglebone
GPIOs are also found on embedded controller boards such as Arduino, BeagleBone and Raspberry Pi.

Schmitt trigger

schmitt-triggerSchmitt trigger inputSchmitt-triggering
For example, schmitt-trigger inputs, high-current output drivers, optical isolators, or combinations of these may be used to buffer and condition the GPIO signals and to protect board circuitry.

Optical isolator

isolatorisolationisolators
For example, schmitt-trigger inputs, high-current output drivers, optical isolators, or combinations of these may be used to buffer and condition the GPIO signals and to protect board circuitry.

Switch

switchestoggle switchelectrical switch
Also, higher-level functions are sometimes implemented, such as input debounce, input signal edge detection, and pulse-width modulation (PWM) output.

Signal edge

edgeedgesfalling edge
Also, higher-level functions are sometimes implemented, such as input debounce, input signal edge detection, and pulse-width modulation (PWM) output.

Pulse-width modulation

PWMpulse width modulationpulse-width modulated
Also, higher-level functions are sometimes implemented, such as input debounce, input signal edge detection, and pulse-width modulation (PWM) output.

Light-emitting diode

LEDLEDslight emitting diodes
Examples of this include enabling and disabling the operation of (or power to) other circuitry, reading the states of on-board switches and configuration shunts, and driving LED status indicators.

Bit banging

bit-bangingbit-bangedbit bang
Multiple GPIOs are sometimes used together as a bit-banged communication interface.

Accelerometer

accelerometersG-sensoracceleration sensor
For example, two GPIOs may be used to implement a serial communication bus such as I²C, and four GPIOs can be used to implement an SPI bus; these are typically used to facilitate serial communication with ICs and other devices which have compatible serial interfaces, such as sensors (e.g., temperature sensors, pressure sensors, accelerometers) and motor controllers.

Digital-to-analog converter

DACDACsdigital to analog converter
Some linear processes require a linear control voltage; in such cases it may be feasible to connect a GPIO -- which is operated as a PWM output -- to an RC filter to create a simple and inexpensive digital-to-analog converter.

Pull-up resistor

pull-down resistorpull-uppulled up
In others, each pin can be set up to accept or source different logic voltages, with configurable drive strengths and pull ups/downs.