NOTE: The event will be held in Central Daylight Time (CDT), UTC -5.

View More Details for Open Source Summit + Embedded Linux Conference North America 2020
Registration Information.
Back To Schedule
Monday, June 29 • 11:30am - 12:20pm
Linux GPIO: Evolution and Current State of the User API - Bartosz Golaszewski, BayLibre

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Feedback form is now closed.
Over the last couple years the GPIO sub-system has evolved significantly both in kernel- as well as in user-space. Certain bad design decisions made in the past - namely using a global numberspace for GPIO lines - had led to several problems that were finally addressed with the introduction of the provider-consumer, descriptor based API in the kernel and with the character device and the corresponding library - libgpiod - in user-space.

The GPIO character device has been extended with new features in linux v5.5 and final new additions before declaring it feature-complete are planned for v5.6 & v5.7. The goal of these changes is to gradually move people away from the deprecated sysfs interface as well as non-upstreamable, SoC-specific solutions (e.g. /dev/gpiomem in RPi kernel) by providing users with appropriate replacement interfaces.

This talk will briefly go through the basics of libgpiod and the character device (which have been already presented in the past) but mainly focus on the new features: support for pull-up and pull-down resistors, configuration changes on requested lines, the GPIO aggregator and finally the new ioctl() for monitoring state changes of GPIO lines.


Bartosz Golaszewski

Embedded Linux Engineer, BayLibre
Bartosz Golaszewski has over 10 years of engineering experience in the embedded systems domain ranging from low-level, real-time operating systems, through the linux kernel to user-space programs, libraries and build systems. He has worked on international projects in a broad range... Read More →

Monday June 29, 2020 11:30am - 12:20pm CDT
ELC Theater B