mbox series

[v7,0/3] media: i2c: isl7998x: Add driver for Intersil ISL7998x

Message ID 20211021160308.1962585-1-m.tretter@pengutronix.de (mailing list archive)
Headers show
Series media: i2c: isl7998x: Add driver for Intersil ISL7998x | expand

Message

Michael Tretter Oct. 21, 2021, 4:03 p.m. UTC
This is v7 of the series to for adding the isl7998x driver [0]

The isl7998x is an analog video to MIPI CSI-2 or BT.656 converter. The dt
binding describes only the isl79987 chip, which supports MIPI CSI-2. The
driver could be extended to handle isl79988 (for BT.656), too, but this isn't
implemented.

The driver now correctly reserves space for it's driver specific v4l2
controls. I already skipped the space of the v4l2 controls for the allegro
driver, but this will lead to an (easily fixable) merge conflict. I also added
some documentation to the custom controls.

The driver now implements the querystd, s_std, and g_std callbacks to move the
video standard handling to user space. The video standard defaults to NTSC,
user space can explicitly trigger the video standard detection, and is
responsible (and able to override) the video standard. The set video standard
is now also used to select the video standard of the test pattern generator.

Furthermore, I fixed two bugs. The condition for successful standard detection
was wrong and there was an off-by-one when the decoder is used with 4 inputs.

Michael

[0] https://lore.kernel.org/linux-media/20190520201812.7937-1-marex@denx.de/

Changelog:

v7:

- add reservation and documentation for custom V4L2 controls
- implement g_input_status, g_tvnorms, querystd, s_std, g_std
- use v4l2_norm_to_name instead of custom implementation
- fix off-by-one with 4 inputs
- fix polling condition for standard detection

v6:

- incorporate review feedback by Philipp Zabel into isl7998x.c

v5:

- ignore -ENOIOCTLCMD of pre_streamon for backwards compatibility

v4:

- add patch for imx6-mipi-csi2 to request LP-11 mode
- update isl7998x driver with review feedback on v3

v3:

- rename pd-gpios property to powerdown-gpios
- reference graph.yaml for port/ports property
- remove reference to video-interfaces.txt

v2:

- convert dt binding to yaml
- change binding to ISL79987 only
- general driver cleanup
- convert driver to pm_runtime
- use ports in device tree for specifying inputs
- add reset gpio

Marek Vasut (2):
  media: dt-bindings: Add Intersil ISL79987 DT bindings
  media: i2c: isl7998x: Add driver for Intersil ISL7998x

Michael Tretter (1):
  media: imx6-mipi-csi2: use pre_streamon callback to set sensor into
    LP11

 .../bindings/media/i2c/isil,isl79987.yaml     |  100 ++
 MAINTAINERS                                   |    8 +
 drivers/media/i2c/Kconfig                     |   10 +
 drivers/media/i2c/Makefile                    |    1 +
 drivers/media/i2c/isl7998x.c                  | 1543 +++++++++++++++++
 drivers/staging/media/imx/imx6-mipi-csi2.c    |    9 +-
 include/uapi/linux/v4l2-controls.h            |    6 +
 7 files changed, 1676 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/media/i2c/isil,isl79987.yaml
 create mode 100644 drivers/media/i2c/isl7998x.c