xref: /rk3399_rockchip-uboot/arch/arm/dts/rk3399-evb.dts (revision c637f2321bc4ce8e021571daba5bf82a677b865f)
1777c834fSKever Yang/*
2777c834fSKever Yang * (C) Copyright 2016 Rockchip Electronics Co., Ltd
3777c834fSKever Yang *
4777c834fSKever Yang * SPDX-License-Identifier:     GPL-2.0+
5777c834fSKever Yang */
6777c834fSKever Yang
7777c834fSKever Yang/dts-v1/;
8777c834fSKever Yang#include <dt-bindings/pwm/pwm.h>
9fd9884e2SKever Yang#include <dt-bindings/pinctrl/rockchip.h>
10777c834fSKever Yang#include "rk3399.dtsi"
11a82426e0SKever Yang#include "rk3399-sdram-lpddr3-4GB-1600.dtsi"
1248b6ef28SKever Yang#include "rk3399-u-boot.dtsi"
130313794bSKever Yang#include <linux/media-bus-format.h>
1448dac9b0SJoseph Chen#include <dt-bindings/input/input.h>
15777c834fSKever Yang
16777c834fSKever Yang/ {
17777c834fSKever Yang	model = "Rockchip RK3399 Evaluation Board";
18777c834fSKever Yang	compatible = "rockchip,rk3399-evb", "rockchip,rk3399",
19777c834fSKever Yang		     "google,rk3399evb-rev2";
20777c834fSKever Yang
2195351b7aSJoseph Chen	/* RK3399 evb board */
2295351b7aSJoseph Chen	rk_key0 {
2348dac9b0SJoseph Chen		u-boot,dm-pre-reloc;
2448dac9b0SJoseph Chen		compatible = "rockchip,key";
2548dac9b0SJoseph Chen		status = "okay";
2648dac9b0SJoseph Chen		io-channels = <&saradc 1>;
2748dac9b0SJoseph Chen
28de573281SJoseph Chen		vol-up-key0 {
2948dac9b0SJoseph Chen			u-boot,dm-pre-reloc;
3048dac9b0SJoseph Chen			linux,code = <KEY_VOLUMEUP>;
3148dac9b0SJoseph Chen			label = "volume up";
3248dac9b0SJoseph Chen			rockchip,adc_value = <1>;
3348dac9b0SJoseph Chen		};
34777c834fSKever Yang	};
35777c834fSKever Yang
3695351b7aSJoseph Chen	/* RK3399PRO evb board */
3795351b7aSJoseph Chen	rk_key1 {
3895351b7aSJoseph Chen		u-boot,dm-pre-reloc;
3995351b7aSJoseph Chen		compatible = "rockchip,key";
4095351b7aSJoseph Chen		status = "okay";
4195351b7aSJoseph Chen		io-channels = <&saradc 2>;
4295351b7aSJoseph Chen
43de573281SJoseph Chen		vol-up-key1 {
4495351b7aSJoseph Chen			u-boot,dm-pre-reloc;
4595351b7aSJoseph Chen			linux,code = <KEY_VOLUMEUP>;
4695351b7aSJoseph Chen			label = "volume up";
4795351b7aSJoseph Chen			rockchip,adc_value = <10>;
4895351b7aSJoseph Chen		};
4995351b7aSJoseph Chen	};
5095351b7aSJoseph Chen
51777c834fSKever Yang	vdd_center: vdd-center {
52777c834fSKever Yang		compatible = "pwm-regulator";
5326b1edf4SKever Yang		pwms = <&pwm3 0 25000 1>;
54777c834fSKever Yang		regulator-name = "vdd_center";
55777c834fSKever Yang		regulator-min-microvolt = <800000>;
56777c834fSKever Yang		regulator-max-microvolt = <1400000>;
57c553de90SKever Yang		regulator-init-microvolt = <950000>;
58777c834fSKever Yang		regulator-always-on;
59777c834fSKever Yang		regulator-boot-on;
60777c834fSKever Yang		status = "okay";
61777c834fSKever Yang	};
62777c834fSKever Yang
63d3cf9eb2Seric.gao@rock-chips.com	vccsys: vccsys {
64d3cf9eb2Seric.gao@rock-chips.com		compatible = "regulator-fixed";
65d3cf9eb2Seric.gao@rock-chips.com		regulator-name = "vccsys";
66d3cf9eb2Seric.gao@rock-chips.com		regulator-boot-on;
67d3cf9eb2Seric.gao@rock-chips.com		regulator-always-on;
68d3cf9eb2Seric.gao@rock-chips.com	};
69d3cf9eb2Seric.gao@rock-chips.com
70777c834fSKever Yang	vcc3v3_sys: vcc3v3-sys {
71777c834fSKever Yang		compatible = "regulator-fixed";
72777c834fSKever Yang		regulator-name = "vcc3v3_sys";
73777c834fSKever Yang		regulator-always-on;
74777c834fSKever Yang		regulator-boot-on;
75777c834fSKever Yang		regulator-min-microvolt = <3300000>;
76777c834fSKever Yang		regulator-max-microvolt = <3300000>;
77777c834fSKever Yang	};
78777c834fSKever Yang
79777c834fSKever Yang	vcc_phy: vcc-phy-regulator {
80777c834fSKever Yang		compatible = "regulator-fixed";
81777c834fSKever Yang		regulator-name = "vcc_phy";
82777c834fSKever Yang		regulator-always-on;
83777c834fSKever Yang		regulator-boot-on;
84777c834fSKever Yang	};
85b850d929SKever Yang
86b850d929SKever Yang	vcc5v0_host: vcc5v0-host-en {
87b850d929SKever Yang		compatible = "regulator-fixed";
88b850d929SKever Yang		regulator-name = "vcc5v0_host";
89b850d929SKever Yang		gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;
908e652a33SWilliam Wu		regulator-min-microvolt = <5000000>;
918e652a33SWilliam Wu		regulator-max-microvolt = <5000000>;
928e652a33SWilliam Wu		regulator-always-on;
938e652a33SWilliam Wu		regulator-boot-on;
94b850d929SKever Yang	};
95d3cf9eb2Seric.gao@rock-chips.com
96f6f47c2eSMeng Dongyang	vcc5v0_typec0: vcc5v0-typec0-en {
97f6f47c2eSMeng Dongyang		compatible = "regulator-fixed";
98f6f47c2eSMeng Dongyang		regulator-name = "vcc5v0_typec0";
99f6f47c2eSMeng Dongyang		gpio = <&gpio1 3 GPIO_ACTIVE_HIGH>;
100f6f47c2eSMeng Dongyang	};
101f6f47c2eSMeng Dongyang
102f6f47c2eSMeng Dongyang	vcc5v0_typec1: vcc5v0-typec1-en {
103f6f47c2eSMeng Dongyang		compatible = "regulator-fixed";
104f6f47c2eSMeng Dongyang		regulator-name = "vcc5v0_typec1";
105f6f47c2eSMeng Dongyang		gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>;
106f6f47c2eSMeng Dongyang	};
107f6f47c2eSMeng Dongyang
108fd9884e2SKever Yang	clkin_gmac: external-gmac-clock {
109fd9884e2SKever Yang		compatible = "fixed-clock";
110fd9884e2SKever Yang		clock-frequency = <125000000>;
111fd9884e2SKever Yang		clock-output-names = "clkin_gmac";
112fd9884e2SKever Yang		#clock-cells = <0>;
113fd9884e2SKever Yang	};
114df8fe99cSEric Gao
115df8fe99cSEric Gao	backlight: backlight {
116df8fe99cSEric Gao		compatible = "pwm-backlight";
117df8fe99cSEric Gao		power-supply = <&vccsys>;
118df8fe99cSEric Gao		enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
119df8fe99cSEric Gao		brightness-levels = <
120df8fe99cSEric Gao			  0   1   2   3   4   5   6   7
121df8fe99cSEric Gao			  8   9  10  11  12  13  14  15
122df8fe99cSEric Gao			 16  17  18  19  20  21  22  23
123df8fe99cSEric Gao			 24  25  26  27  28  29  30  31
124df8fe99cSEric Gao			 32  33  34  35  36  37  38  39
125df8fe99cSEric Gao			 40  41  42  43  44  45  46  47
126df8fe99cSEric Gao			 48  49  50  51  52  53  54  55
127df8fe99cSEric Gao			 56  57  58  59  60  61  62  63
128df8fe99cSEric Gao			 64  65  66  67  68  69  70  71
129df8fe99cSEric Gao			 72  73  74  75  76  77  78  79
130df8fe99cSEric Gao			 80  81  82  83  84  85  86  87
131df8fe99cSEric Gao			 88  89  90  91  92  93  94  95
132df8fe99cSEric Gao			 96  97  98  99 100 101 102 103
133df8fe99cSEric Gao			104 105 106 107 108 109 110 111
134df8fe99cSEric Gao			112 113 114 115 116 117 118 119
135df8fe99cSEric Gao			120 121 122 123 124 125 126 127
136df8fe99cSEric Gao			128 129 130 131 132 133 134 135
137df8fe99cSEric Gao			136 137 138 139 140 141 142 143
138df8fe99cSEric Gao			144 145 146 147 148 149 150 151
139df8fe99cSEric Gao			152 153 154 155 156 157 158 159
140df8fe99cSEric Gao			160 161 162 163 164 165 166 167
141df8fe99cSEric Gao			168 169 170 171 172 173 174 175
142df8fe99cSEric Gao			176 177 178 179 180 181 182 183
143df8fe99cSEric Gao			184 185 186 187 188 189 190 191
144df8fe99cSEric Gao			192 193 194 195 196 197 198 199
145df8fe99cSEric Gao			200 201 202 203 204 205 206 207
146df8fe99cSEric Gao			208 209 210 211 212 213 214 215
147df8fe99cSEric Gao			216 217 218 219 220 221 222 223
148df8fe99cSEric Gao			224 225 226 227 228 229 230 231
149df8fe99cSEric Gao			232 233 234 235 236 237 238 239
150df8fe99cSEric Gao			240 241 242 243 244 245 246 247
151df8fe99cSEric Gao			248 249 250 251 252 253 254 255>;
152df8fe99cSEric Gao		default-brightness-level = <200>;
153df8fe99cSEric Gao		pwms = <&pwm0 0 25000 0>;
154df8fe99cSEric Gao		pinctrl-names = "default";
155df8fe99cSEric Gao		pinctrl-0 = <&pwm0_pin>;
156df8fe99cSEric Gao		pwm-delay-us = <10000>;
157df8fe99cSEric Gao		status = "disabled";
158df8fe99cSEric Gao	};
159df8fe99cSEric Gao
1600313794bSKever Yang	vcc5v0_sys: vcc5v0-sys {
1610313794bSKever Yang		compatible = "regulator-fixed";
1620313794bSKever Yang		regulator-name = "vcc5v0_sys";
1630313794bSKever Yang		regulator-always-on;
1640313794bSKever Yang		regulator-boot-on;
1650313794bSKever Yang		regulator-min-microvolt = <5000000>;
1660313794bSKever Yang		regulator-max-microvolt = <5000000>;
1670313794bSKever Yang	};
1680313794bSKever Yang
1690313794bSKever Yang	vcc_lcd: vcc-lcd {
1700313794bSKever Yang		compatible = "regulator-fixed";
1710313794bSKever Yang		regulator-name = "vcc_lcd";
1720313794bSKever Yang		gpio = <&gpio4 30 GPIO_ACTIVE_HIGH>;
1730313794bSKever Yang		startup-delay-us = <20000>;
1740313794bSKever Yang		enable-active-high;
1750313794bSKever Yang		regulator-min-microvolt = <3300000>;
1760313794bSKever Yang		regulator-max-microvolt = <3300000>;
1770313794bSKever Yang		regulator-boot-on;
1780313794bSKever Yang		vin-supply = <&vcc5v0_sys>;
1790313794bSKever Yang	};
1800313794bSKever Yang
181df8fe99cSEric Gao	panel: panel {
182df8fe99cSEric Gao		compatible = "simple-panel";
183df8fe99cSEric Gao		backlight = <&backlight>;
1840313794bSKever Yang		power-supply = <&vcc_lcd>;
1850313794bSKever Yang		enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
1860313794bSKever Yang		prepare-delay-ms = <20>;
1870313794bSKever Yang		enable-delay-ms = <20>;
1880313794bSKever Yang
1890313794bSKever Yang		display-timings {
1900313794bSKever Yang			native-mode = <&timing0>;
1910313794bSKever Yang
1920313794bSKever Yang			timing0: timing0 {
1930313794bSKever Yang				clock-frequency = <200000000>;
1940313794bSKever Yang				hactive = <1536>;
1950313794bSKever Yang				vactive = <2048>;
1960313794bSKever Yang				hfront-porch = <12>;
1970313794bSKever Yang				hsync-len = <16>;
1980313794bSKever Yang				hback-porch = <48>;
1990313794bSKever Yang				vfront-porch = <8>;
2000313794bSKever Yang				vsync-len = <4>;
2010313794bSKever Yang				vback-porch = <8>;
2020313794bSKever Yang				hsync-active = <0>;
2030313794bSKever Yang				vsync-active = <0>;
2040313794bSKever Yang				de-active = <0>;
2050313794bSKever Yang				pixelclk-active = <0>;
206df8fe99cSEric Gao			};
207777c834fSKever Yang		};
208777c834fSKever Yang
2090313794bSKever Yang		ports {
2100313794bSKever Yang			panel_in: endpoint {
2110313794bSKever Yang				remote-endpoint = <&edp_out>;
2120313794bSKever Yang			};
2130313794bSKever Yang		};
2140313794bSKever Yang	};
2150313794bSKever Yang
2160313794bSKever Yang};
2170313794bSKever Yang
218272fdf68SJoseph Chen&crypto {
219272fdf68SJoseph Chen	status = "okay";
220272fdf68SJoseph Chen};
221272fdf68SJoseph Chen
22248dac9b0SJoseph Chen&uart2 {
22348dac9b0SJoseph Chen	status = "okay";
22448dac9b0SJoseph Chen};
22548dac9b0SJoseph Chen
226777c834fSKever Yang&emmc_phy {
227777c834fSKever Yang	status = "okay";
228777c834fSKever Yang};
229777c834fSKever Yang
230777c834fSKever Yang&pwm0 {
231777c834fSKever Yang	status = "okay";
232777c834fSKever Yang};
233777c834fSKever Yang
234777c834fSKever Yang&pwm2 {
235777c834fSKever Yang	status = "okay";
236777c834fSKever Yang};
237777c834fSKever Yang
238777c834fSKever Yang&pwm3 {
239777c834fSKever Yang	status = "okay";
240777c834fSKever Yang};
241777c834fSKever Yang
242cba12916SDavid Wu&saradc {
243cba12916SDavid Wu	status = "okay";
244cba12916SDavid Wu};
245cba12916SDavid Wu
246da8ff82eSKever Yang&sdmmc {
247a82426e0SKever Yang	bus-width = <4>;
248da8ff82eSKever Yang	status = "okay";
249da8ff82eSKever Yang};
250da8ff82eSKever Yang
251777c834fSKever Yang&sdhci {
252777c834fSKever Yang	bus-width = <8>;
253777c834fSKever Yang	mmc-hs400-1_8v;
254777c834fSKever Yang	mmc-hs400-enhanced-strobe;
255777c834fSKever Yang	non-removable;
256777c834fSKever Yang	status = "okay";
257777c834fSKever Yang};
258777c834fSKever Yang
259*0162d8c3SFrank Wang&tcphy0 {
260*0162d8c3SFrank Wang	status = "okay";
261*0162d8c3SFrank Wang};
262*0162d8c3SFrank Wang
263*0162d8c3SFrank Wang&tcphy1 {
264*0162d8c3SFrank Wang	status = "okay";
265*0162d8c3SFrank Wang};
266*0162d8c3SFrank Wang
267777c834fSKever Yang&usb_host0_ehci {
268777c834fSKever Yang	status = "okay";
269777c834fSKever Yang};
270777c834fSKever Yang
271777c834fSKever Yang&usb_host0_ohci {
272777c834fSKever Yang	status = "okay";
273777c834fSKever Yang};
274777c834fSKever Yang
275*0162d8c3SFrank Wang&usbdrd3_0 {
276*0162d8c3SFrank Wang	status = "okay";
277*0162d8c3SFrank Wang};
278*0162d8c3SFrank Wang
279*0162d8c3SFrank Wang&usbdrd3_1 {
280*0162d8c3SFrank Wang	status = "okay";
281*0162d8c3SFrank Wang};
282*0162d8c3SFrank Wang
283*0162d8c3SFrank Wang&usbdrd_dwc3_0 {
284*0162d8c3SFrank Wang	status = "okay";
285*0162d8c3SFrank Wang};
286*0162d8c3SFrank Wang
287*0162d8c3SFrank Wang&usbdrd_dwc3_1 {
288fa5e2d16SMengDongyang	status = "okay";
289fa5e2d16SMengDongyang};
290fa5e2d16SMengDongyang
291777c834fSKever Yang&usb_host1_ehci {
292777c834fSKever Yang	status = "okay";
293777c834fSKever Yang};
294777c834fSKever Yang
295777c834fSKever Yang&usb_host1_ohci {
296777c834fSKever Yang	status = "okay";
297777c834fSKever Yang};
298777c834fSKever Yang
299d3cf9eb2Seric.gao@rock-chips.com&i2c0 {
300d3cf9eb2Seric.gao@rock-chips.com	status = "okay";
301d3cf9eb2Seric.gao@rock-chips.com	clock-frequency = <400000>;
302d3cf9eb2Seric.gao@rock-chips.com	i2c-scl-falling-time-ns = <50>;
303d3cf9eb2Seric.gao@rock-chips.com	i2c-scl-rising-time-ns = <100>;
304d3cf9eb2Seric.gao@rock-chips.com
305d3cf9eb2Seric.gao@rock-chips.com	rk808: pmic@1b {
306d3cf9eb2Seric.gao@rock-chips.com		compatible = "rockchip,rk808";
307d3cf9eb2Seric.gao@rock-chips.com		clock-output-names = "xin32k", "wifibt_32kin";
308d3cf9eb2Seric.gao@rock-chips.com		interrupt-parent = <&gpio0>;
309d3cf9eb2Seric.gao@rock-chips.com		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
310d3cf9eb2Seric.gao@rock-chips.com		pinctrl-names = "default";
311d3cf9eb2Seric.gao@rock-chips.com		pinctrl-0 = <&pmic_int_l>;
312d3cf9eb2Seric.gao@rock-chips.com		reg = <0x1b>;
313d3cf9eb2Seric.gao@rock-chips.com		rockchip,system-power-controller;
314d3cf9eb2Seric.gao@rock-chips.com		#clock-cells = <1>;
315d3cf9eb2Seric.gao@rock-chips.com		status = "okay";
316d3cf9eb2Seric.gao@rock-chips.com
317d3cf9eb2Seric.gao@rock-chips.com		vcc12-supply = <&vcc3v3_sys>;
318df8fe99cSEric Gao
319d3cf9eb2Seric.gao@rock-chips.com		regulators {
320d3cf9eb2Seric.gao@rock-chips.com			vcc33_lcd: SWITCH_REG2 {
321d3cf9eb2Seric.gao@rock-chips.com				regulator-always-on;
322d3cf9eb2Seric.gao@rock-chips.com				regulator-boot-on;
323d3cf9eb2Seric.gao@rock-chips.com				regulator-name = "vcc33_lcd";
324d3cf9eb2Seric.gao@rock-chips.com			};
325d3cf9eb2Seric.gao@rock-chips.com		};
326d3cf9eb2Seric.gao@rock-chips.com	};
327d3cf9eb2Seric.gao@rock-chips.com};
328d3cf9eb2Seric.gao@rock-chips.com
329df8fe99cSEric Gao&mipi_dsi {
330df8fe99cSEric Gao	status = "disabled";
331df8fe99cSEric Gao	rockchip,panel = <&panel>;
332df8fe99cSEric Gao	display-timings {
333df8fe99cSEric Gao		timing0 {
334df8fe99cSEric Gao		bits-per-pixel = <24>;
335df8fe99cSEric Gao		clock-frequency = <160000000>;
336df8fe99cSEric Gao		hfront-porch = <120>;
337df8fe99cSEric Gao		hsync-len = <20>;
338df8fe99cSEric Gao		hback-porch = <21>;
339df8fe99cSEric Gao		hactive = <1200>;
340df8fe99cSEric Gao		vfront-porch = <21>;
341df8fe99cSEric Gao		vsync-len = <3>;
342df8fe99cSEric Gao		vback-porch = <18>;
343df8fe99cSEric Gao		vactive = <1920>;
344df8fe99cSEric Gao		hsync-active = <0>;
345df8fe99cSEric Gao		vsync-active = <0>;
346df8fe99cSEric Gao		de-active = <1>;
347df8fe99cSEric Gao		pixelclk-active = <0>;
348df8fe99cSEric Gao		};
349df8fe99cSEric Gao	};
350df8fe99cSEric Gao};
351df8fe99cSEric Gao
352777c834fSKever Yang&pinctrl {
353777c834fSKever Yang	pmic {
354777c834fSKever Yang		pmic_int_l: pmic-int-l {
355777c834fSKever Yang			rockchip,pins =
356777c834fSKever Yang				<1 21 RK_FUNC_GPIO &pcfg_pull_up>;
357777c834fSKever Yang		};
358777c834fSKever Yang
359777c834fSKever Yang		pmic_dvs2: pmic-dvs2 {
360777c834fSKever Yang			rockchip,pins =
361777c834fSKever Yang				<1 18 RK_FUNC_GPIO &pcfg_pull_down>;
362777c834fSKever Yang		};
363777c834fSKever Yang	};
364777c834fSKever Yang};
365fd9884e2SKever Yang
366fd9884e2SKever Yang&gmac {
367fd9884e2SKever Yang        phy-supply = <&vcc_phy>;
368fd9884e2SKever Yang	phy-mode = "rgmii";
369fd9884e2SKever Yang	clock_in_out = "input";
370fd9884e2SKever Yang	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
371fd9884e2SKever Yang	snps,reset-active-low;
372fd9884e2SKever Yang	snps,reset-delays-us = <0 10000 50000>;
373fd9884e2SKever Yang	assigned-clocks = <&cru SCLK_RMII_SRC>;
374fd9884e2SKever Yang	assigned-clock-parents = <&clkin_gmac>;
375fd9884e2SKever Yang	pinctrl-names = "default";
376fd9884e2SKever Yang	pinctrl-0 = <&rgmii_pins>;
3779991a2b1SDavid Wu	tx_delay = <0x28>;
3789991a2b1SDavid Wu	rx_delay = <0x11>;
379fd9884e2SKever Yang	status = "okay";
380fd9884e2SKever Yang};
3810313794bSKever Yang
3820313794bSKever Yang&backlight {
3830313794bSKever Yang	status = "okay";
3840313794bSKever Yang	enable-gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
3850313794bSKever Yang};
3860313794bSKever Yang
3870313794bSKever Yang&route_edp {
3880313794bSKever Yang	status = "okay";
3890313794bSKever Yang};
3900313794bSKever Yang
3910313794bSKever Yang&edp_in_vopl {
3920313794bSKever Yang	status = "disabled";
3930313794bSKever Yang};
3940313794bSKever Yang
3950313794bSKever Yang&edp_in_vopb {
3960313794bSKever Yang	status = "okay";
3970313794bSKever Yang};
3980313794bSKever Yang
3990313794bSKever Yang&edp {
4000313794bSKever Yang	status = "okay";
4010313794bSKever Yang	force-hpd;
4020313794bSKever Yang
4030313794bSKever Yang	ports {
4040313794bSKever Yang		port@1 {
4050313794bSKever Yang			reg = <1>;
4060313794bSKever Yang
4070313794bSKever Yang			edp_out: endpoint {
4080313794bSKever Yang				remote-endpoint = <&panel_in>;
4090313794bSKever Yang			};
4100313794bSKever Yang		};
4110313794bSKever Yang	};
4120313794bSKever Yang};
4130313794bSKever Yang
4140313794bSKever Yang&vopb {
4150313794bSKever Yang	status = "okay";
4160313794bSKever Yang};
417