* [PATCH v5 0/2] media: i2c: imx412: power on timing adjust
@ 2026-01-21 9:12 Wenmeng Liu
2026-01-21 9:12 ` [PATCH v5 1/2] media: i2c: imx412: Assert reset GPIO during probe Wenmeng Liu
2026-01-21 9:12 ` [PATCH v5 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-21 9:12 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 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 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
---
base-commit: 053966c344dbd346e71305f530e91ea77916189f
change-id: 20260119-imx412-d6710b9fd3c6
Best regards,
--
Wenmeng <wenmeng.liu@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v5 1/2] media: i2c: imx412: Assert reset GPIO during probe
2026-01-21 9:12 [PATCH v5 0/2] media: i2c: imx412: power on timing adjust Wenmeng Liu
@ 2026-01-21 9:12 ` Wenmeng Liu
2026-01-21 9:12 ` [PATCH v5 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-21 9:12 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 v5 2/2] media: i2c: imx412: Extend the power-on waiting time
2026-01-21 9:12 [PATCH v5 0/2] media: i2c: imx412: power on timing adjust Wenmeng Liu
2026-01-21 9:12 ` [PATCH v5 1/2] media: i2c: imx412: Assert reset GPIO during probe Wenmeng Liu
@ 2026-01-21 9:12 ` Wenmeng Liu
2026-01-21 9:54 ` Sakari Ailus
1 sibling, 1 reply; 5+ messages in thread
From: Wenmeng Liu @ 2026-01-21 9:12 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 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/media/i2c/imx412.c b/drivers/media/i2c/imx412.c
index aa63dfc349181bf9c180ffd566b0317d05b410c1..b1c201b4c7d008aa70ac84205e4de119e776047b 100644
--- a/drivers/media/i2c/imx412.c
+++ b/drivers/media/i2c/imx412.c
@@ -1037,7 +1037,7 @@ static int imx412_power_on(struct device *dev)
goto error_reset;
}
- usleep_range(1000, 1200);
+ usleep_range(10000, 12000);
return 0;
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v5 2/2] media: i2c: imx412: Extend the power-on waiting time
2026-01-21 9:12 ` [PATCH v5 2/2] media: i2c: imx412: Extend the power-on waiting time Wenmeng Liu
@ 2026-01-21 9:54 ` Sakari Ailus
2026-01-21 10:07 ` Wenmeng Liu
0 siblings, 1 reply; 5+ messages in thread
From: Sakari Ailus @ 2026-01-21 9:54 UTC (permalink / raw)
To: Wenmeng Liu; +Cc: Mauro Carvalho Chehab, linux-media, linux-kernel
Hi Wenmeng,
On Wed, Jan 21, 2026 at 05:12:15PM +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 | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/media/i2c/imx412.c b/drivers/media/i2c/imx412.c
> index aa63dfc349181bf9c180ffd566b0317d05b410c1..b1c201b4c7d008aa70ac84205e4de119e776047b 100644
> --- a/drivers/media/i2c/imx412.c
> +++ b/drivers/media/i2c/imx412.c
> @@ -1037,7 +1037,7 @@ static int imx412_power_on(struct device *dev)
> goto error_reset;
> }
>
Could you please add the comment why this was being done? It's not enough
to have this in the commit message.
> - usleep_range(1000, 1200);
> + usleep_range(10000, 12000);
>
> return 0;
>
>
--
Regards,
Sakari Ailus
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v5 2/2] media: i2c: imx412: Extend the power-on waiting time
2026-01-21 9:54 ` Sakari Ailus
@ 2026-01-21 10:07 ` Wenmeng Liu
0 siblings, 0 replies; 5+ messages in thread
From: Wenmeng Liu @ 2026-01-21 10:07 UTC (permalink / raw)
To: Sakari Ailus; +Cc: Mauro Carvalho Chehab, linux-media, linux-kernel
Hi Sakari.
On 1/21/2026 5:54 PM, Sakari Ailus wrote:
> Hi Wenmeng,
>
> On Wed, Jan 21, 2026 at 05:12:15PM +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 | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/media/i2c/imx412.c b/drivers/media/i2c/imx412.c
>> index aa63dfc349181bf9c180ffd566b0317d05b410c1..b1c201b4c7d008aa70ac84205e4de119e776047b 100644
>> --- a/drivers/media/i2c/imx412.c
>> +++ b/drivers/media/i2c/imx412.c
>> @@ -1037,7 +1037,7 @@ static int imx412_power_on(struct device *dev)
>> goto error_reset;
>> }
>>
>
> Could you please add the comment why this was being done? It's not enough
> to have this in the commit message.
Sure, will do.
Thanks,
Wenmeng
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-01-21 10:07 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-21 9:12 [PATCH v5 0/2] media: i2c: imx412: power on timing adjust Wenmeng Liu
2026-01-21 9:12 ` [PATCH v5 1/2] media: i2c: imx412: Assert reset GPIO during probe Wenmeng Liu
2026-01-21 9:12 ` [PATCH v5 2/2] media: i2c: imx412: Extend the power-on waiting time Wenmeng Liu
2026-01-21 9:54 ` Sakari Ailus
2026-01-21 10:07 ` Wenmeng Liu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox