media: i2c: rdacm21: Add delay after OV490 reset
authorJacopo Mondi <jacopo+renesas@jmondi.org>
Wed, 16 Jun 2021 12:46:09 +0000 (14:46 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 17 Jun 2021 09:30:38 +0000 (11:30 +0200)
Add a delay after the OV490 chip is put in reset state. The reset
signal shall be held low for at least 250 useconds.

Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/i2c/rdacm21.c

index 67ed1e5..336fd5d 100644 (file)
@@ -469,7 +469,10 @@ static int rdacm21_initialize(struct rdacm21_device *dev)
        if (ret)
                return ret;
 
        if (ret)
                return ret;
 
-       /* Enable GPIO1 and hold OV490 in reset during max9271 configuration. */
+       /*
+        * Enable GPIO1 and hold OV490 in reset during max9271 configuration.
+        * The reset signal has to be asserted for at least 250 useconds.
+        */
        ret = max9271_enable_gpios(&dev->serializer, MAX9271_GPIO1OUT);
        if (ret)
                return ret;
        ret = max9271_enable_gpios(&dev->serializer, MAX9271_GPIO1OUT);
        if (ret)
                return ret;
@@ -477,6 +480,7 @@ static int rdacm21_initialize(struct rdacm21_device *dev)
        ret = max9271_clear_gpios(&dev->serializer, MAX9271_GPIO1OUT);
        if (ret)
                return ret;
        ret = max9271_clear_gpios(&dev->serializer, MAX9271_GPIO1OUT);
        if (ret)
                return ret;
+       usleep_range(250, 500);
 
        ret = max9271_configure_gmsl_link(&dev->serializer);
        if (ret)
 
        ret = max9271_configure_gmsl_link(&dev->serializer);
        if (ret)