Linux-LEDs Archive on lore.kernel.org
 help / color / Atom feed
From: Dan Murphy <dmurphy@ti.com>
To: Philip Molloy <philip@philipmolloy.com>,
	"linux-leds@vger.kernel.org" <linux-leds@vger.kernel.org>
Subject: Re: Abstraction for dual LED driver override feature
Date: Thu, 25 Jul 2019 15:26:45 -0500
Message-ID: <37f829a6-c6ff-7a92-cb97-874b2d70b25f@ti.com> (raw)
In-Reply-To: <-SZHSFMkCZILLVhmVPIa2HVHWpZN2OId3iixPCrsBNWCmtyC2bt5ATy3iOTlNuD_12k6xRBcXwUf7_WT3Ij7ccp0357LdxUUSjojm2_LFUc=@philipmolloy.com>

Phill

On 7/25/19 2:43 PM, Philip Molloy wrote:
> Hello,
>
> I'm writing a driver for the TI LM3644 dual current flash LED driver[1] and could use some advice on how to abstract a feature of the device that allows the user to fix the brightness of the 2nd LED to the brightness of the 1st.
>
> Bit 7 of the LED1 torch brightness register signifies whether the LED2 torch current should be set to the LED1 torch current. By default this override is enabled.
>
> Is it worth exposing this feature to userspace? And what might a good way to do that be?
>
> Or alternatively, hide the feature by setting bit 7 of the LED1 torch brightness register to 0 every time I write to the LED2 torch brightness register?
>
> Unfortunately, I couldn't find an example of similar functionality in any of the mainline LED kernel modules.

You could define this in the DT using the pre-defined led-sources property.

Unless this needs to be run time configurable which it does not appear

that it needs to be.  The default is combined LED brightness registers.

led-sources = < 0 1 >;

If led-sources does not exist in the DT then assume they are separate.

Example DT with combined LED outputs

led-controller@63 {
     compatible = "ti,lm3644";
     #address-cells = <1>;
     #size-cells = <0>;
     reg = <0x63>;

     led@0 {
         reg = <0>;

         led-sources = < 0 1 >;

         function = LED_FUNCTION_TORCH;
         color = <LED_COLOR_ID_WHITE>;
         led-max-microamp = <376000>;
         flash-max-microamp = <1500000>;
         flash-max-timeout-us = <1600000>;
     };
}

Example DT with separated LED outputs where output is the flash and 
output 2 is a torch

This would be two separate class registrations

led-controller@63 {
     compatible = "ti,lm3644";
     #address-cells = <1>;
     #size-cells = <0>;
     reg = <0x63>;

     led@0 {
         reg = <0>;

         function = LED_FUNCTION_FLASH;

         color = <LED_COLOR_ID_WHITE>;
         led-max-microamp = <376000>;
         flash-max-microamp = <1500000>;
         flash-max-timeout-us = <1600000>;
     };

     led@1 {
         reg = <1>;

         function = LED_FUNCTION_TORCH;

         color = <LED_COLOR_ID_WHITE>;
     };

}



Dan


>
> Best,
> Philip
>
> [1]: http://www.ti.com/lit/ds/symlink/lm3644.pdf

      parent reply index

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-25 19:43 Philip Molloy
2019-07-25 20:12 ` Jacek Anaszewski
2019-07-25 20:26 ` Dan Murphy [this message]

Reply instructions:

You may reply publically 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=37f829a6-c6ff-7a92-cb97-874b2d70b25f@ti.com \
    --to=dmurphy@ti.com \
    --cc=linux-leds@vger.kernel.org \
    --cc=philip@philipmolloy.com \
    /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

Linux-LEDs Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-leds/0 linux-leds/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-leds linux-leds/ https://lore.kernel.org/linux-leds \
		linux-leds@vger.kernel.org
	public-inbox-index linux-leds

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-leds


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git