All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robherring2@gmail.com>
To: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Mark Brown <broonie@kernel.org>,
	Jacek Anaszewski <j.anaszewski@samsung.com>,
	linux-leds@vger.kernel.org,
	"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Pavel Machek <pavel@ucw.cz>, Bryan Wu <cooloney@gmail.com>,
	Richard Purdie <rpurdie@rpsys.net>,
	sakari.ailus@iki.fi, Rob Herring <robh+dt@kernel.org>,
	Pawel Moll <pawel.moll@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Kumar Gala <galak@codeaurora.org>,
	Liam Girdwood <lgirdwood@gmail.com>
Subject: Re: [PATCH/RFC v10 03/19] DT: leds: Add led-sources property
Date: Thu, 15 Jan 2015 08:37:19 -0600	[thread overview]
Message-ID: <CAL_JsqLqRn1QG6dG5Ea6231SNzrV=Q9K=uRqjziM9sDdA3+31g@mail.gmail.com> (raw)
In-Reply-To: <54B7B39C.7080204@samsung.com>

On Thu, Jan 15, 2015 at 6:33 AM, Sylwester Nawrocki
<s.nawrocki@samsung.com> wrote:
> On 12/01/15 18:06, Mark Brown wrote:
>> On Mon, Jan 12, 2015 at 10:55:29AM -0600, Rob Herring wrote:
>>> > On Mon, Jan 12, 2015 at 10:10 AM, Jacek Anaszewski
>>>> > > There are however devices that don't fall into this category, i.e. they
>>>> > > have many outputs, that can be connected to a single LED or to many LEDs
>>>> > > and the driver has to know what is the actual arrangement.
>>> >
>>> > We may need to extend the regulator binding slightly and allow for
>>> > multiple phandles on a supply property, but wouldn't something like
>>> > this work:
>>> > led-supply = <&led-reg0>, <&led-reg1>, <&led-reg2>, <&led-reg3>;
>>> > The shared source is already supported by the regulator binding.
>>
>> What is the reasoning for this?  If a single supply is being supplied by
>> multiple regulators then in general those regulators will all know about
>> each other at a hardware level and so from a functional and software
>> point of view will effectively be one regulator.  If they don't/aren't
>> then they tend to interfere with each other.
>
> For LED current regulators like this one [1] we want to be able to
> communicate to the software the hardware wiring, e.g. if a single LED is
> connected to only one or both the current regulators.  The device needs
> to be programmed differently for each configuration, as shown on page 36
> of the datasheet [2].
>
> Now, the LED DT binding describes the LEDs (current consumers) as child
> nodes of the LED driver IC (current supplier), e.g. (from [3]):
>
> pca9632@62 {
>         compatible = "nxp,pca9632";
>         #address-cells = <1>;
>         #size-cells = <0>;
>         reg = <0x62>;
>
>         red@0 {
>                 label = "red";
>                 reg = <0>;

This only works if you don't have sub blocks or different functions to
describe. I suppose you could add yet another level of nodes. This
feels like abuse of the reg property even though to use the reg
property is a frequent review comment.

OTOH, we don't need 2 ways to describe this.

>                 linux,default-trigger = "none";
>         };
>         green@1 {
>                 label = "green";
>                 reg = <1>;
>                 linux,default-trigger = "none";
>         };
>         ...
> };
>
> What is missing in this binding is the ability to tell that a single LED
> is connected to more than one current source.
>
> We could, for example adopt the multiple phandle in the supply property
> scheme, but not use the kernel regulator API, e.g.
>
> flash-led {
>          compatible = "maxim,max77387";
>
>          current-reg1 { // FLED1
>                  led-output-id = <0>;
>          };
>
>          current-reg2 { // FLED2
>                  led-output-id = <1>;
>          };
>
>          red_led {
>                  led-supply = <&current-reg1>, <&current-reg2>;
>          };
> };
>
> However my feeling is that it is unnecessarily complicated that way.

This example is not so complicated, but I already agreed on not using
regulators on the basis there are other properties of the driver
unique to LEDs.

> Perhaps we could use the 'reg' property to describe actual connections,
> I'm not sure if it's better than a LED specific property, e.g.
>
> max77387@52 {
>         compatible = "nxp,max77387";
>         #address-cells = <2>;
>         #size-cells = <0>;
>         reg = <0x52>;
>
>         flash_led {
>                 reg = <1 1>;

Don't you mean <0 1> as the values are the "address" which in this
case are the LED driver output indexes.

Rob

>                 ...
>         };
> };
>
> [1] http://www.maximintegrated.com/en/products/power/led-drivers/MAX77387.html
> [2] http://datasheets.maximintegrated.com/en/ds/MAX77387.pdf
> [3] Documentation/devicetree/bindings/leds/pca963x.txt

  reply	other threads:[~2015-01-15 14:37 UTC|newest]

