User space interface for GPIO interrupts / Status Report Week 2

Christian Krämer uddka at student.kit.edu
Mon May 28 17:41:37 UTC 2018


Dear all,

since my last status report I implemented dynamic reconfiguration of the monitored pin and also started to write user space tools [1] to communicate with the gpiointr device driver [2].

Furthermore the gpiointr driver was moved away from simplebus, so that one instance of the gpiointr driver is now attached to each gpio controller. As a result no modified DTB file is needed any more and all GPIO pins can be configured in a consistent way like gpio(3) and gpioc.

The configuration of, for example, pin 5 on gpiobus0 looks like this:
$ gpiointr_config -f /dev/gpiointr0 5

Monitoring of the pin is still done by a read() syscall that will block until an interrupt on the pin is triggered.

During this week I am going to implement locking mechanisms in order to avoid race conditions and start to move forward to dynamic resource management to be able to register interrupts for multiple pins on a specific gpiobus. Additionally the trigger type will become runtime configurable.

Thanks,
Chris

[1] <https://github.com/ckraemer/gsoc2018-utils>
[2] <https://github.com/ckraemer/freebsd/tree/gsoc2018>


More information about the soc-status mailing list