code:
* Analog Devices adv7343 video encoder

The ADV7343 are high speed, digital-to-analog video encoders in a 64-lead LQFP
package. Six high speed, 3.3 V, 11-bit video DACs provide support for composite
(CVBS), S-Video (Y-C), and component (YPrPb/RGB) analog outputs in standard
definition (SD), enhanced definition (ED), or high definition (HD) video
formats.

Required Properties :
- compatible: Must be "adi,adv7343"

Optional Properties :
- adi,power-mode-sleep-mode: on enable the current consumption is reduced to
			      micro ampere level. All DACs and the internal PLL
			      circuit are disabled.
- adi,power-mode-pll-ctrl: PLL and oversampling control. This control allows
			   internal PLL 1 circuit to be powered down and the
			   oversampling to be switched off.
- ad,adv7343-power-mode-dac: array configuring the power on/off DAC's 1..6,
			      0 = OFF and 1 = ON, Default value when this
			      property is not specified is <0 0 0 0 0 0>.
- ad,adv7343-sd-config-dac-out: array configure SD DAC Output's 1 and 2, 0 = OFF
				 and 1 = ON, Default value when this property is
				 not specified is <0 0>.

Example:

i2c0@1c22000 {
	...
	...

	adv7343@2a {
		compatible = "adi,adv7343";
		reg = <0x2a>;

		port {
			adv7343_1: endpoint {
					adi,power-mode-sleep-mode;
					adi,power-mode-pll-ctrl;
					/* Use DAC1..3, DAC6 */
					adi,dac-enable = <1 1 1 0 0 1>;
					/* Use SD DAC output 1 */
					adi,sd-dac-enable = <1 0>;
			};
		};
	};
	...
};


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/adv748x.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices ADV748X video decoder with HDMI receiver

maintainers:
  - Kieran Bingham <kieran.bingham@ideasonboard.com>
  - Niklas Söderlund <niklas.soderlund@ragnatech.se>

description:
  The ADV7481 and ADV7482 are multi format video decoders with an integrated
  HDMI receiver. They can output CSI-2 on two independent outputs TXA and TXB
  from three input sources HDMI, analog and TTL.

properties:
  compatible:
    items:
      - enum:
          - adi,adv7481
          - adi,adv7482

  reg:
    minItems: 1
    maxItems: 12
    description:
      The ADV748x has up to twelve 256-byte maps that can be accessed via the
      main I2C ports. Each map has it own I2C address and acts as a standard
      slave device on the I2C bus. The main address is mandatory, others are
      optional and remain at default values if not specified.

  reg-names:
    minItems: 1
    items:
      - const: main
      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]

  interrupts: true

  interrupt-names: true

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    patternProperties:
      "^port@[0-7]$":
        $ref: /schemas/graph.yaml#/properties/port
        description: Input port nodes for analog inputs AIN[0-7].

    properties:
      port@8:
        $ref: /schemas/graph.yaml#/properties/port
        description: Input port node for HDMI.

      port@9:
        $ref: /schemas/graph.yaml#/properties/port
        description: Input port node for TTL.

      port@a:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description:
          Output port node, single endpoint describing the CSI-2 transmitter TXA.

        properties:
          endpoint:
            $ref: /schemas/media/video-interfaces.yaml#
            unevaluatedProperties: false

            properties:
              clock-lanes:
                maxItems: 1

              data-lanes:
                minItems: 1
                maxItems: 4

            required:
              - clock-lanes
              - data-lanes

      port@b:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description:
          Output port node, single endpoint describing the CSI-2 transmitter TXB.

        properties:
          endpoint:
            $ref: /schemas/media/video-interfaces.yaml#
            unevaluatedProperties: false

            properties:
              clock-lanes:
                maxItems: 1

              data-lanes:
                maxItems: 1

            required:
              - clock-lanes
              - data-lanes

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: adi,adv7481
    then:
      properties:
        interrupts:
          minItems: 1
          maxItems: 3

        interrupt-names:
          minItems: 1
          maxItems: 3
          items:
            enum: [ intrq1, intrq2, intrq3 ]
    else:
      properties:
        interrupts:
          minItems: 1
          maxItems: 2

        interrupt-names:
          minItems: 1
          maxItems: 2
          items:
            enum: [ intrq1, intrq2 ]

additionalProperties: false

required:
  - compatible
  - reg
  - ports

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>

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

        video-receiver@70 {
            compatible = "adi,adv7482";
            reg = <0x70 0x71 0x72 0x73 0x74 0x75
                   0x60 0x61 0x62 0x63 0x64 0x65>;
            reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater",
                        "infoframe", "cbus", "cec", "sdp", "txa", "txb";

            interrupt-parent = <&gpio6>;
            interrupts = <30 IRQ_TYPE_LEVEL_LOW>, <31 IRQ_TYPE_LEVEL_LOW>;
            interrupt-names = "intrq1", "intrq2";

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

                port@7 {
                    reg = <7>;

                    adv7482_ain7: endpoint {
                        remote-endpoint = <&cvbs_in>;
                    };
                };

                port@8 {
                    reg = <8>;

                    adv7482_hdmi: endpoint {
                        remote-endpoint = <&hdmi_in>;
                    };
                };

                port@a {
                    reg = <10>;

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

                port@b {
                    reg = <11>;

                    adv7482_txb: endpoint {
                        clock-lanes = <0>;
                        data-lanes = <1>;
                        remote-endpoint = <&csi20_in>;
                    };
                };
            };
        };
    };

repo_name: angery/linux


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/adv7604.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices ADV7604/10/11/12 video decoder with HDMI receiver

maintainers:
  - Hans Verkuil <hverkuil-cisco@xs4all.nl>

description:
  The ADV7604 and ADV7610/11/12 are multiformat video decoders with
  an integrated HDMI receiver. The ADV7604 has four multiplexed HDMI inputs
  and one analog input, and the ADV7610/11 have one HDMI input and no analog
  input. The ADV7612 is similar to the ADV7610/11 but has 2 HDMI inputs.

  These device tree bindings support the ADV7610/11/12 only at the moment.

properties:
  compatible:
    items:
      - enum:
          - adi,adv7610
          - adi,adv7611
          - adi,adv7612

  reg:
    minItems: 1
    maxItems: 13

  reg-names:
    minItems: 1
    items:
      - const: main
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]

  interrupts:
    maxItems: 1

  reset-gpios:
    maxItems: 1

  hpd-gpios:
    minItems: 1
    description:
      References to the GPIOs that control the HDMI hot-plug detection pins,
      one per HDMI input. The active flag indicates the GPIO level that
      enables hot-plug detection.

  default-input:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [ 0, 1 ]
    description:
      Select which input is selected after reset.

  ports: true

required:
  - compatible
  - reg
  - ports

additionalProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: adi,adv7611
    then:
      properties:
        ports:
          $ref: /schemas/graph.yaml#/properties/ports
          properties:
            port@0:
              $ref: /schemas/graph.yaml#/properties/port
              description: Input port

            port@1:
              $ref: /schemas/graph.yaml#/properties/port
              description: Output port

          required:
            - port@1

  - if:
      properties:
        compatible:
          contains:
            const: adi,adv7612
    then:
      properties:
        ports:
          $ref: /schemas/graph.yaml#/properties/ports
          properties:
            port@2:
              $ref: /schemas/graph.yaml#/properties/port
              description: Output port

          patternProperties:
            "^port@[0-1]$":
              $ref: /schemas/graph.yaml#/properties/port
              description: Input port

          required:
            - port@2

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

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

            hdmi_receiver@4c {
                    compatible = "adi,adv7611";
                    /*
                     * The edid page will be accessible @ 0x66 on the I2C bus. All
                     * other maps will retain their default addresses.
                     */
                    reg = <0x4c>, <0x66>;
                    reg-names = "main", "edid";

                    reset-gpios = <&ioexp 0 GPIO_ACTIVE_LOW>;
                    hpd-gpios = <&ioexp 2 GPIO_ACTIVE_HIGH>;
                    default-input = <0>;

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

                            port@0 {
                                    reg = <0>;
                            };

                            port@1 {
                                    reg = <1>;
                                    hdmi_in: endpoint {
                                            remote-endpoint = <&ccdc_in>;
                                    };
                            };
                    };

            };
    };


code:
Asahi Kasei Microdevices AK7375 voice coil lens driver

AK7375 is a camera voice coil lens.

Mandatory properties:

- compatible: "asahi-kasei,ak7375"
- reg: I2C slave address


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/aptina,mt9p031.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Aptina 1/2.5-Inch 5Mp CMOS Digital Image Sensor

maintainers:
  - Laurent Pinchart <laurent.pinchart@ideasonboard.com>

description: |
  The Aptina MT9P031 is a 1/2.5-inch CMOS active pixel digital image sensor
  with an active array size of 2592H x 1944V. It is programmable through a
  simple two-wire serial interface.

