Hi!
This series introduces i2c communication with the imx290 sensor during
probe s.t. the v4l2 subdev is not initialized when the chip is not
reachable.
The datasheets show that INCKSEL* registers have a different default
value after reset on imx290[1] and imx327[2], however I am not sure if
this is a sufficient identification option - therefore I just removed
the current CHIP_ID register for now.
Thank you all for the feedback and the discussion, I updated the series
to remove the trial and errors and reduced it to the suggested parts.
thanks & regards
Benjamin
[1] https://static6.arrow.com/aropdfconversion/c0c7efde6571c768020a72f59b226308b9669e45/sony_imx290lqr-c_datasheet.pdf
[2] https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/138/IMX327LQR_2D00_C_5F00_TechnicalDatasheet_5F00_E_5F00_Rev0.2.pdf
---
Changes in v4:
- old 1/7 is dropped due to the reuse of stop_streaming()
- old 2+4/7 are dropped due to forcing the subdev into an invalid state
- old 3/7 -> new 1/3: unchanged
- old 5/7 -> new 2/3: only uses the runtime PM to avoid communication
- old 6/7 -> new 3/3: uses stop_streaming() to prepare the sensor. This
function returns the return value of the cci_write() and is probably
more suitable than only setting the sensor to standby.
- old 7/7 is dropped, as the regulator enable detection is not really
suitable for the "flashing privacy LED" avoidance.
- Link to v3: https://lore.kernel.org/r/20240902-imx290-avail-v3-0-b32a12799fed@skidata.com
Changes in v3:
- probably better readable in the overview
- 1/2 -> 1+6/7
- 2/2 -> 3/7 (added R-b - thx for that)
- others are new based on the discussions/suggestions
- Link to v2: https://lore.kernel.org/r/20240828-imx290-avail-v2-0-bd320ac8e8fa@skidata.com
Changes in v2:
- dropped 1/2 to ignore the read value in cci_read() (old 2/2 -> new 1/2)
- 1/2: read-back standby mode instead and ensure that it is really in standby
- new 2/2: drop chip_id register definition which seems to be incorrect
- Link to v1: https://lore.kernel.org/r/20240807-imx290-avail-v1-0-666c130c7601@skidata.com
---
Benjamin Bara (3):
media: i2c: imx290: Remove CHIP_ID reg definition
media: i2c: imx290: Avoid communication during probe()
media: i2c: imx290: Check for availability in probe()
drivers/media/i2c/imx290.c | 30 +++++++++++++++++++++---------
1 file changed, 21 insertions(+), 9 deletions(-)
---
base-commit: eec5d86d5bac6b3e972eb9c1898af3c08303c52d
change-id: 20240807-imx290-avail-85795c27d988
Best regards,
--
Benjamin Bara <benjamin.bara@skidata.com>