1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/media/i2c/ovti,ov772x.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Omnivision OV7720/OV7725 CMOS sensor
8
9maintainers:
10  - Jacopo Mondi <jacopo@jmondi.org>
11
12description: |
13  The Omnivision OV7720/OV7725 sensor supports multiple resolutions output,
14  such as VGA, QVGA, and any size scaling down from CIF to 40x30. It also can
15  support the YUV422, RGB565/555/444, GRB422 or raw RGB output formats.
16
17properties:
18  compatible:
19    enum:
20      - ovti,ov7720
21      - ovti,ov7725
22
23  reg:
24    maxItems: 1
25
26  clocks:
27    maxItems: 1
28
29  reset-gpios:
30    description: |
31      Reference to the GPIO connected to the RSTB pin which is active low.
32    maxItems: 1
33
34  powerdown-gpios:
35    description: |
36      Reference to the GPIO connected to the PWDN pin which is active high.
37    maxItems: 1
38
39  port:
40    $ref: /schemas/graph.yaml#/$defs/port-base
41    description: |
42      Video output port.
43
44    properties:
45      endpoint:
46        $ref: /schemas/media/video-interfaces.yaml#
47        unevaluatedProperties: false
48
49        properties:
50          bus-type:
51            enum: [5, 6]
52
53          bus-width:
54            enum: [8, 10]
55            default: 10
56
57          data-shift:
58            enum: [0, 2]
59            default: 0
60
61          hsync-active:
62            enum: [0, 1]
63            default: 1
64
65          vsync-active:
66            enum: [0, 1]
67            default: 1
68
69          pclk-sample:
70            enum: [0, 1]
71            default: 1
72
73        allOf:
74          - if:
75              properties:
76                bus-type:
77                  const: 6
78            then:
79              properties:
80                hsync-active: false
81                vsync-active: false
82
83          - if:
84              properties:
85                bus-width:
86                  const: 10
87            then:
88              properties:
89                data-shift:
90                  const: 0
91
92        required:
93          - bus-type
94
95    additionalProperties: false
96
97required:
98  - compatible
99  - reg
100  - clocks
101  - port
102
103additionalProperties: false
104
105examples:
106  - |
107    #include <dt-bindings/gpio/gpio.h>
108    #include <dt-bindings/media/video-interfaces.h>
109
110    i2c {
111        #address-cells = <1>;
112        #size-cells = <0>;
113        ov772x: camera@21 {
114            compatible = "ovti,ov7725";
115            reg = <0x21>;
116            reset-gpios = <&axi_gpio_0 0 GPIO_ACTIVE_LOW>;
117            powerdown-gpios = <&axi_gpio_0 1 GPIO_ACTIVE_LOW>;
118            clocks = <&xclk>;
119
120            port {
121                ov772x_0: endpoint {
122                    bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
123                    vsync-active = <0>;
124                    hsync-active = <0>;
125                    pclk-sample = <0>;
126                    bus-width = <8>;
127                    data-shift = <0>;
128                    remote-endpoint = <&vcap1_in0>;
129                };
130            };
131        };
132    };
133
134...
135