properties:
  compatible:
    enum:
      - aptina,mt9p006
      - aptina,mt9p031
      - aptina,mt9p031m

  reg:
    description: I2C device address
    maxItems: 1

  clocks:
    maxItems: 1

  vdd-supply:
    description: Digital supply voltage, 1.8 V

  vdd_io-supply:
    description: I/O supply voltage, 1.8 or 2.8 V

  vaa-supply:
    description: Analog supply voltage, 2.8 V

  reset-gpios:
    maxItems: 1
    description: Chip reset GPIO

  port:
    $ref: /schemas/graph.yaml#/$defs/port-base
    additionalProperties: false

    properties:
      endpoint:
        $ref: /schemas/media/video-interfaces.yaml#
        unevaluatedProperties: false

        properties:
          input-clock-frequency:
            $ref: /schemas/types.yaml#/definitions/uint32
            minimum: 6000000
            maximum: 96000000
            description: Input clock frequency

          pixel-clock-frequency:
            $ref: /schemas/types.yaml#/definitions/uint32
            maximum: 96000000
            description: Target pixel clock frequency

          pclk-sample:
            default: 0

        required:
          - input-clock-frequency
          - pixel-clock-frequency

required:
  - compatible
  - reg
  - clocks
  - vdd-supply
  - vdd_io-supply
  - vaa-supply
  - port

additionalProperties: false

examples:
  - |
    i2c0 {
        #address-cells = <1>;
        #size-cells = <0>;

        mt9p031@5d {
            compatible = "aptina,mt9p031";
            reg = <0x5d>;
            reset-gpios = <&gpio_sensor 0 0>;

            clocks = <&sensor_clk>;

            vdd-supply = <&reg_vdd>;
            vdd_io-supply = <&reg_vdd_io>;
            vaa-supply = <&reg_vaa>;

            port {
                mt9p031_1: endpoint {
                    input-clock-frequency = <6000000>;
                    pixel-clock-frequency = <96000000>;
                };
            };
        };
    };

...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/aptina,mt9v111.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Aptina MT9V111 CMOS sensor

maintainers:
  - Jacopo Mondi <jacopo@jmondi.org>

description: |
  The Aptina MT9V111 is a 1/4-Inch VGA-format digital image sensor with a core
  based on Aptina MT9V011 sensor and an integrated Image Flow Processor (IFP).

  The sensor has an active pixel array of 640x480 pixels and can output a number
  of image resolutions and formats controllable through a simple two-wires
  interface.

properties:
  compatible:
    const: aptina,mt9v111

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  enable-gpios:
    description: Enable signal, pin name "OE#". Active low.
    maxItems: 1

  standby-gpios:
    description: |
      Low power state control signal, pin name "STANDBY". Active high.
    maxItems: 1

  reset-gpios:
    description: Chip reset signal, pin name "RESET#". Active low.
    maxItems: 1

  port:
    $ref: /schemas/graph.yaml#/properties/port
    description: |
      Output video port.

required:
  - compatible
  - reg
  - clocks
  - port

additionalProperties: false

examples:
  - |
    i2c0 {
        #address-cells = <1>;
        #size-cells = <0>;

        camera@48 {
            compatible = "aptina,mt9v111";
            reg = <0x48>;
            clocks = <&camera_clk>;

            port {
                mt9v111_out: endpoint {
                    remote-endpoint = <&ceu_in>;
                };
            };
        };
    };

...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/media/i2c/chrontel,ch7322.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Chrontel HDMI-CEC Controller

maintainers:
  - Jeff Chase <jnchase@google.com>

description:
  The Chrontel CH7322 is a discrete HDMI-CEC controller. It is
  programmable through I2C and drives a single CEC line.

properties:
  compatible:
    const: chrontel,ch7322

  reg:
    description: I2C device address
    maxItems: 1

  clocks:
    maxItems: 1

  interrupts:
    maxItems: 1

  reset-gpios:
    description:
      Reference to the GPIO connected to the RESET pin, if any. This
      pin is active-low.
    maxItems: 1

  standby-gpios:
    description:
      Reference to the GPIO connected to the OE pin, if any. When low
      the device will respond to power status requests with "standby"
      if in auto mode.
    maxItems: 1

  # see ../cec.txt
  hdmi-phandle:
    description: phandle to the HDMI controller

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;
      ch7322@75 {
        compatible = "chrontel,ch7322";
        reg = <0x75>;
        interrupts = <47 IRQ_TYPE_EDGE_RISING>;
        standby-gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
        reset-gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
        hdmi-phandle = <&hdmi>;
      };
    };


code:
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/dongwoon,dw9714.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Dongwoon Anatech DW9714 camera voice coil lens driver

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

description:
  DW9174 is a 10-bit DAC with current sink capability. It is intended for
  driving voice coil lenses in camera modules.

properties:
  compatible:
    const: dongwoon,dw9714

  reg:
    maxItems: 1

  powerdown-gpios:
    description:
      XSD pin for shutdown (active low)

  vcc-supply:
    description: VDD power supply

required:
  - compatible
  - reg

additionalProperties: false

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

        camera-lens@c {
            compatible = "dongwoon,dw9714";
            reg = <0x0c>;
            vcc-supply = <&reg_csi_1v8>;
        };
    };


code:
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright (c) 2020 MediaTek Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/dongwoon,dw9768.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Dongwoon Anatech DW9768 Voice Coil Motor (VCM) Lens Device Tree Bindings

maintainers:
  - Dongchun Zhu <dongchun.zhu@mediatek.com>

description: |-
  The Dongwoon DW9768 is a single 10-bit digital-to-analog (DAC) converter
  with 100 mA output current sink capability. VCM current is controlled with
  a linear mode driver. The DAC is controlled via a 2-wire (I2C-compatible)
  serial interface that operates at clock rates up to 1MHz. This chip
  integrates Advanced Actuator Control (AAC) technology and is intended for
  driving voice coil lenses in camera modules.

properties:
  compatible:
    enum:
      - dongwoon,dw9768 # for DW9768 VCM
      - giantec,gt9769  # for GT9769 VCM

  reg:
    maxItems: 1

  vin-supply:
    description:
      Definition of the regulator used as Digital I/O voltage supply.

  vdd-supply:
    description:
      Definition of the regulator used as Digital core voltage supply.

  dongwoon,aac-mode:
    description:
      Indication of AAC mode select.
    $ref: "/schemas/types.yaml#/definitions/uint32"
    enum:
      - 1    #  AAC2 mode(operation time# 0.48 x Tvib)
      - 2    #  AAC3 mode(operation time# 0.70 x Tvib)
      - 3    #  AAC4 mode(operation time# 0.75 x Tvib)
      - 5    #  AAC8 mode(operation time# 1.13 x Tvib)
    default: 2

  dongwoon,aac-timing:
    description:
      Number of AAC Timing count that controlled by one 6-bit period of
      vibration register AACT[5:0], the unit of which is 100 us.
    $ref: "/schemas/types.yaml#/definitions/uint32"
    default: 0x20
    minimum: 0x00
    maximum: 0x3f

  dongwoon,clock-presc:
    description:
      Indication of VCM internal clock dividing rate select, as one multiple
      factor to calculate VCM ring periodic time Tvib.
    $ref: "/schemas/types.yaml#/definitions/uint32"
    enum:
      - 0    #  Dividing Rate -  2
      - 1    #  Dividing Rate -  1
      - 2    #  Dividing Rate -  1/2
      - 3    #  Dividing Rate -  1/4
      - 4    #  Dividing Rate -  8
      - 5    #  Dividing Rate -  4
    default: 1

required:
  - compatible
  - reg
  - vin-supply
  - vdd-supply

additionalProperties: false

examples:
  - |

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

        dw9768: camera-lens@c {
            compatible = "dongwoon,dw9768";
            reg = <0x0c>;

            vin-supply = <&mt6358_vcamio_reg>;
            vdd-supply = <&mt6358_vcama2_reg>;
            dongwoon,aac-timing = <0x39>;
        };
    };

...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2018, 2021 Intel Corporation
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/dongwoon,dw9807-vcm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Dongwoon Anatech DW9807 voice coil lens driver

maintainers:
  - Sakari Ailus <sakari.ailus@linux.intel.com>

description: |
  DW9807 is a 10-bit DAC with current sink capability. It is intended for
  controlling voice coil lenses.

properties:
  compatible:
    const: dongwoon,dw9807-vcm

  reg:
    maxItems: 1

required:
  - compatible
  - reg

additionalProperties: false

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

        lens@e {
            compatible = "dongwoon,dw9807-vcm";
            reg = <0x0e>;
        };
    };
...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/hynix,hi846.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: SK Hynix Hi-846 1/4" 8M Pixel MIPI CSI-2 sensor

maintainers:
  - Martin Kepplinger <martin.kepplinger@puri.sm>

description: |-
  The Hi-846 is a raw image sensor with an MIPI CSI-2 image data
  interface and CCI (I2C compatible) control bus. The output format
  is raw Bayer.

properties:
  compatible:
    const: hynix,hi846

  reg:
    maxItems: 1

  clocks:
    items:
      - description: Reference to the mclk clock.

  assigned-clocks:
    maxItems: 1

  assigned-clock-rates:
    maxItems: 1

  reset-gpios:
    description: Reference to the GPIO connected to the RESETB pin. Active low.
    maxItems: 1

  shutdown-gpios:
    description: Reference to the GPIO connected to the XSHUTDOWN pin. Active low.
    maxItems: 1

  vddio-supply:
    description: Definition of the regulator used for the VDDIO power supply.

  vdda-supply:
    description: Definition of the regulator used for the VDDA power supply.

  vddd-supply:
    description: Definition of the regulator used for the VDDD power supply.

  port:
    $ref: /schemas/graph.yaml#/$defs/port-base
    unevaluatedProperties: false

    properties:
      endpoint:
        $ref: /schemas/media/video-interfaces.yaml#
        unevaluatedProperties: false

        properties:
          data-lanes:
            oneOf:
              - items:
                  - const: 1
                  - const: 2
                  - const: 3
                  - const: 4
              - items:
                  - const: 1
                  - const: 2

          link-frequencies: true

        required:
          - data-lanes
          - link-frequencies

