The main purpose of the Industrial I/O subsystem (IIO) is to provide support for devices that in some sense perform either analog-to-digital conversion (ADC) or digital-to-analog conversion (DAC) or both. The aim is to fill the gap between the somewhat similar hwmon and input subsystems. Hwmon is directed at low sample rate sensors used to monitor and control the system itself, like fan speed control or temperature measurement. Input is, as its name suggests, focused on human interaction input devices (keyboard, mouse, touchscreen). In some cases there is considerable overlap between these and IIO.
Devices that fall into this category include: analog to digital converters (ADCs), accelerometers, capacitance to digital converters (CDCs), digital to analog converters (DACs), gyroscopes, inertial measurement units (IMUs), color and light sensors, magnetometers, pressure sensors, proximity sensors, temperature sensors, etc.
Usually these sensors are connected via SPI or I2C. A common use case of the sensors devices is to have combined functionality (e.g. light plus proximity sensor).
Create a Linux IIO driver for one of the Analog Devices, Inc.'s parts. We are open for suggestions in identifying the exact component. If there won’t be suggestions, or they don’t make sense, we will propose one component to the chosen student.
The driver should be tested on the real hardware. The proposed setup is Raspberry Pi 3 Model B + the chosen component's evaluation board.
The end goal of the project is to submit the code upstream.