linux-leds.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dan Murphy <dmurphy@ti.com>
To: Pavel Machek <pavel@ucw.cz>
Cc: jacek.anaszewski@gmail.com, linux-leds@vger.kernel.org,
	kernel list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/2] leds: lp5024: Add the LP5024/18 RGB LED driver
Date: Wed, 19 Dec 2018 19:31:51 -0600	[thread overview]
Message-ID: <d7edfd57-20df-bd83-b616-5b18e8bc2c64@ti.com> (raw)
In-Reply-To: <20181219222737.GB30496@amd>

Pavel

Thanks for trimming.

On 12/19/2018 04:27 PM, Pavel Machek wrote:
> Hi!
> 
> [cc list trimmed]
> 
>>>>> I don't think a user needs nor would want to have 24 different LED nodes with 24 different brightness files.
>>>>> Or with the LP5036 that would have 36 LED nodes.
>>>>>
>>>>> Table 1 in the data sheet shows how the outputs map to the control banks to the LED registers.
>>>>
>>>> Some time ago we had discussion with Vesa Jääskeläinen about possible
>>>> approaches to RGB LEDs [0]. What seemed to be the most suitable
>>>> variation of the discussed out-of-tree approach was the "color" property
>>>> and array of color triplets defined in Device Tree per each color.
>>>>
>>>> Please refer to [0] for the details.
>>>>
>>>> [0] https://lkml.org/lkml/2018/11/9/938
>>>
>>> Yes, plus I also have the set of HSV patches somewhere... and they
>>> work, but I found out that HSV->RGB conversion results in loss of precision.
>>>
>>> We may want to do something like that.
>>>
>>> But we need to do it once, in a driver core. We obviously don't want
>>> each driver having different version of RGB support.
>>
>> True.  But the RGB driver really should not be defining the color palette.
>>
>> Maybe a "color capability" reported to user space so that the user space can make the decision.
>>
>> It can report
>>
>> For GPIO or constant current situations
>> static red
>> static blue
>> static green 
>>
>> For adjustable configurations it can report:
>> variable red
>> variable blue
>> variable green
>>
>> or even simpler "static" or "dynamic" as a return to report the RGB configuration.
>> The LED driver would just need to set the variable.
> 
> I'm not sure what static/variable is.

My suggestion is really based in opinion.  It is my opinion that the user space sets the policy
of the RGB.  The DT nor the driver should limit the capability of what the user would want to do.

But instead should let the user know what the driver and HW can do.  It seems that the suggestion made in the
email thread [0] https://lkml.org/lkml/2018/11/9/938 limits that capability via the DT by defining a specific color.

If I have a configurable current RGB combo then the palette is endless.  But in a GPIO fixed current situation the palette is
limited.  So I don't think I agree with the DT side of it.

There needs to be a way that the kernel can indicate to the user space "heres what I can do you need to let me know".
As each kernel driver just needs to interact with the HW and not set policy.

> 
> I have RGB leds here that can set any channel to 0-255, at
> runtime. They seem to be quite common at phones.

Yes I agree.  Android specifically likes to set these values in the lighting HAL.

But alternatively once the color is set the brightness can be controlled by PWM or an ALS.

> 
> Anyway, if your 36 channels can be set independently, I believe you
> just want them to export as 36 LEDs.

I am not sure that is what the "customers" would want to have to set 36 different nodes or even declare those 36 nodes.
That is 36 independent user space to kernel space calls that are very expensive just to set a LED color and brightness.

Now that is very unrealistic that there would be 36 calls happening.  But for this part it
would cut the calls to set the brightness to the kernel in runtime after init to 1/3.  Set the color and then only one call for the brightness.

Dan

> 
> Thanks,
> 									Pavel
> 


