The Linux Kernel

6.3.0-rc3

Quick search

Contents

  • A guide to the Kernel Development Process
  • Submitting patches: the essential guide to getting your code into the kernel
  • Code of conduct
  • Kernel Maintainer Handbook
  • All development-process docs
  • Core API Documentation
  • Driver implementer’s API guide
  • Kernel subsystem documentation
    • Driver implementer’s API guide
    • Core API Documentation
    • locking
    • Accounting
    • Block
    • cdrom
    • CPUFreq - CPU frequency and voltage scaling code in the Linux(TM) kernel
    • Frame Buffer
    • fpga
    • Human Interface Devices (HID)
    • I2C/SMBus Subsystem
      • Introduction
      • Writing device drivers
      • Debugging
      • Slave I2C
      • Advanced topics
      • Legacy documentation
    • Industrial I/O
    • ISDN
    • InfiniBand
    • LEDs
    • NetLabel
    • Networking
    • pcmcia
    • Power Management
    • TCM Virtual Device
    • timers
    • Serial Peripheral Interface (SPI)
    • 1-Wire Subsystem
    • Watchdog Support
    • Virtualization Support
    • Input Documentation
    • Hardware Monitoring
    • GPU Driver Developer’s Guide
    • Compute Accelerators
    • Security Documentation
    • Sound Subsystem Documentation
    • Crypto API
    • Filesystems in the Linux kernel
    • Memory Management Documentation
    • BPF Documentation
    • USB support
    • PCI Bus Subsystem
    • SCSI Subsystem
    • Assorted Miscellaneous Devices Documentation
    • Scheduler
    • MHI
    • PECI Subsystem
  • Locking in the kernel
  • Linux kernel licensing rules
  • How to write kernel documentation
  • Development tools for the kernel
  • Kernel Testing Guide
  • Kernel Hacking Guides
  • Linux Tracing Technologies
  • fault-injection
  • Kernel Livepatching
  • Rust
  • The Linux kernel user’s and administrator’s guide
  • The kernel build system
  • Reporting issues
  • User-space tools
  • The Linux kernel user-space API guide
  • The Linux kernel firmware guide
  • Open Firmware and Devicetree
  • CPU Architectures
  • Unsorted Documentation
  • Translations

This Page

  • Show Source

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

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
©The kernel development community. | Powered by Sphinx 5.0.1 & Alabaster 0.7.12 | Page source