How scottcandy34/ads1256-linux-driver works
This repository is a Raspberry Pi Linux kernel driver and example client for the ADS1256 ADC. The principal workflow configures channel MUX selections and acquisition settings, captures timestamped conversions over SPI, optionally buffers samples, and exposes them through character devices and sysfs. The README documents broader controls—including sensor detection, calibration, dropped-sample reporting, and multi-device synchronization—than the sampled driver excerpts establish in detail; those capabilities are represented without asserting unverified internal call paths.
Main entry points: ads1256.c ADS1256 driver · read_ads1256.c Sample client · ads1256-overlay.dts Hardware pin configuration
Components 13
User interfaces
- Sample client
read_ads1256.c - Character devices
ads1256.c - Sysfs controls
ads1256.c
ADC acquisition
- ADS1256 driver
ads1256.c - MUX and settings
ads1256.c - Conversion sampling
ads1256.c - SPI subsystem
- ADS1256 hardware
- Circular sample buffer
ads1256.c
Device coordination
- Hardware pin configuration
ads1256-overlay.dts - GPIO subsystem
- Shared device synchronization
ads1256.c
Other components
- Applications and operators
Connections 18
- Applications and operators → Sample client: runs
- Sample client → Character devices: configures and reads
- Sample client → Sysfs controls: reads gain
- Applications and operators → Character devices: writes and reads
- Applications and operators → Sysfs controls: configures and triggers
- Character devices → ADS1256 driver: dispatches operations
- Sysfs controls → ADS1256 driver: dispatches controls
- ADS1256 driver → MUX and settings: applies settings
- ADS1256 driver → Conversion sampling: requests conversions
- Conversion sampling → SPI subsystem: transfers commands and data
- SPI subsystem → ADS1256 hardware: communicates
- Conversion sampling → Circular sample buffer: stores samples
- Character devices → Circular sample buffer: reads buffered samples
- Hardware pin configuration → GPIO subsystem: defines pin configuration
- ADS1256 driver → GPIO subsystem: uses configured pins
- Sysfs controls → Shared device synchronization: triggers synchronization
- Shared device synchronization → GPIO subsystem: pulses shared GPIO
- Shared device synchronization → ADS1256 driver: synchronizes instances