Re: GPIO inputs on Pis?

From: Dr. Rolf Jansen <freebsd-rj_at_cyclaero.com>
Date: Tue, 24 Jan 2023 15:35:02 UTC
> Am 23.01.2023 um 11:41 schrieb Karl Denninger <karl@denninger.net>:
> 
> Is there support somewhere in the 13.x for other than "read current state" / "set current state"?
> 
> Specifically, there is evidence in the sys/gpio.h header file that I can open up a file descriptor and then use select()/read() to grab the contents of a ring buffer of some size (presumably interrupt-posted) of events since last look, and determine if there's anything in there.  Provided you're reasonably fast this might be enough to, for example, read an optical encoder that has a modest pulse rate.
> 
> I see apparent review code at https://reviews.freebsd.org/D27398 <https://reviews.freebsd.org/D27398> from late 2020, but nothing else I can find digging around; an example (assuming it is actually implemented and works) would be helpful
> 
See

https://forums.freebsd.org/threads/gpio-api-general-orange-pi-h3.83950/post-556728 <https://forums.freebsd.org/threads/gpio-api-general-orange-pi-h3.83950/post-556728>

And the messages in that thread that follow the one linked above.

There is a respective thread on this mailing list as well:

Porting FreeBSD to ARM processors: User Space GPIO Interrupt programming - GSoC-2018 <https://lists.freebsd.org/archives/freebsd-arm/2020-November/022740.html>