Linux I2C, SPI and GPIO
Official docs outline
8 sections- I2C subsystem
I2C adapters, clients and SMBus.
- I2C dev interface
User-space access to I2C buses through /dev/i2c-N ioctls and SMBus transfers.
- SPI subsystem
SPI controllers, devices and spidev.
- SPI userspace API
Using spidev with SPI_IOC_MESSAGE, clock mode and bits per word from user space.
- GPIO descriptor consumer
GPIO descriptors and character device API.
- GPIO uAPI
Character device ABI used by libgpiod.
- PWM
PWM framework for requesting channels, setting period and duty cycle, and sysfs control.
- IIO
Industrial IO sensors and buffers.
Each section links to the official page. Titles and summaries by Extra Credit; the docs belong to their authors.