xref: /openbmc/u-boot/arch/arm/dts/r8a7796-m3ulcb.dts (revision c74dda8b)
1/*
2 * Device Tree Source for the M3ULCB (R-Car Starter Kit Pro) board
3 *
4 * Copyright (C) 2016 Renesas Electronics Corp.
5 * Copyright (C) 2016 Cogent Embedded, Inc.
6 *
7 * This file is licensed under the terms of the GNU General Public License
8 * version 2.  This program is licensed "as is" without any warranty of any
9 * kind, whether express or implied.
10 */
11
12/dts-v1/;
13#include "r8a7796.dtsi"
14#include <dt-bindings/gpio/gpio.h>
15#include <dt-bindings/input/input.h>
16
17/ {
18	model = "Renesas M3ULCB board based on r8a7796";
19	compatible = "renesas,m3ulcb", "renesas,r8a7796";
20
21	aliases {
22		serial0 = &scif2;
23	};
24
25	chosen {
26		stdout-path = "serial0:115200n8";
27	};
28
29	memory@48000000 {
30		device_type = "memory";
31		/* first 128MB is reserved for secure area. */
32		reg = <0x0 0x48000000 0x0 0x38000000>;
33	};
34
35	leds {
36		compatible = "gpio-leds";
37
38		led5 {
39			gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>;
40		};
41		led6 {
42			gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>;
43		};
44	};
45
46	keyboard {
47		compatible = "gpio-keys";
48
49		key-1 {
50			linux,code = <KEY_1>;
51			label = "SW3";
52			wakeup-source;
53			debounce-interval = <20>;
54			gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
55		};
56	};
57
58	reg_1p8v: regulator0 {
59		compatible = "regulator-fixed";
60		regulator-name = "fixed-1.8V";
61		regulator-min-microvolt = <1800000>;
62		regulator-max-microvolt = <1800000>;
63		regulator-boot-on;
64		regulator-always-on;
65	};
66
67	reg_3p3v: regulator1 {
68		compatible = "regulator-fixed";
69		regulator-name = "fixed-3.3V";
70		regulator-min-microvolt = <3300000>;
71		regulator-max-microvolt = <3300000>;
72		regulator-boot-on;
73		regulator-always-on;
74	};
75
76	vcc_sdhi0: regulator-vcc-sdhi0 {
77		compatible = "regulator-fixed";
78
79		regulator-name = "SDHI0 Vcc";
80		regulator-min-microvolt = <3300000>;
81		regulator-max-microvolt = <3300000>;
82
83		gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>;
84		enable-active-high;
85	};
86
87	vccq_sdhi0: regulator-vccq-sdhi0 {
88		compatible = "regulator-gpio";
89
90		regulator-name = "SDHI0 VccQ";
91		regulator-min-microvolt = <1800000>;
92		regulator-max-microvolt = <3300000>;
93
94		gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
95		gpios-states = <1>;
96		states = <3300000 1
97			  1800000 0>;
98	};
99};
100
101&extal_clk {
102	clock-frequency = <16666666>;
103};
104
105&extalr_clk {
106	clock-frequency = <32768>;
107};
108
109&pfc {
110	pinctrl-0 = <&scif_clk_pins>;
111	pinctrl-names = "default";
112
113	scif2_pins: scif2 {
114		groups = "scif2_data_a";
115		function = "scif2";
116	};
117
118	scif_clk_pins: scif_clk {
119		groups = "scif_clk_a";
120		function = "scif_clk";
121	};
122
123	sdhi0_pins: sd0 {
124		groups = "sdhi0_data4", "sdhi0_ctrl";
125		function = "sdhi0";
126		power-source = <3300>;
127	};
128
129	sdhi0_pins_uhs: sd0_uhs {
130		groups = "sdhi0_data4", "sdhi0_ctrl";
131		function = "sdhi0";
132		power-source = <1800>;
133	};
134
135	sdhi2_pins: sd2 {
136		groups = "sdhi2_data8", "sdhi2_ctrl";
137		function = "sdhi2";
138		power-source = <3300>;
139	};
140
141	sdhi2_pins_uhs: sd2_uhs {
142		groups = "sdhi2_data8", "sdhi2_ctrl";
143		function = "sdhi2";
144		power-source = <1800>;
145	};
146};
147
148&sdhi0 {
149	pinctrl-0 = <&sdhi0_pins>;
150	pinctrl-1 = <&sdhi0_pins_uhs>;
151	pinctrl-names = "default", "state_uhs";
152
153	vmmc-supply = <&vcc_sdhi0>;
154	vqmmc-supply = <&vccq_sdhi0>;
155	cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
156	bus-width = <4>;
157	sd-uhs-sdr50;
158	status = "okay";
159};
160
161&sdhi2 {
162	/* used for on-board 8bit eMMC */
163	pinctrl-0 = <&sdhi2_pins>;
164	pinctrl-1 = <&sdhi2_pins_uhs>;
165	pinctrl-names = "default", "state_uhs";
166
167	vmmc-supply = <&reg_3p3v>;
168	vqmmc-supply = <&reg_1p8v>;
169	bus-width = <8>;
170	non-removable;
171	status = "okay";
172};
173
174&scif2 {
175	pinctrl-0 = <&scif2_pins>;
176	pinctrl-names = "default";
177
178	status = "okay";
179};
180
181&scif_clk {
182	clock-frequency = <14745600>;
183};
184
185&wdt0 {
186	timeout-sec = <60>;
187	status = "okay";
188};
189