1/*
2 * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 *  a) This library is free software; you can redistribute it and/or
10 *     modify it under the terms of the GNU General Public License as
11 *     published by the Free Software Foundation; either version 2 of the
12 *     License, or (at your option) any later version.
13 *
14 *     This library is distributed in the hope that it will be useful,
15 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 *     GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 *  b) Permission is hereby granted, free of charge, to any person
22 *     obtaining a copy of this software and associated documentation
23 *     files (the "Software"), to deal in the Software without
24 *     restriction, including without limitation the rights to use,
25 *     copy, modify, merge, publish, distribute, sublicense, and/or
26 *     sell copies of the Software, and to permit persons to whom the
27 *     Software is furnished to do so, subject to the following
28 *     conditions:
29 *
30 *     The above copyright notice and this permission notice shall be
31 *     included in all copies or substantial portions of the Software.
32 *
33 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 *     OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43#include <dt-bindings/clock/rk3399-cru.h>
44#include <dt-bindings/gpio/gpio.h>
45#include <dt-bindings/interrupt-controller/arm-gic.h>
46#include <dt-bindings/interrupt-controller/irq.h>
47#include <dt-bindings/pinctrl/rockchip.h>
48#include <dt-bindings/power/rk3399-power.h>
49#include <dt-bindings/thermal/thermal.h>
50
51/ {
52	compatible = "rockchip,rk3399";
53
54	interrupt-parent = <&gic>;
55	#address-cells = <2>;
56	#size-cells = <2>;
57
58	aliases {
59		i2c0 = &i2c0;
60		i2c1 = &i2c1;
61		i2c2 = &i2c2;
62		i2c3 = &i2c3;
63		i2c4 = &i2c4;
64		i2c5 = &i2c5;
65		i2c6 = &i2c6;
66		i2c7 = &i2c7;
67		i2c8 = &i2c8;
68		serial0 = &uart0;
69		serial1 = &uart1;
70		serial2 = &uart2;
71		serial3 = &uart3;
72		serial4 = &uart4;
73	};
74
75	cpus {
76		#address-cells = <2>;
77		#size-cells = <0>;
78
79		cpu-map {
80			cluster0 {
81				core0 {
82					cpu = <&cpu_l0>;
83				};
84				core1 {
85					cpu = <&cpu_l1>;
86				};
87				core2 {
88					cpu = <&cpu_l2>;
89				};
90				core3 {
91					cpu = <&cpu_l3>;
92				};
93			};
94
95			cluster1 {
96				core0 {
97					cpu = <&cpu_b0>;
98				};
99				core1 {
100					cpu = <&cpu_b1>;
101				};
102			};
103		};
104
105		cpu_l0: cpu@0 {
106			device_type = "cpu";
107			compatible = "arm,cortex-a53", "arm,armv8";
108			reg = <0x0 0x0>;
109			enable-method = "psci";
110			#cooling-cells = <2>; /* min followed by max */
111			clocks = <&cru ARMCLKL>;
112		};
113
114		cpu_l1: cpu@1 {
115			device_type = "cpu";
116			compatible = "arm,cortex-a53", "arm,armv8";
117			reg = <0x0 0x1>;
118			enable-method = "psci";
119			clocks = <&cru ARMCLKL>;
120		};
121
122		cpu_l2: cpu@2 {
123			device_type = "cpu";
124			compatible = "arm,cortex-a53", "arm,armv8";
125			reg = <0x0 0x2>;
126			enable-method = "psci";
127			clocks = <&cru ARMCLKL>;
128		};
129
130		cpu_l3: cpu@3 {
131			device_type = "cpu";
132			compatible = "arm,cortex-a53", "arm,armv8";
133			reg = <0x0 0x3>;
134			enable-method = "psci";
135			clocks = <&cru ARMCLKL>;
136		};
137
138		cpu_b0: cpu@100 {
139			device_type = "cpu";
140			compatible = "arm,cortex-a72", "arm,armv8";
141			reg = <0x0 0x100>;
142			enable-method = "psci";
143			#cooling-cells = <2>; /* min followed by max */
144			clocks = <&cru ARMCLKB>;
145		};
146
147		cpu_b1: cpu@101 {
148			device_type = "cpu";
149			compatible = "arm,cortex-a72", "arm,armv8";
150			reg = <0x0 0x101>;
151			enable-method = "psci";
152			clocks = <&cru ARMCLKB>;
153		};
154	};
155
156	pmu_a53 {
157		compatible = "arm,cortex-a53-pmu";
158		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>;
159	};
160
161	pmu_a72 {
162		compatible = "arm,cortex-a72-pmu";
163		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>;
164	};
165
166	psci {
167		compatible = "arm,psci-1.0";
168		method = "smc";
169	};
170
171	timer {
172		compatible = "arm,armv8-timer";
173		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
174			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
175			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
176			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
177		arm,no-tick-in-suspend;
178	};
179
180	xin24m: xin24m {
181		compatible = "fixed-clock";
182		clock-frequency = <24000000>;
183		clock-output-names = "xin24m";
184		#clock-cells = <0>;
185	};
186
187	amba {
188		compatible = "simple-bus";
189		#address-cells = <2>;
190		#size-cells = <2>;
191		ranges;
192
193		dmac_bus: dma-controller@ff6d0000 {
194			compatible = "arm,pl330", "arm,primecell";
195			reg = <0x0 0xff6d0000 0x0 0x4000>;
196			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
197				     <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
198			#dma-cells = <1>;
199			clocks = <&cru ACLK_DMAC0_PERILP>;
200			clock-names = "apb_pclk";
201		};
202
203		dmac_peri: dma-controller@ff6e0000 {
204			compatible = "arm,pl330", "arm,primecell";
205			reg = <0x0 0xff6e0000 0x0 0x4000>;
206			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>,
207				     <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>;
208			#dma-cells = <1>;
209			clocks = <&cru ACLK_DMAC1_PERILP>;
210			clock-names = "apb_pclk";
211		};
212	};
213
214	gmac: ethernet@fe300000 {
215		compatible = "rockchip,rk3399-gmac";
216		reg = <0x0 0xfe300000 0x0 0x10000>;
217		interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH 0>;
218		interrupt-names = "macirq";
219		clocks = <&cru SCLK_MAC>, <&cru SCLK_MAC_RX>,
220			 <&cru SCLK_MAC_TX>, <&cru SCLK_MACREF>,
221			 <&cru SCLK_MACREF_OUT>, <&cru ACLK_GMAC>,
222			 <&cru PCLK_GMAC>;
223		clock-names = "stmmaceth", "mac_clk_rx",
224			      "mac_clk_tx", "clk_mac_ref",
225			      "clk_mac_refout", "aclk_mac",
226			      "pclk_mac";
227		power-domains = <&power RK3399_PD_GMAC>;
228		resets = <&cru SRST_A_GMAC>;
229		reset-names = "stmmaceth";
230		rockchip,grf = <&grf>;
231		status = "disabled";
232	};
233
234	sdio0: dwmmc@fe310000 {
235		compatible = "rockchip,rk3399-dw-mshc",
236			     "rockchip,rk3288-dw-mshc";
237		reg = <0x0 0xfe310000 0x0 0x4000>;
238		interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH 0>;
239		max-frequency = <150000000>;
240		clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
241			 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
242		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
243		fifo-depth = <0x100>;
244		status = "disabled";
245	};
246
247	sdmmc: dwmmc@fe320000 {
248		compatible = "rockchip,rk3399-dw-mshc",
249			     "rockchip,rk3288-dw-mshc";
250		reg = <0x0 0xfe320000 0x0 0x4000>;
251		interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>;
252		max-frequency = <150000000>;
253		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
254			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
255		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
256		fifo-depth = <0x100>;
257		power-domains = <&power RK3399_PD_SD>;
258		status = "disabled";
259	};
260
261	sdhci: sdhci@fe330000 {
262		compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1";
263		reg = <0x0 0xfe330000 0x0 0x10000>;
264		interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH 0>;
265		arasan,soc-ctl-syscon = <&grf>;
266		assigned-clocks = <&cru SCLK_EMMC>;
267		assigned-clock-rates = <200000000>;
268		clocks = <&cru SCLK_EMMC>, <&cru ACLK_EMMC>;
269		clock-names = "clk_xin", "clk_ahb";
270		clock-output-names = "emmc_cardclock";
271		#clock-cells = <0>;
272		phys = <&emmc_phy>;
273		phy-names = "phy_arasan";
274		power-domains = <&power RK3399_PD_EMMC>;
275		status = "disabled";
276	};
277
278	pcie0: pcie@f8000000 {
279		compatible = "rockchip,rk3399-pcie";
280		reg = <0x0 0xf8000000 0x0 0x2000000>,
281		      <0x0 0xfd000000 0x0 0x1000000>;
282		reg-names = "axi-base", "apb-base";
283		#address-cells = <3>;
284		#size-cells = <2>;
285		#interrupt-cells = <1>;
286		aspm-no-l0s;
287		bus-range = <0x0 0x1>;
288		clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
289			 <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
290		clock-names = "aclk", "aclk-perf",
291			      "hclk", "pm";
292		interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>,
293			     <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>,
294			     <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>;
295		interrupt-names = "sys", "legacy", "client";
296		interrupt-map-mask = <0 0 0 7>;
297		interrupt-map = <0 0 0 1 &pcie0_intc 0>,
298				<0 0 0 2 &pcie0_intc 1>,
299				<0 0 0 3 &pcie0_intc 2>,
300				<0 0 0 4 &pcie0_intc 3>;
301		max-link-speed = <1>;
302		msi-map = <0x0 &its 0x0 0x1000>;
303		phys = <&pcie_phy>;
304		phy-names = "pcie-phy";
305		ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x600000
306			  0x81000000 0x0 0xfa600000 0x0 0xfa600000 0x0 0x100000>;
307		resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
308			 <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
309			 <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
310			 <&cru SRST_A_PCIE>;
311		reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
312			      "pm", "pclk", "aclk";
313		status = "disabled";
314
315		pcie0_intc: interrupt-controller {
316			interrupt-controller;
317			#address-cells = <0>;
318			#interrupt-cells = <1>;
319		};
320	};
321
322	usb_host0_ehci: usb@fe380000 {
323		compatible = "generic-ehci";
324		reg = <0x0 0xfe380000 0x0 0x20000>;
325		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH 0>;
326		clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
327			 <&u2phy0>;
328		clock-names = "usbhost", "arbiter",
329			      "utmi";
330		phys = <&u2phy0_host>;
331		phy-names = "usb";
332		status = "disabled";
333	};
334
335	usb_host0_ohci: usb@fe3a0000 {
336		compatible = "generic-ohci";
337		reg = <0x0 0xfe3a0000 0x0 0x20000>;
338		interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>;
339		clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
340			 <&u2phy0>;
341		clock-names = "usbhost", "arbiter",
342			      "utmi";
343		phys = <&u2phy0_host>;
344		phy-names = "usb";
345		status = "disabled";
346	};
347
348	usb_host1_ehci: usb@fe3c0000 {
349		compatible = "generic-ehci";
350		reg = <0x0 0xfe3c0000 0x0 0x20000>;
351		interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH 0>;
352		clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>,
353			 <&u2phy1>;
354		clock-names = "usbhost", "arbiter",
355			      "utmi";
356		phys = <&u2phy1_host>;
357		phy-names = "usb";
358		status = "disabled";
359	};
360
361	usb_host1_ohci: usb@fe3e0000 {
362		compatible = "generic-ohci";
363		reg = <0x0 0xfe3e0000 0x0 0x20000>;
364		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH 0>;
365		clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>,
366			 <&u2phy1>;
367		clock-names = "usbhost", "arbiter",
368			      "utmi";
369		phys = <&u2phy1_host>;
370		phy-names = "usb";
371		status = "disabled";
372	};
373
374	gic: interrupt-controller@fee00000 {
375		compatible = "arm,gic-v3";
376		#interrupt-cells = <4>;
377		#address-cells = <2>;
378		#size-cells = <2>;
379		ranges;
380		interrupt-controller;
381
382		reg = <0x0 0xfee00000 0 0x10000>, /* GICD */
383		      <0x0 0xfef00000 0 0xc0000>, /* GICR */
384		      <0x0 0xfff00000 0 0x10000>, /* GICC */
385		      <0x0 0xfff10000 0 0x10000>, /* GICH */
386		      <0x0 0xfff20000 0 0x10000>; /* GICV */
387		interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
388		its: interrupt-controller@fee20000 {
389			compatible = "arm,gic-v3-its";
390			msi-controller;
391			reg = <0x0 0xfee20000 0x0 0x20000>;
392		};
393
394		ppi-partitions {
395			ppi_cluster0: interrupt-partition-0 {
396				affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>;
397			};
398
399			ppi_cluster1: interrupt-partition-1 {
400				affinity = <&cpu_b0 &cpu_b1>;
401			};
402		};
403	};
404
405	saradc: saradc@ff100000 {
406		compatible = "rockchip,rk3399-saradc";
407		reg = <0x0 0xff100000 0x0 0x100>;
408		interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH 0>;
409		#io-channel-cells = <1>;
410		clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
411		clock-names = "saradc", "apb_pclk";
412		resets = <&cru SRST_P_SARADC>;
413		reset-names = "saradc-apb";
414		status = "disabled";
415	};
416
417	i2c1: i2c@ff110000 {
418		compatible = "rockchip,rk3399-i2c";
419		reg = <0x0 0xff110000 0x0 0x1000>;
420		assigned-clocks = <&cru SCLK_I2C1>;
421		assigned-clock-rates = <200000000>;
422		clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
423		clock-names = "i2c", "pclk";
424		interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH 0>;
425		pinctrl-names = "default";
426		pinctrl-0 = <&i2c1_xfer>;
427		#address-cells = <1>;
428		#size-cells = <0>;
429		status = "disabled";
430	};
431
432	i2c2: i2c@ff120000 {
433		compatible = "rockchip,rk3399-i2c";
434		reg = <0x0 0xff120000 0x0 0x1000>;
435		assigned-clocks = <&cru SCLK_I2C2>;
436		assigned-clock-rates = <200000000>;
437		clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
438		clock-names = "i2c", "pclk";
439		interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH 0>;
440		pinctrl-names = "default";
441		pinctrl-0 = <&i2c2_xfer>;
442		#address-cells = <1>;
443		#size-cells = <0>;
444		status = "disabled";
445	};
446
447	i2c3: i2c@ff130000 {
448		compatible = "rockchip,rk3399-i2c";
449		reg = <0x0 0xff130000 0x0 0x1000>;
450		assigned-clocks = <&cru SCLK_I2C3>;
451		assigned-clock-rates = <200000000>;
452		clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
453		clock-names = "i2c", "pclk";
454		interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH 0>;
455		pinctrl-names = "default";
456		pinctrl-0 = <&i2c3_xfer>;
457		#address-cells = <1>;
458		#size-cells = <0>;
459		status = "disabled";
460	};
461
462	i2c5: i2c@ff140000 {
463		compatible = "rockchip,rk3399-i2c";
464		reg = <0x0 0xff140000 0x0 0x1000>;
465		assigned-clocks = <&cru SCLK_I2C5>;
466		assigned-clock-rates = <200000000>;
467		clocks = <&cru SCLK_I2C5>, <&cru PCLK_I2C5>;
468		clock-names = "i2c", "pclk";
469		interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>;
470		pinctrl-names = "default";
471		pinctrl-0 = <&i2c5_xfer>;
472		#address-cells = <1>;
473		#size-cells = <0>;
474		status = "disabled";
475	};
476
477	i2c6: i2c@ff150000 {
478		compatible = "rockchip,rk3399-i2c";
479		reg = <0x0 0xff150000 0x0 0x1000>;
480		assigned-clocks = <&cru SCLK_I2C6>;
481		assigned-clock-rates = <200000000>;
482		clocks = <&cru SCLK_I2C6>, <&cru PCLK_I2C6>;
483		clock-names = "i2c", "pclk";
484		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH 0>;
485		pinctrl-names = "default";
486		pinctrl-0 = <&i2c6_xfer>;
487		#address-cells = <1>;
488		#size-cells = <0>;
489		status = "disabled";
490	};
491
492	i2c7: i2c@ff160000 {
493		compatible = "rockchip,rk3399-i2c";
494		reg = <0x0 0xff160000 0x0 0x1000>;
495		assigned-clocks = <&cru SCLK_I2C7>;
496		assigned-clock-rates = <200000000>;
497		clocks = <&cru SCLK_I2C7>, <&cru PCLK_I2C7>;
498		clock-names = "i2c", "pclk";
499		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH 0>;
500		pinctrl-names = "default";
501		pinctrl-0 = <&i2c7_xfer>;
502		#address-cells = <1>;
503		#size-cells = <0>;
504		status = "disabled";
505	};
506
507	uart0: serial@ff180000 {
508		compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
509		reg = <0x0 0xff180000 0x0 0x100>;
510		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
511		clock-names = "baudclk", "apb_pclk";
512		interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH 0>;
513		reg-shift = <2>;
514		reg-io-width = <4>;
515		pinctrl-names = "default";
516		pinctrl-0 = <&uart0_xfer>;
517		status = "disabled";
518	};
519
520	uart1: serial@ff190000 {
521		compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
522		reg = <0x0 0xff190000 0x0 0x100>;
523		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
524		clock-names = "baudclk", "apb_pclk";
525		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH 0>;
526		reg-shift = <2>;
527		reg-io-width = <4>;
528		pinctrl-names = "default";
529		pinctrl-0 = <&uart1_xfer>;
530		status = "disabled";
531	};
532
533	uart2: serial@ff1a0000 {
534		compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
535		reg = <0x0 0xff1a0000 0x0 0x100>;
536		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
537		clock-names = "baudclk", "apb_pclk";
538		interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH 0>;
539		reg-shift = <2>;
540		reg-io-width = <4>;
541		pinctrl-names = "default";
542		pinctrl-0 = <&uart2c_xfer>;
543		status = "disabled";
544	};
545
546	uart3: serial@ff1b0000 {
547		compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
548		reg = <0x0 0xff1b0000 0x0 0x100>;
549		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
550		clock-names = "baudclk", "apb_pclk";
551		interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH 0>;
552		reg-shift = <2>;
553		reg-io-width = <4>;
554		pinctrl-names = "default";
555		pinctrl-0 = <&uart3_xfer>;
556		status = "disabled";
557	};
558
559	spi0: spi@ff1c0000 {
560		compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
561		reg = <0x0 0xff1c0000 0x0 0x1000>;
562		clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
563		clock-names = "spiclk", "apb_pclk";
564		interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH 0>;
565		pinctrl-names = "default";
566		pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
567		#address-cells = <1>;
568		#size-cells = <0>;
569		status = "disabled";
570	};
571
572	spi1: spi@ff1d0000 {
573		compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
574		reg = <0x0 0xff1d0000 0x0 0x1000>;
575		clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
576		clock-names = "spiclk", "apb_pclk";
577		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH 0>;
578		pinctrl-names = "default";
579		pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
580		#address-cells = <1>;
581		#size-cells = <0>;
582		status = "disabled";
583	};
584
585	spi2: spi@ff1e0000 {
586		compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
587		reg = <0x0 0xff1e0000 0x0 0x1000>;
588		clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
589		clock-names = "spiclk", "apb_pclk";
590		interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH 0>;
591		pinctrl-names = "default";
592		pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
593		#address-cells = <1>;
594		#size-cells = <0>;
595		status = "disabled";
596	};
597
598	spi4: spi@ff1f0000 {
599		compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
600		reg = <0x0 0xff1f0000 0x0 0x1000>;
601		clocks = <&cru SCLK_SPI4>, <&cru PCLK_SPI4>;
602		clock-names = "spiclk", "apb_pclk";
603		interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH 0>;
604		pinctrl-names = "default";
605		pinctrl-0 = <&spi4_clk &spi4_tx &spi4_rx &spi4_cs0>;
606		#address-cells = <1>;
607		#size-cells = <0>;
608		status = "disabled";
609	};
610
611	spi5: spi@ff200000 {
612		compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
613		reg = <0x0 0xff200000 0x0 0x1000>;
614		clocks = <&cru SCLK_SPI5>, <&cru PCLK_SPI5>;
615		clock-names = "spiclk", "apb_pclk";
616		interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH 0>;
617		pinctrl-names = "default";
618		pinctrl-0 = <&spi5_clk &spi5_tx &spi5_rx &spi5_cs0>;
619		#address-cells = <1>;
620		#size-cells = <0>;
621		status = "disabled";
622	};
623
624	thermal_zones: thermal-zones {
625		cpu_thermal: cpu {
626			polling-delay-passive = <100>;
627			polling-delay = <1000>;
628
629			thermal-sensors = <&tsadc 0>;
630
631			trips {
632				cpu_alert0: cpu_alert0 {
633					temperature = <70000>;
634					hysteresis = <2000>;
635					type = "passive";
636				};
637				cpu_alert1: cpu_alert1 {
638					temperature = <75000>;
639					hysteresis = <2000>;
640					type = "passive";
641				};
642				cpu_crit: cpu_crit {
643					temperature = <95000>;
644					hysteresis = <2000>;
645					type = "critical";
646				};
647			};
648
649			cooling-maps {
650				map0 {
651					trip = <&cpu_alert0>;
652					cooling-device =
653						<&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
654				};
655				map1 {
656					trip = <&cpu_alert1>;
657					cooling-device =
658						<&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
659						<&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
660				};
661			};
662		};
663
664		gpu_thermal: gpu {
665			polling-delay-passive = <100>;
666			polling-delay = <1000>;
667
668			thermal-sensors = <&tsadc 1>;
669
670			trips {
671				gpu_alert0: gpu_alert0 {
672					temperature = <75000>;
673					hysteresis = <2000>;
674					type = "passive";
675				};
676				gpu_crit: gpu_crit {
677					temperature = <95000>;
678					hysteresis = <2000>;
679					type = "critical";
680				};
681			};
682
683			cooling-maps {
684				map0 {
685					trip = <&gpu_alert0>;
686					cooling-device =
687						<&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
688				};
689			};
690		};
691	};
692
693	tsadc: tsadc@ff260000 {
694		compatible = "rockchip,rk3399-tsadc";
695		reg = <0x0 0xff260000 0x0 0x100>;
696		interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>;
697		assigned-clocks = <&cru SCLK_TSADC>;
698		assigned-clock-rates = <750000>;
699		clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
700		clock-names = "tsadc", "apb_pclk";
701		resets = <&cru SRST_TSADC>;
702		reset-names = "tsadc-apb";
703		rockchip,grf = <&grf>;
704		rockchip,hw-tshut-temp = <95000>;
705		pinctrl-names = "init", "default", "sleep";
706		pinctrl-0 = <&otp_gpio>;
707		pinctrl-1 = <&otp_out>;
708		pinctrl-2 = <&otp_gpio>;
709		#thermal-sensor-cells = <1>;
710		status = "disabled";
711	};
712
713	qos_sd: qos@ffa74000 {
714		compatible = "syscon";
715		reg = <0x0 0xffa74000 0x0 0x20>;
716	};
717
718	qos_emmc: qos@ffa58000 {
719		compatible = "syscon";
720		reg = <0x0 0xffa58000 0x0 0x20>;
721	};
722
723	qos_gmac: qos@ffa5c000 {
724		compatible = "syscon";
725		reg = <0x0 0xffa5c000 0x0 0x20>;
726	};
727
728	qos_hdcp: qos@ffa90000 {
729		compatible = "syscon";
730		reg = <0x0 0xffa90000 0x0 0x20>;
731	};
732
733	qos_iep: qos@ffa98000 {
734		compatible = "syscon";
735		reg = <0x0 0xffa98000 0x0 0x20>;
736	};
737
738	qos_isp0_m0: qos@ffaa0000 {
739		compatible = "syscon";
740		reg = <0x0 0xffaa0000 0x0 0x20>;
741	};
742
743	qos_isp0_m1: qos@ffaa0080 {
744		compatible = "syscon";
745		reg = <0x0 0xffaa0080 0x0 0x20>;
746	};
747
748	qos_isp1_m0: qos@ffaa8000 {
749		compatible = "syscon";
750		reg = <0x0 0xffaa8000 0x0 0x20>;
751	};
752
753	qos_isp1_m1: qos@ffaa8080 {
754		compatible = "syscon";
755		reg = <0x0 0xffaa8080 0x0 0x20>;
756	};
757
758	qos_rga_r: qos@ffab0000 {
759		compatible = "syscon";
760		reg = <0x0 0xffab0000 0x0 0x20>;
761	};
762
763	qos_rga_w: qos@ffab0080 {
764		compatible = "syscon";
765		reg = <0x0 0xffab0080 0x0 0x20>;
766	};
767
768	qos_video_m0: qos@ffab8000 {
769		compatible = "syscon";
770		reg = <0x0 0xffab8000 0x0 0x20>;
771	};
772
773	qos_video_m1_r: qos@ffac0000 {
774		compatible = "syscon";
775		reg = <0x0 0xffac0000 0x0 0x20>;
776	};
777
778	qos_video_m1_w: qos@ffac0080 {
779		compatible = "syscon";
780		reg = <0x0 0xffac0080 0x0 0x20>;
781	};
782
783	qos_vop_big_r: qos@ffac8000 {
784		compatible = "syscon";
785		reg = <0x0 0xffac8000 0x0 0x20>;
786	};
787
788	qos_vop_big_w: qos@ffac8080 {
789		compatible = "syscon";
790		reg = <0x0 0xffac8080 0x0 0x20>;
791	};
792
793	qos_vop_little: qos@ffad0000 {
794		compatible = "syscon";
795		reg = <0x0 0xffad0000 0x0 0x20>;
796	};
797
798	qos_gpu: qos@ffae0000 {
799		compatible = "syscon";
800		reg = <0x0 0xffae0000 0x0 0x20>;
801	};
802
803	pmu: power-management@ff310000 {
804		compatible = "rockchip,rk3399-pmu", "syscon", "simple-mfd";
805		reg = <0x0 0xff310000 0x0 0x1000>;
806
807		/*
808		 * Note: RK3399 supports 6 voltage domains including VD_CORE_L,
809		 * VD_CORE_B, VD_CENTER, VD_GPU, VD_LOGIC and VD_PMU.
810		 * Some of the power domains are grouped together for every
811		 * voltage domain.
812		 * The detail contents as below.
813		 */
814		power: power-controller {
815			compatible = "rockchip,rk3399-power-controller";
816			#power-domain-cells = <1>;
817			#address-cells = <1>;
818			#size-cells = <0>;
819
820			/* These power domains are grouped by VD_CENTER */
821			pd_iep@RK3399_PD_IEP {
822				reg = <RK3399_PD_IEP>;
823				clocks = <&cru ACLK_IEP>,
824					 <&cru HCLK_IEP>;
825				pm_qos = <&qos_iep>;
826			};
827			pd_rga@RK3399_PD_RGA {
828				reg = <RK3399_PD_RGA>;
829				clocks = <&cru ACLK_RGA>,
830					 <&cru HCLK_RGA>;
831				pm_qos = <&qos_rga_r>,
832					 <&qos_rga_w>;
833			};
834			pd_vcodec@RK3399_PD_VCODEC {
835				reg = <RK3399_PD_VCODEC>;
836				clocks = <&cru ACLK_VCODEC>,
837					 <&cru HCLK_VCODEC>;
838				pm_qos = <&qos_video_m0>;
839			};
840			pd_vdu@RK3399_PD_VDU {
841				reg = <RK3399_PD_VDU>;
842				clocks = <&cru ACLK_VDU>,
843					 <&cru HCLK_VDU>;
844				pm_qos = <&qos_video_m1_r>,
845					 <&qos_video_m1_w>;
846			};
847
848			/* These power domains are grouped by VD_GPU */
849			pd_gpu@RK3399_PD_GPU {
850				reg = <RK3399_PD_GPU>;
851				clocks = <&cru ACLK_GPU>;
852				pm_qos = <&qos_gpu>;
853			};
854
855			/* These power domains are grouped by VD_LOGIC */
856			pd_emmc@RK3399_PD_EMMC {
857				reg = <RK3399_PD_EMMC>;
858				clocks = <&cru ACLK_EMMC>;
859				pm_qos = <&qos_emmc>;
860			};
861			pd_gmac@RK3399_PD_GMAC {
862				reg = <RK3399_PD_GMAC>;
863				clocks = <&cru ACLK_GMAC>,
864					 <&cru PCLK_GMAC>;
865				pm_qos = <&qos_gmac>;
866			};
867			pd_sd@RK3399_PD_SD {
868				reg = <RK3399_PD_SD>;
869				clocks = <&cru HCLK_SDMMC>,
870					 <&cru SCLK_SDMMC>;
871				pm_qos = <&qos_sd>;
872			};
873			pd_vio@RK3399_PD_VIO {
874				reg = <RK3399_PD_VIO>;
875				#address-cells = <1>;
876				#size-cells = <0>;
877
878				pd_hdcp@RK3399_PD_HDCP {
879					reg = <RK3399_PD_HDCP>;
880					clocks = <&cru ACLK_HDCP>,
881						 <&cru HCLK_HDCP>,
882						 <&cru PCLK_HDCP>;
883					pm_qos = <&qos_hdcp>;
884				};
885				pd_isp0@RK3399_PD_ISP0 {
886					reg = <RK3399_PD_ISP0>;
887					clocks = <&cru ACLK_ISP0>,
888						 <&cru HCLK_ISP0>;
889					pm_qos = <&qos_isp0_m0>,
890						 <&qos_isp0_m1>;
891				};
892				pd_isp1@RK3399_PD_ISP1 {
893					reg = <RK3399_PD_ISP1>;
894					clocks = <&cru ACLK_ISP1>,
895						 <&cru HCLK_ISP1>;
896					pm_qos = <&qos_isp1_m0>,
897						 <&qos_isp1_m1>;
898				};
899				pd_tcpc0@RK3399_PD_TCPC0 {
900					reg = <RK3399_PD_TCPD0>;
901					clocks = <&cru SCLK_UPHY0_TCPDCORE>,
902						 <&cru SCLK_UPHY0_TCPDPHY_REF>;
903				};
904				pd_tcpc1@RK3399_PD_TCPC1 {
905					reg = <RK3399_PD_TCPD1>;
906					clocks = <&cru SCLK_UPHY1_TCPDCORE>,
907						 <&cru SCLK_UPHY1_TCPDPHY_REF>;
908				};
909				pd_vo@RK3399_PD_VO {
910					reg = <RK3399_PD_VO>;
911					#address-cells = <1>;
912					#size-cells = <0>;
913
914					pd_vopb@RK3399_PD_VOPB {
915						reg = <RK3399_PD_VOPB>;
916						clocks = <&cru ACLK_VOP0>,
917							 <&cru HCLK_VOP0>;
918						pm_qos = <&qos_vop_big_r>,
919							 <&qos_vop_big_w>;
920					};
921					pd_vopl@RK3399_PD_VOPL {
922						reg = <RK3399_PD_VOPL>;
923						clocks = <&cru ACLK_VOP1>,
924							 <&cru HCLK_VOP1>;
925						pm_qos = <&qos_vop_little>;
926					};
927				};
928			};
929		};
930	};
931
932	pmugrf: syscon@ff320000 {
933		compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd";
934		reg = <0x0 0xff320000 0x0 0x1000>;
935		#address-cells = <1>;
936		#size-cells = <1>;
937
938		pmu_io_domains: io-domains {
939			compatible = "rockchip,rk3399-pmu-io-voltage-domain";
940			status = "disabled";
941		};
942	};
943
944	spi3: spi@ff350000 {
945		compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
946		reg = <0x0 0xff350000 0x0 0x1000>;
947		clocks = <&pmucru SCLK_SPI3_PMU>, <&pmucru PCLK_SPI3_PMU>;
948		clock-names = "spiclk", "apb_pclk";
949		interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH 0>;
950		pinctrl-names = "default";
951		pinctrl-0 = <&spi3_clk &spi3_tx &spi3_rx &spi3_cs0>;
952		#address-cells = <1>;
953		#size-cells = <0>;
954		status = "disabled";
955	};
956
957	uart4: serial@ff370000 {
958		compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
959		reg = <0x0 0xff370000 0x0 0x100>;
960		clocks = <&pmucru SCLK_UART4_PMU>, <&pmucru PCLK_UART4_PMU>;
961		clock-names = "baudclk", "apb_pclk";
962		interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH 0>;
963		reg-shift = <2>;
964		reg-io-width = <4>;
965		pinctrl-names = "default";
966		pinctrl-0 = <&uart4_xfer>;
967		status = "disabled";
968	};
969
970	i2c0: i2c@ff3c0000 {
971		compatible = "rockchip,rk3399-i2c";
972		reg = <0x0 0xff3c0000 0x0 0x1000>;
973		assigned-clocks = <&pmucru SCLK_I2C0_PMU>;
974		assigned-clock-rates = <200000000>;
975		clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>;
976		clock-names = "i2c", "pclk";
977		interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>;
978		pinctrl-names = "default";
979		pinctrl-0 = <&i2c0_xfer>;
980		#address-cells = <1>;
981		#size-cells = <0>;
982		status = "disabled";
983	};
984
985	i2c4: i2c@ff3d0000 {
986		compatible = "rockchip,rk3399-i2c";
987		reg = <0x0 0xff3d0000 0x0 0x1000>;
988		assigned-clocks = <&pmucru SCLK_I2C4_PMU>;
989		assigned-clock-rates = <200000000>;
990		clocks = <&pmucru SCLK_I2C4_PMU>, <&pmucru PCLK_I2C4_PMU>;
991		clock-names = "i2c", "pclk";
992		interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH 0>;
993		pinctrl-names = "default";
994		pinctrl-0 = <&i2c4_xfer>;
995		#address-cells = <1>;
996		#size-cells = <0>;
997		status = "disabled";
998	};
999
1000	i2c8: i2c@ff3e0000 {
1001		compatible = "rockchip,rk3399-i2c";
1002		reg = <0x0 0xff3e0000 0x0 0x1000>;
1003		assigned-clocks = <&pmucru SCLK_I2C8_PMU>;
1004		assigned-clock-rates = <200000000>;
1005		clocks = <&pmucru SCLK_I2C8_PMU>, <&pmucru PCLK_I2C8_PMU>;
1006		clock-names = "i2c", "pclk";
1007		interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
1008		pinctrl-names = "default";
1009		pinctrl-0 = <&i2c8_xfer>;
1010		#address-cells = <1>;
1011		#size-cells = <0>;
1012		status = "disabled";
1013	};
1014
1015	pwm0: pwm@ff420000 {
1016		compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
1017		reg = <0x0 0xff420000 0x0 0x10>;
1018		#pwm-cells = <3>;
1019		pinctrl-names = "default";
1020		pinctrl-0 = <&pwm0_pin>;
1021		clocks = <&pmucru PCLK_RKPWM_PMU>;
1022		clock-names = "pwm";
1023		status = "disabled";
1024	};
1025
1026	pwm1: pwm@ff420010 {
1027		compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
1028		reg = <0x0 0xff420010 0x0 0x10>;
1029		#pwm-cells = <3>;
1030		pinctrl-names = "default";
1031		pinctrl-0 = <&pwm1_pin>;
1032		clocks = <&pmucru PCLK_RKPWM_PMU>;
1033		clock-names = "pwm";
1034		status = "disabled";
1035	};
1036
1037	pwm2: pwm@ff420020 {
1038		compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
1039		reg = <0x0 0xff420020 0x0 0x10>;
1040		#pwm-cells = <3>;
1041		pinctrl-names = "default";
1042		pinctrl-0 = <&pwm2_pin>;
1043		clocks = <&pmucru PCLK_RKPWM_PMU>;
1044		clock-names = "pwm";
1045		status = "disabled";
1046	};
1047
1048	pwm3: pwm@ff420030 {
1049		compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
1050		reg = <0x0 0xff420030 0x0 0x10>;
1051		#pwm-cells = <3>;
1052		pinctrl-names = "default";
1053		pinctrl-0 = <&pwm3a_pin>;
1054		clocks = <&pmucru PCLK_RKPWM_PMU>;
1055		clock-names = "pwm";
1056		status = "disabled";
1057	};
1058
1059	efuse0: efuse@ff690000 {
1060		compatible = "rockchip,rk3399-efuse";
1061		reg = <0x0 0xff690000 0x0 0x80>;
1062		#address-cells = <1>;
1063		#size-cells = <1>;
1064		clocks = <&cru PCLK_EFUSE1024NS>;
1065		clock-names = "pclk_efuse";
1066
1067		/* Data cells */
1068		cpu_id: cpu-id@7 {
1069			reg = <0x07 0x10>;
1070		};
1071		cpub_leakage: cpu-leakage@17 {
1072			reg = <0x17 0x1>;
1073		};
1074		gpu_leakage: gpu-leakage@18 {
1075			reg = <0x18 0x1>;
1076		};
1077		center_leakage: center-leakage@19 {
1078			reg = <0x19 0x1>;
1079		};
1080		cpul_leakage: cpu-leakage@1a {
1081			reg = <0x1a 0x1>;
1082		};
1083		logic_leakage: logic-leakage@1b {
1084			reg = <0x1b 0x1>;
1085		};
1086		wafer_info: wafer-info@1c {
1087			reg = <0x1c 0x1>;
1088		};
1089	};
1090
1091	pmucru: pmu-clock-controller@ff750000 {
1092		compatible = "rockchip,rk3399-pmucru";
1093		reg = <0x0 0xff750000 0x0 0x1000>;
1094		rockchip,grf = <&pmugrf>;
1095		#clock-cells = <1>;
1096		#reset-cells = <1>;
1097		assigned-clocks = <&pmucru PLL_PPLL>;
1098		assigned-clock-rates = <676000000>;
1099	};
1100
1101	cru: clock-controller@ff760000 {
1102		compatible = "rockchip,rk3399-cru";
1103		reg = <0x0 0xff760000 0x0 0x1000>;
1104		rockchip,grf = <&grf>;
1105		#clock-cells = <1>;
1106		#reset-cells = <1>;
1107		assigned-clocks =
1108			<&cru PLL_GPLL>, <&cru PLL_CPLL>,
1109			<&cru PLL_NPLL>,
1110			<&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>,
1111			<&cru PCLK_PERIHP>,
1112			<&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
1113			<&cru PCLK_PERILP0>, <&cru ACLK_CCI>,
1114			<&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>;
1115		assigned-clock-rates =
1116			 <594000000>,  <800000000>,
1117			<1000000000>,
1118			 <150000000>,   <75000000>,
1119			  <37500000>,
1120			 <100000000>,  <100000000>,
1121			  <50000000>, <600000000>,
1122			 <100000000>,   <50000000>;
1123	};
1124
1125	grf: syscon@ff770000 {
1126		compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
1127		reg = <0x0 0xff770000 0x0 0x10000>;
1128		#address-cells = <1>;
1129		#size-cells = <1>;
1130
1131		io_domains: io-domains {
1132			compatible = "rockchip,rk3399-io-voltage-domain";
1133			status = "disabled";
1134		};
1135
1136		u2phy0: usb2-phy@e450 {
1137			compatible = "rockchip,rk3399-usb2phy";
1138			reg = <0xe450 0x10>;
1139			clocks = <&cru SCLK_USB2PHY0_REF>;
1140			clock-names = "phyclk";
1141			#clock-cells = <0>;
1142			clock-output-names = "clk_usbphy0_480m";
1143			status = "disabled";
1144
1145			u2phy0_host: host-port {
1146				#phy-cells = <0>;
1147				interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
1148				interrupt-names = "linestate";
1149				status = "disabled";
1150			};
1151
1152			u2phy0_otg: otg-port {
1153				#phy-cells = <0>;
1154				interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
1155					     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
1156					     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
1157				interrupt-names = "otg-bvalid", "otg-id",
1158						  "linestate";
1159				status = "disabled";
1160			};
1161		};
1162
1163		u2phy1: usb2-phy@e460 {
1164			compatible = "rockchip,rk3399-usb2phy";
1165			reg = <0xe460 0x10>;
1166			clocks = <&cru SCLK_USB2PHY1_REF>;
1167			clock-names = "phyclk";
1168			#clock-cells = <0>;
1169			clock-output-names = "clk_usbphy1_480m";
1170			status = "disabled";
1171
1172			u2phy1_host: host-port {
1173				#phy-cells = <0>;
1174				interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH 0>;
1175				interrupt-names = "linestate";
1176				status = "disabled";
1177			};
1178
1179			u2phy1_otg: otg-port {
1180				#phy-cells = <0>;
1181				interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>,
1182					     <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>,
1183					     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH 0>;
1184				interrupt-names = "otg-bvalid", "otg-id",
1185						  "linestate";
1186				status = "disabled";
1187			};
1188		};
1189
1190		emmc_phy: phy@f780 {
1191			compatible = "rockchip,rk3399-emmc-phy";
1192			reg = <0xf780 0x24>;
1193			clocks = <&sdhci>;
1194			clock-names = "emmcclk";
1195			#phy-cells = <0>;
1196			status = "disabled";
1197		};
1198
1199		pcie_phy: pcie-phy {
1200			compatible = "rockchip,rk3399-pcie-phy";
1201			clocks = <&cru SCLK_PCIEPHY_REF>;
1202			clock-names = "refclk";
1203			#phy-cells = <0>;
1204			resets = <&cru SRST_PCIEPHY>;
1205			reset-names = "phy";
1206			status = "disabled";
1207		};
1208	};
1209
1210	tcphy0: phy@ff7c0000 {
1211		compatible = "rockchip,rk3399-typec-phy";
1212		reg = <0x0 0xff7c0000 0x0 0x40000>;
1213		clocks = <&cru SCLK_UPHY0_TCPDCORE>,
1214			 <&cru SCLK_UPHY0_TCPDPHY_REF>;
1215		clock-names = "tcpdcore", "tcpdphy-ref";
1216		assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>;
1217		assigned-clock-rates = <50000000>;
1218		power-domains = <&power RK3399_PD_TCPD0>;
1219		resets = <&cru SRST_UPHY0>,
1220			 <&cru SRST_UPHY0_PIPE_L00>,
1221			 <&cru SRST_P_UPHY0_TCPHY>;
1222		reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
1223		rockchip,grf = <&grf>;
1224		rockchip,typec-conn-dir = <0xe580 0 16>;
1225		rockchip,usb3tousb2-en = <0xe580 3 19>;
1226		rockchip,external-psm = <0xe588 14 30>;
1227		rockchip,pipe-status = <0xe5c0 0 0>;
1228		status = "disabled";
1229
1230		tcphy0_dp: dp-port {
1231			#phy-cells = <0>;
1232		};
1233
1234		tcphy0_usb3: usb3-port {
1235			#phy-cells = <0>;
1236		};
1237	};
1238
1239	tcphy1: phy@ff800000 {
1240		compatible = "rockchip,rk3399-typec-phy";
1241		reg = <0x0 0xff800000 0x0 0x40000>;
1242		clocks = <&cru SCLK_UPHY1_TCPDCORE>,
1243			 <&cru SCLK_UPHY1_TCPDPHY_REF>;
1244		clock-names = "tcpdcore", "tcpdphy-ref";
1245		assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>;
1246		assigned-clock-rates = <50000000>;
1247		power-domains = <&power RK3399_PD_TCPD1>;
1248		resets = <&cru SRST_UPHY1>,
1249			 <&cru SRST_UPHY1_PIPE_L00>,
1250			 <&cru SRST_P_UPHY1_TCPHY>;
1251		reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
1252		rockchip,grf = <&grf>;
1253		rockchip,typec-conn-dir = <0xe58c 0 16>;
1254		rockchip,usb3tousb2-en = <0xe58c 3 19>;
1255		rockchip,external-psm = <0xe594 14 30>;
1256		rockchip,pipe-status = <0xe5c0 16 16>;
1257		status = "disabled";
1258
1259		tcphy1_dp: dp-port {
1260			#phy-cells = <0>;
1261		};
1262
1263		tcphy1_usb3: usb3-port {
1264			#phy-cells = <0>;
1265		};
1266	};
1267
1268	watchdog@ff848000 {
1269		compatible = "snps,dw-wdt";
1270		reg = <0x0 0xff848000 0x0 0x100>;
1271		clocks = <&cru PCLK_WDT>;
1272		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>;
1273	};
1274
1275	rktimer: rktimer@ff850000 {
1276		compatible = "rockchip,rk3399-timer";
1277		reg = <0x0 0xff850000 0x0 0x1000>;
1278		interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH 0>;
1279		clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER00>;
1280		clock-names = "pclk", "timer";
1281	};
1282
1283	spdif: spdif@ff870000 {
1284		compatible = "rockchip,rk3399-spdif";
1285		reg = <0x0 0xff870000 0x0 0x1000>;
1286		interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH 0>;
1287		dmas = <&dmac_bus 7>;
1288		dma-names = "tx";
1289		clock-names = "mclk", "hclk";
1290		clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>;
1291		pinctrl-names = "default";
1292		pinctrl-0 = <&spdif_bus>;
1293		status = "disabled";
1294	};
1295
1296	i2s0: i2s@ff880000 {
1297		compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
1298		reg = <0x0 0xff880000 0x0 0x1000>;
1299		rockchip,grf = <&grf>;
1300		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH 0>;
1301		dmas = <&dmac_bus 0>, <&dmac_bus 1>;
1302		dma-names = "tx", "rx";
1303		clock-names = "i2s_clk", "i2s_hclk";
1304		clocks = <&cru SCLK_I2S0_8CH>, <&cru HCLK_I2S0_8CH>;
1305		pinctrl-names = "default";
1306		pinctrl-0 = <&i2s0_8ch_bus>;
1307		status = "disabled";
1308	};
1309
1310	i2s1: i2s@ff890000 {
1311		compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
1312		reg = <0x0 0xff890000 0x0 0x1000>;
1313		interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH 0>;
1314		dmas = <&dmac_bus 2>, <&dmac_bus 3>;
1315		dma-names = "tx", "rx";
1316		clock-names = "i2s_clk", "i2s_hclk";
1317		clocks = <&cru SCLK_I2S1_8CH>, <&cru HCLK_I2S1_8CH>;
1318		pinctrl-names = "default";
1319		pinctrl-0 = <&i2s1_2ch_bus>;
1320		status = "disabled";
1321	};
1322
1323	i2s2: i2s@ff8a0000 {
1324		compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
1325		reg = <0x0 0xff8a0000 0x0 0x1000>;
1326		interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH 0>;
1327		dmas = <&dmac_bus 4>, <&dmac_bus 5>;
1328		dma-names = "tx", "rx";
1329		clock-names = "i2s_clk", "i2s_hclk";
1330		clocks = <&cru SCLK_I2S2_8CH>, <&cru HCLK_I2S2_8CH>;
1331		status = "disabled";
1332	};
1333
1334	pinctrl: pinctrl {
1335		compatible = "rockchip,rk3399-pinctrl";
1336		rockchip,grf = <&grf>;
1337		rockchip,pmu = <&pmugrf>;
1338		#address-cells = <2>;
1339		#size-cells = <2>;
1340		ranges;
1341
1342		gpio0: gpio0@ff720000 {
1343			compatible = "rockchip,gpio-bank";
1344			reg = <0x0 0xff720000 0x0 0x100>;
1345			clocks = <&pmucru PCLK_GPIO0_PMU>;
1346			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH 0>;
1347
1348			gpio-controller;
1349			#gpio-cells = <0x2>;
1350
1351			interrupt-controller;
1352			#interrupt-cells = <0x2>;
1353		};
1354
1355		gpio1: gpio1@ff730000 {
1356			compatible = "rockchip,gpio-bank";
1357			reg = <0x0 0xff730000 0x0 0x100>;
1358			clocks = <&pmucru PCLK_GPIO1_PMU>;
1359			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH 0>;
1360
1361			gpio-controller;
1362			#gpio-cells = <0x2>;
1363
1364			interrupt-controller;
1365			#interrupt-cells = <0x2>;
1366		};
1367
1368		gpio2: gpio2@ff780000 {
1369			compatible = "rockchip,gpio-bank";
1370			reg = <0x0 0xff780000 0x0 0x100>;
1371			clocks = <&cru PCLK_GPIO2>;
1372			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH 0>;
1373
1374			gpio-controller;
1375			#gpio-cells = <0x2>;
1376
1377			interrupt-controller;
1378			#interrupt-cells = <0x2>;
1379		};
1380
1381		gpio3: gpio3@ff788000 {
1382			compatible = "rockchip,gpio-bank";
1383			reg = <0x0 0xff788000 0x0 0x100>;
1384			clocks = <&cru PCLK_GPIO3>;
1385			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>;
1386
1387			gpio-controller;
1388			#gpio-cells = <0x2>;
1389
1390			interrupt-controller;
1391			#interrupt-cells = <0x2>;
1392		};
1393
1394		gpio4: gpio4@ff790000 {
1395			compatible = "rockchip,gpio-bank";
1396			reg = <0x0 0xff790000 0x0 0x100>;
1397			clocks = <&cru PCLK_GPIO4>;
1398			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 0>;
1399
1400			gpio-controller;
1401			#gpio-cells = <0x2>;
1402
1403			interrupt-controller;
1404			#interrupt-cells = <0x2>;
1405		};
1406
1407		pcfg_pull_up: pcfg-pull-up {
1408			bias-pull-up;
1409		};
1410
1411		pcfg_pull_down: pcfg-pull-down {
1412			bias-pull-down;
1413		};
1414
1415		pcfg_pull_none: pcfg-pull-none {
1416			bias-disable;
1417		};
1418
1419		pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1420			bias-disable;
1421			drive-strength = <12>;
1422		};
1423
1424		pcfg_pull_up_8ma: pcfg-pull-up-8ma {
1425			bias-pull-up;
1426			drive-strength = <8>;
1427		};
1428
1429		pcfg_pull_down_4ma: pcfg-pull-down-4ma {
1430			bias-pull-down;
1431			drive-strength = <4>;
1432		};
1433
1434		pcfg_pull_up_2ma: pcfg-pull-up-2ma {
1435			bias-pull-up;
1436			drive-strength = <2>;
1437		};
1438
1439		pcfg_pull_down_12ma: pcfg-pull-down-12ma {
1440			bias-pull-down;
1441			drive-strength = <12>;
1442		};
1443
1444		pcfg_pull_none_13ma: pcfg-pull-none-13ma {
1445			bias-disable;
1446			drive-strength = <13>;
1447		};
1448
1449		clock {
1450			clk_32k: clk-32k {
1451				rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>;
1452			};
1453		};
1454
1455		edp {
1456			edp_hpd: edp-hpd {
1457				rockchip,pins =
1458					<4 23 RK_FUNC_2 &pcfg_pull_none>;
1459			};
1460		};
1461
1462		gmac {
1463			rgmii_pins: rgmii-pins {
1464				rockchip,pins =
1465					/* mac_txclk */
1466					<3 17 RK_FUNC_1 &pcfg_pull_none_13ma>,
1467					/* mac_rxclk */
1468					<3 14 RK_FUNC_1 &pcfg_pull_none>,
1469					/* mac_mdio */
1470					<3 13 RK_FUNC_1 &pcfg_pull_none>,
1471					/* mac_txen */
1472					<3 12 RK_FUNC_1 &pcfg_pull_none_13ma>,
1473					/* mac_clk */
1474					<3 11 RK_FUNC_1 &pcfg_pull_none>,
1475					/* mac_rxdv */
1476					<3 9 RK_FUNC_1 &pcfg_pull_none>,
1477					/* mac_mdc */
1478					<3 8 RK_FUNC_1 &pcfg_pull_none>,
1479					/* mac_rxd1 */
1480					<3 7 RK_FUNC_1 &pcfg_pull_none>,
1481					/* mac_rxd0 */
1482					<3 6 RK_FUNC_1 &pcfg_pull_none>,
1483					/* mac_txd1 */
1484					<3 5 RK_FUNC_1 &pcfg_pull_none_13ma>,
1485					/* mac_txd0 */
1486					<3 4 RK_FUNC_1 &pcfg_pull_none_13ma>,
1487					/* mac_rxd3 */
1488					<3 3 RK_FUNC_1 &pcfg_pull_none>,
1489					/* mac_rxd2 */
1490					<3 2 RK_FUNC_1 &pcfg_pull_none>,
1491					/* mac_txd3 */
1492					<3 1 RK_FUNC_1 &pcfg_pull_none_13ma>,
1493					/* mac_txd2 */
1494					<3 0 RK_FUNC_1 &pcfg_pull_none_13ma>;
1495			};
1496
1497			rmii_pins: rmii-pins {
1498				rockchip,pins =
1499					/* mac_mdio */
1500					<3 13 RK_FUNC_1 &pcfg_pull_none>,
1501					/* mac_txen */
1502					<3 12 RK_FUNC_1 &pcfg_pull_none_13ma>,
1503					/* mac_clk */
1504					<3 11 RK_FUNC_1 &pcfg_pull_none>,
1505					/* mac_rxer */
1506					<3 10 RK_FUNC_1 &pcfg_pull_none>,
1507					/* mac_rxdv */
1508					<3 9 RK_FUNC_1 &pcfg_pull_none>,
1509					/* mac_mdc */
1510					<3 8 RK_FUNC_1 &pcfg_pull_none>,
1511					/* mac_rxd1 */
1512					<3 7 RK_FUNC_1 &pcfg_pull_none>,
1513					/* mac_rxd0 */
1514					<3 6 RK_FUNC_1 &pcfg_pull_none>,
1515					/* mac_txd1 */
1516					<3 5 RK_FUNC_1 &pcfg_pull_none_13ma>,
1517					/* mac_txd0 */
1518					<3 4 RK_FUNC_1 &pcfg_pull_none_13ma>;
1519			};
1520		};
1521
1522		i2c0 {
1523			i2c0_xfer: i2c0-xfer {
1524				rockchip,pins =
1525					<1 15 RK_FUNC_2 &pcfg_pull_none>,
1526					<1 16 RK_FUNC_2 &pcfg_pull_none>;
1527			};
1528		};
1529
1530		i2c1 {
1531			i2c1_xfer: i2c1-xfer {
1532				rockchip,pins =
1533					<4 2 RK_FUNC_1 &pcfg_pull_none>,
1534					<4 1 RK_FUNC_1 &pcfg_pull_none>;
1535			};
1536		};
1537
1538		i2c2 {
1539			i2c2_xfer: i2c2-xfer {
1540				rockchip,pins =
1541					<2 1 RK_FUNC_2 &pcfg_pull_none_12ma>,
1542					<2 0 RK_FUNC_2 &pcfg_pull_none_12ma>;
1543			};
1544		};
1545
1546		i2c3 {
1547			i2c3_xfer: i2c3-xfer {
1548				rockchip,pins =
1549					<4 17 RK_FUNC_1 &pcfg_pull_none>,
1550					<4 16 RK_FUNC_1 &pcfg_pull_none>;
1551			};
1552		};
1553
1554		i2c4 {
1555			i2c4_xfer: i2c4-xfer {
1556				rockchip,pins =
1557					<1 12 RK_FUNC_1 &pcfg_pull_none>,
1558					<1 11 RK_FUNC_1 &pcfg_pull_none>;
1559			};
1560		};
1561
1562		i2c5 {
1563			i2c5_xfer: i2c5-xfer {
1564				rockchip,pins =
1565					<3 11 RK_FUNC_2 &pcfg_pull_none>,
1566					<3 10 RK_FUNC_2 &pcfg_pull_none>;
1567			};
1568		};
1569
1570		i2c6 {
1571			i2c6_xfer: i2c6-xfer {
1572				rockchip,pins =
1573					<2 10 RK_FUNC_2 &pcfg_pull_none>,
1574					<2 9 RK_FUNC_2 &pcfg_pull_none>;
1575			};
1576		};
1577
1578		i2c7 {
1579			i2c7_xfer: i2c7-xfer {
1580				rockchip,pins =
1581					<2 8 RK_FUNC_2 &pcfg_pull_none>,
1582					<2 7 RK_FUNC_2 &pcfg_pull_none>;
1583			};
1584		};
1585
1586		i2c8 {
1587			i2c8_xfer: i2c8-xfer {
1588				rockchip,pins =
1589					<1 21 RK_FUNC_1 &pcfg_pull_none>,
1590					<1 20 RK_FUNC_1 &pcfg_pull_none>;
1591			};
1592		};
1593
1594		i2s0 {
1595			i2s0_8ch_bus: i2s0-8ch-bus {
1596				rockchip,pins =
1597					<3 24 RK_FUNC_1 &pcfg_pull_none>,
1598					<3 25 RK_FUNC_1 &pcfg_pull_none>,
1599					<3 26 RK_FUNC_1 &pcfg_pull_none>,
1600					<3 27 RK_FUNC_1 &pcfg_pull_none>,
1601					<3 28 RK_FUNC_1 &pcfg_pull_none>,
1602					<3 29 RK_FUNC_1 &pcfg_pull_none>,
1603					<3 30 RK_FUNC_1 &pcfg_pull_none>,
1604					<3 31 RK_FUNC_1 &pcfg_pull_none>,
1605					<4 0 RK_FUNC_1 &pcfg_pull_none>;
1606			};
1607		};
1608
1609		i2s1 {
1610			i2s1_2ch_bus: i2s1-2ch-bus {
1611				rockchip,pins =
1612					<4 3 RK_FUNC_1 &pcfg_pull_none>,
1613					<4 4 RK_FUNC_1 &pcfg_pull_none>,
1614					<4 5 RK_FUNC_1 &pcfg_pull_none>,
1615					<4 6 RK_FUNC_1 &pcfg_pull_none>,
1616					<4 7 RK_FUNC_1 &pcfg_pull_none>;
1617			};
1618		};
1619
1620		sleep {
1621			ap_pwroff: ap-pwroff {
1622				rockchip,pins = <1 5 RK_FUNC_1 &pcfg_pull_none>;
1623			};
1624
1625			ddrio_pwroff: ddrio-pwroff {
1626				rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
1627			};
1628		};
1629
1630		spdif {
1631			spdif_bus: spdif-bus {
1632				rockchip,pins =
1633					<4 21 RK_FUNC_1 &pcfg_pull_none>;
1634			};
1635		};
1636
1637		spi0 {
1638			spi0_clk: spi0-clk {
1639				rockchip,pins =
1640					<3 6 RK_FUNC_2 &pcfg_pull_up>;
1641			};
1642			spi0_cs0: spi0-cs0 {
1643				rockchip,pins =
1644					<3 7 RK_FUNC_2 &pcfg_pull_up>;
1645			};
1646			spi0_cs1: spi0-cs1 {
1647				rockchip,pins =
1648					<3 8 RK_FUNC_2 &pcfg_pull_up>;
1649			};
1650			spi0_tx: spi0-tx {
1651				rockchip,pins =
1652					<3 5 RK_FUNC_2 &pcfg_pull_up>;
1653			};
1654			spi0_rx: spi0-rx {
1655				rockchip,pins =
1656					<3 4 RK_FUNC_2 &pcfg_pull_up>;
1657			};
1658		};
1659
1660		spi1 {
1661			spi1_clk: spi1-clk {
1662				rockchip,pins =
1663					<1 9 RK_FUNC_2 &pcfg_pull_up>;
1664			};
1665			spi1_cs0: spi1-cs0 {
1666				rockchip,pins =
1667					<1 10 RK_FUNC_2 &pcfg_pull_up>;
1668			};
1669			spi1_rx: spi1-rx {
1670				rockchip,pins =
1671					<1 7 RK_FUNC_2 &pcfg_pull_up>;
1672			};
1673			spi1_tx: spi1-tx {
1674				rockchip,pins =
1675					<1 8 RK_FUNC_2 &pcfg_pull_up>;
1676			};
1677		};
1678
1679		spi2 {
1680			spi2_clk: spi2-clk {
1681				rockchip,pins =
1682					<2 11 RK_FUNC_1 &pcfg_pull_up>;
1683			};
1684			spi2_cs0: spi2-cs0 {
1685				rockchip,pins =
1686					<2 12 RK_FUNC_1 &pcfg_pull_up>;
1687			};
1688			spi2_rx: spi2-rx {
1689				rockchip,pins =
1690					<2 9 RK_FUNC_1 &pcfg_pull_up>;
1691			};
1692			spi2_tx: spi2-tx {
1693				rockchip,pins =
1694					<2 10 RK_FUNC_1 &pcfg_pull_up>;
1695			};
1696		};
1697
1698		spi3 {
1699			spi3_clk: spi3-clk {
1700				rockchip,pins =
1701					<1 17 RK_FUNC_1 &pcfg_pull_up>;
1702			};
1703			spi3_cs0: spi3-cs0 {
1704				rockchip,pins =
1705					<1 18 RK_FUNC_1 &pcfg_pull_up>;
1706			};
1707			spi3_rx: spi3-rx {
1708				rockchip,pins =
1709					<1 15 RK_FUNC_1 &pcfg_pull_up>;
1710			};
1711			spi3_tx: spi3-tx {
1712				rockchip,pins =
1713					<1 16 RK_FUNC_1 &pcfg_pull_up>;
1714			};
1715		};
1716
1717		spi4 {
1718			spi4_clk: spi4-clk {
1719				rockchip,pins =
1720					<3 2 RK_FUNC_2 &pcfg_pull_up>;
1721			};
1722			spi4_cs0: spi4-cs0 {
1723				rockchip,pins =
1724					<3 3 RK_FUNC_2 &pcfg_pull_up>;
1725			};
1726			spi4_rx: spi4-rx {
1727				rockchip,pins =
1728					<3 0 RK_FUNC_2 &pcfg_pull_up>;
1729			};
1730			spi4_tx: spi4-tx {
1731				rockchip,pins =
1732					<3 1 RK_FUNC_2 &pcfg_pull_up>;
1733			};
1734		};
1735
1736		spi5 {
1737			spi5_clk: spi5-clk {
1738				rockchip,pins =
1739					<2 22 RK_FUNC_2 &pcfg_pull_up>;
1740			};
1741			spi5_cs0: spi5-cs0 {
1742				rockchip,pins =
1743					<2 23 RK_FUNC_2 &pcfg_pull_up>;
1744			};
1745			spi5_rx: spi5-rx {
1746				rockchip,pins =
1747					<2 20 RK_FUNC_2 &pcfg_pull_up>;
1748			};
1749			spi5_tx: spi5-tx {
1750				rockchip,pins =
1751					<2 21 RK_FUNC_2 &pcfg_pull_up>;
1752			};
1753		};
1754
1755		tsadc {
1756			otp_gpio: otp-gpio {
1757				rockchip,pins = <1 6 RK_FUNC_GPIO &pcfg_pull_none>;
1758			};
1759
1760			otp_out: otp-out {
1761				rockchip,pins = <1 6 RK_FUNC_1 &pcfg_pull_none>;
1762			};
1763		};
1764
1765		uart0 {
1766			uart0_xfer: uart0-xfer {
1767				rockchip,pins =
1768					<2 16 RK_FUNC_1 &pcfg_pull_up>,
1769					<2 17 RK_FUNC_1 &pcfg_pull_none>;
1770			};
1771
1772			uart0_cts: uart0-cts {
1773				rockchip,pins =
1774					<2 18 RK_FUNC_1 &pcfg_pull_none>;
1775			};
1776
1777			uart0_rts: uart0-rts {
1778				rockchip,pins =
1779					<2 19 RK_FUNC_1 &pcfg_pull_none>;
1780			};
1781		};
1782
1783		uart1 {
1784			uart1_xfer: uart1-xfer {
1785				rockchip,pins =
1786					<3 12 RK_FUNC_2 &pcfg_pull_up>,
1787					<3 13 RK_FUNC_2 &pcfg_pull_none>;
1788			};
1789		};
1790
1791		uart2a {
1792			uart2a_xfer: uart2a-xfer {
1793				rockchip,pins =
1794					<4 8 RK_FUNC_2 &pcfg_pull_up>,
1795					<4 9 RK_FUNC_2 &pcfg_pull_none>;
1796			};
1797		};
1798
1799		uart2b {
1800			uart2b_xfer: uart2b-xfer {
1801				rockchip,pins =
1802					<4 16 RK_FUNC_2 &pcfg_pull_up>,
1803					<4 17 RK_FUNC_2 &pcfg_pull_none>;
1804			};
1805		};
1806
1807		uart2c {
1808			uart2c_xfer: uart2c-xfer {
1809				rockchip,pins =
1810					<4 19 RK_FUNC_1 &pcfg_pull_up>,
1811					<4 20 RK_FUNC_1 &pcfg_pull_none>;
1812			};
1813		};
1814
1815		uart3 {
1816			uart3_xfer: uart3-xfer {
1817				rockchip,pins =
1818					<3 14 RK_FUNC_2 &pcfg_pull_up>,
1819					<3 15 RK_FUNC_2 &pcfg_pull_none>;
1820			};
1821
1822			uart3_cts: uart3-cts {
1823				rockchip,pins =
1824					<3 18 RK_FUNC_2 &pcfg_pull_none>;
1825			};
1826
1827			uart3_rts: uart3-rts {
1828				rockchip,pins =
1829					<3 19 RK_FUNC_2 &pcfg_pull_none>;
1830			};
1831		};
1832
1833		uart4 {
1834			uart4_xfer: uart4-xfer {
1835				rockchip,pins =
1836					<1 7 RK_FUNC_1 &pcfg_pull_up>,
1837					<1 8 RK_FUNC_1 &pcfg_pull_none>;
1838			};
1839		};
1840
1841		uarthdcp {
1842			uarthdcp_xfer: uarthdcp-xfer {
1843				rockchip,pins =
1844					<4 21 RK_FUNC_2 &pcfg_pull_up>,
1845					<4 22 RK_FUNC_2 &pcfg_pull_none>;
1846			};
1847		};
1848
1849		pwm0 {
1850			pwm0_pin: pwm0-pin {
1851				rockchip,pins =
1852					<4 18 RK_FUNC_1 &pcfg_pull_none>;
1853			};
1854
1855			vop0_pwm_pin: vop0-pwm-pin {
1856				rockchip,pins =
1857					<4 18 RK_FUNC_2 &pcfg_pull_none>;
1858			};
1859		};
1860
1861		pwm1 {
1862			pwm1_pin: pwm1-pin {
1863				rockchip,pins =
1864					<4 22 RK_FUNC_1 &pcfg_pull_none>;
1865			};
1866
1867			vop1_pwm_pin: vop1-pwm-pin {
1868				rockchip,pins =
1869					<4 18 RK_FUNC_3 &pcfg_pull_none>;
1870			};
1871		};
1872
1873		pwm2 {
1874			pwm2_pin: pwm2-pin {
1875				rockchip,pins =
1876					<1 19 RK_FUNC_1 &pcfg_pull_none>;
1877			};
1878		};
1879
1880		pwm3a {
1881			pwm3a_pin: pwm3a-pin {
1882				rockchip,pins =
1883					<0 6 RK_FUNC_1 &pcfg_pull_none>;
1884			};
1885		};
1886
1887		pwm3b {
1888			pwm3b_pin: pwm3b-pin {
1889				rockchip,pins =
1890					<1 14 RK_FUNC_1 &pcfg_pull_none>;
1891			};
1892		};
1893
1894		pcie {
1895			pcie_clkreqn: pci-clkreqn {
1896				rockchip,pins =
1897					<2 26 RK_FUNC_2 &pcfg_pull_none>;
1898			};
1899
1900			pcie_clkreqnb: pci-clkreqnb {
1901				rockchip,pins =
1902					<4 24 RK_FUNC_1 &pcfg_pull_none>;
1903			};
1904		};
1905
1906	};
1907};
1908