# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (c) 2022 Theobroma Systems Design und Consulting GmbH
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/i2c/ovti,ov5675.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Omnivision OV5675 CMOS Sensor

maintainers:
  - Quentin Schulz <quentin.schulz@theobroma-systems.com>

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

description: |
  The Omnivision OV5675 is a high performance, 1/5-inch, 5 megapixel, CMOS
  image sensor that delivers 2592x1944 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 2-lane).

properties:
  compatible:
    const: ovti,ov5675

  reg:
    maxItems: 1

  clocks:
    description:
      System input clock (aka XVCLK). From 6 to 27 MHz.
    maxItems: 1

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

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

  dvdd-supply:
    description:
      Digital core voltage supply, 1.2 volts.

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

  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

          # Supports max data transfer of 900 Mbps per lane
          link-frequencies: true

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

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/clock/px30-cru.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/pinctrl/rockchip.h>

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

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

            reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;
            pinctrl-names = "default";
            pinctrl-0 = <&cif_clkout_m0>;

            clocks = <&cru SCLK_CIF_OUT>;
            assigned-clocks = <&cru SCLK_CIF_OUT>;
            assigned-clock-rates = <19200000>;

            avdd-supply = <&vcc_1v8>;
            dvdd-supply = <&vcc_1v2>;
            dovdd-supply = <&vcc_2v8>;

            rotation = <90>;
            orientation = <0>;

            port {
                ucam_out: endpoint {
                    remote-endpoint = <&mipi_in_ucam>;
                    data-lanes = <1 2>;
                    link-frequencies = /bits/ 64 <450000000>;
                };
            };
        };
    };
...
