xref: /linux/scripts/dtc/include-prefixes/arm64/renesas/r8a774c0-cat874.dts (revision 7b7c5676a877c4e66083888d87d52e4a0d0c2e82)
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;
19*7b7c5676SBiju Das		serial1 = &hscif2;
20d828266bSBiju Das	};
21d828266bSBiju Das
22d828266bSBiju Das	chosen {
23d828266bSBiju Das		bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
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
158*7b7c5676SBiju Das&hscif2 {
159*7b7c5676SBiju Das	pinctrl-0 = <&hscif2_pins>;
160*7b7c5676SBiju Das	pinctrl-names = "default";
161*7b7c5676SBiju Das
162*7b7c5676SBiju Das	uart-has-rtscts;
163*7b7c5676SBiju Das	status = "okay";
164*7b7c5676SBiju Das
165*7b7c5676SBiju Das	bluetooth {
166*7b7c5676SBiju Das		compatible = "ti,wl1837-st";
167*7b7c5676SBiju Das		enable-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;
168*7b7c5676SBiju Das	};
169*7b7c5676SBiju Das};
170*7b7c5676SBiju Das
17194fc0ee2SFabrizio Castro&i2c0 {
17294fc0ee2SFabrizio Castro	status = "okay";
17394fc0ee2SFabrizio Castro	clock-frequency = <100000>;
17494fc0ee2SFabrizio Castro
17594fc0ee2SFabrizio Castro	tda19988: tda19988@70 {
17694fc0ee2SFabrizio Castro		compatible = "nxp,tda998x";
17794fc0ee2SFabrizio Castro		reg = <0x70>;
17894fc0ee2SFabrizio Castro		interrupt-parent = <&gpio1>;
17994fc0ee2SFabrizio Castro		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
18094fc0ee2SFabrizio Castro
18194fc0ee2SFabrizio Castro		video-ports = <0x234501>;
18294fc0ee2SFabrizio Castro
183a597dcb1SFabrizio Castro		#sound-dai-cells = <0>;
184a597dcb1SFabrizio Castro		audio-ports = <TDA998x_I2S 0x03>;
185a597dcb1SFabrizio Castro		clocks = <&rcar_sound 1>;
186a597dcb1SFabrizio Castro
18794fc0ee2SFabrizio Castro		ports {
18894fc0ee2SFabrizio Castro			#address-cells = <1>;
18994fc0ee2SFabrizio Castro			#size-cells = <0>;
19094fc0ee2SFabrizio Castro
19194fc0ee2SFabrizio Castro			port@0 {
19294fc0ee2SFabrizio Castro				reg = <0>;
19394fc0ee2SFabrizio Castro				tda19988_in: endpoint {
19494fc0ee2SFabrizio Castro					remote-endpoint = <&du_out_rgb>;
19594fc0ee2SFabrizio Castro				};
19694fc0ee2SFabrizio Castro			};
19794fc0ee2SFabrizio Castro
19894fc0ee2SFabrizio Castro			port@1 {
19994fc0ee2SFabrizio Castro				reg = <1>;
20094fc0ee2SFabrizio Castro				tda19988_out: endpoint {
20194fc0ee2SFabrizio Castro					remote-endpoint = <&hdmi_con_out>;
20294fc0ee2SFabrizio Castro				};
20394fc0ee2SFabrizio Castro			};
20494fc0ee2SFabrizio Castro		};
20594fc0ee2SFabrizio Castro	};
20694fc0ee2SFabrizio Castro};
20794fc0ee2SFabrizio Castro
20807e72397SBiju Das&i2c1 {
20907e72397SBiju Das	pinctrl-0 = <&i2c1_pins>;
21007e72397SBiju Das	pinctrl-names = "default";
21107e72397SBiju Das
21207e72397SBiju Das	status = "okay";
21307e72397SBiju Das	clock-frequency = <400000>;
21407e72397SBiju Das
21507e72397SBiju Das	rtc@32 {
21607e72397SBiju Das		compatible = "epson,rx8571";
21707e72397SBiju Das		reg = <0x32>;
21807e72397SBiju Das	};
21907e72397SBiju Das};
22007e72397SBiju Das
22194fc0ee2SFabrizio Castro&lvds0 {
22294fc0ee2SFabrizio Castro	status = "okay";
22394fc0ee2SFabrizio Castro
22494fc0ee2SFabrizio Castro	clocks = <&cpg CPG_MOD 727>, <&x13_clk>, <&extal_clk>;
22594fc0ee2SFabrizio Castro	clock-names = "fck", "dclkin.0", "extal";
22694fc0ee2SFabrizio Castro};
22794fc0ee2SFabrizio Castro
228ad68fa5fSFabrizio Castro&ohci0 {
229ad68fa5fSFabrizio Castro	dr_mode = "host";
230ad68fa5fSFabrizio Castro	status = "okay";
231ad68fa5fSFabrizio Castro};
232ad68fa5fSFabrizio Castro
233aaf6c75cSBiju Das&pcie_bus_clk {
234aaf6c75cSBiju Das	clock-frequency = <100000000>;
235aaf6c75cSBiju Das};
236aaf6c75cSBiju Das
237aaf6c75cSBiju Das&pciec0 {
238aaf6c75cSBiju Das	/* Map all possible DDR as inbound ranges */
239aaf6c75cSBiju Das	dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x80000000>;
240aaf6c75cSBiju Das};
241aaf6c75cSBiju Das
2424cf1f6ceSBiju Das&pfc {
24394fc0ee2SFabrizio Castro	du_pins: du {
24494fc0ee2SFabrizio Castro		groups = "du_rgb888", "du_clk_out_0", "du_sync", "du_disp",
24594fc0ee2SFabrizio Castro			 "du_clk_in_0";
24694fc0ee2SFabrizio Castro		function = "du";
24794fc0ee2SFabrizio Castro	};
24894fc0ee2SFabrizio Castro
24907e72397SBiju Das	i2c1_pins: i2c1 {
25007e72397SBiju Das		groups = "i2c1_b";
25107e72397SBiju Das		function = "i2c1";
25207e72397SBiju Das	};
25307e72397SBiju Das
254*7b7c5676SBiju Das	hscif2_pins: hscif2 {
255*7b7c5676SBiju Das		groups = "hscif2_data_a", "hscif2_ctrl_a";
256*7b7c5676SBiju Das		function = "hscif2";
257*7b7c5676SBiju Das	};
258*7b7c5676SBiju Das
2594cf1f6ceSBiju Das	scif2_pins: scif2 {
2604cf1f6ceSBiju Das		groups = "scif2_data_a";
2614cf1f6ceSBiju Das		function = "scif2";
2624cf1f6ceSBiju Das	};
263a102b93eSBiju Das
264a102b93eSBiju Das	sdhi0_pins: sd0 {
265a102b93eSBiju Das		groups = "sdhi0_data4", "sdhi0_ctrl";
266a102b93eSBiju Das		function = "sdhi0";
267a102b93eSBiju Das		power-source = <3300>;
268a102b93eSBiju Das	};
269a102b93eSBiju Das
270a102b93eSBiju Das	sdhi0_pins_uhs: sd0_uhs {
271a102b93eSBiju Das		groups = "sdhi0_data4", "sdhi0_ctrl";
272a102b93eSBiju Das		function = "sdhi0";
273a102b93eSBiju Das		power-source = <1800>;
274a102b93eSBiju Das	};
275a597dcb1SFabrizio Castro
276b263b006SBiju Das	sdhi3_pins: sd3 {
277b263b006SBiju Das		groups = "sdhi3_data4", "sdhi3_ctrl";
278b263b006SBiju Das		function = "sdhi3";
279b263b006SBiju Das		power-source = <1800>;
280b263b006SBiju Das	};
281b263b006SBiju Das
282a597dcb1SFabrizio Castro	sound_pins: sound {
283a597dcb1SFabrizio Castro		groups = "ssi01239_ctrl", "ssi0_data";
284a597dcb1SFabrizio Castro		function = "ssi";
285a597dcb1SFabrizio Castro	};
286a597dcb1SFabrizio Castro
287a597dcb1SFabrizio Castro	sound_clk_pins: sound_clk {
288a597dcb1SFabrizio Castro		groups = "audio_clkout1_a";
289a597dcb1SFabrizio Castro		function = "audio_clk";
290a597dcb1SFabrizio Castro	};
291a597dcb1SFabrizio Castro};
292a597dcb1SFabrizio Castro
293a597dcb1SFabrizio Castro&rcar_sound {
294a597dcb1SFabrizio Castro	pinctrl-0 = <&sound_pins &sound_clk_pins>;
295a597dcb1SFabrizio Castro	pinctrl-names = "default";
296a597dcb1SFabrizio Castro
297a597dcb1SFabrizio Castro	/* Single DAI */
298a597dcb1SFabrizio Castro	#sound-dai-cells = <0>;
299a597dcb1SFabrizio Castro
300a597dcb1SFabrizio Castro	/* audio_clkout0/1/2/3 */
301a597dcb1SFabrizio Castro	#clock-cells = <1>;
302a597dcb1SFabrizio Castro	clock-frequency = <11289600>;
303a597dcb1SFabrizio Castro
304a597dcb1SFabrizio Castro	status = "okay";
305a597dcb1SFabrizio Castro
306a597dcb1SFabrizio Castro	rcar_sound,dai {
307a597dcb1SFabrizio Castro		dai0 {
308a597dcb1SFabrizio Castro			playback = <&ssi0 &src0 &dvc0>;
309a597dcb1SFabrizio Castro		};
310a597dcb1SFabrizio Castro	};
3114cf1f6ceSBiju Das};
3124cf1f6ceSBiju Das
31379223ca1SFabrizio Castro&rwdt {
31479223ca1SFabrizio Castro	timeout-sec = <60>;
31579223ca1SFabrizio Castro	status = "okay";
31679223ca1SFabrizio Castro};
31779223ca1SFabrizio Castro
318d828266bSBiju Das&scif2 {
3194cf1f6ceSBiju Das	pinctrl-0 = <&scif2_pins>;
3204cf1f6ceSBiju Das	pinctrl-names = "default";
3214cf1f6ceSBiju Das
322d828266bSBiju Das	status = "okay";
323d828266bSBiju Das};
324a102b93eSBiju Das
325a102b93eSBiju Das&sdhi0 {
326a102b93eSBiju Das	pinctrl-0 = <&sdhi0_pins>;
327a102b93eSBiju Das	pinctrl-1 = <&sdhi0_pins_uhs>;
328a102b93eSBiju Das	pinctrl-names = "default", "state_uhs";
329a102b93eSBiju Das
330a102b93eSBiju Das	vmmc-supply = <&vcc_sdhi0>;
331a102b93eSBiju Das	vqmmc-supply = <&vccq_sdhi0>;
332a102b93eSBiju Das	cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
333a102b93eSBiju Das	bus-width = <4>;
334a102b93eSBiju Das	sd-uhs-sdr50;
335a102b93eSBiju Das	sd-uhs-sdr104;
336a102b93eSBiju Das	status = "okay";
337a102b93eSBiju Das};
338ad68fa5fSFabrizio Castro
339b263b006SBiju Das&sdhi3 {
340b263b006SBiju Das	status = "okay";
341b263b006SBiju Das	pinctrl-0 = <&sdhi3_pins>;
342b263b006SBiju Das	pinctrl-names = "default";
343b263b006SBiju Das
344b263b006SBiju Das	vmmc-supply = <&wlan_en_reg>;
345b263b006SBiju Das	bus-width = <4>;
346b263b006SBiju Das	non-removable;
347b263b006SBiju Das	cap-power-off-card;
348b263b006SBiju Das	keep-power-in-suspend;
349b263b006SBiju Das
350b263b006SBiju Das	#address-cells = <1>;
351b263b006SBiju Das	#size-cells = <0>;
352b263b006SBiju Das	wlcore: wlcore@2 {
353b263b006SBiju Das		compatible = "ti,wl1837";
354b263b006SBiju Das		reg = <2>;
355b263b006SBiju Das		interrupt-parent = <&gpio1>;
356b263b006SBiju Das		interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
357b263b006SBiju Das	};
358b263b006SBiju Das};
359b263b006SBiju Das
360ad68fa5fSFabrizio Castro&usb2_phy0 {
361ad68fa5fSFabrizio Castro	renesas,no-otg-pins;
362ad68fa5fSFabrizio Castro	status = "okay";
363ad68fa5fSFabrizio Castro};
364