xref: /freebsd/sys/contrib/device-tree/src/arm64/renesas/r9a09g011-v2mevk2.dts (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
1d5b0e70fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2d5b0e70fSEmmanuel Vadot/*
3d5b0e70fSEmmanuel Vadot * Device Tree Source for the RZ/V2M (r9a09g011) Evaluation Kit Board
4d5b0e70fSEmmanuel Vadot *
5d5b0e70fSEmmanuel Vadot * Copyright (C) 2022 Renesas Electronics Corp.
6d5b0e70fSEmmanuel Vadot */
7d5b0e70fSEmmanuel Vadot
8d5b0e70fSEmmanuel Vadot/dts-v1/;
9d5b0e70fSEmmanuel Vadot#include "r9a09g011.dtsi"
10*fac71e4eSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
117ef62cebSEmmanuel Vadot#include <dt-bindings/pinctrl/rzv2m-pinctrl.h>
12d5b0e70fSEmmanuel Vadot
13d5b0e70fSEmmanuel Vadot/ {
14d5b0e70fSEmmanuel Vadot	model = "RZ/V2M Evaluation Kit 2.0";
15d5b0e70fSEmmanuel Vadot	compatible = "renesas,rzv2mevk2", "renesas,r9a09g011";
16d5b0e70fSEmmanuel Vadot
17d5b0e70fSEmmanuel Vadot	aliases {
18d5b0e70fSEmmanuel Vadot		serial0 = &uart0;
19b97ee269SEmmanuel Vadot		ethernet0 = &avb;
20d5b0e70fSEmmanuel Vadot	};
21d5b0e70fSEmmanuel Vadot
22d5b0e70fSEmmanuel Vadot	chosen {
23d5b0e70fSEmmanuel Vadot		stdout-path = "serial0:115200n8";
24d5b0e70fSEmmanuel Vadot	};
25d5b0e70fSEmmanuel Vadot
26*fac71e4eSEmmanuel Vadot	connector {
27*fac71e4eSEmmanuel Vadot		compatible = "usb-c-connector";
28*fac71e4eSEmmanuel Vadot		label = "USB-C";
29*fac71e4eSEmmanuel Vadot		data-role = "dual";
30*fac71e4eSEmmanuel Vadot
31*fac71e4eSEmmanuel Vadot		ports {
32*fac71e4eSEmmanuel Vadot			#address-cells = <1>;
33*fac71e4eSEmmanuel Vadot			#size-cells = <0>;
34*fac71e4eSEmmanuel Vadot
35*fac71e4eSEmmanuel Vadot			port@0 {
36*fac71e4eSEmmanuel Vadot				reg = <0>;
37*fac71e4eSEmmanuel Vadot				hs_ep: endpoint {
38*fac71e4eSEmmanuel Vadot					remote-endpoint = <&usb3_hs_ep>;
39*fac71e4eSEmmanuel Vadot				};
40*fac71e4eSEmmanuel Vadot			};
41*fac71e4eSEmmanuel Vadot
42*fac71e4eSEmmanuel Vadot			port@1 {
43*fac71e4eSEmmanuel Vadot				reg = <1>;
44*fac71e4eSEmmanuel Vadot				ss_ep: endpoint {
45*fac71e4eSEmmanuel Vadot					remote-endpoint = <&hd3ss3220_in_ep>;
46*fac71e4eSEmmanuel Vadot				};
47*fac71e4eSEmmanuel Vadot			};
48*fac71e4eSEmmanuel Vadot		};
49*fac71e4eSEmmanuel Vadot	};
50*fac71e4eSEmmanuel Vadot
51d5b0e70fSEmmanuel Vadot	memory@58000000 {
52d5b0e70fSEmmanuel Vadot		device_type = "memory";
53d5b0e70fSEmmanuel Vadot		/*
54d5b0e70fSEmmanuel Vadot		 * first 1.25GiB is reserved for ISP Firmware,
55d5b0e70fSEmmanuel Vadot		 * next 128MiB is reserved for secure area.
56d5b0e70fSEmmanuel Vadot		 */
57d5b0e70fSEmmanuel Vadot		reg = <0x0 0x58000000 0x0 0x28000000>;
58d5b0e70fSEmmanuel Vadot	};
59d5b0e70fSEmmanuel Vadot
60d5b0e70fSEmmanuel Vadot	memory@180000000 {
61d5b0e70fSEmmanuel Vadot		device_type = "memory";
62d5b0e70fSEmmanuel Vadot		reg = <0x1 0x80000000 0x0 0x80000000>;
63d5b0e70fSEmmanuel Vadot	};
64*fac71e4eSEmmanuel Vadot
65*fac71e4eSEmmanuel Vadot	reg_1v8: regulator-1v8 {
66*fac71e4eSEmmanuel Vadot		compatible = "regulator-fixed";
67*fac71e4eSEmmanuel Vadot		regulator-name = "fixed-1.8V";
68*fac71e4eSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
69*fac71e4eSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
70*fac71e4eSEmmanuel Vadot		regulator-boot-on;
71*fac71e4eSEmmanuel Vadot		regulator-always-on;
72*fac71e4eSEmmanuel Vadot	};
73*fac71e4eSEmmanuel Vadot
74*fac71e4eSEmmanuel Vadot	reg_3v3: regulator-3v3 {
75*fac71e4eSEmmanuel Vadot		compatible = "regulator-fixed";
76*fac71e4eSEmmanuel Vadot		regulator-name = "fixed-3.3V";
77*fac71e4eSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
78*fac71e4eSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
79*fac71e4eSEmmanuel Vadot		regulator-boot-on;
80*fac71e4eSEmmanuel Vadot		regulator-always-on;
81*fac71e4eSEmmanuel Vadot	};
82*fac71e4eSEmmanuel Vadot
83*fac71e4eSEmmanuel Vadot	vccq_sdhi0: regulator-vccq-sdhi0 {
84*fac71e4eSEmmanuel Vadot		compatible = "regulator-gpio";
85*fac71e4eSEmmanuel Vadot
86*fac71e4eSEmmanuel Vadot		regulator-name = "SDHI0 VccQ";
87*fac71e4eSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
88*fac71e4eSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
89*fac71e4eSEmmanuel Vadot
90*fac71e4eSEmmanuel Vadot		gpios = <&pwc 0 GPIO_ACTIVE_HIGH>;
91*fac71e4eSEmmanuel Vadot		gpios-states = <1>;
92*fac71e4eSEmmanuel Vadot		states = <3300000 0>, <1800000 1>;
93*fac71e4eSEmmanuel Vadot	};
94d5b0e70fSEmmanuel Vadot};
95d5b0e70fSEmmanuel Vadot
96b97ee269SEmmanuel Vadot&avb {
97b97ee269SEmmanuel Vadot	renesas,no-ether-link;
98b97ee269SEmmanuel Vadot	phy-handle = <&phy0>;
99b97ee269SEmmanuel Vadot	phy-mode = "gmii";
100b97ee269SEmmanuel Vadot	status = "okay";
101b97ee269SEmmanuel Vadot
102b97ee269SEmmanuel Vadot	phy0: ethernet-phy@0 {
103b97ee269SEmmanuel Vadot		compatible = "ethernet-phy-id001c.c916",
104b97ee269SEmmanuel Vadot			     "ethernet-phy-ieee802.3-c22";
105b97ee269SEmmanuel Vadot		reg = <0>;
106b97ee269SEmmanuel Vadot	};
107b97ee269SEmmanuel Vadot};
108b97ee269SEmmanuel Vadot
109*fac71e4eSEmmanuel Vadot&emmc {
110*fac71e4eSEmmanuel Vadot	pinctrl-0 = <&emmc_pins>;
111*fac71e4eSEmmanuel Vadot	pinctrl-1 = <&emmc_pins>;
112*fac71e4eSEmmanuel Vadot	pinctrl-names = "default", "state_uhs";
113*fac71e4eSEmmanuel Vadot
114*fac71e4eSEmmanuel Vadot	vmmc-supply = <&reg_3v3>;
115*fac71e4eSEmmanuel Vadot	vqmmc-supply = <&reg_1v8>;
116*fac71e4eSEmmanuel Vadot	bus-width = <8>;
117*fac71e4eSEmmanuel Vadot	mmc-hs200-1_8v;
118*fac71e4eSEmmanuel Vadot	no-sd;
119*fac71e4eSEmmanuel Vadot	no-sdio;
120*fac71e4eSEmmanuel Vadot	non-removable;
121*fac71e4eSEmmanuel Vadot	fixed-emmc-driver-type = <1>;
122*fac71e4eSEmmanuel Vadot	max-frequency = <200000000>;
123*fac71e4eSEmmanuel Vadot	status = "okay";
124*fac71e4eSEmmanuel Vadot};
125*fac71e4eSEmmanuel Vadot
126d5b0e70fSEmmanuel Vadot&extal_clk {
127d5b0e70fSEmmanuel Vadot	clock-frequency = <48000000>;
128d5b0e70fSEmmanuel Vadot};
129d5b0e70fSEmmanuel Vadot
1307ef62cebSEmmanuel Vadot&i2c0 {
1317ef62cebSEmmanuel Vadot	pinctrl-0 = <&i2c0_pins>;
1327ef62cebSEmmanuel Vadot	pinctrl-names = "default";
1337ef62cebSEmmanuel Vadot	clock-frequency = <400000>;
1347ef62cebSEmmanuel Vadot	status = "okay";
135*fac71e4eSEmmanuel Vadot
136*fac71e4eSEmmanuel Vadot	hd3ss3220@47 {
137*fac71e4eSEmmanuel Vadot		compatible = "ti,hd3ss3220";
138*fac71e4eSEmmanuel Vadot		reg = <0x47>;
139*fac71e4eSEmmanuel Vadot
140*fac71e4eSEmmanuel Vadot		ports {
141*fac71e4eSEmmanuel Vadot			#address-cells = <1>;
142*fac71e4eSEmmanuel Vadot			#size-cells = <0>;
143*fac71e4eSEmmanuel Vadot
144*fac71e4eSEmmanuel Vadot			port@0 {
145*fac71e4eSEmmanuel Vadot				reg = <0>;
146*fac71e4eSEmmanuel Vadot				hd3ss3220_in_ep: endpoint {
147*fac71e4eSEmmanuel Vadot					remote-endpoint = <&ss_ep>;
148*fac71e4eSEmmanuel Vadot				};
149*fac71e4eSEmmanuel Vadot			};
150*fac71e4eSEmmanuel Vadot
151*fac71e4eSEmmanuel Vadot			port@1 {
152*fac71e4eSEmmanuel Vadot				reg = <1>;
153*fac71e4eSEmmanuel Vadot				hd3ss3220_out_ep: endpoint {
154*fac71e4eSEmmanuel Vadot					remote-endpoint = <&usb3_role_switch>;
155*fac71e4eSEmmanuel Vadot				};
156*fac71e4eSEmmanuel Vadot			};
157*fac71e4eSEmmanuel Vadot		};
158*fac71e4eSEmmanuel Vadot	};
1597ef62cebSEmmanuel Vadot};
1607ef62cebSEmmanuel Vadot
1617ef62cebSEmmanuel Vadot&i2c2 {
1627ef62cebSEmmanuel Vadot	pinctrl-0 = <&i2c2_pins>;
1637ef62cebSEmmanuel Vadot	pinctrl-names = "default";
1647ef62cebSEmmanuel Vadot	clock-frequency = <100000>;
1657ef62cebSEmmanuel Vadot	status = "okay";
1667ef62cebSEmmanuel Vadot};
1677ef62cebSEmmanuel Vadot
1687ef62cebSEmmanuel Vadot&pinctrl {
169*fac71e4eSEmmanuel Vadot	emmc_pins: emmc {
170*fac71e4eSEmmanuel Vadot		data {
171*fac71e4eSEmmanuel Vadot			pinmux = <RZV2M_PORT_PINMUX(0, 0, 2)>, /* MMDAT0 */
172*fac71e4eSEmmanuel Vadot				 <RZV2M_PORT_PINMUX(0, 1, 2)>, /* MMDAT1 */
173*fac71e4eSEmmanuel Vadot				 <RZV2M_PORT_PINMUX(0, 2, 2)>, /* MMDAT2 */
174*fac71e4eSEmmanuel Vadot				 <RZV2M_PORT_PINMUX(0, 3, 2)>, /* MMDAT3 */
175*fac71e4eSEmmanuel Vadot				 <RZV2M_PORT_PINMUX(0, 4, 2)>, /* MMDAT4 */
176*fac71e4eSEmmanuel Vadot				 <RZV2M_PORT_PINMUX(0, 5, 2)>, /* MMDAT5 */
177*fac71e4eSEmmanuel Vadot				 <RZV2M_PORT_PINMUX(0, 6, 2)>, /* MMDAT6 */
178*fac71e4eSEmmanuel Vadot				 <RZV2M_PORT_PINMUX(0, 7, 2)>; /* MMDAT7 */
179*fac71e4eSEmmanuel Vadot			power-source = <1800>;
180*fac71e4eSEmmanuel Vadot		};
181*fac71e4eSEmmanuel Vadot
182*fac71e4eSEmmanuel Vadot		ctrl {
183*fac71e4eSEmmanuel Vadot			pinmux = <RZV2M_PORT_PINMUX(0, 10, 2)>, /* MMCMD */
184*fac71e4eSEmmanuel Vadot				 <RZV2M_PORT_PINMUX(0, 11, 2)>; /* MMCLK */
185*fac71e4eSEmmanuel Vadot			power-source = <1800>;
186*fac71e4eSEmmanuel Vadot		};
187*fac71e4eSEmmanuel Vadot	};
188*fac71e4eSEmmanuel Vadot
1897ef62cebSEmmanuel Vadot	i2c0_pins: i2c0 {
1907ef62cebSEmmanuel Vadot		pinmux = <RZV2M_PORT_PINMUX(5, 0, 2)>, /* SDA */
1917ef62cebSEmmanuel Vadot			 <RZV2M_PORT_PINMUX(5, 1, 2)>; /* SCL */
1927ef62cebSEmmanuel Vadot	};
1937ef62cebSEmmanuel Vadot
1947ef62cebSEmmanuel Vadot	i2c2_pins: i2c2 {
1957ef62cebSEmmanuel Vadot		pinmux = <RZV2M_PORT_PINMUX(3, 8, 2)>, /* SDA */
1967ef62cebSEmmanuel Vadot			 <RZV2M_PORT_PINMUX(3, 9, 2)>; /* SCL */
1977ef62cebSEmmanuel Vadot	};
198*fac71e4eSEmmanuel Vadot
199*fac71e4eSEmmanuel Vadot	sdhi0_pins: sd0 {
200*fac71e4eSEmmanuel Vadot		data {
201*fac71e4eSEmmanuel Vadot			pinmux = <RZV2M_PORT_PINMUX(8, 2, 1)>, /* SD0DAT0 */
202*fac71e4eSEmmanuel Vadot				 <RZV2M_PORT_PINMUX(8, 3, 1)>, /* SD0DAT1 */
203*fac71e4eSEmmanuel Vadot				 <RZV2M_PORT_PINMUX(8, 4, 1)>, /* SD0DAT2 */
204*fac71e4eSEmmanuel Vadot				 <RZV2M_PORT_PINMUX(8, 5, 1)>; /* SD0DAT3 */
205*fac71e4eSEmmanuel Vadot			power-source = <3300>;
206*fac71e4eSEmmanuel Vadot		};
207*fac71e4eSEmmanuel Vadot
208*fac71e4eSEmmanuel Vadot		ctrl {
209*fac71e4eSEmmanuel Vadot			pinmux = <RZV2M_PORT_PINMUX(8, 0, 1)>, /* SD0CMD */
210*fac71e4eSEmmanuel Vadot				 <RZV2M_PORT_PINMUX(8, 1, 1)>; /* SD0CLK */
211*fac71e4eSEmmanuel Vadot			power-source = <3300>;
212*fac71e4eSEmmanuel Vadot		};
213*fac71e4eSEmmanuel Vadot
214*fac71e4eSEmmanuel Vadot		cd {
215*fac71e4eSEmmanuel Vadot			pinmux = <RZV2M_PORT_PINMUX(8, 7, 1)>; /* SD0CD */
216*fac71e4eSEmmanuel Vadot			power-source = <3300>;
217*fac71e4eSEmmanuel Vadot		};
218*fac71e4eSEmmanuel Vadot	};
219*fac71e4eSEmmanuel Vadot
220*fac71e4eSEmmanuel Vadot	sdhi0_pins_uhs: sd0-uhs {
221*fac71e4eSEmmanuel Vadot		data {
222*fac71e4eSEmmanuel Vadot			pinmux = <RZV2M_PORT_PINMUX(8, 2, 1)>, /* SD0DAT0 */
223*fac71e4eSEmmanuel Vadot				 <RZV2M_PORT_PINMUX(8, 3, 1)>, /* SD0DAT1 */
224*fac71e4eSEmmanuel Vadot				 <RZV2M_PORT_PINMUX(8, 4, 1)>, /* SD0DAT2 */
225*fac71e4eSEmmanuel Vadot				 <RZV2M_PORT_PINMUX(8, 5, 1)>; /* SD0DAT3 */
226*fac71e4eSEmmanuel Vadot			power-source = <1800>;
227*fac71e4eSEmmanuel Vadot		};
228*fac71e4eSEmmanuel Vadot
229*fac71e4eSEmmanuel Vadot		ctrl {
230*fac71e4eSEmmanuel Vadot			pinmux = <RZV2M_PORT_PINMUX(8, 0, 1)>, /* SD0CMD */
231*fac71e4eSEmmanuel Vadot				 <RZV2M_PORT_PINMUX(8, 1, 1)>; /* SD0CLK */
232*fac71e4eSEmmanuel Vadot			power-source = <1800>;
233*fac71e4eSEmmanuel Vadot		};
234*fac71e4eSEmmanuel Vadot
235*fac71e4eSEmmanuel Vadot		cd {
236*fac71e4eSEmmanuel Vadot			pinmux = <RZV2M_PORT_PINMUX(8, 7, 1)>; /* SD0CD */
237*fac71e4eSEmmanuel Vadot			power-source = <1800>;
238*fac71e4eSEmmanuel Vadot		};
239*fac71e4eSEmmanuel Vadot	};
240*fac71e4eSEmmanuel Vadot
241*fac71e4eSEmmanuel Vadot	uart0_pins: uart0 {
242*fac71e4eSEmmanuel Vadot		pinmux = <RZV2M_PORT_PINMUX(3, 0, 2)>, /* UATX0 */
243*fac71e4eSEmmanuel Vadot			 <RZV2M_PORT_PINMUX(3, 1, 2)>, /* UARX0 */
244*fac71e4eSEmmanuel Vadot			 <RZV2M_PORT_PINMUX(3, 2, 2)>, /* UACTS0N */
245*fac71e4eSEmmanuel Vadot			 <RZV2M_PORT_PINMUX(3, 3, 2)>; /* UARTS0N */
246*fac71e4eSEmmanuel Vadot	};
2477ef62cebSEmmanuel Vadot};
2487ef62cebSEmmanuel Vadot
249cb7aa33aSEmmanuel Vadot&pwc {
250cb7aa33aSEmmanuel Vadot	renesas,rzv2m-pwc-power;
251cb7aa33aSEmmanuel Vadot	status = "okay";
252cb7aa33aSEmmanuel Vadot};
253cb7aa33aSEmmanuel Vadot
254*fac71e4eSEmmanuel Vadot&sdhi0 {
255*fac71e4eSEmmanuel Vadot	pinctrl-0 = <&sdhi0_pins>;
256*fac71e4eSEmmanuel Vadot	pinctrl-1 = <&sdhi0_pins_uhs>;
257*fac71e4eSEmmanuel Vadot	pinctrl-names = "default", "state_uhs";
258*fac71e4eSEmmanuel Vadot
259*fac71e4eSEmmanuel Vadot	vmmc-supply = <&reg_3v3>;
260*fac71e4eSEmmanuel Vadot	vqmmc-supply = <&vccq_sdhi0>;
261*fac71e4eSEmmanuel Vadot	bus-width = <4>;
262*fac71e4eSEmmanuel Vadot	sd-uhs-sdr50;
263*fac71e4eSEmmanuel Vadot	sd-uhs-sdr104;
264d5b0e70fSEmmanuel Vadot	status = "okay";
265d5b0e70fSEmmanuel Vadot};
2668bab661aSEmmanuel Vadot
267*fac71e4eSEmmanuel Vadot&uart0 {
268*fac71e4eSEmmanuel Vadot	pinctrl-0 = <&uart0_pins>;
269*fac71e4eSEmmanuel Vadot	pinctrl-names = "default";
270*fac71e4eSEmmanuel Vadot
271*fac71e4eSEmmanuel Vadot	uart-has-rtscts;
272*fac71e4eSEmmanuel Vadot	status = "okay";
273*fac71e4eSEmmanuel Vadot};
274*fac71e4eSEmmanuel Vadot
275*fac71e4eSEmmanuel Vadot&usb3drd {
276*fac71e4eSEmmanuel Vadot	status = "okay";
277*fac71e4eSEmmanuel Vadot};
278*fac71e4eSEmmanuel Vadot
279*fac71e4eSEmmanuel Vadot&usb3host {
280*fac71e4eSEmmanuel Vadot	status = "okay";
281*fac71e4eSEmmanuel Vadot};
282*fac71e4eSEmmanuel Vadot
283*fac71e4eSEmmanuel Vadot&usb3peri {
284*fac71e4eSEmmanuel Vadot	companion = <&usb3host>;
285*fac71e4eSEmmanuel Vadot	status = "okay";
286*fac71e4eSEmmanuel Vadot	usb-role-switch;
287*fac71e4eSEmmanuel Vadot
288*fac71e4eSEmmanuel Vadot	ports {
289*fac71e4eSEmmanuel Vadot		#address-cells = <1>;
290*fac71e4eSEmmanuel Vadot		#size-cells = <0>;
291*fac71e4eSEmmanuel Vadot
292*fac71e4eSEmmanuel Vadot		port@0 {
293*fac71e4eSEmmanuel Vadot			reg = <0>;
294*fac71e4eSEmmanuel Vadot			usb3_hs_ep: endpoint {
295*fac71e4eSEmmanuel Vadot				remote-endpoint = <&hs_ep>;
296*fac71e4eSEmmanuel Vadot			};
297*fac71e4eSEmmanuel Vadot		};
298*fac71e4eSEmmanuel Vadot
299*fac71e4eSEmmanuel Vadot		port@1 {
300*fac71e4eSEmmanuel Vadot			reg = <1>;
301*fac71e4eSEmmanuel Vadot			usb3_role_switch: endpoint {
302*fac71e4eSEmmanuel Vadot				remote-endpoint = <&hd3ss3220_out_ep>;
303*fac71e4eSEmmanuel Vadot			};
304*fac71e4eSEmmanuel Vadot		};
305*fac71e4eSEmmanuel Vadot	};
306*fac71e4eSEmmanuel Vadot};
307*fac71e4eSEmmanuel Vadot
3088bab661aSEmmanuel Vadot&wdt0 {
3098bab661aSEmmanuel Vadot	status = "okay";
3108bab661aSEmmanuel Vadot};
311