The Linux Kernel
6.12.6-arch1-6.12.6-arch1-1
Quick search
Contents
Development process
Submitting patches
Code of conduct
Maintainer handbook
All development-process docs
Core API
Driver APIs
Subsystems
Core subsystems
Human interfaces
Networking interfaces
Storage interfaces
Other subsystems
Accounting
CPUFreq - CPU frequency and voltage scaling code in the Linux(TM) kernel
FPGA
I2C/SMBus Subsystem
Industrial I/O
PCMCIA
Serial Peripheral Interface (SPI)
1-Wire Subsystem
Watchdog Support
Virtualization Support
Hardware Monitoring
Compute Accelerators
Security Documentation
Crypto API
BPF Documentation
USB support
PCI Bus Subsystem
Assorted Miscellaneous Devices Documentation
PECI Subsystem
WMI Subsystem
TEE Subsystem
Locking
Licensing rules
Writing documentation
Development tools
Testing guide
Hacking guide
Tracing
Fault injection
Livepatching
Rust
Administration
Build system
Reporting issues
Userspace tools
Userspace API
Firmware
Firmware and Devicetree
CPU architectures
Unsorted documentation
Translations
This Page
Show Source
English
Italian
I2C/SMBus Subsystem
¶
Introduction
¶
Introduction to I2C and SMBus
The I2C Protocol
The SMBus Protocol
How to instantiate I2C devices
I2C Bus Drivers
I2C muxes and complex topologies
Kernel driver i2c-mux-gpio
Linux I2C Sysfs
I2C Address Translators
Writing device drivers
¶
Implementing I2C device drivers
Implementing I2C device drivers in userspace
Linux I2C and DMA
I2C/SMBUS Fault Codes
I2C/SMBus Functionality
Debugging
¶
Linux I2C fault injection
i2c-stub
Slave I2C
¶
Linux I2C slave interface description
Linux I2C slave EEPROM backend
Linux I2C slave testunit backend
Advanced topics
¶
I2C Ten-bit Addresses
Legacy documentation
¶
I2C device driver binding control from user-space in old kernels