1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Device Tree Source for the RZA2MEVB board
4*724ba675SRob Herring *
5*724ba675SRob Herring * Copyright (C) 2018 Renesas Electronics
6*724ba675SRob Herring *
7*724ba675SRob Herring * As upstream Linux does not support XIP, it cannot run in 8 MiB of HyperRAM.
8*724ba675SRob Herring * Hence the 64 MiB of SDRAM on the sub-board needs to be enabled, which has
9*724ba675SRob Herring * the following ramifications:
10*724ba675SRob Herring *   - SCIF4 connected to the on-board USB-serial can no longer be used as the
11*724ba675SRob Herring *     serial console,
12*724ba675SRob Herring *   - Instead, SCIF2 is used as the serial console, by connecting a 3.3V TTL
13*724ba675SRob Herring *     USB-to-Serial adapter to the CMOS camera connector:
14*724ba675SRob Herring *       - RXD = CN17-9,
15*724ba675SRob Herring *       - TXD = CN17-10,
16*724ba675SRob Herring *       - GND = CN17-2 or CN17-17,
17*724ba675SRob Herring *   - The first Ethernet channel can no longer be used,
18*724ba675SRob Herring *   - USB Channel 1 loses the overcurrent input signal.
19*724ba675SRob Herring *
20*724ba675SRob Herring * Please make sure your sub-board matches the following switch settings:
21*724ba675SRob Herring *
22*724ba675SRob Herring *           SW6                SW6-1 set to SDRAM
23*724ba675SRob Herring *  ON                          SW6-2 set to Audio
24*724ba675SRob Herring * +---------------------+      SW6-3 set to DRP
25*724ba675SRob Herring * | =   =   = = =       |      SW6-4 set to CEU
26*724ba675SRob Herring * |   =   =             |      SW6-5 set to Ether2
27*724ba675SRob Herring * | 1 2 3 4 5 6 7 8 9 0 |      SW6-6 set to VDC6
28*724ba675SRob Herring * +---------------------+      SW6-7 set to VDC6
29*724ba675SRob Herring */
30*724ba675SRob Herring
31*724ba675SRob Herring/dts-v1/;
32*724ba675SRob Herring#include "r7s9210.dtsi"
33*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
34*724ba675SRob Herring#include <dt-bindings/input/input.h>
35*724ba675SRob Herring#include <dt-bindings/pinctrl/r7s9210-pinctrl.h>
36*724ba675SRob Herring
37*724ba675SRob Herring/ {
38*724ba675SRob Herring	model = "RZA2MEVB";
39*724ba675SRob Herring	compatible = "renesas,rza2mevb", "renesas,r7s9210";
40*724ba675SRob Herring
41*724ba675SRob Herring	aliases {
42*724ba675SRob Herring		serial0 = &scif2;
43*724ba675SRob Herring		ethernet0 = &ether1;
44*724ba675SRob Herring	};
45*724ba675SRob Herring
46*724ba675SRob Herring	chosen {
47*724ba675SRob Herring		bootargs = "ignore_loglevel";
48*724ba675SRob Herring		stdout-path = "serial0:115200n8";
49*724ba675SRob Herring	};
50*724ba675SRob Herring
51*724ba675SRob Herring	keyboard {
52*724ba675SRob Herring		compatible = "gpio-keys";
53*724ba675SRob Herring
54*724ba675SRob Herring		pinctrl-names = "default";
55*724ba675SRob Herring		pinctrl-0 = <&keyboard_pins>;
56*724ba675SRob Herring
57*724ba675SRob Herring		key-3 {
58*724ba675SRob Herring			interrupt-parent = <&irqc>;
59*724ba675SRob Herring			interrupts = <0 IRQ_TYPE_EDGE_BOTH>;
60*724ba675SRob Herring			linux,code = <KEY_3>;
61*724ba675SRob Herring			label = "SW3";
62*724ba675SRob Herring			wakeup-source;
63*724ba675SRob Herring		};
64*724ba675SRob Herring	};
65*724ba675SRob Herring
66*724ba675SRob Herring	lbsc {
67*724ba675SRob Herring		#address-cells = <1>;
68*724ba675SRob Herring		#size-cells = <1>;
69*724ba675SRob Herring	};
70*724ba675SRob Herring
71*724ba675SRob Herring	leds {
72*724ba675SRob Herring		compatible = "gpio-leds";
73*724ba675SRob Herring
74*724ba675SRob Herring		led-red {
75*724ba675SRob Herring			gpios = <&pinctrl RZA2_PIN(PORT6, 0) GPIO_ACTIVE_HIGH>;
76*724ba675SRob Herring		};
77*724ba675SRob Herring		led-green {
78*724ba675SRob Herring			gpios = <&pinctrl RZA2_PIN(PORTC, 1) GPIO_ACTIVE_HIGH>;
79*724ba675SRob Herring		};
80*724ba675SRob Herring	};
81*724ba675SRob Herring
82*724ba675SRob Herring	memory@c000000 {
83*724ba675SRob Herring		device_type = "memory";
84*724ba675SRob Herring		reg = <0x0c000000 0x04000000>;	/* SDRAM */
85*724ba675SRob Herring	};
86*724ba675SRob Herring};
87*724ba675SRob Herring
88*724ba675SRob Herring&ehci0 {
89*724ba675SRob Herring	status = "okay";
90*724ba675SRob Herring};
91*724ba675SRob Herring
92*724ba675SRob Herring&ehci1 {
93*724ba675SRob Herring	status = "okay";
94*724ba675SRob Herring};
95*724ba675SRob Herring
96*724ba675SRob Herring&ether1 {
97*724ba675SRob Herring	pinctrl-names = "default";
98*724ba675SRob Herring	pinctrl-0 = <&eth1_pins>;
99*724ba675SRob Herring	status = "okay";
100*724ba675SRob Herring	renesas,no-ether-link;
101*724ba675SRob Herring	phy-handle = <&phy1>;
102*724ba675SRob Herring	phy1: ethernet-phy@1 {
103*724ba675SRob Herring		compatible = "ethernet-phy-id001c.c816",
104*724ba675SRob Herring			     "ethernet-phy-ieee802.3-c22";
105*724ba675SRob Herring		reg = <0>;
106*724ba675SRob Herring	};
107*724ba675SRob Herring};
108*724ba675SRob Herring
109*724ba675SRob Herring/* EXTAL */
110*724ba675SRob Herring&extal_clk {
111*724ba675SRob Herring	clock-frequency = <24000000>;	/* 24MHz */
112*724ba675SRob Herring};
113*724ba675SRob Herring
114*724ba675SRob Herring&i2c3 {
115*724ba675SRob Herring	status = "okay";
116*724ba675SRob Herring	clock-frequency = <400000>;
117*724ba675SRob Herring
118*724ba675SRob Herring	pinctrl-names = "default";
119*724ba675SRob Herring	pinctrl-0 = <&i2c3_pins>;
120*724ba675SRob Herring
121*724ba675SRob Herring	eeprom@50 {
122*724ba675SRob Herring		compatible = "renesas,r1ex24128", "atmel,24c128";
123*724ba675SRob Herring		reg = <0x50>;
124*724ba675SRob Herring		pagesize = <64>;
125*724ba675SRob Herring	};
126*724ba675SRob Herring};
127*724ba675SRob Herring
128*724ba675SRob Herring/* High resolution System tick timers */
129*724ba675SRob Herring&ostm0 {
130*724ba675SRob Herring	status = "okay";
131*724ba675SRob Herring};
132*724ba675SRob Herring
133*724ba675SRob Herring&ostm1 {
134*724ba675SRob Herring	status = "okay";
135*724ba675SRob Herring};
136*724ba675SRob Herring
137*724ba675SRob Herring&pinctrl {
138*724ba675SRob Herring	eth0_pins: eth0 {
139*724ba675SRob Herring		pinmux = <RZA2_PINMUX(PORTE, 0, 7)>, /* REF50CK0 */
140*724ba675SRob Herring			 <RZA2_PINMUX(PORT6, 1, 7)>, /* RMMI0_TXDEN */
141*724ba675SRob Herring			 <RZA2_PINMUX(PORT6, 2, 7)>, /* RMII0_TXD0 */
142*724ba675SRob Herring			 <RZA2_PINMUX(PORT6, 3, 7)>, /* RMII0_TXD1 */
143*724ba675SRob Herring			 <RZA2_PINMUX(PORTE, 4, 7)>, /* RMII0_CRSDV */
144*724ba675SRob Herring			 <RZA2_PINMUX(PORTE, 1, 7)>, /* RMII0_RXD0 */
145*724ba675SRob Herring			 <RZA2_PINMUX(PORTE, 2, 7)>, /* RMII0_RXD1 */
146*724ba675SRob Herring			 <RZA2_PINMUX(PORTE, 3, 7)>, /* RMII0_RXER */
147*724ba675SRob Herring			 <RZA2_PINMUX(PORTE, 5, 1)>, /* ET0_MDC */
148*724ba675SRob Herring			 <RZA2_PINMUX(PORTE, 6, 1)>, /* ET0_MDIO */
149*724ba675SRob Herring			 <RZA2_PINMUX(PORTL, 0, 5)>; /* IRQ4 */
150*724ba675SRob Herring	};
151*724ba675SRob Herring
152*724ba675SRob Herring	eth1_pins: eth1 {
153*724ba675SRob Herring		pinmux = <RZA2_PINMUX(PORTK, 3, 7)>, /* REF50CK1 */
154*724ba675SRob Herring			 <RZA2_PINMUX(PORTK, 0, 7)>, /* RMMI1_TXDEN */
155*724ba675SRob Herring			 <RZA2_PINMUX(PORTK, 1, 7)>, /* RMII1_TXD0 */
156*724ba675SRob Herring			 <RZA2_PINMUX(PORTK, 2, 7)>, /* RMII1_TXD1 */
157*724ba675SRob Herring			 <RZA2_PINMUX(PORT3, 2, 7)>, /* RMII1_CRSDV */
158*724ba675SRob Herring			 <RZA2_PINMUX(PORTK, 4, 7)>, /* RMII1_RXD0 */
159*724ba675SRob Herring			 <RZA2_PINMUX(PORT3, 5, 7)>, /* RMII1_RXD1 */
160*724ba675SRob Herring			 <RZA2_PINMUX(PORT3, 1, 7)>, /* RMII1_RXER */
161*724ba675SRob Herring			 <RZA2_PINMUX(PORT3, 3, 1)>, /* ET1_MDC */
162*724ba675SRob Herring			 <RZA2_PINMUX(PORT3, 4, 1)>, /* ET1_MDIO */
163*724ba675SRob Herring			 <RZA2_PINMUX(PORTL, 1, 5)>; /* IRQ5 */
164*724ba675SRob Herring	};
165*724ba675SRob Herring
166*724ba675SRob Herring	i2c3_pins: i2c3 {
167*724ba675SRob Herring		pinmux = <RZA2_PINMUX(PORTD, 6, 1)>,	/* RIIC3SCL */
168*724ba675SRob Herring			 <RZA2_PINMUX(PORTD, 7, 1)>;	/* RIIC3SDA */
169*724ba675SRob Herring	};
170*724ba675SRob Herring
171*724ba675SRob Herring	keyboard_pins: keyboard {
172*724ba675SRob Herring		pinmux = <RZA2_PINMUX(PORTJ, 1, 6)>;	/* IRQ0 */
173*724ba675SRob Herring	};
174*724ba675SRob Herring
175*724ba675SRob Herring	/* Serial Console */
176*724ba675SRob Herring	scif2_pins: serial2 {
177*724ba675SRob Herring		pinmux = <RZA2_PINMUX(PORTE, 2, 3)>,	/* TxD2 */
178*724ba675SRob Herring			 <RZA2_PINMUX(PORTE, 1, 3)>;	/* RxD2 */
179*724ba675SRob Herring	};
180*724ba675SRob Herring
181*724ba675SRob Herring	sdhi0_pins: sdhi0 {
182*724ba675SRob Herring		pinmux = <RZA2_PINMUX(PORT5, 0, 3)>,	/* SD0_CD */
183*724ba675SRob Herring			 <RZA2_PINMUX(PORT5, 1, 3)>;	/* SD0_WP */
184*724ba675SRob Herring	};
185*724ba675SRob Herring
186*724ba675SRob Herring	sdhi1_pins: sdhi1 {
187*724ba675SRob Herring		pinmux = <RZA2_PINMUX(PORT5, 4, 3)>,	/* SD1_CD */
188*724ba675SRob Herring			 <RZA2_PINMUX(PORT5, 5, 3)>;	/* SD1_WP */
189*724ba675SRob Herring	};
190*724ba675SRob Herring
191*724ba675SRob Herring	usb0_pins: usb0 {
192*724ba675SRob Herring		pinmux = <RZA2_PINMUX(PORT5, 2, 3)>,	/* VBUSIN0 */
193*724ba675SRob Herring			 <RZA2_PINMUX(PORTC, 6, 1)>,	/* VBUSEN0 */
194*724ba675SRob Herring			 <RZA2_PINMUX(PORTC, 7, 1)>;	/* OVRCUR0 */
195*724ba675SRob Herring	};
196*724ba675SRob Herring
197*724ba675SRob Herring	usb1_pins: usb1 {
198*724ba675SRob Herring		pinmux = <RZA2_PINMUX(PORTC, 0, 1)>,	/* VBUSIN1 */
199*724ba675SRob Herring			 <RZA2_PINMUX(PORTC, 5, 1)>;	/* VBUSEN1 */
200*724ba675SRob Herring	};
201*724ba675SRob Herring};
202*724ba675SRob Herring
203*724ba675SRob Herring/* RTC_X1 */
204*724ba675SRob Herring&rtc_x1_clk {
205*724ba675SRob Herring	clock-frequency = <32768>;
206*724ba675SRob Herring};
207*724ba675SRob Herring
208*724ba675SRob Herring/* Serial Console */
209*724ba675SRob Herring&scif2 {
210*724ba675SRob Herring	pinctrl-names = "default";
211*724ba675SRob Herring	pinctrl-0 = <&scif2_pins>;
212*724ba675SRob Herring
213*724ba675SRob Herring	status = "okay";
214*724ba675SRob Herring};
215*724ba675SRob Herring
216*724ba675SRob Herring&sdhi0 {
217*724ba675SRob Herring	pinctrl-names = "default";
218*724ba675SRob Herring	pinctrl-0 = <&sdhi0_pins>;
219*724ba675SRob Herring	bus-width = <4>;
220*724ba675SRob Herring	status = "okay";
221*724ba675SRob Herring};
222*724ba675SRob Herring
223*724ba675SRob Herring&sdhi1 {
224*724ba675SRob Herring	pinctrl-names = "default";
225*724ba675SRob Herring	pinctrl-0 = <&sdhi1_pins>;
226*724ba675SRob Herring	bus-width = <4>;
227*724ba675SRob Herring	status = "okay";
228*724ba675SRob Herring};
229*724ba675SRob Herring
230*724ba675SRob Herring/* USB-0 as Host */
231*724ba675SRob Herring&usb2_phy0 {
232*724ba675SRob Herring	pinctrl-names = "default";
233*724ba675SRob Herring	pinctrl-0 = <&usb0_pins>;
234*724ba675SRob Herring	dr_mode = "host";	/* Requires JP3 to be fitted */
235*724ba675SRob Herring	status = "okay";
236*724ba675SRob Herring};
237*724ba675SRob Herring
238*724ba675SRob Herring/* USB-1 as Host */
239*724ba675SRob Herring&usb2_phy1 {
240*724ba675SRob Herring	pinctrl-names = "default";
241*724ba675SRob Herring	pinctrl-0 = <&usb1_pins>;
242*724ba675SRob Herring	dr_mode = "host";
243*724ba675SRob Herring	status = "okay";
244*724ba675SRob Herring};
245*724ba675SRob Herring
246*724ba675SRob Herring/* USB_X1 */
247*724ba675SRob Herring&usb_x1_clk {
248*724ba675SRob Herring	clock-frequency = <48000000>;
249*724ba675SRob Herring};
250