Change since v6: - Remove mention of C-PHY for MAX96717, this serializer is D-PHY only - Remove bus-type requirement for MAX96717 - Minor changes requested by Sakari - Workaround a MAX96717 issue, which occurs when stopping the CSI source before stopping the MAX96717 CSI receiver. Power management is not included in this patchset. The GMSL link is not always resuming when the deserializer is suspended without suspending the serializer. Change since v5: - Reverse fallback logic: max9671{4,7} can fallback to max9671{4,7}F - use const instead of enum for max9671{4,7}f compatible as suggested Change since v4: - Add support for MAX96717 and MAX96714 and use them as a fallback for MAX96717F and MAX96714F respectively - The drivers are now compatible with MAX96717 and MAX96714 since no change in the logic is needed - Reference 'i2c-gate' instead of 'i2c-controller' in the bindings Change since v3: - bindings - Renamed bindings to drop the 'f' suffix - Add bus type to MAX96717 and remove from MAX9674 - Add lane-polarities to both bindings - drivers - Address changes requested by Sakari in v3 - use v4l2_subdev_s_stream_helper for MAX96714 - do not init regmap twice in the MAX96714 driver - Fix compilations on 32 bits platforms Change since v2: - Convert drivers to use CCI helpers - Use generic node name - Use 'powerdown' as gpio name instead of 'enable' - Add pattern generator support for MAX96714 These patches add support for Maxim MAX96714F deserializer and MAX96717F serializer. MAX96714F has one GMSL2 input port and one CSI2 4 lanes output port, MAX96717F has one CSI2 input port and one GMSL2 output port. The drivers support the tunnel mode where all the CSI2 traffic coming from an imager is replicated through the deserializer output port. Both MAX96714F and MAX96717F are limited to a 3Gbps forward link rate leaving a maximum of 2.6Gbps for the video payload. Julien Massot (9): dt-bindings: media: add Maxim MAX96717 GMSL2 Serializer dt-bindings: media: add Maxim MAX96714 GMSL2 Deserializer media: i2c: add MAX96717 driver media: i2c: add MAX96714 driver drivers: media: max96717: stop the csi receiver before the source .../bindings/media/i2c/maxim,max96714.yaml | 174 +++ .../bindings/media/i2c/maxim,max96717.yaml | 157 +++ MAINTAINERS | 14 + drivers/media/i2c/Kconfig | 34 + drivers/media/i2c/Makefile | 2 + drivers/media/i2c/max96714.c | 1024 +++++++++++++++++ drivers/media/i2c/max96717.c | 927 +++++++++++++++ 7 files changed, 2332 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/i2c/maxim,max96714.yaml create mode 100644 Documentation/devicetree/bindings/media/i2c/maxim,max96717.yaml create mode 100644 drivers/media/i2c/max96714.c create mode 100644 drivers/media/i2c/max96717.c -- 2.44.0