Welcome to IIO tasks page

This page is dedicated to students applying for GSoC/Outreachy programs.

It also aims to help newcomers getting started with the Industrial IO subsystem, offering pointers to documentation and small tasks.

For GSoC/Outreachy students:

Please use a single email thread for communication. During the application always reply to this thread if you have a question or sending the solution for a task. The email should have the following format:

subject: GSoC IIO project: Your Name

body: <short description of content: e.g Task 01 / Question about the schedule / etc> <the actual email body>

Experimenting with IIO subsystem

For this we will use two kernel modules found in drivers/iio/dummy:

Dummy modules compilation

You need to select the following config options:

Use the following commands for modules compilation:

Use the following commands for module loading:

Use the following command to create your dummy device under the configfs filesystem:

Task 01:

Task 02:

Task 03:

IIO event monitor

IIO event monitor is an user space example application which reads events from IIO layer and pretty prints the results. Implementation can be found in iio_event_monitor.c under tools/iio/.

Task 04:

Compile iio_event_monitor:

Task 05:

Read events using iio_event_monitor

Generic buffer

Task 06:

Create triggers using configfs interface.

Task 07:

Read samples from buffer generated by the iio_dummy module.

Coding Tasks

Coding Task 1

Send 2 cleanup patches to the linux kernel.


Useful links:

Coding Task 2

drivers/staging directory is the place where drivers that aren't yet fit to be merged into the main portion of the kernel for various reasons: code quality, non standard interfaces, etc. Grab a driver from drivers/staging/iio and try to move it into drivers/iio.


Coding Task 3

Each driver that supports both SPI and I2C has the following structure:

It seems that there is a lot of duplicate/similar code for I2C/SPI parts. Have a look at the following drivers:

We want to create a common framework for I2C/SPI parts and reuse it for each driver to avoid code duplication.


* before starting writing the code send an email to linux-iio list presenting your idea on how do you want to solve this in order to get some feedback.


For questions please send questions in the format mentioned above to daniel.baluta at nxp dot com or the #linux-iio IRC channel (server

KernelNewbies: IIO_tasks (last edited 2018-02-18 17:35:36 by DanielBaluta)