linux-wire Roadmap

Note: Items listed here are potential future directions. No commitment is made regarding order, timing, or whether any specific item will be implemented.

Scope: linux-wire focuses on I²C master mode only. For I²C slave mode investigation, see slave-mode-investigation.md.


Performance & Reliability

Goal: Production-ready library with comprehensive testing and error handling

Resources:

Testing & Benchmarks

  • Transaction latency at 100kHz, 400kHz, 1MHz
  • ioctl (I2C_RDWR) vs read/write performance comparison
  • Stress testing: continuous transfers, EMI/noise injection
  • Multi-device bus contention scenarios

Error Handling

  • Automatic bus recovery (stuck SDA/SCL)
  • Clock stretching timeout handling
  • NAK/timeout retry strategies
  • Multi-master arbitration loss recovery

Documentation

  • Performance tuning guide with benchmarks
  • Error handling patterns and best practices
  • Platform-specific quirks (Raspberry Pi clock stretching)
  • Debugging techniques

Advanced Features

Resources:

Multi-Master Support

  • Arbitration loss handling
  • Clock stretching configuration (sysfs)
  • Bus recovery mechanisms (SCL toggling)
  • Raspberry Pi multi-master documentation

Extended Addressing & Protocols

  • 10-bit addressing: Examples and platform testing (already supported via I2C_TENBIT)
  • SMBus wrappers: Convenience helpers for block transfers, PEC, quick commands (libi2c already supports)

Future Considerations

Distribution

  • Debian/Ubuntu packages (.deb)
  • Raspberry Pi OS apt repository
  • Arch AUR, header-only options

Language Bindings

  • Python (ctypes/cffi), Rust (safe FFI)
  • Node.js (N-API), Go (CGo)

Raspberry Pi Enhancements

  • Device tree overlays for I²C configuration (reference)
  • raspi-config integration
  • I²C expander examples (MCP23017, PCA9685)