xref: /freebsd/sys/contrib/device-tree/src/arm64/renesas/r8a77970-eagle-function-expansion.dtso (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
1*7d0873ebSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2*7d0873ebSEmmanuel Vadot/*
3*7d0873ebSEmmanuel Vadot * Device Tree Source for the Eagle V3M Function expansion board.
4*7d0873ebSEmmanuel Vadot *
5*7d0873ebSEmmanuel Vadot * Copyright (C) 2024 Niklas Söderlund <niklas.soderlund@ragnatech.se>
6*7d0873ebSEmmanuel Vadot */
7*7d0873ebSEmmanuel Vadot
8*7d0873ebSEmmanuel Vadot/dts-v1/;
9*7d0873ebSEmmanuel Vadot/plugin/;
10*7d0873ebSEmmanuel Vadot
11*7d0873ebSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
12*7d0873ebSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
13*7d0873ebSEmmanuel Vadot
14*7d0873ebSEmmanuel Vadot/ {
15*7d0873ebSEmmanuel Vadot	/* CN4 */
16*7d0873ebSEmmanuel Vadot	/* Eagle: SW18 set to OFF */
17*7d0873ebSEmmanuel Vadot	cvbs-in-cn4 {
18*7d0873ebSEmmanuel Vadot		compatible = "composite-video-connector";
19*7d0873ebSEmmanuel Vadot		label = "CVBS IN CN4";
20*7d0873ebSEmmanuel Vadot
21*7d0873ebSEmmanuel Vadot		port {
22*7d0873ebSEmmanuel Vadot			cvbs_con: endpoint {
23*7d0873ebSEmmanuel Vadot				remote-endpoint = <&adv7482_ain7>;
24*7d0873ebSEmmanuel Vadot			};
25*7d0873ebSEmmanuel Vadot		};
26*7d0873ebSEmmanuel Vadot	};
27*7d0873ebSEmmanuel Vadot
28*7d0873ebSEmmanuel Vadot	/* CN2 */
29*7d0873ebSEmmanuel Vadot	/* Eagle: SW35 set 5, 6 and 8 to OFF */
30*7d0873ebSEmmanuel Vadot	hdmi-in-cn2 {
31*7d0873ebSEmmanuel Vadot		compatible = "hdmi-connector";
32*7d0873ebSEmmanuel Vadot		label = "HDMI IN CN2";
33*7d0873ebSEmmanuel Vadot		type = "a";
34*7d0873ebSEmmanuel Vadot
35*7d0873ebSEmmanuel Vadot		port {
36*7d0873ebSEmmanuel Vadot			hdmi_in_con2: endpoint {
37*7d0873ebSEmmanuel Vadot				remote-endpoint = <&adv7612_in>;
38*7d0873ebSEmmanuel Vadot			};
39*7d0873ebSEmmanuel Vadot		};
40*7d0873ebSEmmanuel Vadot	};
41*7d0873ebSEmmanuel Vadot
42*7d0873ebSEmmanuel Vadot	/* CN3 */
43*7d0873ebSEmmanuel Vadot	/* Eagle: SW18 set to OFF */
44*7d0873ebSEmmanuel Vadot	hdmi-in-cn3 {
45*7d0873ebSEmmanuel Vadot		compatible = "hdmi-connector";
46*7d0873ebSEmmanuel Vadot		label = "HDMI IN CN3";
47*7d0873ebSEmmanuel Vadot		type = "a";
48*7d0873ebSEmmanuel Vadot
49*7d0873ebSEmmanuel Vadot		port {
50*7d0873ebSEmmanuel Vadot			hdmi_in_con: endpoint {
51*7d0873ebSEmmanuel Vadot				remote-endpoint = <&adv7482_hdmi>;
52*7d0873ebSEmmanuel Vadot			};
53*7d0873ebSEmmanuel Vadot		};
54*7d0873ebSEmmanuel Vadot	};
55*7d0873ebSEmmanuel Vadot};
56*7d0873ebSEmmanuel Vadot
57*7d0873ebSEmmanuel Vadot/* Disconnect MAX9286 GMSL I2C. */
58*7d0873ebSEmmanuel Vadot&i2c3 {
59*7d0873ebSEmmanuel Vadot	status = "disabled";
60*7d0873ebSEmmanuel Vadot};
61*7d0873ebSEmmanuel Vadot
62*7d0873ebSEmmanuel Vadot/* Connect expansion board I2C. */
63*7d0873ebSEmmanuel Vadot&i2c0 {
64*7d0873ebSEmmanuel Vadot	#address-cells = <1>;
65*7d0873ebSEmmanuel Vadot	#size-cells = <0>;
66*7d0873ebSEmmanuel Vadot
67*7d0873ebSEmmanuel Vadot	gpio@27 {
68*7d0873ebSEmmanuel Vadot		compatible = "onnn,pca9654";
69*7d0873ebSEmmanuel Vadot		reg = <0x27>;
70*7d0873ebSEmmanuel Vadot		gpio-controller;
71*7d0873ebSEmmanuel Vadot		#gpio-cells = <2>;
72*7d0873ebSEmmanuel Vadot
73*7d0873ebSEmmanuel Vadot		vin0_adv7612_en {
74*7d0873ebSEmmanuel Vadot			gpio-hog;
75*7d0873ebSEmmanuel Vadot			gpios = <3 GPIO_ACTIVE_LOW>;
76*7d0873ebSEmmanuel Vadot			output-high;
77*7d0873ebSEmmanuel Vadot			line-name = "VIN0_ADV7612_ENn";
78*7d0873ebSEmmanuel Vadot		};
79*7d0873ebSEmmanuel Vadot	};
80*7d0873ebSEmmanuel Vadot
81*7d0873ebSEmmanuel Vadot	hdmi-decoder@4c {
82*7d0873ebSEmmanuel Vadot		compatible = "adi,adv7612";
83*7d0873ebSEmmanuel Vadot		reg = <0x4c>, <0x50>, <0x52>, <0x54>, <0x56>, <0x58>;
84*7d0873ebSEmmanuel Vadot		reg-names = "main", "afe", "rep", "edid", "hdmi", "cp";
85*7d0873ebSEmmanuel Vadot		interrupt-parent = <&gpio3>;
86*7d0873ebSEmmanuel Vadot		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
87*7d0873ebSEmmanuel Vadot		default-input = <0>;
88*7d0873ebSEmmanuel Vadot
89*7d0873ebSEmmanuel Vadot		ports {
90*7d0873ebSEmmanuel Vadot			#address-cells = <1>;
91*7d0873ebSEmmanuel Vadot			#size-cells = <0>;
92*7d0873ebSEmmanuel Vadot
93*7d0873ebSEmmanuel Vadot			port@0 {
94*7d0873ebSEmmanuel Vadot				reg = <0>;
95*7d0873ebSEmmanuel Vadot
96*7d0873ebSEmmanuel Vadot				adv7612_in: endpoint {
97*7d0873ebSEmmanuel Vadot					remote-endpoint = <&hdmi_in_con2>;
98*7d0873ebSEmmanuel Vadot				};
99*7d0873ebSEmmanuel Vadot			};
100*7d0873ebSEmmanuel Vadot
101*7d0873ebSEmmanuel Vadot			port@2 {
102*7d0873ebSEmmanuel Vadot				reg = <2>;
103*7d0873ebSEmmanuel Vadot
104*7d0873ebSEmmanuel Vadot				adv7612_out: endpoint {
105*7d0873ebSEmmanuel Vadot					remote-endpoint = <&vin0_in>;
106*7d0873ebSEmmanuel Vadot				};
107*7d0873ebSEmmanuel Vadot			};
108*7d0873ebSEmmanuel Vadot		};
109*7d0873ebSEmmanuel Vadot	};
110*7d0873ebSEmmanuel Vadot
111*7d0873ebSEmmanuel Vadot	video-receiver@70 {
112*7d0873ebSEmmanuel Vadot		compatible = "adi,adv7482";
113*7d0873ebSEmmanuel Vadot		reg = <0x70 0x71 0x72 0x73 0x74 0x75
114*7d0873ebSEmmanuel Vadot		       0x60 0x61 0x62 0x63 0x64 0x65>;
115*7d0873ebSEmmanuel Vadot		reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater",
116*7d0873ebSEmmanuel Vadot			    "infoframe", "cbus", "cec", "sdp", "txa", "txb" ;
117*7d0873ebSEmmanuel Vadot		interrupt-parent = <&gpio3>;
118*7d0873ebSEmmanuel Vadot		interrupts = <03 IRQ_TYPE_LEVEL_LOW>, <04 IRQ_TYPE_LEVEL_LOW>;
119*7d0873ebSEmmanuel Vadot		interrupt-names = "intrq1", "intrq2";
120*7d0873ebSEmmanuel Vadot
121*7d0873ebSEmmanuel Vadot		ports {
122*7d0873ebSEmmanuel Vadot			#address-cells = <1>;
123*7d0873ebSEmmanuel Vadot			#size-cells = <0>;
124*7d0873ebSEmmanuel Vadot
125*7d0873ebSEmmanuel Vadot			port@7 {
126*7d0873ebSEmmanuel Vadot				reg = <7>;
127*7d0873ebSEmmanuel Vadot
128*7d0873ebSEmmanuel Vadot				adv7482_ain7: endpoint {
129*7d0873ebSEmmanuel Vadot					remote-endpoint = <&cvbs_con>;
130*7d0873ebSEmmanuel Vadot				};
131*7d0873ebSEmmanuel Vadot			};
132*7d0873ebSEmmanuel Vadot
133*7d0873ebSEmmanuel Vadot			port@8 {
134*7d0873ebSEmmanuel Vadot				reg = <8>;
135*7d0873ebSEmmanuel Vadot
136*7d0873ebSEmmanuel Vadot				adv7482_hdmi: endpoint {
137*7d0873ebSEmmanuel Vadot					remote-endpoint = <&hdmi_in_con>;
138*7d0873ebSEmmanuel Vadot				};
139*7d0873ebSEmmanuel Vadot			};
140*7d0873ebSEmmanuel Vadot
141*7d0873ebSEmmanuel Vadot			port@a {
142*7d0873ebSEmmanuel Vadot				reg = <10>;
143*7d0873ebSEmmanuel Vadot
144*7d0873ebSEmmanuel Vadot				adv7482_txa: endpoint {
145*7d0873ebSEmmanuel Vadot					clock-lanes = <0>;
146*7d0873ebSEmmanuel Vadot					data-lanes = <1 2 3 4>;
147*7d0873ebSEmmanuel Vadot					remote-endpoint = <&csi40_in>;
148*7d0873ebSEmmanuel Vadot				};
149*7d0873ebSEmmanuel Vadot			};
150*7d0873ebSEmmanuel Vadot		};
151*7d0873ebSEmmanuel Vadot	};
152*7d0873ebSEmmanuel Vadot
153*7d0873ebSEmmanuel Vadot};
154*7d0873ebSEmmanuel Vadot
155*7d0873ebSEmmanuel Vadot&csi40 {
156*7d0873ebSEmmanuel Vadot	status = "okay";
157*7d0873ebSEmmanuel Vadot
158*7d0873ebSEmmanuel Vadot	ports {
159*7d0873ebSEmmanuel Vadot		#address-cells = <1>;
160*7d0873ebSEmmanuel Vadot		#size-cells = <0>;
161*7d0873ebSEmmanuel Vadot
162*7d0873ebSEmmanuel Vadot		port@0 {
163*7d0873ebSEmmanuel Vadot			reg = <0>;
164*7d0873ebSEmmanuel Vadot
165*7d0873ebSEmmanuel Vadot			csi40_in: endpoint {
166*7d0873ebSEmmanuel Vadot				clock-lanes = <0>;
167*7d0873ebSEmmanuel Vadot				data-lanes = <1 2 3 4>;
168*7d0873ebSEmmanuel Vadot				remote-endpoint = <&adv7482_txa>;
169*7d0873ebSEmmanuel Vadot			};
170*7d0873ebSEmmanuel Vadot		};
171*7d0873ebSEmmanuel Vadot	};
172*7d0873ebSEmmanuel Vadot};
173*7d0873ebSEmmanuel Vadot
174*7d0873ebSEmmanuel Vadot&pfc {
175*7d0873ebSEmmanuel Vadot	vin0_pins_parallel: vin0 {
176*7d0873ebSEmmanuel Vadot		groups = "vin0_data12", "vin0_sync", "vin0_clk", "vin0_clkenb";
177*7d0873ebSEmmanuel Vadot		function = "vin0";
178*7d0873ebSEmmanuel Vadot	};
179*7d0873ebSEmmanuel Vadot};
180*7d0873ebSEmmanuel Vadot
181*7d0873ebSEmmanuel Vadot&vin0 {
182*7d0873ebSEmmanuel Vadot	status = "okay";
183*7d0873ebSEmmanuel Vadot
184*7d0873ebSEmmanuel Vadot	pinctrl-0 = <&vin0_pins_parallel>;
185*7d0873ebSEmmanuel Vadot	pinctrl-names = "default";
186*7d0873ebSEmmanuel Vadot
187*7d0873ebSEmmanuel Vadot	ports {
188*7d0873ebSEmmanuel Vadot		#address-cells = <1>;
189*7d0873ebSEmmanuel Vadot		#size-cells = <0>;
190*7d0873ebSEmmanuel Vadot
191*7d0873ebSEmmanuel Vadot		port@0 {
192*7d0873ebSEmmanuel Vadot			reg = <0>;
193*7d0873ebSEmmanuel Vadot
194*7d0873ebSEmmanuel Vadot			vin0_in: endpoint {
195*7d0873ebSEmmanuel Vadot				pclk-sample = <0>;
196*7d0873ebSEmmanuel Vadot				hsync-active = <0>;
197*7d0873ebSEmmanuel Vadot				vsync-active = <0>;
198*7d0873ebSEmmanuel Vadot				remote-endpoint = <&adv7612_out>;
199*7d0873ebSEmmanuel Vadot			};
200*7d0873ebSEmmanuel Vadot		};
201*7d0873ebSEmmanuel Vadot	};
202*7d0873ebSEmmanuel Vadot};
203*7d0873ebSEmmanuel Vadot
204*7d0873ebSEmmanuel Vadot&vin1 {
205*7d0873ebSEmmanuel Vadot	status = "okay";
206*7d0873ebSEmmanuel Vadot};
207*7d0873ebSEmmanuel Vadot
208*7d0873ebSEmmanuel Vadot&vin2 {
209*7d0873ebSEmmanuel Vadot	status = "okay";
210*7d0873ebSEmmanuel Vadot};
211*7d0873ebSEmmanuel Vadot
212*7d0873ebSEmmanuel Vadot&vin3 {
213*7d0873ebSEmmanuel Vadot	status = "okay";
214*7d0873ebSEmmanuel Vadot};
215