required:
  - compatible
  - reg
  - clocks
  - assigned-clocks
  - assigned-clock-rates
  - vddio-supply
  - vdda-supply
  - vddd-supply
  - port

additionalProperties: false

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

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

        hi846: camera@20 {
            compatible = "hynix,hi846";
            reg = <0x20>;
            pinctrl-names = "default";
            pinctrl-0 = <&pinctrl_csi1>;
            clocks = <&clk 0>;
            assigned-clocks = <&clk 0>;
            assigned-clock-rates = <25000000>;
            vdda-supply = <&reg_camera_vdda>;
            vddd-supply = <&reg_camera_vddd>;
            vddio-supply = <&reg_camera_vddio>;
            reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
            shutdown-gpios = <&gpio5 4 GPIO_ACTIVE_LOW>;

            port {
                camera_out: endpoint {
                    remote-endpoint = <&csi1_ep1>;
                    link-frequencies = /bits/ 64
                        <80000000 200000000>;
                    data-lanes = <1 2>;
                };
            };
        };
    };

...


code:
# 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>;
          };
        };
      };
    };


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/imx219.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Sony 1/4.0-Inch 8Mpixel CMOS Digital Image Sensor

maintainers:
  - Dave Stevenson <dave.stevenson@raspberrypi.com>

description: |-
  The Sony imx219 is a 1/4.0-inch CMOS active pixel digital image sensor
  with an active array size of 3280H x 2464V. It is programmable through
  I2C interface. The I2C address is fixed to 0x10 as per sensor data sheet.
  Image data is sent through MIPI CSI-2, which is configured as either 2 or
  4 data lanes.

properties:
  compatible:
    const: sony,imx219

  reg:
    description: I2C device address
    maxItems: 1

  clocks:
    maxItems: 1

  VDIG-supply:
    description:
      Digital I/O voltage supply, 1.8 volts

  VANA-supply:
    description:
      Analog voltage supply, 2.8 volts

  VDDL-supply:
    description:
      Digital core voltage supply, 1.2 volts

  reset-gpios:
    maxItems: 1
    description: |-
      Reference to the GPIO connected to the xclr pin, if any.
      Must be released (set high) after all supplies are applied.

  port:
    $ref: /schemas/graph.yaml#/$defs/port-base
    additionalProperties: false

    properties:
      endpoint:
        $ref: /schemas/media/video-interfaces.yaml#
        unevaluatedProperties: false

        properties:
          data-lanes:
            description: |-
              The sensor supports either two-lane, or four-lane operation.
              If this property is omitted four-lane operation is assumed.
              For two-lane operation the property must be set to <1 2>.
            items:
              - const: 1
              - const: 2

          clock-noncontinuous: true
          link-frequencies: true

        required:
          - link-frequencies

required:
  - compatible
  - reg
  - clocks
  - VANA-supply
  - VDIG-supply
  - VDDL-supply
  - port

additionalProperties: false

examples:
  - |
    i2c0 {
        #address-cells = <1>;
        #size-cells = <0>;

        imx219: sensor@10 {
            compatible = "sony,imx219";
            reg = <0x10>;
            clocks = <&imx219_clk>;
            VANA-supply = <&imx219_vana>;   /* 2.8v */
            VDIG-supply = <&imx219_vdig>;   /* 1.8v */
            VDDL-supply = <&imx219_vddl>;   /* 1.2v */

            port {
                imx219_0: endpoint {
                    remote-endpoint = <&csi1_ep>;
                    data-lanes = <1 2>;
                    clock-noncontinuous;
                    link-frequencies = /bits/ 64 <456000000>;
                };
            };
        };
    };

...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/imx258.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Sony IMX258 13 Mpixel CMOS Digital Image Sensor

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

description: |-
  IMX258 is a diagonal 5.867mm (Type 1/3.06) 13 Mega-pixel CMOS active pixel
  type stacked image sensor with a square pixel array of size 4208 x 3120. It
  is programmable through I2C interface.  Image data is sent through MIPI
  CSI-2.

properties:
  compatible:
    const: sony,imx258

  assigned-clocks: true
  assigned-clock-parents: true
  assigned-clock-rates: true

  clocks:
    description:
      Clock frequency from 6 to 27 MHz.
    maxItems: 1

  reg:
    maxItems: 1

  reset-gpios:
    description: |-
      Reference to the GPIO connected to the XCLR pin, if any.

  vana-supply:
    description:
      Analog voltage (VANA) supply, 2.7 V

  vdig-supply:
    description:
      Digital I/O voltage (VDIG) supply, 1.2 V

  vif-supply:
    description:
      Interface voltage (VIF) supply, 1.8 V

  # See ../video-interfaces.txt for more details
  port:
    $ref: /schemas/graph.yaml#/$defs/port-base
    additionalProperties: false

    properties:
      endpoint:
        $ref: /schemas/media/video-interfaces.yaml#
        unevaluatedProperties: false

        properties:
          data-lanes:
            oneOf:
              - items:
                  - const: 1
                  - const: 2
                  - const: 3
                  - const: 4
              - items:
                  - const: 1
                  - const: 2

          link-frequencies: true

        required:
          - data-lanes
          - link-frequencies

required:
  - compatible
  - reg
  - port

additionalProperties: false

examples:
  - |
    i2c0 {
        #address-cells = <1>;
        #size-cells = <0>;

        sensor@6c {
            compatible = "sony,imx258";
            reg = <0x6c>;
            clocks = <&imx258_clk>;

            port {
                endpoint {
                    remote-endpoint = <&csi1_ep>;
                    data-lanes = <1 2 3 4>;
                    link-frequencies = /bits/ 64 <320000000>;
                };
            };
        };
    };

    /* Oscillator on the camera board */
    imx258_clk: clk {
        compatible = "fixed-clock";
        #clock-cells = <0>;
        clock-frequency = <19200000>;
    };

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

        sensor@6c {
            compatible = "sony,imx258";
            reg = <0x6c>;
            clocks = <&imx258_clk>;

            assigned-clocks = <&imx258_clk>;
            assigned-clock-rates = <19200000>;

            port {
                endpoint {
                    remote-endpoint = <&csi1_ep>;
                    data-lanes = <1 2 3 4>;
                    link-frequencies = /bits/ 64 <633600000>;
                };
            };
        };
    };


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/isil,isl79987.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Intersil ISL79987 Analog to MIPI CSI-2 decoder

maintainers:
  - Michael Tretter <m.tretter@pengutronix.de>
  - Marek Vasut <marex@denx.de>

description:
  The Intersil ISL79987 is an analog to MIPI CSI-2 decoder which is capable of
  receiving up to four analog stream and multiplexing them into up to four MIPI
  CSI-2 virtual channels, using one MIPI clock lane and 1/2 data lanes.

properties:
  compatible:
    enum:
      - isil,isl79987

  reg:
    maxItems: 1

  reset-gpios:
    maxItems: 1
    description:
      A GPIO spec for the RSTB pin (active high)

  powerdown-gpios:
    maxItems: 1
    description:
      A GPIO spec for the Power Down pin (active high)

  ports:
    $ref: /schemas/graph.yaml#/properties/ports
    properties:
      port@0:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description: Output port

        properties:
          endpoint:
            $ref: /schemas/media/video-interfaces.yaml#
            unevaluatedProperties: false

            properties:
              data-lanes:
                minItems: 1
                maxItems: 2

            required:
              - data-lanes

    patternProperties:
      "^port@[1-4]$":
        $ref: /schemas/graph.yaml#/properties/port
        description: Input ports

    required:
      - port@0

additionalProperties: false

required:
  - compatible
  - reg
  - ports

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

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

      isl7998x_mipi@44 {
        compatible = "isil,isl79987";
        reg = <0x44>;
        powerdown-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
        reset-gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;

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

          port@0 {
            reg = <0>;
            isl79987_out: endpoint {
              remote-endpoint = <&mipi_csi2_in>;
              data-lanes = <1 2>;
            };
          };

          port@1 {
            reg = <1>;
            endpoint {
              remote-endpoint = <&camera_0>;
            };
          };

          port@2 {
            reg = <2>;
            endpoint {
              remote-endpoint = <&camera_1>;
            };
          };
        };
      };
    };


code:
Maxim Integrated MAX2175 RF to Bits tuner
-----------------------------------------

The MAX2175 IC is an advanced analog/digital hybrid-radio receiver with
RF to Bits® front-end designed for software-defined radio solutions.

Required properties:
--------------------
- compatible: "maxim,max2175" for MAX2175 RF-to-bits tuner.
- clocks: clock specifier.
- port: child port node corresponding to the I2S output, in accordance with
	the video interface bindings defined in
	Documentation/devicetree/bindings/media/video-interfaces.txt. The port
	node must contain at least one endpoint.

Optional properties:
--------------------
- maxim,master	      : phandle to the master tuner if it is a slave. This
			is used to define two tuners in diversity mode
			(1 master, 1 slave). By default each tuner is an
			individual master.
- maxim,refout-load   : load capacitance value (in picofarads) on reference
			output drive level. The possible load values are:
			 0 (default - refout disabled)
			10
			20
			30
			40
			60
			70
- maxim,am-hiz-filter : empty property indicates the AM Hi-Z filter is used
			in this hardware for AM antenna input.

