178c84f46SGeert Uytterhoeven// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
278c84f46SGeert Uytterhoeven/*
378c84f46SGeert Uytterhoeven * Device Tree Source for the R-Car V4H White Hawk CSI/DSI sub-board
478c84f46SGeert Uytterhoeven *
578c84f46SGeert Uytterhoeven * Copyright (C) 2022 Glider bv
678c84f46SGeert Uytterhoeven */
778c84f46SGeert Uytterhoeven
8*4077043bSNiklas Söderlund#include <dt-bindings/media/video-interfaces.h>
9*4077043bSNiklas Söderlund
10*4077043bSNiklas Söderlund&csi40 {
11*4077043bSNiklas Söderlund	status = "okay";
12*4077043bSNiklas Söderlund
13*4077043bSNiklas Söderlund	ports {
14*4077043bSNiklas Söderlund		#address-cells = <1>;
15*4077043bSNiklas Söderlund		#size-cells = <0>;
16*4077043bSNiklas Söderlund
17*4077043bSNiklas Söderlund		port@0 {
18*4077043bSNiklas Söderlund			reg = <0>;
19*4077043bSNiklas Söderlund
20*4077043bSNiklas Söderlund			csi40_in: endpoint {
21*4077043bSNiklas Söderlund				bus-type = <MEDIA_BUS_TYPE_CSI2_CPHY>;
22*4077043bSNiklas Söderlund				clock-lanes = <0>;
23*4077043bSNiklas Söderlund				data-lanes = <1 2 3>;
24*4077043bSNiklas Söderlund				remote-endpoint = <&max96712_out0>;
25*4077043bSNiklas Söderlund			};
26*4077043bSNiklas Söderlund		};
27*4077043bSNiklas Söderlund	};
28*4077043bSNiklas Söderlund};
29*4077043bSNiklas Söderlund
30*4077043bSNiklas Söderlund&csi41 {
31*4077043bSNiklas Söderlund	status = "okay";
32*4077043bSNiklas Söderlund
33*4077043bSNiklas Söderlund	ports {
34*4077043bSNiklas Söderlund		#address-cells = <1>;
35*4077043bSNiklas Söderlund		#size-cells = <0>;
36*4077043bSNiklas Söderlund
37*4077043bSNiklas Söderlund		port@0 {
38*4077043bSNiklas Söderlund			reg = <0>;
39*4077043bSNiklas Söderlund
40*4077043bSNiklas Söderlund			csi41_in: endpoint {
41*4077043bSNiklas Söderlund				bus-type = <MEDIA_BUS_TYPE_CSI2_CPHY>;
42*4077043bSNiklas Söderlund				clock-lanes = <0>;
43*4077043bSNiklas Söderlund				data-lanes = <1 2 3>;
44*4077043bSNiklas Söderlund				remote-endpoint = <&max96712_out1>;
45*4077043bSNiklas Söderlund			};
46*4077043bSNiklas Söderlund		};
47*4077043bSNiklas Söderlund	};
48*4077043bSNiklas Söderlund};
49*4077043bSNiklas Söderlund
5078c84f46SGeert Uytterhoeven&i2c0 {
51*4077043bSNiklas Söderlund	pca9654_a: gpio@21 {
52*4077043bSNiklas Söderlund		compatible = "onnn,pca9654";
53*4077043bSNiklas Söderlund		reg = <0x21>;
54*4077043bSNiklas Söderlund		gpio-controller;
55*4077043bSNiklas Söderlund		#gpio-cells = <2>;
56*4077043bSNiklas Söderlund	};
57*4077043bSNiklas Söderlund
58*4077043bSNiklas Söderlund	pca9654_b: gpio@22 {
59*4077043bSNiklas Söderlund		compatible = "onnn,pca9654";
60*4077043bSNiklas Söderlund		reg = <0x22>;
61*4077043bSNiklas Söderlund		gpio-controller;
62*4077043bSNiklas Söderlund		#gpio-cells = <2>;
63*4077043bSNiklas Söderlund	};
64*4077043bSNiklas Söderlund
6578c84f46SGeert Uytterhoeven	eeprom@52 {
6678c84f46SGeert Uytterhoeven		compatible = "rohm,br24g01", "atmel,24c01";
6778c84f46SGeert Uytterhoeven		label = "csi-dsi-sub-board-id";
6878c84f46SGeert Uytterhoeven		reg = <0x52>;
6978c84f46SGeert Uytterhoeven		pagesize = <8>;
7078c84f46SGeert Uytterhoeven	};
7178c84f46SGeert Uytterhoeven};
72*4077043bSNiklas Söderlund
73*4077043bSNiklas Söderlund&i2c1 {
74*4077043bSNiklas Söderlund	gmsl0: gmsl-deserializer@49 {
75*4077043bSNiklas Söderlund		compatible = "maxim,max96712";
76*4077043bSNiklas Söderlund		reg = <0x49>;
77*4077043bSNiklas Söderlund		enable-gpios = <&pca9654_a 0 GPIO_ACTIVE_HIGH>;
78*4077043bSNiklas Söderlund
79*4077043bSNiklas Söderlund		ports {
80*4077043bSNiklas Söderlund			#address-cells = <1>;
81*4077043bSNiklas Söderlund			#size-cells = <0>;
82*4077043bSNiklas Söderlund
83*4077043bSNiklas Söderlund			port@4 {
84*4077043bSNiklas Söderlund				reg = <4>;
85*4077043bSNiklas Söderlund				max96712_out0: endpoint {
86*4077043bSNiklas Söderlund					bus-type = <MEDIA_BUS_TYPE_CSI2_CPHY>;
87*4077043bSNiklas Söderlund					clock-lanes = <0>;
88*4077043bSNiklas Söderlund					data-lanes = <1 2 3>;
89*4077043bSNiklas Söderlund					remote-endpoint = <&csi40_in>;
90*4077043bSNiklas Söderlund				};
91*4077043bSNiklas Söderlund			};
92*4077043bSNiklas Söderlund		};
93*4077043bSNiklas Söderlund	};
94*4077043bSNiklas Söderlund
95*4077043bSNiklas Söderlund	gmsl1: gmsl-deserializer@4b {
96*4077043bSNiklas Söderlund		compatible = "maxim,max96712";
97*4077043bSNiklas Söderlund		reg = <0x4b>;
98*4077043bSNiklas Söderlund		enable-gpios = <&pca9654_b 0 GPIO_ACTIVE_HIGH>;
99*4077043bSNiklas Söderlund
100*4077043bSNiklas Söderlund		ports {
101*4077043bSNiklas Söderlund			#address-cells = <1>;
102*4077043bSNiklas Söderlund			#size-cells = <0>;
103*4077043bSNiklas Söderlund
104*4077043bSNiklas Söderlund			port@4 {
105*4077043bSNiklas Söderlund				reg = <4>;
106*4077043bSNiklas Söderlund				max96712_out1: endpoint {
107*4077043bSNiklas Söderlund					bus-type = <MEDIA_BUS_TYPE_CSI2_CPHY>;
108*4077043bSNiklas Söderlund					clock-lanes = <0>;
109*4077043bSNiklas Söderlund					data-lanes = <1 2 3>;
110*4077043bSNiklas Söderlund					remote-endpoint = <&csi41_in>;
111*4077043bSNiklas Söderlund				};
112*4077043bSNiklas Söderlund			};
113*4077043bSNiklas Söderlund		};
114*4077043bSNiklas Söderlund	};
115*4077043bSNiklas Söderlund};
116*4077043bSNiklas Söderlund
117*4077043bSNiklas Söderlund&isp0 {
118*4077043bSNiklas Söderlund	status = "okay";
119*4077043bSNiklas Söderlund};
120*4077043bSNiklas Söderlund
121*4077043bSNiklas Söderlund&isp1 {
122*4077043bSNiklas Söderlund	status = "okay";
123*4077043bSNiklas Söderlund};
124*4077043bSNiklas Söderlund
125*4077043bSNiklas Söderlund&vin00 {
126*4077043bSNiklas Söderlund	status = "okay";
127*4077043bSNiklas Söderlund};
128*4077043bSNiklas Söderlund
129*4077043bSNiklas Söderlund&vin01 {
130*4077043bSNiklas Söderlund	status = "okay";
131*4077043bSNiklas Söderlund};
132*4077043bSNiklas Söderlund
133*4077043bSNiklas Söderlund&vin02 {
134*4077043bSNiklas Söderlund	status = "okay";
135*4077043bSNiklas Söderlund};
136*4077043bSNiklas Söderlund
137*4077043bSNiklas Söderlund&vin03 {
138*4077043bSNiklas Söderlund	status = "okay";
139*4077043bSNiklas Söderlund};
140*4077043bSNiklas Söderlund
141*4077043bSNiklas Söderlund&vin04 {
142*4077043bSNiklas Söderlund	status = "okay";
143*4077043bSNiklas Söderlund};
144*4077043bSNiklas Söderlund
145*4077043bSNiklas Söderlund&vin05 {
146*4077043bSNiklas Söderlund	status = "okay";
147*4077043bSNiklas Söderlund};
148*4077043bSNiklas Söderlund
149*4077043bSNiklas Söderlund&vin06 {
150*4077043bSNiklas Söderlund	status = "okay";
151*4077043bSNiklas Söderlund};
152*4077043bSNiklas Söderlund
153*4077043bSNiklas Söderlund&vin07 {
154*4077043bSNiklas Söderlund	status = "okay";
155*4077043bSNiklas Söderlund};
156*4077043bSNiklas Söderlund
157*4077043bSNiklas Söderlund&vin08 {
158*4077043bSNiklas Söderlund	status = "okay";
159*4077043bSNiklas Söderlund};
160*4077043bSNiklas Söderlund
161*4077043bSNiklas Söderlund&vin09 {
162*4077043bSNiklas Söderlund	status = "okay";
163*4077043bSNiklas Söderlund};
164*4077043bSNiklas Söderlund
165*4077043bSNiklas Söderlund&vin10 {
166*4077043bSNiklas Söderlund	status = "okay";
167*4077043bSNiklas Söderlund};
168*4077043bSNiklas Söderlund
169*4077043bSNiklas Söderlund&vin11 {
170*4077043bSNiklas Söderlund	status = "okay";
171*4077043bSNiklas Söderlund};
172*4077043bSNiklas Söderlund
173*4077043bSNiklas Söderlund&vin12 {
174*4077043bSNiklas Söderlund	status = "okay";
175*4077043bSNiklas Söderlund};
176*4077043bSNiklas Söderlund
177*4077043bSNiklas Söderlund&vin13 {
178*4077043bSNiklas Söderlund	status = "okay";
179*4077043bSNiklas Söderlund};
180*4077043bSNiklas Söderlund
181*4077043bSNiklas Söderlund&vin14 {
182*4077043bSNiklas Söderlund	status = "okay";
183*4077043bSNiklas Söderlund};
184*4077043bSNiklas Söderlund
185*4077043bSNiklas Söderlund&vin15 {
186*4077043bSNiklas Söderlund	status = "okay";
187*4077043bSNiklas Söderlund};
188