If no pdata is found, we should use lowest current settings, not highest.
Signed-off-by: Pavel Machek <[email protected]>
diff --git a/drivers/media/i2c/lm3560.c b/drivers/media/i2c/lm3560.c
index b600e03a..c4e5ed5 100644
--- a/drivers/media/i2c/lm3560.c
+++ b/drivers/media/i2c/lm3560.c
@@ -420,14 +434,14 @@ static int lm3560_probe(struct i2c_client *client,
pdata = devm_kzalloc(&client->dev, sizeof(*pdata), GFP_KERNEL);
if (pdata == NULL)
return -ENODEV;
- pdata->peak = LM3560_PEAK_3600mA;
- pdata->max_flash_timeout = LM3560_FLASH_TOUT_MAX;
+ pdata->peak = LM3560_PEAK_1600mA;
+ pdata->max_flash_timeout = LM3560_FLASH_TOUT_MIN;
/* led 1 */
- pdata->max_flash_brt[LM3560_LED0] = LM3560_FLASH_BRT_MAX;
- pdata->max_torch_brt[LM3560_LED0] = LM3560_TORCH_BRT_MAX;
+ pdata->max_flash_brt[LM3560_LED0] = LM3560_FLASH_BRT_MIN;
+ pdata->max_torch_brt[LM3560_LED0] = LM3560_TORCH_BRT_MIN;
/* led 2 */
- pdata->max_flash_brt[LM3560_LED1] = LM3560_FLASH_BRT_MAX;
- pdata->max_torch_brt[LM3560_LED1] = LM3560_TORCH_BRT_MAX;
+ pdata->max_flash_brt[LM3560_LED1] = LM3560_FLASH_BRT_MIN;
+ pdata->max_torch_brt[LM3560_LED1] = LM3560_TORCH_BRT_MIN;
}
flash->pdata = pdata;
flash->dev = &client->dev;
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
If no pdata is found, we should use lowest current settings, not highest.
Signed-off-by: Pavel Machek <[email protected]>
---
v2: I got notification from patchwork that patch no longer applies, so
I'm rediffing the patch.
diff --git a/drivers/media/i2c/lm3560.c b/drivers/media/i2c/lm3560.c
index b600e03a..c4e5ed5 100644
--- a/drivers/media/i2c/lm3560.c
+++ b/drivers/media/i2c/lm3560.c
@@ -420,14 +434,14 @@ static int lm3560_probe(struct i2c_client *client,
pdata = devm_kzalloc(&client->dev, sizeof(*pdata), GFP_KERNEL);
if (pdata == NULL)
return -ENODEV;
- pdata->peak = LM3560_PEAK_3600mA;
- pdata->max_flash_timeout = LM3560_FLASH_TOUT_MAX;
+ pdata->peak = LM3560_PEAK_1600mA;
+ pdata->max_flash_timeout = LM3560_FLASH_TOUT_MIN;
/* led 1 */
- pdata->max_flash_brt[LM3560_LED0] = LM3560_FLASH_BRT_MAX;
- pdata->max_torch_brt[LM3560_LED0] = LM3560_TORCH_BRT_MAX;
+ pdata->max_flash_brt[LM3560_LED0] = LM3560_FLASH_BRT_MIN;
+ pdata->max_torch_brt[LM3560_LED0] = LM3560_TORCH_BRT_MIN;
/* led 2 */
- pdata->max_flash_brt[LM3560_LED1] = LM3560_FLASH_BRT_MAX;
- pdata->max_torch_brt[LM3560_LED1] = LM3560_TORCH_BRT_MAX;
+ pdata->max_flash_brt[LM3560_LED1] = LM3560_FLASH_BRT_MIN;
+ pdata->max_torch_brt[LM3560_LED1] = LM3560_TORCH_BRT_MIN;
}
flash->pdata = pdata;
flash->dev = &client->dev;
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Hi Pavel,
I think if there is not exist pdata, it should be set to the value of power on reset (POR) to sync with the chip.
According to the LM3560 datasheet, Flash Timeout is 512ms, Flash current is 875mA and Torch Current is 93.75mA.
Daniel Jeong.
On 07/016/2018 18:08 PM, Pavel Machek wrote:
> If no pdata is found, we should use lowest current settings, not highest.
>
> Signed-off-by: Pavel Machek <[email protected]>
>
> ---
>
> v2: I got notification from patchwork that patch no longer applies, so
> I'm rediffing the patch.
>
> diff --git a/drivers/media/i2c/lm3560.c b/drivers/media/i2c/lm3560.c
> index b600e03a..c4e5ed5 100644
> --- a/drivers/media/i2c/lm3560.c
> +++ b/drivers/media/i2c/lm3560.c
> @@ -420,14 +434,14 @@ static int lm3560_probe(struct i2c_client *client,
> pdata = devm_kzalloc(&client->dev, sizeof(*pdata), GFP_KERNEL);
> if (pdata == NULL)
> return -ENODEV;
> - pdata->peak = LM3560_PEAK_3600mA;
> - pdata->max_flash_timeout = LM3560_FLASH_TOUT_MAX;
> + pdata->peak = LM3560_PEAK_1600mA;
> + pdata->max_flash_timeout = LM3560_FLASH_TOUT_MIN;
> /* led 1 */
> - pdata->max_flash_brt[LM3560_LED0] = LM3560_FLASH_BRT_MAX;
> - pdata->max_torch_brt[LM3560_LED0] = LM3560_TORCH_BRT_MAX;
> + pdata->max_flash_brt[LM3560_LED0] = LM3560_FLASH_BRT_MIN;
> + pdata->max_torch_brt[LM3560_LED0] = LM3560_TORCH_BRT_MIN;
> /* led 2 */
> - pdata->max_flash_brt[LM3560_LED1] = LM3560_FLASH_BRT_MAX;
> - pdata->max_torch_brt[LM3560_LED1] = LM3560_TORCH_BRT_MAX;
> + pdata->max_flash_brt[LM3560_LED1] = LM3560_FLASH_BRT_MIN;
> + pdata->max_torch_brt[LM3560_LED1] = LM3560_TORCH_BRT_MIN;
> }
> flash->pdata = pdata;
> flash->dev = &client->dev;
>
>
>
On Sat, Aug 11, 2018 at 9:10 AM, Daniel Jeong <[email protected]> wrote:
> Hi Pavel,
>
> I think if there is not exist pdata, it should be set to the value of power
> on reset (POR) to sync with the chip.
>
> According to the LM3560 datasheet, Flash Timeout is 512ms, Flash current is
> 875mA and Torch Current is 93.75mA.
Can't we simple read back?
--
With Best Regards,
Andy Shevchenko