On Wed 2017-03-29 12:07:25, Bjorn Andersson wrote: > On Tue 28 Mar 19:17 PDT 2017, Rob Herring wrote: > > > On Thu, Mar 23, 2017 at 09:37:49PM +0100, Pavel Machek wrote: > > > Hi! > > > > > > > The Light Pulse Generator (LPG) is a PWM-block found in a wide range of > > > > PMICs from Qualcomm. It can operate on fixed parameters or based on a > > > > lookup-table, altering the duty cycle over time - which provides the > > > > means for e.g. hardware assisted transitions of LED brightness. > > > > > > Ok, this is not first hardware that supports something like this. We > > > have similar hardware that can do blinking on Nokia N900 -- please > > > take a look at leds-lp55*.c > > > > And perhaps some alignment on the bindings too if the N900 has bindings. > > > > There is a binding for ti,lp55xx, but there's nothing I can reuse from > that binding...because it's completely different hardware. Agreed, if you drop the pattern stuff from the binding, at least for now. > > > And it would be really good to provide hardware abstraction. We really > > > don't want to have different userspace for LPG and for N900 and for > > > > I'm interested in what this looks like as several AOSP platforms do > > tri-color LEDs with custom sysfs extensions. > > How to model RGB LEDs has been discussed many times before and I was > hoping for that discussion to come to some conclusion during the last 2 > years, but now I couldn't wait more - we need this driver for > db820c. If you want driver merged quickly, I believe the best way would be to leave out pattern support for now. We can merge the basic driver easily to 4.12. > With this driver, as with many existing, you will have 3 LEDs that you > set independently. > > I did implement blinking by using the PWM straight off, so you can't set > brightness or synchronize the multiple channels. Perhaps this should be > changed to use the ramp generator. > > To synchronize patterns I suggest that we extend the LUT binding to > describe groups and when any LPG trigger a restart of the pattern-walker > we trigger all that are grouped. > > These two changes combined allows you to set brightness and blink with a > RGB-LED. > > > But I will have to dig up some hardware that uses the LPG for driving a > RGB-LED to be able to test this (and I do prefer that to be done with > some incremental patches at some later time, if acceptable). Incremental patches sound like a good idea, yes. I'd say that testing with actual RGB LED is not a requirement... as long as we design reasonable interface where the synchronizaction will be easy. Thanks and best regards, Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html