162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/media/i2c/ovti,ov772x.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Omnivision OV7720/OV7725 CMOS sensor
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Jacopo Mondi <jacopo@jmondi.org>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  The Omnivision OV7720/OV7725 sensor supports multiple resolutions output,
1462306a36Sopenharmony_ci  such as VGA, QVGA, and any size scaling down from CIF to 40x30. It also can
1562306a36Sopenharmony_ci  support the YUV422, RGB565/555/444, GRB422 or raw RGB output formats.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciproperties:
1862306a36Sopenharmony_ci  compatible:
1962306a36Sopenharmony_ci    enum:
2062306a36Sopenharmony_ci      - ovti,ov7720
2162306a36Sopenharmony_ci      - ovti,ov7725
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci  reg:
2462306a36Sopenharmony_ci    maxItems: 1
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci  clocks:
2762306a36Sopenharmony_ci    maxItems: 1
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  reset-gpios:
3062306a36Sopenharmony_ci    description: |
3162306a36Sopenharmony_ci      Reference to the GPIO connected to the RSTB pin which is active low.
3262306a36Sopenharmony_ci    maxItems: 1
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci  powerdown-gpios:
3562306a36Sopenharmony_ci    description: |
3662306a36Sopenharmony_ci      Reference to the GPIO connected to the PWDN pin which is active high.
3762306a36Sopenharmony_ci    maxItems: 1
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci  port:
4062306a36Sopenharmony_ci    $ref: /schemas/graph.yaml#/$defs/port-base
4162306a36Sopenharmony_ci    description: |
4262306a36Sopenharmony_ci      Video output port.
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci    properties:
4562306a36Sopenharmony_ci      endpoint:
4662306a36Sopenharmony_ci        $ref: /schemas/media/video-interfaces.yaml#
4762306a36Sopenharmony_ci        unevaluatedProperties: false
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci        properties:
5062306a36Sopenharmony_ci          bus-type:
5162306a36Sopenharmony_ci            enum: [5, 6]
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci          bus-width:
5462306a36Sopenharmony_ci            enum: [8, 10]
5562306a36Sopenharmony_ci            default: 10
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci          data-shift:
5862306a36Sopenharmony_ci            enum: [0, 2]
5962306a36Sopenharmony_ci            default: 0
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci          hsync-active:
6262306a36Sopenharmony_ci            enum: [0, 1]
6362306a36Sopenharmony_ci            default: 1
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci          vsync-active:
6662306a36Sopenharmony_ci            enum: [0, 1]
6762306a36Sopenharmony_ci            default: 1
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci          pclk-sample:
7062306a36Sopenharmony_ci            enum: [0, 1]
7162306a36Sopenharmony_ci            default: 1
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci        allOf:
7462306a36Sopenharmony_ci          - if:
7562306a36Sopenharmony_ci              properties:
7662306a36Sopenharmony_ci                bus-type:
7762306a36Sopenharmony_ci                  const: 6
7862306a36Sopenharmony_ci            then:
7962306a36Sopenharmony_ci              properties:
8062306a36Sopenharmony_ci                hsync-active: false
8162306a36Sopenharmony_ci                vsync-active: false
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci          - if:
8462306a36Sopenharmony_ci              properties:
8562306a36Sopenharmony_ci                bus-width:
8662306a36Sopenharmony_ci                  const: 10
8762306a36Sopenharmony_ci            then:
8862306a36Sopenharmony_ci              properties:
8962306a36Sopenharmony_ci                data-shift:
9062306a36Sopenharmony_ci                  const: 0
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci        required:
9362306a36Sopenharmony_ci          - bus-type
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci    additionalProperties: false
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_cirequired:
9862306a36Sopenharmony_ci  - compatible
9962306a36Sopenharmony_ci  - reg
10062306a36Sopenharmony_ci  - clocks
10162306a36Sopenharmony_ci  - port
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ciadditionalProperties: false
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ciexamples:
10662306a36Sopenharmony_ci  - |
10762306a36Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
10862306a36Sopenharmony_ci    #include <dt-bindings/media/video-interfaces.h>
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci    i2c {
11162306a36Sopenharmony_ci        #address-cells = <1>;
11262306a36Sopenharmony_ci        #size-cells = <0>;
11362306a36Sopenharmony_ci        ov772x: camera@21 {
11462306a36Sopenharmony_ci            compatible = "ovti,ov7725";
11562306a36Sopenharmony_ci            reg = <0x21>;
11662306a36Sopenharmony_ci            reset-gpios = <&axi_gpio_0 0 GPIO_ACTIVE_LOW>;
11762306a36Sopenharmony_ci            powerdown-gpios = <&axi_gpio_0 1 GPIO_ACTIVE_LOW>;
11862306a36Sopenharmony_ci            clocks = <&xclk>;
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci            port {
12162306a36Sopenharmony_ci                ov772x_0: endpoint {
12262306a36Sopenharmony_ci                    bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
12362306a36Sopenharmony_ci                    vsync-active = <0>;
12462306a36Sopenharmony_ci                    hsync-active = <0>;
12562306a36Sopenharmony_ci                    pclk-sample = <0>;
12662306a36Sopenharmony_ci                    bus-width = <8>;
12762306a36Sopenharmony_ci                    data-shift = <0>;
12862306a36Sopenharmony_ci                    remote-endpoint = <&vcap1_in0>;
12962306a36Sopenharmony_ci                };
13062306a36Sopenharmony_ci            };
13162306a36Sopenharmony_ci        };
13262306a36Sopenharmony_ci    };
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci...
135