Thread overview: 107+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-09 15:22 [PATCH/RFC v10 00/19] LED / flash API integration Jacek Anaszewski
2015-01-09 15:22 ` [PATCH/RFC v10 01/19] leds: Add LED Flash class extension to the LED subsystem Jacek Anaszewski
2015-01-09 17:37   ` Pavel Machek
2015-01-26 23:02     ` Bryan Wu
2015-01-09 15:22 ` [PATCH/RFC v10 02/19] Documentation: leds: Add description of LED Flash class extension Jacek Anaszewski
2015-01-09 17:40   ` Pavel Machek
2015-01-12  8:04     ` Jacek Anaszewski
2015-01-26 23:03       ` Bryan Wu
2015-01-09 15:22 ` [PATCH/RFC v10 03/19] DT: leds: Add led-sources property Jacek Anaszewski
2015-01-09 17:42   ` Pavel Machek
     [not found]   ` <1420816989-1808-4-git-send-email-j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2015-01-09 18:33     ` Rob Herring
2015-01-09 18:33       ` Rob Herring
2015-01-12  8:32       ` Jacek Anaszewski
2015-01-12 13:52         ` Rob Herring
2015-01-12 16:10           ` Jacek Anaszewski
2015-01-12 16:55             ` Rob Herring
2015-01-12 17:06               ` Mark Brown
2015-01-15 12:33                 ` Sylwester Nawrocki
2015-01-15 14:37                   ` Rob Herring [this message]
2015-01-15 21:03                   ` Pavel Machek
2015-01-16 10:17                     ` Sylwester Nawrocki
2015-01-16 10:17                       ` Sylwester Nawrocki
     [not found]               ` <CAL_JsqKpJtUG0G6g1GOuSVpc31oe-dp3qdrKJUE0upG-xRDFhA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-13  8:42                 ` Jacek Anaszewski
2015-01-13  8:42                   ` Jacek Anaszewski
2015-01-15 14:24                   ` Rob Herring
2015-01-15 15:53                     ` Mark Brown
2015-01-16  9:07                     ` Jacek Anaszewski
2015-01-16 13:48                       ` Rob Herring
     [not found]                         ` <CAL_Jsq+EFWzs1HP1tVt6P=p=HZn2AtSPjp55YrmMQi_mE+kNfQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-16 15:52                           ` Jacek Anaszewski
2015-01-16 15:52                             ` Jacek Anaszewski
2015-01-20 16:09                             ` Jacek Anaszewski
2015-01-20 17:29                               ` Rob Herring
2015-01-20 17:40                                 ` Pavel Machek
2015-01-21  9:39                                   ` Jacek Anaszewski
2015-01-28  7:04                                     ` Sakari Ailus
2015-01-09 15:22 ` [PATCH/RFC v10 04/19] dt-binding: mfd: max77693: Add DT binding related macros Jacek Anaszewski
2015-01-09 17:43   ` Pavel Machek
2015-01-20 11:12   ` Lee Jones
2015-01-20 12:53     ` Jacek Anaszewski
2015-01-28  8:52       ` Sakari Ailus
2015-01-09 15:22 ` [PATCH/RFC v10 05/19] mfd: max77693: Modify flash cell name identifiers Jacek Anaszewski
2015-01-09 17:53   ` Pavel Machek
     [not found]   ` <1420816989-1808-6-git-send-email-j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2015-01-20 11:13     ` Lee Jones
2015-01-20 11:13       ` Lee Jones
2015-01-20 12:57       ` Jacek Anaszewski
2015-01-20 12:57         ` Jacek Anaszewski
2015-01-20 15:41         ` Lee Jones
2015-01-09 15:22 ` [PATCH/RFC v10 06/19] mfd: max77693: modifications around max77693_led_platform_data Jacek Anaszewski
2015-01-09 17:56   ` Pavel Machek
     [not found]   ` <1420816989-1808-7-git-send-email-j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2015-01-20 11:15     ` Lee Jones
2015-01-20 11:15       ` Lee Jones
2015-01-09 15:22 ` [PATCH/RFC v10 07/19] mfd: max77693: Adjust FLASH_EN_SHIFT and TORCH_EN_SHIFT macros Jacek Anaszewski
2015-01-09 17:59   ` Pavel Machek
2015-01-20 11:17   ` Lee Jones
2015-01-20 13:01     ` Jacek Anaszewski
2015-01-20 14:11       ` Jacek Anaszewski
2015-01-20 15:40         ` Lee Jones
2015-01-20 16:00           ` Pavel Machek
2015-01-20 16:41             ` Lee Jones
2015-01-09 15:22 ` [PATCH/RFC v10 08/19] leds: Add support for max77693 mfd flash cell Jacek Anaszewski
     [not found]   ` <1420816989-1808-9-git-send-email-j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2015-01-09 18:46     ` Pavel Machek
