blob: b53e41b4dcd9c037d8cc508b6a5cf5bbc1180ae4 [file] [log] [blame]
Tom Rini83d290c2018-05-06 17:58:06 -04001// SPDX-License-Identifier: GPL-2.0+
Kever Yang777c8342016-07-19 21:16:58 +08002/*
Kever Yangdde22232017-04-19 18:17:31 +08003 * Copyright (c) 2016-2017 Fuzhou Rockchip Electronics Co., Ltd.
Kever Yang777c8342016-07-19 21:16:58 +08004 */
5
6#include <dt-bindings/clock/rk3399-cru.h>
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9#include <dt-bindings/interrupt-controller/irq.h>
10#include <dt-bindings/pinctrl/rockchip.h>
Kever Yangdde22232017-04-19 18:17:31 +080011#include <dt-bindings/power/rk3399-power.h>
12#include <dt-bindings/thermal/thermal.h>
MengDongyangfa5e2d12016-08-24 12:02:20 +080013#define USB_CLASS_HUB 9
Kever Yang777c8342016-07-19 21:16:58 +080014
15/ {
16 compatible = "rockchip,rk3399";
17
18 interrupt-parent = <&gic>;
19 #address-cells = <2>;
20 #size-cells = <2>;
21
22 aliases {
Kever Yangdde22232017-04-19 18:17:31 +080023 i2c0 = &i2c0;
24 i2c1 = &i2c1;
25 i2c2 = &i2c2;
26 i2c3 = &i2c3;
27 i2c4 = &i2c4;
28 i2c5 = &i2c5;
29 i2c6 = &i2c6;
30 i2c7 = &i2c7;
31 i2c8 = &i2c8;
Kever Yang777c8342016-07-19 21:16:58 +080032 serial0 = &uart0;
33 serial1 = &uart1;
34 serial2 = &uart2;
35 serial3 = &uart3;
36 serial4 = &uart4;
Eddie Cai5f9411a2017-02-20 14:02:37 +080037 mmc0 = &sdhci;
38 mmc1 = &sdmmc;
Kever Yang777c8342016-07-19 21:16:58 +080039 };
40
41 cpus {
42 #address-cells = <2>;
43 #size-cells = <0>;
44
45 cpu-map {
46 cluster0 {
47 core0 {
48 cpu = <&cpu_l0>;
49 };
50 core1 {
51 cpu = <&cpu_l1>;
52 };
53 core2 {
54 cpu = <&cpu_l2>;
55 };
56 core3 {
57 cpu = <&cpu_l3>;
58 };
59 };
60
61 cluster1 {
62 core0 {
63 cpu = <&cpu_b0>;
64 };
65 core1 {
66 cpu = <&cpu_b1>;
67 };
68 };
69 };
70
71 cpu_l0: cpu@0 {
72 device_type = "cpu";
73 compatible = "arm,cortex-a53", "arm,armv8";
74 reg = <0x0 0x0>;
75 enable-method = "psci";
76 #cooling-cells = <2>; /* min followed by max */
77 clocks = <&cru ARMCLKL>;
78 };
79
80 cpu_l1: cpu@1 {
81 device_type = "cpu";
82 compatible = "arm,cortex-a53", "arm,armv8";
83 reg = <0x0 0x1>;
84 enable-method = "psci";
85 clocks = <&cru ARMCLKL>;
86 };
87
88 cpu_l2: cpu@2 {
89 device_type = "cpu";
90 compatible = "arm,cortex-a53", "arm,armv8";
91 reg = <0x0 0x2>;
92 enable-method = "psci";
93 clocks = <&cru ARMCLKL>;
94 };
95
96 cpu_l3: cpu@3 {
97 device_type = "cpu";
98 compatible = "arm,cortex-a53", "arm,armv8";
99 reg = <0x0 0x3>;
100 enable-method = "psci";
101 clocks = <&cru ARMCLKL>;
102 };
103
104 cpu_b0: cpu@100 {
105 device_type = "cpu";
106 compatible = "arm,cortex-a72", "arm,armv8";
107 reg = <0x0 0x100>;
108 enable-method = "psci";
109 #cooling-cells = <2>; /* min followed by max */
110 clocks = <&cru ARMCLKB>;
111 };
112
113 cpu_b1: cpu@101 {
114 device_type = "cpu";
115 compatible = "arm,cortex-a72", "arm,armv8";
116 reg = <0x0 0x101>;
117 enable-method = "psci";
118 clocks = <&cru ARMCLKB>;
119 };
120 };
121
Kever Yangdde22232017-04-19 18:17:31 +0800122 pmu_a53 {
123 compatible = "arm,cortex-a53-pmu";
124 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>;
125 };
126
127 pmu_a72 {
128 compatible = "arm,cortex-a72-pmu";
129 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>;
130 };
131
Kever Yang777c8342016-07-19 21:16:58 +0800132 psci {
133 compatible = "arm,psci-1.0";
134 method = "smc";
135 };
136
137 timer {
138 compatible = "arm,armv8-timer";
Kever Yangdde22232017-04-19 18:17:31 +0800139 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
140 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
141 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
142 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
143 arm,no-tick-in-suspend;
Kever Yang777c8342016-07-19 21:16:58 +0800144 };
145
146 xin24m: xin24m {
147 compatible = "fixed-clock";
148 clock-frequency = <24000000>;
149 clock-output-names = "xin24m";
150 #clock-cells = <0>;
151 };
152
153 amba {
154 compatible = "simple-bus";
155 #address-cells = <2>;
156 #size-cells = <2>;
157 ranges;
158
159 dmac_bus: dma-controller@ff6d0000 {
160 compatible = "arm,pl330", "arm,primecell";
161 reg = <0x0 0xff6d0000 0x0 0x4000>;
Kever Yangdde22232017-04-19 18:17:31 +0800162 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH 0>,
163 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +0800164 #dma-cells = <1>;
165 clocks = <&cru ACLK_DMAC0_PERILP>;
166 clock-names = "apb_pclk";
167 };
168
169 dmac_peri: dma-controller@ff6e0000 {
170 compatible = "arm,pl330", "arm,primecell";
171 reg = <0x0 0xff6e0000 0x0 0x4000>;
Kever Yangdde22232017-04-19 18:17:31 +0800172 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH 0>,
173 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +0800174 #dma-cells = <1>;
175 clocks = <&cru ACLK_DMAC1_PERILP>;
176 clock-names = "apb_pclk";
177 };
178 };
179
Kever Yangdde22232017-04-19 18:17:31 +0800180 pcie0: pcie@f8000000 {
181 compatible = "rockchip,rk3399-pcie";
182 reg = <0x0 0xf8000000 0x0 0x2000000>,
183 <0x0 0xfd000000 0x0 0x1000000>;
184 reg-names = "axi-base", "apb-base";
185 #address-cells = <3>;
186 #size-cells = <2>;
187 #interrupt-cells = <1>;
188 aspm-no-l0s;
189 bus-range = <0x0 0x1>;
190 clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>,
191 <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>;
192 clock-names = "aclk", "aclk-perf",
193 "hclk", "pm";
194 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH 0>,
195 <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH 0>,
196 <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH 0>;
197 interrupt-names = "sys", "legacy", "client";
198 interrupt-map-mask = <0 0 0 7>;
199 interrupt-map = <0 0 0 1 &pcie0_intc 0>,
200 <0 0 0 2 &pcie0_intc 1>,
201 <0 0 0 3 &pcie0_intc 2>,
202 <0 0 0 4 &pcie0_intc 3>;
203 linux,pci-domain = <0>;
204 max-link-speed = <1>;
205 msi-map = <0x0 &its 0x0 0x1000>;
206 phys = <&pcie_phy>;
207 phy-names = "pcie-phy";
208 ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x600000
209 0x81000000 0x0 0xfa600000 0x0 0xfa600000 0x0 0x100000>;
210 resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>,
211 <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>,
212 <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>,
213 <&cru SRST_A_PCIE>;
214 reset-names = "core", "mgmt", "mgmt-sticky", "pipe",
215 "pm", "pclk", "aclk";
216 status = "disabled";
217
218 pcie0_intc: interrupt-controller {
219 interrupt-controller;
220 #address-cells = <0>;
221 #interrupt-cells = <1>;
222 };
223 };
224
225 gmac: ethernet@fe300000 {
226 compatible = "rockchip,rk3399-gmac";
227 reg = <0x0 0xfe300000 0x0 0x10000>;
228 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH 0>;
229 interrupt-names = "macirq";
230 clocks = <&cru SCLK_MAC>, <&cru SCLK_MAC_RX>,
231 <&cru SCLK_MAC_TX>, <&cru SCLK_MACREF>,
232 <&cru SCLK_MACREF_OUT>, <&cru ACLK_GMAC>,
233 <&cru PCLK_GMAC>;
234 clock-names = "stmmaceth", "mac_clk_rx",
235 "mac_clk_tx", "clk_mac_ref",
236 "clk_mac_refout", "aclk_mac",
237 "pclk_mac";
238 power-domains = <&power RK3399_PD_GMAC>;
239 resets = <&cru SRST_A_GMAC>;
240 reset-names = "stmmaceth";
241 rockchip,grf = <&grf>;
242 status = "disabled";
243 };
244
Kever Yang777c8342016-07-19 21:16:58 +0800245 sdio0: dwmmc@fe310000 {
246 compatible = "rockchip,rk3399-dw-mshc",
247 "rockchip,rk3288-dw-mshc";
248 reg = <0x0 0xfe310000 0x0 0x4000>;
Kever Yangdde22232017-04-19 18:17:31 +0800249 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH 0>;
250 max-frequency = <150000000>;
Kever Yang777c8342016-07-19 21:16:58 +0800251 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
252 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
253 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
254 fifo-depth = <0x100>;
Kever Yangdde22232017-04-19 18:17:31 +0800255 power-domains = <&power RK3399_PD_SDIOAUDIO>;
256 resets = <&cru SRST_SDIO0>;
257 reset-names = "reset";
Kever Yang777c8342016-07-19 21:16:58 +0800258 status = "disabled";
259 };
260
261 sdmmc: dwmmc@fe320000 {
262 compatible = "rockchip,rk3399-dw-mshc",
263 "rockchip,rk3288-dw-mshc";
264 reg = <0x0 0xfe320000 0x0 0x4000>;
Kever Yangdde22232017-04-19 18:17:31 +0800265 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>;
266 max-frequency = <150000000>;
267 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
Kever Yang777c8342016-07-19 21:16:58 +0800268 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
Kever Yangdde22232017-04-19 18:17:31 +0800269 clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
Kever Yang777c8342016-07-19 21:16:58 +0800270 fifo-depth = <0x100>;
Kever Yangdde22232017-04-19 18:17:31 +0800271 power-domains = <&power RK3399_PD_SD>;
272 resets = <&cru SRST_SDMMC>;
273 reset-names = "reset";
Kever Yang777c8342016-07-19 21:16:58 +0800274 status = "disabled";
275 };
276
277 sdhci: sdhci@fe330000 {
Kever Yanga82426e2017-02-22 16:56:36 +0800278 u-boot,dm-pre-reloc;
Kever Yang777c8342016-07-19 21:16:58 +0800279 compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1";
280 reg = <0x0 0xfe330000 0x0 0x10000>;
Kever Yangdde22232017-04-19 18:17:31 +0800281 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH 0>;
282 arasan,soc-ctl-syscon = <&grf>;
Kever Yang777c8342016-07-19 21:16:58 +0800283 assigned-clocks = <&cru SCLK_EMMC>;
284 assigned-clock-rates = <200000000>;
Kever Yangf5f3de82016-12-28 11:32:36 +0800285 max-frequency = <200000000>;
Kever Yang777c8342016-07-19 21:16:58 +0800286 clocks = <&cru SCLK_EMMC>, <&cru ACLK_EMMC>;
287 clock-names = "clk_xin", "clk_ahb";
Kever Yangdde22232017-04-19 18:17:31 +0800288 clock-output-names = "emmc_cardclock";
289 #clock-cells = <0>;
Kever Yang777c8342016-07-19 21:16:58 +0800290 phys = <&emmc_phy>;
291 phy-names = "phy_arasan";
Kever Yangdde22232017-04-19 18:17:31 +0800292 power-domains = <&power RK3399_PD_EMMC>;
Kever Yang777c8342016-07-19 21:16:58 +0800293 status = "disabled";
294 };
295
296 usb_host0_ehci: usb@fe380000 {
297 compatible = "generic-ehci";
298 reg = <0x0 0xfe380000 0x0 0x20000>;
Kever Yangdde22232017-04-19 18:17:31 +0800299 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH 0>;
300 clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
301 <&u2phy0>;
302 clock-names = "usbhost", "arbiter",
303 "utmi";
304 phys = <&u2phy0_host>;
305 phy-names = "usb";
306 power-domains = <&power RK3399_PD_PERIHP>;
Kever Yang777c8342016-07-19 21:16:58 +0800307 status = "disabled";
308 };
309
310 usb_host0_ohci: usb@fe3a0000 {
311 compatible = "generic-ohci";
312 reg = <0x0 0xfe3a0000 0x0 0x20000>;
Kever Yangdde22232017-04-19 18:17:31 +0800313 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>;
314 clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>,
315 <&u2phy0>;
316 clock-names = "usbhost", "arbiter",
317 "utmi";
318 phys = <&u2phy0_host>;
319 phy-names = "usb";
320 power-domains = <&power RK3399_PD_PERIHP>;
Kever Yang777c8342016-07-19 21:16:58 +0800321 status = "disabled";
322 };
323
324 usb_host1_ehci: usb@fe3c0000 {
325 compatible = "generic-ehci";
326 reg = <0x0 0xfe3c0000 0x0 0x20000>;
Kever Yangdde22232017-04-19 18:17:31 +0800327 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH 0>;
328 clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>,
329 <&u2phy1>;
330 clock-names = "usbhost", "arbiter",
331 "utmi";
332 phys = <&u2phy1_host>;
333 phy-names = "usb";
334 power-domains = <&power RK3399_PD_PERIHP>;
Kever Yang777c8342016-07-19 21:16:58 +0800335 status = "disabled";
336 };
337
338 usb_host1_ohci: usb@fe3e0000 {
339 compatible = "generic-ohci";
340 reg = <0x0 0xfe3e0000 0x0 0x20000>;
Kever Yangdde22232017-04-19 18:17:31 +0800341 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH 0>;
342 clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>,
343 <&u2phy1>;
344 clock-names = "usbhost", "arbiter",
345 "utmi";
346 phys = <&u2phy1_host>;
347 phy-names = "usb";
348 power-domains = <&power RK3399_PD_PERIHP>;
Kever Yang777c8342016-07-19 21:16:58 +0800349 status = "disabled";
350 };
351
Simon Glass0a09f2f2019-01-21 14:53:25 -0700352 usbdrd3_0: dwc3_typec0: usb@fe800000 {
353 compatible = "rockchip,rk3399-dwc3";
MengDongyangfa5e2d12016-08-24 12:02:20 +0800354 #address-cells = <2>;
355 #size-cells = <2>;
Simon Glass0a09f2f2019-01-21 14:53:25 -0700356 ranges;
357 clocks = <&cru SCLK_USB3OTG0_REF>, <&cru SCLK_USB3OTG0_SUSPEND>,
358 <&cru ACLK_USB3OTG0>, <&cru ACLK_USB3_RKSOC_AXI_PERF>,
359 <&cru ACLK_USB3>, <&cru ACLK_USB3_GRF>;
360 clock-names = "ref_clk", "suspend_clk",
361 "bus_clk", "aclk_usb3_rksoc_axi_perf",
362 "aclk_usb3", "grf_clk";
363 resets = <&cru SRST_A_USB3_OTG0>;
364 reset-names = "usb3-otg";
365 status = "disabled";
366
367 usbdrd_dwc3_0: dwc3 {
368 compatible = "snps,dwc3";
369 reg = <0x0 0xfe800000 0x0 0x100000>;
370 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>;
371 dr_mode = "otg";
372 phys = <&u2phy0_otg>, <&tcphy0_usb3>;
373 phy-names = "usb2-phy", "usb3-phy";
374 phy_type = "utmi_wide";
375 snps,dis_enblslpm_quirk;
376 snps,dis-u2-freeclk-exists-quirk;
377 snps,dis_u2_susphy_quirk;
378 snps,dis-del-phy-power-chg-quirk;
379 snps,dis-tx-ipgap-linecheck-quirk;
380 power-domains = <&power RK3399_PD_USB3>;
381 status = "disabled";
MengDongyangfa5e2d12016-08-24 12:02:20 +0800382 };
383 };
384
Simon Glass0a09f2f2019-01-21 14:53:25 -0700385 dwc3_typec1: usbdrd3_1: usb@fe900000 {
386 compatible = "rockchip,rk3399-dwc3";
MengDongyangfa5e2d12016-08-24 12:02:20 +0800387 #address-cells = <2>;
388 #size-cells = <2>;
Simon Glass0a09f2f2019-01-21 14:53:25 -0700389 ranges;
390 clocks = <&cru SCLK_USB3OTG1_REF>, <&cru SCLK_USB3OTG1_SUSPEND>,
391 <&cru ACLK_USB3OTG1>, <&cru ACLK_USB3_RKSOC_AXI_PERF>,
392 <&cru ACLK_USB3>, <&cru ACLK_USB3_GRF>;
393 clock-names = "ref_clk", "suspend_clk",
394 "bus_clk", "aclk_usb3_rksoc_axi_perf",
395 "aclk_usb3", "grf_clk";
396 resets = <&cru SRST_A_USB3_OTG1>;
397 reset-names = "usb3-otg";
398 status = "disabled";
399
400 usbdrd_dwc3_1: dwc3 {
401 compatible = "snps,dwc3";
402 reg = <0x0 0xfe900000 0x0 0x100000>;
403 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
404 dr_mode = "otg";
405 phys = <&u2phy1_otg>, <&tcphy1_usb3>;
406 phy-names = "usb2-phy", "usb3-phy";
407 phy_type = "utmi_wide";
408 snps,dis_enblslpm_quirk;
409 snps,dis-u2-freeclk-exists-quirk;
410 snps,dis_u2_susphy_quirk;
411 snps,dis-del-phy-power-chg-quirk;
412 snps,dis-tx-ipgap-linecheck-quirk;
413 power-domains = <&power RK3399_PD_USB3>;
414 status = "disabled";
MengDongyangfa5e2d12016-08-24 12:02:20 +0800415 };
Simon Glass0a09f2f2019-01-21 14:53:25 -0700416 };
417
418 cdn_dp: dp@fec00000 {
419 compatible = "rockchip,rk3399-cdn-dp";
420 reg = <0x0 0xfec00000 0x0 0x100000>;
421 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
422 assigned-clocks = <&cru SCLK_DP_CORE>, <&cru SCLK_SPDIF_REC_DPTX>;
423 assigned-clock-rates = <100000000>, <200000000>;
424 clocks = <&cru SCLK_DP_CORE>, <&cru PCLK_DP_CTRL>,
425 <&cru SCLK_SPDIF_REC_DPTX>, <&cru PCLK_VIO_GRF>;
426 clock-names = "core-clk", "pclk", "spdif", "grf";
427 phys = <&tcphy0_dp>, <&tcphy1_dp>;
428 power-domains = <&power RK3399_PD_HDCP>;
429 resets = <&cru SRST_DPTX_SPDIF_REC>, <&cru SRST_P_UPHY0_DPTX>,
430 <&cru SRST_P_UPHY0_APB>, <&cru SRST_DP_CORE>;
431 reset-names = "spdif", "dptx", "apb", "core";
432 rockchip,grf = <&grf>;
433 #sound-dai-cells = <1>;
434 status = "disabled";
435
436 ports {
437 dp_in: port {
438 #address-cells = <1>;
439 #size-cells = <0>;
440
441 dp_in_vopb: endpoint@0 {
442 reg = <0>;
443 remote-endpoint = <&vopb_out_dp>;
444 };
445
446 dp_in_vopl: endpoint@1 {
447 reg = <1>;
448 remote-endpoint = <&vopl_out_dp>;
449 };
450 };
MengDongyangfa5e2d12016-08-24 12:02:20 +0800451 };
452 };
453
Kever Yang777c8342016-07-19 21:16:58 +0800454 gic: interrupt-controller@fee00000 {
455 compatible = "arm,gic-v3";
Kever Yangdde22232017-04-19 18:17:31 +0800456 #interrupt-cells = <4>;
Kever Yang777c8342016-07-19 21:16:58 +0800457 #address-cells = <2>;
458 #size-cells = <2>;
459 ranges;
460 interrupt-controller;
461
462 reg = <0x0 0xfee00000 0 0x10000>, /* GICD */
463 <0x0 0xfef00000 0 0xc0000>, /* GICR */
464 <0x0 0xfff00000 0 0x10000>, /* GICC */
465 <0x0 0xfff10000 0 0x10000>, /* GICH */
466 <0x0 0xfff20000 0 0x10000>; /* GICV */
Kever Yangdde22232017-04-19 18:17:31 +0800467 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +0800468 its: interrupt-controller@fee20000 {
469 compatible = "arm,gic-v3-its";
470 msi-controller;
471 reg = <0x0 0xfee20000 0x0 0x20000>;
472 };
Kever Yangdde22232017-04-19 18:17:31 +0800473
474 ppi-partitions {
475 ppi_cluster0: interrupt-partition-0 {
476 affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>;
477 };
478
479 ppi_cluster1: interrupt-partition-1 {
480 affinity = <&cpu_b0 &cpu_b1>;
481 };
482 };
483 };
484
485 saradc: saradc@ff100000 {
486 compatible = "rockchip,rk3399-saradc";
487 reg = <0x0 0xff100000 0x0 0x100>;
488 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH 0>;
489 #io-channel-cells = <1>;
490 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
491 clock-names = "saradc", "apb_pclk";
492 resets = <&cru SRST_P_SARADC>;
493 reset-names = "saradc-apb";
494 status = "disabled";
495 };
496
497 i2c1: i2c@ff110000 {
498 compatible = "rockchip,rk3399-i2c";
499 reg = <0x0 0xff110000 0x0 0x1000>;
500 assigned-clocks = <&cru SCLK_I2C1>;
501 assigned-clock-rates = <200000000>;
502 clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
503 clock-names = "i2c", "pclk";
504 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH 0>;
505 pinctrl-names = "default";
506 pinctrl-0 = <&i2c1_xfer>;
507 #address-cells = <1>;
508 #size-cells = <0>;
509 status = "disabled";
510 };
511
512 i2c2: i2c@ff120000 {
513 compatible = "rockchip,rk3399-i2c";
514 reg = <0x0 0xff120000 0x0 0x1000>;
515 assigned-clocks = <&cru SCLK_I2C2>;
516 assigned-clock-rates = <200000000>;
517 clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
518 clock-names = "i2c", "pclk";
519 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH 0>;
520 pinctrl-names = "default";
521 pinctrl-0 = <&i2c2_xfer>;
522 #address-cells = <1>;
523 #size-cells = <0>;
524 status = "disabled";
525 };
526
527 i2c3: i2c@ff130000 {
528 compatible = "rockchip,rk3399-i2c";
529 reg = <0x0 0xff130000 0x0 0x1000>;
530 assigned-clocks = <&cru SCLK_I2C3>;
531 assigned-clock-rates = <200000000>;
532 clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
533 clock-names = "i2c", "pclk";
534 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH 0>;
535 pinctrl-names = "default";
536 pinctrl-0 = <&i2c3_xfer>;
537 #address-cells = <1>;
538 #size-cells = <0>;
539 status = "disabled";
540 };
541
542 i2c5: i2c@ff140000 {
543 compatible = "rockchip,rk3399-i2c";
544 reg = <0x0 0xff140000 0x0 0x1000>;
545 assigned-clocks = <&cru SCLK_I2C5>;
546 assigned-clock-rates = <200000000>;
547 clocks = <&cru SCLK_I2C5>, <&cru PCLK_I2C5>;
548 clock-names = "i2c", "pclk";
549 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>;
550 pinctrl-names = "default";
551 pinctrl-0 = <&i2c5_xfer>;
552 #address-cells = <1>;
553 #size-cells = <0>;
554 status = "disabled";
555 };
556
557 i2c6: i2c@ff150000 {
558 compatible = "rockchip,rk3399-i2c";
559 reg = <0x0 0xff150000 0x0 0x1000>;
560 assigned-clocks = <&cru SCLK_I2C6>;
561 assigned-clock-rates = <200000000>;
562 clocks = <&cru SCLK_I2C6>, <&cru PCLK_I2C6>;
563 clock-names = "i2c", "pclk";
564 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH 0>;
565 pinctrl-names = "default";
566 pinctrl-0 = <&i2c6_xfer>;
567 #address-cells = <1>;
568 #size-cells = <0>;
569 status = "disabled";
570 };
571
572 i2c7: i2c@ff160000 {
573 compatible = "rockchip,rk3399-i2c";
574 reg = <0x0 0xff160000 0x0 0x1000>;
575 assigned-clocks = <&cru SCLK_I2C7>;
576 assigned-clock-rates = <200000000>;
577 clocks = <&cru SCLK_I2C7>, <&cru PCLK_I2C7>;
578 clock-names = "i2c", "pclk";
579 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH 0>;
580 pinctrl-names = "default";
581 pinctrl-0 = <&i2c7_xfer>;
582 #address-cells = <1>;
583 #size-cells = <0>;
584 status = "disabled";
Kever Yang777c8342016-07-19 21:16:58 +0800585 };
586
587 uart0: serial@ff180000 {
588 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
589 reg = <0x0 0xff180000 0x0 0x100>;
590 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
591 clock-names = "baudclk", "apb_pclk";
Kever Yangdde22232017-04-19 18:17:31 +0800592 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +0800593 reg-shift = <2>;
594 reg-io-width = <4>;
595 pinctrl-names = "default";
596 pinctrl-0 = <&uart0_xfer>;
597 status = "disabled";
598 };
599
600 uart1: serial@ff190000 {
601 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
602 reg = <0x0 0xff190000 0x0 0x100>;
603 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
604 clock-names = "baudclk", "apb_pclk";
Kever Yangdde22232017-04-19 18:17:31 +0800605 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +0800606 reg-shift = <2>;
607 reg-io-width = <4>;
608 pinctrl-names = "default";
609 pinctrl-0 = <&uart1_xfer>;
610 status = "disabled";
611 };
612
613 uart2: serial@ff1a0000 {
614 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
615 reg = <0x0 0xff1a0000 0x0 0x100>;
616 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
617 clock-names = "baudclk", "apb_pclk";
Kever Yangdde22232017-04-19 18:17:31 +0800618 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +0800619 clock-frequency = <24000000>;
620 reg-shift = <2>;
621 reg-io-width = <4>;
622 pinctrl-names = "default";
623 pinctrl-0 = <&uart2c_xfer>;
624 status = "disabled";
625 };
626
627 uart3: serial@ff1b0000 {
628 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
629 reg = <0x0 0xff1b0000 0x0 0x100>;
630 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
631 clock-names = "baudclk", "apb_pclk";
Kever Yangdde22232017-04-19 18:17:31 +0800632 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +0800633 reg-shift = <2>;
634 reg-io-width = <4>;
635 pinctrl-names = "default";
636 pinctrl-0 = <&uart3_xfer>;
637 status = "disabled";
638 };
639
640 spi0: spi@ff1c0000 {
641 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
642 reg = <0x0 0xff1c0000 0x0 0x1000>;
643 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
644 clock-names = "spiclk", "apb_pclk";
Kever Yangdde22232017-04-19 18:17:31 +0800645 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +0800646 pinctrl-names = "default";
647 pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
648 #address-cells = <1>;
649 #size-cells = <0>;
650 status = "disabled";
651 };
652
653 spi1: spi@ff1d0000 {
654 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
655 reg = <0x0 0xff1d0000 0x0 0x1000>;
656 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
657 clock-names = "spiclk", "apb_pclk";
Kever Yangdde22232017-04-19 18:17:31 +0800658 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +0800659 pinctrl-names = "default";
660 pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
661 #address-cells = <1>;
662 #size-cells = <0>;
663 status = "disabled";
664 };
665
666 spi2: spi@ff1e0000 {
667 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
668 reg = <0x0 0xff1e0000 0x0 0x1000>;
669 clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
670 clock-names = "spiclk", "apb_pclk";
Kever Yangdde22232017-04-19 18:17:31 +0800671 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +0800672 pinctrl-names = "default";
673 pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
674 #address-cells = <1>;
675 #size-cells = <0>;
676 status = "disabled";
677 };
678
679 spi4: spi@ff1f0000 {
680 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
681 reg = <0x0 0xff1f0000 0x0 0x1000>;
682 clocks = <&cru SCLK_SPI4>, <&cru PCLK_SPI4>;
683 clock-names = "spiclk", "apb_pclk";
Kever Yangdde22232017-04-19 18:17:31 +0800684 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +0800685 pinctrl-names = "default";
686 pinctrl-0 = <&spi4_clk &spi4_tx &spi4_rx &spi4_cs0>;
687 #address-cells = <1>;
688 #size-cells = <0>;
689 status = "disabled";
690 };
691
692 spi5: spi@ff200000 {
693 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
694 reg = <0x0 0xff200000 0x0 0x1000>;
695 clocks = <&cru SCLK_SPI5>, <&cru PCLK_SPI5>;
696 clock-names = "spiclk", "apb_pclk";
Kever Yangdde22232017-04-19 18:17:31 +0800697 interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +0800698 pinctrl-names = "default";
699 pinctrl-0 = <&spi5_clk &spi5_tx &spi5_rx &spi5_cs0>;
700 #address-cells = <1>;
701 #size-cells = <0>;
702 status = "disabled";
703 };
704
Kever Yangdde22232017-04-19 18:17:31 +0800705 thermal_zones: thermal-zones {
706 cpu_thermal: cpu {
707 polling-delay-passive = <100>;
708 polling-delay = <1000>;
709
710 thermal-sensors = <&tsadc 0>;
711
712 trips {
713 cpu_alert0: cpu_alert0 {
714 temperature = <70000>;
715 hysteresis = <2000>;
716 type = "passive";
717 };
718 cpu_alert1: cpu_alert1 {
719 temperature = <75000>;
720 hysteresis = <2000>;
721 type = "passive";
722 };
723 cpu_crit: cpu_crit {
724 temperature = <95000>;
725 hysteresis = <2000>;
726 type = "critical";
727 };
728 };
729
730 cooling-maps {
731 map0 {
732 trip = <&cpu_alert0>;
733 cooling-device =
734 <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
735 };
736 map1 {
737 trip = <&cpu_alert1>;
738 cooling-device =
739 <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
740 <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
741 };
742 };
743 };
744
745 gpu_thermal: gpu {
746 polling-delay-passive = <100>;
747 polling-delay = <1000>;
748
749 thermal-sensors = <&tsadc 1>;
750
751 trips {
752 gpu_alert0: gpu_alert0 {
753 temperature = <75000>;
754 hysteresis = <2000>;
755 type = "passive";
756 };
757 gpu_crit: gpu_crit {
758 temperature = <95000>;
759 hysteresis = <2000>;
760 type = "critical";
761 };
762 };
763
764 cooling-maps {
765 map0 {
766 trip = <&gpu_alert0>;
767 cooling-device =
768 <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
769 };
770 };
771 };
772 };
773
774 tsadc: tsadc@ff260000 {
775 compatible = "rockchip,rk3399-tsadc";
776 reg = <0x0 0xff260000 0x0 0x100>;
777 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>;
778 assigned-clocks = <&cru SCLK_TSADC>;
779 assigned-clock-rates = <750000>;
780 clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
781 clock-names = "tsadc", "apb_pclk";
782 resets = <&cru SRST_TSADC>;
783 reset-names = "tsadc-apb";
784 rockchip,grf = <&grf>;
785 rockchip,hw-tshut-temp = <95000>;
786 pinctrl-names = "init", "default", "sleep";
787 pinctrl-0 = <&otp_gpio>;
788 pinctrl-1 = <&otp_out>;
789 pinctrl-2 = <&otp_gpio>;
790 #thermal-sensor-cells = <1>;
791 status = "disabled";
792 };
793
794 qos_emmc: qos@ffa58000 {
795 compatible = "syscon";
796 reg = <0x0 0xffa58000 0x0 0x20>;
797 };
798
799 qos_gmac: qos@ffa5c000 {
800 compatible = "syscon";
801 reg = <0x0 0xffa5c000 0x0 0x20>;
802 };
803
804 qos_pcie: qos@ffa60080 {
805 compatible = "syscon";
806 reg = <0x0 0xffa60080 0x0 0x20>;
807 };
808
809 qos_usb_host0: qos@ffa60100 {
810 compatible = "syscon";
811 reg = <0x0 0xffa60100 0x0 0x20>;
812 };
813
814 qos_usb_host1: qos@ffa60180 {
815 compatible = "syscon";
816 reg = <0x0 0xffa60180 0x0 0x20>;
817 };
818
819 qos_usb_otg0: qos@ffa70000 {
820 compatible = "syscon";
821 reg = <0x0 0xffa70000 0x0 0x20>;
822 };
823
824 qos_usb_otg1: qos@ffa70080 {
825 compatible = "syscon";
826 reg = <0x0 0xffa70080 0x0 0x20>;
827 };
828
829 qos_sd: qos@ffa74000 {
830 compatible = "syscon";
831 reg = <0x0 0xffa74000 0x0 0x20>;
832 };
833
834 qos_sdioaudio: qos@ffa76000 {
835 compatible = "syscon";
836 reg = <0x0 0xffa76000 0x0 0x20>;
837 };
838
839 qos_hdcp: qos@ffa90000 {
840 compatible = "syscon";
841 reg = <0x0 0xffa90000 0x0 0x20>;
842 };
843
844 qos_iep: qos@ffa98000 {
845 compatible = "syscon";
846 reg = <0x0 0xffa98000 0x0 0x20>;
847 };
848
849 qos_isp0_m0: qos@ffaa0000 {
850 compatible = "syscon";
851 reg = <0x0 0xffaa0000 0x0 0x20>;
852 };
853
854 qos_isp0_m1: qos@ffaa0080 {
855 compatible = "syscon";
856 reg = <0x0 0xffaa0080 0x0 0x20>;
857 };
858
859 qos_isp1_m0: qos@ffaa8000 {
860 compatible = "syscon";
861 reg = <0x0 0xffaa8000 0x0 0x20>;
862 };
863
864 qos_isp1_m1: qos@ffaa8080 {
865 compatible = "syscon";
866 reg = <0x0 0xffaa8080 0x0 0x20>;
867 };
868
869 qos_rga_r: qos@ffab0000 {
870 compatible = "syscon";
871 reg = <0x0 0xffab0000 0x0 0x20>;
872 };
873
874 qos_rga_w: qos@ffab0080 {
875 compatible = "syscon";
876 reg = <0x0 0xffab0080 0x0 0x20>;
877 };
878
879 qos_video_m0: qos@ffab8000 {
880 compatible = "syscon";
881 reg = <0x0 0xffab8000 0x0 0x20>;
882 };
883
884 qos_video_m1_r: qos@ffac0000 {
885 compatible = "syscon";
886 reg = <0x0 0xffac0000 0x0 0x20>;
887 };
888
889 qos_video_m1_w: qos@ffac0080 {
890 compatible = "syscon";
891 reg = <0x0 0xffac0080 0x0 0x20>;
892 };
893
894 qos_vop_big_r: qos@ffac8000 {
895 compatible = "syscon";
896 reg = <0x0 0xffac8000 0x0 0x20>;
897 };
898
899 qos_vop_big_w: qos@ffac8080 {
900 compatible = "syscon";
901 reg = <0x0 0xffac8080 0x0 0x20>;
902 };
903
904 qos_vop_little: qos@ffad0000 {
905 compatible = "syscon";
906 reg = <0x0 0xffad0000 0x0 0x20>;
907 };
908
909 qos_perihp: qos@ffad8080 {
910 compatible = "syscon";
911 reg = <0x0 0xffad8080 0x0 0x20>;
912 };
913
914 qos_gpu: qos@ffae0000 {
915 compatible = "syscon";
916 reg = <0x0 0xffae0000 0x0 0x20>;
917 };
918
919 pmu: power-management@ff310000 {
920 compatible = "rockchip,rk3399-pmu", "syscon", "simple-mfd";
921 reg = <0x0 0xff310000 0x0 0x1000>;
922
923 /*
924 * Note: RK3399 supports 6 voltage domains including VD_CORE_L,
925 * VD_CORE_B, VD_CENTER, VD_GPU, VD_LOGIC and VD_PMU.
926 * Some of the power domains are grouped together for every
927 * voltage domain.
928 * The detail contents as below.
929 */
930 power: power-controller {
931 compatible = "rockchip,rk3399-power-controller";
932 #power-domain-cells = <1>;
933 #address-cells = <1>;
934 #size-cells = <0>;
935
936 /* These power domains are grouped by VD_CENTER */
937 pd_iep@RK3399_PD_IEP {
938 reg = <RK3399_PD_IEP>;
939 clocks = <&cru ACLK_IEP>,
940 <&cru HCLK_IEP>;
941 pm_qos = <&qos_iep>;
942 };
943 pd_rga@RK3399_PD_RGA {
944 reg = <RK3399_PD_RGA>;
945 clocks = <&cru ACLK_RGA>,
946 <&cru HCLK_RGA>;
947 pm_qos = <&qos_rga_r>,
948 <&qos_rga_w>;
949 };
950 pd_vcodec@RK3399_PD_VCODEC {
951 reg = <RK3399_PD_VCODEC>;
952 clocks = <&cru ACLK_VCODEC>,
953 <&cru HCLK_VCODEC>;
954 pm_qos = <&qos_video_m0>;
955 };
956 pd_vdu@RK3399_PD_VDU {
957 reg = <RK3399_PD_VDU>;
958 clocks = <&cru ACLK_VDU>,
959 <&cru HCLK_VDU>;
960 pm_qos = <&qos_video_m1_r>,
961 <&qos_video_m1_w>;
962 };
963
964 /* These power domains are grouped by VD_GPU */
965 pd_gpu@RK3399_PD_GPU {
966 reg = <RK3399_PD_GPU>;
967 clocks = <&cru ACLK_GPU>;
968 pm_qos = <&qos_gpu>;
969 };
970
971 /* These power domains are grouped by VD_LOGIC */
972 pd_edp@RK3399_PD_EDP {
973 reg = <RK3399_PD_EDP>;
974 clocks = <&cru PCLK_EDP_CTRL>;
975 };
976 pd_emmc@RK3399_PD_EMMC {
977 reg = <RK3399_PD_EMMC>;
978 clocks = <&cru ACLK_EMMC>;
979 pm_qos = <&qos_emmc>;
980 };
981 pd_gmac@RK3399_PD_GMAC {
982 reg = <RK3399_PD_GMAC>;
983 clocks = <&cru ACLK_GMAC>,
984 <&cru PCLK_GMAC>;
985 pm_qos = <&qos_gmac>;
986 };
987 pd_perihp@RK3399_PD_PERIHP {
988 reg = <RK3399_PD_PERIHP>;
989 #address-cells = <1>;
990 #size-cells = <0>;
991 clocks = <&cru ACLK_PERIHP>;
992 pm_qos = <&qos_perihp>,
993 <&qos_pcie>,
994 <&qos_usb_host0>,
995 <&qos_usb_host1>;
996
997 pd_sd@RK3399_PD_SD {
998 reg = <RK3399_PD_SD>;
999 clocks = <&cru HCLK_SDMMC>,
1000 <&cru SCLK_SDMMC>;
1001 pm_qos = <&qos_sd>;
1002 };
1003 };
1004 pd_sdioaudio@RK3399_PD_SDIOAUDIO {
1005 reg = <RK3399_PD_SDIOAUDIO>;
1006 clocks = <&cru HCLK_SDIO>;
1007 pm_qos = <&qos_sdioaudio>;
1008 };
1009 pd_usb3@RK3399_PD_USB3 {
1010 reg = <RK3399_PD_USB3>;
1011 clocks = <&cru ACLK_USB3>;
1012 pm_qos = <&qos_usb_otg0>,
1013 <&qos_usb_otg1>;
1014 };
1015 pd_vio@RK3399_PD_VIO {
1016 reg = <RK3399_PD_VIO>;
1017 #address-cells = <1>;
1018 #size-cells = <0>;
1019
1020 pd_hdcp@RK3399_PD_HDCP {
1021 reg = <RK3399_PD_HDCP>;
1022 clocks = <&cru ACLK_HDCP>,
1023 <&cru HCLK_HDCP>,
1024 <&cru PCLK_HDCP>;
1025 pm_qos = <&qos_hdcp>;
1026 };
1027 pd_isp0@RK3399_PD_ISP0 {
1028 reg = <RK3399_PD_ISP0>;
1029 clocks = <&cru ACLK_ISP0>,
1030 <&cru HCLK_ISP0>;
1031 pm_qos = <&qos_isp0_m0>,
1032 <&qos_isp0_m1>;
1033 };
1034 pd_isp1@RK3399_PD_ISP1 {
1035 reg = <RK3399_PD_ISP1>;
1036 clocks = <&cru ACLK_ISP1>,
1037 <&cru HCLK_ISP1>;
1038 pm_qos = <&qos_isp1_m0>,
1039 <&qos_isp1_m1>;
1040 };
1041 pd_tcpc0@RK3399_PD_TCPC0 {
1042 reg = <RK3399_PD_TCPD0>;
1043 clocks = <&cru SCLK_UPHY0_TCPDCORE>,
1044 <&cru SCLK_UPHY0_TCPDPHY_REF>;
1045 };
1046 pd_tcpc1@RK3399_PD_TCPC1 {
1047 reg = <RK3399_PD_TCPD1>;
1048 clocks = <&cru SCLK_UPHY1_TCPDCORE>,
1049 <&cru SCLK_UPHY1_TCPDPHY_REF>;
1050 };
1051 pd_vo@RK3399_PD_VO {
1052 reg = <RK3399_PD_VO>;
1053 #address-cells = <1>;
1054 #size-cells = <0>;
1055
1056 pd_vopb@RK3399_PD_VOPB {
1057 reg = <RK3399_PD_VOPB>;
1058 clocks = <&cru ACLK_VOP0>,
1059 <&cru HCLK_VOP0>;
1060 pm_qos = <&qos_vop_big_r>,
1061 <&qos_vop_big_w>;
1062 };
1063 pd_vopl@RK3399_PD_VOPL {
1064 reg = <RK3399_PD_VOPL>;
1065 clocks = <&cru ACLK_VOP1>,
1066 <&cru HCLK_VOP1>;
1067 pm_qos = <&qos_vop_little>;
1068 };
1069 };
1070 };
1071 };
1072 };
1073
Kever Yang777c8342016-07-19 21:16:58 +08001074 pmugrf: syscon@ff320000 {
Kever Yanga82426e2017-02-22 16:56:36 +08001075 u-boot,dm-pre-reloc;
Kever Yang777c8342016-07-19 21:16:58 +08001076 compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd";
1077 reg = <0x0 0xff320000 0x0 0x1000>;
Kever Yang777c8342016-07-19 21:16:58 +08001078
1079 pmu_io_domains: io-domains {
1080 compatible = "rockchip,rk3399-pmu-io-voltage-domain";
1081 status = "disabled";
1082 };
1083 };
1084
Kever Yanga82426e2017-02-22 16:56:36 +08001085 pmusgrf: syscon@ff330000 {
1086 u-boot,dm-pre-reloc;
1087 compatible = "rockchip,rk3399-pmusgrf", "syscon";
1088 reg = <0x0 0xff330000 0x0 0xe3d4>;
1089 };
1090
Kever Yang777c8342016-07-19 21:16:58 +08001091 spi3: spi@ff350000 {
1092 compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi";
1093 reg = <0x0 0xff350000 0x0 0x1000>;
1094 clocks = <&pmucru SCLK_SPI3_PMU>, <&pmucru PCLK_SPI3_PMU>;
1095 clock-names = "spiclk", "apb_pclk";
Kever Yangdde22232017-04-19 18:17:31 +08001096 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +08001097 pinctrl-names = "default";
1098 pinctrl-0 = <&spi3_clk &spi3_tx &spi3_rx &spi3_cs0>;
1099 #address-cells = <1>;
1100 #size-cells = <0>;
1101 status = "disabled";
1102 };
1103
1104 uart4: serial@ff370000 {
1105 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
1106 reg = <0x0 0xff370000 0x0 0x100>;
1107 clocks = <&pmucru SCLK_UART4_PMU>, <&pmucru PCLK_UART4_PMU>;
1108 clock-names = "baudclk", "apb_pclk";
Kever Yangdde22232017-04-19 18:17:31 +08001109 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +08001110 reg-shift = <2>;
1111 reg-io-width = <4>;
1112 pinctrl-names = "default";
1113 pinctrl-0 = <&uart4_xfer>;
1114 status = "disabled";
1115 };
1116
Simon Glass0a09f2f2019-01-21 14:53:25 -07001117 i2c0: i2c@ff3c0000 {
1118 compatible = "rockchip,rk3399-i2c";
1119 reg = <0x0 0xff3c0000 0x0 0x1000>;
1120 assigned-clocks = <&pmucru SCLK_I2C0_PMU>;
1121 assigned-clock-rates = <200000000>;
1122 clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>;
1123 clock-names = "i2c", "pclk";
1124 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH 0>;
1125 pinctrl-names = "default";
1126 pinctrl-0 = <&i2c0_xfer>;
1127 #address-cells = <1>;
1128 #size-cells = <0>;
1129 status = "disabled";
1130 };
1131
Kever Yangdde22232017-04-19 18:17:31 +08001132 i2c4: i2c@ff3d0000 {
1133 compatible = "rockchip,rk3399-i2c";
1134 reg = <0x0 0xff3d0000 0x0 0x1000>;
1135 assigned-clocks = <&pmucru SCLK_I2C4_PMU>;
1136 assigned-clock-rates = <200000000>;
1137 clocks = <&pmucru SCLK_I2C4_PMU>, <&pmucru PCLK_I2C4_PMU>;
1138 clock-names = "i2c", "pclk";
1139 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH 0>;
1140 pinctrl-names = "default";
1141 pinctrl-0 = <&i2c4_xfer>;
1142 #address-cells = <1>;
1143 #size-cells = <0>;
1144 status = "disabled";
1145 };
1146
1147 i2c8: i2c@ff3e0000 {
1148 compatible = "rockchip,rk3399-i2c";
1149 reg = <0x0 0xff3e0000 0x0 0x1000>;
1150 assigned-clocks = <&pmucru SCLK_I2C8_PMU>;
1151 assigned-clock-rates = <200000000>;
1152 clocks = <&pmucru SCLK_I2C8_PMU>, <&pmucru PCLK_I2C8_PMU>;
1153 clock-names = "i2c", "pclk";
1154 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
1155 pinctrl-names = "default";
1156 pinctrl-0 = <&i2c8_xfer>;
1157 #address-cells = <1>;
1158 #size-cells = <0>;
1159 status = "disabled";
1160 };
1161
Kever Yang777c8342016-07-19 21:16:58 +08001162 pwm0: pwm@ff420000 {
1163 compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
1164 reg = <0x0 0xff420000 0x0 0x10>;
1165 #pwm-cells = <3>;
1166 pinctrl-names = "default";
1167 pinctrl-0 = <&pwm0_pin>;
1168 clocks = <&pmucru PCLK_RKPWM_PMU>;
1169 clock-names = "pwm";
1170 status = "disabled";
1171 };
1172
1173 pwm1: pwm@ff420010 {
1174 compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
1175 reg = <0x0 0xff420010 0x0 0x10>;
1176 #pwm-cells = <3>;
1177 pinctrl-names = "default";
1178 pinctrl-0 = <&pwm1_pin>;
1179 clocks = <&pmucru PCLK_RKPWM_PMU>;
1180 clock-names = "pwm";
1181 status = "disabled";
1182 };
1183
1184 pwm2: pwm@ff420020 {
1185 compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
1186 reg = <0x0 0xff420020 0x0 0x10>;
1187 #pwm-cells = <3>;
1188 pinctrl-names = "default";
1189 pinctrl-0 = <&pwm2_pin>;
1190 clocks = <&pmucru PCLK_RKPWM_PMU>;
1191 clock-names = "pwm";
1192 status = "disabled";
1193 };
1194
1195 pwm3: pwm@ff420030 {
1196 compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
1197 reg = <0x0 0xff420030 0x0 0x10>;
1198 #pwm-cells = <3>;
1199 pinctrl-names = "default";
1200 pinctrl-0 = <&pwm3a_pin>;
1201 clocks = <&pmucru PCLK_RKPWM_PMU>;
1202 clock-names = "pwm";
1203 status = "disabled";
1204 };
1205
Kever Yanga82426e2017-02-22 16:56:36 +08001206 cic: syscon@ff620000 {
1207 u-boot,dm-pre-reloc;
1208 compatible = "rockchip,rk3399-cic", "syscon";
1209 reg = <0x0 0xff620000 0x0 0x100>;
1210 };
1211
1212 dfi: dfi@ff630000 {
1213 reg = <0x00 0xff630000 0x00 0x4000>;
1214 compatible = "rockchip,rk3399-dfi";
1215 rockchip,pmu = <&pmugrf>;
1216 clocks = <&cru PCLK_DDR_MON>;
1217 clock-names = "pclk_ddr_mon";
1218 status = "disabled";
1219 };
1220
1221 dmc: dmc {
1222 u-boot,dm-pre-reloc;
1223 compatible = "rockchip,rk3399-dmc";
1224 devfreq-events = <&dfi>;
1225 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH 0>;
1226 clocks = <&cru SCLK_DDRCLK>;
1227 clock-names = "dmc_clk";
1228 reg = <0x0 0xffa80000 0x0 0x0800
1229 0x0 0xffa80800 0x0 0x1800
1230 0x0 0xffa82000 0x0 0x2000
1231 0x0 0xffa84000 0x0 0x1000
1232 0x0 0xffa88000 0x0 0x0800
1233 0x0 0xffa88800 0x0 0x1800
1234 0x0 0xffa8a000 0x0 0x2000
1235 0x0 0xffa8c000 0x0 0x1000>;
1236 };
1237
Kever Yangdde22232017-04-19 18:17:31 +08001238 efuse0: efuse@ff690000 {
1239 compatible = "rockchip,rk3399-efuse";
1240 reg = <0x0 0xff690000 0x0 0x80>;
1241 #address-cells = <1>;
1242 #size-cells = <1>;
1243 clocks = <&cru PCLK_EFUSE1024NS>;
1244 clock-names = "pclk_efuse";
1245
1246 /* Data cells */
1247 cpu_id: cpu-id@7 {
1248 reg = <0x07 0x10>;
1249 };
1250 cpub_leakage: cpu-leakage@17 {
1251 reg = <0x17 0x1>;
1252 };
1253 gpu_leakage: gpu-leakage@18 {
1254 reg = <0x18 0x1>;
1255 };
1256 center_leakage: center-leakage@19 {
1257 reg = <0x19 0x1>;
1258 };
1259 cpul_leakage: cpu-leakage@1a {
1260 reg = <0x1a 0x1>;
1261 };
1262 logic_leakage: logic-leakage@1b {
1263 reg = <0x1b 0x1>;
1264 };
1265 wafer_info: wafer-info@1c {
1266 reg = <0x1c 0x1>;
1267 };
1268 };
1269
Kever Yang777c8342016-07-19 21:16:58 +08001270 pmucru: pmu-clock-controller@ff750000 {
Kever Yanga82426e2017-02-22 16:56:36 +08001271 u-boot,dm-pre-reloc;
Kever Yang777c8342016-07-19 21:16:58 +08001272 compatible = "rockchip,rk3399-pmucru";
1273 reg = <0x0 0xff750000 0x0 0x1000>;
Kever Yangdde22232017-04-19 18:17:31 +08001274 rockchip,grf = <&pmugrf>;
Kever Yang777c8342016-07-19 21:16:58 +08001275 #clock-cells = <1>;
1276 #reset-cells = <1>;
1277 assigned-clocks = <&pmucru PLL_PPLL>;
1278 assigned-clock-rates = <676000000>;
1279 };
1280
1281 cru: clock-controller@ff760000 {
Kever Yanga82426e2017-02-22 16:56:36 +08001282 u-boot,dm-pre-reloc;
Kever Yang777c8342016-07-19 21:16:58 +08001283 compatible = "rockchip,rk3399-cru";
1284 reg = <0x0 0xff760000 0x0 0x1000>;
Kever Yangdde22232017-04-19 18:17:31 +08001285 rockchip,grf = <&grf>;
Kever Yang777c8342016-07-19 21:16:58 +08001286 #clock-cells = <1>;
1287 #reset-cells = <1>;
1288 assigned-clocks =
1289 <&cru PLL_GPLL>, <&cru PLL_CPLL>,
1290 <&cru PLL_NPLL>,
1291 <&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>,
1292 <&cru PCLK_PERIHP>,
1293 <&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
Kever Yangdde22232017-04-19 18:17:31 +08001294 <&cru PCLK_PERILP0>, <&cru ACLK_CCI>,
Simon Glass0a09f2f2019-01-21 14:53:25 -07001295 <&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>,
1296 <&cru ACLK_VIO>, <&cru ACLK_HDCP>,
1297 <&cru ACLK_GIC_PRE>,
1298 <&cru PCLK_DDR>;
Kever Yang777c8342016-07-19 21:16:58 +08001299 assigned-clock-rates =
1300 <594000000>, <800000000>,
1301 <1000000000>,
1302 <150000000>, <75000000>,
1303 <37500000>,
1304 <100000000>, <100000000>,
Kever Yangdde22232017-04-19 18:17:31 +08001305 <50000000>, <600000000>,
Simon Glass0a09f2f2019-01-21 14:53:25 -07001306 <100000000>, <50000000>,
1307 <400000000>, <400000000>,
1308 <200000000>,
1309 <200000000>;
Kever Yang777c8342016-07-19 21:16:58 +08001310 };
1311
1312 grf: syscon@ff770000 {
Kever Yanga82426e2017-02-22 16:56:36 +08001313 u-boot,dm-pre-reloc;
Kever Yang777c8342016-07-19 21:16:58 +08001314 compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
1315 reg = <0x0 0xff770000 0x0 0x10000>;
1316 #address-cells = <1>;
1317 #size-cells = <1>;
1318
1319 io_domains: io-domains {
1320 compatible = "rockchip,rk3399-io-voltage-domain";
1321 status = "disabled";
1322 };
1323
Kever Yangdde22232017-04-19 18:17:31 +08001324 u2phy0: usb2-phy@e450 {
1325 compatible = "rockchip,rk3399-usb2phy";
1326 reg = <0xe450 0x10>;
1327 clocks = <&cru SCLK_USB2PHY0_REF>;
1328 clock-names = "phyclk";
1329 #clock-cells = <0>;
1330 clock-output-names = "clk_usbphy0_480m";
1331 status = "disabled";
1332
1333 u2phy0_host: host-port {
1334 #phy-cells = <0>;
1335 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
1336 interrupt-names = "linestate";
1337 status = "disabled";
1338 };
1339
1340 u2phy0_otg: otg-port {
1341 #phy-cells = <0>;
1342 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
1343 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
1344 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
1345 interrupt-names = "otg-bvalid", "otg-id",
1346 "linestate";
1347 status = "disabled";
1348 };
1349 };
1350
1351 u2phy1: usb2-phy@e460 {
1352 compatible = "rockchip,rk3399-usb2phy";
1353 reg = <0xe460 0x10>;
1354 clocks = <&cru SCLK_USB2PHY1_REF>;
1355 clock-names = "phyclk";
1356 #clock-cells = <0>;
1357 clock-output-names = "clk_usbphy1_480m";
1358 status = "disabled";
1359
1360 u2phy1_host: host-port {
1361 #phy-cells = <0>;
1362 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH 0>;
1363 interrupt-names = "linestate";
1364 status = "disabled";
1365 };
1366
1367 u2phy1_otg: otg-port {
1368 #phy-cells = <0>;
1369 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>,
1370 <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>,
1371 <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH 0>;
1372 interrupt-names = "otg-bvalid", "otg-id",
1373 "linestate";
1374 status = "disabled";
1375 };
1376 };
1377
Kever Yang777c8342016-07-19 21:16:58 +08001378 emmc_phy: phy@f780 {
1379 compatible = "rockchip,rk3399-emmc-phy";
1380 reg = <0xf780 0x24>;
Kever Yangdde22232017-04-19 18:17:31 +08001381 clocks = <&sdhci>;
1382 clock-names = "emmcclk";
Kever Yang777c8342016-07-19 21:16:58 +08001383 #phy-cells = <0>;
1384 status = "disabled";
1385 };
Kever Yangdde22232017-04-19 18:17:31 +08001386
1387 pcie_phy: pcie-phy {
1388 compatible = "rockchip,rk3399-pcie-phy";
1389 clocks = <&cru SCLK_PCIEPHY_REF>;
1390 clock-names = "refclk";
1391 #phy-cells = <0>;
1392 resets = <&cru SRST_PCIEPHY>;
1393 reset-names = "phy";
1394 status = "disabled";
1395 };
Kever Yang777c8342016-07-19 21:16:58 +08001396 };
1397
Simon Glass0a09f2f2019-01-21 14:53:25 -07001398 tcphy0: phy@ff7c0000 {
1399 compatible = "rockchip,rk3399-typec-phy";
1400 reg = <0x0 0xff7c0000 0x0 0x40000>;
1401 clocks = <&cru SCLK_UPHY0_TCPDCORE>,
1402 <&cru SCLK_UPHY0_TCPDPHY_REF>;
1403 clock-names = "tcpdcore", "tcpdphy-ref";
1404 assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>;
1405 assigned-clock-rates = <50000000>;
1406 power-domains = <&power RK3399_PD_TCPD0>;
1407 resets = <&cru SRST_UPHY0>,
1408 <&cru SRST_UPHY0_PIPE_L00>,
1409 <&cru SRST_P_UPHY0_TCPHY>;
1410 reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
1411 rockchip,grf = <&grf>;
1412 status = "disabled";
1413
1414 tcphy0_dp: dp-port {
1415 #phy-cells = <0>;
1416 };
1417
1418 tcphy0_usb3: usb3-port {
1419 #phy-cells = <0>;
1420 };
1421 };
1422
1423 tcphy1: phy@ff800000 {
1424 compatible = "rockchip,rk3399-typec-phy";
1425 reg = <0x0 0xff800000 0x0 0x40000>;
1426 clocks = <&cru SCLK_UPHY1_TCPDCORE>,
1427 <&cru SCLK_UPHY1_TCPDPHY_REF>;
1428 clock-names = "tcpdcore", "tcpdphy-ref";
1429 assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>;
1430 assigned-clock-rates = <50000000>;
1431 power-domains = <&power RK3399_PD_TCPD1>;
1432 resets = <&cru SRST_UPHY1>,
1433 <&cru SRST_UPHY1_PIPE_L00>,
1434 <&cru SRST_P_UPHY1_TCPHY>;
1435 reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
1436 rockchip,grf = <&grf>;
1437 status = "disabled";
1438
1439 tcphy1_dp: dp-port {
1440 #phy-cells = <0>;
1441 };
1442
1443 tcphy1_usb3: usb3-port {
1444 #phy-cells = <0>;
1445 };
1446 };
1447
Kever Yangdde22232017-04-19 18:17:31 +08001448 watchdog@ff848000 {
Kever Yang777c8342016-07-19 21:16:58 +08001449 compatible = "snps,dw-wdt";
Kever Yangdde22232017-04-19 18:17:31 +08001450 reg = <0x0 0xff848000 0x0 0x100>;
Kever Yang777c8342016-07-19 21:16:58 +08001451 clocks = <&cru PCLK_WDT>;
Kever Yangdde22232017-04-19 18:17:31 +08001452 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +08001453 };
1454
Kever Yangdde22232017-04-19 18:17:31 +08001455 rktimer: rktimer@ff850000 {
1456 compatible = "rockchip,rk3399-timer";
1457 reg = <0x0 0xff850000 0x0 0x1000>;
1458 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH 0>;
1459 clocks = <&cru PCLK_TIMER0>, <&cru SCLK_TIMER00>;
1460 clock-names = "pclk", "timer";
1461 };
Philipp Tomsichca0ab272017-03-24 19:24:27 +01001462
Kever Yang777c8342016-07-19 21:16:58 +08001463 spdif: spdif@ff870000 {
1464 compatible = "rockchip,rk3399-spdif";
1465 reg = <0x0 0xff870000 0x0 0x1000>;
Kever Yangdde22232017-04-19 18:17:31 +08001466 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +08001467 dmas = <&dmac_bus 7>;
1468 dma-names = "tx";
1469 clock-names = "mclk", "hclk";
1470 clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>;
1471 pinctrl-names = "default";
1472 pinctrl-0 = <&spdif_bus>;
Kever Yangdde22232017-04-19 18:17:31 +08001473 power-domains = <&power RK3399_PD_SDIOAUDIO>;
Simon Glass0a09f2f2019-01-21 14:53:25 -07001474 #sound-dai-cells = <0>;
Kever Yang777c8342016-07-19 21:16:58 +08001475 status = "disabled";
1476 };
1477
1478 i2s0: i2s@ff880000 {
1479 compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
1480 reg = <0x0 0xff880000 0x0 0x1000>;
1481 rockchip,grf = <&grf>;
Kever Yangdde22232017-04-19 18:17:31 +08001482 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +08001483 dmas = <&dmac_bus 0>, <&dmac_bus 1>;
1484 dma-names = "tx", "rx";
1485 clock-names = "i2s_clk", "i2s_hclk";
1486 clocks = <&cru SCLK_I2S0_8CH>, <&cru HCLK_I2S0_8CH>;
1487 pinctrl-names = "default";
1488 pinctrl-0 = <&i2s0_8ch_bus>;
Kever Yangdde22232017-04-19 18:17:31 +08001489 power-domains = <&power RK3399_PD_SDIOAUDIO>;
Simon Glass0a09f2f2019-01-21 14:53:25 -07001490 #sound-dai-cells = <0>;
Kever Yang777c8342016-07-19 21:16:58 +08001491 status = "disabled";
1492 };
1493
1494 i2s1: i2s@ff890000 {
1495 compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
1496 reg = <0x0 0xff890000 0x0 0x1000>;
Kever Yangdde22232017-04-19 18:17:31 +08001497 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +08001498 dmas = <&dmac_bus 2>, <&dmac_bus 3>;
1499 dma-names = "tx", "rx";
1500 clock-names = "i2s_clk", "i2s_hclk";
1501 clocks = <&cru SCLK_I2S1_8CH>, <&cru HCLK_I2S1_8CH>;
1502 pinctrl-names = "default";
1503 pinctrl-0 = <&i2s1_2ch_bus>;
Kever Yangdde22232017-04-19 18:17:31 +08001504 power-domains = <&power RK3399_PD_SDIOAUDIO>;
Simon Glass0a09f2f2019-01-21 14:53:25 -07001505 #sound-dai-cells = <0>;
Kever Yang777c8342016-07-19 21:16:58 +08001506 status = "disabled";
1507 };
1508
1509 i2s2: i2s@ff8a0000 {
1510 compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s";
1511 reg = <0x0 0xff8a0000 0x0 0x1000>;
Kever Yangdde22232017-04-19 18:17:31 +08001512 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +08001513 dmas = <&dmac_bus 4>, <&dmac_bus 5>;
1514 dma-names = "tx", "rx";
1515 clock-names = "i2s_clk", "i2s_hclk";
1516 clocks = <&cru SCLK_I2S2_8CH>, <&cru HCLK_I2S2_8CH>;
Kever Yangdde22232017-04-19 18:17:31 +08001517 power-domains = <&power RK3399_PD_SDIOAUDIO>;
Simon Glass0a09f2f2019-01-21 14:53:25 -07001518 #sound-dai-cells = <0>;
eric.gao@rock-chips.comb6443542017-04-10 10:17:03 +08001519 status = "disabled";
1520 };
1521
Eric Gaodf8fe992017-05-02 18:23:56 +08001522 vopl: vop@ff8f0000 {
1523 u-boot,dm-pre-reloc;
1524 compatible = "rockchip,rk3399-vop-lit";
1525 reg = <0x0 0xff8f0000 0x0 0x3efc>;
1526 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
Simon Glass0a09f2f2019-01-21 14:53:25 -07001527 assigned-clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
1528 assigned-clock-rates = <400000000>, <100000000>;
Eric Gaodf8fe992017-05-02 18:23:56 +08001529 clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
1530 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
Simon Glass0a09f2f2019-01-21 14:53:25 -07001531 iommus = <&vopl_mmu>;
1532 power-domains = <&power RK3399_PD_VOPL>;
Eric Gaodf8fe992017-05-02 18:23:56 +08001533 resets = <&cru SRST_A_VOP1>, <&cru SRST_H_VOP1>, <&cru SRST_D_VOP1>;
1534 reset-names = "axi", "ahb", "dclk";
1535 status = "disabled";
Simon Glass0a09f2f2019-01-21 14:53:25 -07001536
Eric Gaodf8fe992017-05-02 18:23:56 +08001537 vopl_out: port {
1538 #address-cells = <1>;
1539 #size-cells = <0>;
Simon Glass0a09f2f2019-01-21 14:53:25 -07001540
Eric Gaodf8fe992017-05-02 18:23:56 +08001541 vopl_out_mipi: endpoint@0 {
Simon Glass0a09f2f2019-01-21 14:53:25 -07001542 reg = <0>;
Eric Gaodf8fe992017-05-02 18:23:56 +08001543 remote-endpoint = <&mipi_in_vopl>;
1544 };
Philipp Tomsich876c1d02017-06-06 15:42:31 +02001545
Simon Glass0a09f2f2019-01-21 14:53:25 -07001546 vopl_out_edp: endpoint@1 {
Philipp Tomsich876c1d02017-06-06 15:42:31 +02001547 reg = <1>;
Simon Glass0a09f2f2019-01-21 14:53:25 -07001548 remote-endpoint = <&edp_in_vopl>;
1549 };
1550
1551 vopl_out_hdmi: endpoint@2 {
1552 reg = <2>;
Philipp Tomsich876c1d02017-06-06 15:42:31 +02001553 remote-endpoint = <&hdmi_in_vopl>;
1554 };
Simon Glass0a09f2f2019-01-21 14:53:25 -07001555
1556 vopl_out_mipi1: endpoint@3 {
1557 reg = <3>;
1558 remote-endpoint = <&mipi1_in_vopl>;
1559 };
1560
1561 vopl_out_dp: endpoint@4 {
1562 reg = <4>;
1563 remote-endpoint = <&dp_in_vopl>;
1564 };
Eric Gaodf8fe992017-05-02 18:23:56 +08001565 };
1566 };
1567
Simon Glass0a09f2f2019-01-21 14:53:25 -07001568 vopl_mmu: iommu@ff8f3f00 {
1569 compatible = "rockchip,iommu";
1570 reg = <0x0 0xff8f3f00 0x0 0x100>;
1571 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
1572 interrupt-names = "vopl_mmu";
1573 clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
1574 clock-names = "aclk", "iface";
1575 power-domains = <&power RK3399_PD_VOPL>;
1576 #iommu-cells = <0>;
1577 status = "disabled";
1578 };
1579
Eric Gaodf8fe992017-05-02 18:23:56 +08001580 vopb: vop@ff900000 {
1581 u-boot,dm-pre-reloc;
1582 compatible = "rockchip,rk3399-vop-big";
1583 reg = <0x0 0xff900000 0x0 0x3efc>;
1584 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
Simon Glass0a09f2f2019-01-21 14:53:25 -07001585 assigned-clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
1586 assigned-clock-rates = <400000000>, <100000000>;
Eric Gaodf8fe992017-05-02 18:23:56 +08001587 clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
Eric Gaodf8fe992017-05-02 18:23:56 +08001588 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
Simon Glass0a09f2f2019-01-21 14:53:25 -07001589 iommus = <&vopb_mmu>;
1590 power-domains = <&power RK3399_PD_VOPB>;
Eric Gaodf8fe992017-05-02 18:23:56 +08001591 resets = <&cru SRST_A_VOP0>, <&cru SRST_H_VOP0>, <&cru SRST_D_VOP0>;
1592 reset-names = "axi", "ahb", "dclk";
1593 status = "disabled";
Simon Glass0a09f2f2019-01-21 14:53:25 -07001594
Eric Gaodf8fe992017-05-02 18:23:56 +08001595 vopb_out: port {
1596 #address-cells = <1>;
1597 #size-cells = <0>;
Simon Glass0a09f2f2019-01-21 14:53:25 -07001598
1599 vopb_out_edp: endpoint@0 {
1600 reg = <0>;
1601 remote-endpoint = <&edp_in_vopb>;
1602 };
1603
1604 vopb_out_mipi: endpoint@1 {
1605 reg = <1>;
Eric Gaodf8fe992017-05-02 18:23:56 +08001606 remote-endpoint = <&mipi_in_vopb>;
1607 };
Philipp Tomsich876c1d02017-06-06 15:42:31 +02001608
Simon Glass0a09f2f2019-01-21 14:53:25 -07001609 vopb_out_hdmi: endpoint@2 {
1610 reg = <2>;
Philipp Tomsich876c1d02017-06-06 15:42:31 +02001611 remote-endpoint = <&hdmi_in_vopb>;
1612 };
Simon Glass0a09f2f2019-01-21 14:53:25 -07001613
1614 vopb_out_mipi1: endpoint@3 {
1615 reg = <3>;
1616 remote-endpoint = <&mipi1_in_vopb>;
1617 };
1618
1619 vopb_out_dp: endpoint@4 {
1620 reg = <4>;
1621 remote-endpoint = <&dp_in_vopb>;
1622 };
1623 };
1624 };
1625
1626 vopb_mmu: iommu@ff903f00 {
1627 compatible = "rockchip,iommu";
1628 reg = <0x0 0xff903f00 0x0 0x100>;
1629 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
1630 interrupt-names = "vopb_mmu";
1631 clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
1632 clock-names = "aclk", "iface";
1633 power-domains = <&power RK3399_PD_VOPB>;
1634 #iommu-cells = <0>;
1635 status = "disabled";
1636 };
1637
1638 isp0_mmu: iommu@ff914000 {
1639 compatible = "rockchip,iommu";
1640 reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
1641 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
1642 interrupt-names = "isp0_mmu";
1643 clocks = <&cru ACLK_ISP0_NOC>, <&cru HCLK_ISP0_NOC>;
1644 clock-names = "aclk", "iface";
1645 #iommu-cells = <0>;
1646 rockchip,disable-mmu-reset;
1647 status = "disabled";
1648 };
1649
1650 isp1_mmu: iommu@ff924000 {
1651 compatible = "rockchip,iommu";
1652 reg = <0x0 0xff924000 0x0 0x100>, <0x0 0xff925000 0x0 0x100>;
1653 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>;
1654 interrupt-names = "isp1_mmu";
1655 clocks = <&cru ACLK_ISP1_NOC>, <&cru HCLK_ISP1_NOC>;
1656 clock-names = "aclk", "iface";
1657 #iommu-cells = <0>;
1658 rockchip,disable-mmu-reset;
1659 status = "disabled";
1660 };
1661
1662 hdmi_sound: hdmi-sound {
1663 compatible = "simple-audio-card";
1664 simple-audio-card,format = "i2s";
1665 simple-audio-card,mclk-fs = <256>;
1666 simple-audio-card,name = "hdmi-sound";
1667 status = "disabled";
1668
1669 simple-audio-card,cpu {
1670 sound-dai = <&i2s2>;
1671 };
1672 simple-audio-card,codec {
1673 sound-dai = <&hdmi>;
Philipp Tomsich876c1d02017-06-06 15:42:31 +02001674 };
1675 };
1676
1677 hdmi: hdmi@ff940000 {
1678 compatible = "rockchip,rk3399-dw-hdmi";
1679 reg = <0x0 0xff940000 0x0 0x20000>;
Simon Glass0a09f2f2019-01-21 14:53:25 -07001680 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>;
1681 clocks = <&cru PCLK_HDMI_CTRL>,
1682 <&cru SCLK_HDMI_SFR>,
1683 <&cru PLL_VPLL>,
1684 <&cru PCLK_VIO_GRF>,
1685 <&cru SCLK_HDMI_CEC>;
1686 clock-names = "iahb", "isfr", "vpll", "grf", "cec";
1687 power-domains = <&power RK3399_PD_HDCP>;
Philipp Tomsich876c1d02017-06-06 15:42:31 +02001688 reg-io-width = <4>;
1689 rockchip,grf = <&grf>;
Simon Glass0a09f2f2019-01-21 14:53:25 -07001690 #sound-dai-cells = <0>;
Philipp Tomsich876c1d02017-06-06 15:42:31 +02001691 status = "disabled";
1692
1693 ports {
1694 hdmi_in: port {
1695 #address-cells = <1>;
1696 #size-cells = <0>;
Simon Glass0a09f2f2019-01-21 14:53:25 -07001697
Philipp Tomsich876c1d02017-06-06 15:42:31 +02001698 hdmi_in_vopb: endpoint@0 {
1699 reg = <0>;
1700 remote-endpoint = <&vopb_out_hdmi>;
1701 };
1702 hdmi_in_vopl: endpoint@1 {
1703 reg = <1>;
1704 remote-endpoint = <&vopl_out_hdmi>;
1705 };
1706 };
Eric Gaodf8fe992017-05-02 18:23:56 +08001707 };
1708 };
1709
1710 mipi_dsi: mipi@ff960000 {
1711 compatible = "rockchip,rk3399_mipi_dsi";
1712 reg = <0x0 0xff960000 0x0 0x8000>;
1713 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH 0>;
1714 clocks = <&cru SCLK_MIPIDPHY_REF>, <&cru PCLK_MIPI_DSI0>,
1715 <&cru SCLK_DPHY_TX0_CFG>;
1716 clock-names = "ref", "pclk", "phy_cfg";
1717 rockchip,grf = <&grf>;
1718 #address-cells = <1>;
1719 #size-cells = <0>;
1720 status = "disabled";
1721 ports {
Eric Gaodf8fe992017-05-02 18:23:56 +08001722 reg = <1>;
1723 mipi_in: port {
1724 #address-cells = <1>;
1725 #size-cells = <0>;
1726 mipi_in_vopb: endpoint@0 {
1727 reg = <0>;
1728 remote-endpoint = <&vopb_out_mipi>;
1729 };
1730 mipi_in_vopl: endpoint@1 {
1731 reg = <1>;
1732 remote-endpoint = <&vopl_out_mipi>;
1733 };
1734 };
1735 };
1736 };
1737
Simon Glass0a09f2f2019-01-21 14:53:25 -07001738 mipi_dsi1: mipi@ff968000 {
1739 compatible = "rockchip,rk3399-mipi-dsi", "snps,dw-mipi-dsi";
1740 reg = <0x0 0xff968000 0x0 0x8000>;
1741 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH 0>;
1742 clocks = <&cru SCLK_DPHY_PLL>, <&cru PCLK_MIPI_DSI1>,
1743 <&cru SCLK_DPHY_TX1RX1_CFG>, <&cru PCLK_VIO_GRF>;
1744 clock-names = "ref", "pclk", "phy_cfg", "grf";
1745 power-domains = <&power RK3399_PD_VIO>;
1746 resets = <&cru SRST_P_MIPI_DSI1>;
1747 reset-names = "apb";
1748 rockchip,grf = <&grf>;
1749 status = "disabled";
1750
1751 ports {
1752 #address-cells = <1>;
1753 #size-cells = <0>;
1754
1755 mipi1_in: port@0 {
1756 reg = <0>;
1757 #address-cells = <1>;
1758 #size-cells = <0>;
1759
1760 mipi1_in_vopb: endpoint@0 {
1761 reg = <0>;
1762 remote-endpoint = <&vopb_out_mipi1>;
1763 };
1764
1765 mipi1_in_vopl: endpoint@1 {
1766 reg = <1>;
1767 remote-endpoint = <&vopl_out_mipi1>;
1768 };
1769 };
1770 };
1771 };
1772
1773 edp: edp@ff970000 {
1774 compatible = "rockchip,rk3399-edp";
1775 reg = <0x0 0xff970000 0x0 0x8000>;
1776 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH 0>;
1777 clocks = <&cru PCLK_EDP>, <&cru PCLK_EDP_CTRL>, <&cru PCLK_VIO_GRF>;
1778 clock-names = "dp", "pclk", "grf";
1779 pinctrl-names = "default";
1780 pinctrl-0 = <&edp_hpd>;
1781 power-domains = <&power RK3399_PD_EDP>;
1782 resets = <&cru SRST_P_EDP_CTRL>;
1783 reset-names = "dp";
1784 rockchip,grf = <&grf>;
1785 status = "disabled";
1786
1787 ports {
1788 #address-cells = <1>;
1789 #size-cells = <0>;
1790 edp_in: port@0 {
1791 reg = <0>;
1792 #address-cells = <1>;
1793 #size-cells = <0>;
1794
1795 edp_in_vopb: endpoint@0 {
1796 reg = <0>;
1797 remote-endpoint = <&vopb_out_edp>;
1798 };
1799
1800 edp_in_vopl: endpoint@1 {
1801 reg = <1>;
1802 remote-endpoint = <&vopl_out_edp>;
1803 };
1804 };
1805 };
1806 };
1807
1808 gpu: gpu@ff9a0000 {
1809 compatible = "rockchip,rk3399-mali", "arm,mali-t860";
1810 reg = <0x0 0xff9a0000 0x0 0x10000>;
1811 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>,
1812 <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
1813 <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>;
1814 interrupt-names = "gpu", "job", "mmu";
1815 clocks = <&cru ACLK_GPU>;
1816 power-domains = <&power RK3399_PD_GPU>;
1817 status = "disabled";
1818 };
1819
Kever Yang777c8342016-07-19 21:16:58 +08001820 pinctrl: pinctrl {
Kever Yanga82426e2017-02-22 16:56:36 +08001821 u-boot,dm-pre-reloc;
Kever Yang777c8342016-07-19 21:16:58 +08001822 compatible = "rockchip,rk3399-pinctrl";
1823 rockchip,grf = <&grf>;
1824 rockchip,pmu = <&pmugrf>;
1825 #address-cells = <2>;
1826 #size-cells = <2>;
1827 ranges;
1828
1829 gpio0: gpio0@ff720000 {
1830 compatible = "rockchip,gpio-bank";
1831 reg = <0x0 0xff720000 0x0 0x100>;
1832 clocks = <&pmucru PCLK_GPIO0_PMU>;
Kever Yangdde22232017-04-19 18:17:31 +08001833 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +08001834
1835 gpio-controller;
1836 #gpio-cells = <0x2>;
1837
1838 interrupt-controller;
1839 #interrupt-cells = <0x2>;
1840 };
1841
1842 gpio1: gpio1@ff730000 {
1843 compatible = "rockchip,gpio-bank";
1844 reg = <0x0 0xff730000 0x0 0x100>;
1845 clocks = <&pmucru PCLK_GPIO1_PMU>;
Kever Yangdde22232017-04-19 18:17:31 +08001846 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +08001847
1848 gpio-controller;
1849 #gpio-cells = <0x2>;
1850
1851 interrupt-controller;
1852 #interrupt-cells = <0x2>;
1853 };
1854
1855 gpio2: gpio2@ff780000 {
1856 compatible = "rockchip,gpio-bank";
1857 reg = <0x0 0xff780000 0x0 0x100>;
1858 clocks = <&cru PCLK_GPIO2>;
Kever Yangdde22232017-04-19 18:17:31 +08001859 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +08001860
1861 gpio-controller;
1862 #gpio-cells = <0x2>;
1863
1864 interrupt-controller;
1865 #interrupt-cells = <0x2>;
1866 };
1867
1868 gpio3: gpio3@ff788000 {
1869 compatible = "rockchip,gpio-bank";
1870 reg = <0x0 0xff788000 0x0 0x100>;
1871 clocks = <&cru PCLK_GPIO3>;
Kever Yangdde22232017-04-19 18:17:31 +08001872 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +08001873
1874 gpio-controller;
1875 #gpio-cells = <0x2>;
1876
1877 interrupt-controller;
1878 #interrupt-cells = <0x2>;
1879 };
1880
1881 gpio4: gpio4@ff790000 {
1882 compatible = "rockchip,gpio-bank";
1883 reg = <0x0 0xff790000 0x0 0x100>;
1884 clocks = <&cru PCLK_GPIO4>;
Kever Yangdde22232017-04-19 18:17:31 +08001885 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 0>;
Kever Yang777c8342016-07-19 21:16:58 +08001886
1887 gpio-controller;
1888 #gpio-cells = <0x2>;
1889
1890 interrupt-controller;
1891 #interrupt-cells = <0x2>;
1892 };
1893
1894 pcfg_pull_up: pcfg-pull-up {
1895 bias-pull-up;
1896 };
1897
1898 pcfg_pull_down: pcfg-pull-down {
1899 bias-pull-down;
1900 };
1901
1902 pcfg_pull_none: pcfg-pull-none {
1903 bias-disable;
1904 };
1905
1906 pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1907 bias-disable;
1908 drive-strength = <12>;
1909 };
1910
Randy Li2c9050c2018-09-28 00:32:58 +05301911 pcfg_pull_none_13ma: pcfg-pull-none-13ma {
1912 bias-disable;
1913 drive-strength = <13>;
Kever Yang777c8342016-07-19 21:16:58 +08001914 };
1915
Randy Li2c9050c2018-09-28 00:32:58 +05301916 pcfg_pull_none_18ma: pcfg-pull-none-18ma {
1917 bias-disable;
1918 drive-strength = <18>;
1919 };
1920
1921 pcfg_pull_none_20ma: pcfg-pull-none-20ma {
1922 bias-disable;
1923 drive-strength = <20>;
Kever Yang777c8342016-07-19 21:16:58 +08001924 };
1925
1926 pcfg_pull_up_2ma: pcfg-pull-up-2ma {
1927 bias-pull-up;
1928 drive-strength = <2>;
1929 };
1930
Randy Li2c9050c2018-09-28 00:32:58 +05301931 pcfg_pull_up_8ma: pcfg-pull-up-8ma {
1932 bias-pull-up;
1933 drive-strength = <8>;
1934 };
1935
1936 pcfg_pull_up_18ma: pcfg-pull-up-18ma {
1937 bias-pull-up;
1938 drive-strength = <18>;
1939 };
1940
1941 pcfg_pull_up_20ma: pcfg-pull-up-20ma {
1942 bias-pull-up;
1943 drive-strength = <20>;
1944 };
1945
1946 pcfg_pull_down_4ma: pcfg-pull-down-4ma {
1947 bias-pull-down;
1948 drive-strength = <4>;
1949 };
1950
1951 pcfg_pull_down_8ma: pcfg-pull-down-8ma {
1952 bias-pull-down;
1953 drive-strength = <8>;
1954 };
1955
Kever Yang777c8342016-07-19 21:16:58 +08001956 pcfg_pull_down_12ma: pcfg-pull-down-12ma {
1957 bias-pull-down;
1958 drive-strength = <12>;
1959 };
1960
Randy Li2c9050c2018-09-28 00:32:58 +05301961 pcfg_pull_down_18ma: pcfg-pull-down-18ma {
1962 bias-pull-down;
1963 drive-strength = <18>;
1964 };
1965
1966 pcfg_pull_down_20ma: pcfg-pull-down-20ma {
1967 bias-pull-down;
1968 drive-strength = <20>;
1969 };
1970
1971 pcfg_output_high: pcfg-output-high {
1972 output-high;
1973 };
1974
1975 pcfg_output_low: pcfg-output-low {
1976 output-low;
Kever Yang777c8342016-07-19 21:16:58 +08001977 };
1978
Kever Yangdde22232017-04-19 18:17:31 +08001979 clock {
1980 clk_32k: clk-32k {
1981 rockchip,pins = <0 RK_PA0 RK_FUNC_2 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08001982 };
1983 };
1984
Kever Yangdde22232017-04-19 18:17:31 +08001985 edp {
1986 edp_hpd: edp-hpd {
Kever Yang777c8342016-07-19 21:16:58 +08001987 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08001988 <4 RK_PC7 RK_FUNC_2 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08001989 };
1990 };
1991
Philipp Tomsichca0ab272017-03-24 19:24:27 +01001992 gmac {
1993 rgmii_pins: rgmii-pins {
1994 rockchip,pins =
1995 /* mac_txclk */
Kever Yangdde22232017-04-19 18:17:31 +08001996 <3 RK_PC1 RK_FUNC_1 &pcfg_pull_none_13ma>,
Philipp Tomsichca0ab272017-03-24 19:24:27 +01001997 /* mac_rxclk */
Kever Yangdde22232017-04-19 18:17:31 +08001998 <3 RK_PB6 RK_FUNC_1 &pcfg_pull_none>,
Philipp Tomsichca0ab272017-03-24 19:24:27 +01001999 /* mac_mdio */
Kever Yangdde22232017-04-19 18:17:31 +08002000 <3 RK_PB5 RK_FUNC_1 &pcfg_pull_none>,
Philipp Tomsichca0ab272017-03-24 19:24:27 +01002001 /* mac_txen */
Kever Yangdde22232017-04-19 18:17:31 +08002002 <3 RK_PB4 RK_FUNC_1 &pcfg_pull_none_13ma>,
Philipp Tomsichca0ab272017-03-24 19:24:27 +01002003 /* mac_clk */
Kever Yangdde22232017-04-19 18:17:31 +08002004 <3 RK_PB3 RK_FUNC_1 &pcfg_pull_none>,
Philipp Tomsichca0ab272017-03-24 19:24:27 +01002005 /* mac_rxdv */
Kever Yangdde22232017-04-19 18:17:31 +08002006 <3 RK_PB1 RK_FUNC_1 &pcfg_pull_none>,
Philipp Tomsichca0ab272017-03-24 19:24:27 +01002007 /* mac_mdc */
Kever Yangdde22232017-04-19 18:17:31 +08002008 <3 RK_PB0 RK_FUNC_1 &pcfg_pull_none>,
Philipp Tomsichca0ab272017-03-24 19:24:27 +01002009 /* mac_rxd1 */
Kever Yangdde22232017-04-19 18:17:31 +08002010 <3 RK_PA7 RK_FUNC_1 &pcfg_pull_none>,
Philipp Tomsichca0ab272017-03-24 19:24:27 +01002011 /* mac_rxd0 */
Kever Yangdde22232017-04-19 18:17:31 +08002012 <3 RK_PA6 RK_FUNC_1 &pcfg_pull_none>,
Philipp Tomsichca0ab272017-03-24 19:24:27 +01002013 /* mac_txd1 */
Kever Yangdde22232017-04-19 18:17:31 +08002014 <3 RK_PA5 RK_FUNC_1 &pcfg_pull_none_13ma>,
Philipp Tomsichca0ab272017-03-24 19:24:27 +01002015 /* mac_txd0 */
Kever Yangdde22232017-04-19 18:17:31 +08002016 <3 RK_PA4 RK_FUNC_1 &pcfg_pull_none_13ma>,
Philipp Tomsichca0ab272017-03-24 19:24:27 +01002017 /* mac_rxd3 */
Kever Yangdde22232017-04-19 18:17:31 +08002018 <3 RK_PA3 RK_FUNC_1 &pcfg_pull_none>,
Philipp Tomsichca0ab272017-03-24 19:24:27 +01002019 /* mac_rxd2 */
Kever Yangdde22232017-04-19 18:17:31 +08002020 <3 RK_PA2 RK_FUNC_1 &pcfg_pull_none>,
Philipp Tomsichca0ab272017-03-24 19:24:27 +01002021 /* mac_txd3 */
Kever Yangdde22232017-04-19 18:17:31 +08002022 <3 RK_PA1 RK_FUNC_1 &pcfg_pull_none_13ma>,
Philipp Tomsichca0ab272017-03-24 19:24:27 +01002023 /* mac_txd2 */
Kever Yangdde22232017-04-19 18:17:31 +08002024 <3 RK_PA0 RK_FUNC_1 &pcfg_pull_none_13ma>;
2025 };
2026
2027 rmii_pins: rmii-pins {
2028 rockchip,pins =
2029 /* mac_mdio */
2030 <3 RK_PB5 RK_FUNC_1 &pcfg_pull_none>,
2031 /* mac_txen */
2032 <3 RK_PB4 RK_FUNC_1 &pcfg_pull_none_13ma>,
2033 /* mac_clk */
2034 <3 RK_PB3 RK_FUNC_1 &pcfg_pull_none>,
2035 /* mac_rxer */
2036 <3 RK_PB2 RK_FUNC_1 &pcfg_pull_none>,
2037 /* mac_rxdv */
2038 <3 RK_PB1 RK_FUNC_1 &pcfg_pull_none>,
2039 /* mac_mdc */
2040 <3 RK_PB0 RK_FUNC_1 &pcfg_pull_none>,
2041 /* mac_rxd1 */
2042 <3 RK_PA7 RK_FUNC_1 &pcfg_pull_none>,
2043 /* mac_rxd0 */
2044 <3 RK_PA6 RK_FUNC_1 &pcfg_pull_none>,
2045 /* mac_txd1 */
2046 <3 RK_PA5 RK_FUNC_1 &pcfg_pull_none_13ma>,
2047 /* mac_txd0 */
2048 <3 RK_PA4 RK_FUNC_1 &pcfg_pull_none_13ma>;
2049 };
2050 };
2051
2052 i2c0 {
2053 i2c0_xfer: i2c0-xfer {
2054 rockchip,pins =
2055 <1 RK_PB7 RK_FUNC_2 &pcfg_pull_none>,
2056 <1 RK_PC0 RK_FUNC_2 &pcfg_pull_none>;
2057 };
2058 };
2059
2060 i2c1 {
2061 i2c1_xfer: i2c1-xfer {
2062 rockchip,pins =
2063 <4 RK_PA2 RK_FUNC_1 &pcfg_pull_none>,
2064 <4 RK_PA1 RK_FUNC_1 &pcfg_pull_none>;
2065 };
2066 };
2067
2068 i2c2 {
2069 i2c2_xfer: i2c2-xfer {
2070 rockchip,pins =
2071 <2 RK_PA1 RK_FUNC_2 &pcfg_pull_none_12ma>,
2072 <2 RK_PA0 RK_FUNC_2 &pcfg_pull_none_12ma>;
2073 };
2074 };
2075
2076 i2c3 {
2077 i2c3_xfer: i2c3-xfer {
2078 rockchip,pins =
2079 <4 RK_PC1 RK_FUNC_1 &pcfg_pull_none>,
2080 <4 RK_PC0 RK_FUNC_1 &pcfg_pull_none>;
2081 };
2082 };
2083
2084 i2c4 {
2085 i2c4_xfer: i2c4-xfer {
2086 rockchip,pins =
2087 <1 RK_PB4 RK_FUNC_1 &pcfg_pull_none>,
2088 <1 RK_PB3 RK_FUNC_1 &pcfg_pull_none>;
2089 };
2090 };
2091
2092 i2c5 {
2093 i2c5_xfer: i2c5-xfer {
2094 rockchip,pins =
2095 <3 RK_PB3 RK_FUNC_2 &pcfg_pull_none>,
2096 <3 RK_PB2 RK_FUNC_2 &pcfg_pull_none>;
2097 };
2098 };
2099
2100 i2c6 {
2101 i2c6_xfer: i2c6-xfer {
2102 rockchip,pins =
2103 <2 RK_PB2 RK_FUNC_2 &pcfg_pull_none>,
2104 <2 RK_PB1 RK_FUNC_2 &pcfg_pull_none>;
2105 };
2106 };
2107
2108 i2c7 {
2109 i2c7_xfer: i2c7-xfer {
2110 rockchip,pins =
2111 <2 RK_PB0 RK_FUNC_2 &pcfg_pull_none>,
2112 <2 RK_PA7 RK_FUNC_2 &pcfg_pull_none>;
2113 };
2114 };
2115
2116 i2c8 {
2117 i2c8_xfer: i2c8-xfer {
2118 rockchip,pins =
2119 <1 RK_PC5 RK_FUNC_1 &pcfg_pull_none>,
2120 <1 RK_PC4 RK_FUNC_1 &pcfg_pull_none>;
2121 };
2122 };
2123
2124 i2s0 {
2125 i2s0_8ch_bus: i2s0-8ch-bus {
2126 rockchip,pins =
2127 <3 RK_PD0 RK_FUNC_1 &pcfg_pull_none>,
2128 <3 RK_PD1 RK_FUNC_1 &pcfg_pull_none>,
2129 <3 RK_PD2 RK_FUNC_1 &pcfg_pull_none>,
2130 <3 RK_PD3 RK_FUNC_1 &pcfg_pull_none>,
2131 <3 RK_PD4 RK_FUNC_1 &pcfg_pull_none>,
2132 <3 RK_PD5 RK_FUNC_1 &pcfg_pull_none>,
2133 <3 RK_PD6 RK_FUNC_1 &pcfg_pull_none>,
2134 <3 RK_PD7 RK_FUNC_1 &pcfg_pull_none>,
2135 <4 RK_PA0 RK_FUNC_1 &pcfg_pull_none>;
2136 };
2137 };
2138
2139 i2s1 {
2140 i2s1_2ch_bus: i2s1-2ch-bus {
2141 rockchip,pins =
2142 <4 RK_PA3 RK_FUNC_1 &pcfg_pull_none>,
2143 <4 RK_PA4 RK_FUNC_1 &pcfg_pull_none>,
2144 <4 RK_PA5 RK_FUNC_1 &pcfg_pull_none>,
2145 <4 RK_PA6 RK_FUNC_1 &pcfg_pull_none>,
2146 <4 RK_PA7 RK_FUNC_1 &pcfg_pull_none>;
2147 };
2148 };
2149
2150 sdio0 {
2151 sdio0_bus1: sdio0-bus1 {
2152 rockchip,pins =
2153 <2 RK_PC4 RK_FUNC_1 &pcfg_pull_up>;
2154 };
2155
2156 sdio0_bus4: sdio0-bus4 {
2157 rockchip,pins =
2158 <2 RK_PC4 RK_FUNC_1 &pcfg_pull_up>,
2159 <2 RK_PC5 RK_FUNC_1 &pcfg_pull_up>,
2160 <2 RK_PC6 RK_FUNC_1 &pcfg_pull_up>,
2161 <2 RK_PC7 RK_FUNC_1 &pcfg_pull_up>;
2162 };
2163
2164 sdio0_cmd: sdio0-cmd {
2165 rockchip,pins =
2166 <2 RK_PD0 RK_FUNC_1 &pcfg_pull_up>;
2167 };
2168
2169 sdio0_clk: sdio0-clk {
2170 rockchip,pins =
2171 <2 RK_PD1 RK_FUNC_1 &pcfg_pull_none>;
2172 };
2173
2174 sdio0_cd: sdio0-cd {
2175 rockchip,pins =
2176 <2 RK_PD2 RK_FUNC_1 &pcfg_pull_up>;
2177 };
2178
2179 sdio0_pwr: sdio0-pwr {
2180 rockchip,pins =
2181 <2 RK_PD3 RK_FUNC_1 &pcfg_pull_up>;
2182 };
2183
2184 sdio0_bkpwr: sdio0-bkpwr {
2185 rockchip,pins =
2186 <2 RK_PD4 RK_FUNC_1 &pcfg_pull_up>;
2187 };
2188
2189 sdio0_wp: sdio0-wp {
2190 rockchip,pins =
2191 <0 RK_PA3 RK_FUNC_1 &pcfg_pull_up>;
2192 };
2193
2194 sdio0_int: sdio0-int {
2195 rockchip,pins =
2196 <0 RK_PA4 RK_FUNC_1 &pcfg_pull_up>;
Philipp Tomsichca0ab272017-03-24 19:24:27 +01002197 };
2198 };
2199
Kever Yangbd218ab2016-08-16 17:58:14 +08002200 sdmmc {
2201 sdmmc_bus1: sdmmc-bus1 {
2202 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002203 <4 RK_PB0 RK_FUNC_1 &pcfg_pull_up>;
Kever Yangbd218ab2016-08-16 17:58:14 +08002204 };
2205
2206 sdmmc_bus4: sdmmc-bus4 {
2207 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002208 <4 RK_PB0 RK_FUNC_1 &pcfg_pull_up>,
2209 <4 RK_PB1 RK_FUNC_1 &pcfg_pull_up>,
2210 <4 RK_PB2 RK_FUNC_1 &pcfg_pull_up>,
2211 <4 RK_PB3 RK_FUNC_1 &pcfg_pull_up>;
Kever Yangbd218ab2016-08-16 17:58:14 +08002212 };
2213
2214 sdmmc_clk: sdmmc-clk {
2215 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002216 <4 RK_PB4 RK_FUNC_1 &pcfg_pull_none>;
Kever Yangbd218ab2016-08-16 17:58:14 +08002217 };
2218
2219 sdmmc_cmd: sdmmc-cmd {
2220 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002221 <4 RK_PB5 RK_FUNC_1 &pcfg_pull_up>;
Kever Yangbd218ab2016-08-16 17:58:14 +08002222 };
2223
Simon Glass0a09f2f2019-01-21 14:53:25 -07002224 sdmmc_cd: sdmmc-cd {
Kever Yangbd218ab2016-08-16 17:58:14 +08002225 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002226 <0 RK_PA7 RK_FUNC_1 &pcfg_pull_up>;
Kever Yangbd218ab2016-08-16 17:58:14 +08002227 };
2228
2229 sdmmc_wp: sdmmc-wp {
2230 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002231 <0 RK_PB0 RK_FUNC_1 &pcfg_pull_up>;
2232 };
2233 };
2234
2235 sleep {
2236 ap_pwroff: ap-pwroff {
2237 rockchip,pins = <1 RK_PA5 RK_FUNC_1 &pcfg_pull_none>;
2238 };
2239
2240 ddrio_pwroff: ddrio-pwroff {
2241 rockchip,pins = <0 RK_PA1 RK_FUNC_1 &pcfg_pull_none>;
Kever Yangbd218ab2016-08-16 17:58:14 +08002242 };
2243 };
2244
Kever Yang777c8342016-07-19 21:16:58 +08002245 spdif {
2246 spdif_bus: spdif-bus {
2247 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002248 <4 RK_PC5 RK_FUNC_1 &pcfg_pull_none>;
2249 };
2250
2251 spdif_bus_1: spdif-bus-1 {
2252 rockchip,pins =
2253 <3 RK_PC0 RK_FUNC_3 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002254 };
2255 };
2256
2257 spi0 {
2258 spi0_clk: spi0-clk {
2259 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002260 <3 RK_PA6 RK_FUNC_2 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002261 };
2262 spi0_cs0: spi0-cs0 {
2263 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002264 <3 RK_PA7 RK_FUNC_2 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002265 };
2266 spi0_cs1: spi0-cs1 {
2267 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002268 <3 RK_PB0 RK_FUNC_2 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002269 };
2270 spi0_tx: spi0-tx {
2271 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002272 <3 RK_PA5 RK_FUNC_2 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002273 };
2274 spi0_rx: spi0-rx {
2275 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002276 <3 RK_PA4 RK_FUNC_2 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002277 };
2278 };
2279
2280 spi1 {
2281 spi1_clk: spi1-clk {
2282 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002283 <1 RK_PB1 RK_FUNC_2 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002284 };
2285 spi1_cs0: spi1-cs0 {
2286 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002287 <1 RK_PB2 RK_FUNC_2 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002288 };
2289 spi1_rx: spi1-rx {
2290 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002291 <1 RK_PA7 RK_FUNC_2 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002292 };
2293 spi1_tx: spi1-tx {
2294 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002295 <1 RK_PB0 RK_FUNC_2 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002296 };
2297 };
2298
2299 spi2 {
2300 spi2_clk: spi2-clk {
2301 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002302 <2 RK_PB3 RK_FUNC_1 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002303 };
2304 spi2_cs0: spi2-cs0 {
2305 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002306 <2 RK_PB4 RK_FUNC_1 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002307 };
2308 spi2_rx: spi2-rx {
2309 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002310 <2 RK_PB1 RK_FUNC_1 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002311 };
2312 spi2_tx: spi2-tx {
2313 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002314 <2 RK_PB2 RK_FUNC_1 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002315 };
2316 };
2317
2318 spi3 {
2319 spi3_clk: spi3-clk {
2320 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002321 <1 RK_PC1 RK_FUNC_1 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002322 };
2323 spi3_cs0: spi3-cs0 {
2324 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002325 <1 RK_PC2 RK_FUNC_1 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002326 };
2327 spi3_rx: spi3-rx {
2328 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002329 <1 RK_PB7 RK_FUNC_1 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002330 };
2331 spi3_tx: spi3-tx {
2332 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002333 <1 RK_PC0 RK_FUNC_1 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002334 };
2335 };
2336
2337 spi4 {
2338 spi4_clk: spi4-clk {
2339 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002340 <3 RK_PA2 RK_FUNC_2 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002341 };
2342 spi4_cs0: spi4-cs0 {
2343 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002344 <3 RK_PA3 RK_FUNC_2 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002345 };
2346 spi4_rx: spi4-rx {
2347 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002348 <3 RK_PA0 RK_FUNC_2 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002349 };
2350 spi4_tx: spi4-tx {
2351 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002352 <3 RK_PA1 RK_FUNC_2 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002353 };
2354 };
2355
2356 spi5 {
2357 spi5_clk: spi5-clk {
2358 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002359 <2 RK_PC6 RK_FUNC_2 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002360 };
2361 spi5_cs0: spi5-cs0 {
2362 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002363 <2 RK_PC7 RK_FUNC_2 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002364 };
2365 spi5_rx: spi5-rx {
2366 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002367 <2 RK_PC4 RK_FUNC_2 &pcfg_pull_up>;
Kever Yang777c8342016-07-19 21:16:58 +08002368 };
2369 spi5_tx: spi5-tx {
2370 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002371 <2 RK_PC5 RK_FUNC_2 &pcfg_pull_up>;
2372 };
2373 };
2374
2375 tsadc {
2376 otp_gpio: otp-gpio {
2377 rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
2378 };
2379
2380 otp_out: otp-out {
2381 rockchip,pins = <1 RK_PA6 RK_FUNC_1 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002382 };
2383 };
2384
2385 uart0 {
2386 uart0_xfer: uart0-xfer {
2387 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002388 <2 RK_PC0 RK_FUNC_1 &pcfg_pull_up>,
2389 <2 RK_PC1 RK_FUNC_1 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002390 };
2391
2392 uart0_cts: uart0-cts {
2393 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002394 <2 RK_PC2 RK_FUNC_1 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002395 };
2396
2397 uart0_rts: uart0-rts {
2398 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002399 <2 RK_PC3 RK_FUNC_1 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002400 };
2401 };
2402
2403 uart1 {
2404 uart1_xfer: uart1-xfer {
2405 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002406 <3 RK_PB4 RK_FUNC_2 &pcfg_pull_up>,
2407 <3 RK_PB5 RK_FUNC_2 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002408 };
2409 };
2410
2411 uart2a {
2412 uart2a_xfer: uart2a-xfer {
2413 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002414 <4 RK_PB0 RK_FUNC_2 &pcfg_pull_up>,
2415 <4 RK_PB1 RK_FUNC_2 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002416 };
2417 };
2418
2419 uart2b {
2420 uart2b_xfer: uart2b-xfer {
2421 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002422 <4 RK_PC0 RK_FUNC_2 &pcfg_pull_up>,
2423 <4 RK_PC1 RK_FUNC_2 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002424 };
2425 };
2426
2427 uart2c {
2428 uart2c_xfer: uart2c-xfer {
2429 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002430 <4 RK_PC3 RK_FUNC_1 &pcfg_pull_up>,
2431 <4 RK_PC4 RK_FUNC_1 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002432 };
2433 };
2434
2435 uart3 {
2436 uart3_xfer: uart3-xfer {
2437 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002438 <3 RK_PB6 RK_FUNC_2 &pcfg_pull_up>,
2439 <3 RK_PB7 RK_FUNC_2 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002440 };
2441
2442 uart3_cts: uart3-cts {
2443 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002444 <3 RK_PC2 RK_FUNC_2 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002445 };
2446
2447 uart3_rts: uart3-rts {
2448 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002449 <3 RK_PC3 RK_FUNC_2 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002450 };
2451 };
2452
2453 uart4 {
2454 uart4_xfer: uart4-xfer {
2455 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002456 <1 RK_PA7 RK_FUNC_1 &pcfg_pull_up>,
2457 <1 RK_PB0 RK_FUNC_1 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002458 };
2459 };
2460
2461 uarthdcp {
2462 uarthdcp_xfer: uarthdcp-xfer {
2463 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002464 <4 RK_PC5 RK_FUNC_2 &pcfg_pull_up>,
2465 <4 RK_PC6 RK_FUNC_2 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002466 };
2467 };
2468
2469 pwm0 {
2470 pwm0_pin: pwm0-pin {
2471 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002472 <4 RK_PC2 RK_FUNC_1 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002473 };
2474
2475 vop0_pwm_pin: vop0-pwm-pin {
2476 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002477 <4 RK_PC2 RK_FUNC_2 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002478 };
2479 };
2480
2481 pwm1 {
2482 pwm1_pin: pwm1-pin {
2483 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002484 <4 RK_PC6 RK_FUNC_1 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002485 };
2486
2487 vop1_pwm_pin: vop1-pwm-pin {
2488 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002489 <4 RK_PC2 RK_FUNC_3 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002490 };
2491 };
2492
2493 pwm2 {
2494 pwm2_pin: pwm2-pin {
2495 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002496 <1 RK_PC3 RK_FUNC_1 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002497 };
2498 };
2499
2500 pwm3a {
2501 pwm3a_pin: pwm3a-pin {
2502 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002503 <0 RK_PA6 RK_FUNC_1 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002504 };
2505 };
2506
2507 pwm3b {
2508 pwm3b_pin: pwm3b-pin {
2509 rockchip,pins =
Kever Yangdde22232017-04-19 18:17:31 +08002510 <1 RK_PB6 RK_FUNC_1 &pcfg_pull_none>;
Kever Yang777c8342016-07-19 21:16:58 +08002511 };
2512 };
Kever Yangdde22232017-04-19 18:17:31 +08002513
2514 hdmi {
2515 hdmi_i2c_xfer: hdmi-i2c-xfer {
2516 rockchip,pins =
2517 <4 RK_PC1 RK_FUNC_3 &pcfg_pull_none>,
2518 <4 RK_PC0 RK_FUNC_3 &pcfg_pull_none>;
2519 };
2520
2521 hdmi_cec: hdmi-cec {
2522 rockchip,pins =
2523 <4 RK_PC7 RK_FUNC_1 &pcfg_pull_none>;
2524 };
2525 };
2526
2527 pcie {
2528 pcie_clkreqn: pci-clkreqn {
2529 rockchip,pins =
2530 <2 RK_PD2 RK_FUNC_2 &pcfg_pull_none>;
2531 };
2532
2533 pcie_clkreqnb: pci-clkreqnb {
2534 rockchip,pins =
2535 <4 RK_PD0 RK_FUNC_1 &pcfg_pull_none>;
2536 };
2537
2538 pcie_clkreqn_cpm: pci-clkreqn-cpm {
2539 rockchip,pins =
2540 <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
2541 };
2542
2543 pcie_clkreqnb_cpm: pci-clkreqnb-cpm {
2544 rockchip,pins =
2545 <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
2546 };
2547 };
2548
Kever Yang777c8342016-07-19 21:16:58 +08002549 };
2550};