On 2014-04-30 10:45, Peter Robinson wrote:
Hi Peter,
We have several pieces of software that make use of the /sys/class/gpio userspace interface to the GPIO subsystem.
One important prerequisite to being able to use the userspace GPIO interface is to be able to put the corresponding package pins into GPIO mode, by modifying the chip's mux settings.
With Fedora 19 on the Pandaboard, we were able to achieve this by poking around in /sys/kernel/debug/omap_mux. However, when running Fedora 20, this directory is empty. My assumption is that this functionality has been subsumed by the pinctrl subsystem in recent kernels. Unfortunately, there doesn't seem to be any documented userspace API.
I'd greatly appreciate it if someone could give me some pointers about how to deal with this issue!
Recently, sorry don't remember which kernel, most of the gpio stuff moved over to the gpiolib interface which changed some of the user space access but it at least appears to be documented in Documentation/gpio/sysfs.txt and at least on my Panda-es running 3.15rc3 there is /sys/class/gpio/export interface which is I suspect what you'll
Yes, we're already using the /sys/class/gpio interface for all our GPIO stuff. It does everything we need it to do -- other than change pinmux settings to make the GPIOs actually work.
From the pinctl PoV looking at a presentation [1] on the topic I'm not sure there is a userspace API yet according to page 18, although there's been quite some water under the bridge since 3.9 but it might be that the gpiolib stuff above is all you need.
But if you do need the pinctrl stuff there's a bunch of options in /sys/kernel/debug/pinctrl/ and the files in there map out how the pins are currently mapped and there's means to change them there too.
Hmm, yes, I found the /sys/kernel/debug/pinctrl interface, but I can't find any documentation *at all* about what can be written into those files to change the configuration, despite extensive googling. Do you know of any documentation or examples? Or is the only option to read the kernel sources?
Thanks,
Peter