tech-embed archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Interrupts on GPIO (on RPI, specifically, but also in general)
On Wed, Apr 18, 2018 at 10:28:34PM -0700, Jason Thorpe wrote:
> There seems to be support for interrupts on GPIO, but no in-tree examples of how it?s used, programming patterns, etc.
>
> Anyone have any solid examples?
>
> Context: I have a device I?m building that is going to have some buttons, a switch or two, and a rotary encoder for input. Path of least resistance is to use an AVR and an existing software library for said AVR to emulate a USB keyboard (the ?throw more hardware at the problem? approach). But I have enough GPIO pins on the Raspberry Pi for the task and I loathe to make the PCB more complicated than it has to be, so I?m considering writing an interrupt-driven ?gpiokbd? driver that would allow me to map GPIO input pin interrupts to a configurable set of ?wskbd? input events. I could poll, but I *really* don?t want too, and if I?m forced down that path, then I?d almost rather use the AVR solution.
>
> I found Manuel Bouyer?s chart plotter driver that uses this on Github, but it seems to have some FDT conditionals, as well?
Yes. I don't know specifiacally for RPis (I don't use them), but for
sunxi the GPIO driver is declared as an interrupt controller too.
With a reference to a GPIO in the device tree a driver can
use fdtbus_intr_str()/fdtbus_intr_establish(). This interface is MI.
I think this is the way to go for your driver (and writing a
FDT-based driver isn't hard :)
BTW we have a gpiobutton driver, but AFAIK it uses polling.
--
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
--
Home |
Main Index |
Thread Index |
Old Index