From: Jacek Anaszewski <jacek.anaszewski@gmail.com>
To: Dan Murphy <dmurphy@ti.com>, Pavel Machek <pavel@ucw.cz>
Cc: robh+dt@kernel.org, mark.rutland@arm.com, afd@ti.com,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-leds@vger.kernel.org
Subject: Re: [PATCH v5 1/2] dt: bindings: lm3601x: Introduce the lm3601x driver
Date: Fri, 11 May 2018 22:27:49 +0200 [thread overview]
Message-ID: <2dd155f5-ce82-88b2-699e-897ef7d55fee@gmail.com> (raw)
In-Reply-To: <10ab412f-7206-2a01-9876-2a8beeec2287@ti.com>
Dan,
On 05/11/2018 02:12 PM, Dan Murphy wrote:
> Jacek
>
> Thanks for the review
>
> On 05/10/2018 03:17 PM, Jacek Anaszewski wrote:
>> Hi Dan,
>>
>> On 05/10/2018 09:10 PM, Dan Murphy wrote:
>>> On 05/10/2018 02:06 PM, Dan Murphy wrote:
>>>> Pavel
>>>>
>>>> On 05/10/2018 01:54 PM, Pavel Machek wrote:
>>>>> Hi!
>>>>>
>>>>>> Introduce the device tree bindings for the lm3601x
>>>>>> family of LED torch, flash and IR drivers.
>>>>>>
>>>>>> Signed-off-by: Dan Murphy <dmurphy@ti.com>
>>>>>
>>>>> Better, thanks.
>>>>>> +++ b/Documentation/devicetree/bindings/leds/leds-lm3601x.txt
>>>>>> @@ -0,0 +1,50 @@
>>>>>> +* Texas Instruments - lm3601x Single-LED Flash Driver
>>>>>
>>>>> Ok, so is it single-LED driver, or can it driver ir & white LEDs at
>>>>> the same time?
>>>>
>>>> It is a single LED driver. It can drive a Torch white LED or IR LED indefinitely or if the driver
>>>> is programmed to strobe mode the driver will drive the configured LED for the flash timeout specified.
>>>>
>>>> Basically a flash and a flash light. IR or White LED.
>>>>
>>>>
>>>>>
>>>>>> +Example:
>>>>>> +led-controller@64 {
>>>>>> + compatible = "ti,lm36010";
>>>>>> + #address-cells = <1>;
>>>>>> + #size-cells = <0>;
>>>>>> + reg = <0x64>;
>>>>>> +
>>>>>> + led@0 {
>>>>>> + reg = <0>;
>>>>>> + label = "white:torch";
>>>>>> + led-max-microamp = <10000>;
>>>>>> + };
>>>>>> +
>>>>>> + led@1 {
>>>>>> + reg = <1>;
>>>>>> + label = "white:flash";
>>>>>> + flash-max-microamp = <10000>;
>>>>>> + flash-max-timeout-us = <800>;
>>>>>> + };
>>>>>
>>>>> Is this realistic config? I'd expect flash to use more power than
>>>>> torch, and would expect longer timeout than 0.8msec.
>>>>
>>>> Timeout in the spreadsheet is ms I will update this example and code
>>>> Current in the spreadsheet is mA I will update this example and code
>>>>
>>>>>
>>>>> Also.. if this is physically one white LED, it should not be
>>>>> spread over reg = <0> and reg = <1>...
>>>>
>>>> If the torch LED and strobe LED are the same LED how do I expose them both to the user.
>>>> It is up to consumer to configure the required interfaces they want to expose to the filesystem.
>>
>> LED flash class interface is prepared for it.
>> led_clasdev_flash_register() internally calls led_classdev_register(),
>> so there is brightness file available for torch related operations.
>
> Yes the flash class may handle this and expose the brightness node but the HW has two different registers to set the
> corresponding brightness so one set brightness node does not work.
> There is no way to differentiate between the strobe brightness (register 4) and the torch brightness (register 3).
Hmm? There is brightness file (with brightness_set{_blocking} op) from
LED class and flash_brightness file (with flash_brightness_set op) from
LED class flash.
I've only now realized that you're not using flash_brightness_set op for
the "strobe_node" in your driver. I assume that you overlooked it.
Please don't introduce "strobe_brightness" naming convention - we
already have "flash_brightness" for that.
> When the enable register is written the driver will read the corresponding register and set
> the current for the LED.
>
> This is why I separated out the strobe from the torch into 2 different LED nodes.
>
> I cannot seem to find the data sheet on line for the max77693 so I cannot verify that the device only has
> a single brightness register for both torch and strobe.
It wasn't openly available at least at the time when I had an access
to it.
But - please look at the functions max77693_set_torch_current() and
max77693_set_flash_current(). The device has separate registers
for torch and flash brightnesses.
>>>> Maybe they don't want the strobe feature and just want LED on/off and switch between IR and White.
>>>>
>>>> The IR is driven via a different output pin.
>>>
>>> Correction. There is only one LED drive pin. The mode selected determines how the device will drive the
>>> LED. So you may have one device to drive a Torch and another device to drive the LED.
>>
>> But only one type of LED can be soldered on the board at a time, right?
>> If yes, then this is clearly a DT related configuration, and only
>> one child DT node should be defined for given board.
>
> But see above. There is not a clean way to expose the torch/ir and strobe separately.
>
> Dan
>
>
>>
>>> Strobe is available in either case but not always required if strobe is not desired by the customer hence
>>> why I have a separate DT node for it.
>>>
>>> Dan
>>>
>>>>
>>>> Dan
>>>>
>>>>>
>>>>> Best regards,
>>>>> Pavel
>>>>>
>>>>
>>>>
>>>
>>>
>>
>
>
--
Best regards,
Jacek Anaszewski
next prev parent reply other threads:[~2018-05-11 20:27 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-10 17:47 [PATCH v5 1/2] dt: bindings: lm3601x: Introduce the lm3601x driver Dan Murphy
2018-05-10 17:47 ` [PATCH v5 2/2] leds: lm3601x: Introduce the lm3601x LED driver Dan Murphy
2018-05-10 20:48 ` Jacek Anaszewski
2018-05-11 11:56 ` Dan Murphy
2018-05-11 20:26 ` Jacek Anaszewski
2018-05-14 19:40 ` Dan Murphy
2018-05-14 19:49 ` Andy Shevchenko
2018-05-14 20:05 ` Pavel Machek
2018-05-14 20:13 ` Dan Murphy
2018-05-14 20:16 ` Pavel Machek
2018-05-14 20:31 ` Dan Murphy
2018-05-14 20:05 ` Jacek Anaszewski
2018-05-14 20:09 ` Dan Murphy
2018-05-10 18:54 ` [PATCH v5 1/2] dt: bindings: lm3601x: Introduce the lm3601x driver Pavel Machek
2018-05-10 19:06 ` Dan Murphy
2018-05-10 19:10 ` Dan Murphy
2018-05-10 20:17 ` Jacek Anaszewski
2018-05-11 12:12 ` Dan Murphy
2018-05-11 20:27 ` Jacek Anaszewski [this message]
2018-05-14 20:07 ` Dan Murphy
2018-05-14 20:48 ` Jacek Anaszewski
2018-05-10 20:50 ` Jacek Anaszewski
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=2dd155f5-ce82-88b2-699e-897ef7d55fee@gmail.com \
--to=jacek.anaszewski@gmail.com \
--cc=afd@ti.com \
--cc=devicetree@vger.kernel.org \
--cc=dmurphy@ti.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=mark.rutland@arm.com \
--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).