General-purpose input/output

GPIOGPIGPIOsbi-directional portsgeneral purpose I/Ogeneral-purpose I/OI/O pinsPALsingle-cycle GPIOProgrammable universal input-output (GPIO)
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 an input or output—is controllable by the user at run time.wikipedia
66 Related Articles

I²C

I 2 CI2Ctwo-
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.

Charlieplexing

Charlieplexing is a technique for driving a multiplexed display in which relatively few I/O pins on a microcontroller are used e.g. to drive an array of LEDs.

SystemVerilog

Constrained random generation in SystemVerilog
A signal with more than one driver (such as a tri-state buffer for general-purpose input/output) needs to be declared a net type such as "wire" so SystemVerilog can resolve the final value.

STM32

STM32 WSTMicroelectronics STM32 microcontrollerSTM32F1xx, STM32F2xx, STM32F3xx, STM32F4xx, STM32L1xx, STM32F0xx
Common peripherals included in all IC packages are USB 2.0 OTG HS and FS, two CAN 2.0B, one SPI + two SPI or full-duplex I²S, three I²C, four USART, two UART, SDIO for SD/MMC cards, twelve 16-bit timers, two 32-bit timers, two watchdog timers, temperature sensor, 16 or 24 channels into three ADCs, two DACs, 51 to 140 GPIOs, sixteen DMA, improved real-time clock (RTC), cyclic redundancy check (CRC) engine, random number generator (RNG) engine. Larger IC packages add 8/16-bit external memory bus capabilities.

ODROID

ODROID-XUHardkernel ODROID-XU3 & ODROID-XU4Odroid U3
Lower level output is provided by a number of general-purpose input/output (GPIO) pins which support common protocols like I²C.

ESP8266

ESP8266 and NodeMCUESP8266ex
16 GPIO pins

Shift register

shift registersCirculating Memory
SIPO registers are commonly attached to the output of microprocessors when more General Purpose Input/Output pins are required than are available.

AVR microcontrollers

AVRATmega32U4AVR architecture
The JTAG signals (TMS, TDI, TDO, and TCK) are multiplexed on GPIOs. These pins can be configured to function as JTAG or GPIO depending on the setting of a fuse bit, which can be programmed via ISP or HVSP. By default, AVRs with JTAG come with the JTAG interface enabled.

TI-RTOS

TI-RTOS Kernel
TI-RTOS Drivers and Board Initialization: Target-specific device drivers. Drivers include Ethernet, GPIO, I²C, I²S, PWM, SPI, UART, USB, Watchdog timer, and Wi-Fi.

Apache Mynewt

Mynewt
Hardware abstraction layer with support for CPU time, analog-to-digital converter (ADC), digital-to-analog converter (DAC), general-purpose input/output (GPIO), Inter-Integrated Circuit (I²C), pulse-width modulation (PWM), serial port, Serial Peripheral Interface Bus (SPI), universal asynchronous receiver/transmitter (UART).

Video Toaster

Video Toaster FlyerVideo Toaster 4000
A user still needs at least three VTRs and a controller to perform A/B roll linear video editing (LE), as the Toaster serves merely as a switcher (which can be triggered through general-purpose input/output (GPIO) to switch on cue in such a configuration), as the Toaster itself has no edit-controlling capabilities.

Yamaha YM2203

YM2203Yamaha YM2203CFM (YM2203)
The SSG module implemented the YM2149F's three SSG channels and dual GPIO ports

ChibiOS/RT

[3
Hardware Abstraction Layer with support for ADC, CAN, GPT (general-purpose timer), EXT, I²C, ICU, MAC, MMC/SD, PAL, PWM, RTC, SDC, Serial, SPI, and USB drivers.

Embedded system

embedded systemsembeddedembedded device
Discrete IO: aka General Purpose Input/Output (GPIO)

Intel Quark

Quark SE
The system includes several interfaces, including PCI Express, serial UART, I²C, Fast Ethernet, USB 2.0, SDIO, power management controller, and GPIO.