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

title: Maxim Integrated Quad GMSL Deserializer

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 MAX9286 deserializer receives video data on up to 4 Gigabit Multimedia
  Serial Links (GMSL) and outputs them on a CSI-2 D-PHY port using up to 4 data
  lanes.

  In addition to video data, the GMSL links carry a bidirectional control
  channel that encapsulates I2C messages. The MAX9286 forwards all I2C traffic
  not addressed to itself to the other side of the links, where a GMSL
  serializer will output it on a local I2C bus. In the other direction all I2C
  traffic received over GMSL by the MAX9286 is output on the local I2C bus.

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

  '#size-cells':
    const: 0

  compatible:
    const: maxim,max9286

  reg:
    description: I2C device address
    maxItems: 1

  poc-supply:
    description: Regulator providing Power over Coax to the cameras
    maxItems: 1

  enable-gpios:
    description: GPIO connected to the \#PWDN pin with inverted polarity
    maxItems: 1

  gpio-controller: true

  '#gpio-cells':
    const: 2

  ports:
    type: object
    description: |
      The connections to the MAX9286 GMSL and its endpoint nodes are modelled
      using the OF graph bindings in accordance with the video interface
      bindings defined in
      Documentation/devicetree/bindings/media/video-interfaces.txt.

      The following table lists the port number corresponding to each device
      port.

        Port            Description
        ----------------------------------------
        Port 0          GMSL Input 0
        Port 1          GMSL Input 1
        Port 2          GMSL Input 2
        Port 3          GMSL Input 3
        Port 4          CSI-2 Output

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

      '#size-cells':
        const: 0

      port@[0-3]:
        type: object
        properties:
          reg:
            enum: [ 0, 1, 2, 3 ]

          endpoint:
            type: object

            properties:
              remote-endpoint:
                description: |
                 phandle to the remote GMSL source endpoint subnode in the
                 remote node port.

            required:
              - remote-endpoint

        required:
          - reg
          - endpoint

        additionalProperties: false

      port@4:
        type: object
        properties:
          reg:
            const: 4

          endpoint:
            type: object

            properties:
              remote-endpoint:
                description: phandle to the remote CSI-2 sink endpoint.

              data-lanes:
                description: array of physical CSI-2 data lane indexes.

            required:
              - remote-endpoint
              - data-lanes

        required:
          - reg
          - endpoint

        additionalProperties: false

    required:
      - port@4

  i2c-mux:
    type: object
    description: |
      Each GMSL link is modelled as a child bus of an i2c bus
      multiplexer/switch, in accordance with bindings described in
      Documentation/devicetree/bindings/i2c/i2c-mux.txt.

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

      '#size-cells':
        const: 0

    patternProperties:
      "^i2c@[0-3]$":
        type: object
        description: |
          Child node of the i2c bus multiplexer which represents a GMSL link.
          Each serializer device on the GMSL link remote end is represented with
          an i2c-mux child node. The MAX9286 chip supports up to 4 GMSL
          channels.

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

          '#size-cells':
            const: 0

          reg:
            description: The index of the GMSL channel.
            maxItems: 1

        patternProperties:
          "^camera@[a-f0-9]+$":
            type: object
            description: |
              The remote camera device, composed by a GMSL serializer and a
              connected video source.

            properties:
              compatible:
                description: The remote device compatible string.

              reg:
                minItems: 2
                maxItems: 3
                description: |
                  The I2C addresses to be assigned to the remote devices through
                  address reprogramming. The number of entries depends on the
                  requirements of the currently connected remote device.

              port:
                type: object

                properties:
                  endpoint:
                    type: object

                    properties:
                      remote-endpoint:
                        description: phandle to the MAX9286 sink endpoint.

                    required:
                      - remote-endpoint

                    additionalProperties: false

                required:
                  - endpoint

                additionalProperties: false

            required:
              - compatible
              - reg
              - port

            additionalProperties: false

        additionalProperties: false

    additionalProperties: false

required:
  - compatible
  - reg
  - ports
  - i2c-mux
  - gpio-controller

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>

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

      reg = <0 0xe66d8000>;

      gmsl-deserializer@2c {
        compatible = "maxim,max9286";
        reg = <0x2c>;
        poc-supply = <&camera_poc_12v>;
        enable-gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;

        gpio-controller;
        #gpio-cells = <2>;

        ports {
          #address-cells = <1>;
          #size-cells = <0>;

          port@0 {
            reg = <0>;

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

          port@1 {
            reg = <1>;

            max9286_in1: endpoint {
              remote-endpoint = <&rdacm20_out1>;
            };
          };

          port@2 {
            reg = <2>;

            max9286_in2: endpoint {
              remote-endpoint = <&rdacm20_out2>;
            };
          };

          port@3 {
            reg = <3>;

            max9286_in3: endpoint {
              remote-endpoint = <&rdacm20_out3>;
            };
          };

          port@4 {
            reg = <4>;

            max9286_out: endpoint {
              data-lanes = <1 2 3 4>;
              remote-endpoint = <&csi40_in>;
            };
          };
        };

        i2c-mux {
          #address-cells = <1>;
          #size-cells = <0>;

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

            camera@51 {
              compatible = "imi,rdacm20";
              reg = <0x51>, <0x61>;

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

            };
          };

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

            camera@52 {
              compatible = "imi,rdacm20";
              reg = <0x52>, <0x62>;

              port {
                rdacm20_out1: endpoint {
                  remote-endpoint = <&max9286_in1>;
                };
              };
            };
          };

          i2c@2 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <2>;

            camera@53 {
              compatible = "imi,rdacm20";
              reg = <0x53>, <0x63>;

              port {
                rdacm20_out2: endpoint {
                  remote-endpoint = <&max9286_in2>;
                };
              };
            };
          };

          i2c@3 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <3>;

            camera@54 {
              compatible = "imi,rdacm20";
              reg = <0x54>, <0x64>;

              port {
                rdacm20_out3: endpoint {
                  remote-endpoint = <&max9286_in3>;
                };
              };
            };
          };
        };
      };
    };
