xref: /linux/scripts/dtc/include-prefixes/arm64/renesas/r8a774c0-cat874.dts (revision b31b43c92daee8628c60b411452b1b17acdac580)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree Source for the Silicon Linux RZ/G2E 96board platform (CAT874)
4 *
5 * Copyright (C) 2019 Renesas Electronics Corp.
6 */
7
8/dts-v1/;
9#include "r8a774c0.dtsi"
10#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/display/tda998x.h>
12
13/ {
14	model = "Silicon Linux RZ/G2E 96board platform (CAT874)";
15	compatible = "si-linux,cat874", "renesas,r8a774c0";
16
17	aliases {
18		serial0 = &scif2;
19		serial1 = &hscif2;
20	};
21
22	chosen {
23		bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
24		stdout-path = "serial0:115200n8";
25	};
26
27	hdmi-out {
28		compatible = "hdmi-connector";
29		type = "a";
30
31		port {
32			hdmi_con_out: endpoint {
33				remote-endpoint = <&tda19988_out>;
34			};
35		};
36	};
37
38	leds {
39		compatible = "gpio-leds";
40
41		led0 {
42			gpios = <&gpio5 19 GPIO_ACTIVE_HIGH>;
43			label = "LED0";
44		};
45
46		led1 {
47			gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
48			label = "LED1";
49		};
50
51		led2 {
52			gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
53			label = "LED2";
54		};
55
56		led3 {
57			gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>;
58			label = "LED3";
59		};
60	};
61
62	memory@48000000 {
63		device_type = "memory";
64		/* first 128MB is reserved for secure area. */
65		reg = <0x0 0x48000000 0x0 0x78000000>;
66	};
67
68	sound: sound {
69		compatible = "simple-audio-card";
70
71		simple-audio-card,name = "CAT874 HDMI sound";
72		simple-audio-card,format = "i2s";
73		simple-audio-card,bitclock-master = <&sndcpu>;
74		simple-audio-card,frame-master = <&sndcpu>;
75
76		sndcpu: simple-audio-card,cpu {
77			sound-dai = <&rcar_sound>;
78		};
79
80		sndcodec: simple-audio-card,codec {
81			sound-dai = <&tda19988>;
82		};
83	};
84
85	vcc_sdhi0: regulator-vcc-sdhi0 {
86		compatible = "regulator-fixed";
87
88		regulator-name = "SDHI0 Vcc";
89		regulator-min-microvolt = <3300000>;
90		regulator-max-microvolt = <3300000>;
91		regulator-always-on;
92		regulator-boot-on;
93	};
94
95	vccq_sdhi0: regulator-vccq-sdhi0 {
96		compatible = "regulator-gpio";
97
98		regulator-name = "SDHI0 VccQ";
99		regulator-min-microvolt = <1800000>;
100		regulator-max-microvolt = <3300000>;
101
102		gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
103		gpios-states = <1>;
104		states = <3300000 1
105			  1800000 0>;
106	};
107
108	wlan_en_reg: fixedregulator {
109		compatible = "regulator-fixed";
110		regulator-name = "wlan-en-regulator";
111		regulator-min-microvolt = <1800000>;
112		regulator-max-microvolt = <1800000>;
113		startup-delay-us = <70000>;
114
115		gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>;
116		enable-active-high;
117	};
118
119	x13_clk: x13 {
120		compatible = "fixed-clock";
121		#clock-cells = <0>;
122		clock-frequency = <74250000>;
123	};
124};
125
126&audio_clk_a {
127	clock-frequency = <22579200>;
128};
129
130&du {
131	pinctrl-0 = <&du_pins>;
132	pinctrl-names = "default";
133	status = "okay";
134
135	clocks = <&cpg CPG_MOD 724>,
136		 <&cpg CPG_MOD 723>,
137		 <&x13_clk>;
138	clock-names = "du.0", "du.1", "dclkin.0";
139
140	ports {
141		port@0 {
142			endpoint {
143				remote-endpoint = <&tda19988_in>;
144			};
145		};
146	};
147};
148
149&ehci0 {
150	dr_mode = "host";
151	status = "okay";
152};
153
154&extal_clk {
155	clock-frequency = <48000000>;
156};
157
158&hscif2 {
159	pinctrl-0 = <&hscif2_pins>;
160	pinctrl-names = "default";
161
162	uart-has-rtscts;
163	status = "okay";
164
165	bluetooth {
166		compatible = "ti,wl1837-st";
167		enable-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;
168	};
169};
170
171&i2c0 {
172	status = "okay";
173	clock-frequency = <100000>;
174
175	tda19988: tda19988@70 {
176		compatible = "nxp,tda998x";
177		reg = <0x70>;
178		interrupt-parent = <&gpio1>;
179		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
180
181		video-ports = <0x234501>;
182
183		#sound-dai-cells = <0>;
184		audio-ports = <TDA998x_I2S 0x03>;
185		clocks = <&rcar_sound 1>;
186
187		ports {
188			#address-cells = <1>;
189			#size-cells = <0>;
190
191			port@0 {
192				reg = <0>;
193				tda19988_in: endpoint {
194					remote-endpoint = <&du_out_rgb>;
195				};
196			};
197
198			port@1 {
199				reg = <1>;
200				tda19988_out: endpoint {
201					remote-endpoint = <&hdmi_con_out>;
202				};
203			};
204		};
205	};
206};
207
208&i2c1 {
209	pinctrl-0 = <&i2c1_pins>;
210	pinctrl-names = "default";
211
212	status = "okay";
213	clock-frequency = <400000>;
214
215	rtc@32 {
216		compatible = "epson,rx8571";
217		reg = <0x32>;
218	};
219};
220
221&lvds0 {
222	status = "okay";
223
224	clocks = <&cpg CPG_MOD 727>, <&x13_clk>, <&extal_clk>;
225	clock-names = "fck", "dclkin.0", "extal";
226};
227
228&ohci0 {
229	dr_mode = "host";
230	status = "okay";
231};
232
233&pcie_bus_clk {
234	clock-frequency = <100000000>;
235};
236
237&pciec0 {
238	/* Map all possible DDR as inbound ranges */
239	dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x80000000>;
240};
241
242&pfc {
243	du_pins: du {
244		groups = "du_rgb888", "du_clk_out_0", "du_sync", "du_disp",
245			 "du_clk_in_0";
246		function = "du";
247	};
248
249	i2c1_pins: i2c1 {
250		groups = "i2c1_b";
251		function = "i2c1";
252	};
253
254	hscif2_pins: hscif2 {
255		groups = "hscif2_data_a", "hscif2_ctrl_a";
256		function = "hscif2";
257	};
258
259	scif2_pins: scif2 {
260		groups = "scif2_data_a";
261		function = "scif2";
262	};
263
264	sdhi0_pins: sd0 {
265		groups = "sdhi0_data4", "sdhi0_ctrl";
266		function = "sdhi0";
267		power-source = <3300>;
268	};
269
270	sdhi0_pins_uhs: sd0_uhs {
271		groups = "sdhi0_data4", "sdhi0_ctrl";
272		function = "sdhi0";
273		power-source = <1800>;
274	};
275
276	sdhi3_pins: sd3 {
277		groups = "sdhi3_data4", "sdhi3_ctrl";
278		function = "sdhi3";
279		power-source = <1800>;
280	};
281
282	sound_pins: sound {
283		groups = "ssi01239_ctrl", "ssi0_data";
284		function = "ssi";
285	};
286
287	sound_clk_pins: sound_clk {
288		groups = "audio_clkout1_a";
289		function = "audio_clk";
290	};
291};
292
293&rcar_sound {
294	pinctrl-0 = <&sound_pins &sound_clk_pins>;
295	pinctrl-names = "default";
296
297	/* Single DAI */
298	#sound-dai-cells = <0>;
299
300	/* audio_clkout0/1/2/3 */
301	#clock-cells = <1>;
302	clock-frequency = <11289600>;
303
304	status = "okay";
305
306	rcar_sound,dai {
307		dai0 {
308			playback = <&ssi0 &src0 &dvc0>;
309		};
310	};
311};
312
313&rwdt {
314	timeout-sec = <60>;
315	status = "okay";
316};
317
318&scif2 {
319	pinctrl-0 = <&scif2_pins>;
320	pinctrl-names = "default";
321
322	status = "okay";
323};
324
325&sdhi0 {
326	pinctrl-0 = <&sdhi0_pins>;
327	pinctrl-1 = <&sdhi0_pins_uhs>;
328	pinctrl-names = "default", "state_uhs";
329
330	vmmc-supply = <&vcc_sdhi0>;
331	vqmmc-supply = <&vccq_sdhi0>;
332	cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
333	bus-width = <4>;
334	sd-uhs-sdr50;
335	sd-uhs-sdr104;
336	status = "okay";
337};
338
339&sdhi3 {
340	status = "okay";
341	pinctrl-0 = <&sdhi3_pins>;
342	pinctrl-names = "default";
343
344	vmmc-supply = <&wlan_en_reg>;
345	bus-width = <4>;
346	non-removable;
347	cap-power-off-card;
348	keep-power-in-suspend;
349
350	#address-cells = <1>;
351	#size-cells = <0>;
352	wlcore: wlcore@2 {
353		compatible = "ti,wl1837";
354		reg = <2>;
355		interrupt-parent = <&gpio1>;
356		interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
357	};
358};
359
360&usb2_phy0 {
361	renesas,no-otg-pins;
362	status = "okay";
363};
364