Example:
--------

Board specific DTS file

/* Fixed XTAL clock node */
maxim_xtal: clock {
	compatible = "fixed-clock";
	#clock-cells = <0>;
	clock-frequency = <36864000>;
};

/* A tuner device instance under i2c bus */
max2175_0: tuner@60 {
	compatible = "maxim,max2175";
	reg = <0x60>;
	clocks = <&maxim_xtal>;
	maxim,refout-load = <10>;

	port {
		max2175_0_ep: endpoint {
			remote-endpoint = <&slave_rx_device>;
		};
	};

};


code:
# 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

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

  gpio-controller: true

  '#gpio-cells':
    const: 2

  maxim,reverse-channel-microvolt:
    minimum: 30000
    maximum: 200000
    default: 170000
    description: |
      Initial amplitude of the reverse control channel, in micro volts.

      The initial amplitude shall be adjusted to a value compatible with the
      configuration of the connected remote serializer.

      Some camera modules (for example RDACM20) include an on-board MCU that
      pre-programs the embedded serializer with power supply noise immunity
      (high-threshold) enabled. A typical value of the deserializer's reverse
      channel amplitude to communicate with pre-programmed serializers is
      170000 micro volts.

      A typical value for the reverse channel amplitude to communicate with
      a remote serializer whose high-threshold noise immunity is not enabled
      is 100000 micro volts

  maxim,gpio-poc:
    $ref: '/schemas/types.yaml#/definitions/uint32-array'
    minItems: 2
    maxItems: 2
    description: |
      Index of the MAX9286 gpio output line (0 or 1) that controls Power over
      Coax to the cameras and its associated polarity flag.

      The property accepts an array of two unsigned integers, the first being
      the gpio line index (0 or 1) and the second being the gpio line polarity
      flag (GPIO_ACTIVE_HIGH or GPIO_ACTIVE_LOW) as defined in
      <include/dt-bindings/gpio/gpio.h>.

      When the remote cameras power is controlled by one of the MAX9286 gpio
      lines, this property has to be used to specify which line among the two
      available ones controls the remote camera power enablement.

      When this property is used it is not possible to register a gpio
      controller as the gpio lines are controlled directly by the MAX9286 and
      not available for consumers, nor the 'poc-supply' property should be
      specified.

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description: GMSL Input 0

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description: GMSL Input 1

      port@2:
        $ref: /schemas/graph.yaml#/properties/port
        description: GMSL Input 2

      port@3:
        $ref: /schemas/graph.yaml#/properties/port
        description: GMSL Input 3

      port@4:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description: CSI-2 Output

        properties:
          endpoint:
            $ref: /schemas/media/video-interfaces.yaml#
            unevaluatedProperties: false

            properties:
              data-lanes: true

            required:
              - data-lanes

    required:
      - port@4

  i2c-mux:
    type: object
    $ref: /schemas/i2c/i2c-mux.yaml#
    unevaluatedProperties: false
    description: |
      Each GMSL link is modelled as a child bus of an i2c bus multiplexer/switch.

    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:
          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:
                $ref: /schemas/graph.yaml#/properties/port
                description: Connection to the MAX9286 sink.

            required:
              - compatible
              - reg
              - port

            additionalProperties: false

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

# If 'maxim,gpio-poc' is present, then 'poc-supply' and 'gpio-controller'
# are not allowed.
if:
  required:
    - maxim,gpio-poc
then:
  properties:
    poc-supply: false
    gpio-controller: false

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>;

            maxim,reverse-channel-microvolt = <170000>;

            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>;
                            };
                        };
                    };
                };
            };
        };

        /*
        * Example of a deserializer that controls the camera Power over Coax
        * through one of its gpio lines.
        */
        gmsl-deserializer@6c {
            compatible = "maxim,max9286";
            reg = <0x6c>;
            enable-gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;

            /*
            * The remote camera power is controlled by MAX9286 GPIO line #0.
            * No 'poc-supply' nor 'gpio-controller' are specified.
            */
            maxim,gpio-poc = <0 GPIO_ACTIVE_LOW>;

            /*
            * Do not describe connections as they're the same as in the previous
            * example.
            */
            ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@4 {
                    reg = <4>;
                };
            };

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


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

title: Quad GMSL2 to CSI-2 Deserializer with GMSL1 Compatibility

maintainers:
  - Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>

description: |
  The MAX96712 deserializer converts GMSL2 or GMSL1 serial inputs into MIPI
  CSI-2 D-PHY or C-PHY formatted outputs. The device allows each link to
  simultaneously transmit bidirectional control-channel data while forward
  video transmissions are in progress. The MAX96712 can accommodate as many as
  four remotely located sensors using industry-standard coax or STP
  interconnects.

  Each GMSL2 serial link operates at a fixed rate of 3Gbps or 6Gbps in the
  forward direction and 187.5Mbps in the reverse direction. In GMSL1 mode, the
  MAX96712 can be paired with first-generation 3.12Gbps or 1.5Gbps GMSL1
  serializers or operate up to 3.12Gbps with GMSL2 serializers in GMSL1 mode.

properties:
  compatible:
    const: maxim,max96712

  reg:
    description: I2C device address
    maxItems: 1

  enable-gpios: true

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description: GMSL Input 0

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description: GMSL Input 1

      port@2:
        $ref: /schemas/graph.yaml#/properties/port
        description: GMSL Input 2

      port@3:
        $ref: /schemas/graph.yaml#/properties/port
        description: GMSL Input 3

      port@4:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description: CSI-2 Output

        properties:
          endpoint:
            $ref: /schemas/media/video-interfaces.yaml#
            unevaluatedProperties: false

            properties:
              data-lanes: true

            required:
              - data-lanes

    required:
      - port@4

required:
  - compatible
  - reg
  - ports

additionalProperties: false

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

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

            reg = <0 0xe6508000>;

            gmsl0: gmsl-deserializer@49 {
                    compatible = "maxim,max96712";
                    reg = <0x49>;
                    enable-gpios = <&pca9654_a 0 GPIO_ACTIVE_HIGH>;

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

                            port@4 {
                                    reg = <4>;
                                    max96712_out0: endpoint {
                                            clock-lanes = <0>;
                                            data-lanes = <1 2 3 4>;
                                            remote-endpoint = <&csi40_in>;
                                    };
                            };
                    };
            };
    };


code:
* Melexis MLX90640 FIR Sensor

Melexis MLX90640 FIR sensor support which allows recording of thermal data
with 32x24 resolution excluding 2 lines of coefficient data that is used by
userspace to render processed frames.

Required Properties:
 - compatible : Must be "melexis,mlx90640"
 - reg : i2c address of the device

Example:

	i2c0@1c22000 {
		...
		mlx90640@33 {
			compatible = "melexis,mlx90640";
			reg = <0x33>;
		};
		...
	};


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2014--2020 Intel Corporation
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/mipi-ccs.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MIPI CCS, SMIA++ and SMIA compliant camera sensors

maintainers:
  - Sakari Ailus <sakari.ailus@linux.intel.com>

description:

  CCS (Camera Command Set) is a raw Bayer camera sensor standard defined by the
  MIPI Alliance; see
  <URL:https://www.mipi.org/specifications/camera-command-set>.

  SMIA (Standard Mobile Imaging Architecture) is an image sensor standard
  defined jointly by Nokia and ST. SMIA++, defined by Nokia, is an extension of
  that.

  More detailed documentation can be found in
  Documentation/devicetree/bindings/media/video-interfaces.txt .

properties:
  compatible:
    oneOf:
      - items:
          - const: mipi-ccs-1.1
          - const: mipi-ccs
      - items:
          - const: mipi-ccs-1.0
          - const: mipi-ccs
      - const: nokia,smia

  reg:
    maxItems: 1

  vana-supply:
    description: Analogue voltage supply (VANA), sensor dependent.

  vcore-supply:
    description: Core voltage supply (VCore), sensor dependent.

  vio-supply:
    description: I/O voltage supply (VIO), sensor dependent.

  clocks:
    description: External clock to the sensor.
    maxItems: 1

  clock-frequency:
    description: Frequency of the external clock to the sensor in Hz.

  reset-gpios:
    description: Reset GPIO. Also commonly called XSHUTDOWN in hardware
      documentation.
    maxItems: 1

  flash-leds:
    description: Flash LED phandles. See ../video-interfaces.txt for details.

  lens-focus:
    description: Lens focus controller phandles. See ../video-interfaces.txt
      for details.

  rotation:
    description: Rotation of the sensor.  See ../video-interfaces.txt for
      details.
    enum: [ 0, 180 ]

  port:
    $ref: /schemas/graph.yaml#/$defs/port-base
    additionalProperties: false

    properties:
      endpoint:
        $ref: /schemas/media/video-interfaces.yaml#
        unevaluatedProperties: false

        properties:
          link-frequencies: true
          data-lanes: true
          bus-type:
            enum:
              - 1 # CSI-2 C-PHY
              - 3 # CCP2
              - 4 # CSI-2 D-PHY

        required:
          - link-frequencies
          - data-lanes
          - bus-type

required:
  - compatible
  - reg
  - clock-frequency
  - clocks

