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

title: Omnivision OV5670 5 Megapixels raw image sensor

maintainers:
  - Jacopo Mondi <jacopo.mondi@ideasonboard.com>

description: |-
  The OV5670 is a 5 Megapixels raw image sensor which provides images in 10-bits
  RAW BGGR Bayer format on a 2 data lanes MIPI CSI-2 serial interface and is
  controlled through an I2C compatible control bus.

properties:
  compatible:
    const: ovti,ov5670

  reg:
    maxItems: 1

  clocks:
    description: System clock. From 6 to 27 MHz.
    maxItems: 1

  powerdown-gpios:
    description: Reference to the GPIO connected to the PWDNB pin. Active low.

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

  avdd-supply:
    description: Analog circuit power. Typically 2.8V.

  dvdd-supply:
    description: Digital circuit power. Typically 1.2V.

  dovdd-supply:
    description: Digital I/O circuit power. Typically 2.8V or 1.8V.

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

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

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

          clock-noncontinuous: true
          remote-endpoint: true

required:
  - compatible
  - reg
  - clocks
  - port

additionalProperties: false

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

        ov5670: sensor@36 {
            compatible = "ovti,ov5670";
            reg = <0x36>;

            clocks = <&sensor_xclk>;

            port {
                ov5670_ep: endpoint {
                    remote-endpoint = <&csi_ep>;
                    data-lanes = <1 2>;
                    clock-noncontinuous;
                };
            };
        };
    };

...
