diff mbox

[v2] media: i2c: lm3560: use conservative defaults

Message ID 20180716090814.GA4505@amd (mailing list archive)
State New, archived
Headers show

Commit Message

Pavel Machek July 16, 2018, 9:08 a.m. UTC
If no pdata is found, we should use lowest current settings, not highest.

Signed-off-by: Pavel Machek <pavel@ucw.cz>

---

v2: I got notification from patchwork that patch no longer applies, so
I'm rediffing the patch.

Comments

Daniel Jeong Aug. 11, 2018, 6:10 a.m. UTC | #1
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 <pavel@ucw.cz>
>
> ---
>
> 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;
>
>
>
Andy Shevchenko Aug. 11, 2018, 9:44 a.m. UTC | #2
On Sat, Aug 11, 2018 at 9:10 AM, Daniel Jeong <gshark.jeong@gmail.com> 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?
diff mbox

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;