public inbox for linux-leds@vger.kernel.org
 help / color / mirror / Atom feed
From: Marek Behun <kabel@blackhole.sk>
To: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Cc: linux-leds@vger.kernel.org, Pavel Machek <pavel@ucw.cz>
Subject: Re: turris omnia leds again: question
Date: Tue, 10 Mar 2020 23:23:40 +0100	[thread overview]
Message-ID: <20200310232340.763cdaaa@blackhole.sk> (raw)
In-Reply-To: <8f481aa4-463c-30cc-df69-d1f630e848a2@gmail.com>

On Tue, 10 Mar 2020 22:48:09 +0100
Jacek Anaszewski <jacek.anaszewski@gmail.com> wrote:

> Hi Marek,
> 
> On 3/10/20 6:38 PM, Marek Behun wrote:
> > Hi,
> > 
> > I am going to try to send driver for Omnia LEDs again. The last time
> > there was a problem: on 05/01/2019 Jacek wrote:
> >   
> >> I wonder if we're doing right merging this driver in this form.
> >> We break the rule one-led-class-device-per-one-channel. We don't
> >> have LED multi color support yet, so this should support RGB LEDs
> >> in the old manner. Or switch to using LED multi color class.  
> >   
> >> Once we will have LED multi color class, we will be able to add the
> >> support for it to the driver and make the driver configurable to be
> >> able to expose old interface or the LED multi color one.  
> >   
> >> Moreover, the bindings should use led-sources property for grouping
> >> three channels under single LED class device. This is certainly to be
> >> fixed.  
> > 
> > So I am going to try to modify the driver so that each channel creates
> > one LED class device. Do I understand this correctly then, that this
> > way when there are three channels (RGB) on one LED, all the 3 device
> > tree nodes for should have the same reg property, but different
> > led-sources property? Eg:
> > 
> >   led@0,0 {
> >     reg = <0>;
> >     led-sources = <0>;
> >     label = "omnia::heartbeat::red";
> >   };
> > 
> >   led@0,1 {
> >     reg = <0>;
> >     led-sources = <1>;
> >     label = "omnia::heartbeat::green";
> >   };
> > 
> >   led@0,2 {
> >     reg = <0>;
> >     led-sources = <2>;
> >     label = "omnia::heartbeat::blue";
> >   };
> > 
> > Or did I misinterpret the led-sources property?  
> 
> This is what I proposed back then, strangely that message wasn't
> archived by bots, or maybe it resides only in my outbox...
> 
> --------------
> 
> LED sub-node properties:
>  - reg :                Must be from 0x0 to 0xb, since there are 12 RGB
> LEDs on this
>                         controller.
>  - label :              (optional)
>    see Documentation/devicetree/bindings/leds/common.txt
>  - linux,default-trigger : (optional)
>    see Documentation/devicetree/bindings/leds/common.txt
>  - led-sources : Each child node should describe RGB LED it controls,
>                  by listing corresponding iout identifiers:
>         0 - RGB LED 0: red
>         1 - RGB LED 0: green
>         2 - RGB LED 0: blue
>         3 - RGB LED 1: red
>         4 - RGB LED 1: green
>         5 - RGB LED 1: blue
>         6 - RGB LED 2: red
>         7 - RGB LED 2: green
>         8 - RGB LED 2: blue
>         9 - RGB LED 3: red
>         10 - RGB LED 3: green
>         11 - RGB LED 3: blue
>     ... and list all the iouts, maybe other names will be more
>             appropriate for this device, feel free to propose something
> 
> 
> 
> Example:
> 
>         led-controller@2b {
>                 compatible = "cznic,turris-omnia-leds";
>                 reg = <0x2b>;
>                 #address-cells = <1>;
>                 #size-cells = <0>;
> 
>                 led@0 {
>                         reg = <0x0>;
>                         label = "userB";
>                         linux,default-trigger = "heartbeat";
>                         led-sources = <0 1 2>;
>                 };
> 
>                 led@1 {
>                         reg = <0x1>;
>                         label = "userA";
>                         led-sources = <3 4 5>;
>                 };
> 
>                 led@2 {
>                         reg = <0x2>;
>                         label = "pci3";
>                         led-sources = <6 7 8>;
>                 };
> 
>                 led@3 {
>                         reg = <0x3>;
>                         label = "pci2";
>                         led-sources = <9 10 11>;
>                 };
>                 ...
> --------------
> 
> 
> Of course now label should be replaced with color and function
> properties. I've just reviewed that patch set and realized that
> we agreed upon setting max_brightness to 1 for all LEDs, right?
> 

No, there were subsequent patches which added support for
max_brightness = 255.

So the driver will register one LED class device per node, with color
ID = WHITE. Once RGB LED class is merged, the driver can be remade, but
the device tree won't need to be changed.

Marek

  reply	other threads:[~2020-03-10 22:23 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-10 17:38 turris omnia leds again: question Marek Behun
2020-03-10 21:48 ` Jacek Anaszewski
2020-03-10 22:23   ` Marek Behun [this message]
2020-03-11 10:59     ` Jacek Anaszewski
2020-03-19  4:34       ` Marek Behun
2020-03-19 15:27       ` Marek Behun

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=20200310232340.763cdaaa@blackhole.sk \
    --to=kabel@blackhole.sk \
    --cc=jacek.anaszewski@gmail.com \
    --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