Re: [PATCH v14 2/2] leds: Add driver for Qualcomm LPG

From: Bjorn Andersson
Date: Fri May 06 2022 - 12:25:02 EST


On Fri 06 May 09:09 PDT 2022, Pavel Machek wrote:

> Hi!
>
> > > > + "255 500 0 500"
> > > > +
> > > > + ^
> > > > + |
> > > > + 255 +----+ +----+
> > > > + | | | | ...
> > > > + 0 | +----+ +----
> > > > + +---------------------->
> > > > + 0 5 10 15 time (100ms)
> > > > +
> > > > +The LPG supports specifying a longer hold-time for the first and last element
> > > > +in the pattern, the so called "low pause" and "high pause".
> > >
> > > Please see
> > > Documentation/devicetree/bindings/leds/leds-trigger-pattern.txt . This
> > > should really be compatible.
> >
> > Unfortunately the LPG hardware only supports fixed duration (except for
> > the ability to hold/extend the first and last duration in the pattern)
> > and it also does not support gradual transition between the brightness
> > levels.
>
> Ok.
>
> > As such the pattern sequence provided to hw_pattern looks to be the
> > smae, but I don't see that it can be made compatible.
> >
> > > Can I get either patch to disable pattern infrastructure for now or to
> > > get it compatible?
> > >
> >
> > I'd be happy to get this updated to your liking, but this was one of the
> > drivers we discussed when we introduced the pattern trigger and led to
> > the conclusion that we need the ability to do hw-specific patterns.
> >
> > As such this document provides the hardware specific documentation, as
> > we describe under "hw_pattern" in
> > Documentation/ABI/testing/sysfs-class-led-trigger-pattern.
> >
> > Please advice on what you would like me to do.
>
> I'd like you to use same format leds-trigger-pattern describes.
>
> If someone passes "255 500 0 500", that's requesting gradual transitions and
> your hw can not do that. You return -EINVAL.
>
> If someone wants that kind of blinking, they need to pass "255 0 255 500 0 0 0 500".
>

So the section under hw_pattern in sysfs-class-led-trigger-pattern that
says:

"Since different LED hardware can have different semantics of
hardware patterns, each driver is expected to provide its own
description for the hardware patterns in their documentation
file at Documentation/leds/."

That doesn't apply to this piece of hardware & driver?


Or is the sysfs documentation simply not reflecting what has been
decided of how this interface should look like?

Regards,
Bjorn