Hi Ondřej,
On Fri, 28 Aug 2026 20:16:30 +0200, Ondřej Jirman wrote:
>> @@ -1128,6 +1130,18 @@ static int imx258_power_on(struct device *dev)
>> if (ret) {
>> dev_err(dev, "failed to enable clock\n");
>> regulator_bulk_disable(IMX258_NUM_SUPPLIES, imx258->supplies);
>> + return ret;
>> + }
>> +
>> + if (imx258->reset_gpio) {
>> + ret = gpiod_set_value_cansleep(imx258->reset_gpio, 0);
>> + if (ret) {
>> + dev_err(dev, "failed to deassert reset\n");
>> + clk_disable_unprepare(imx258->clk);
>> + regulator_bulk_disable(IMX258_NUM_SUPPLIES,
>> imx258->supplies);
>> + return ret;
>> + }
>> + usleep_range(400, 500);
>> }
>
> There are two times given in the datasheet. min 400 us between reset deassert
> and ID register read over CCI. And minimum time between deassert and stream
> start, which is 12ms.
>
> https://xff.cz/dl/tmp/b8efc244280a2b35.png
>
> https://xff.cz/dl/tmp/ed9b967a140bd347.png
>
> I wonder if this driver satisfied the second constraint. That may perhaps
> depend
> on how userspace uses it.
Thanks for datasheet timings. There is an existing software reset and 12ms wait
call
inside imx258_start_streaming function. It should satisfy stream start.
Please correct me if I am wrong.
--
Best Regards,
Muzaffer Kadir