Re: [PATCH v6 2/2] leds: lm3601x: Introduce the lm3601x LED driver

From: Andy Shevchenko
Date: Tue May 15 2018 - 18:27:20 EST


On Wed, May 16, 2018 at 1:24 AM, Andy Shevchenko
<andy.shevchenko@xxxxxxxxx> wrote:
> On Wed, May 16, 2018 at 1:08 AM, Dan Murphy <dmurphy@xxxxxx> wrote:
>> On 05/15/2018 04:56 PM, Andy Shevchenko wrote:

>>>> +static const struct lm3601x_max_timeouts strobe_timeouts[] = {
>>>> + { 40000, 0x00 },
>>>> + { 80000, 0x01 },
>>>> + { 120000, 0x02 },
>>>> + { 160000, 0x03 },
>>>> + { 200000, 0x04 },
>>>> + { 240000, 0x05 },
>>>> + { 280000, 0x06 },
>>>> + { 320000, 0x07 },
>>>> + { 360000, 0x08 },
>>>> + { 400000, 0x09 },
>>>> + { 600000, 0x0a },
>>>> + { 800000, 0x0b },
>>>> + { 1000000, 0x0c },
>>>> + { 1200000, 0x0d },
>>>> + { 1400000, 0x0e },
>>>> + { 1600000, 0x0f },

>>> strobe_timeout = (x + 1) * 40 * MSECS_IN_SEC;
>>
>> Not sure what equation you are trying to point out here. But if you are trying to apply
>> a timeout step you cannot do this with this part. As pointed out in the DT doc the timeout
>> step is not linear.
>
> Yeah, I know people are more than often too lazy to think.
>
> if (x < 9)
> strobe_timeout = (x + 1) * 40 * MSECS_IN_SEC;
> else
> strobe_timeout = (400 + (x - 9) * 200) * MSECS_IN_SEC;

Even just (x - 7) * 200 * ...

--
With Best Regards,
Andy Shevchenko