public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 0/2] media: i2c: imx412: power on timing adjust
@ 2026-01-22  9:31 Wenmeng Liu
  2026-01-22  9:31 ` [PATCH v6 1/2] media: i2c: imx412: Assert reset GPIO during probe Wenmeng Liu
  2026-01-22  9:31 ` [PATCH v6 2/2] media: i2c: imx412: Extend the power-on waiting time Wenmeng Liu
  0 siblings, 2 replies; 5+ messages in thread
From: Wenmeng Liu @ 2026-01-22  9:31 UTC (permalink / raw)
  To: Sakari Ailus, Mauro Carvalho Chehab
  Cc: linux-media, linux-kernel, Wenmeng Liu

This series of patches mainly addresses two issues:
1. Fix potential timing issues that may occur during the first and second power on.
If the reset GPIO happens to default to the deasserted state at the very
first power-up, the previous sequence could let the sensor run before
supplies/clock are fully stable, while subsequent power cycles would
differ because the driver explicitly toggles reset. This results in
inconsistent power on sequences between the first and later power on.

2. The Arducam IMX577 sensor requires a longer reset time.

Changes in v6:
- Added comments for the modifications. -- Sakari
- Link to v5: https://lore.kernel.org/r/20260121-imx412-v5-0-be67654a4afe@oss.qualcomm.com

Changes in v5:
- Assert reset GPIO in imx412_parse_hw_config. -- Tarang
- Link to v4: https://lore.kernel.org/r/20260121-imx412-v4-0-f6bdf83f116b@oss.qualcomm.com

Changes in v4:
- Add assert reset in probe. -- Sakari
- Link to v3: https://lore.kernel.org/r/20260119-imx412-v3-0-8b46929af773@oss.qualcomm.com

Changes in v3:
- Fix power on timing. -- Bryan.
- Add reset delay time for Arducam Imx577.
- Link to v2: https://lore.kernel.org/all/20260109044913.3310-1-wenmeng.liu@oss.qualcomm.com/

Changes in v2:
- Move the 7.4–8 ms delay before mode-register programming to satisfy T7 (NVM read).
- Link to v1: https://lore.kernel.org/all/20251222-imx412-v1-1-51c7e724b376@oss.qualcomm.com/

---
Wenmeng Liu (2):
      media: i2c: imx412: Assert reset GPIO during probe
      media: i2c: imx412: Extend the power-on waiting time

 drivers/media/i2c/imx412.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
---
base-commit: e3b32dcb9f23e3c3927ef3eec6a5842a988fb574
change-id: 20260119-imx412-d6710b9fd3c6

Best regards,
-- 
Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v6 1/2] media: i2c: imx412: Assert reset GPIO during probe
  2026-01-22  9:31 [PATCH v6 0/2] media: i2c: imx412: power on timing adjust Wenmeng Liu
@ 2026-01-22  9:31 ` Wenmeng Liu
  2026-01-22  9:31 ` [PATCH v6 2/2] media: i2c: imx412: Extend the power-on waiting time Wenmeng Liu
  1 sibling, 0 replies; 5+ messages in thread
From: Wenmeng Liu @ 2026-01-22  9:31 UTC (permalink / raw)
  To: Sakari Ailus, Mauro Carvalho Chehab
  Cc: linux-media, linux-kernel, Wenmeng Liu

Assert the reset GPIO before first power up. This avoids a mismatch where
the first power up (when the reset GPIO defaults deasserted) differs from
subsequent cycles.

Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
---
 drivers/media/i2c/imx412.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/i2c/imx412.c b/drivers/media/i2c/imx412.c
index b3826f80354703b17b416dc233854da3f5736e38..aa63dfc349181bf9c180ffd566b0317d05b410c1 100644
--- a/drivers/media/i2c/imx412.c
+++ b/drivers/media/i2c/imx412.c
@@ -925,7 +925,7 @@ static int imx412_parse_hw_config(struct imx412 *imx412)
 
 	/* Request optional reset pin */
 	imx412->reset_gpio = devm_gpiod_get_optional(imx412->dev, "reset",
-						     GPIOD_OUT_LOW);
+						     GPIOD_OUT_HIGH);
 	if (IS_ERR(imx412->reset_gpio)) {
 		dev_err(imx412->dev, "failed to get reset gpio %pe\n",
 			imx412->reset_gpio);

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v6 2/2] media: i2c: imx412: Extend the power-on waiting time
  2026-01-22  9:31 [PATCH v6 0/2] media: i2c: imx412: power on timing adjust Wenmeng Liu
  2026-01-22  9:31 ` [PATCH v6 1/2] media: i2c: imx412: Assert reset GPIO during probe Wenmeng Liu
@ 2026-01-22  9:31 ` Wenmeng Liu
  2026-01-22 12:37   ` Sakari Ailus
  1 sibling, 1 reply; 5+ messages in thread
From: Wenmeng Liu @ 2026-01-22  9:31 UTC (permalink / raw)
  To: Sakari Ailus, Mauro Carvalho Chehab
  Cc: linux-media, linux-kernel, Wenmeng Liu

The Arducam IMX577 module requires a longer reset time than the 1000µs
configured in the current driver. Increase the wait time after power-on
to ensure proper initialization.

Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
---
 drivers/media/i2c/imx412.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/media/i2c/imx412.c b/drivers/media/i2c/imx412.c
index aa63dfc349181bf9c180ffd566b0317d05b410c1..9154c238949e4308755e757bd9c71f0b44f433ee 100644
--- a/drivers/media/i2c/imx412.c
+++ b/drivers/media/i2c/imx412.c
@@ -1037,7 +1037,11 @@ static int imx412_power_on(struct device *dev)
 		goto error_reset;
 	}
 
-	usleep_range(1000, 1200);
+	/*
+	 * Some IMX577 modules require a longer reset settle time.
+	 * Increasing the delay from 1ms to 10ms ensures reliable startup.
+	 */
+	usleep_range(10000, 12000);
 
 	return 0;
 

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v6 2/2] media: i2c: imx412: Extend the power-on waiting time
  2026-01-22  9:31 ` [PATCH v6 2/2] media: i2c: imx412: Extend the power-on waiting time Wenmeng Liu
