# 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:
    description:
      A node containing an output port node.
    $ref: /schemas/graph.yaml#/$defs/port-base
    additionalProperties: false

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

        properties:
          link-frequencies: true

          remote-endpoint: true

        required:
          - link-frequencies

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>;
                                link-frequencies = /bits/ 64 <330000000>;
                        };
                };
        };
    };

...
