File Index
Files and directories
Sign in
FILE

k3-j722s-evm-csi2-quad-tevi-ov5640.dtso

File preview with syntax highlighting.

linux-6.19.14/arch/arm64/boot/dts/ti/k3-j722s-evm-csi2-quad-tevi-ov5640.dtso PLAIN TEXT
  1// SPDX-License-Identifier: GPL-2.0-only OR MIT
  2/*
  3 * DT Overlay for 4 x TEVI OV5640 MIPI Camera module on J722S-EVM board.
  4 *
  5 * Copyright (C) 2025 Texas Instruments Incorporated - https://www.ti.com/
  6 */
  7
  8/dts-v1/;
  9/plugin/;
 10
 11#include <dt-bindings/gpio/gpio.h>
 12#include "k3-pinctrl.h"
 13
 14&main_pmx0 {
 15	cam0_reset_pins_default: cam0-default-reset-pins {
 16		pinctrl-single,pins = <
 17			J722S_IOPAD(0x03c, PIN_OUTPUT, 7) /* (R22) GPIO0_15 */
 18		>;
 19	};
 20
 21	cam1_reset_pins_default: cam1-default-reset-pins {
 22		pinctrl-single,pins = <
 23			J722S_IOPAD(0x044, PIN_OUTPUT, 7) /* (R26) GPIO0_17 */
 24		>;
 25	};
 26
 27	cam2_reset_pins_default: cam2-default-reset-pins {
 28		pinctrl-single,pins = <
 29			J722S_IOPAD(0x04c, PIN_OUTPUT, 7) /* (T25) GPIO0_19 */
 30		>;
 31	};
 32
 33	cam3_reset_pins_default: cam3-default-reset-pins {
 34		pinctrl-single,pins = <
 35			J722S_IOPAD(0x054, PIN_OUTPUT, 7) /* (T21) GPIO0_21 */
 36		>;
 37	};
 38};
 39
 40&{/} {
 41	clk_ov5640_fixed: clock-24000000 {
 42		compatible = "fixed-clock";
 43		#clock-cells = <0>;
 44		clock-frequency = <24000000>;
 45	};
 46
 47	reg_2p8v: regulator-2p8v {
 48		compatible = "regulator-fixed";
 49		regulator-name = "2P8V";
 50		regulator-min-microvolt = <2800000>;
 51		regulator-max-microvolt = <2800000>;
 52		vin-supply = <&vsys_3v3_exp>;
 53		regulator-always-on;
 54	};
 55
 56	reg_1p8v: regulator-1p8v {
 57		compatible = "regulator-fixed";
 58		regulator-name = "1P8V";
 59		regulator-min-microvolt = <1800000>;
 60		regulator-max-microvolt = <1800000>;
 61		vin-supply = <&vsys_3v3_exp>;
 62		regulator-always-on;
 63	};
 64
 65	reg_3p3v: regulator-3p3v {
 66		compatible = "regulator-fixed";
 67		regulator-name = "3P3V";
 68		regulator-min-microvolt = <3300000>;
 69		regulator-max-microvolt = <3300000>;
 70		vin-supply = <&vsys_3v3_exp>;
 71		regulator-always-on;
 72	};
 73};
 74
 75&csi01_mux {
 76	idle-state = <1>;
 77};
 78
 79&csi23_mux {
 80	idle-state = <1>;
 81};
 82
 83&pca9543_0 {
 84	#address-cells = <1>;
 85	#size-cells = <0>;
 86
 87	/* CAM0 I2C */
 88	i2c@0 {
 89		#address-cells = <1>;
 90		#size-cells = <0>;
 91		reg = <0>;
 92
 93		ov5640_0: camera@3c {
 94			compatible = "ovti,ov5640";
 95			reg = <0x3c>;
 96			clocks = <&clk_ov5640_fixed>;
 97			clock-names = "xclk";
 98
 99			AVDD-supply = <&reg_2p8v>;
100			DOVDD-supply = <&reg_1p8v>;
101			DVDD-supply = <&reg_3p3v>;
102
103			pinctrl-names = "default";
104			pinctrl-0 = <&cam0_reset_pins_default>;
105
106			reset-gpios = <&main_gpio0 15 GPIO_ACTIVE_HIGH>;
107
108			port {
109				csi2_cam0: endpoint {
110					remote-endpoint = <&csi2rx0_in_sensor>;
111					clock-lanes = <0>;
112					data-lanes = <1 2>;
113				};
114			};
115		};
116	};
117
118	/* CAM1 I2C */
119	i2c@1 {
120		#address-cells = <1>;
121		#size-cells = <0>;
122		reg = <1>;
123
124		ov5640_1: camera@3c {
125			compatible = "ovti,ov5640";
126			reg = <0x3c>;
127			clocks = <&clk_ov5640_fixed>;
128			clock-names = "xclk";
129
130			AVDD-supply = <&reg_2p8v>;
131			DOVDD-supply = <&reg_1p8v>;
132			DVDD-supply = <&reg_3p3v>;
133
134			pinctrl-names = "default";
135			pinctrl-0 = <&cam1_reset_pins_default>;
136
137			reset-gpios = <&main_gpio0 17 GPIO_ACTIVE_HIGH>;
138
139			port {
140				csi2_cam1: endpoint {
141					remote-endpoint = <&csi2rx1_in_sensor>;
142					clock-lanes = <0>;
143					data-lanes = <1 2>;
144				};
145			};
146		};
147	};
148};
149
150&pca9543_1 {
151	#address-cells = <1>;
152	#size-cells = <0>;
153
154	/* CAM0 I2C */
155	i2c@0 {
156		#address-cells = <1>;
157		#size-cells = <0>;
158		reg = <0>;
159
160		ov5640_2: camera@3c {
161			compatible = "ovti,ov5640";
162			reg = <0x3c>;
163			clocks = <&clk_ov5640_fixed>;
164			clock-names = "xclk";
165
166			AVDD-supply = <&reg_2p8v>;
167			DOVDD-supply = <&reg_1p8v>;
168			DVDD-supply = <&reg_3p3v>;
169
170			pinctrl-names = "default";
171			pinctrl-0 = <&cam2_reset_pins_default>;
172
173			reset-gpios = <&main_gpio0 19 GPIO_ACTIVE_HIGH>;
174
175			port {
176				csi2_cam2: endpoint {
177					remote-endpoint = <&csi2rx2_in_sensor>;
178					clock-lanes = <0>;
179					data-lanes = <1 2>;
180				};
181			};
182		};
183	};
184
185	/* CAM1 I2C */
186	i2c@1 {
187		#address-cells = <1>;
188		#size-cells = <0>;
189		reg = <1>;
190
191		ov5640_3: camera@3c {
192			compatible = "ovti,ov5640";
193			reg = <0x3c>;
194			clocks = <&clk_ov5640_fixed>;
195			clock-names = "xclk";
196
197			AVDD-supply = <&reg_2p8v>;
198			DOVDD-supply = <&reg_1p8v>;
199			DVDD-supply = <&reg_3p3v>;
200
201			pinctrl-names = "default";
202			pinctrl-0 = <&cam3_reset_pins_default>;
203
204			reset-gpios = <&main_gpio0 21 GPIO_ACTIVE_HIGH>;
205
206			port {
207				csi2_cam3: endpoint {
208					remote-endpoint = <&csi2rx3_in_sensor>;
209					clock-lanes = <0>;
210					data-lanes = <1 2>;
211				};
212			};
213		};
214	};
215};
216
217&cdns_csi2rx0 {
218	ports {
219		#address-cells = <1>;
220		#size-cells = <0>;
221
222		csi0_port0: port@0 {
223			reg = <0>;
224			status = "okay";
225
226			csi2rx0_in_sensor: endpoint {
227				remote-endpoint = <&csi2_cam0>;
228				bus-type = <4>; /* CSI2 DPHY */
229				clock-lanes = <0>;
230				data-lanes = <1 2>;
231			};
232		};
233	};
234};
235
236&cdns_csi2rx1 {
237	ports {
238		#address-cells = <1>;
239		#size-cells = <0>;
240
241		csi1_port0: port@0 {
242			reg = <0>;
243			status = "okay";
244
245			csi2rx1_in_sensor: endpoint {
246				remote-endpoint = <&csi2_cam1>;
247				bus-type = <4>; /* CSI2 DPHY */
248				clock-lanes = <0>;
249				data-lanes = <1 2>;
250			};
251		};
252	};
253};
254
255&cdns_csi2rx2 {
256	ports {
257		#address-cells = <1>;
258		#size-cells = <0>;
259
260		csi2_port0: port@0 {
261			reg = <0>;
262			status = "okay";
263
264			csi2rx2_in_sensor: endpoint {
265				remote-endpoint = <&csi2_cam2>;
266				bus-type = <4>; /* CSI2 DPHY */
267				clock-lanes = <0>;
268				data-lanes = <1 2>;
269			};
270		};
271	};
272};
273
274&cdns_csi2rx3 {
275	ports {
276		#address-cells = <1>;
277		#size-cells = <0>;
278
279		csi3_port0: port@0 {
280			reg = <0>;
281			status = "okay";
282
283			csi2rx3_in_sensor: endpoint {
284				remote-endpoint = <&csi2_cam3>;
285				bus-type = <4>; /* CSI2 DPHY */
286				clock-lanes = <0>;
287				data-lanes = <1 2>;
288			};
289		};
290	};
291};
292
293&ti_csi2rx0 {
294	status = "okay";
295};
296
297&dphy0 {
298	status = "okay";
299};
300
301&ti_csi2rx1 {
302	status = "okay";
303};
304
305&dphy1 {
306	status = "okay";
307};
308
309&ti_csi2rx2 {
310	status = "okay";
311};
312
313&dphy2 {
314	status = "okay";
315};
316
317&ti_csi2rx3 {
318	status = "okay";
319};
320
321&dphy3 {
322	status = "okay";
323};
~/ Read-only file preview.