[PATCH] media: dw9714: Fix powerup sequence

Ricardo Ribalda posted 1 patch 3 days, 18 hours ago
drivers/media/i2c/dw9714.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] media: dw9714: Fix powerup sequence
Posted by Ricardo Ribalda 3 days, 18 hours ago
We have experienced seen multiple I2C errors while doing stress test on
the module:

dw9714 i2c-PRP0001:01: dw9714_vcm_resume I2C failure: -5
dw9714 i2c-PRP0001:01: I2C write fail

Inspecting the powerup sequence we found that it does not match the
documentation at:
https://blog.arducam.com/downloads/DW9714A-DONGWOON(Autofocus_motor_manual).pdf

"""
(2) DW9714A requires waiting time of 12ms after power on. During this
waiting time, the offset calibration of internal amplifier is
operating for minimization of output offset current .
"""

This patch increases the powerup delay to follow the documentation.

Fixes: 9d00ccabfbb5 ("media: i2c: dw9714: Fix occasional probe errors")
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
---
 drivers/media/i2c/dw9714.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/i2c/dw9714.c b/drivers/media/i2c/dw9714.c
index 1e7ad355a388cfc37253bd764ec8df98f59beeea..3288de539452ebae41daa0988b2d52f27a790da7 100644
--- a/drivers/media/i2c/dw9714.c
+++ b/drivers/media/i2c/dw9714.c
@@ -149,7 +149,7 @@ static int dw9714_power_up(struct dw9714_device *dw9714_dev)
 
 	gpiod_set_value_cansleep(dw9714_dev->powerdown_gpio, 0);
 
-	usleep_range(1000, 2000);
+	usleep_range(12000, 14000);
 
 	return 0;
 }

---
base-commit: f7231cff1f3ff8259bef02dc4999bc132abf29cf
change-id: 20251210-dw9174-timing-9e58903399c9

Best regards,
-- 
Ricardo Ribalda <ribalda@chromium.org>
Re: [PATCH] media: dw9714: Fix powerup sequence
Posted by johannes.goede@oss.qualcomm.com 3 days, 18 hours ago
Hi,

On 10-Dec-25 8:53 AM, Ricardo Ribalda wrote:
> We have experienced seen multiple I2C errors while doing stress test on
> the module:
> 
> dw9714 i2c-PRP0001:01: dw9714_vcm_resume I2C failure: -5
> dw9714 i2c-PRP0001:01: I2C write fail
> 
> Inspecting the powerup sequence we found that it does not match the
> documentation at:
> https://blog.arducam.com/downloads/DW9714A-DONGWOON(Autofocus_motor_manual).pdf
> 
> """
> (2) DW9714A requires waiting time of 12ms after power on. During this
> waiting time, the offset calibration of internal amplifier is
> operating for minimization of output offset current .
> """
> 
> This patch increases the powerup delay to follow the documentation.
> 
> Fixes: 9d00ccabfbb5 ("media: i2c: dw9714: Fix occasional probe errors")
> Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>

Thanks, patch looks good to me:

Reviewed-by: Hans de Goede <johannes.goede@oss.qualcomm.com>

Regards,

Hans




> ---
>  drivers/media/i2c/dw9714.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/media/i2c/dw9714.c b/drivers/media/i2c/dw9714.c
> index 1e7ad355a388cfc37253bd764ec8df98f59beeea..3288de539452ebae41daa0988b2d52f27a790da7 100644
> --- a/drivers/media/i2c/dw9714.c
> +++ b/drivers/media/i2c/dw9714.c
> @@ -149,7 +149,7 @@ static int dw9714_power_up(struct dw9714_device *dw9714_dev)
>  
>  	gpiod_set_value_cansleep(dw9714_dev->powerdown_gpio, 0);
>  
> -	usleep_range(1000, 2000);
> +	usleep_range(12000, 14000);
>  
>  	return 0;
>  }
> 
> ---
> base-commit: f7231cff1f3ff8259bef02dc4999bc132abf29cf
> change-id: 20251210-dw9174-timing-9e58903399c9
> 
> Best regards,