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:
- i2c-tools - Reference testing utilities
- I²C Bus Recovery - Kernel error handling
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)