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