1438419ebSBiju Das// SPDX-License-Identifier: GPL-2.0
2438419ebSBiju Das/*
3deadcd50SMarian-Cristian Rotariu * Device Tree Source for the HiHope RZ/G2H Rev.4.0 and
4deadcd50SMarian-Cristian Rotariu * HiHope RZ/G2[MN] Rev.[2.0/3.0/4.0] main board common parts
5438419ebSBiju Das *
6438419ebSBiju Das * Copyright (C) 2019 Renesas Electronics Corp.
7438419ebSBiju Das */
8438419ebSBiju Das
97433f1fbSBiju Das#include <dt-bindings/gpio/gpio.h>
107433f1fbSBiju Das
11438419ebSBiju Das/ {
12438419ebSBiju Das	aliases {
13*13079557SWolfram Sang		i2c0 = &i2c0;
14*13079557SWolfram Sang		i2c1 = &i2c1;
15*13079557SWolfram Sang		i2c2 = &i2c2;
16*13079557SWolfram Sang		i2c3 = &i2c3;
17*13079557SWolfram Sang		i2c4 = &i2c4;
18*13079557SWolfram Sang		i2c5 = &i2c5;
19*13079557SWolfram Sang		i2c6 = &i2c6;
20*13079557SWolfram Sang		i2c7 = &iic_pmic;
21438419ebSBiju Das		serial0 = &scif2;
22d112c209SBiju Das		serial1 = &hscif0;
23d765a4f3SYoshihiro Shimoda		mmc0 = &sdhi3;
24d765a4f3SYoshihiro Shimoda		mmc1 = &sdhi0;
25d765a4f3SYoshihiro Shimoda		mmc2 = &sdhi2;
26438419ebSBiju Das	};
27438419ebSBiju Das
28438419ebSBiju Das	chosen {
29438419ebSBiju Das		bootargs = "ignore_loglevel";
30438419ebSBiju Das		stdout-path = "serial0:115200n8";
31438419ebSBiju Das	};
32015a7507SFabrizio Castro
3389d6adc6SFabrizio Castro	hdmi0-out {
3489d6adc6SFabrizio Castro		compatible = "hdmi-connector";
3589d6adc6SFabrizio Castro		type = "a";
3689d6adc6SFabrizio Castro
3789d6adc6SFabrizio Castro		port {
3889d6adc6SFabrizio Castro			hdmi0_con: endpoint {
3989d6adc6SFabrizio Castro				remote-endpoint = <&rcar_dw_hdmi0_out>;
4089d6adc6SFabrizio Castro			};
4189d6adc6SFabrizio Castro		};
4289d6adc6SFabrizio Castro	};
4389d6adc6SFabrizio Castro
441485b635SFabrizio Castro	leds {
451485b635SFabrizio Castro		compatible = "gpio-leds";
461485b635SFabrizio Castro
471485b635SFabrizio Castro		led1 {
481485b635SFabrizio Castro			gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>;
491485b635SFabrizio Castro		};
501485b635SFabrizio Castro
511485b635SFabrizio Castro		led2 {
521485b635SFabrizio Castro			gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>;
531485b635SFabrizio Castro		};
541485b635SFabrizio Castro
551485b635SFabrizio Castro		led3 {
561485b635SFabrizio Castro			gpios = <&gpio0  0 GPIO_ACTIVE_HIGH>;
571485b635SFabrizio Castro		};
58176f936aSBiju Das
5999167613SLad Prabhakar		led4 {
6099167613SLad Prabhakar			gpios = <&gpio6 11 GPIO_ACTIVE_HIGH>;
61176f936aSBiju Das		};
621485b635SFabrizio Castro	};
631485b635SFabrizio Castro
645cf12ac9SGeert Uytterhoeven	reg_1p8v: regulator-1p8v {
65015a7507SFabrizio Castro		compatible = "regulator-fixed";
66015a7507SFabrizio Castro		regulator-name = "fixed-1.8V";
67015a7507SFabrizio Castro		regulator-min-microvolt = <1800000>;
68015a7507SFabrizio Castro		regulator-max-microvolt = <1800000>;
69015a7507SFabrizio Castro		regulator-boot-on;
70015a7507SFabrizio Castro		regulator-always-on;
71015a7507SFabrizio Castro	};
72015a7507SFabrizio Castro
735cf12ac9SGeert Uytterhoeven	reg_3p3v: regulator-3p3v {
74015a7507SFabrizio Castro		compatible = "regulator-fixed";
75015a7507SFabrizio Castro		regulator-name = "fixed-3.3V";
76015a7507SFabrizio Castro		regulator-min-microvolt = <3300000>;
77015a7507SFabrizio Castro		regulator-max-microvolt = <3300000>;
78015a7507SFabrizio Castro		regulator-boot-on;
79015a7507SFabrizio Castro		regulator-always-on;
80015a7507SFabrizio Castro	};
81015a7507SFabrizio Castro
82e77ad88dSFabrizio Castro	sound_card: sound {
83e77ad88dSFabrizio Castro		compatible = "audio-graph-card";
84e77ad88dSFabrizio Castro
85e77ad88dSFabrizio Castro		label = "rcar-sound";
86e77ad88dSFabrizio Castro
87a3813258SBiju Das		dais = <&rsnd_port>;
88e77ad88dSFabrizio Castro	};
89e77ad88dSFabrizio Castro
90734d277fSFabrizio Castro	vbus0_usb2: regulator-vbus0-usb2 {
91734d277fSFabrizio Castro		compatible = "regulator-fixed";
92734d277fSFabrizio Castro
93734d277fSFabrizio Castro		regulator-name = "USB20_VBUS0";
94734d277fSFabrizio Castro		regulator-min-microvolt = <5000000>;
95734d277fSFabrizio Castro		regulator-max-microvolt = <5000000>;
96734d277fSFabrizio Castro
97734d277fSFabrizio Castro		gpio = <&gpio6 16 GPIO_ACTIVE_HIGH>;
98734d277fSFabrizio Castro		enable-active-high;
99734d277fSFabrizio Castro	};
100734d277fSFabrizio Castro
101015a7507SFabrizio Castro	vccq_sdhi0: regulator-vccq-sdhi0 {
102015a7507SFabrizio Castro		compatible = "regulator-gpio";
103015a7507SFabrizio Castro
104015a7507SFabrizio Castro		regulator-name = "SDHI0 VccQ";
105015a7507SFabrizio Castro		regulator-min-microvolt = <1800000>;
106015a7507SFabrizio Castro		regulator-max-microvolt = <3300000>;
107015a7507SFabrizio Castro
108015a7507SFabrizio Castro		gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>;
109015a7507SFabrizio Castro		gpios-states = <1>;
11036f06212SGeert Uytterhoeven		states = <3300000 1>, <1800000 0>;
111015a7507SFabrizio Castro	};
11289d6adc6SFabrizio Castro
11389d6adc6SFabrizio Castro	x302_clk: x302-clock {
11489d6adc6SFabrizio Castro		compatible = "fixed-clock";
11589d6adc6SFabrizio Castro		#clock-cells = <0>;
11689d6adc6SFabrizio Castro		clock-frequency = <33000000>;
11789d6adc6SFabrizio Castro	};
11889d6adc6SFabrizio Castro
11989d6adc6SFabrizio Castro	x304_clk: x304-clock {
12089d6adc6SFabrizio Castro		compatible = "fixed-clock";
12189d6adc6SFabrizio Castro		#clock-cells = <0>;
12289d6adc6SFabrizio Castro		clock-frequency = <25000000>;
12389d6adc6SFabrizio Castro	};
12489d6adc6SFabrizio Castro};
12589d6adc6SFabrizio Castro
126e77ad88dSFabrizio Castro&audio_clk_a {
127e77ad88dSFabrizio Castro	clock-frequency = <22579200>;
128e77ad88dSFabrizio Castro};
129e77ad88dSFabrizio Castro
13089d6adc6SFabrizio Castro&du {
13189d6adc6SFabrizio Castro	status = "okay";
132438419ebSBiju Das};
133438419ebSBiju Das
134734d277fSFabrizio Castro&ehci0 {
135734d277fSFabrizio Castro	status = "okay";
136734d277fSFabrizio Castro};
137734d277fSFabrizio Castro
138734d277fSFabrizio Castro&ehci1 {
139734d277fSFabrizio Castro	status = "okay";
140734d277fSFabrizio Castro};
141734d277fSFabrizio Castro
142438419ebSBiju Das&extal_clk {
143438419ebSBiju Das	clock-frequency = <16666666>;
144438419ebSBiju Das};
145438419ebSBiju Das
146438419ebSBiju Das&extalr_clk {
147438419ebSBiju Das	clock-frequency = <32768>;
148438419ebSBiju Das};
149438419ebSBiju Das
150734d277fSFabrizio Castro&gpio6 {
15148d8ee5bSGeert Uytterhoeven	usb1-reset-hog {
152734d277fSFabrizio Castro		gpio-hog;
153734d277fSFabrizio Castro		gpios = <10 GPIO_ACTIVE_LOW>;
154734d277fSFabrizio Castro		output-low;
155734d277fSFabrizio Castro		line-name = "usb1-reset";
156734d277fSFabrizio Castro	};
157734d277fSFabrizio Castro};
158734d277fSFabrizio Castro
15989d6adc6SFabrizio Castro&hdmi0 {
16089d6adc6SFabrizio Castro	status = "okay";
16189d6adc6SFabrizio Castro
16289d6adc6SFabrizio Castro	ports {
16389d6adc6SFabrizio Castro		port@1 {
16489d6adc6SFabrizio Castro			reg = <1>;
16589d6adc6SFabrizio Castro			rcar_dw_hdmi0_out: endpoint {
16689d6adc6SFabrizio Castro				remote-endpoint = <&hdmi0_con>;
16789d6adc6SFabrizio Castro			};
16889d6adc6SFabrizio Castro		};
169e77ad88dSFabrizio Castro		port@2 {
170e77ad88dSFabrizio Castro			reg = <2>;
171e77ad88dSFabrizio Castro			dw_hdmi0_snd_in: endpoint {
172a3813258SBiju Das				remote-endpoint = <&rsnd_endpoint>;
173e77ad88dSFabrizio Castro			};
174e77ad88dSFabrizio Castro		};
17589d6adc6SFabrizio Castro	};
17689d6adc6SFabrizio Castro};
17789d6adc6SFabrizio Castro
178d112c209SBiju Das&hscif0 {
179d112c209SBiju Das	pinctrl-0 = <&hscif0_pins>;
180d112c209SBiju Das	pinctrl-names = "default";
181d112c209SBiju Das
182d112c209SBiju Das	uart-has-rtscts;
183d112c209SBiju Das	status = "okay";
184734d277fSFabrizio Castro};
185734d277fSFabrizio Castro
186734d277fSFabrizio Castro&hsusb {
187734d277fSFabrizio Castro	dr_mode = "otg";
188734d277fSFabrizio Castro	status = "okay";
189734d277fSFabrizio Castro};
190734d277fSFabrizio Castro
19189d6adc6SFabrizio Castro&i2c4 {
19289d6adc6SFabrizio Castro	clock-frequency = <400000>;
19389d6adc6SFabrizio Castro	status = "okay";
19489d6adc6SFabrizio Castro
19589d6adc6SFabrizio Castro	versaclock5: clock-generator@6a {
19689d6adc6SFabrizio Castro		compatible = "idt,5p49v5923";
19789d6adc6SFabrizio Castro		reg = <0x6a>;
19889d6adc6SFabrizio Castro		#clock-cells = <1>;
19989d6adc6SFabrizio Castro		clocks = <&x304_clk>;
20089d6adc6SFabrizio Castro		clock-names = "xin";
20189d6adc6SFabrizio Castro	};
20289d6adc6SFabrizio Castro};
20389d6adc6SFabrizio Castro
204734d277fSFabrizio Castro&ohci0 {
205734d277fSFabrizio Castro	status = "okay";
206734d277fSFabrizio Castro};
207734d277fSFabrizio Castro
208734d277fSFabrizio Castro&ohci1 {
209734d277fSFabrizio Castro	status = "okay";
210734d277fSFabrizio Castro};
211734d277fSFabrizio Castro
21261e0505bSBiju Das&pcie_bus_clk {
21361e0505bSBiju Das	clock-frequency = <100000000>;
21461e0505bSBiju Das};
21561e0505bSBiju Das
216871c13a4SBiju Das&pfc {
217871c13a4SBiju Das	pinctrl-0 = <&scif_clk_pins>;
218871c13a4SBiju Das	pinctrl-names = "default";
219871c13a4SBiju Das
220d112c209SBiju Das	hscif0_pins: hscif0 {
221d112c209SBiju Das		groups = "hscif0_data", "hscif0_ctrl";
222d112c209SBiju Das		function = "hscif0";
223d112c209SBiju Das	};
224d112c209SBiju Das
225871c13a4SBiju Das	scif2_pins: scif2 {
226871c13a4SBiju Das		groups = "scif2_data_a";
227871c13a4SBiju Das		function = "scif2";
228871c13a4SBiju Das	};
229871c13a4SBiju Das
230871c13a4SBiju Das	scif_clk_pins: scif_clk {
231871c13a4SBiju Das		groups = "scif_clk_a";
232871c13a4SBiju Das		function = "scif_clk";
233871c13a4SBiju Das	};
234015a7507SFabrizio Castro
235015a7507SFabrizio Castro	sdhi0_pins: sd0 {
236015a7507SFabrizio Castro		groups = "sdhi0_data4", "sdhi0_ctrl";
237015a7507SFabrizio Castro		function = "sdhi0";
238015a7507SFabrizio Castro		power-source = <3300>;
239015a7507SFabrizio Castro	};
240015a7507SFabrizio Castro
241015a7507SFabrizio Castro	sdhi0_pins_uhs: sd0_uhs {
242015a7507SFabrizio Castro		groups = "sdhi0_data4", "sdhi0_ctrl";
243015a7507SFabrizio Castro		function = "sdhi0";
244015a7507SFabrizio Castro		power-source = <1800>;
245015a7507SFabrizio Castro	};
246015a7507SFabrizio Castro
247176f936aSBiju Das	sdhi2_pins: sd2 {
248176f936aSBiju Das		groups = "sdhi2_data4", "sdhi2_ctrl";
249176f936aSBiju Das		function = "sdhi2";
250176f936aSBiju Das		power-source = <1800>;
251176f936aSBiju Das	};
252176f936aSBiju Das
253015a7507SFabrizio Castro	sdhi3_pins: sd3 {
254015a7507SFabrizio Castro		groups = "sdhi3_data8", "sdhi3_ctrl", "sdhi3_ds";
255015a7507SFabrizio Castro		function = "sdhi3";
256015a7507SFabrizio Castro		power-source = <1800>;
257015a7507SFabrizio Castro	};
258734d277fSFabrizio Castro
259734d277fSFabrizio Castro	usb0_pins: usb0 {
260734d277fSFabrizio Castro		groups = "usb0";
261734d277fSFabrizio Castro		function = "usb0";
262734d277fSFabrizio Castro	};
263734d277fSFabrizio Castro
264734d277fSFabrizio Castro	usb1_pins: usb1 {
265734d277fSFabrizio Castro		mux {
266734d277fSFabrizio Castro			groups = "usb1";
267734d277fSFabrizio Castro			function = "usb1";
268734d277fSFabrizio Castro		};
269734d277fSFabrizio Castro
270734d277fSFabrizio Castro		ovc {
271734d277fSFabrizio Castro			pins = "GP_6_27";
272734d277fSFabrizio Castro			bias-pull-up;
273734d277fSFabrizio Castro		};
274734d277fSFabrizio Castro	};
2753ba27637SBiju Das
2763ba27637SBiju Das	usb30_pins: usb30 {
2773ba27637SBiju Das		groups = "usb30";
2783ba27637SBiju Das		function = "usb30";
2793ba27637SBiju Das	};
280871c13a4SBiju Das};
281871c13a4SBiju Das
282736a291dSBiju Das&rwdt {
283736a291dSBiju Das	timeout-sec = <60>;
284736a291dSBiju Das	status = "okay";
285736a291dSBiju Das};
286736a291dSBiju Das
287438419ebSBiju Das&scif2 {
288871c13a4SBiju Das	pinctrl-0 = <&scif2_pins>;
289871c13a4SBiju Das	pinctrl-names = "default";
290871c13a4SBiju Das
291438419ebSBiju Das	status = "okay";
292438419ebSBiju Das};
293438419ebSBiju Das
294438419ebSBiju Das&scif_clk {
295438419ebSBiju Das	clock-frequency = <14745600>;
296438419ebSBiju Das};
297015a7507SFabrizio Castro
298015a7507SFabrizio Castro&sdhi0 {
299015a7507SFabrizio Castro	pinctrl-0 = <&sdhi0_pins>;
300015a7507SFabrizio Castro	pinctrl-1 = <&sdhi0_pins_uhs>;
301015a7507SFabrizio Castro	pinctrl-names = "default", "state_uhs";
302015a7507SFabrizio Castro
303015a7507SFabrizio Castro	vmmc-supply = <&reg_3p3v>;
304015a7507SFabrizio Castro	vqmmc-supply = <&vccq_sdhi0>;
305015a7507SFabrizio Castro	cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
306015a7507SFabrizio Castro	bus-width = <4>;
307015a7507SFabrizio Castro	sd-uhs-sdr50;
308015a7507SFabrizio Castro	sd-uhs-sdr104;
309015a7507SFabrizio Castro	status = "okay";
310015a7507SFabrizio Castro};
311015a7507SFabrizio Castro
312176f936aSBiju Das&sdhi2 {
313176f936aSBiju Das	status = "okay";
314176f936aSBiju Das	pinctrl-0 = <&sdhi2_pins>;
315176f936aSBiju Das	pinctrl-names = "default";
316176f936aSBiju Das
317176f936aSBiju Das	vmmc-supply = <&wlan_en_reg>;
318176f936aSBiju Das	bus-width = <4>;
319176f936aSBiju Das	non-removable;
320176f936aSBiju Das	cap-power-off-card;
321176f936aSBiju Das	keep-power-in-suspend;
322176f936aSBiju Das
323176f936aSBiju Das	#address-cells = <1>;
324176f936aSBiju Das	#size-cells = <0>;
325176f936aSBiju Das	wlcore: wlcore@2 {
326176f936aSBiju Das		compatible = "ti,wl1837";
327176f936aSBiju Das		reg = <2>;
328176f936aSBiju Das		interrupt-parent = <&gpio2>;
329176f936aSBiju Das		interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
330176f936aSBiju Das	};
331176f936aSBiju Das};
332176f936aSBiju Das
333015a7507SFabrizio Castro&sdhi3 {
334015a7507SFabrizio Castro	pinctrl-0 = <&sdhi3_pins>;
335015a7507SFabrizio Castro	pinctrl-1 = <&sdhi3_pins>;
336015a7507SFabrizio Castro	pinctrl-names = "default", "state_uhs";
337015a7507SFabrizio Castro
338015a7507SFabrizio Castro	vmmc-supply = <&reg_3p3v>;
339015a7507SFabrizio Castro	vqmmc-supply = <&reg_1p8v>;
340015a7507SFabrizio Castro	bus-width = <8>;
341015a7507SFabrizio Castro	mmc-hs200-1_8v;
342d68c9edfSWolfram Sang	no-sd;
343d68c9edfSWolfram Sang	no-sdio;
344015a7507SFabrizio Castro	non-removable;
345015a7507SFabrizio Castro	fixed-emmc-driver-type = <1>;
346ae688e17SFabrizio Castro	status = "okay";
347734d277fSFabrizio Castro};
348734d277fSFabrizio Castro
349734d277fSFabrizio Castro&usb_extal_clk {
350734d277fSFabrizio Castro	clock-frequency = <50000000>;
351734d277fSFabrizio Castro};
352734d277fSFabrizio Castro
353734d277fSFabrizio Castro&usb2_phy0 {
354734d277fSFabrizio Castro	pinctrl-0 = <&usb0_pins>;
355734d277fSFabrizio Castro	pinctrl-names = "default";
356734d277fSFabrizio Castro
357734d277fSFabrizio Castro	vbus-supply = <&vbus0_usb2>;
358734d277fSFabrizio Castro	status = "okay";
359734d277fSFabrizio Castro};
360734d277fSFabrizio Castro
361734d277fSFabrizio Castro&usb2_phy1 {
362734d277fSFabrizio Castro	pinctrl-0 = <&usb1_pins>;
363734d277fSFabrizio Castro	pinctrl-names = "default";
364734d277fSFabrizio Castro
365015a7507SFabrizio Castro	status = "okay";
366015a7507SFabrizio Castro};
3673ba27637SBiju Das
3683ba27637SBiju Das&usb3_peri0 {
3693ba27637SBiju Das	phys = <&usb3_phy0>;
3703ba27637SBiju Das	phy-names = "usb";
3713ba27637SBiju Das
3723ba27637SBiju Das	companion = <&xhci0>;
3733ba27637SBiju Das
3743ba27637SBiju Das	status = "okay";
3753ba27637SBiju Das};
3763ba27637SBiju Das
3773ba27637SBiju Das&usb3_phy0 {
3783ba27637SBiju Das	status = "okay";
3793ba27637SBiju Das};
3803ba27637SBiju Das
3813ba27637SBiju Das&usb3s0_clk {
3823ba27637SBiju Das	clock-frequency = <100000000>;
3833ba27637SBiju Das};
3843ba27637SBiju Das
3853ba27637SBiju Das&xhci0 {
3863ba27637SBiju Das	pinctrl-0 = <&usb30_pins>;
3873ba27637SBiju Das	pinctrl-names = "default";
3883ba27637SBiju Das
3893ba27637SBiju Das	status = "okay";
3903ba27637SBiju Das};
391