1// SPDX-License-Identifier: GPL-2.0-only OR MIT
2/**
3 * DT Overlay for dual RPi Camera V2.1 (Sony IMX219) interfaced with CSI2
4 * on J721E SK, AM68 SK or AM69-SK board.
5 * https://datasheets.raspberrypi.org/camera/camera-v2-schematic.pdf
6 *
7 * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
8 */
9
10/dts-v1/;
11/plugin/;
12
13#include <dt-bindings/gpio/gpio.h>
14#include "k3-pinctrl.h"
15
16&{/} {
17	clk_imx219_fixed: imx219-xclk {
18		compatible = "fixed-clock";
19		#clock-cells = <0>;
20		clock-frequency = <24000000>;
21	};
22};
23
24&csi_mux {
25	idle-state = <1>;
26};
27
28/* CAM0 I2C */
29&cam0_i2c {
30	#address-cells = <1>;
31	#size-cells = <0>;
32	imx219_0: imx219-0@10 {
33		compatible = "sony,imx219";
34		reg = <0x10>;
35
36		clocks = <&clk_imx219_fixed>;
37		clock-names = "xclk";
38
39		port {
40			csi2_cam0: endpoint {
41				remote-endpoint = <&csi2rx0_in_sensor>;
42				link-frequencies = /bits/ 64 <456000000>;
43				clock-lanes = <0>;
44				data-lanes = <1 2>;
45			};
46		};
47	};
48};
49
50/* CAM1 I2C */
51&cam1_i2c {
52	#address-cells = <1>;
53	#size-cells = <0>;
54	imx219_1: imx219-1@10 {
55		compatible = "sony,imx219";
56		reg = <0x10>;
57
58		clocks = <&clk_imx219_fixed>;
59		clock-names = "xclk";
60
61		port {
62			csi2_cam1: endpoint {
63				remote-endpoint = <&csi2rx1_in_sensor>;
64				link-frequencies = /bits/ 64 <456000000>;
65				clock-lanes = <0>;
66				data-lanes = <1 2>;
67			};
68		};
69	};
70};
71
72
73&cdns_csi2rx0 {
74	ports {
75		#address-cells = <1>;
76		#size-cells = <0>;
77
78		csi0_port0: port@0 {
79			reg = <0>;
80			status = "okay";
81
82			csi2rx0_in_sensor: endpoint {
83				remote-endpoint = <&csi2_cam0>;
84				bus-type = <4>; /* CSI2 DPHY. */
85				clock-lanes = <0>;
86				data-lanes = <1 2>;
87			};
88		};
89
90		csi0_port1: port@1 {
91			reg = <1>;
92			status = "disabled";
93		};
94
95		csi0_port2: port@2 {
96			reg = <2>;
97			status = "disabled";
98		};
99
100		csi0_port3: port@3 {
101			reg = <3>;
102			status = "disabled";
103		};
104
105		csi0_port4: port@4 {
106			reg = <4>;
107			status = "disabled";
108		};
109	};
110};
111
112&dphy0 {
113	status = "okay";
114};
115
116&ti_csi2rx0 {
117	status = "okay";
118};
119
120&cdns_csi2rx1 {
121	ports {
122		#address-cells = <1>;
123		#size-cells = <0>;
124
125		csi1_port0: port@0 {
126			reg = <0>;
127			status = "okay";
128
129			csi2rx1_in_sensor: endpoint {
130				remote-endpoint = <&csi2_cam1>;
131				bus-type = <4>; /* CSI2 DPHY. */
132				clock-lanes = <0>;
133				data-lanes = <1 2>;
134			};
135		};
136
137		csi1_port1: port@1 {
138			reg = <1>;
139			status = "disabled";
140		};
141
142		csi1_port2: port@2 {
143			reg = <2>;
144			status = "disabled";
145		};
146
147		csi1_port3: port@3 {
148			reg = <3>;
149			status = "disabled";
150		};
151
152		csi1_port4: port@4 {
153			reg = <4>;
154			status = "disabled";
155		};
156	};
157};
158
159&dphy1 {
160	status = "okay";
161};
162
163&ti_csi2rx1 {
164	status = "okay";
165};
166