@ 2026-01-22 12:37   ` Sakari Ailus
  2026-01-23  2:06     ` Wenmeng Liu
  0 siblings, 1 reply; 5+ messages in thread
From: Sakari Ailus @ 2026-01-22 12:37 UTC (permalink / raw)
  To: Wenmeng Liu; +Cc: Mauro Carvalho Chehab, linux-media, linux-kernel

Hi Wenmeng,

On Thu, Jan 22, 2026 at 05:31:19PM +0800, Wenmeng Liu wrote:
> The Arducam IMX577 module requires a longer reset time than the 1000µs
> configured in the current driver. Increase the wait time after power-on
> to ensure proper initialization.
> 
> Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
> ---
>  drivers/media/i2c/imx412.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/media/i2c/imx412.c b/drivers/media/i2c/imx412.c
> index aa63dfc349181bf9c180ffd566b0317d05b410c1..9154c238949e4308755e757bd9c71f0b44f433ee 100644
> --- a/drivers/media/i2c/imx412.c
> +++ b/drivers/media/i2c/imx412.c
> @@ -1037,7 +1037,11 @@ static int imx412_power_on(struct device *dev)
>  		goto error_reset;
>  	}
>  
> -	usleep_range(1000, 1200);
> +	/*
> +	 * Some IMX577 modules require a longer reset settle time.
> +	 * Increasing the delay from 1ms to 10ms ensures reliable startup.
> +	 */

This still doesn't mention the Arducam module. :-(

> +	usleep_range(10000, 12000);
>  
>  	return 0;
>  
> 

-- 
Regards,

Sakari Ailus

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v6 2/2] media: i2c: imx412: Extend the power-on waiting time
  2026-01-22 12:37   ` Sakari Ailus
@ 2026-01-23  2:06     ` Wenmeng Liu
  0 siblings, 0 replies; 5+ messages in thread
From: Wenmeng Liu @ 2026-01-23  2:06 UTC (permalink / raw)
  To: Sakari Ailus; +Cc: Mauro Carvalho Chehab, linux-media, linux-kernel

Hi Sakari,

On 1/22/2026 8:37 PM, Sakari Ailus wrote:
> Hi Wenmeng,
> 
> On Thu, Jan 22, 2026 at 05:31:19PM +0800, Wenmeng Liu wrote:
>> The Arducam IMX577 module requires a longer reset time than the 1000µs
>> configured in the current driver. Increase the wait time after power-on
>> to ensure proper initialization.
>>
>> Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
>> ---
>>   drivers/media/i2c/imx412.c | 6 +++++-
>>   1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/media/i2c/imx412.c b/drivers/media/i2c/imx412.c
>> index aa63dfc349181bf9c180ffd566b0317d05b410c1..9154c238949e4308755e757bd9c71f0b44f433ee 100644
>> --- a/drivers/media/i2c/imx412.c
>> +++ b/drivers/media/i2c/imx412.c
>> @@ -1037,7 +1037,11 @@ static int imx412_power_on(struct device *dev)
>>   		goto error_reset;
>>   	}
>>   
>> -	usleep_range(1000, 1200);
>> +	/*
>> +	 * Some IMX577 modules require a longer reset settle time.
>> +	 * Increasing the delay from 1ms to 10ms ensures reliable startup.
>> +	 */
> 
> This still doesn't mention the Arducam module. :-(

Sorry about this, will mention to...

Thanks,
Wenmeng

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-01-23  2:06 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-22  9:31 [PATCH v6 0/2] media: i2c: imx412: power on timing adjust Wenmeng Liu
2026-01-22  9:31 ` [PATCH v6 1/2] media: i2c: imx412: Assert reset GPIO during probe Wenmeng Liu
2026-01-22  9:31 ` [PATCH v6 2/2] media: i2c: imx412: Extend the power-on waiting time Wenmeng Liu
2026-01-22 12:37   ` Sakari Ailus
2026-01-23  2:06     ` Wenmeng Liu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox