User space interface for GPIO interrupts / Status Report Week 2
uddka at student.kit.edu
Mon May 28 17:41:37 UTC 2018
since my last status report I implemented dynamic reconfiguration of the monitored pin and also started to write user space tools  to communicate with the gpiointr device driver .
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.
More information about the soc-status