xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/r8a73a4-ape6evm.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Device Tree Source for the APE6EVM board
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Copyright (C) 2013 Renesas Solutions Corp.
6*4882a593Smuzhiyun */
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun/dts-v1/;
9*4882a593Smuzhiyun#include "r8a73a4.dtsi"
10*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
11*4882a593Smuzhiyun#include <dt-bindings/input/input.h>
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun/ {
14*4882a593Smuzhiyun	model = "APE6EVM";
15*4882a593Smuzhiyun	compatible = "renesas,ape6evm", "renesas,r8a73a4";
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun	aliases {
18*4882a593Smuzhiyun		serial0 = &scifa0;
19*4882a593Smuzhiyun	};
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun	chosen {
22*4882a593Smuzhiyun		bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
23*4882a593Smuzhiyun		stdout-path = "serial0:115200n8";
24*4882a593Smuzhiyun	};
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun	memory@40000000 {
27*4882a593Smuzhiyun		device_type = "memory";
28*4882a593Smuzhiyun		reg = <0 0x40000000 0 0x40000000>;
29*4882a593Smuzhiyun	};
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun	memory@200000000 {
32*4882a593Smuzhiyun		device_type = "memory";
33*4882a593Smuzhiyun		reg = <2 0x00000000 0 0x40000000>;
34*4882a593Smuzhiyun	};
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun	vcc_mmc0: regulator-mmc0 {
37*4882a593Smuzhiyun		compatible = "regulator-fixed";
38*4882a593Smuzhiyun		regulator-name = "MMC0 Vcc";
39*4882a593Smuzhiyun		regulator-min-microvolt = <2800000>;
40*4882a593Smuzhiyun		regulator-max-microvolt = <2800000>;
41*4882a593Smuzhiyun		regulator-always-on;
42*4882a593Smuzhiyun	};
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun	vcc_sdhi0: regulator-sdhi0 {
45*4882a593Smuzhiyun		compatible = "regulator-fixed";
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun		regulator-name = "SDHI0 Vcc";
48*4882a593Smuzhiyun		regulator-min-microvolt = <3300000>;
49*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun		gpio = <&pfc 76 GPIO_ACTIVE_HIGH>;
52*4882a593Smuzhiyun		enable-active-high;
53*4882a593Smuzhiyun	};
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun	/* Common 1.8V and 3.3V rails, used by several devices on APE6EVM */
56*4882a593Smuzhiyun	ape6evm_fixed_1v8: regulator-1v8 {
57*4882a593Smuzhiyun		compatible = "regulator-fixed";
58*4882a593Smuzhiyun		regulator-name = "1V8";
59*4882a593Smuzhiyun		regulator-min-microvolt = <1800000>;
60*4882a593Smuzhiyun		regulator-max-microvolt = <1800000>;
61*4882a593Smuzhiyun		regulator-always-on;
62*4882a593Smuzhiyun	};
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun	ape6evm_fixed_3v3: regulator-3v3 {
65*4882a593Smuzhiyun		compatible = "regulator-fixed";
66*4882a593Smuzhiyun		regulator-name = "3V3";
67*4882a593Smuzhiyun		regulator-min-microvolt = <3300000>;
68*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
69*4882a593Smuzhiyun		regulator-always-on;
70*4882a593Smuzhiyun	};
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun	leds {
73*4882a593Smuzhiyun		compatible = "gpio-leds";
74*4882a593Smuzhiyun		led1 {
75*4882a593Smuzhiyun			gpios = <&pfc 28 GPIO_ACTIVE_HIGH>;
76*4882a593Smuzhiyun			label = "GNSS_EN";
77*4882a593Smuzhiyun		};
78*4882a593Smuzhiyun		led2 {
79*4882a593Smuzhiyun			gpios = <&pfc 126 GPIO_ACTIVE_HIGH>;
80*4882a593Smuzhiyun			label = "NFC_NRST";
81*4882a593Smuzhiyun		};
82*4882a593Smuzhiyun		led3 {
83*4882a593Smuzhiyun			gpios = <&pfc 132 GPIO_ACTIVE_HIGH>;
84*4882a593Smuzhiyun			label = "GNSS_NRST";
85*4882a593Smuzhiyun		};
86*4882a593Smuzhiyun		led4 {
87*4882a593Smuzhiyun			gpios = <&pfc 232 GPIO_ACTIVE_HIGH>;
88*4882a593Smuzhiyun			label = "BT_WAKEUP";
89*4882a593Smuzhiyun		};
90*4882a593Smuzhiyun		led5 {
91*4882a593Smuzhiyun			gpios = <&pfc 250 GPIO_ACTIVE_HIGH>;
92*4882a593Smuzhiyun			label = "STROBE";
93*4882a593Smuzhiyun		};
94*4882a593Smuzhiyun		led6 {
95*4882a593Smuzhiyun			gpios = <&pfc 288 GPIO_ACTIVE_HIGH>;
96*4882a593Smuzhiyun			label = "BBRESETOUT";
97*4882a593Smuzhiyun		};
98*4882a593Smuzhiyun	};
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun	keyboard {
101*4882a593Smuzhiyun		compatible = "gpio-keys";
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun		pinctrl-names = "default";
104*4882a593Smuzhiyun		pinctrl-0 = <&keyboard_pins>;
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun		zero-key {
107*4882a593Smuzhiyun			gpios = <&pfc 324 GPIO_ACTIVE_LOW>;
108*4882a593Smuzhiyun			linux,code = <KEY_0>;
109*4882a593Smuzhiyun			label = "S16";
110*4882a593Smuzhiyun			wakeup-source;
111*4882a593Smuzhiyun		};
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun		menu-key {
114*4882a593Smuzhiyun			gpios = <&pfc 325 GPIO_ACTIVE_LOW>;
115*4882a593Smuzhiyun			linux,code = <KEY_MENU>;
116*4882a593Smuzhiyun			label = "S17";
117*4882a593Smuzhiyun		};
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun		home-key {
120*4882a593Smuzhiyun			gpios = <&pfc 326 GPIO_ACTIVE_LOW>;
121*4882a593Smuzhiyun			linux,code = <KEY_HOME>;
122*4882a593Smuzhiyun			label = "S18";
123*4882a593Smuzhiyun		};
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun		back-key {
126*4882a593Smuzhiyun			gpios = <&pfc 327 GPIO_ACTIVE_LOW>;
127*4882a593Smuzhiyun			linux,code = <KEY_BACK>;
128*4882a593Smuzhiyun			label = "S19";
129*4882a593Smuzhiyun		};
130*4882a593Smuzhiyun
131*4882a593Smuzhiyun		volup-key {
132*4882a593Smuzhiyun			gpios = <&pfc 328 GPIO_ACTIVE_LOW>;
133*4882a593Smuzhiyun			linux,code = <KEY_VOLUMEUP>;
134*4882a593Smuzhiyun			label = "S20";
135*4882a593Smuzhiyun		};
136*4882a593Smuzhiyun
137*4882a593Smuzhiyun		voldown-key {
138*4882a593Smuzhiyun			gpios = <&pfc 329 GPIO_ACTIVE_LOW>;
139*4882a593Smuzhiyun			linux,code = <KEY_VOLUMEDOWN>;
140*4882a593Smuzhiyun			label = "S21";
141*4882a593Smuzhiyun		};
142*4882a593Smuzhiyun	};
143*4882a593Smuzhiyun};
144*4882a593Smuzhiyun
145*4882a593Smuzhiyun&i2c5 {
146*4882a593Smuzhiyun	status = "okay";
147*4882a593Smuzhiyun	vdd_dvfs: regulator@1b {
148*4882a593Smuzhiyun		compatible = "maxim,max8973";
149*4882a593Smuzhiyun		reg = <0x1b>;
150*4882a593Smuzhiyun
151*4882a593Smuzhiyun		regulator-min-microvolt = <935000>;
152*4882a593Smuzhiyun		regulator-max-microvolt = <1200000>;
153*4882a593Smuzhiyun		regulator-boot-on;
154*4882a593Smuzhiyun		regulator-always-on;
155*4882a593Smuzhiyun	};
156*4882a593Smuzhiyun};
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun&cpu0 {
159*4882a593Smuzhiyun	cpu0-supply = <&vdd_dvfs>;
160*4882a593Smuzhiyun	operating-points = <1950000 1115000>,	/* kHz  uV */
161*4882a593Smuzhiyun			   <1462500  995000>;
162*4882a593Smuzhiyun	voltage-tolerance = <1>; /* 1% */
163*4882a593Smuzhiyun};
164*4882a593Smuzhiyun
165*4882a593Smuzhiyun&bsc {
166*4882a593Smuzhiyun	flash@0 {
167*4882a593Smuzhiyun		compatible = "cfi-flash", "mtd-rom";
168*4882a593Smuzhiyun		reg = <0x0 0x08000000>;
169*4882a593Smuzhiyun		bank-width = <2>;
170*4882a593Smuzhiyun
171*4882a593Smuzhiyun		partitions {
172*4882a593Smuzhiyun			compatible = "fixed-partitions";
173*4882a593Smuzhiyun			#address-cells = <1>;
174*4882a593Smuzhiyun			#size-cells = <1>;
175*4882a593Smuzhiyun
176*4882a593Smuzhiyun			partition@0 {
177*4882a593Smuzhiyun				label = "uboot";
178*4882a593Smuzhiyun				reg = <0x00000000 0x00040000>;
179*4882a593Smuzhiyun				read-only;
180*4882a593Smuzhiyun			};
181*4882a593Smuzhiyun			partition@40000 {
182*4882a593Smuzhiyun				label = "uboot-env";
183*4882a593Smuzhiyun				reg = <0x00040000 0x00040000>;
184*4882a593Smuzhiyun				read-only;
185*4882a593Smuzhiyun			};
186*4882a593Smuzhiyun			partition@80000 {
187*4882a593Smuzhiyun				label = "flash";
188*4882a593Smuzhiyun				reg = <0x00080000 0x07f80000>;
189*4882a593Smuzhiyun			};
190*4882a593Smuzhiyun		};
191*4882a593Smuzhiyun	};
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun	ethernet@8000000 {
194*4882a593Smuzhiyun		compatible = "smsc,lan9220", "smsc,lan9115";
195*4882a593Smuzhiyun		reg = <0x08000000 0x1000>;
196*4882a593Smuzhiyun		interrupt-parent = <&irqc1>;
197*4882a593Smuzhiyun		interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
198*4882a593Smuzhiyun		phy-mode = "mii";
199*4882a593Smuzhiyun		reg-io-width = <4>;
200*4882a593Smuzhiyun		smsc,irq-active-high;
201*4882a593Smuzhiyun		smsc,irq-push-pull;
202*4882a593Smuzhiyun		vdd33a-supply = <&ape6evm_fixed_3v3>;
203*4882a593Smuzhiyun		vddvario-supply = <&ape6evm_fixed_1v8>;
204*4882a593Smuzhiyun	};
205*4882a593Smuzhiyun};
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun&cmt1 {
208*4882a593Smuzhiyun	status = "okay";
209*4882a593Smuzhiyun};
210*4882a593Smuzhiyun
211*4882a593Smuzhiyun&pfc {
212*4882a593Smuzhiyun	scifa0_pins: scifa0 {
213*4882a593Smuzhiyun		groups = "scifa0_data";
214*4882a593Smuzhiyun		function = "scifa0";
215*4882a593Smuzhiyun	};
216*4882a593Smuzhiyun
217*4882a593Smuzhiyun	mmc0_pins: mmc0 {
218*4882a593Smuzhiyun		groups = "mmc0_data8", "mmc0_ctrl";
219*4882a593Smuzhiyun		function = "mmc0";
220*4882a593Smuzhiyun	};
221*4882a593Smuzhiyun
222*4882a593Smuzhiyun	sdhi0_pins: sd0 {
223*4882a593Smuzhiyun		groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd";
224*4882a593Smuzhiyun		function = "sdhi0";
225*4882a593Smuzhiyun	};
226*4882a593Smuzhiyun
227*4882a593Smuzhiyun	sdhi1_pins: sd1 {
228*4882a593Smuzhiyun		groups = "sdhi1_data4", "sdhi1_ctrl";
229*4882a593Smuzhiyun		function = "sdhi1";
230*4882a593Smuzhiyun	};
231*4882a593Smuzhiyun
232*4882a593Smuzhiyun	keyboard_pins: keyboard {
233*4882a593Smuzhiyun		pins = "PORT324", "PORT325", "PORT326", "PORT327", "PORT328",
234*4882a593Smuzhiyun		       "PORT329";
235*4882a593Smuzhiyun		bias-pull-up;
236*4882a593Smuzhiyun	};
237*4882a593Smuzhiyun};
238*4882a593Smuzhiyun
239*4882a593Smuzhiyun&mmcif0 {
240*4882a593Smuzhiyun	vmmc-supply = <&vcc_mmc0>;
241*4882a593Smuzhiyun	bus-width = <8>;
242*4882a593Smuzhiyun	non-removable;
243*4882a593Smuzhiyun	pinctrl-names = "default";
244*4882a593Smuzhiyun	pinctrl-0 = <&mmc0_pins>;
245*4882a593Smuzhiyun	status = "okay";
246*4882a593Smuzhiyun};
247*4882a593Smuzhiyun
248*4882a593Smuzhiyun&scifa0 {
249*4882a593Smuzhiyun	pinctrl-0 = <&scifa0_pins>;
250*4882a593Smuzhiyun	pinctrl-names = "default";
251*4882a593Smuzhiyun
252*4882a593Smuzhiyun	status = "okay";
253*4882a593Smuzhiyun};
254*4882a593Smuzhiyun
255*4882a593Smuzhiyun&sdhi0 {
256*4882a593Smuzhiyun	vmmc-supply = <&vcc_sdhi0>;
257*4882a593Smuzhiyun	bus-width = <4>;
258*4882a593Smuzhiyun	disable-wp;
259*4882a593Smuzhiyun	pinctrl-names = "default";
260*4882a593Smuzhiyun	pinctrl-0 = <&sdhi0_pins>;
261*4882a593Smuzhiyun	status = "okay";
262*4882a593Smuzhiyun};
263*4882a593Smuzhiyun
264*4882a593Smuzhiyun&sdhi1 {
265*4882a593Smuzhiyun	vmmc-supply = <&ape6evm_fixed_3v3>;
266*4882a593Smuzhiyun	bus-width = <4>;
267*4882a593Smuzhiyun	broken-cd;
268*4882a593Smuzhiyun	disable-wp;
269*4882a593Smuzhiyun	pinctrl-names = "default";
270*4882a593Smuzhiyun	pinctrl-0 = <&sdhi1_pins>;
271*4882a593Smuzhiyun	status = "okay";
272*4882a593Smuzhiyun};
273