162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci# Copyright (c) 2020 MediaTek Inc.
362306a36Sopenharmony_ci%YAML 1.2
462306a36Sopenharmony_ci---
562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/media/i2c/ovti,ov02a10.yaml#
662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
762306a36Sopenharmony_ci
862306a36Sopenharmony_cititle: Omnivision OV02A10 CMOS Sensor
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cimaintainers:
1162306a36Sopenharmony_ci  - Dongchun Zhu <dongchun.zhu@mediatek.com>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription: |-
1462306a36Sopenharmony_ci  The Omnivision OV02A10 is a low-cost, high performance, 1/5-inch, 2 megapixel
1562306a36Sopenharmony_ci  image sensor, which is the latest production derived from Omnivision's CMOS
1662306a36Sopenharmony_ci  image sensor technology. Ihis chip supports high frame rate speeds up to 30fps
1762306a36Sopenharmony_ci  @ 1600x1200 (UXGA) resolution transferred over a 1-lane MIPI interface. The
1862306a36Sopenharmony_ci  sensor output is available via CSI-2 serial data output.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciallOf:
2162306a36Sopenharmony_ci  - $ref: /schemas/media/video-interface-devices.yaml#
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciproperties:
2462306a36Sopenharmony_ci  compatible:
2562306a36Sopenharmony_ci    const: ovti,ov02a10
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  reg:
2862306a36Sopenharmony_ci    maxItems: 1
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  clocks:
3162306a36Sopenharmony_ci    maxItems: 1
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci  clock-names:
3462306a36Sopenharmony_ci    description:
3562306a36Sopenharmony_ci      External clock for the sensor.
3662306a36Sopenharmony_ci    items:
3762306a36Sopenharmony_ci      - const: eclk
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci  clock-frequency:
4062306a36Sopenharmony_ci    description:
4162306a36Sopenharmony_ci      Frequency of the eclk clock in Hz.
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  dovdd-supply:
4462306a36Sopenharmony_ci    description:
4562306a36Sopenharmony_ci      Definition of the regulator used as Digital I/O voltage supply.
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci  avdd-supply:
4862306a36Sopenharmony_ci    description:
4962306a36Sopenharmony_ci      Definition of the regulator used as Analog voltage supply.
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci  dvdd-supply:
5262306a36Sopenharmony_ci    description:
5362306a36Sopenharmony_ci      Definition of the regulator used as Digital core voltage supply.
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci  powerdown-gpios:
5662306a36Sopenharmony_ci    description:
5762306a36Sopenharmony_ci      Must be the device tree identifier of the GPIO connected to the
5862306a36Sopenharmony_ci      PD_PAD pin. This pin is used to place the OV02A10 into standby mode
5962306a36Sopenharmony_ci      or shutdown mode. As the line needs to be high for the powerdown mode
6062306a36Sopenharmony_ci      to be active, it should be marked GPIO_ACTIVE_HIGH.
6162306a36Sopenharmony_ci    maxItems: 1
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci  reset-gpios:
6462306a36Sopenharmony_ci    description:
6562306a36Sopenharmony_ci      Must be the device tree identifier of the GPIO connected to the
6662306a36Sopenharmony_ci      RST_PD pin. If specified, it will be asserted during driver probe.
6762306a36Sopenharmony_ci      As the line needs to be low for the reset to be active, it should be
6862306a36Sopenharmony_ci      marked GPIO_ACTIVE_LOW.
6962306a36Sopenharmony_ci    maxItems: 1
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci  rotation:
7262306a36Sopenharmony_ci    enum:
7362306a36Sopenharmony_ci      - 0    # Sensor Mounted Upright
7462306a36Sopenharmony_ci      - 180  # Sensor Mounted Upside Down
7562306a36Sopenharmony_ci    default: 0
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci  port:
7862306a36Sopenharmony_ci    $ref: /schemas/graph.yaml#/$defs/port-base
7962306a36Sopenharmony_ci    additionalProperties: false
8062306a36Sopenharmony_ci    description:
8162306a36Sopenharmony_ci      Output port node, single endpoint describing the CSI-2 transmitter.
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci    properties:
8462306a36Sopenharmony_ci      endpoint:
8562306a36Sopenharmony_ci        $ref: /schemas/media/video-interfaces.yaml#
8662306a36Sopenharmony_ci        unevaluatedProperties: false
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci        properties:
8962306a36Sopenharmony_ci          link-frequencies: true
9062306a36Sopenharmony_ci          ovti,mipi-clock-voltage:
9162306a36Sopenharmony_ci            $ref: /schemas/types.yaml#/definitions/uint32
9262306a36Sopenharmony_ci            description:
9362306a36Sopenharmony_ci              Definition of MIPI clock voltage unit. This entry corresponds to
9462306a36Sopenharmony_ci              the link speed defined by the 'link-frequencies' property.
9562306a36Sopenharmony_ci              If present, the value shall be in the range of 0-4.
9662306a36Sopenharmony_ci            default: 4
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci        required:
9962306a36Sopenharmony_ci          - link-frequencies
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci    required:
10262306a36Sopenharmony_ci      - endpoint
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_cirequired:
10562306a36Sopenharmony_ci  - compatible
10662306a36Sopenharmony_ci  - reg
10762306a36Sopenharmony_ci  - clocks
10862306a36Sopenharmony_ci  - clock-names
10962306a36Sopenharmony_ci  - clock-frequency
11062306a36Sopenharmony_ci  - dovdd-supply
11162306a36Sopenharmony_ci  - avdd-supply
11262306a36Sopenharmony_ci  - dvdd-supply
11362306a36Sopenharmony_ci  - powerdown-gpios
11462306a36Sopenharmony_ci  - reset-gpios
11562306a36Sopenharmony_ci  - port
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ciadditionalProperties: false
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ciexamples:
12062306a36Sopenharmony_ci  - |
12162306a36Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ci    i2c {
12462306a36Sopenharmony_ci        #address-cells = <1>;
12562306a36Sopenharmony_ci        #size-cells = <0>;
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci        ov02a10: camera-sensor@3d {
12862306a36Sopenharmony_ci            compatible = "ovti,ov02a10";
12962306a36Sopenharmony_ci            reg = <0x3d>;
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci            powerdown-gpios = <&pio 107 GPIO_ACTIVE_HIGH>;
13262306a36Sopenharmony_ci            reset-gpios = <&pio 109 GPIO_ACTIVE_LOW>;
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci            clocks = <&ov02a10_clk>;
13562306a36Sopenharmony_ci            clock-names = "eclk";
13662306a36Sopenharmony_ci            clock-frequency = <24000000>;
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci            rotation = <180>;
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci            dovdd-supply = <&ov02a10_dovdd>;
14162306a36Sopenharmony_ci            avdd-supply = <&ov02a10_avdd>;
14262306a36Sopenharmony_ci            dvdd-supply = <&ov02a10_dvdd>;
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci            port {
14562306a36Sopenharmony_ci                wcam_out: endpoint {
14662306a36Sopenharmony_ci                    link-frequencies = /bits/ 64 <390000000>;
14762306a36Sopenharmony_ci                    ovti,mipi-clock-voltage = <3>;
14862306a36Sopenharmony_ci                    remote-endpoint = <&mipi_in_wcam>;
14962306a36Sopenharmony_ci                };
15062306a36Sopenharmony_ci            };
15162306a36Sopenharmony_ci        };
15262306a36Sopenharmony_ci    };
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ci...
155