From: Jacek Anaszewski <jacek.anaszewski@gmail.com>
To: Pavel Machek <pavel@ucw.cz>
Cc: Dan Murphy <dmurphy@ti.com>,
robh+dt@kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-leds@vger.kernel.org
Subject: Re: [PATCH 2/2] leds: lp5024: Add the LP5024/18 RGB LED driver
Date: Mon, 31 Dec 2018 16:47:14 +0100 [thread overview]
Message-ID: <9eafcf90-9083-ff42-e256-82d61991d610@gmail.com> (raw)
In-Reply-To: <7763a3ae-343c-0fbe-da88-afce8459e4c2@gmail.com>
On 12/31/18 4:43 PM, Jacek Anaszewski wrote:
> On 12/30/18 6:35 PM, Pavel Machek wrote:
>> On Sun 2018-12-30 18:09:35, Jacek Anaszewski wrote:
>>> On 12/29/18 8:07 PM, Pavel Machek wrote:
>>>> Hi!
>>>>
>>>>>>> With the "color" sysfs file it will make more sense to allow for
>>>>>>> user
>>>>>>> defined color palettes.
>>>>>>>
>>>>>>
>>>>>> I think defining these values in the device tree or acpi severely
>>>>>> limits the devices
>>>>>> capabilities. Especially in development phases. If the knobs
>>>>>> were exposed then the user space
>>>>>> can create new experiences. The color definition should be an
>>>>>> absolute color defined in the dt and
>>>>>> either the framework or user space needs to mix these
>>>>>> appropriately. IMO user space should set the policy
>>>>>> of the user experience and the dt/acpi needs to set the capabilities.
>>>>>>
>>>>>> I do like Pavels idea on defining the more standard binding
>>>>>> pattern to "group" leds into a single group.
>>>>>>
>>>>>> Maybe the framework could take these groups and combine/group them
>>>>>> into a single node with the groups colors.
>>>>>
>>>>> There is still HSV approach [0] in store. One problem with proposed
>>>>> implementation is fixed algorithm of RGB <-> HSV color space
>>>>> conversion.
>>>>> Maybe allowing for some board specific adjustments in DT would add
>>>>> more flexibility.
>>>>>
>>>>> [0] https://lkml.org/lkml/2017/8/31/255
>>>>
>>>> Yes we could do HSV. Problem is that that we do not really have RGB
>>>> available. We do have integers for red, green and blue, but they do
>>>> not correspond to RGB colorspace.
>>>
>>> OK, so conversion from HSV to RGB would only increase the aberration.
>>> So, let's stick to RGB - we've got to have some stable ground and this
>>> is something that the hardware at least pretends to be compliant
>>> with.
>>
>> I'm not saying that we should stick to RGB. I'm just saying that
>> problem is complex.
>>
>> And no, hardware does not even pretend to be compliant with RGB color
>> model ( https://en.wikipedia.org/wiki/RGB_color_model ). In
>> particular, in RGB there is non-linear brightness curve.
>
> Quotation from the wiki page you referred to:
>
> "RGB is a device-dependent color model: different devices detect or
> reproduce a given RGB value differently, since the color elements (such
> as phosphors or dyes) and their response to the individual R, G, and B
> levels vary from manufacturer to manufacturer, or even in the same
> device over time. Thus an RGB value does not define the same color
> across devices without some kind of color management"
>
> This claim alone leaves much room for the manufacturers to pretend that
> their devices are compliant with RGB model.
>
> And the documentation of the hardware the discussed driver is for
> also refers to RGB model in many places - e.g. see Table 1, page 15
> in the document [0], where mapping of output triplets to an RGB module
> is shown.
>
> One thing that I missed is that the discussed hardware provides
> LEDn_BRIGHTNESS registers for each RGB LED module, that can be
> configured to set color intensity in linear or logarithmic fashion.
>
> Actually this stands in contradiction with RGB model, since
> change of "color intensity" means change of all RGB components.
>
> We could use brightness file as for monochrome LEDs for that,
Here I mean brightness file in addition to the previously proposed
red, green and blue files.
> but we'd need to come up with consistent interface semantics
> for all devices, also those which don't have corresponding
> functionality. Probably this is the place where we could apply
> some RGB<->HSV conversion, as color intensity feels something
> more of HSV's saturation and value.
>
> It would be good to hear from Dan how that looks in reality
> in case of lp5024 device.
>
>>> Our problem is how to set the color atomically. With HSV approach we
>>> were to obviate the problem by mapping brightness file to the "V"
>>> component of that color space, and write all H,S and V values to the
>>> hardware only on write to brightness file.
>>
>> I'm not sure how realistic the "atomic color" problem is. Computers
>> are way faster than human vision.
>
> With LEDn_BRIGHTNESS registers of lp5024 it seems that we need the
> ability for grouping LEDs in triplets and be able to set their intensity
> with a single write operation.
>
>> I believe problem to start with is the "white" problem. Setting
>> R=G=B=255 will _not_ result in anything close to white light on
>> hardware I have.
>
> RGBW LED controllers solve this problem. For the devices without
> white/amber we cannot do more than the hardware allows for.
>
> [0] http://www.ti.com/lit/ds/symlink/lp5024.pdf
>
--
Best regards,
Jacek Anaszewski
next prev parent reply other threads:[~2018-12-31 15:47 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 [this message]
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
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=9eafcf90-9083-ff42-e256-82d61991d610@gmail.com \
--to=jacek.anaszewski@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=dmurphy@ti.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=pavel@ucw.cz \
--cc=robh+dt@kernel.org \
/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).