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

title: OmniVision OV64A40 Image Sensor

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

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

properties:
  compatible:
    const: ovti,ov64a40

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

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

  dvdd-supply:
    description: Digital core voltage supply, 1.1 volts

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

  powerdown-gpios:
    maxItems: 1

  reset-gpios:
    maxItems: 1

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

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

        properties:
          bus-type:
            enum:
              - 1 # MIPI CSI-2 C-PHY
              - 4 # MIPI CSI-2 D-PHY
          data-lanes: true
          link-frequencies: true
          clock-noncontinuous: true
          remote-endpoint: true

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

required:
  - compatible
  - reg
  - clocks
  - port

unevaluatedProperties: false

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

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

          camera@36 {
              compatible = "ovti,ov64a40";
              reg = <0x36>;
              clocks = <&camera_clk>;
              dovdd-supply = <&vgen4_reg>;
              avdd-supply = <&vgen3_reg>;
              dvdd-supply = <&vgen2_reg>;
              powerdown-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
              reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
              rotation = <180>;
              orientation = <2>;

              port {
                  endpoint {
                      remote-endpoint = <&mipi_csi2_in>;
                      bus-type = <4>;
                      data-lanes = <1 2 3 4>;
                      link-frequencies = /bits/ 64 <456000000>;
                  };
              };
          };
      };

...