additionalProperties: false

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

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

        clock-frequency = <400000>;

        camera-sensor@10 {
            compatible = "mipi-ccs-1.0", "mipi-ccs";
            reg = <0x10>;
            reset-gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
            vana-supply = <&vaux3>;
            clocks = <&omap3_isp 0>;
            clock-frequency = <9600000>;
            port {
                ccs_ep: endpoint {
                    data-lanes = <1 2>;
                    remote-endpoint = <&csi2a_ep>;
                    link-frequencies = /bits/ 64 <199200000 210000000
                                                  499200000>;
                    bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
                };
            };
        };
    };
...


code:
MT9M001: 1/2-Inch Megapixel Digital Image Sensor

The MT9M001 is an SXGA-format with a 1/2-inch CMOS active-pixel digital
image sensor. It is programmable through I2C interface.

Required Properties:

- compatible: shall be "onnn,mt9m001".
- clocks: reference to the master clock into sensor

Optional Properties:

- reset-gpios: GPIO handle which is connected to the reset pin of the chip.
  Active low.
- standby-gpios: GPIO handle which is connected to the standby pin of the chip.
  Active high.

The device node must contain one 'port' child node with one 'endpoint' child
sub-node for its digital output video port, in accordance with the video
interface bindings defined in:
Documentation/devicetree/bindings/media/video-interfaces.txt

Example:

	&i2c1 {
		camera-sensor@5d {
			compatible = "onnn,mt9m001";
			reg = <0x5d>;
			reset-gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
			standby-gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
			clocks = <&camera_clk>;
			port {
				mt9m001_out: endpoint {
					remote-endpoint = <&vcap_in>;
				};
			};
		};
	};


code:
Micron 1.3Mp CMOS Digital Image Sensor

The Micron MT9M111 is a CMOS active pixel digital image sensor with an active
array size of 1280H x 1024V. It is programmable through a simple two-wire serial
interface.

Required Properties:
- compatible: value should be "micron,mt9m111"
- clocks: reference to the master clock.
- clock-names: shall be "mclk".

The device node must contain one 'port' child node with one 'endpoint' child
sub-node for its digital output video port, in accordance with the video
interface bindings defined in:
Documentation/devicetree/bindings/media/video-interfaces.txt

Optional endpoint properties:
- pclk-sample: For information see ../video-interfaces.txt. The value is set to
  0 if it isn't specified.

Example:

	i2c_master {
		mt9m111@5d {
			compatible = "micron,mt9m111";
			reg = <0x5d>;
			clocks = <&mclk>;
			clock-names = "mclk";

			port {
				mt9m111_1: endpoint {
					remote-endpoint = <&pxa_camera>;
					pclk-sample = <1>;
				};
			};
		};
	};


code:
* Aptina 1/3-Inch WVGA CMOS Digital Image Sensor

The Aptina MT9V032 is a 1/3-inch CMOS active pixel digital image sensor with
an active array size of 752H x 480V. It is programmable through a simple
two-wire serial interface.

Required Properties:

- compatible: value should be either one among the following
	(a) "aptina,mt9v022" for MT9V022 color sensor
	(b) "aptina,mt9v022m" for MT9V022 monochrome sensor
	(c) "aptina,mt9v024" for MT9V024 color sensor
	(d) "aptina,mt9v024m" for MT9V024 monochrome sensor
	(e) "aptina,mt9v032" for MT9V032 color sensor
	(f) "aptina,mt9v032m" for MT9V032 monochrome sensor
	(g) "aptina,mt9v034" for MT9V034 color sensor
	(h) "aptina,mt9v034m" for MT9V034 monochrome sensor

Optional Properties:

- link-frequencies: List of allowed link frequencies in Hz. Each frequency is
	expressed as a 64-bit big-endian integer.
- reset-gpios: GPIO handle which is connected to the reset pin of the chip.
- standby-gpios: GPIO handle which is connected to the standby pin of the chip.

For further reading on port node refer to
Documentation/devicetree/bindings/media/video-interfaces.txt.

Example:

	mt9v032@5c {
		compatible = "aptina,mt9v032";
		reg = <0x5c>;

		port {
			mt9v032_out: endpoint {
				link-frequencies = /bits/ 64
					<13000000 26600000 27000000>;
			};
		};
	};


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/onnn,ar0521.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ON Semiconductor AR0521 MIPI CSI-2 sensor

maintainers:
  - Krzysztof Hałasa <khalasa@piap.pl>

description: |-
  The AR0521 is a raw CMOS image sensor with MIPI CSI-2 and
  I2C-compatible control interface.

properties:
  compatible:
    const: onnn,ar0521

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    const: extclk

  vaa-supply:
    description:
      Definition of the regulator used as analog (2.7 V) voltage supply.

  vdd-supply:
    description:
      Definition of the regulator used as digital core (1.2 V) voltage supply.

  vdd_io-supply:
    description:
      Definition of the regulator used as digital I/O (1.8 V) voltage supply.

  reset-gpios:
    description: reset GPIO, usually active low
    maxItems: 1

  port:
    $ref: /schemas/graph.yaml#/$defs/port-base
    unevaluatedProperties: false
    description: |
      Video output port.

    properties:
      endpoint:
        $ref: /schemas/media/video-interfaces.yaml#
        unevaluatedProperties: false

        properties:
          bus-type:
            const: 4
          data-lanes:
            anyOf:
              - items:
                  - const: 1
              - items:
                  - const: 1
                  - const: 2
              - items:
                  - const: 1
                  - const: 2
                  - const: 3
                  - const: 4

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - vaa-supply
  - vdd-supply
  - vdd_io-supply
  - port

additionalProperties: false

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

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

            ar0521: camera-sensor@36 {
                    compatible = "onnn,ar0521";
                    reg = <0x36>;
                    pinctrl-names = "default";
                    pinctrl-0 = <&pinctrl_mipi_camera>;
                    clocks = <&clks IMX6QDL_CLK_CKO>;
                    clock-names = "extclk";
                    reset-gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
                    vaa-supply = <&reg_2p7v>;
                    vdd-supply = <&reg_1p2v>;
                    vdd_io-supply = <&reg_1p8v>;

                    port {
                           mipi_camera_to_mipi_csi2: endpoint {
                                    remote-endpoint = <&mipi_csi2_in>;
                                    data-lanes = <1 2 3 4>;
                            };
                    };
            };
    };


code:
* Omnivision OV2640 CMOS sensor

The Omnivision OV2640 sensor supports multiple resolutions output, such as
CIF, SVGA, UXGA. It also can support the YUV422/420, RGB565/555 or raw RGB
output formats.

Required Properties:
- compatible: should be "ovti,ov2640"
- clocks: reference to the xvclk input clock.
- clock-names: should be "xvclk".

Optional Properties:
- resetb-gpios: reference to the GPIO connected to the resetb pin, if any.
- pwdn-gpios: reference to the GPIO connected to the pwdn pin, if any.

The device node must contain one 'port' child node for its digital output
video port, in accordance with the video interface bindings defined in
Documentation/devicetree/bindings/media/video-interfaces.txt.

Example:

	i2c1: i2c@f0018000 {
		ov2640: camera@30 {
			compatible = "ovti,ov2640";
			reg = <0x30>;
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_pck0_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
			resetb-gpios = <&pioE 11 GPIO_ACTIVE_LOW>;
			pwdn-gpios = <&pioE 13 GPIO_ACTIVE_HIGH>;
			clocks = <&pck0>;
			clock-names = "xvclk";
			assigned-clocks = <&pck0>;
			assigned-clock-rates = <25000000>;

			port {
				ov2640_0: endpoint {
					remote-endpoint = <&isi_0>;
				};
			};
		};
	};


code:
* OV2659 1/5-Inch 2Mp SOC Camera

The Omnivision OV2659 is a 1/5-inch SOC camera, with an active array size of
1632H x 1212V. It is programmable through a SCCB. The OV2659 sensor supports
multiple resolutions output, such as UXGA, SVGA, 720p. It also can support
YUV422, RGB565/555 or raw RGB output formats.

Required Properties:
- compatible: Must be "ovti,ov2659"
- reg: I2C slave address
- clocks: reference to the xvclk input clock.
- clock-names: should be "xvclk".
- link-frequencies: target pixel clock frequency.

Optional Properties:
- powerdown-gpios: reference to the GPIO connected to the pwdn pin, if any.
  Active high with internal pull down resistor.
- reset-gpios: reference to the GPIO connected to the resetb pin, if any.
  Active low with internal pull up resistor.

For further reading on port node refer to
Documentation/devicetree/bindings/media/video-interfaces.txt.

Example:

	i2c0@1c22000 {
		...
		...
		 ov2659@30 {
			compatible = "ovti,ov2659";
			reg = <0x30>;

			clocks = <&clk_ov2659 0>;
			clock-names = "xvclk";

			powerdown-gpios = <&gpio6 14 GPIO_ACTIVE_HIGH>;
			reset-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>;

			port {
				ov2659_0: endpoint {
					remote-endpoint = <&vpfe_ep>;
					link-frequencies = /bits/ 64 <70000000>;
				};
			};
		};
		...
	};


code:
* Omnivision OV2685 MIPI CSI-2 sensor

Required Properties:
- compatible: shall be "ovti,ov2685"
- clocks: reference to the xvclk input clock
- clock-names: shall be "xvclk"
- avdd-supply: Analog voltage supply, 2.8 volts
- dovdd-supply: Digital I/O voltage supply, 1.8 volts
- dvdd-supply: Digital core voltage supply, 1.8 volts
- reset-gpios: Low active reset gpio