2015-01-09 18:46       ` Pavel Machek
2015-01-12  8:52       ` Jacek Anaszewski
2015-01-12 13:25         ` Pavel Machek
2015-01-12 13:46           ` Jacek Anaszewski
2015-02-05 15:34     ` Sakari Ailus
2015-02-05 15:34       ` Sakari Ailus
2015-02-05 16:26       ` Jacek Anaszewski
2015-01-09 15:22 ` [PATCH/RFC v10 09/19] DT: Add documentation for the mfd Maxim max77693 Jacek Anaszewski
2015-01-09 17:52   ` Pavel Machek
2015-01-20 11:21   ` Lee Jones
2015-01-20 14:36     ` Jacek Anaszewski
     [not found]       ` <54BE67EA.2070507-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2015-01-20 15:38         ` Lee Jones
2015-01-20 15:38           ` Lee Jones
     [not found] ` <1420816989-1808-1-git-send-email-j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2015-01-09 15:23   ` [PATCH/RFC v10 10/19] leds: Add driver for AAT1290 current regulator Jacek Anaszewski
2015-01-09 15:23     ` Jacek Anaszewski
     [not found]     ` <1420816989-1808-11-git-send-email-j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2015-01-09 18:57       ` Pavel Machek
2015-01-09 18:57         ` Pavel Machek
2015-01-09 15:23 ` [PATCH/RFC v10 11/19] of: Add Skyworks Solutions, Inc. vendor prefix Jacek Anaszewski
     [not found]   ` <1420816989-1808-12-git-send-email-j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2015-01-09 18:57     ` Pavel Machek
2015-01-09 18:57       ` Pavel Machek
2015-01-09 15:23 ` [PATCH/RFC v10 12/19] DT: Add documentation for the Skyworks AAT1290 Jacek Anaszewski
2015-01-09 18:58   ` Pavel Machek
2015-01-09 15:23 ` [PATCH/RFC v10 13/19] exynos4-is: Add support for v4l2-flash subdevs Jacek Anaszewski
2015-01-09 19:06   ` Pavel Machek
2015-01-09 15:23 ` [PATCH/RFC v10 14/19] v4l2-ctrls: Add V4L2_CID_FLASH_SYNC_STROBE control Jacek Anaszewski
     [not found]   ` <1420816989-1808-15-git-send-email-j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2015-01-09 19:06     ` Pavel Machek
2015-01-09 19:06       ` Pavel Machek
2015-02-05 16:36   ` Sakari Ailus
2015-01-09 15:23 ` [PATCH/RFC v10 15/19] media: Add registration helpers for V4L2 flash sub-devices Jacek Anaszewski
2015-01-09 20:54   ` Pavel Machek
2015-01-12  9:46     ` Jacek Anaszewski
2015-01-12  9:46       ` Jacek Anaszewski
2015-01-12 13:27       ` Pavel Machek
2015-02-05 17:59   ` Sakari Ailus
2015-02-09 11:15     ` Jacek Anaszewski
2015-01-09 15:23 ` [PATCH/RFC v10 16/19] Documentation: leds: Add description of v4l2-flash sub-device Jacek Anaszewski
2015-01-09 20:57   ` Pavel Machek
2015-01-09 15:23 ` [PATCH/RFC v10 17/19] DT: Add documentation for exynos4-is 'flashes' property Jacek Anaszewski
2015-01-09 20:57   ` Pavel Machek
2015-01-21 16:32   ` Sylwester Nawrocki
2015-01-22  8:47     ` Jacek Anaszewski
2015-01-09 15:23 ` [PATCH/RFC v10 18/19] leds: max77693: add support for V4L2 Flash sub-device Jacek Anaszewski
2015-01-09 20:59   ` Pavel Machek
2015-01-09 15:23 ` [PATCH/RFC v10 19/19] leds: aat1290: " Jacek Anaszewski
     [not found]   ` <1420816989-1808-20-git-send-email-j.anaszewski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2015-01-09 20:59     ` Pavel Machek
2015-01-09 20:59       ` 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='CAL_JsqLqRn1QG6dG5Ea6231SNzrV=Q9K=uRqjziM9sDdA3+31g@mail.gmail.com' \
    --to=robherring2@gmail.com \
    --cc=b.zolnierkie@samsung.com \
    --cc=broonie@kernel.org \
    --cc=cooloney@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=galak@codeaurora.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=j.anaszewski@samsung.com \
    --cc=kyungmin.park@samsung.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=pavel@ucw.cz \
    --cc=pawel.moll@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=rpurdie@rpsys.net \
    --cc=s.nawrocki@samsung.com \
    --cc=sakari.ailus@iki.fi \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.