xref: /linux/scripts/dtc/include-prefixes/arm64/renesas/r8a774c0-cat874.dts (revision ec0a286a339e0fff8666d48ccce48263488e64fb)
1d828266bSBiju Das// SPDX-License-Identifier: GPL-2.0
2d828266bSBiju Das/*
3d828266bSBiju Das * Device Tree Source for the Silicon Linux RZ/G2E 96board platform (CAT874)
4d828266bSBiju Das *
5d828266bSBiju Das * Copyright (C) 2019 Renesas Electronics Corp.
6d828266bSBiju Das */
7d828266bSBiju Das
8d828266bSBiju Das/dts-v1/;
9d828266bSBiju Das#include "r8a774c0.dtsi"
10a102b93eSBiju Das#include <dt-bindings/gpio/gpio.h>
11a597dcb1SFabrizio Castro#include <dt-bindings/display/tda998x.h>
12d828266bSBiju Das
13d828266bSBiju Das/ {
14d828266bSBiju Das	model = "Silicon Linux RZ/G2E 96board platform (CAT874)";
15d828266bSBiju Das	compatible = "si-linux,cat874", "renesas,r8a774c0";
16d828266bSBiju Das
17d828266bSBiju Das	aliases {
18d828266bSBiju Das		serial0 = &scif2;
197b7c5676SBiju Das		serial1 = &hscif2;
20d828266bSBiju Das	};
21d828266bSBiju Das
22d828266bSBiju Das	chosen {
23b31b43c9SMagnus Damm		bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
24d828266bSBiju Das		stdout-path = "serial0:115200n8";
25d828266bSBiju Das	};
26d828266bSBiju Das
2794fc0ee2SFabrizio Castro	hdmi-out {
2894fc0ee2SFabrizio Castro		compatible = "hdmi-connector";
2994fc0ee2SFabrizio Castro		type = "a";
3094fc0ee2SFabrizio Castro
3194fc0ee2SFabrizio Castro		port {
3294fc0ee2SFabrizio Castro			hdmi_con_out: endpoint {
3394fc0ee2SFabrizio Castro				remote-endpoint = <&tda19988_out>;
3494fc0ee2SFabrizio Castro			};
3594fc0ee2SFabrizio Castro		};
3694fc0ee2SFabrizio Castro	};
3794fc0ee2SFabrizio Castro
38dc0b4394SFabrizio Castro	leds {
39dc0b4394SFabrizio Castro		compatible = "gpio-leds";
40dc0b4394SFabrizio Castro
41dc0b4394SFabrizio Castro		led0 {
42dc0b4394SFabrizio Castro			gpios = <&gpio5 19 GPIO_ACTIVE_HIGH>;
43dc0b4394SFabrizio Castro			label = "LED0";
44dc0b4394SFabrizio Castro		};
45dc0b4394SFabrizio Castro
46dc0b4394SFabrizio Castro		led1 {
47dc0b4394SFabrizio Castro			gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
48dc0b4394SFabrizio Castro			label = "LED1";
49dc0b4394SFabrizio Castro		};
50dc0b4394SFabrizio Castro
51dc0b4394SFabrizio Castro		led2 {
52dc0b4394SFabrizio Castro			gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
53dc0b4394SFabrizio Castro			label = "LED2";
54dc0b4394SFabrizio Castro		};
55dc0b4394SFabrizio Castro
56dc0b4394SFabrizio Castro		led3 {
57dc0b4394SFabrizio Castro			gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>;
58dc0b4394SFabrizio Castro			label = "LED3";
59dc0b4394SFabrizio Castro		};
60dc0b4394SFabrizio Castro	};
61dc0b4394SFabrizio Castro
62d828266bSBiju Das	memory@48000000 {
63d828266bSBiju Das		device_type = "memory";
64d828266bSBiju Das		/* first 128MB is reserved for secure area. */
65d828266bSBiju Das		reg = <0x0 0x48000000 0x0 0x78000000>;
66d828266bSBiju Das	};
67a102b93eSBiju Das
68a597dcb1SFabrizio Castro	sound: sound {
69a597dcb1SFabrizio Castro		compatible = "simple-audio-card";
70a597dcb1SFabrizio Castro
71a597dcb1SFabrizio Castro		simple-audio-card,name = "CAT874 HDMI sound";
72a597dcb1SFabrizio Castro		simple-audio-card,format = "i2s";
73a597dcb1SFabrizio Castro		simple-audio-card,bitclock-master = <&sndcpu>;
74a597dcb1SFabrizio Castro		simple-audio-card,frame-master = <&sndcpu>;
75a597dcb1SFabrizio Castro
76a597dcb1SFabrizio Castro		sndcpu: simple-audio-card,cpu {
77a597dcb1SFabrizio Castro			sound-dai = <&rcar_sound>;
78a597dcb1SFabrizio Castro		};
79a597dcb1SFabrizio Castro
80a597dcb1SFabrizio Castro		sndcodec: simple-audio-card,codec {
81a597dcb1SFabrizio Castro			sound-dai = <&tda19988>;
82a597dcb1SFabrizio Castro		};
83a597dcb1SFabrizio Castro	};
84a597dcb1SFabrizio Castro
85a102b93eSBiju Das	vcc_sdhi0: regulator-vcc-sdhi0 {
86a102b93eSBiju Das		compatible = "regulator-fixed";
87a102b93eSBiju Das
88a102b93eSBiju Das		regulator-name = "SDHI0 Vcc";
89a102b93eSBiju Das		regulator-min-microvolt = <3300000>;
90a102b93eSBiju Das		regulator-max-microvolt = <3300000>;
91a102b93eSBiju Das		regulator-always-on;
92a102b93eSBiju Das		regulator-boot-on;
93a102b93eSBiju Das	};
94a102b93eSBiju Das
95a102b93eSBiju Das	vccq_sdhi0: regulator-vccq-sdhi0 {
96a102b93eSBiju Das		compatible = "regulator-gpio";
97a102b93eSBiju Das
98a102b93eSBiju Das		regulator-name = "SDHI0 VccQ";
99a102b93eSBiju Das		regulator-min-microvolt = <1800000>;
100a102b93eSBiju Das		regulator-max-microvolt = <3300000>;
101a102b93eSBiju Das
102a102b93eSBiju Das		gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
103a102b93eSBiju Das		gpios-states = <1>;
104a102b93eSBiju Das		states = <3300000 1
105a102b93eSBiju Das			  1800000 0>;
106a102b93eSBiju Das	};
10794fc0ee2SFabrizio Castro
108b263b006SBiju Das	wlan_en_reg: fixedregulator {
109b263b006SBiju Das		compatible = "regulator-fixed";
110b263b006SBiju Das		regulator-name = "wlan-en-regulator";
111b263b006SBiju Das		regulator-min-microvolt = <1800000>;
112b263b006SBiju Das		regulator-max-microvolt = <1800000>;
113b263b006SBiju Das		startup-delay-us = <70000>;
114b263b006SBiju Das
115b263b006SBiju Das		gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>;
116b263b006SBiju Das		enable-active-high;
117b263b006SBiju Das	};
118b263b006SBiju Das
11994fc0ee2SFabrizio Castro	x13_clk: x13 {
12094fc0ee2SFabrizio Castro		compatible = "fixed-clock";
12194fc0ee2SFabrizio Castro		#clock-cells = <0>;
12294fc0ee2SFabrizio Castro		clock-frequency = <74250000>;
12394fc0ee2SFabrizio Castro	};
12494fc0ee2SFabrizio Castro};
12594fc0ee2SFabrizio Castro
126a597dcb1SFabrizio Castro&audio_clk_a {
127a597dcb1SFabrizio Castro	clock-frequency = <22579200>;
128a597dcb1SFabrizio Castro};
129a597dcb1SFabrizio Castro
13094fc0ee2SFabrizio Castro&du {
13194fc0ee2SFabrizio Castro	pinctrl-0 = <&du_pins>;
13294fc0ee2SFabrizio Castro	pinctrl-names = "default";
13394fc0ee2SFabrizio Castro	status = "okay";
13494fc0ee2SFabrizio Castro
13594fc0ee2SFabrizio Castro	clocks = <&cpg CPG_MOD 724>,
13694fc0ee2SFabrizio Castro		 <&cpg CPG_MOD 723>,
13794fc0ee2SFabrizio Castro		 <&x13_clk>;
13894fc0ee2SFabrizio Castro	clock-names = "du.0", "du.1", "dclkin.0";
13994fc0ee2SFabrizio Castro
14094fc0ee2SFabrizio Castro	ports {
14194fc0ee2SFabrizio Castro		port@0 {
14294fc0ee2SFabrizio Castro			endpoint {
14394fc0ee2SFabrizio Castro				remote-endpoint = <&tda19988_in>;
14494fc0ee2SFabrizio Castro			};
14594fc0ee2SFabrizio Castro		};
14694fc0ee2SFabrizio Castro	};
147d828266bSBiju Das};
148d828266bSBiju Das
149ad68fa5fSFabrizio Castro&ehci0 {
150ad68fa5fSFabrizio Castro	dr_mode = "host";
151ad68fa5fSFabrizio Castro	status = "okay";
152ad68fa5fSFabrizio Castro};
153ad68fa5fSFabrizio Castro
154d828266bSBiju Das&extal_clk {
155d828266bSBiju Das	clock-frequency = <48000000>;
156d828266bSBiju Das};
157d828266bSBiju Das
1587b7c5676SBiju Das&hscif2 {
1597b7c5676SBiju Das	pinctrl-0 = <&hscif2_pins>;
1607b7c5676SBiju Das	pinctrl-names = "default";
1617b7c5676SBiju Das
1627b7c5676SBiju Das	uart-has-rtscts;
1637b7c5676SBiju Das	status = "okay";
1647b7c5676SBiju Das
1657b7c5676SBiju Das	bluetooth {
1667b7c5676SBiju Das		compatible = "ti,wl1837-st";
1677b7c5676SBiju Das		enable-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;
1687b7c5676SBiju Das	};
1697b7c5676SBiju Das};
1707b7c5676SBiju Das
17194fc0ee2SFabrizio Castro&i2c0 {
17294fc0ee2SFabrizio Castro	status = "okay";
17394fc0ee2SFabrizio Castro	clock-frequency = <100000>;
17494fc0ee2SFabrizio Castro
175*ec0a286aSBiju Das	hd3ss3220@47 {
176*ec0a286aSBiju Das		compatible = "ti,hd3ss3220";
177*ec0a286aSBiju Das		reg = <0x47>;
178*ec0a286aSBiju Das		interrupt-parent = <&gpio6>;
179*ec0a286aSBiju Das		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
180*ec0a286aSBiju Das
181*ec0a286aSBiju Das		connector {
182*ec0a286aSBiju Das			compatible = "usb-c-connector";
183*ec0a286aSBiju Das			label = "USB-C";
184*ec0a286aSBiju Das			data-role = "dual";
185*ec0a286aSBiju Das
186*ec0a286aSBiju Das			ports {
187*ec0a286aSBiju Das				#address-cells = <1>;
188*ec0a286aSBiju Das				#size-cells = <0>;
189*ec0a286aSBiju Das
190*ec0a286aSBiju Das				port@1 {
191*ec0a286aSBiju Das					reg = <1>;
192*ec0a286aSBiju Das					hd3ss3220_ep: endpoint {
193*ec0a286aSBiju Das						remote-endpoint = <&usb3_role_switch>;
194*ec0a286aSBiju Das					};
195*ec0a286aSBiju Das				};
196*ec0a286aSBiju Das			};
197*ec0a286aSBiju Das		};
198*ec0a286aSBiju Das	};
199*ec0a286aSBiju Das
20094fc0ee2SFabrizio Castro	tda19988: tda19988@70 {
20194fc0ee2SFabrizio Castro		compatible = "nxp,tda998x";
20294fc0ee2SFabrizio Castro		reg = <0x70>;
20394fc0ee2SFabrizio Castro		interrupt-parent = <&gpio1>;
20494fc0ee2SFabrizio Castro		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
20594fc0ee2SFabrizio Castro
20694fc0ee2SFabrizio Castro		video-ports = <0x234501>;
20794fc0ee2SFabrizio Castro
208a597dcb1SFabrizio Castro		#sound-dai-cells = <0>;
209a597dcb1SFabrizio Castro		audio-ports = <TDA998x_I2S 0x03>;
210a597dcb1SFabrizio Castro		clocks = <&rcar_sound 1>;
211a597dcb1SFabrizio Castro
21294fc0ee2SFabrizio Castro		ports {
21394fc0ee2SFabrizio Castro			#address-cells = <1>;
21494fc0ee2SFabrizio Castro			#size-cells = <0>;
21594fc0ee2SFabrizio Castro
21694fc0ee2SFabrizio Castro			port@0 {
21794fc0ee2SFabrizio Castro				reg = <0>;
21894fc0ee2SFabrizio Castro				tda19988_in: endpoint {
21994fc0ee2SFabrizio Castro					remote-endpoint = <&du_out_rgb>;
22094fc0ee2SFabrizio Castro				};
22194fc0ee2SFabrizio Castro			};
22294fc0ee2SFabrizio Castro
22394fc0ee2SFabrizio Castro			port@1 {
22494fc0ee2SFabrizio Castro				reg = <1>;
22594fc0ee2SFabrizio Castro				tda19988_out: endpoint {
22694fc0ee2SFabrizio Castro					remote-endpoint = <&hdmi_con_out>;
22794fc0ee2SFabrizio Castro				};
22894fc0ee2SFabrizio Castro			};
22994fc0ee2SFabrizio Castro		};
23094fc0ee2SFabrizio Castro	};
23194fc0ee2SFabrizio Castro};
23294fc0ee2SFabrizio Castro
23307e72397SBiju Das&i2c1 {
23407e72397SBiju Das	pinctrl-0 = <&i2c1_pins>;
23507e72397SBiju Das	pinctrl-names = "default";
23607e72397SBiju Das
23707e72397SBiju Das	status = "okay";
23807e72397SBiju Das	clock-frequency = <400000>;
23907e72397SBiju Das
24007e72397SBiju Das	rtc@32 {
24107e72397SBiju Das		compatible = "epson,rx8571";
24207e72397SBiju Das		reg = <0x32>;
24307e72397SBiju Das	};
24407e72397SBiju Das};
24507e72397SBiju Das
24694fc0ee2SFabrizio Castro&lvds0 {
24794fc0ee2SFabrizio Castro	status = "okay";
24894fc0ee2SFabrizio Castro
24994fc0ee2SFabrizio Castro	clocks = <&cpg CPG_MOD 727>, <&x13_clk>, <&extal_clk>;
25094fc0ee2SFabrizio Castro	clock-names = "fck", "dclkin.0", "extal";
25194fc0ee2SFabrizio Castro};
25294fc0ee2SFabrizio Castro
253ad68fa5fSFabrizio Castro&ohci0 {
254ad68fa5fSFabrizio Castro	dr_mode = "host";
255ad68fa5fSFabrizio Castro	status = "okay";
256ad68fa5fSFabrizio Castro};
257ad68fa5fSFabrizio Castro
258aaf6c75cSBiju Das&pcie_bus_clk {
259aaf6c75cSBiju Das	clock-frequency = <100000000>;
260aaf6c75cSBiju Das};
261aaf6c75cSBiju Das
262aaf6c75cSBiju Das&pciec0 {
263aaf6c75cSBiju Das	/* Map all possible DDR as inbound ranges */
264aaf6c75cSBiju Das	dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x80000000>;
265aaf6c75cSBiju Das};
266aaf6c75cSBiju Das
2674cf1f6ceSBiju Das&pfc {
26894fc0ee2SFabrizio Castro	du_pins: du {
26994fc0ee2SFabrizio Castro		groups = "du_rgb888", "du_clk_out_0", "du_sync", "du_disp",
27094fc0ee2SFabrizio Castro			 "du_clk_in_0";
27194fc0ee2SFabrizio Castro		function = "du";
27294fc0ee2SFabrizio Castro	};
27394fc0ee2SFabrizio Castro
27407e72397SBiju Das	i2c1_pins: i2c1 {
27507e72397SBiju Das		groups = "i2c1_b";
27607e72397SBiju Das		function = "i2c1";
27707e72397SBiju Das	};
27807e72397SBiju Das
2797b7c5676SBiju Das	hscif2_pins: hscif2 {
2807b7c5676SBiju Das		groups = "hscif2_data_a", "hscif2_ctrl_a";
2817b7c5676SBiju Das		function = "hscif2";
2827b7c5676SBiju Das	};
2837b7c5676SBiju Das
2844cf1f6ceSBiju Das	scif2_pins: scif2 {
2854cf1f6ceSBiju Das		groups = "scif2_data_a";
2864cf1f6ceSBiju Das		function = "scif2";
2874cf1f6ceSBiju Das	};
288a102b93eSBiju Das
289a102b93eSBiju Das	sdhi0_pins: sd0 {
290a102b93eSBiju Das		groups = "sdhi0_data4", "sdhi0_ctrl";
291a102b93eSBiju Das		function = "sdhi0";
292a102b93eSBiju Das		power-source = <3300>;
293a102b93eSBiju Das	};
294a102b93eSBiju Das
295a102b93eSBiju Das	sdhi0_pins_uhs: sd0_uhs {
296a102b93eSBiju Das		groups = "sdhi0_data4", "sdhi0_ctrl";
297a102b93eSBiju Das		function = "sdhi0";
298a102b93eSBiju Das		power-source = <1800>;
299a102b93eSBiju Das	};
300a597dcb1SFabrizio Castro
301b263b006SBiju Das	sdhi3_pins: sd3 {
302b263b006SBiju Das		groups = "sdhi3_data4", "sdhi3_ctrl";
303b263b006SBiju Das		function = "sdhi3";
304b263b006SBiju Das		power-source = <1800>;
305b263b006SBiju Das	};
306b263b006SBiju Das
307a597dcb1SFabrizio Castro	sound_pins: sound {
308a597dcb1SFabrizio Castro		groups = "ssi01239_ctrl", "ssi0_data";
309a597dcb1SFabrizio Castro		function = "ssi";
310a597dcb1SFabrizio Castro	};
311a597dcb1SFabrizio Castro
312a597dcb1SFabrizio Castro	sound_clk_pins: sound_clk {
313a597dcb1SFabrizio Castro		groups = "audio_clkout1_a";
314a597dcb1SFabrizio Castro		function = "audio_clk";
315a597dcb1SFabrizio Castro	};
316cf7b175aSBiju Das
317cf7b175aSBiju Das	usb30_pins: usb30 {
318cf7b175aSBiju Das		groups = "usb30", "usb30_id";
319cf7b175aSBiju Das		function = "usb30";
320cf7b175aSBiju Das	};
321a597dcb1SFabrizio Castro};
322a597dcb1SFabrizio Castro
323a597dcb1SFabrizio Castro&rcar_sound {
324a597dcb1SFabrizio Castro	pinctrl-0 = <&sound_pins &sound_clk_pins>;
325a597dcb1SFabrizio Castro	pinctrl-names = "default";
326a597dcb1SFabrizio Castro
327a597dcb1SFabrizio Castro	/* Single DAI */
328a597dcb1SFabrizio Castro	#sound-dai-cells = <0>;
329a597dcb1SFabrizio Castro
330a597dcb1SFabrizio Castro	/* audio_clkout0/1/2/3 */
331a597dcb1SFabrizio Castro	#clock-cells = <1>;
332a597dcb1SFabrizio Castro	clock-frequency = <11289600>;
333a597dcb1SFabrizio Castro
334a597dcb1SFabrizio Castro	status = "okay";
335a597dcb1SFabrizio Castro
336a597dcb1SFabrizio Castro	rcar_sound,dai {
337a597dcb1SFabrizio Castro		dai0 {
338a597dcb1SFabrizio Castro			playback = <&ssi0 &src0 &dvc0>;
339a597dcb1SFabrizio Castro		};
340a597dcb1SFabrizio Castro	};
3414cf1f6ceSBiju Das};
3424cf1f6ceSBiju Das
34379223ca1SFabrizio Castro&rwdt {
34479223ca1SFabrizio Castro	timeout-sec = <60>;
34579223ca1SFabrizio Castro	status = "okay";
34679223ca1SFabrizio Castro};
34779223ca1SFabrizio Castro
348d828266bSBiju Das&scif2 {
3494cf1f6ceSBiju Das	pinctrl-0 = <&scif2_pins>;
3504cf1f6ceSBiju Das	pinctrl-names = "default";
3514cf1f6ceSBiju Das
352d828266bSBiju Das	status = "okay";
353d828266bSBiju Das};
354a102b93eSBiju Das
355a102b93eSBiju Das&sdhi0 {
356a102b93eSBiju Das	pinctrl-0 = <&sdhi0_pins>;
357a102b93eSBiju Das	pinctrl-1 = <&sdhi0_pins_uhs>;
358a102b93eSBiju Das	pinctrl-names = "default", "state_uhs";
359a102b93eSBiju Das
360a102b93eSBiju Das	vmmc-supply = <&vcc_sdhi0>;
361a102b93eSBiju Das	vqmmc-supply = <&vccq_sdhi0>;
362a102b93eSBiju Das	cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
363a102b93eSBiju Das	bus-width = <4>;
364a102b93eSBiju Das	sd-uhs-sdr50;
365a102b93eSBiju Das	sd-uhs-sdr104;
366a102b93eSBiju Das	status = "okay";
367a102b93eSBiju Das};
368ad68fa5fSFabrizio Castro
369b263b006SBiju Das&sdhi3 {
370b263b006SBiju Das	status = "okay";
371b263b006SBiju Das	pinctrl-0 = <&sdhi3_pins>;
372b263b006SBiju Das	pinctrl-names = "default";
373b263b006SBiju Das
374b263b006SBiju Das	vmmc-supply = <&wlan_en_reg>;
375b263b006SBiju Das	bus-width = <4>;
376b263b006SBiju Das	non-removable;
377b263b006SBiju Das	cap-power-off-card;
378b263b006SBiju Das	keep-power-in-suspend;
379b263b006SBiju Das
380b263b006SBiju Das	#address-cells = <1>;
381b263b006SBiju Das	#size-cells = <0>;
382b263b006SBiju Das	wlcore: wlcore@2 {
383b263b006SBiju Das		compatible = "ti,wl1837";
384b263b006SBiju Das		reg = <2>;
385b263b006SBiju Das		interrupt-parent = <&gpio1>;
386b263b006SBiju Das		interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
387b263b006SBiju Das	};
388b263b006SBiju Das};
389b263b006SBiju Das
390ad68fa5fSFabrizio Castro&usb2_phy0 {
391ad68fa5fSFabrizio Castro	renesas,no-otg-pins;
392ad68fa5fSFabrizio Castro	status = "okay";
393ad68fa5fSFabrizio Castro};
394cf7b175aSBiju Das
395cf7b175aSBiju Das&usb3_peri0 {
396cf7b175aSBiju Das	companion = <&xhci0>;
397cf7b175aSBiju Das	status = "okay";
398*ec0a286aSBiju Das	usb-role-switch;
399*ec0a286aSBiju Das
400*ec0a286aSBiju Das	port {
401*ec0a286aSBiju Das		usb3_role_switch: endpoint {
402*ec0a286aSBiju Das			remote-endpoint = <&hd3ss3220_ep>;
403*ec0a286aSBiju Das		};
404*ec0a286aSBiju Das	};
405cf7b175aSBiju Das};
406cf7b175aSBiju Das
407cf7b175aSBiju Das&xhci0 {
408cf7b175aSBiju Das	pinctrl-0 = <&usb30_pins>;
409cf7b175aSBiju Das	pinctrl-names = "default";
410cf7b175aSBiju Das
411cf7b175aSBiju Das	status = "okay";
412cf7b175aSBiju Das};
413