The device node shall contain one 'port' child node with an
'endpoint' subnode for its digital output video port,
in accordance with the video interface bindings defined in
Documentation/devicetree/bindings/media/video-interfaces.txt.
The endpoint optional property 'data-lanes' shall be "<1>".

Example:
&i2c7 {
	ov2685: camera-sensor@3c {
		compatible = "ovti,ov2685";
		reg = <0x3c>;
		pinctrl-names = "default";
		pinctrl-0 = <&clk_24m_cam>;

		clocks = <&cru SCLK_TESTCLKOUT1>;
		clock-names = "xvclk";

		avdd-supply = <&pp2800_cam>;
		dovdd-supply = <&pp1800>;
		dvdd-supply = <&pp1800>;
		reset-gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;

		port {
			ucam_out: endpoint {
				remote-endpoint = <&mipi_in_ucam>;
				data-lanes = <1>;
			};
		};
	};
};


code:
* Omnivision OV5695 MIPI CSI-2 sensor

Required Properties:
- compatible: shall be "ovti,ov5695"
- clocks: reference to the xvclk input clock
- clock-names: shall be "xvclk"
- avdd-supply: Analog voltage supply, 2.8 volts
- dovdd-supply: Digital I/O voltage supply, 1.8 volts
- dvdd-supply: Digital core voltage supply, 1.2 volts
- reset-gpios: Low active reset gpio

The device node shall contain one 'port' child node with an
'endpoint' subnode for its digital output video port,
in accordance with the video interface bindings defined in
Documentation/devicetree/bindings/media/video-interfaces.txt.
The endpoint optional property 'data-lanes' shall be "<1 2>".

Example:
&i2c7 {
	ov5695: camera-sensor@36 {
		compatible = "ovti,ov5695";
		reg = <0x36>;
		pinctrl-names = "default";
		pinctrl-0 = <&clk_24m_cam>;

		clocks = <&cru SCLK_TESTCLKOUT1>;
		clock-names = "xvclk";

		avdd-supply = <&pp2800_cam>;
		dovdd-supply = <&pp1800>;
		dvdd-supply = <&pp1250_cam>;
		reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;

		port {
			wcam_out: endpoint {
				remote-endpoint = <&mipi_in_wcam>;
				data-lanes = <1 2>;
			};
		};
	};
};


code:
* Omnivision 1/7.5-Inch B&W VGA CMOS Digital Image Sensor

The Omnivision OV7251 is a 1/7.5-Inch CMOS active pixel digital image sensor
with an active array size of 640H x 480V. It is programmable through a serial
I2C interface.

Required Properties:
- compatible: Value should be "ovti,ov7251".
- clocks: Reference to the xclk clock.
- clock-names: Should be "xclk".
- clock-frequency: Frequency of the xclk clock.
- enable-gpios: Chip enable GPIO. Polarity is GPIO_ACTIVE_HIGH. This corresponds
  to the hardware pin XSHUTDOWN which is physically active low.
- vdddo-supply: Chip digital IO regulator.
- vdda-supply: Chip analog regulator.
- vddd-supply: Chip digital core regulator.

The device node shall contain one 'port' child node with a single 'endpoint'
subnode for its digital output video port, in accordance with the video
interface bindings defined in
Documentation/devicetree/bindings/media/video-interfaces.txt.

Example:

	&i2c1 {
		...

		ov7251: camera-sensor@60 {
			compatible = "ovti,ov7251";
			reg = <0x60>;

			enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
			pinctrl-names = "default";
			pinctrl-0 = <&camera_bw_default>;

			clocks = <&clks 200>;
			clock-names = "xclk";
			clock-frequency = <24000000>;

			vdddo-supply = <&camera_dovdd_1v8>;
			vdda-supply = <&camera_avdd_2v8>;
			vddd-supply = <&camera_dvdd_1v2>;

			port {
				ov7251_ep: endpoint {
					clock-lanes = <1>;
					data-lanes = <0>;
					remote-endpoint = <&csi0_ep>;
				};
			};
		};
	};


code:
* Omnivision OV7670 CMOS sensor

The Omnivision OV7670 sensor supports multiple resolutions output, such as
CIF, SVGA, UXGA. It also can support the YUV422/420, RGB565/555 or raw RGB
output formats.

Required Properties:
- compatible: should be "ovti,ov7670"
- clocks: reference to the xclk input clock.
- clock-names: should be "xclk".

Required Endpoint Properties:
- hsync-active: active state of the HSYNC signal, 0/1 for LOW/HIGH respectively.
- vsync-active: active state of the VSYNC signal, 0/1 for LOW/HIGH respectively.

Optional Properties:
- reset-gpios: reference to the GPIO connected to the resetb pin, if any.
  Active is low.
- powerdown-gpios: reference to the GPIO connected to the pwdn pin, if any.
  Active is high.
- ov7670,pclk-hb-disable: a boolean property to suppress pixel clock output
  signal during horizontal blankings.

The device node must contain one 'port' child node with one 'endpoint' child
sub-node for its digital output video port, in accordance with the video
interface bindings defined in:
Documentation/devicetree/bindings/media/video-interfaces.txt.

Example:

	i2c1: i2c@f0018000 {
		ov7670: camera@21 {
			compatible = "ovti,ov7670";
			reg = <0x21>;
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_pck0_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
			reset-gpios = <&pioE 11 GPIO_ACTIVE_LOW>;
			powerdown-gpios = <&pioE 13 GPIO_ACTIVE_HIGH>;
			clocks = <&pck0>;
			clock-names = "xclk";
			assigned-clocks = <&pck0>;
			assigned-clock-rates = <25000000>;

			ov7670,pclk-hb-disable;

			port {
				ov7670_0: endpoint {
					hsync-active = <0>;
					vsync-active = <0>;

					remote-endpoint = <&isi_0>;
				};
			};
		};
	};


code:
* Omnivision OV7740 CMOS image sensor

The Omnivision OV7740 image sensor supports multiple output image
size, such as VGA, and QVGA, CIF and any size smaller. It also
supports the RAW RGB and YUV output formats.

The common video interfaces bindings (see video-interfaces.txt) should
be used to specify link to the image data receiver. The OV7740 device
node should contain one 'port' child node with an 'endpoint' subnode.

Required Properties:
- compatible:	"ovti,ov7740".
- reg:		I2C slave address of the sensor.
- clocks:	Reference to the xvclk input clock.
- clock-names:	"xvclk".

Optional Properties:
- reset-gpios: Rreference to the GPIO connected to the reset_b pin,
  if any. Active low with pull-ip resistor.
- powerdown-gpios: Reference to the GPIO connected to the pwdn pin,
  if any. Active high with pull-down resistor.

Endpoint node mandatory properties:
- remote-endpoint: A phandle to the bus receiver's endpoint node.

Example:

	i2c1: i2c@fc028000 {
		ov7740: camera@21 {
			compatible = "ovti,ov7740";
			reg = <0x21>;
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_sensor_power &pinctrl_sensor_reset>;
			clocks = <&isc>;
			clock-names = "xvclk";
			assigned-clocks = <&isc>;
			assigned-clock-rates = <24000000>;
			reset-gpios = <&pioA 43 GPIO_ACTIVE_LOW>;
			powerdown-gpios = <&pioA 44 GPIO_ACTIVE_HIGH>;

			port {
				ov7740_0: endpoint {
					remote-endpoint = <&isc_0>;
				};
			};
		};
	};


code:
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright (c) 2019 MediaTek Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ov8856.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Omnivision OV8856 CMOS Sensor Device Tree Bindings

maintainers:
  - Dongchun Zhu <dongchun.zhu@mediatek.com>

description: |-
  The Omnivision OV8856 is a high performance, 1/4-inch, 8 megapixel, CMOS
  image sensor that delivers 3264x2448 at 30fps. It provides full-frame,
  sub-sampled, and windowed 10-bit MIPI images in various formats via the
  Serial Camera Control Bus (SCCB) interface. This chip is programmable
  through I2C and two-wire SCCB. The sensor output is available via CSI-2
  serial data output (up to 4-lane).

properties:
  compatible:
    const: ovti,ov8856

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    description:
      Input clock for the sensor.
    items:
      - const: xvclk

  clock-frequency:
    description:
      Frequency of the xvclk clock in Hertz.

  dovdd-supply:
    description:
      Definition of the regulator used as interface power supply.

  avdd-supply:
    description:
      Definition of the regulator used as analog power supply.

  dvdd-supply:
    description:
      Definition of the regulator used as digital power supply.

  reset-gpios:
    description:
      The phandle and specifier for the GPIO that controls sensor reset.
      This corresponds to the hardware pin XSHUTDOWN which is physically
      active low.

  port:
    $ref: /schemas/graph.yaml#/$defs/port-base
    additionalProperties: false

    properties:
      endpoint:
        $ref: /schemas/media/video-interfaces.yaml#
        unevaluatedProperties: false

        properties:
          data-lanes:
            description: |-
              The driver only supports four-lane operation.
            items:
              - const: 1
              - const: 2
              - const: 3
              - const: 4

          link-frequencies:
            description: Frequencies listed are driver, not h/w limitations.
            maxItems: 2
            items:
              enum: [ 360000000, 180000000 ]

        required:
          - link-frequencies

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - clock-frequency
  - dovdd-supply
  - avdd-supply
  - dvdd-supply
  - reset-gpios
  - port

