On Tue 2019-04-02 22:52:29, Jacek Anaszewski wrote: > Hi Alexander, > > On 4/2/19 12:23 PM, Alexander Dahl wrote: > >Hello everyone, > > > >on my desk lies a piece of hardware with some dual color LEDs connected to > >some IO ports. The LEDs shine green or red depending on polarity and are > >connected in between two data output lines or GPIO ports like this: > > > > ------. > > | LED > > P1 |---->|-------. > > | ___ | > > P2 |---|___|-----' > > | > > ------' > > > >The logic table is this one: > > > >P1 | P2 | LED > >-- + -- + ----- > > 0 | 0 | off > > 0 | 1 | green > > 1 | 0 | red > > 1 | 1 | off > > > >So there are three states: red, green and off, red and green are mutual > >exclusive, both colors can not be switched on independently at the same time. > > > >I guess this is a quite common setup in embedded electronics, but how would > >one model that with Linux? How would I describe it in device tree and how > >would the sysfs interface for trigger etc. look like? > > You would have to extend leds-gpio bindings by some property defining > forbidden states for given LED child node, i.e. which sub-LED cannot > be turned on in the same time. If the forbidden state is going to be > set, then just return -EBUSY from the brightness_set callback. > leds-gpio driver would have to be altered for that too, to understand > the new DT property. I'd really like to make it go into new (different) driver, as most systems do not need that functionality. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Attachment:
signature.asc
Description: Digital signature