# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
# Copyright (C) 2019 Renesas Electronics Corp.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/imi,rdacm2x-gmsl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: IMI D&D RDACM20 and RDACM21 Automotive Camera Platforms

maintainers:
  - Jacopo Mondi <jacopo+renesas@jmondi.org>
  - Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
  - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
  - Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>

description: -|
  The IMI D&D RDACM20 and RDACM21 are GMSL-compatible camera designed for
  automotive applications.

  The RDACM20 camera module encloses a Maxim Integrated MAX9271 GMSL serializer,
  coupled with an OV10635 image sensor and an embedded MCU. Both the MCU and
  the image sensor are connected to the serializer local I2C bus and are
  accessible by the host SoC by direct addressing.

  The RDACM21 camera module encloses the same serializer, coupled with an
  OV10640 image sensor and an OV490 ISP. Only the OV490 ISP is interfaced to
  the serializer local I2C bus while the image sensor is not accessible from
  the host SoC.

  They both connect to a remote GMSL endpoint through a coaxial cable.

                                                   IMI RDACM20
  +---------------+                        +--------------------------------+
  |      GMSL     |   <- Video Stream      |       <- Video--------\        |
  |               |< === GMSL Link ====== >|MAX9271<- I2C bus-> <-->OV10635 |
  | de-serializer |   <- I2C messages ->   |                   \<-->MCU     |
  +---------------+                        +--------------------------------+

                                                   IMI RDACM21
  +---------------+                        +--------------------------------+
  |      GMSL     |   <- Video Stream      |       <- Video--------\        |
  |               |< === GMSL Link ====== >|MAX9271<- I2C bus-> <-->OV490   |
  |               |   <- I2C messages ->   |                          |     |
  | de-serializer |                        |          OV10640 <-------|     |
  +---------------+                        +--------------------------------+

  Both camera modules serialize video data generated by the embedded camera
  sensor on the GMSL serial channel to a remote GMSL de-serializer. They also
  receive and transmit I2C messages encapsulated and transmitted on the GMSL
  bidirectional control channel.

  All I2C traffic received on the GMSL link not directed to the serializer is
  propagated on the local I2C bus to the remote device there connected. All the
  I2C traffic generated on the local I2C bus not directed to the serializer is
  propagated to the remote de-serializer encapsulated in the GMSL control
  channel.

  The RDACM20 and RDACM21 DT node should be a direct child of the GMSL
  deserializer's I2C bus corresponding to the GMSL link that the camera is
  attached to.

properties:
  '#address-cells':
    const: 1

  '#size-cells':
    const: 0

  compatible:
    enum:
      - imi,rdacm20
      - imi,rdacm21

  reg:
    description: -|
      I2C device addresses, the first to be assigned to the serializer, the
      following ones to be assigned to the remote devices.

      For RDACM20 the second entry of the property is assigned to the
      OV10635 image sensor and the optional third one to the embedded MCU.

      For RDACM21 the second entry is assigned to the OV490 ISP and the optional
      third one ignored.

    minItems: 2
    maxItems: 3

  port:
    $ref: /schemas/graph.yaml#/properties/port
    description:
      Connection to the remote GMSL endpoint.

required:
  - compatible
  - reg
  - port

additionalProperties: false

examples:
  - |
    i2c@e66d8000 {
      #address-cells = <1>;
      #size-cells = <0>;

      reg = <0 0xe66d8000>;

      camera@31 {
        compatible = "imi,rdacm20";
        reg = <0x31>, <0x41>, <0x51>;

        port {
          rdacm20_out0: endpoint {
            remote-endpoint = <&max9286_in0>;
          };
        };
      };
    };

  - |
    i2c@e66d8000 {
      #address-cells = <1>;
      #size-cells = <0>;

      reg = <0 0xe66d8000>;

      camera@31 {
        compatible = "imi,rdacm21";
        reg = <0x31>, <0x41>;

        port {
          rdacm21_out0: endpoint {
            remote-endpoint = <&max9286_in0>;
          };
        };
      };
    };
