This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
gsoc:2019-gsoc-iio-driver [2019/02/04 22:18] dbogdan Update the part name |
gsoc:2019-gsoc-iio-driver [2019/02/05 21:05] (current) dbogdan 2019 Updates |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Google Summer of Code 2019: IIO Driver ====== | ||
- | ====== GSoC 2018: IIO driver project ====== | + | [[:gsoc:google-summer-code-2019|Main GSoC Linux Foundation page: How to apply, deadlines, other workgroups, ...]] |
- | [[:gsoc:google-summer-code-2018|Main GSoC Linux Foundation page: How to apply, deadlines, other workgroups, ...]] | + | ===== Industrial I/O subsystem (IIO) ===== |
- | ===== Proposal ===== | + | 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. |
- | 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. | + | |
- | Devices that fall into this category include: ADCs, DACs, accelerometers, gyroscopes, color and light sensors, pressure sensors, magnetometers, VOC sensors, etc. | + | |
- | The goal of this project is to write a driver for [[https://www.analog.com/en/products/ad7292.html | Analog Devices, Inc. AD7292]] 10-Bit Monitor & Control System with ADC, DACs, Temperature Sensor and GPIOs using the [[https://www.kernel.org/doc/html/v4.20/driver-api/iio/index.html | IIO]] interface. The project is split in the following subtasks: | + | 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. |
- | * get familiar with IIO subsystem and SPI API. | + | |
- | * create skeleton driver registering an IIO device | + | |
- | * add IIO channel for temperature | + | |
- | * add IIO channels for ADC | + | |
- | * add IIO channels for DAC | + | |
- | * add support for GPIOs | + | |
- | Code license: GPL | + | 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). |
- | The project is considered successful if the code is accepted into Linux kernel IIO maintainer's tree. | + | ===== Project Proposal ===== |
- | ===== Where to start? ===== | + | Create a Linux IIO driver for [[https://www.analog.com/en/products/ad7292.html | Analog Devices, Inc. AD7292]] 10-Bit Monitor & Control System with ADC, DACs, Temperature Sensor and GPIOs using the [[https://www.kernel.org/doc/html/v4.20/driver-api/iio/index.html | IIO]] interface. |
- | Have a look at the [[https://kernelnewbies.org/IIO_tasks]] page. The IIO tasks are part of your application process, try to solve as many as you can. | + | The driver should be tested on the real hardware. The proposed setup is Raspberry Pi 3 Model B + EVAL-AD7292SDZ. |
+ | |||
+ | The end goal of the project is to submit the code upstream. | ||
+ | |||
+ | Desired Knowledge: | ||
+ | * C programming language; | ||
+ | * Basic electronics knowledge. | ||
+ | |||
+ | License: | ||
+ | * GPL-2.0 | ||
===== Contact ===== | ===== Contact ===== |