Hi, my name is Marcelo, I’m a student at University of São Paulo, member of FLUSP and HLUSP students group, and Google Summer of Code (GSoC) student of 2019. Today, I would like to share some experience I’ve acquired throughout the Linux Foundation GSoC project on Analog Devices AD7292 device driver. The work done during the first 3 months of project can be seen here: Get the code. I also would like to thank my mentors: Dragos Bogdan, Stefan Popa, and Alexandru Ardelean, who have been providing me guidance from long before the GSoC program has started.

With this series of tutorials, I intend to provide a guide to introduce newcomers to the Industrial I/O (IIO) subsystem. My approach will be pretty much practical. Starting with pre-development steps such as cloning the development repository, building the Linux kernel, installing helpful development tools, to device tree settings and IIO specific functionality. To illustrate the steps, I’ll use AD7292 driver as an example. To the end of this series of tutorials, a basic functional IIO driver will have been created from scratch.

The following tutorials are listed such that it should make more sense to follow them from the top to the bottom-most one. Hope they might be useful.

Raspberry Pi kernel compilation

This tutorial goes through most of the steps needed to build up Linux kernel images for Raspberry Pi.

Useful tools (coming soon)

Simple IIO driver

This tutorial gives a brief introduction to the Industrial I/O (IIO) subsystem and shows how to create a simple IIO device driver from scratch.

Device trees (coming soon)

Device tree overlays (coming soon)

IIO ADC channels (coming soon)

Voltage regulator (coming soon)

SPI read (coming soon)

If you find any typo or mistake in these tutorials please, send me an e-mail (marcelo.schmitt@usp.br) and I’ll be happy to update them with your suggestions. Any feedback is welcome.

A Brief Testimony about the GSoC Experience

The GSoC Analog Devices AD7292 device driver project was a great experience for me. Throughout the 3 months of the project, I could learn fundamental characteristics of IIO driver development under the guidance of extremely skilled mentors who provided me valuable pieces of advice on how to proceed on developing the AD7292 driver.

The mentors were very supportive and understanding. I have only good things to speak of them. They were overall very responsive, providing me with the tools and information every time I needed some aid to proceed with my tasks. They were also sensitive, kindly giving me some time to focus on my college tasks until I managed to dedicate the expected amount of time and effort on the project. They were also very enthusiastic, encouraging me to keep up with a FLOSS student group at my university. Finally, they were extremely polite, always treating me with respect and manner. I am very thankful for having them to help me with this project.

To me, it looks like this GSoC project was just the beginning of a great partnership about learning and development into the Linux kernel IIO subsystem. =)

—————————————————— —————————————————— ——————————————————

Revision History:

  • Rev1 (2019-09-03): Release
  • Rev2 (2019-09-05): Added GSoC testimony