xref: /rk3399_rockchip-uboot/arch/arm/dts/rk3288-phycore-rdk.dts (revision 26ceaeee5f441ad10e873109a2284d252aa0d489)
1bafcf2dbSWadim Egorov/*
2bafcf2dbSWadim Egorov * Device tree file for Phytec PCM-947 carrier board
3bafcf2dbSWadim Egorov * Copyright (C) 2017 PHYTEC Messtechnik GmbH
4bafcf2dbSWadim Egorov * Author: Wadim Egorov <w.egorov@phytec.de>
5bafcf2dbSWadim Egorov *
6bafcf2dbSWadim Egorov * This file is dual-licensed: you can use it either under the terms
7bafcf2dbSWadim Egorov * of the GPL or the X11 license, at your option. Note that this dual
8bafcf2dbSWadim Egorov * licensing only applies to this file, and not this project as a
9bafcf2dbSWadim Egorov * whole.
10bafcf2dbSWadim Egorov *
11bafcf2dbSWadim Egorov *  a) This file is free software; you can redistribute it and/or
12bafcf2dbSWadim Egorov *     modify it under the terms of the GNU General Public License as
13bafcf2dbSWadim Egorov *     published by the Free Software Foundation; either version 2 of the
14bafcf2dbSWadim Egorov *     License, or (at your option) any later version.
15bafcf2dbSWadim Egorov *
16bafcf2dbSWadim Egorov *     This file is distributed in the hope that it will be useful,
17bafcf2dbSWadim Egorov *     but WITHOUT ANY WARRANTY; without even the implied warranty of
18bafcf2dbSWadim Egorov *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19bafcf2dbSWadim Egorov *     GNU General Public License for more details.
20bafcf2dbSWadim Egorov *
21bafcf2dbSWadim Egorov * Or, alternatively,
22bafcf2dbSWadim Egorov *
23bafcf2dbSWadim Egorov *  b) Permission is hereby granted, free of charge, to any person
24bafcf2dbSWadim Egorov *     obtaining a copy of this software and associated documentation
25bafcf2dbSWadim Egorov *     files (the "Software"), to deal in the Software without
26bafcf2dbSWadim Egorov *     restriction, including without limitation the rights to use,
27bafcf2dbSWadim Egorov *     copy, modify, merge, publish, distribute, sublicense, and/or
28bafcf2dbSWadim Egorov *     sell copies of the Software, and to permit persons to whom the
29bafcf2dbSWadim Egorov *     Software is furnished to do so, subject to the following
30bafcf2dbSWadim Egorov *     conditions:
31bafcf2dbSWadim Egorov *
32bafcf2dbSWadim Egorov *     The above copyright notice and this permission notice shall be
33bafcf2dbSWadim Egorov *     included in all copies or substantial portions of the Software.
34bafcf2dbSWadim Egorov *
35bafcf2dbSWadim Egorov *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36bafcf2dbSWadim Egorov *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37bafcf2dbSWadim Egorov *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38bafcf2dbSWadim Egorov *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39bafcf2dbSWadim Egorov *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40bafcf2dbSWadim Egorov *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41bafcf2dbSWadim Egorov *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42bafcf2dbSWadim Egorov *     OTHER DEALINGS IN THE SOFTWARE.
43bafcf2dbSWadim Egorov */
44bafcf2dbSWadim Egorov
45bafcf2dbSWadim Egorov/dts-v1/;
46bafcf2dbSWadim Egorov
47bafcf2dbSWadim Egorov#include <dt-bindings/input/input.h>
48bafcf2dbSWadim Egorov#include "rk3288-phycore-som.dtsi"
49bafcf2dbSWadim Egorov
50bafcf2dbSWadim Egorov/ {
51bafcf2dbSWadim Egorov	model = "Phytec RK3288 PCM-947";
52bafcf2dbSWadim Egorov	compatible = "phytec,rk3288-pcm-947", "phytec,rk3288-phycore-som", "rockchip,rk3288";
53bafcf2dbSWadim Egorov
54bafcf2dbSWadim Egorov	chosen {
55bafcf2dbSWadim Egorov		stdout-path = &uart2;
56*26ceaeeeSKever Yang		u-boot,spl-boot-order = &emmc;
57bafcf2dbSWadim Egorov	};
58bafcf2dbSWadim Egorov
59bafcf2dbSWadim Egorov	user_buttons: user-buttons {
60bafcf2dbSWadim Egorov		compatible = "gpio-keys";
61bafcf2dbSWadim Egorov		pinctrl-names = "default";
62bafcf2dbSWadim Egorov		pinctrl-0 = <&user_button_pins>;
63bafcf2dbSWadim Egorov
64bafcf2dbSWadim Egorov		button@0 {
65bafcf2dbSWadim Egorov			label = "home";
66bafcf2dbSWadim Egorov			linux,code = <KEY_HOME>;
67bafcf2dbSWadim Egorov			gpios = <&gpio8 0 GPIO_ACTIVE_HIGH>;
68bafcf2dbSWadim Egorov			wakeup-source;
69bafcf2dbSWadim Egorov		};
70bafcf2dbSWadim Egorov
71bafcf2dbSWadim Egorov		button@1 {
72bafcf2dbSWadim Egorov			label = "menu";
73bafcf2dbSWadim Egorov			linux,code = <KEY_MENU>;
74bafcf2dbSWadim Egorov			gpios = <&gpio8 3 GPIO_ACTIVE_HIGH>;
75bafcf2dbSWadim Egorov			wakeup-source;
76bafcf2dbSWadim Egorov		};
77bafcf2dbSWadim Egorov	};
78bafcf2dbSWadim Egorov
79bafcf2dbSWadim Egorov	vcc_host0_5v: usb-host0-regulator {
80bafcf2dbSWadim Egorov		compatible = "regulator-fixed";
81bafcf2dbSWadim Egorov		gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>;
82bafcf2dbSWadim Egorov		pinctrl-names = "default";
83bafcf2dbSWadim Egorov		pinctrl-0 = <&host0_vbus_drv>;
84bafcf2dbSWadim Egorov		regulator-name = "vcc_host0_5v";
85bafcf2dbSWadim Egorov		regulator-min-microvolt = <5000000>;
86bafcf2dbSWadim Egorov		regulator-max-microvolt = <5000000>;
87bafcf2dbSWadim Egorov		regulator-always-on;
88bafcf2dbSWadim Egorov		vin-supply = <&vdd_in_otg_out>;
89bafcf2dbSWadim Egorov	};
90bafcf2dbSWadim Egorov
91bafcf2dbSWadim Egorov	vcc_host1_5v: usb-host1-regulator {
92bafcf2dbSWadim Egorov		compatible = "regulator-fixed";
93bafcf2dbSWadim Egorov		gpio = <&gpio2 0 GPIO_ACTIVE_HIGH>;
94bafcf2dbSWadim Egorov		pinctrl-names = "default";
95bafcf2dbSWadim Egorov		pinctrl-0 = <&host1_vbus_drv>;
96bafcf2dbSWadim Egorov		regulator-name = "vcc_host1_5v";
97bafcf2dbSWadim Egorov		regulator-min-microvolt = <5000000>;
98bafcf2dbSWadim Egorov		regulator-max-microvolt = <5000000>;
99bafcf2dbSWadim Egorov		regulator-always-on;
100bafcf2dbSWadim Egorov		vin-supply = <&vdd_in_otg_out>;
101bafcf2dbSWadim Egorov	};
102bafcf2dbSWadim Egorov
103bafcf2dbSWadim Egorov	vcc_otg_5v: usb-otg-regulator {
104bafcf2dbSWadim Egorov		compatible = "regulator-fixed";
105bafcf2dbSWadim Egorov		gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>;
106bafcf2dbSWadim Egorov		pinctrl-names = "default";
107bafcf2dbSWadim Egorov		pinctrl-0 = <&otg_vbus_drv>;
108bafcf2dbSWadim Egorov		regulator-name = "vcc_otg_5v";
109bafcf2dbSWadim Egorov		regulator-min-microvolt = <5000000>;
110bafcf2dbSWadim Egorov		regulator-max-microvolt = <5000000>;
111bafcf2dbSWadim Egorov		regulator-always-on;
112bafcf2dbSWadim Egorov		vin-supply = <&vdd_in_otg_out>;
113bafcf2dbSWadim Egorov	};
114bafcf2dbSWadim Egorov};
115bafcf2dbSWadim Egorov
116bafcf2dbSWadim Egorov&dmc {
117bafcf2dbSWadim Egorov	rockchip,num-channels = <2>;
118bafcf2dbSWadim Egorov	rockchip,pctl-timing = <0x29a 0xc8 0x1f8 0x42 0x4e 0x4 0xea 0xa
119bafcf2dbSWadim Egorov		0x5 0x0 0xa 0x7 0x19 0x24 0xa 0x7
120bafcf2dbSWadim Egorov		0x5 0xa 0x5 0x200 0x5 0x10 0x40 0x0
121bafcf2dbSWadim Egorov		0x1 0x7 0x7 0x4 0xc 0x43 0x100 0x0
122bafcf2dbSWadim Egorov		0x5 0x0>;
123bafcf2dbSWadim Egorov	rockchip,phy-timing = <0x48f9aab4 0xea0910 0x1002c200
124bafcf2dbSWadim Egorov		0xa60 0x40 0x10 0x0>;
125bafcf2dbSWadim Egorov	rockchip,sdram-channel = /bits/ 8 <0x1 0xa 0x3 0x2 0x1 0x0 0xe 0xe>;
126bafcf2dbSWadim Egorov	rockchip,sdram-params = <0x30B25564 0x627 3 666000000 3 5 1>;
127bafcf2dbSWadim Egorov};
128bafcf2dbSWadim Egorov
129bafcf2dbSWadim Egorov&gmac {
130bafcf2dbSWadim Egorov	status = "okay";
131bafcf2dbSWadim Egorov};
132bafcf2dbSWadim Egorov
133bafcf2dbSWadim Egorov&hdmi {
134bafcf2dbSWadim Egorov	status = "okay";
135bafcf2dbSWadim Egorov};
136bafcf2dbSWadim Egorov
137bafcf2dbSWadim Egorov&i2c1 {
138bafcf2dbSWadim Egorov	status = "okay";
139bafcf2dbSWadim Egorov
140bafcf2dbSWadim Egorov	touchscreen@44 {
141bafcf2dbSWadim Egorov		compatible = "st,stmpe811";
142bafcf2dbSWadim Egorov		reg = <0x44>;
143bafcf2dbSWadim Egorov	};
144bafcf2dbSWadim Egorov
145bafcf2dbSWadim Egorov	adc@64 {
146bafcf2dbSWadim Egorov		compatible = "maxim,max1037";
147bafcf2dbSWadim Egorov		reg = <0x64>;
148bafcf2dbSWadim Egorov	};
149bafcf2dbSWadim Egorov
150bafcf2dbSWadim Egorov	i2c_rtc: rtc@68 {
151bafcf2dbSWadim Egorov		compatible = "rv4162";
152bafcf2dbSWadim Egorov		reg = <0x68>;
153bafcf2dbSWadim Egorov		pinctrl-names = "default";
154bafcf2dbSWadim Egorov		pinctrl-0 = <&i2c_rtc_int>;
155bafcf2dbSWadim Egorov		interrupt-parent = <&gpio5>;
156bafcf2dbSWadim Egorov		interrupts = <10 0>;
157bafcf2dbSWadim Egorov	};
158bafcf2dbSWadim Egorov};
159bafcf2dbSWadim Egorov
160bafcf2dbSWadim Egorov&i2c3 {
161bafcf2dbSWadim Egorov	status = "okay";
162bafcf2dbSWadim Egorov
163bafcf2dbSWadim Egorov	i2c_eeprom_cb: eeprom@51 {
164bafcf2dbSWadim Egorov		compatible = "atmel,24c32";
165bafcf2dbSWadim Egorov		reg = <0x51>;
166bafcf2dbSWadim Egorov		pagesize = <32>;
167bafcf2dbSWadim Egorov	};
168bafcf2dbSWadim Egorov};
169bafcf2dbSWadim Egorov
170bafcf2dbSWadim Egorov&i2c4 {
171bafcf2dbSWadim Egorov	status = "okay";
172bafcf2dbSWadim Egorov};
173bafcf2dbSWadim Egorov
174bafcf2dbSWadim Egorov&i2c5 {
175bafcf2dbSWadim Egorov	status = "okay";
176bafcf2dbSWadim Egorov};
177bafcf2dbSWadim Egorov
178bafcf2dbSWadim Egorov&pinctrl {
179bafcf2dbSWadim Egorov	u-boot,dm-pre-reloc;
180bafcf2dbSWadim Egorov
181bafcf2dbSWadim Egorov	pcfg_pull_up_drv_12ma: pcfg-pull-up-drv-12ma {
182bafcf2dbSWadim Egorov		bias-pull-up;
183bafcf2dbSWadim Egorov		drive-strength = <12>;
184bafcf2dbSWadim Egorov	};
185bafcf2dbSWadim Egorov
186bafcf2dbSWadim Egorov	buttons {
187bafcf2dbSWadim Egorov		user_button_pins: user-button-pins {
188bafcf2dbSWadim Egorov			/* button 1 */
189bafcf2dbSWadim Egorov			rockchip,pins = <8 3 RK_FUNC_GPIO &pcfg_pull_up>,
190bafcf2dbSWadim Egorov			/* button 2 */
191bafcf2dbSWadim Egorov					<8 0 RK_FUNC_GPIO &pcfg_pull_up>;
192bafcf2dbSWadim Egorov		};
193bafcf2dbSWadim Egorov	};
194bafcf2dbSWadim Egorov
195bafcf2dbSWadim Egorov	rv4162 {
196bafcf2dbSWadim Egorov		i2c_rtc_int: i2c-rtc-int {
197bafcf2dbSWadim Egorov			rockchip,pins = <5 10 RK_FUNC_GPIO &pcfg_pull_up>;
198bafcf2dbSWadim Egorov		};
199bafcf2dbSWadim Egorov	};
200bafcf2dbSWadim Egorov
201bafcf2dbSWadim Egorov	sdmmc {
202bafcf2dbSWadim Egorov		/*
203bafcf2dbSWadim Egorov		 * Default drive strength isn't enough to achieve even
204bafcf2dbSWadim Egorov		 * high-speed mode on pcm-947 board so bump up to 12 mA.
205bafcf2dbSWadim Egorov		 */
206bafcf2dbSWadim Egorov		sdmmc_bus4: sdmmc-bus4 {
207bafcf2dbSWadim Egorov			rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
208bafcf2dbSWadim Egorov					<6 17 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
209bafcf2dbSWadim Egorov					<6 18 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
210bafcf2dbSWadim Egorov					<6 19 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
211bafcf2dbSWadim Egorov		};
212bafcf2dbSWadim Egorov
213bafcf2dbSWadim Egorov		sdmmc_clk: sdmmc-clk {
214bafcf2dbSWadim Egorov			rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_12ma>;
215bafcf2dbSWadim Egorov		};
216bafcf2dbSWadim Egorov
217bafcf2dbSWadim Egorov		sdmmc_cmd: sdmmc-cmd {
218bafcf2dbSWadim Egorov			rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
219bafcf2dbSWadim Egorov		};
220bafcf2dbSWadim Egorov
221bafcf2dbSWadim Egorov		sdmmc_pwr: sdmmc-pwr {
222bafcf2dbSWadim Egorov			rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
223bafcf2dbSWadim Egorov		};
224bafcf2dbSWadim Egorov	};
225bafcf2dbSWadim Egorov
226bafcf2dbSWadim Egorov	touchscreen {
227bafcf2dbSWadim Egorov		ts_irq_pin: ts-irq-pin {
228bafcf2dbSWadim Egorov			rockchip,pins = <5 15 RK_FUNC_GPIO &pcfg_pull_none>;
229bafcf2dbSWadim Egorov		};
230bafcf2dbSWadim Egorov	};
231bafcf2dbSWadim Egorov
232bafcf2dbSWadim Egorov	usb_host {
233bafcf2dbSWadim Egorov		host0_vbus_drv: host0-vbus-drv {
234bafcf2dbSWadim Egorov			rockchip,pins = <2 13 RK_FUNC_GPIO &pcfg_pull_none>;
235bafcf2dbSWadim Egorov		};
236bafcf2dbSWadim Egorov
237bafcf2dbSWadim Egorov		host1_vbus_drv: host1-vbus-drv {
238bafcf2dbSWadim Egorov			rockchip,pins = <2 0 RK_FUNC_GPIO &pcfg_pull_none>;
239bafcf2dbSWadim Egorov		};
240bafcf2dbSWadim Egorov	};
241bafcf2dbSWadim Egorov
242bafcf2dbSWadim Egorov	usb_otg {
243bafcf2dbSWadim Egorov		otg_vbus_drv: otg-vbus-drv {
244bafcf2dbSWadim Egorov			rockchip,pins = <2 12 RK_FUNC_GPIO &pcfg_pull_none>;
245bafcf2dbSWadim Egorov		};
246bafcf2dbSWadim Egorov	};
247bafcf2dbSWadim Egorov};
248bafcf2dbSWadim Egorov
249bafcf2dbSWadim Egorov&sdmmc {
250bafcf2dbSWadim Egorov	u-boot,dm-pre-reloc;
251bafcf2dbSWadim Egorov
252bafcf2dbSWadim Egorov	bus-width = <4>;
253bafcf2dbSWadim Egorov	cap-mmc-highspeed;
254bafcf2dbSWadim Egorov	cap-sd-highspeed;
255bafcf2dbSWadim Egorov	card-detect-delay = <200>;
256bafcf2dbSWadim Egorov	disable-wp;
257bafcf2dbSWadim Egorov	num-slots = <1>;
258bafcf2dbSWadim Egorov	pinctrl-names = "default";
259bafcf2dbSWadim Egorov	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
260bafcf2dbSWadim Egorov	vmmc-supply = <&vdd_io_sd>;
261bafcf2dbSWadim Egorov	vqmmc-supply = <&vdd_io_sd>;
262bafcf2dbSWadim Egorov	status = "okay";
263bafcf2dbSWadim Egorov};
264bafcf2dbSWadim Egorov
265bafcf2dbSWadim Egorov&uart0 {
266bafcf2dbSWadim Egorov	pinctrl-names = "default";
267bafcf2dbSWadim Egorov	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
268bafcf2dbSWadim Egorov	status = "okay";
269bafcf2dbSWadim Egorov};
270bafcf2dbSWadim Egorov
271bafcf2dbSWadim Egorov&uart2 {
272bafcf2dbSWadim Egorov	u-boot,dm-pre-reloc;
273bafcf2dbSWadim Egorov	status = "okay";
274bafcf2dbSWadim Egorov};
275bafcf2dbSWadim Egorov
276bafcf2dbSWadim Egorov&usbphy {
277bafcf2dbSWadim Egorov	status = "okay";
278bafcf2dbSWadim Egorov};
279bafcf2dbSWadim Egorov
280bafcf2dbSWadim Egorov&usb_host0_ehci {
281bafcf2dbSWadim Egorov	status = "okay";
282bafcf2dbSWadim Egorov};
283bafcf2dbSWadim Egorov
284bafcf2dbSWadim Egorov&usb_host1 {
285bafcf2dbSWadim Egorov	status = "okay";
286bafcf2dbSWadim Egorov};
287bafcf2dbSWadim Egorov
288bafcf2dbSWadim Egorov&usb_otg {
289bafcf2dbSWadim Egorov	status = "okay";
290bafcf2dbSWadim Egorov};
291