mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 22:21:42 +00:00
media: ov2740: Ensure proper reset sequence on probe()
Before this commit on probe() the driver would do: reset=1 // from probe() calling gpiod_get(GPIOD_OUT_HIGH) reset=0 // from resume() msleep(20) // from resume() So if reset was 0 before getting the GPIO the reset line would only be driven high for a very short time and sometimes there would be errors reading the id register afterwards. Add a msleep(20) after getting the reset line to ensure the sensor is properly reset: reset=1 // from probe() calling gpiod_get(GPIOD_OUT_HIGH) msleep(20) // from probe() reset=0 // from resume() msleep(20) // from resume() Signed-off-by: Hans de Goede <hdegoede@redhat.com> Tested-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
This commit is contained in:
parent
4ff61c4ce9
commit
6983352784
@ -1333,9 +1333,16 @@ static int ov2740_probe(struct i2c_client *client)
|
|||||||
return dev_err_probe(dev, ret, "failed to check HW configuration\n");
|
return dev_err_probe(dev, ret, "failed to check HW configuration\n");
|
||||||
|
|
||||||
ov2740->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH);
|
ov2740->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH);
|
||||||
if (IS_ERR(ov2740->reset_gpio))
|
if (IS_ERR(ov2740->reset_gpio)) {
|
||||||
return dev_err_probe(dev, PTR_ERR(ov2740->reset_gpio),
|
return dev_err_probe(dev, PTR_ERR(ov2740->reset_gpio),
|
||||||
"failed to get reset GPIO\n");
|
"failed to get reset GPIO\n");
|
||||||
|
} else if (ov2740->reset_gpio) {
|
||||||
|
/*
|
||||||
|
* Ensure reset is asserted for at least 20 ms before
|
||||||
|
* ov2740_resume() deasserts it.
|
||||||
|
*/
|
||||||
|
msleep(20);
|
||||||
|
}
|
||||||
|
|
||||||
ov2740->clk = devm_clk_get_optional(dev, "clk");
|
ov2740->clk = devm_clk_get_optional(dev, "clk");
|
||||||
if (IS_ERR(ov2740->clk))
|
if (IS_ERR(ov2740->clk))
|
||||||
|
Loading…
Reference in New Issue
Block a user