blob: fbbb4f03440b3194b08cc22ab9a55cf6b9efd1f8 [file] [log] [blame]
Paul Barkerf4aa5502023-10-16 10:25:42 +01001// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2/*
3 * Device Tree Source for the RZ/{G2L,V2L} SMARC SOM common parts
4 *
5 * Copyright (C) 2021 Renesas Electronics Corp.
6 */
7
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/interrupt-controller/irqc-rzg2l.h>
10#include <dt-bindings/pinctrl/rzg2l-pinctrl.h>
11
12/* SW1[2] should be at position 2/OFF to enable 64 GB eMMC */
13#define EMMC 1
14
15/*
16 * To enable uSD card on CN3,
17 * SW1[2] should be at position 3/ON.
18 * Disable eMMC by setting "#define EMMC 0" above.
19 */
20#define SDHI (!EMMC)
21
22/ {
23 aliases {
24 ethernet0 = &eth0;
25 ethernet1 = &eth1;
26 };
27
28 chosen {
29 bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
30 };
31
32 memory@48000000 {
33 device_type = "memory";
34 /* first 128MB is reserved for secure area. */
35 reg = <0x0 0x48000000 0x0 0x78000000>;
36 };
37
38 reg_1p8v: regulator-1p8v {
39 compatible = "regulator-fixed";
40 regulator-name = "fixed-1.8V";
41 regulator-min-microvolt = <1800000>;
42 regulator-max-microvolt = <1800000>;
43 regulator-boot-on;
44 regulator-always-on;
45 };
46
47 reg_3p3v: regulator-3p3v {
48 compatible = "regulator-fixed";
49 regulator-name = "fixed-3.3V";
50 regulator-min-microvolt = <3300000>;
51 regulator-max-microvolt = <3300000>;
52 regulator-boot-on;
53 regulator-always-on;
54 };
55
56 reg_1p1v: regulator-vdd-core {
57 compatible = "regulator-fixed";
58 regulator-name = "fixed-1.1V";
59 regulator-min-microvolt = <1100000>;
60 regulator-max-microvolt = <1100000>;
61 regulator-boot-on;
62 regulator-always-on;
63 };
64
65 vccq_sdhi0: regulator-vccq-sdhi0 {
66 compatible = "regulator-gpio";
67
68 regulator-name = "SDHI0 VccQ";
69 regulator-min-microvolt = <1800000>;
70 regulator-max-microvolt = <3300000>;
71 states = <3300000 1>, <1800000 0>;
72 regulator-boot-on;
73 gpios = <&pinctrl RZG2L_GPIO(39, 0) GPIO_ACTIVE_HIGH>;
74 regulator-always-on;
75 };
76};
77
78&adc {
79 pinctrl-0 = <&adc_pins>;
80 pinctrl-names = "default";
81 status = "okay";
82
83 /delete-node/ channel@6;
84 /delete-node/ channel@7;
85};
86
87&eth0 {
88 pinctrl-0 = <&eth0_pins>;
89 pinctrl-names = "default";
90 phy-handle = <&phy0>;
91 phy-mode = "rgmii-id";
92 status = "okay";
93
94 phy0: ethernet-phy@7 {
95 compatible = "ethernet-phy-id0022.1640",
96 "ethernet-phy-ieee802.3-c22";
97 reg = <7>;
98 interrupt-parent = <&irqc>;
99 interrupts = <RZG2L_IRQ2 IRQ_TYPE_LEVEL_LOW>;
100 rxc-skew-psec = <2400>;
101 txc-skew-psec = <2400>;
102 rxdv-skew-psec = <0>;
103 txdv-skew-psec = <0>;
104 rxd0-skew-psec = <0>;
105 rxd1-skew-psec = <0>;
106 rxd2-skew-psec = <0>;
107 rxd3-skew-psec = <0>;
108 txd0-skew-psec = <0>;
109 txd1-skew-psec = <0>;
110 txd2-skew-psec = <0>;
111 txd3-skew-psec = <0>;
112 };
113};
114
115&eth1 {
116 pinctrl-0 = <&eth1_pins>;
117 pinctrl-names = "default";
118 phy-handle = <&phy1>;
119 phy-mode = "rgmii-id";
120 status = "okay";
121
122 phy1: ethernet-phy@7 {
123 compatible = "ethernet-phy-id0022.1640",
124 "ethernet-phy-ieee802.3-c22";
125 reg = <7>;
126 interrupt-parent = <&irqc>;
127 interrupts = <RZG2L_IRQ3 IRQ_TYPE_LEVEL_LOW>;
128 rxc-skew-psec = <2400>;
129 txc-skew-psec = <2400>;
130 rxdv-skew-psec = <0>;
131 txdv-skew-psec = <0>;
132 rxd0-skew-psec = <0>;
133 rxd1-skew-psec = <0>;
134 rxd2-skew-psec = <0>;
135 rxd3-skew-psec = <0>;
136 txd0-skew-psec = <0>;
137 txd1-skew-psec = <0>;
138 txd2-skew-psec = <0>;
139 txd3-skew-psec = <0>;
140 };
141};
142
143&extal_clk {
144 clock-frequency = <24000000>;
145};
146
147&gpu {
148 mali-supply = <&reg_1p1v>;
149};
150
151&ostm1 {
152 status = "okay";
153};
154
155&ostm2 {
156 status = "okay";
157};
158
159&pinctrl {
160 adc_pins: adc {
161 pinmux = <RZG2L_PORT_PINMUX(9, 0, 2)>; /* ADC_TRG */
162 };
163
164 eth0_pins: eth0 {
165 pinmux = <RZG2L_PORT_PINMUX(28, 1, 1)>, /* ET0_LINKSTA */
166 <RZG2L_PORT_PINMUX(27, 1, 1)>, /* ET0_MDC */
167 <RZG2L_PORT_PINMUX(28, 0, 1)>, /* ET0_MDIO */
168 <RZG2L_PORT_PINMUX(20, 0, 1)>, /* ET0_TXC */
169 <RZG2L_PORT_PINMUX(20, 1, 1)>, /* ET0_TX_CTL */
170 <RZG2L_PORT_PINMUX(20, 2, 1)>, /* ET0_TXD0 */
171 <RZG2L_PORT_PINMUX(21, 0, 1)>, /* ET0_TXD1 */
172 <RZG2L_PORT_PINMUX(21, 1, 1)>, /* ET0_TXD2 */
173 <RZG2L_PORT_PINMUX(22, 0, 1)>, /* ET0_TXD3 */
174 <RZG2L_PORT_PINMUX(24, 0, 1)>, /* ET0_RXC */
175 <RZG2L_PORT_PINMUX(24, 1, 1)>, /* ET0_RX_CTL */
176 <RZG2L_PORT_PINMUX(25, 0, 1)>, /* ET0_RXD0 */
177 <RZG2L_PORT_PINMUX(25, 1, 1)>, /* ET0_RXD1 */
178 <RZG2L_PORT_PINMUX(26, 0, 1)>, /* ET0_RXD2 */
179 <RZG2L_PORT_PINMUX(26, 1, 1)>, /* ET0_RXD3 */
180 <RZG2L_PORT_PINMUX(1, 0, 1)>; /* IRQ2 */
181 };
182
183 eth1_pins: eth1 {
184 pinmux = <RZG2L_PORT_PINMUX(37, 2, 1)>, /* ET1_LINKSTA */
185 <RZG2L_PORT_PINMUX(37, 0, 1)>, /* ET1_MDC */
186 <RZG2L_PORT_PINMUX(37, 1, 1)>, /* ET1_MDIO */
187 <RZG2L_PORT_PINMUX(29, 0, 1)>, /* ET1_TXC */
188 <RZG2L_PORT_PINMUX(29, 1, 1)>, /* ET1_TX_CTL */
189 <RZG2L_PORT_PINMUX(30, 0, 1)>, /* ET1_TXD0 */
190 <RZG2L_PORT_PINMUX(30, 1, 1)>, /* ET1_TXD1 */
191 <RZG2L_PORT_PINMUX(31, 0, 1)>, /* ET1_TXD2 */
192 <RZG2L_PORT_PINMUX(31, 1, 1)>, /* ET1_TXD3 */
193 <RZG2L_PORT_PINMUX(33, 1, 1)>, /* ET1_RXC */
194 <RZG2L_PORT_PINMUX(34, 0, 1)>, /* ET1_RX_CTL */
195 <RZG2L_PORT_PINMUX(34, 1, 1)>, /* ET1_RXD0 */
196 <RZG2L_PORT_PINMUX(35, 0, 1)>, /* ET1_RXD1 */
197 <RZG2L_PORT_PINMUX(35, 1, 1)>, /* ET1_RXD2 */
198 <RZG2L_PORT_PINMUX(36, 0, 1)>, /* ET1_RXD3 */
199 <RZG2L_PORT_PINMUX(1, 1, 1)>; /* IRQ3 */
200 };
201
202 gpio-sd0-pwr-en-hog {
203 gpio-hog;
204 gpios = <RZG2L_GPIO(4, 1) GPIO_ACTIVE_HIGH>;
205 output-high;
206 line-name = "gpio_sd0_pwr_en";
207 };
208
209 qspi0_pins: qspi0 {
210 qspi0-data {
211 pins = "QSPI0_IO0", "QSPI0_IO1", "QSPI0_IO2", "QSPI0_IO3";
212 power-source = <1800>;
213 };
214
215 qspi0-ctrl {
216 pins = "QSPI0_SPCLK", "QSPI0_SSL", "QSPI_RESET#";
217 power-source = <1800>;
218 };
219 };
220
221 /*
222 * SD0 device selection is XOR between GPIO_SD0_DEV_SEL and SW1[2]
223 * The below switch logic can be used to select the device between
224 * eMMC and microSD, after setting GPIO_SD0_DEV_SEL to high in DT.
225 * SW1[2] should be at position 2/OFF to enable 64 GB eMMC
226 * SW1[2] should be at position 3/ON to enable uSD card CN3
227 */
228 sd0-dev-sel-hog {
229 gpio-hog;
230 gpios = <RZG2L_GPIO(41, 1) GPIO_ACTIVE_HIGH>;
231 output-high;
232 line-name = "sd0_dev_sel";
233 };
234
235 sdhi0_emmc_pins: sd0emmc {
236 sd0_emmc_data {
237 pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3",
238 "SD0_DATA4", "SD0_DATA5", "SD0_DATA6", "SD0_DATA7";
239 power-source = <1800>;
240 };
241
242 sd0_emmc_ctrl {
243 pins = "SD0_CLK", "SD0_CMD";
244 power-source = <1800>;
245 };
246
247 sd0_emmc_rst {
248 pins = "SD0_RST#";
249 power-source = <1800>;
250 };
251 };
252
253 sdhi0_pins: sd0 {
254 sd0_data {
255 pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3";
256 power-source = <3300>;
257 };
258
259 sd0_ctrl {
260 pins = "SD0_CLK", "SD0_CMD";
261 power-source = <3300>;
262 };
263
264 sd0_mux {
265 pinmux = <RZG2L_PORT_PINMUX(47, 0, 2)>; /* SD0_CD */
266 };
267 };
268
269 sdhi0_pins_uhs: sd0_uhs {
270 sd0_data_uhs {
271 pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3";
272 power-source = <1800>;
273 };
274
275 sd0_ctrl_uhs {
276 pins = "SD0_CLK", "SD0_CMD";
277 power-source = <1800>;
278 };
279
280 sd0_mux_uhs {
281 pinmux = <RZG2L_PORT_PINMUX(47, 0, 2)>; /* SD0_CD */
282 };
283 };
284};
285
286&sbc {
287 pinctrl-0 = <&qspi0_pins>;
288 pinctrl-names = "default";
289 status = "okay";
290
291 flash@0 {
292 compatible = "micron,mt25qu512a", "jedec,spi-nor";
293 reg = <0>;
294 m25p,fast-read;
295 spi-max-frequency = <50000000>;
296 spi-rx-bus-width = <4>;
297
298 partitions {
299 compatible = "fixed-partitions";
300 #address-cells = <1>;
301 #size-cells = <1>;
302
303 boot@0 {
304 reg = <0x00000000 0x2000000>;
305 read-only;
306 };
307 user@2000000 {
308 reg = <0x2000000 0x2000000>;
309 };
310 };
311 };
312};
313
314#if SDHI
315&sdhi0 {
316 pinctrl-0 = <&sdhi0_pins>;
317 pinctrl-1 = <&sdhi0_pins_uhs>;
318 pinctrl-names = "default", "state_uhs";
319
320 vmmc-supply = <&reg_3p3v>;
321 vqmmc-supply = <&vccq_sdhi0>;
322 bus-width = <4>;
323 sd-uhs-sdr50;
324 sd-uhs-sdr104;
325 status = "okay";
326};
327#endif
328
329#if EMMC
330&sdhi0 {
331 pinctrl-0 = <&sdhi0_emmc_pins>;
332 pinctrl-1 = <&sdhi0_emmc_pins>;
333 pinctrl-names = "default", "state_uhs";
334
335 vmmc-supply = <&reg_3p3v>;
336 vqmmc-supply = <&reg_1p8v>;
337 bus-width = <8>;
338 mmc-hs200-1_8v;
339 non-removable;
340 fixed-emmc-driver-type = <1>;
341 status = "okay";
342};
343#endif
344
345&wdt0 {
346 status = "okay";
347 timeout-sec = <60>;
348};
349
350&wdt1 {
351 status = "okay";
352 timeout-sec = <60>;
353};