Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / media / i2c / ovti,ov5675.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 # Copyright (c) 2022 Theobroma Systems Design und Consulting GmbH
3 %YAML 1.2
4 ---
5 $id: http://devicetree.org/schemas/media/i2c/ovti,ov5675.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
7
8 title: Omnivision OV5675 CMOS Sensor
9
10 maintainers:
11   - Quentin Schulz <quentin.schulz@theobroma-systems.com>
12
13 allOf:
14   - $ref: /schemas/media/video-interface-devices.yaml#
15
16 description: |
17   The Omnivision OV5675 is a high performance, 1/5-inch, 5 megapixel, CMOS
18   image sensor that delivers 2592x1944 at 30fps. It provides full-frame,
19   sub-sampled, and windowed 10-bit MIPI images in various formats via the
20   Serial Camera Control Bus (SCCB) interface.
21
22   This chip is programmable through I2C and two-wire SCCB. The sensor output
23   is available via CSI-2 serial data output (up to 2-lane).
24
25 properties:
26   compatible:
27     const: ovti,ov5675
28
29   reg:
30     maxItems: 1
31
32   clocks:
33     description:
34       System input clock (aka XVCLK). From 6 to 27 MHz.
35     maxItems: 1
36
37   dovdd-supply:
38     description:
39       Digital I/O voltage supply, 1.8 volts.
40
41   avdd-supply:
42     description:
43       Analog voltage supply, 2.8 volts.
44
45   dvdd-supply:
46     description:
47       Digital core voltage supply, 1.2 volts.
48
49   reset-gpios:
50     description:
51       The phandle and specifier for the GPIO that controls sensor reset.
52       This corresponds to the hardware pin XSHUTDN which is physically
53       active low.
54     maxItems: 1
55
56   port:
57     $ref: /schemas/graph.yaml#/$defs/port-base
58     additionalProperties: false
59
60     properties:
61       endpoint:
62         $ref: /schemas/media/video-interfaces.yaml#
63         unevaluatedProperties: false
64
65         properties:
66           data-lanes:
67             minItems: 1
68             maxItems: 2
69
70           # Supports max data transfer of 900 Mbps per lane
71           link-frequencies: true
72
73 required:
74   - compatible
75   - reg
76   - clocks
77   - dovdd-supply
78   - avdd-supply
79   - dvdd-supply
80   - port
81
82 unevaluatedProperties: false
83
84 examples:
85   - |
86     #include <dt-bindings/clock/px30-cru.h>
87     #include <dt-bindings/gpio/gpio.h>
88     #include <dt-bindings/pinctrl/rockchip.h>
89
90     i2c {
91         #address-cells = <1>;
92         #size-cells = <0>;
93
94         ov5675: camera@36 {
95             compatible = "ovti,ov5675";
96             reg = <0x36>;
97
98             reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;
99             pinctrl-names = "default";
100             pinctrl-0 = <&cif_clkout_m0>;
101
102             clocks = <&cru SCLK_CIF_OUT>;
103             assigned-clocks = <&cru SCLK_CIF_OUT>;
104             assigned-clock-rates = <19200000>;
105
106             avdd-supply = <&vcc_1v8>;
107             dvdd-supply = <&vcc_1v2>;
108             dovdd-supply = <&vcc_2v8>;
109
110             rotation = <90>;
111             orientation = <0>;
112
113             port {
114                 ucam_out: endpoint {
115                     remote-endpoint = <&mipi_in_ucam>;
116                     data-lanes = <1 2>;
117                     link-frequencies = /bits/ 64 <450000000>;
118                 };
119             };
120         };
121     };
122 ...