xref: /linux/scripts/dtc/include-prefixes/arm64/renesas/r8a774c0-cat874.dts (revision b263b0067d727ffb230bd8ac75a6a3f9ff448f0f)
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;
19d828266bSBiju Das	};
20d828266bSBiju Das
21d828266bSBiju Das	chosen {
22d828266bSBiju Das		bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
23d828266bSBiju Das		stdout-path = "serial0:115200n8";
24d828266bSBiju Das	};
25d828266bSBiju Das
2694fc0ee2SFabrizio Castro	hdmi-out {
2794fc0ee2SFabrizio Castro		compatible = "hdmi-connector";
2894fc0ee2SFabrizio Castro		type = "a";
2994fc0ee2SFabrizio Castro
3094fc0ee2SFabrizio Castro		port {
3194fc0ee2SFabrizio Castro			hdmi_con_out: endpoint {
3294fc0ee2SFabrizio Castro				remote-endpoint = <&tda19988_out>;
3394fc0ee2SFabrizio Castro			};
3494fc0ee2SFabrizio Castro		};
3594fc0ee2SFabrizio Castro	};
3694fc0ee2SFabrizio Castro
37dc0b4394SFabrizio Castro	leds {
38dc0b4394SFabrizio Castro		compatible = "gpio-leds";
39dc0b4394SFabrizio Castro
40dc0b4394SFabrizio Castro		led0 {
41dc0b4394SFabrizio Castro			gpios = <&gpio5 19 GPIO_ACTIVE_HIGH>;
42dc0b4394SFabrizio Castro			label = "LED0";
43dc0b4394SFabrizio Castro		};
44dc0b4394SFabrizio Castro
45dc0b4394SFabrizio Castro		led1 {
46dc0b4394SFabrizio Castro			gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
47dc0b4394SFabrizio Castro			label = "LED1";
48dc0b4394SFabrizio Castro		};
49dc0b4394SFabrizio Castro
50dc0b4394SFabrizio Castro		led2 {
51dc0b4394SFabrizio Castro			gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
52dc0b4394SFabrizio Castro			label = "LED2";
53dc0b4394SFabrizio Castro		};
54dc0b4394SFabrizio Castro
55dc0b4394SFabrizio Castro		led3 {
56dc0b4394SFabrizio Castro			gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>;
57dc0b4394SFabrizio Castro			label = "LED3";
58dc0b4394SFabrizio Castro		};
59dc0b4394SFabrizio Castro	};
60dc0b4394SFabrizio Castro
61d828266bSBiju Das	memory@48000000 {
62d828266bSBiju Das		device_type = "memory";
63d828266bSBiju Das		/* first 128MB is reserved for secure area. */
64d828266bSBiju Das		reg = <0x0 0x48000000 0x0 0x78000000>;
65d828266bSBiju Das	};
66a102b93eSBiju Das
67a597dcb1SFabrizio Castro	sound: sound {
68a597dcb1SFabrizio Castro		compatible = "simple-audio-card";
69a597dcb1SFabrizio Castro
70a597dcb1SFabrizio Castro		simple-audio-card,name = "CAT874 HDMI sound";
71a597dcb1SFabrizio Castro		simple-audio-card,format = "i2s";
72a597dcb1SFabrizio Castro		simple-audio-card,bitclock-master = <&sndcpu>;
73a597dcb1SFabrizio Castro		simple-audio-card,frame-master = <&sndcpu>;
74a597dcb1SFabrizio Castro
75a597dcb1SFabrizio Castro		sndcpu: simple-audio-card,cpu {
76a597dcb1SFabrizio Castro			sound-dai = <&rcar_sound>;
77a597dcb1SFabrizio Castro		};
78a597dcb1SFabrizio Castro
79a597dcb1SFabrizio Castro		sndcodec: simple-audio-card,codec {
80a597dcb1SFabrizio Castro			sound-dai = <&tda19988>;
81a597dcb1SFabrizio Castro		};
82a597dcb1SFabrizio Castro	};
83a597dcb1SFabrizio Castro
84a102b93eSBiju Das	vcc_sdhi0: regulator-vcc-sdhi0 {
85a102b93eSBiju Das		compatible = "regulator-fixed";
86a102b93eSBiju Das
87a102b93eSBiju Das		regulator-name = "SDHI0 Vcc";
88a102b93eSBiju Das		regulator-min-microvolt = <3300000>;
89a102b93eSBiju Das		regulator-max-microvolt = <3300000>;
90a102b93eSBiju Das		regulator-always-on;
91a102b93eSBiju Das		regulator-boot-on;
92a102b93eSBiju Das	};
93a102b93eSBiju Das
94a102b93eSBiju Das	vccq_sdhi0: regulator-vccq-sdhi0 {
95a102b93eSBiju Das		compatible = "regulator-gpio";
96a102b93eSBiju Das
97a102b93eSBiju Das		regulator-name = "SDHI0 VccQ";
98a102b93eSBiju Das		regulator-min-microvolt = <1800000>;
99a102b93eSBiju Das		regulator-max-microvolt = <3300000>;
100a102b93eSBiju Das
101a102b93eSBiju Das		gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
102a102b93eSBiju Das		gpios-states = <1>;
103a102b93eSBiju Das		states = <3300000 1
104a102b93eSBiju Das			  1800000 0>;
105a102b93eSBiju Das	};
10694fc0ee2SFabrizio Castro
107*b263b006SBiju Das	wlan_en_reg: fixedregulator {
108*b263b006SBiju Das		compatible = "regulator-fixed";
109*b263b006SBiju Das		regulator-name = "wlan-en-regulator";
110*b263b006SBiju Das		regulator-min-microvolt = <1800000>;
111*b263b006SBiju Das		regulator-max-microvolt = <1800000>;
112*b263b006SBiju Das		startup-delay-us = <70000>;
113*b263b006SBiju Das
114*b263b006SBiju Das		gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>;
115*b263b006SBiju Das		enable-active-high;
116*b263b006SBiju Das	};
117*b263b006SBiju Das
11894fc0ee2SFabrizio Castro	x13_clk: x13 {
11994fc0ee2SFabrizio Castro		compatible = "fixed-clock";
12094fc0ee2SFabrizio Castro		#clock-cells = <0>;
12194fc0ee2SFabrizio Castro		clock-frequency = <74250000>;
12294fc0ee2SFabrizio Castro	};
12394fc0ee2SFabrizio Castro};
12494fc0ee2SFabrizio Castro
125a597dcb1SFabrizio Castro&audio_clk_a {
126a597dcb1SFabrizio Castro	clock-frequency = <22579200>;
127a597dcb1SFabrizio Castro};
128a597dcb1SFabrizio Castro
12994fc0ee2SFabrizio Castro&du {
13094fc0ee2SFabrizio Castro	pinctrl-0 = <&du_pins>;
13194fc0ee2SFabrizio Castro	pinctrl-names = "default";
13294fc0ee2SFabrizio Castro	status = "okay";
13394fc0ee2SFabrizio Castro
13494fc0ee2SFabrizio Castro	clocks = <&cpg CPG_MOD 724>,
13594fc0ee2SFabrizio Castro		 <&cpg CPG_MOD 723>,
13694fc0ee2SFabrizio Castro		 <&x13_clk>;
13794fc0ee2SFabrizio Castro	clock-names = "du.0", "du.1", "dclkin.0";
13894fc0ee2SFabrizio Castro
13994fc0ee2SFabrizio Castro	ports {
14094fc0ee2SFabrizio Castro		port@0 {
14194fc0ee2SFabrizio Castro			endpoint {
14294fc0ee2SFabrizio Castro				remote-endpoint = <&tda19988_in>;
14394fc0ee2SFabrizio Castro			};
14494fc0ee2SFabrizio Castro		};
14594fc0ee2SFabrizio Castro	};
146d828266bSBiju Das};
147d828266bSBiju Das
148ad68fa5fSFabrizio Castro&ehci0 {
149ad68fa5fSFabrizio Castro	dr_mode = "host";
150ad68fa5fSFabrizio Castro	status = "okay";
151ad68fa5fSFabrizio Castro};
152ad68fa5fSFabrizio Castro
153d828266bSBiju Das&extal_clk {
154d828266bSBiju Das	clock-frequency = <48000000>;
155d828266bSBiju Das};
156d828266bSBiju Das
15794fc0ee2SFabrizio Castro&i2c0 {
15894fc0ee2SFabrizio Castro	status = "okay";
15994fc0ee2SFabrizio Castro	clock-frequency = <100000>;
16094fc0ee2SFabrizio Castro
16194fc0ee2SFabrizio Castro	tda19988: tda19988@70 {
16294fc0ee2SFabrizio Castro		compatible = "nxp,tda998x";
16394fc0ee2SFabrizio Castro		reg = <0x70>;
16494fc0ee2SFabrizio Castro		interrupt-parent = <&gpio1>;
16594fc0ee2SFabrizio Castro		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
16694fc0ee2SFabrizio Castro
16794fc0ee2SFabrizio Castro		video-ports = <0x234501>;
16894fc0ee2SFabrizio Castro
169a597dcb1SFabrizio Castro		#sound-dai-cells = <0>;
170a597dcb1SFabrizio Castro		audio-ports = <TDA998x_I2S 0x03>;
171a597dcb1SFabrizio Castro		clocks = <&rcar_sound 1>;
172a597dcb1SFabrizio Castro
17394fc0ee2SFabrizio Castro		ports {
17494fc0ee2SFabrizio Castro			#address-cells = <1>;
17594fc0ee2SFabrizio Castro			#size-cells = <0>;
17694fc0ee2SFabrizio Castro
17794fc0ee2SFabrizio Castro			port@0 {
17894fc0ee2SFabrizio Castro				reg = <0>;
17994fc0ee2SFabrizio Castro				tda19988_in: endpoint {
18094fc0ee2SFabrizio Castro					remote-endpoint = <&du_out_rgb>;
18194fc0ee2SFabrizio Castro				};
18294fc0ee2SFabrizio Castro			};
18394fc0ee2SFabrizio Castro
18494fc0ee2SFabrizio Castro			port@1 {
18594fc0ee2SFabrizio Castro				reg = <1>;
18694fc0ee2SFabrizio Castro				tda19988_out: endpoint {
18794fc0ee2SFabrizio Castro					remote-endpoint = <&hdmi_con_out>;
18894fc0ee2SFabrizio Castro				};
18994fc0ee2SFabrizio Castro			};
19094fc0ee2SFabrizio Castro		};
19194fc0ee2SFabrizio Castro	};
19294fc0ee2SFabrizio Castro};
19394fc0ee2SFabrizio Castro
19407e72397SBiju Das&i2c1 {
19507e72397SBiju Das	pinctrl-0 = <&i2c1_pins>;
19607e72397SBiju Das	pinctrl-names = "default";
19707e72397SBiju Das
19807e72397SBiju Das	status = "okay";
19907e72397SBiju Das	clock-frequency = <400000>;
20007e72397SBiju Das
20107e72397SBiju Das	rtc@32 {
20207e72397SBiju Das		compatible = "epson,rx8571";
20307e72397SBiju Das		reg = <0x32>;
20407e72397SBiju Das	};
20507e72397SBiju Das};
20607e72397SBiju Das
20794fc0ee2SFabrizio Castro&lvds0 {
20894fc0ee2SFabrizio Castro	status = "okay";
20994fc0ee2SFabrizio Castro
21094fc0ee2SFabrizio Castro	clocks = <&cpg CPG_MOD 727>, <&x13_clk>, <&extal_clk>;
21194fc0ee2SFabrizio Castro	clock-names = "fck", "dclkin.0", "extal";
21294fc0ee2SFabrizio Castro};
21394fc0ee2SFabrizio Castro
214ad68fa5fSFabrizio Castro&ohci0 {
215ad68fa5fSFabrizio Castro	dr_mode = "host";
216ad68fa5fSFabrizio Castro	status = "okay";
217ad68fa5fSFabrizio Castro};
218ad68fa5fSFabrizio Castro
219aaf6c75cSBiju Das&pcie_bus_clk {
220aaf6c75cSBiju Das	clock-frequency = <100000000>;
221aaf6c75cSBiju Das};
222aaf6c75cSBiju Das
223aaf6c75cSBiju Das&pciec0 {
224aaf6c75cSBiju Das	/* Map all possible DDR as inbound ranges */
225aaf6c75cSBiju Das	dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x80000000>;
226aaf6c75cSBiju Das};
227aaf6c75cSBiju Das
2284cf1f6ceSBiju Das&pfc {
22994fc0ee2SFabrizio Castro	du_pins: du {
23094fc0ee2SFabrizio Castro		groups = "du_rgb888", "du_clk_out_0", "du_sync", "du_disp",
23194fc0ee2SFabrizio Castro			 "du_clk_in_0";
23294fc0ee2SFabrizio Castro		function = "du";
23394fc0ee2SFabrizio Castro	};
23494fc0ee2SFabrizio Castro
23507e72397SBiju Das	i2c1_pins: i2c1 {
23607e72397SBiju Das		groups = "i2c1_b";
23707e72397SBiju Das		function = "i2c1";
23807e72397SBiju Das	};
23907e72397SBiju Das
2404cf1f6ceSBiju Das	scif2_pins: scif2 {
2414cf1f6ceSBiju Das		groups = "scif2_data_a";
2424cf1f6ceSBiju Das		function = "scif2";
2434cf1f6ceSBiju Das	};
244a102b93eSBiju Das
245a102b93eSBiju Das	sdhi0_pins: sd0 {
246a102b93eSBiju Das		groups = "sdhi0_data4", "sdhi0_ctrl";
247a102b93eSBiju Das		function = "sdhi0";
248a102b93eSBiju Das		power-source = <3300>;
249a102b93eSBiju Das	};
250a102b93eSBiju Das
251a102b93eSBiju Das	sdhi0_pins_uhs: sd0_uhs {
252a102b93eSBiju Das		groups = "sdhi0_data4", "sdhi0_ctrl";
253a102b93eSBiju Das		function = "sdhi0";
254a102b93eSBiju Das		power-source = <1800>;
255a102b93eSBiju Das	};
256a597dcb1SFabrizio Castro
257*b263b006SBiju Das	sdhi3_pins: sd3 {
258*b263b006SBiju Das		groups = "sdhi3_data4", "sdhi3_ctrl";
259*b263b006SBiju Das		function = "sdhi3";
260*b263b006SBiju Das		power-source = <1800>;
261*b263b006SBiju Das	};
262*b263b006SBiju Das
263a597dcb1SFabrizio Castro	sound_pins: sound {
264a597dcb1SFabrizio Castro		groups = "ssi01239_ctrl", "ssi0_data";
265a597dcb1SFabrizio Castro		function = "ssi";
266a597dcb1SFabrizio Castro	};
267a597dcb1SFabrizio Castro
268a597dcb1SFabrizio Castro	sound_clk_pins: sound_clk {
269a597dcb1SFabrizio Castro		groups = "audio_clkout1_a";
270a597dcb1SFabrizio Castro		function = "audio_clk";
271a597dcb1SFabrizio Castro	};
272a597dcb1SFabrizio Castro};
273a597dcb1SFabrizio Castro
274a597dcb1SFabrizio Castro&rcar_sound {
275a597dcb1SFabrizio Castro	pinctrl-0 = <&sound_pins &sound_clk_pins>;
276a597dcb1SFabrizio Castro	pinctrl-names = "default";
277a597dcb1SFabrizio Castro
278a597dcb1SFabrizio Castro	/* Single DAI */
279a597dcb1SFabrizio Castro	#sound-dai-cells = <0>;
280a597dcb1SFabrizio Castro
281a597dcb1SFabrizio Castro	/* audio_clkout0/1/2/3 */
282a597dcb1SFabrizio Castro	#clock-cells = <1>;
283a597dcb1SFabrizio Castro	clock-frequency = <11289600>;
284a597dcb1SFabrizio Castro
285a597dcb1SFabrizio Castro	status = "okay";
286a597dcb1SFabrizio Castro
287a597dcb1SFabrizio Castro	rcar_sound,dai {
288a597dcb1SFabrizio Castro		dai0 {
289a597dcb1SFabrizio Castro			playback = <&ssi0 &src0 &dvc0>;
290a597dcb1SFabrizio Castro		};
291a597dcb1SFabrizio Castro	};
2924cf1f6ceSBiju Das};
2934cf1f6ceSBiju Das
29479223ca1SFabrizio Castro&rwdt {
29579223ca1SFabrizio Castro	timeout-sec = <60>;
29679223ca1SFabrizio Castro	status = "okay";
29779223ca1SFabrizio Castro};
29879223ca1SFabrizio Castro
299d828266bSBiju Das&scif2 {
3004cf1f6ceSBiju Das	pinctrl-0 = <&scif2_pins>;
3014cf1f6ceSBiju Das	pinctrl-names = "default";
3024cf1f6ceSBiju Das
303d828266bSBiju Das	status = "okay";
304d828266bSBiju Das};
305a102b93eSBiju Das
306a102b93eSBiju Das&sdhi0 {
307a102b93eSBiju Das	pinctrl-0 = <&sdhi0_pins>;
308a102b93eSBiju Das	pinctrl-1 = <&sdhi0_pins_uhs>;
309a102b93eSBiju Das	pinctrl-names = "default", "state_uhs";
310a102b93eSBiju Das
311a102b93eSBiju Das	vmmc-supply = <&vcc_sdhi0>;
312a102b93eSBiju Das	vqmmc-supply = <&vccq_sdhi0>;
313a102b93eSBiju Das	cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
314a102b93eSBiju Das	bus-width = <4>;
315a102b93eSBiju Das	sd-uhs-sdr50;
316a102b93eSBiju Das	sd-uhs-sdr104;
317a102b93eSBiju Das	status = "okay";
318a102b93eSBiju Das};
319ad68fa5fSFabrizio Castro
320*b263b006SBiju Das&sdhi3 {
321*b263b006SBiju Das	status = "okay";
322*b263b006SBiju Das	pinctrl-0 = <&sdhi3_pins>;
323*b263b006SBiju Das	pinctrl-names = "default";
324*b263b006SBiju Das
325*b263b006SBiju Das	vmmc-supply = <&wlan_en_reg>;
326*b263b006SBiju Das	bus-width = <4>;
327*b263b006SBiju Das	non-removable;
328*b263b006SBiju Das	cap-power-off-card;
329*b263b006SBiju Das	keep-power-in-suspend;
330*b263b006SBiju Das
331*b263b006SBiju Das	#address-cells = <1>;
332*b263b006SBiju Das	#size-cells = <0>;
333*b263b006SBiju Das	wlcore: wlcore@2 {
334*b263b006SBiju Das		compatible = "ti,wl1837";
335*b263b006SBiju Das		reg = <2>;
336*b263b006SBiju Das		interrupt-parent = <&gpio1>;
337*b263b006SBiju Das		interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
338*b263b006SBiju Das	};
339*b263b006SBiju Das};
340*b263b006SBiju Das
341ad68fa5fSFabrizio Castro&usb2_phy0 {
342ad68fa5fSFabrizio Castro	renesas,no-otg-pins;
343ad68fa5fSFabrizio Castro	status = "okay";
344ad68fa5fSFabrizio Castro};
345