blob: 2c5e69356658ec67364c52cceebc56ebd1760e74 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
7title: OmniVision OV5640 Image Sensor
8
9maintainers:
10 - Steve Longerbeam <slongerbeam@gmail.com>
11
12allOf:
13 - $ref: /schemas/media/video-interface-devices.yaml#
14
15properties:
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
73required:
74 - compatible
75 - reg
76 - clocks
77 - clock-names
78 - AVDD-supply
79 - DVDD-supply
80 - DOVDD-supply
81 - port
82
83unevaluatedProperties: false
84
85examples:
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...