Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / media / i2c / ovti,ov5640.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/media/i2c/ovti,ov5640.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: OmniVision OV5640 Image Sensor
8
9 maintainers:
10   - Steve Longerbeam <slongerbeam@gmail.com>
11
12 allOf:
13   - $ref: /schemas/media/video-interface-devices.yaml#
14
15 properties:
16   compatible:
17     const: ovti,ov5640
18
19   reg:
20     maxItems: 1
21
22   clocks:
23     description: XCLK Input Clock
24
25   clock-names:
26     const: xclk
27
28   AVDD-supply:
29     description: Analog voltage supply, 2.8 volts
30
31   DVDD-supply:
32     description: Digital core voltage supply, 1.5 volts
33
34   DOVDD-supply:
35     description: Digital I/O voltage supply, 1.8 volts
36
37   powerdown-gpios:
38     maxItems: 1
39     description: >
40       Reference to the GPIO connected to the powerdown pin, if any.
41
42   reset-gpios:
43     maxItems: 1
44     description: >
45       Reference to the GPIO connected to the reset pin, if any.
46
47   port:
48     description: Digital Output Port
49     $ref: /schemas/graph.yaml#/$defs/port-base
50     additionalProperties: false
51
52     properties:
53       endpoint:
54         $ref: /schemas/media/video-interfaces.yaml#
55         unevaluatedProperties: false
56
57         properties:
58           clock-lanes:
59             const: 0
60
61           data-lanes:
62             minItems: 1
63             maxItems: 2
64             items:
65               enum: [1, 2]
66
67           bus-width:
68             enum: [8, 10]
69
70           data-shift:
71             enum: [0, 2]
72
73 required:
74   - compatible
75   - reg
76   - clocks
77   - clock-names
78   - AVDD-supply
79   - DVDD-supply
80   - DOVDD-supply
81   - port
82
83 unevaluatedProperties: false
84
85 examples:
86   - |
87       #include <dt-bindings/clock/imx6qdl-clock.h>
88       #include <dt-bindings/gpio/gpio.h>
89
90       i2c {
91           #address-cells = <1>;
92           #size-cells = <0>;
93
94           camera@3c {
95               compatible = "ovti,ov5640";
96               pinctrl-names = "default";
97               pinctrl-0 = <&pinctrl_ov5640>;
98               reg = <0x3c>;
99               clocks = <&clks IMX6QDL_CLK_CKO>;
100               clock-names = "xclk";
101               DOVDD-supply = <&vgen4_reg>; /* 1.8v */
102               AVDD-supply = <&vgen3_reg>;  /* 2.8v */
103               DVDD-supply = <&vgen2_reg>;  /* 1.5v */
104               powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
105               reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
106               rotation = <180>;
107
108               port {
109                   /* MIPI CSI-2 bus endpoint */
110                   ov5640_to_mipi_csi2: endpoint {
111                       remote-endpoint = <&mipi_csi2_from_ov5640>;
112                       clock-lanes = <0>;
113                       data-lanes = <1 2>;
114                   };
115               };
116           };
117       };
118
119   - |
120       i2c {
121           #address-cells = <1>;
122           #size-cells = <0>;
123
124           camera@3c {
125               compatible = "ovti,ov5640";
126               pinctrl-names = "default";
127               pinctrl-0 = <&pinctrl_ov5640>;
128               reg = <0x3c>;
129               clocks = <&clk_ext_camera>;
130               clock-names = "xclk";
131               DOVDD-supply = <&vgen4_reg>; /* 1.8v */
132               AVDD-supply = <&vgen3_reg>;  /* 2.8v */
133               DVDD-supply = <&vgen2_reg>;  /* 1.5v */
134
135               port {
136                   /* Parallel bus endpoint */
137                   ov5640_to_parallel: endpoint {
138                       remote-endpoint = <&parallel_from_ov5640>;
139                       bus-width = <8>;
140                       data-shift = <2>; /* lines 9:2 are used */
141                       hsync-active = <0>;
142                       vsync-active = <0>;
143                       pclk-sample = <1>;
144                   };
145               };
146           };
147       };
148
149 ...