• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
4 */
5
6/dts-v1/;
7
8#include "rk3288.dtsi"
9#include <dt-bindings/input/input.h>
10
11/ {
12	model = "Rockchip RK3288 Tinker Board";
13	compatible = "asus,rk3288-tinker", "rockchip,rk3288";
14
15	chosen {
16		stdout-path = "serial2:115200n8";
17	};
18
19	memory {
20		reg = <0x0 0x0 0x0 0x80000000>;
21		device_type = "memory";
22	};
23
24	ext_gmac: external-gmac-clock {
25		compatible = "fixed-clock";
26		#clock-cells = <0>;
27		clock-frequency = <125000000>;
28		clock-output-names = "ext_gmac";
29	};
30
31	gpio-keys {
32		compatible = "gpio-keys";
33		#address-cells = <1>;
34		#size-cells = <0>;
35		autorepeat;
36
37		pinctrl-names = "default";
38		pinctrl-0 = <&pwrbtn>;
39
40		button@0 {
41			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
42			linux,code = <KEY_POWER>;
43			label = "GPIO Key Power";
44			linux,input-type = <1>;
45			wakeup-source;
46			debounce-interval = <100>;
47		};
48	};
49
50	gpio-leds {
51		compatible = "gpio-leds";
52
53		act-led {
54			gpios=<&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>;
55			linux,default-trigger="mmc0";
56		};
57
58		heartbeat-led {
59			gpios=<&gpio1 RK_PD1 GPIO_ACTIVE_HIGH>;
60			linux,default-trigger="heartbeat";
61		};
62
63		pwr-led {
64			gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>;
65			linux,default-trigger = "default-on";
66		};
67	};
68
69	sound {
70		compatible = "simple-audio-card";
71		simple-audio-card,format = "i2s";
72		simple-audio-card,name = "rockchip,tinker-codec";
73		simple-audio-card,mclk-fs = <512>;
74
75		simple-audio-card,codec {
76			sound-dai = <&hdmi>;
77		};
78
79		simple-audio-card,cpu {
80			sound-dai = <&i2s>;
81		};
82	};
83
84	vcc_sys: vsys-regulator {
85		compatible = "regulator-fixed";
86		regulator-name = "vcc_sys";
87		regulator-min-microvolt = <5000000>;
88		regulator-max-microvolt = <5000000>;
89		regulator-always-on;
90		regulator-boot-on;
91	};
92
93	vcc_sd: sdmmc-regulator {
94		compatible = "regulator-fixed";
95		gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
96		pinctrl-names = "default";
97		pinctrl-0 = <&sdmmc_pwr>;
98		regulator-name = "vcc_sd";
99		regulator-min-microvolt = <3300000>;
100		regulator-max-microvolt = <3300000>;
101		startup-delay-us = <100000>;
102		vin-supply = <&vcc_io>;
103	};
104};
105
106&cpu0 {
107	cpu0-supply = <&vdd_cpu>;
108};
109
110&gmac {
111	assigned-clocks = <&cru SCLK_MAC>;
112	assigned-clock-parents = <&ext_gmac>;
113	clock_in_out = "input";
114	phy-mode = "rgmii";
115	phy-supply = <&vcc33_lan>;
116	pinctrl-names = "default";
117	pinctrl-0 = <&rgmii_pins>;
118	snps,reset-gpio = <&gpio4 7 0>;
119	snps,reset-active-low;
120	snps,reset-delays-us = <0 10000 1000000>;
121	tx_delay = <0x30>;
122	rx_delay = <0x10>;
123	status = "ok";
124};
125
126&gpu {
127	mali-supply = <&vdd_gpu>;
128	status = "okay";
129};
130
131&hdmi {
132	ddc-i2c-bus = <&i2c5>;
133	status = "okay";
134};
135
136&i2c0 {
137	clock-frequency = <400000>;
138	status = "okay";
139
140	rk808: pmic@1b {
141		compatible = "rockchip,rk808";
142		reg = <0x1b>;
143		interrupt-parent = <&gpio0>;
144		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
145		#clock-cells = <1>;
146		clock-output-names = "xin32k", "rk808-clkout2";
147		dvs-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>,
148				<&gpio0 12 GPIO_ACTIVE_HIGH>;
149		pinctrl-names = "default";
150		pinctrl-0 = <&pmic_int &global_pwroff &dvs_1 &dvs_2>;
151		rockchip,system-power-controller;
152		wakeup-source;
153
154		vcc1-supply = <&vcc_sys>;
155		vcc2-supply = <&vcc_sys>;
156		vcc3-supply = <&vcc_sys>;
157		vcc4-supply = <&vcc_sys>;
158		vcc6-supply = <&vcc_sys>;
159		vcc7-supply = <&vcc_sys>;
160		vcc8-supply = <&vcc_io>;
161		vcc9-supply = <&vcc_io>;
162		vcc10-supply = <&vcc_io>;
163		vcc11-supply = <&vcc_sys>;
164		vcc12-supply = <&vcc_io>;
165		vddio-supply = <&vcc_io>;
166
167		regulators {
168			vdd_cpu: DCDC_REG1 {
169				regulator-always-on;
170				regulator-boot-on;
171				regulator-min-microvolt = <750000>;
172				regulator-max-microvolt = <1350000>;
173				regulator-name = "vdd_arm";
174				regulator-ramp-delay = <6000>;
175				regulator-state-mem {
176					regulator-off-in-suspend;
177				};
178			};
179
180			vdd_gpu: DCDC_REG2 {
181				regulator-always-on;
182				regulator-boot-on;
183				regulator-min-microvolt = <850000>;
184				regulator-max-microvolt = <1250000>;
185				regulator-name = "vdd_gpu";
186				regulator-ramp-delay = <6000>;
187				regulator-state-mem {
188					regulator-on-in-suspend;
189					regulator-suspend-microvolt = <1000000>;
190				};
191			};
192
193			vcc_ddr: DCDC_REG3 {
194				regulator-always-on;
195				regulator-boot-on;
196				regulator-name = "vcc_ddr";
197				regulator-state-mem {
198					regulator-on-in-suspend;
199				};
200			};
201
202			vcc_io: DCDC_REG4 {
203				regulator-always-on;
204				regulator-boot-on;
205				regulator-min-microvolt = <3300000>;
206				regulator-max-microvolt = <3300000>;
207				regulator-name = "vcc_io";
208				regulator-state-mem {
209					regulator-on-in-suspend;
210					regulator-suspend-microvolt = <3300000>;
211				};
212			};
213
214			vcc18_ldo1: LDO_REG1 {
215				regulator-always-on;
216				regulator-boot-on;
217				regulator-min-microvolt = <1800000>;
218				regulator-max-microvolt = <1800000>;
219				regulator-name = "vcc18_ldo1";
220				regulator-state-mem {
221					regulator-on-in-suspend;
222					regulator-suspend-microvolt = <1800000>;
223				};
224			};
225
226			vcc33_mipi: LDO_REG2 {
227				regulator-always-on;
228				regulator-boot-on;
229				regulator-min-microvolt = <3300000>;
230				regulator-max-microvolt = <3300000>;
231				regulator-name = "vcc33_mipi";
232				regulator-state-mem {
233					regulator-off-in-suspend;
234				};
235			};
236
237			vdd_10: LDO_REG3 {
238				regulator-always-on;
239				regulator-boot-on;
240				regulator-min-microvolt = <1000000>;
241				regulator-max-microvolt = <1000000>;
242				regulator-name = "vdd_10";
243				regulator-state-mem {
244					regulator-on-in-suspend;
245					regulator-suspend-microvolt = <1000000>;
246				};
247			};
248
249			vcc18_codec: LDO_REG4 {
250				regulator-always-on;
251				regulator-boot-on;
252				regulator-min-microvolt = <1800000>;
253				regulator-max-microvolt = <1800000>;
254				regulator-name = "vcc18_codec";
255				regulator-state-mem {
256					regulator-on-in-suspend;
257					regulator-suspend-microvolt = <1800000>;
258				};
259			};
260
261			vccio_sd: LDO_REG5 {
262				regulator-min-microvolt = <1800000>;
263				regulator-max-microvolt = <3300000>;
264				regulator-name = "vccio_sd";
265				regulator-state-mem {
266					regulator-on-in-suspend;
267					regulator-suspend-microvolt = <3300000>;
268				};
269			};
270
271			vdd10_lcd: LDO_REG6 {
272				regulator-always-on;
273				regulator-boot-on;
274				regulator-min-microvolt = <1000000>;
275				regulator-max-microvolt = <1000000>;
276				regulator-name = "vdd10_lcd";
277				regulator-state-mem {
278					regulator-on-in-suspend;
279					regulator-suspend-microvolt = <1000000>;
280				};
281			};
282
283			vcc_18: LDO_REG7 {
284				regulator-always-on;
285				regulator-boot-on;
286				regulator-min-microvolt = <1800000>;
287				regulator-max-microvolt = <1800000>;
288				regulator-name = "vcc_18";
289				regulator-state-mem {
290					regulator-on-in-suspend;
291					regulator-suspend-microvolt = <1800000>;
292				};
293			};
294
295			vcc18_lcd: LDO_REG8 {
296				regulator-always-on;
297				regulator-boot-on;
298				regulator-min-microvolt = <1800000>;
299				regulator-max-microvolt = <1800000>;
300				regulator-name = "vcc18_lcd";
301				regulator-state-mem {
302					regulator-on-in-suspend;
303					regulator-suspend-microvolt = <1800000>;
304				};
305			};
306
307			vcc33_sd: SWITCH_REG1 {
308				regulator-always-on;
309				regulator-boot-on;
310				regulator-name = "vcc33_sd";
311				regulator-state-mem {
312					regulator-on-in-suspend;
313				};
314			};
315
316			vcc33_lan: SWITCH_REG2 {
317				regulator-always-on;
318				regulator-boot-on;
319				regulator-name = "vcc33_lan";
320				regulator-state-mem {
321					regulator-on-in-suspend;
322				};
323			};
324		};
325	};
326};
327
328&i2c2 {
329	status = "okay";
330};
331
332&i2c5 {
333	status = "okay";
334};
335
336&i2s {
337	#sound-dai-cells = <0>;
338	status = "okay";
339};
340
341&io_domains {
342	status = "okay";
343
344	sdcard-supply = <&vccio_sd>;
345};
346
347&pinctrl {
348	pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
349		drive-strength = <8>;
350	};
351
352	pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
353		bias-pull-up;
354		drive-strength = <8>;
355	};
356
357	backlight {
358		bl_en: bl-en {
359			rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_pull_none>;
360		};
361	};
362
363	buttons {
364		pwrbtn: pwrbtn {
365			rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
366		};
367	};
368
369	eth_phy {
370		eth_phy_pwr: eth-phy-pwr {
371			rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_none>;
372		};
373	};
374
375	pmic {
376		pmic_int: pmic-int {
377			rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO \
378					&pcfg_pull_up>;
379		};
380
381		dvs_1: dvs-1 {
382			rockchip,pins = <RK_GPIO0 11 RK_FUNC_GPIO \
383					&pcfg_pull_down>;
384		};
385
386		dvs_2: dvs-2 {
387			rockchip,pins = <RK_GPIO0 12 RK_FUNC_GPIO \
388					&pcfg_pull_down>;
389		};
390	};
391
392	sdmmc {
393		sdmmc_bus4: sdmmc-bus4 {
394			rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
395					<6 17 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
396					<6 18 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
397					<6 19 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
398		};
399
400		sdmmc_clk: sdmmc-clk {
401			rockchip,pins = <6 20 RK_FUNC_1 \
402					&pcfg_pull_none_drv_8ma>;
403		};
404
405		sdmmc_cmd: sdmmc-cmd {
406			rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
407		};
408
409		sdmmc_pwr: sdmmc-pwr {
410			rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
411		};
412	};
413
414	usb {
415		host_vbus_drv: host-vbus-drv {
416			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
417		};
418
419		pwr_3g: pwr-3g {
420			rockchip,pins = <7 8 RK_FUNC_GPIO &pcfg_pull_none>;
421		};
422	};
423};
424
425&pwm0 {
426	status = "okay";
427};
428
429&saradc {
430	vref-supply = <&vcc18_ldo1>;
431	status ="okay";
432};
433
434&sdmmc {
435	bus-width = <4>;
436	cap-mmc-highspeed;
437	cap-sd-highspeed;
438	card-detect-delay = <200>;
439	disable-wp;			/* wp not hooked up */
440	pinctrl-names = "default";
441	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
442	status = "okay";
443	vmmc-supply = <&vcc33_sd>;
444	vqmmc-supply = <&vccio_sd>;
445};
446
447&tsadc {
448	rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
449	rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
450	status = "okay";
451};
452
453&uart0 {
454	status = "okay";
455};
456
457&uart1 {
458	status = "okay";
459};
460
461&uart2 {
462	status = "okay";
463};
464
465&uart3 {
466	status = "okay";
467};
468
469&uart4 {
470	status = "okay";
471};
472
473&usbphy {
474	status = "okay";
475};
476
477&usb_host0_ehci {
478	status = "okay";
479};
480
481&usb_host1 {
482	status = "okay";
483};
484
485&usb_otg {
486	status= "okay";
487};
488
489&vopb {
490	status = "okay";
491};
492
493&vopb_mmu {
494	status = "okay";
495};
496
497&vopl {
498	status = "okay";
499};
500
501&vopl_mmu {
502	status = "okay";
503};
504
505&wdt {
506	status = "okay";
507};
508