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