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

title: Omnivision OV7720/OV7725 CMOS sensor

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

description: |
  The Omnivision OV7720/OV7725 sensor supports multiple resolutions output,
  such as VGA, QVGA, and any size scaling down from CIF to 40x30. It also can
  support the YUV422, RGB565/555/444, GRB422 or raw RGB output formats.

properties:
  compatible:
    enum:
      - ovti,ov7720
      - ovti,ov7725

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  reset-gpios:
    description: |
      Reference to the GPIO connected to the RSTB pin which is active low.
    maxItems: 1

  powerdown-gpios:
    description: |
      Reference to the GPIO connected to the PWDN pin which is active high.
    maxItems: 1

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

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

        properties:
          bus-type:
            enum: [5, 6]

          bus-width:
            enum: [8, 10]
            default: 10

          data-shift:
            enum: [0, 2]
            default: 0

          hsync-active:
            enum: [0, 1]
            default: 1

          vsync-active:
            enum: [0, 1]
            default: 1

          pclk-sample:
            enum: [0, 1]
            default: 1

        allOf:
          - if:
              properties:
                bus-type:
                  const: 6
            then:
              properties:
                hsync-active: false
                vsync-active: false

          - if:
              properties:
                bus-width:
                  const: 10
            then:
              properties:
                data-shift:
                  const: 0

        required:
          - bus-type

    additionalProperties: false

required:
  - compatible
  - reg
  - clocks
  - port

additionalProperties: false

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

    i2c0 {
        #address-cells = <1>;
        #size-cells = <0>;
        ov772x: camera@21 {
            compatible = "ovti,ov7725";
            reg = <0x21>;
            reset-gpios = <&axi_gpio_0 0 GPIO_ACTIVE_LOW>;
            powerdown-gpios = <&axi_gpio_0 1 GPIO_ACTIVE_LOW>;
            clocks = <&xclk>;

            port {
                ov772x_0: endpoint {
                    bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
                    vsync-active = <0>;
                    hsync-active = <0>;
                    pclk-sample = <0>;
                    bus-width = <8>;
                    data-shift = <0>;
                    remote-endpoint = <&vcap1_in0>;
                };
            };
        };
    };

...
