media: i2c: ov5645: Fix power sequence
authorEzequiel Garcia <ezequiel@collabora.com>
Thu, 8 Aug 2019 11:05:40 +0000 (08:05 -0300)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Thu, 15 Aug 2019 11:08:07 +0000 (08:08 -0300)
commit092e8eb90a7dc7dd210cd4e2ea36075d0a7f96af
tree27ad070c007eeb404c162b9eeb693929c5a29371
parent7ef57be07ac146e70535747797ef4aee0f06e9f9
media: i2c: ov5645: Fix power sequence

This is mostly a port of Jacopo's fix:

  commit aa4bb8b8838ffcc776a79f49a4d7476b82405349
  Author: Jacopo Mondi <jacopo@jmondi.org>
  Date:   Fri Jul 6 05:51:52 2018 -0400

  media: ov5640: Re-work MIPI startup sequence

In the OV5645 case, the changes are:

- At set_power(1) time power up MIPI Tx/Rx and set data and clock lanes in
  LP11 during 'sleep' and 'idle' with MIPI clock in non-continuous mode.
- At set_power(0) time power down MIPI Tx/Rx (in addition to the current
  power down of regulators and clock gating).
- At s_stream time enable/disable the MIPI interface output.

With this commit the sensor is able to enter LP-11 mode during power up,
as expected by some CSI-2 controllers.

Many thanks to Fabio Estevam for his help debugging this issue.

Tested-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/i2c/ov5645.c