additionalProperties: false

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

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

        ov8856: camera@10 {
            compatible = "ovti,ov8856";
            reg = <0x10>;

            reset-gpios = <&pio 111 GPIO_ACTIVE_LOW>;
            pinctrl-names = "default";
            pinctrl-0 = <&clk_24m_cam>;

            clocks = <&cam_osc>;
            clock-names = "xvclk";
            clock-frequency = <19200000>;

            avdd-supply = <&mt6358_vcama2_reg>;
            dvdd-supply = <&mt6358_vcamd_reg>;
            dovdd-supply = <&mt6358_vcamio_reg>;

            port {
                wcam_out: endpoint {
                    remote-endpoint = <&mipi_in_wcam>;
                    data-lanes = <1 2 3 4>;
                    link-frequencies = /bits/ 64 <360000000>;
                };
            };
        };
    };
...


code:
* Omnivision OV9650/OV9652 CMOS sensor

Required Properties:
- compatible: shall be one of
	"ovti,ov9650"
	"ovti,ov9652"
- clocks: reference to the xvclk input clock.

Optional Properties:
- reset-gpios: reference to the GPIO connected to the resetb pin, if any.
  Active is high.
- powerdown-gpios: reference to the GPIO connected to the pwdn pin, if any.
  Active is high.

The device node shall contain one 'port' child node with one child 'endpoint'
subnode for its digital output video port, in accordance with the video
interface bindings defined in Documentation/devicetree/bindings/media/
video-interfaces.txt.

Example:

&i2c0 {
	ov9650: camera@30 {
		compatible = "ovti,ov9650";
		reg = <0x30>;
		reset-gpios = <&axi_gpio_0 0 GPIO_ACTIVE_HIGH>;
		powerdown-gpios = <&axi_gpio_0 1 GPIO_ACTIVE_HIGH>;
		clocks = <&xclk>;

		port {
			ov9650_0: endpoint {
				remote-endpoint = <&vcap1_in0>;
			};
		};
	};
};


code:
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright (c) 2020 MediaTek Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov02a10.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Omnivision OV02A10 CMOS Sensor Device Tree Bindings

maintainers:
  - Dongchun Zhu <dongchun.zhu@mediatek.com>

description: |-
  The Omnivision OV02A10 is a low-cost, high performance, 1/5-inch, 2 megapixel
  image sensor, which is the latest production derived from Omnivision's CMOS
  image sensor technology. Ihis chip supports high frame rate speeds up to 30fps
  @ 1600x1200 (UXGA) resolution transferred over a 1-lane MIPI interface. The
  sensor output is available via CSI-2 serial data output.

allOf:
  - $ref: /schemas/media/video-interface-devices.yaml#

properties:
  compatible:
    const: ovti,ov02a10

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    description:
      External clock for the sensor.
    items:
      - const: eclk

  clock-frequency:
    description:
      Frequency of the eclk clock in Hz.

  dovdd-supply:
    description:
      Definition of the regulator used as Digital I/O voltage supply.

  avdd-supply:
    description:
      Definition of the regulator used as Analog voltage supply.

  dvdd-supply:
    description:
      Definition of the regulator used as Digital core voltage supply.

  powerdown-gpios:
    description:
      Must be the device tree identifier of the GPIO connected to the
      PD_PAD pin. This pin is used to place the OV02A10 into standby mode
      or shutdown mode. As the line needs to be high for the powerdown mode
      to be active, it should be marked GPIO_ACTIVE_HIGH.
    maxItems: 1

  reset-gpios:
    description:
      Must be the device tree identifier of the GPIO connected to the
      RST_PD pin. If specified, it will be asserted during driver probe.
      As the line needs to be low for the reset to be active, it should be
      marked GPIO_ACTIVE_LOW.
    maxItems: 1

  rotation:
    enum:
      - 0    # Sensor Mounted Upright
      - 180  # Sensor Mounted Upside Down
    default: 0

  port:
    $ref: /schemas/graph.yaml#/$defs/port-base
    additionalProperties: false
    description:
      Output port node, single endpoint describing the CSI-2 transmitter.

    properties:
      endpoint:
        $ref: /schemas/media/video-interfaces.yaml#
        unevaluatedProperties: false

        properties:
          link-frequencies: true
          ovti,mipi-clock-voltage:
            $ref: "/schemas/types.yaml#/definitions/uint32"
            description:
              Definition of MIPI clock voltage unit. This entry corresponds to
              the link speed defined by the 'link-frequencies' property.
              If present, the value shall be in the range of 0-4.
            default: 4

        required:
          - link-frequencies

    required:
      - endpoint

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - clock-frequency
  - dovdd-supply
  - avdd-supply
  - dvdd-supply
  - powerdown-gpios
  - reset-gpios
  - port

additionalProperties: false

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

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

        ov02a10: camera-sensor@3d {
            compatible = "ovti,ov02a10";
            reg = <0x3d>;

            powerdown-gpios = <&pio 107 GPIO_ACTIVE_HIGH>;
            reset-gpios = <&pio 109 GPIO_ACTIVE_LOW>;

            clocks = <&ov02a10_clk>;
            clock-names = "eclk";
            clock-frequency = <24000000>;

            rotation = <180>;

            dovdd-supply = <&ov02a10_dovdd>;
            avdd-supply = <&ov02a10_avdd>;
            dvdd-supply = <&ov02a10_dvdd>;

            port {
                wcam_out: endpoint {
                    link-frequencies = /bits/ 64 <390000000>;
                    ovti,mipi-clock-voltage = <3>;
                    remote-endpoint = <&mipi_in_wcam>;
                };
            };
        };
    };

...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov2680.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Omnivision OV2680 CMOS Sensor

maintainers:
  - Rui Miguel Silva <rmfrfs@gmail.com>

description: |-
  The OV2680 color sensor is a low voltage, high performance 1/5 inch UXGA (2
  megapixel) CMOS image sensor that provides a single-chip UXGA (1600 x 1200)
  camera. It provides full-frame, sub-sampled, or windowed 10-bit images in
  various formats via the control of the Serial Camera Control Bus (SCCB)
  interface. The OV2680 has an image array capable of operating at up to 30
  frames per second (fps) in UXGA resolution.

properties:
  compatible:
    const: ovti,ov2680

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    const: xvclk

  reset-gpios:
    description:
      The phandle and specifier for the GPIO that controls sensor reset.
      This corresponds to the hardware pin XSHUTDOWN which is physically
      active low.
    maxItems: 1

  dovdd-supply:
    description:
      Definition of the regulator used as interface power supply.

  avdd-supply:
    description:
      Definition of the regulator used as analog power supply.

  dvdd-supply:
    description:
      Definition of the regulator used as digital power supply.

  port:
    $ref: /schemas/graph.yaml#/properties/port
    description:
      A node containing an output port node.

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - dovdd-supply
  - avdd-supply
  - dvdd-supply
  - reset-gpios
  - port

additionalProperties: false

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

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

        ov2680: camera-sensor@36 {
                compatible = "ovti,ov2680";
                reg = <0x36>;
                clocks = <&osc>;
                clock-names = "xvclk";
                reset-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;

                dovdd-supply = <&sw2_reg>;
                dvdd-supply = <&sw2_reg>;
                avdd-supply = <&reg_peri_3p15v>;

                port {
                        ov2680_to_mipi: endpoint {
                                remote-endpoint = <&mipi_from_sensor>;
                        };
                };
        };
    };

...


code:
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov4689.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Omnivision OV4689 CMOS

maintainers:
  - Mikhail Rudenko <mike.rudenko@gmail.com>

description: |
  The Omnivision OV4689 is a high performance, 1/3-inch, 4 megapixel
  image sensor. Ihis chip supports high frame rate speeds up to 90 fps
  at 2688x1520 resolution. It is programmable through an I2C
  interface, and sensor output is sent via 1/2/4 lane MIPI CSI-2
  connection.

allOf:
  - $ref: /schemas/media/video-interface-devices.yaml#

properties:
  compatible:
    const: ovti,ov4689

  reg:
    maxItems: 1

  clocks:
    description:
      External clock (XVCLK) for the sensor, 6-64 MHz
    maxItems: 1

  dovdd-supply:
    description:
      Digital I/O voltage supply, 1.7-3.0 V

  avdd-supply:
    description:
      Analog voltage supply, 2.6-3.0 V

  dvdd-supply:
    description:
      Digital core voltage supply, 1.1-1.3 V

  powerdown-gpios:
    description:
      GPIO connected to the powerdown pin (active low)

  reset-gpios:
    maxItems: 1
    description:
      GPIO connected to the reset pin (active low)

  orientation: true

  rotation: true

  port:
    $ref: /schemas/graph.yaml#/$defs/port-base
    additionalProperties: false
    description:
      Output port node, single endpoint describing the CSI-2 transmitter

    properties:
      endpoint:
        $ref: /schemas/media/video-interfaces.yaml#
        unevaluatedProperties: false

        properties:
          data-lanes:
            oneOf:
              - items:
                  - const: 1
                  - const: 2
                  - const: 3
                  - const: 4
              - items:
                  - const: 1
                  - const: 2
              - items:
                  - const: 1
          link-frequencies: true

        required:
          - data-lanes
          - link-frequencies

required:
  - compatible
  - reg
  - clocks
  - dovdd-supply
  - avdd-supply
  - dvdd-supply
  - port