-- 
------------------
Dan Murphy

  reply	other threads:[~2018-12-20  1:31 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-19 16:26 [PATCH 0/2] LP5024/18 LED introduction Dan Murphy
2018-12-19 16:26 ` [PATCH 1/2] dt: bindings: lp5024: Introduce the lp5024 and lp5018 RGB driver Dan Murphy
2018-12-28 23:53   ` Rob Herring
2018-12-31 18:54     ` Dan Murphy
2019-01-08 20:33   ` Jacek Anaszewski
2019-01-08 20:53     ` Dan Murphy
2019-01-08 21:16       ` Jacek Anaszewski
2019-01-08 21:22         ` Dan Murphy
2019-01-09 20:12           ` Jacek Anaszewski
2019-01-09 21:12             ` Dan Murphy
2019-01-09 21:28               ` Jacek Anaszewski
2019-01-09 21:31                 ` Dan Murphy
2019-01-10 18:44                   ` Jacek Anaszewski
2019-01-10 19:22                     ` Dan Murphy
2019-01-10 19:57                       ` Jacek Anaszewski
2019-01-10 20:43                         ` Dan Murphy
2019-01-10 22:03                           ` Jacek Anaszewski
2019-01-10 23:51                             ` Dan Murphy
2019-01-11 12:38                             ` Dan Murphy
2019-01-11 21:52                               ` Jacek Anaszewski
2019-01-12 17:09                                 ` Dan Murphy
2019-01-12 19:48                                   ` Jacek Anaszewski
2019-01-14 12:27                                     ` Dan Murphy
2019-01-14 20:11                                       ` Jacek Anaszewski
2019-01-14 20:14                                         ` Dan Murphy
2019-01-14 20:28                                           ` Jacek Anaszewski
2019-01-14 20:29                                             ` Dan Murphy
2018-12-19 16:26 ` [PATCH 2/2] leds: lp5024: Add the LP5024/18 RGB LED driver Dan Murphy
2018-12-19 19:04   ` Dan Murphy
2018-12-19 19:34   ` Pavel Machek
2018-12-19 19:41     ` Dan Murphy
2018-12-19 20:10       ` Pavel Machek
2018-12-19 20:41         ` Dan Murphy
2018-12-19 21:36           ` Jacek Anaszewski
2018-12-19 21:50             ` Dan Murphy
2018-12-20 12:40               ` Vesa Jääskeläinen
2018-12-20 13:56                 ` Dan Murphy
2019-01-01 13:45                 ` Vesa Jääskeläinen
2019-01-03 22:05                   ` Jacek Anaszewski
2019-01-03 23:19                     ` Vesa Jääskeläinen
2019-01-03 23:34                       ` Pavel Machek
2019-01-04 19:49                         ` Vesa Jääskeläinen
2019-01-04 20:43                           ` Pavel Machek
2019-01-04 19:12                       ` Jacek Anaszewski
2019-01-04 20:12                         ` Pavel Machek
2019-01-04 21:37                           ` Jacek Anaszewski
2019-01-04 22:07                             ` Pavel Machek
2019-01-05 12:16                               ` Jacek Anaszewski
2019-01-05 12:31                                 ` Pavel Machek
2019-01-05 13:16                                   ` Jacek Anaszewski
2019-01-05 22:12                                     ` Generic RGB LED support was " Pavel Machek
2019-01-06 15:52                                       ` Jacek Anaszewski
2019-01-07 19:13                                         ` Jacek Anaszewski
2019-01-07 19:36                                           ` Dan Murphy
2019-01-07 20:59                                             ` Jacek Anaszewski
2019-01-07 21:14                                               ` Dan Murphy
2019-01-08 21:18                                                 ` Jacek Anaszewski
2019-01-08 21:25                                                   ` Dan Murphy
2019-01-10 12:46                                                     ` Dan Murphy
2019-01-10 19:23                                                       ` Jacek Anaszewski
2019-01-10 19:58                                                         ` Dan Murphy
2019-01-10 21:02                                                           ` Jacek Anaszewski
2019-01-10 21:07                                                             ` Dan Murphy
2019-01-08 22:59                                         ` Pavel Machek
2019-01-09  7:11                                           ` Vesa Jääskeläinen
2019-01-13 16:37                                             ` Jacek Anaszewski
2019-01-05  0:39                             ` Vesa Jääskeläinen
2019-01-07 19:34                               ` Dan Murphy
2019-01-09  6:20                                 ` Vesa Jääskeläinen
2019-01-07 21:13                               ` Jacek Anaszewski
2019-01-07 21:15                                 ` Dan Murphy
2019-01-09  6:46                                 ` Vesa Jääskeläinen
2019-01-13 16:36                                   ` Jacek Anaszewski
2018-12-20 20:31               ` Jacek Anaszewski
2018-12-21  7:32                 ` Jacek Anaszewski
2018-12-21 13:05                   ` Dan Murphy
2018-12-29 18:28                     ` Jacek Anaszewski
2018-12-29 19:07                       ` Pavel Machek
2018-12-30 17:09                         ` Jacek Anaszewski
2018-12-30 17:35                           ` Pavel Machek
2018-12-31 15:43                             ` Jacek Anaszewski
2018-12-31 15:47                               ` Jacek Anaszewski
2018-12-31 19:15                                 ` Dan Murphy
2019-01-01 14:42                                   ` Jacek Anaszewski
2019-01-01 18:11                                     ` Dan Murphy
2019-01-01 22:06                                       ` Jacek Anaszewski
2018-12-31 16:28                               ` Pavel Machek
2019-01-01 14:26                                 ` Jacek Anaszewski
2018-12-19 22:03             ` Pavel Machek
2018-12-19 22:08               ` Dan Murphy
2018-12-19 22:27                 ` Pavel Machek
2018-12-20  1:31                   ` Dan Murphy [this message]
2018-12-20  9:06                     ` Pavel Machek
2018-12-20 14:03                       ` Dan Murphy
2019-01-08 21:10   ` Jacek Anaszewski
2019-01-08 21:17     ` Dan Murphy
2019-07-22 20:59 ` Backlight in motorola Droid 4 Pavel Machek
2019-07-23 15:53   ` Dan Murphy
2019-07-24  8:22     ` Pavel Machek
2019-07-24 12:45     ` Pavel Machek
2019-07-24 15:10       ` Dan Murphy
2019-07-24 15:22       ` Dan Murphy
2019-07-26 14:38         ` Dan Murphy
2019-07-29 22:00           ` Pavel Machek
2019-07-30 18:21             ` Dan Murphy
2019-07-30 21:52               ` Pavel Machek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d7edfd57-20df-bd83-b616-5b18e8bc2c64@ti.com \
    --to=dmurphy@ti.com \
    --cc=jacek.anaszewski@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=pavel@ucw.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).