additionalProperties: false

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

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

        ov4689: camera@36 {
            compatible = "ovti,ov4689";
            reg = <0x36>;

            clocks = <&ov4689_clk>;

            avdd-supply = <&ov4689_avdd>;
            dovdd-supply = <&ov4689_dovdd>;
            dvdd-supply = <&ov4689_dvdd>;

            powerdown-gpios = <&pio 107 GPIO_ACTIVE_LOW>;
            reset-gpios = <&pio 109 GPIO_ACTIVE_LOW>;

            orientation = <2>;
            rotation = <0>;

            port {
                wcam_out: endpoint {
                    remote-endpoint = <&mipi_in_wcam>;
                    data-lanes = <1 2 3 4>;
                    link-frequencies = /bits/ 64 <504000000>;
                };
            };
        };
    };

...


code:
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov5640.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: OmniVision OV5640 Image Sensor Device Tree Bindings

maintainers:
  - Steve Longerbeam <slongerbeam@gmail.com>

allOf:
  - $ref: /schemas/media/video-interface-devices.yaml#

properties:
  compatible:
    const: ovti,ov5640

  reg:
    maxItems: 1

  clocks:
    description: XCLK Input Clock

  clock-names:
    const: xclk

  AVDD-supply:
    description: Analog voltage supply, 2.8 volts

  DVDD-supply:
    description: Digital core voltage supply, 1.5 volts

  DOVDD-supply:
    description: Digital I/O voltage supply, 1.8 volts

  powerdown-gpios:
    maxItems: 1
    description: >
      Reference to the GPIO connected to the powerdown pin, if any.

  reset-gpios:
    maxItems: 1
    description: >
      Reference to the GPIO connected to the reset pin, if any.

  rotation:
    enum:
      - 0
      - 180

  port:
    description: Digital Output Port
    $ref: /schemas/graph.yaml#/$defs/port-base
    additionalProperties: false

    properties:
      endpoint:
        $ref: /schemas/media/video-interfaces.yaml#
        unevaluatedProperties: false

        properties:
          clock-lanes:
            const: 0

          data-lanes:
            minItems: 1
            maxItems: 2
            items:
              enum: [1, 2]

          bus-width:
            enum: [8, 10]

          data-shift:
            enum: [0, 2]

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - AVDD-supply
  - DVDD-supply
  - DOVDD-supply
  - port

additionalProperties: false

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

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

          camera@3c {
              compatible = "ovti,ov5640";
              pinctrl-names = "default";
              pinctrl-0 = <&pinctrl_ov5640>;
              reg = <0x3c>;
              clocks = <&clks IMX6QDL_CLK_CKO>;
              clock-names = "xclk";
              DOVDD-supply = <&vgen4_reg>; /* 1.8v */
              AVDD-supply = <&vgen3_reg>;  /* 2.8v */
              DVDD-supply = <&vgen2_reg>;  /* 1.5v */
              powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
              reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
              rotation = <180>;

              port {
                  /* MIPI CSI-2 bus endpoint */
                  ov5640_to_mipi_csi2: endpoint {
                      remote-endpoint = <&mipi_csi2_from_ov5640>;
                      clock-lanes = <0>;
                      data-lanes = <1 2>;
                  };
              };
          };
      };

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

          camera@3c {
              compatible = "ovti,ov5640";
              pinctrl-names = "default";
              pinctrl-0 = <&pinctrl_ov5640>;
              reg = <0x3c>;
              clocks = <&clk_ext_camera>;
              clock-names = "xclk";
              DOVDD-supply = <&vgen4_reg>; /* 1.8v */
              AVDD-supply = <&vgen3_reg>;  /* 2.8v */
              DVDD-supply = <&vgen2_reg>;  /* 1.5v */

              port {
                  /* Parallel bus endpoint */
                  ov5640_to_parallel: endpoint {
                      remote-endpoint = <&parallel_from_ov5640>;
                      bus-width = <8>;
                      data-shift = <2>; /* lines 9:2 are used */
                      hsync-active = <0>;
                      vsync-active = <0>;
                      pclk-sample = <1>;
                  };
              };
          };
      };

...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov5645.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: OmniVision OV5645 Image Sensor Device Tree Bindings

maintainers:
  - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

properties:
  compatible:
    const: ovti,ov5645

  reg:
    maxItems: 1

  clocks:
    description: XCLK Input Clock

  clock-frequency:
    description: Frequency of the xclk clock in Hz.

  vdda-supply:
    description: Analog voltage supply, 2.8 volts

  vddd-supply:
    description: Digital core voltage supply, 1.5 volts

  vdddo-supply:
    description: Digital I/O voltage supply, 1.8 volts

  enable-gpios:
    maxItems: 1
    description:
      Reference to the GPIO connected to the PWDNB pin, if any.

  reset-gpios:
    maxItems: 1
    description:
      Reference to the GPIO connected to the RESETB pin, if any.

  port:
    description: Digital Output Port
    $ref: /schemas/graph.yaml#/$defs/port-base
    additionalProperties: false

    properties:
      endpoint:
        $ref: /schemas/media/video-interfaces.yaml#
        unevaluatedProperties: false

        properties:
          data-lanes:
            minItems: 1
            maxItems: 2
            items:
              enum: [1, 2]

        required:
          - data-lanes

required:
  - compatible
  - reg
  - clocks
  - vdddo-supply
  - vdda-supply
  - vddd-supply
  - port

additionalProperties: false

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

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

        camera@3c {
            compatible = "ovti,ov5645";
            reg = <0x3c>;
            clocks = <&clks 1>;
            clock-frequency = <24000000>;
            vdddo-supply = <&ov5645_vdddo_1v8>;
            vdda-supply = <&ov5645_vdda_2v8>;
            vddd-supply = <&ov5645_vddd_1v5>;
            enable-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
            reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
            pinctrl-names = "default";
            pinctrl-0 = <&pinctrl_ov5645>;

            port {
                ov5645_ep: endpoint {
                    remote-endpoint = <&csi0_ep>;
                    data-lanes = <1 2>;
                };
            };
        };
    };
...


code:
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov5647.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Omnivision OV5647 raw image sensor

maintainers:
  - Dave Stevenson <dave.stevenson@raspberrypi.com>
  - Jacopo Mondi <jacopo@jmondi.org>

description: |-
  The OV5647 is a raw image sensor with MIPI CSI-2 and CCP2 image data
  interfaces and CCI (I2C compatible) control bus.

properties:
  compatible:
    const: ovti,ov5647

  reg:
    description: I2C device address.
    maxItems: 1

  clocks:
    description: Reference to the xclk clock.
    maxItems: 1

  pwdn-gpios:
    description: Reference to the GPIO connected to the pwdn pin. Active high.
    maxItems: 1

  port:
    $ref: /schemas/graph.yaml#/$defs/port-base
    additionalProperties: false

    properties:
      endpoint:
        $ref: /schemas/media/video-interfaces.yaml#
        unevaluatedProperties: false

        properties:
          clock-noncontinuous: true

required:
  - compatible
  - reg
  - clocks
  - port

additionalProperties: false

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

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

        ov5647: camera@36 {
            compatible = "ovti,ov5647";
            reg = <0x36>;
            clocks = <&camera_clk>;
            pwdn-gpios = <&pioE 29 GPIO_ACTIVE_HIGH>;

            port {
                camera_out: endpoint {
                    remote-endpoint = <&csi1_ep1>;
                };
            };
        };
    };

...


code:
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov5648.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: OmniVision OV5648 Image Sensor Device Tree Bindings

maintainers:
  - Paul Kocialkowski <paul.kocialkowski@bootlin.com>

properties:
  compatible:
    const: ovti,ov5648

  reg:
    maxItems: 1

  clocks:
    items:
      - description: XVCLK Clock

  assigned-clocks:
    maxItems: 1

  assigned-clock-rates:
    maxItems: 1

  dvdd-supply:
    description: Digital Domain Power Supply

  avdd-supply:
    description: Analog Domain Power Supply (internal AVDD is used if missing)

  dovdd-supply:
    description: I/O Domain Power Supply

  powerdown-gpios:
    maxItems: 1
    description: Power Down Pin GPIO Control (active low)

  reset-gpios:
    maxItems: 1
    description: Reset Pin GPIO Control (active low)

  port:
    description: MIPI CSI-2 transmitter port
    $ref: /schemas/graph.yaml#/$defs/port-base
    additionalProperties: false

    properties:
      endpoint:
        $ref: /schemas/media/video-interfaces.yaml#
        unevaluatedProperties: false

        properties:
          link-frequencies: true

          data-lanes:
            minItems: 1
            maxItems: 2

        required:
          - data-lanes
          - link-frequencies

required:
  - compatible
  - reg
  - clocks
  - assigned-clocks
  - assigned-clock-rates
  - dvdd-supply
  - dovdd-supply
  - port

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/sun8i-v3s-ccu.h>
    #include <dt-bindings/gpio/gpio.h>

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

        ov5648: camera@36 {
            compatible = "ovti,ov5648";
            reg = <0x36>;

            dvdd-supply = <&ov5648_dvdd>;
            avdd-supply = <&ov5648_avdd>;
            dovdd-supply = <&ov5648_dovdd>;
            clocks = <&ov5648_xvclk 0>;
            assigned-clocks = <&ov5648_xvclk 0>;
            assigned-clock-rates = <24000000>;

            ov5648_out: port {
                ov5648_out_mipi_csi2: endpoint {
                    data-lanes = <1 2>;
                    link-frequencies = /bits/ 64 <210000000 168000000>;

                    remote-endpoint = <&mipi_csi2_in_ov5648>;
                };
            };
        };
    };