xref: /rk3399_rockchip-uboot/arch/arm/dts/rk322x.dtsi (revision fbf3603b9ab279396e3c22cb440a89391da93c95)
1b647442cSKever Yang/*
2b647442cSKever Yang * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
3b647442cSKever Yang *
4b647442cSKever Yang * SPDX-License-Identifier:	GPL-2.0+
5b647442cSKever Yang */
6b647442cSKever Yang
7b647442cSKever Yang#include <dt-bindings/gpio/gpio.h>
8b647442cSKever Yang#include <dt-bindings/interrupt-controller/irq.h>
9b647442cSKever Yang#include <dt-bindings/interrupt-controller/arm-gic.h>
10b647442cSKever Yang#include <dt-bindings/pinctrl/rockchip.h>
11b647442cSKever Yang#include <dt-bindings/clock/rk3228-cru.h>
12b647442cSKever Yang#include <dt-bindings/thermal/thermal.h>
13b647442cSKever Yang
14b647442cSKever Yang/ {
15b647442cSKever Yang	#address-cells = <1>;
16b647442cSKever Yang	#size-cells = <1>;
17b647442cSKever Yang
18b647442cSKever Yang	interrupt-parent = <&gic>;
19b647442cSKever Yang
20b647442cSKever Yang	aliases {
21b647442cSKever Yang		serial0 = &uart0;
22b647442cSKever Yang		serial1 = &uart1;
23b647442cSKever Yang		serial2 = &uart2;
24a2a1bfe1SKever Yang		mmc0 = &emmc;
25a2a1bfe1SKever Yang		mmc1 = &sdmmc;
26b647442cSKever Yang	};
27b647442cSKever Yang
28b647442cSKever Yang	cpus {
29b647442cSKever Yang		#address-cells = <1>;
30b647442cSKever Yang		#size-cells = <0>;
31b647442cSKever Yang
32b647442cSKever Yang		cpu0: cpu@f00 {
33b647442cSKever Yang			device_type = "cpu";
34b647442cSKever Yang			compatible = "arm,cortex-a7";
35b647442cSKever Yang			reg = <0xf00>;
36b647442cSKever Yang			resets = <&cru SRST_CORE0>;
37b647442cSKever Yang			operating-points = <
38b647442cSKever Yang				/* KHz    uV */
39b647442cSKever Yang				 816000 1000000
40b647442cSKever Yang			>;
41b647442cSKever Yang			#cooling-cells = <2>; /* min followed by max */
42b647442cSKever Yang			clock-latency = <40000>;
43b647442cSKever Yang			clocks = <&cru ARMCLK>;
44b647442cSKever Yang		};
45b647442cSKever Yang
46b647442cSKever Yang		cpu1: cpu@f01 {
47b647442cSKever Yang			device_type = "cpu";
48b647442cSKever Yang			compatible = "arm,cortex-a7";
49b647442cSKever Yang			reg = <0xf01>;
50b647442cSKever Yang			resets = <&cru SRST_CORE1>;
51b647442cSKever Yang		};
52b647442cSKever Yang
53b647442cSKever Yang		cpu2: cpu@f02 {
54b647442cSKever Yang			device_type = "cpu";
55b647442cSKever Yang			compatible = "arm,cortex-a7";
56b647442cSKever Yang			reg = <0xf02>;
57b647442cSKever Yang			resets = <&cru SRST_CORE2>;
58b647442cSKever Yang		};
59b647442cSKever Yang
60b647442cSKever Yang		cpu3: cpu@f03 {
61b647442cSKever Yang			device_type = "cpu";
62b647442cSKever Yang			compatible = "arm,cortex-a7";
63b647442cSKever Yang			reg = <0xf03>;
64b647442cSKever Yang			resets = <&cru SRST_CORE3>;
65b647442cSKever Yang		};
66b647442cSKever Yang	};
67b647442cSKever Yang
68b647442cSKever Yang	amba {
69b647442cSKever Yang		compatible = "simple-bus";
70b647442cSKever Yang		#address-cells = <1>;
71b647442cSKever Yang		#size-cells = <1>;
72b647442cSKever Yang		ranges;
73b647442cSKever Yang
74b647442cSKever Yang		pdma: pdma@110f0000 {
75b647442cSKever Yang			compatible = "arm,pl330", "arm,primecell";
76b647442cSKever Yang			reg = <0x110f0000 0x4000>;
77b647442cSKever Yang			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
78b647442cSKever Yang				     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
79b647442cSKever Yang			#dma-cells = <1>;
80b647442cSKever Yang			clocks = <&cru ACLK_DMAC>;
81b647442cSKever Yang			clock-names = "apb_pclk";
82b647442cSKever Yang		};
83b647442cSKever Yang	};
84b647442cSKever Yang
85b647442cSKever Yang	arm-pmu {
86b647442cSKever Yang		compatible = "arm,cortex-a7-pmu";
87b647442cSKever Yang		interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
88b647442cSKever Yang			     <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
89b647442cSKever Yang			     <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
90b647442cSKever Yang			     <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
91b647442cSKever Yang		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
92b647442cSKever Yang	};
93b647442cSKever Yang
94a2815bdaSJoseph Chen	memory@60000000 {
95a2815bdaSJoseph Chen		device_type = "memory";
96a2815bdaSJoseph Chen		reg = <0x60000000 0x40000000>;
97a2815bdaSJoseph Chen	};
98a2815bdaSJoseph Chen
99*fbf3603bSJoseph Chen	psci: psci {
100*fbf3603bSJoseph Chen		compatible      = "arm,psci-1.0";
101*fbf3603bSJoseph Chen		method          = "smc";
102*fbf3603bSJoseph Chen	};
103*fbf3603bSJoseph Chen
104b647442cSKever Yang	timer {
105b647442cSKever Yang		compatible = "arm,armv7-timer";
106b647442cSKever Yang		arm,cpu-registers-not-fw-configured;
107b647442cSKever Yang		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
108b647442cSKever Yang			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
109b647442cSKever Yang			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
110b647442cSKever Yang			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
111b647442cSKever Yang		clock-frequency = <24000000>;
112b647442cSKever Yang	};
113b647442cSKever Yang
114b647442cSKever Yang	xin24m: oscillator {
115b647442cSKever Yang		compatible = "fixed-clock";
116b647442cSKever Yang		clock-frequency = <24000000>;
117b647442cSKever Yang		clock-output-names = "xin24m";
118b647442cSKever Yang		#clock-cells = <0>;
119b647442cSKever Yang	};
120b647442cSKever Yang
121b647442cSKever Yang	bus_intmem@10080000 {
122b647442cSKever Yang		compatible = "mmio-sram";
123b647442cSKever Yang		reg = <0x10080000 0x9000>;
124b647442cSKever Yang		#address-cells = <1>;
125b647442cSKever Yang		#size-cells = <1>;
126b647442cSKever Yang		ranges = <0 0x10080000 0x9000>;
127b647442cSKever Yang		smp-sram@0 {
128b647442cSKever Yang			compatible = "rockchip,rk322x-smp-sram";
129b647442cSKever Yang			reg = <0x00 0x10>;
130b647442cSKever Yang		};
131b647442cSKever Yang		ddr_sram: ddr-sram@1000 {
132b647442cSKever Yang			compatible = "rockchip,rk322x-ddr-sram";
133b647442cSKever Yang			reg = <0x1000 0x8000>;
134b647442cSKever Yang		};
135b647442cSKever Yang	};
136b647442cSKever Yang
1377a92af66SLin Jinhan	crypto: crypto@100a0000 {
1387a92af66SLin Jinhan		compatible = "rockchip,rk322x-crypto";
1397a92af66SLin Jinhan		reg = <0x100a0000 0x10000>;
1407a92af66SLin Jinhan		clock-names = "sclk_crypto";
1417a92af66SLin Jinhan		clocks = <&cru SCLK_CRYPTO>;
1427a92af66SLin Jinhan		status = "disabled";
1437a92af66SLin Jinhan	};
1447a92af66SLin Jinhan
145b647442cSKever Yang	i2s1: i2s1@100b0000 {
146b647442cSKever Yang		compatible = "rockchip,rk3228-i2s", "rockchip,rk3066-i2s";
147b647442cSKever Yang		reg = <0x100b0000 0x4000>;
148b647442cSKever Yang		interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
149b647442cSKever Yang		#address-cells = <1>;
150b647442cSKever Yang		#size-cells = <0>;
151b647442cSKever Yang		clock-names = "i2s_clk", "i2s_hclk";
152b647442cSKever Yang		clocks = <&cru SCLK_I2S1>, <&cru HCLK_I2S1_8CH>;
153b647442cSKever Yang		dmas = <&pdma 14>, <&pdma 15>;
154b647442cSKever Yang		dma-names = "tx", "rx";
155b647442cSKever Yang		pinctrl-names = "default";
156b647442cSKever Yang		pinctrl-0 = <&i2s1_bus>;
157b647442cSKever Yang		status = "disabled";
158b647442cSKever Yang	};
159b647442cSKever Yang
160b647442cSKever Yang	i2s0: i2s0@100c0000 {
161b647442cSKever Yang		compatible = "rockchip,rk3228-i2s", "rockchip,rk3066-i2s";
162b647442cSKever Yang		reg = <0x100c0000 0x4000>;
163b647442cSKever Yang		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
164b647442cSKever Yang		#address-cells = <1>;
165b647442cSKever Yang		#size-cells = <0>;
166b647442cSKever Yang		clock-names = "i2s_clk", "i2s_hclk";
167b647442cSKever Yang		clocks = <&cru SCLK_I2S0>, <&cru HCLK_I2S0_8CH>;
168b647442cSKever Yang		dmas = <&pdma 11>, <&pdma 12>;
169b647442cSKever Yang		dma-names = "tx", "rx";
170b647442cSKever Yang		status = "disabled";
171b647442cSKever Yang	};
172b647442cSKever Yang
173b647442cSKever Yang	i2s2: i2s2@100e0000 {
174b647442cSKever Yang		compatible = "rockchip,rk3228-i2s", "rockchip,rk3066-i2s";
175b647442cSKever Yang		reg = <0x100e0000 0x4000>;
176b647442cSKever Yang		interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
177b647442cSKever Yang		#address-cells = <1>;
178b647442cSKever Yang		#size-cells = <0>;
179b647442cSKever Yang		clock-names = "i2s_clk", "i2s_hclk";
180b647442cSKever Yang		clocks = <&cru SCLK_I2S2>, <&cru HCLK_I2S2_2CH>;
181b647442cSKever Yang		dmas = <&pdma 0>, <&pdma 1>;
182b647442cSKever Yang		dma-names = "tx", "rx";
183b647442cSKever Yang		status = "disabled";
184b647442cSKever Yang	};
185b647442cSKever Yang
186b647442cSKever Yang	grf: syscon@11000000 {
187b647442cSKever Yang		compatible = "rockchip,rk3228-grf", "syscon";
188b647442cSKever Yang		reg = <0x11000000 0x1000>;
189e4a1de10SWilliam Wu		#address-cells = <1>;
190e4a1de10SWilliam Wu		#size-cells = <1>;
191e4a1de10SWilliam Wu
192e4a1de10SWilliam Wu		u2phy0: usb2-phy@760 {
193e4a1de10SWilliam Wu			compatible = "rockchip,rk322x-usb2phy";
194e4a1de10SWilliam Wu			reg = <0x0760 0x0c>;
195e4a1de10SWilliam Wu			status = "disabled";
196e4a1de10SWilliam Wu
197e4a1de10SWilliam Wu			u2phy0_otg: otg-port {
198e4a1de10SWilliam Wu				#phy-cells = <0>;
199e4a1de10SWilliam Wu				interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
200e4a1de10SWilliam Wu					     <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
201e4a1de10SWilliam Wu					     <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
202e4a1de10SWilliam Wu				interrupt-names = "otg-bvalid", "otg-id",
203e4a1de10SWilliam Wu						  "linestate";
204e4a1de10SWilliam Wu				status = "disabled";
205e4a1de10SWilliam Wu			};
206e4a1de10SWilliam Wu
207e4a1de10SWilliam Wu			u2phy0_host: host-port {
208e4a1de10SWilliam Wu				#phy-cells = <0>;
209e4a1de10SWilliam Wu				interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
210e4a1de10SWilliam Wu				interrupt-names = "linestate";
211e4a1de10SWilliam Wu				status = "disabled";
212e4a1de10SWilliam Wu			};
213e4a1de10SWilliam Wu		};
214e4a1de10SWilliam Wu
215e4a1de10SWilliam Wu		u2phy1: usb2-phy@800 {
216e4a1de10SWilliam Wu			compatible = "rockchip,rk322x-usb2phy";
217e4a1de10SWilliam Wu			reg = <0x0800 0x0c>;
218e4a1de10SWilliam Wu			status = "disabled";
219e4a1de10SWilliam Wu
220e4a1de10SWilliam Wu			u2phy1_otg: otg-port {
221e4a1de10SWilliam Wu				#phy-cells = <0>;
222e4a1de10SWilliam Wu				interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
223e4a1de10SWilliam Wu				interrupt-names = "linestate";
224e4a1de10SWilliam Wu				status = "disabled";
225e4a1de10SWilliam Wu			};
226e4a1de10SWilliam Wu
227e4a1de10SWilliam Wu			u2phy1_host: host-port {
228e4a1de10SWilliam Wu				#phy-cells = <0>;
229e4a1de10SWilliam Wu				interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
230e4a1de10SWilliam Wu				interrupt-names = "linestate";
231e4a1de10SWilliam Wu				status = "disabled";
232e4a1de10SWilliam Wu			};
233e4a1de10SWilliam Wu		};
234b647442cSKever Yang	};
235b647442cSKever Yang
236b647442cSKever Yang	uart0: serial@11010000 {
237b647442cSKever Yang		compatible = "snps,dw-apb-uart";
238b647442cSKever Yang		reg = <0x11010000 0x100>;
239b647442cSKever Yang		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
240b647442cSKever Yang		clock-frequency = <24000000>;
241b647442cSKever Yang		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
242b647442cSKever Yang		clock-names = "baudclk", "apb_pclk";
243b647442cSKever Yang		pinctrl-names = "default";
244b647442cSKever Yang		pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
245b647442cSKever Yang		reg-shift = <2>;
246b647442cSKever Yang		reg-io-width = <4>;
247b647442cSKever Yang		status = "disabled";
248b647442cSKever Yang	};
249b647442cSKever Yang
250b647442cSKever Yang	uart1: serial@11020000 {
251b647442cSKever Yang		compatible = "snps,dw-apb-uart";
252b647442cSKever Yang		reg = <0x11020000 0x100>;
253b647442cSKever Yang		interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
254b647442cSKever Yang		clock-frequency = <24000000>;
255b647442cSKever Yang		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
256b647442cSKever Yang		clock-names = "baudclk", "apb_pclk";
257b647442cSKever Yang		pinctrl-names = "default";
258b647442cSKever Yang		pinctrl-0 = <&uart1_xfer>;
259b647442cSKever Yang		reg-shift = <2>;
260b647442cSKever Yang		reg-io-width = <4>;
261b647442cSKever Yang		status = "disabled";
262b647442cSKever Yang	};
263b647442cSKever Yang
264b647442cSKever Yang	uart2: serial@11030000 {
265b647442cSKever Yang		compatible = "snps,dw-apb-uart";
266b647442cSKever Yang		reg = <0x11030000 0x100>;
267b647442cSKever Yang		interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
268b647442cSKever Yang		clock-frequency = <24000000>;
269b647442cSKever Yang		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
270b647442cSKever Yang		clock-names = "baudclk", "apb_pclk";
271b647442cSKever Yang		pinctrl-names = "default";
2723174f329SDavid Wu		pinctrl-0 = <&uart21_xfer>;
273b647442cSKever Yang		reg-shift = <2>;
274b647442cSKever Yang		reg-io-width = <4>;
275b647442cSKever Yang		status = "disabled";
276b647442cSKever Yang	};
277b647442cSKever Yang
2785d3e2943SFrancis Fan	efuse: efuse@11040000 {
2795d3e2943SFrancis Fan		compatible = "rockchip,rk322x-efuse";
2805d3e2943SFrancis Fan		reg = <0x11040000 0x20>;
2815d3e2943SFrancis Fan		#address-cells = <1>;
2825d3e2943SFrancis Fan		#size-cells = <1>;
2835d3e2943SFrancis Fan		clocks = <&cru PCLK_EFUSE_256>;
2845d3e2943SFrancis Fan		clock-names = "pclk_efuse";
2855d3e2943SFrancis Fan
2865d3e2943SFrancis Fan		/* Data cells */
2875d3e2943SFrancis Fan		efuse_id: id@7 {
2885d3e2943SFrancis Fan			reg = <0x7 0x10>;
2895d3e2943SFrancis Fan		};
2905d3e2943SFrancis Fan		cpu_leakage: cpu_leakage@17 {
2915d3e2943SFrancis Fan			reg = <0x17 0x1>;
2925d3e2943SFrancis Fan		};
2935d3e2943SFrancis Fan	};
2945d3e2943SFrancis Fan
295b647442cSKever Yang	i2c0: i2c@11050000 {
296b647442cSKever Yang		compatible = "rockchip,rk3228-i2c";
297b647442cSKever Yang		reg = <0x11050000 0x1000>;
298b647442cSKever Yang		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
299b647442cSKever Yang		#address-cells = <1>;
300b647442cSKever Yang		#size-cells = <0>;
301b647442cSKever Yang		clock-names = "i2c";
302b647442cSKever Yang		clocks = <&cru PCLK_I2C0>;
303b647442cSKever Yang		pinctrl-names = "default";
304b647442cSKever Yang		pinctrl-0 = <&i2c0_xfer>;
305b647442cSKever Yang		status = "disabled";
306b647442cSKever Yang	};
307b647442cSKever Yang
308b647442cSKever Yang	i2c1: i2c@11060000 {
309b647442cSKever Yang		compatible = "rockchip,rk3228-i2c";
310b647442cSKever Yang		reg = <0x11060000 0x1000>;
311b647442cSKever Yang		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
312b647442cSKever Yang		#address-cells = <1>;
313b647442cSKever Yang		#size-cells = <0>;
314b647442cSKever Yang		clock-names = "i2c";
315b647442cSKever Yang		clocks = <&cru PCLK_I2C1>;
316b647442cSKever Yang		pinctrl-names = "default";
317b647442cSKever Yang		pinctrl-0 = <&i2c1_xfer>;
318b647442cSKever Yang		status = "disabled";
319b647442cSKever Yang	};
320b647442cSKever Yang
321b647442cSKever Yang	i2c2: i2c@11070000 {
322b647442cSKever Yang		compatible = "rockchip,rk3228-i2c";
323b647442cSKever Yang		reg = <0x11070000 0x1000>;
324b647442cSKever Yang		interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
325b647442cSKever Yang		#address-cells = <1>;
326b647442cSKever Yang		#size-cells = <0>;
327b647442cSKever Yang		clock-names = "i2c";
328b647442cSKever Yang		clocks = <&cru PCLK_I2C2>;
329b647442cSKever Yang		pinctrl-names = "default";
330b647442cSKever Yang		pinctrl-0 = <&i2c2_xfer>;
331b647442cSKever Yang		status = "disabled";
332b647442cSKever Yang	};
333b647442cSKever Yang
334b647442cSKever Yang	i2c3: i2c@11080000 {
335b647442cSKever Yang		compatible = "rockchip,rk3228-i2c";
336b647442cSKever Yang		reg = <0x11080000 0x1000>;
337b647442cSKever Yang		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
338b647442cSKever Yang		#address-cells = <1>;
339b647442cSKever Yang		#size-cells = <0>;
340b647442cSKever Yang		clock-names = "i2c";
341b647442cSKever Yang		clocks = <&cru PCLK_I2C3>;
342b647442cSKever Yang		pinctrl-names = "default";
343b647442cSKever Yang		pinctrl-0 = <&i2c3_xfer>;
344b647442cSKever Yang		status = "disabled";
345b647442cSKever Yang	};
346b647442cSKever Yang
347b647442cSKever Yang	pwm0: pwm@110b0000 {
348b647442cSKever Yang		compatible = "rockchip,rk3288-pwm";
349b647442cSKever Yang		reg = <0x110b0000 0x10>;
350b647442cSKever Yang		#pwm-cells = <3>;
351b647442cSKever Yang		clocks = <&cru PCLK_PWM>;
352b647442cSKever Yang		clock-names = "pwm";
353bab0c55cSDavid Wu		pinctrl-names = "active";
354b647442cSKever Yang		pinctrl-0 = <&pwm0_pin>;
355b647442cSKever Yang		status = "disabled";
356b647442cSKever Yang	};
357b647442cSKever Yang
358b647442cSKever Yang	pwm1: pwm@110b0010 {
359b647442cSKever Yang		compatible = "rockchip,rk3288-pwm";
360b647442cSKever Yang		reg = <0x110b0010 0x10>;
361b647442cSKever Yang		#pwm-cells = <3>;
362b647442cSKever Yang		clocks = <&cru PCLK_PWM>;
363b647442cSKever Yang		clock-names = "pwm";
364bab0c55cSDavid Wu		pinctrl-names = "active";
365b647442cSKever Yang		pinctrl-0 = <&pwm1_pin>;
366b647442cSKever Yang		status = "disabled";
367b647442cSKever Yang	};
368b647442cSKever Yang
369b647442cSKever Yang	pwm2: pwm@110b0020 {
370b647442cSKever Yang		compatible = "rockchip,rk3288-pwm";
371b647442cSKever Yang		reg = <0x110b0020 0x10>;
372b647442cSKever Yang		#pwm-cells = <3>;
373b647442cSKever Yang		clocks = <&cru PCLK_PWM>;
374b647442cSKever Yang		clock-names = "pwm";
375bab0c55cSDavid Wu		pinctrl-names = "active";
376b647442cSKever Yang		pinctrl-0 = <&pwm2_pin>;
377b647442cSKever Yang		status = "disabled";
378b647442cSKever Yang	};
379b647442cSKever Yang
380b647442cSKever Yang	pwm3: pwm@110b0030 {
381b647442cSKever Yang		compatible = "rockchip,rk3288-pwm";
382b647442cSKever Yang		reg = <0x110b0030 0x10>;
383b647442cSKever Yang		#pwm-cells = <2>;
384b647442cSKever Yang		clocks = <&cru PCLK_PWM>;
385b647442cSKever Yang		clock-names = "pwm";
386bab0c55cSDavid Wu		pinctrl-names = "active";
387b647442cSKever Yang		pinctrl-0 = <&pwm3_pin>;
388b647442cSKever Yang		status = "disabled";
389b647442cSKever Yang	};
390b647442cSKever Yang
391b647442cSKever Yang	timer: timer@110c0000 {
392b647442cSKever Yang		compatible = "rockchip,rk3288-timer";
393b647442cSKever Yang		reg = <0x110c0000 0x20>;
394b647442cSKever Yang		interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
395b647442cSKever Yang		clocks = <&xin24m>, <&cru PCLK_TIMER>;
396b647442cSKever Yang		clock-names = "timer", "pclk";
397b647442cSKever Yang	};
398b647442cSKever Yang
399b647442cSKever Yang	cru: clock-controller@110e0000 {
400b647442cSKever Yang		compatible = "rockchip,rk3228-cru";
401b647442cSKever Yang		reg = <0x110e0000 0x1000>;
402b647442cSKever Yang		rockchip,grf = <&grf>;
403b647442cSKever Yang		#clock-cells = <1>;
404b647442cSKever Yang		#reset-cells = <1>;
405b647442cSKever Yang		assigned-clocks = <&cru PLL_GPLL>;
406b647442cSKever Yang		assigned-clock-rates = <594000000>;
407b647442cSKever Yang	};
408b647442cSKever Yang
409b647442cSKever Yang	thermal-zones {
410b647442cSKever Yang		cpu_thermal: cpu-thermal {
411b647442cSKever Yang			polling-delay-passive = <100>; /* milliseconds */
412b647442cSKever Yang			polling-delay = <5000>; /* milliseconds */
413b647442cSKever Yang
414b647442cSKever Yang			thermal-sensors = <&tsadc 0>;
415b647442cSKever Yang
416b647442cSKever Yang			trips {
417b647442cSKever Yang				cpu_alert0: cpu_alert0 {
418b647442cSKever Yang					temperature = <70000>; /* millicelsius */
419b647442cSKever Yang					hysteresis = <2000>; /* millicelsius */
420b647442cSKever Yang					type = "passive";
421b647442cSKever Yang				};
422b647442cSKever Yang				cpu_alert1: cpu_alert1 {
423b647442cSKever Yang					temperature = <75000>; /* millicelsius */
424b647442cSKever Yang					hysteresis = <2000>; /* millicelsius */
425b647442cSKever Yang					type = "passive";
426b647442cSKever Yang				};
427b647442cSKever Yang				cpu_crit: cpu_crit {
428b647442cSKever Yang					temperature = <90000>; /* millicelsius */
429b647442cSKever Yang					hysteresis = <2000>; /* millicelsius */
430b647442cSKever Yang					type = "critical";
431b647442cSKever Yang				};
432b647442cSKever Yang			};
433b647442cSKever Yang
434b647442cSKever Yang			cooling-maps {
435b647442cSKever Yang				map0 {
436b647442cSKever Yang					trip = <&cpu_alert0>;
437b647442cSKever Yang					cooling-device =
438b647442cSKever Yang						<&cpu0 THERMAL_NO_LIMIT 6>;
439b647442cSKever Yang				};
440b647442cSKever Yang				map1 {
441b647442cSKever Yang					trip = <&cpu_alert1>;
442b647442cSKever Yang					cooling-device =
443b647442cSKever Yang						<&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
444b647442cSKever Yang				};
445b647442cSKever Yang			};
446b647442cSKever Yang		};
447b647442cSKever Yang	};
448b647442cSKever Yang
449b647442cSKever Yang	tsadc: tsadc@11150000 {
450b647442cSKever Yang		compatible = "rockchip,rk3228-tsadc";
451b647442cSKever Yang		reg = <0x11150000 0x100>;
452b647442cSKever Yang		interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
453b647442cSKever Yang		clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
454b647442cSKever Yang		clock-names = "tsadc", "apb_pclk";
455b647442cSKever Yang		resets = <&cru SRST_TSADC>;
456b647442cSKever Yang		reset-names = "tsadc-apb";
457b647442cSKever Yang		pinctrl-names = "init", "default", "sleep";
458b647442cSKever Yang		pinctrl-0 = <&otp_gpio>;
459b647442cSKever Yang		pinctrl-1 = <&otp_out>;
460b647442cSKever Yang		pinctrl-2 = <&otp_gpio>;
461b647442cSKever Yang		#thermal-sensor-cells = <0>;
462b647442cSKever Yang		rockchip,hw-tshut-temp = <95000>;
463b647442cSKever Yang		status = "disabled";
464b647442cSKever Yang	};
465b647442cSKever Yang
466a2a1bfe1SKever Yang	sdmmc: dwmmc@30000000 {
467a2a1bfe1SKever Yang		compatible = "rockchip,rk3228-dw-mshc", "rockchip,rk3288-dw-mshc";
468a2a1bfe1SKever Yang		reg = <0x30000000 0x4000>;
46995ca100bSKever Yang		max-frequency = <150000000>;
470a2a1bfe1SKever Yang		interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
471a2a1bfe1SKever Yang		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
472a2a1bfe1SKever Yang			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
473c5c7b477SKever Yang		clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
474a2a1bfe1SKever Yang		fifo-depth = <0x100>;
4754df150d1SJason Zhu		cd-gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>;
476a2a1bfe1SKever Yang		pinctrl-names = "default";
477a2a1bfe1SKever Yang		pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
478a2a1bfe1SKever Yang		status = "disabled";
479a2a1bfe1SKever Yang	};
480a2a1bfe1SKever Yang
481a2a1bfe1SKever Yang	sdio: dwmmc@30010000 {
482a2a1bfe1SKever Yang		compatible = "rockchip,rk3228-dw-mshc", "rockchip,rk3288-dw-mshc";
483a2a1bfe1SKever Yang		reg = <0x30010000 0x4000>;
484a2a1bfe1SKever Yang		interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
485a2a1bfe1SKever Yang		clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
486a2a1bfe1SKever Yang			 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
487c5c7b477SKever Yang		clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
488a2a1bfe1SKever Yang		fifo-depth = <0x100>;
489a2a1bfe1SKever Yang		pinctrl-names = "default";
490a2a1bfe1SKever Yang		pinctrl-0 = <&sdio_clk &sdio_cmd &sdio_bus4>;
491a2a1bfe1SKever Yang		status = "disabled";
492a2a1bfe1SKever Yang	};
493a2a1bfe1SKever Yang
494b647442cSKever Yang	emmc: dwmmc@30020000 {
495b647442cSKever Yang		compatible = "rockchip,rk3288-dw-mshc";
496b647442cSKever Yang		reg = <0x30020000 0x4000>;
49795ca100bSKever Yang		max-frequency = <150000000>;
498b647442cSKever Yang		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
499b647442cSKever Yang		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
500b647442cSKever Yang			 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
501c5c7b477SKever Yang		clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
502b647442cSKever Yang		bus-width = <8>;
503b647442cSKever Yang		default-sample-phase = <158>;
504b647442cSKever Yang		num-slots = <1>;
505b647442cSKever Yang		fifo-depth = <0x100>;
506b647442cSKever Yang		pinctrl-names = "default";
507b647442cSKever Yang		pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
508b647442cSKever Yang		resets = <&cru SRST_EMMC>;
509b647442cSKever Yang		reset-names = "reset";
510b647442cSKever Yang		status = "disabled";
511b647442cSKever Yang	};
512b647442cSKever Yang
51301240628SMeng Dongyang	usb20_otg: usb@30040000 {
51401240628SMeng Dongyang		compatible = "rockchip,rk3229-usb", "rockchip,rk3288-usb",
51501240628SMeng Dongyang			     "snps,dwc2";
51601240628SMeng Dongyang		reg = <0x30040000 0x40000>;
51701240628SMeng Dongyang		interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
51801240628SMeng Dongyang		hnp-srp-disable;
51901240628SMeng Dongyang		dr_mode = "otg";
520e4a1de10SWilliam Wu		phys = <&u2phy0_otg>;
521e4a1de10SWilliam Wu		phy-names = "usb2-phy";
52201240628SMeng Dongyang		status = "disabled";
52301240628SMeng Dongyang	};
52401240628SMeng Dongyang
525b647442cSKever Yang	gmac: ethernet@30200000 {
526b647442cSKever Yang		compatible = "rockchip,rk3228-gmac";
527b647442cSKever Yang		reg = <0x30200000 0x10000>;
528b647442cSKever Yang		interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
529b647442cSKever Yang		interrupt-names = "macirq";
530b647442cSKever Yang		clocks = <&cru SCLK_MAC>, <&cru SCLK_MAC_RX>,
531b647442cSKever Yang			<&cru SCLK_MAC_TX>, <&cru SCLK_MAC_REF>,
532b647442cSKever Yang			<&cru SCLK_MAC_REFOUT>, <&cru ACLK_GMAC>,
533fed88102SDavid Wu			<&cru PCLK_GMAC>, <&cru SCLK_MAC_PHY>;
534b647442cSKever Yang		clock-names = "stmmaceth", "mac_clk_rx",
535b647442cSKever Yang			"mac_clk_tx", "clk_mac_ref",
536b647442cSKever Yang			"clk_mac_refout", "aclk_mac",
537fed88102SDavid Wu			"pclk_mac", "clk_macphy";
538fed88102SDavid Wu		resets = <&cru SRST_GMAC>, <&cru SRST_MACPHY>;
539fed88102SDavid Wu		reset-names = "stmmaceth", "mac-phy";
540b647442cSKever Yang		rockchip,grf = <&grf>;
541b647442cSKever Yang		status = "disabled";
542b647442cSKever Yang	};
543b647442cSKever Yang
544b647442cSKever Yang	gic: interrupt-controller@32010000 {
545b647442cSKever Yang		compatible = "arm,gic-400";
546b647442cSKever Yang		interrupt-controller;
547b647442cSKever Yang		#interrupt-cells = <3>;
548b647442cSKever Yang		#address-cells = <0>;
549b647442cSKever Yang
550b647442cSKever Yang		reg = <0x32011000 0x1000>,
551b647442cSKever Yang		      <0x32012000 0x2000>,
552b647442cSKever Yang		      <0x32014000 0x2000>,
553b647442cSKever Yang		      <0x32016000 0x2000>;
554b647442cSKever Yang		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
555b647442cSKever Yang	};
556b647442cSKever Yang
557b647442cSKever Yang	pinctrl: pinctrl {
558b647442cSKever Yang		compatible = "rockchip,rk3228-pinctrl";
559b647442cSKever Yang		rockchip,grf = <&grf>;
560b647442cSKever Yang		#address-cells = <1>;
561b647442cSKever Yang		#size-cells = <1>;
562b647442cSKever Yang		ranges;
563b647442cSKever Yang
564b647442cSKever Yang		gpio0: gpio0@11110000 {
565b647442cSKever Yang			compatible = "rockchip,gpio-bank";
566b647442cSKever Yang			reg = <0x11110000 0x100>;
567b647442cSKever Yang			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
568b647442cSKever Yang			clocks = <&cru PCLK_GPIO0>;
569b647442cSKever Yang
570b647442cSKever Yang			gpio-controller;
571b647442cSKever Yang			#gpio-cells = <2>;
572b647442cSKever Yang
573b647442cSKever Yang			interrupt-controller;
574b647442cSKever Yang			#interrupt-cells = <2>;
575b647442cSKever Yang		};
576b647442cSKever Yang
577b647442cSKever Yang		gpio1: gpio1@11120000 {
578b647442cSKever Yang			compatible = "rockchip,gpio-bank";
579b647442cSKever Yang			reg = <0x11120000 0x100>;
580b647442cSKever Yang			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
581b647442cSKever Yang			clocks = <&cru PCLK_GPIO1>;
582b647442cSKever Yang
583b647442cSKever Yang			gpio-controller;
584b647442cSKever Yang			#gpio-cells = <2>;
585b647442cSKever Yang
586b647442cSKever Yang			interrupt-controller;
587b647442cSKever Yang			#interrupt-cells = <2>;
588b647442cSKever Yang		};
589b647442cSKever Yang
590b647442cSKever Yang		gpio2: gpio2@11130000 {
591b647442cSKever Yang			compatible = "rockchip,gpio-bank";
592b647442cSKever Yang			reg = <0x11130000 0x100>;
593b647442cSKever Yang			interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
594b647442cSKever Yang			clocks = <&cru PCLK_GPIO2>;
595b647442cSKever Yang
596b647442cSKever Yang			gpio-controller;
597b647442cSKever Yang			#gpio-cells = <2>;
598b647442cSKever Yang
599b647442cSKever Yang			interrupt-controller;
600b647442cSKever Yang			#interrupt-cells = <2>;
601b647442cSKever Yang		};
602b647442cSKever Yang
603b647442cSKever Yang		gpio3: gpio3@11140000 {
604b647442cSKever Yang			compatible = "rockchip,gpio-bank";
605b647442cSKever Yang			reg = <0x11140000 0x100>;
606b647442cSKever Yang			interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
607b647442cSKever Yang			clocks = <&cru PCLK_GPIO3>;
608b647442cSKever Yang
609b647442cSKever Yang			gpio-controller;
610b647442cSKever Yang			#gpio-cells = <2>;
611b647442cSKever Yang
612b647442cSKever Yang			interrupt-controller;
613b647442cSKever Yang			#interrupt-cells = <2>;
614b647442cSKever Yang		};
615b647442cSKever Yang
616b647442cSKever Yang		pcfg_pull_up: pcfg-pull-up {
617b647442cSKever Yang			bias-pull-up;
618b647442cSKever Yang		};
619b647442cSKever Yang
620b647442cSKever Yang		pcfg_pull_down: pcfg-pull-down {
621b647442cSKever Yang			bias-pull-down;
622b647442cSKever Yang		};
623b647442cSKever Yang
624b647442cSKever Yang		pcfg_pull_none: pcfg-pull-none {
625b647442cSKever Yang			bias-disable;
626b647442cSKever Yang		};
627b647442cSKever Yang
628b647442cSKever Yang		pcfg_pull_none_drv_12ma: pcfg-pull-none-drv-12ma {
629b647442cSKever Yang			drive-strength = <12>;
630b647442cSKever Yang		};
631b647442cSKever Yang
632a2a1bfe1SKever Yang		sdmmc {
633a2a1bfe1SKever Yang			sdmmc_clk: sdmmc-clk {
634a2a1bfe1SKever Yang				rockchip,pins = <1 16 RK_FUNC_1 &pcfg_pull_none_drv_12ma>;
635a2a1bfe1SKever Yang			};
636a2a1bfe1SKever Yang
637a2a1bfe1SKever Yang			sdmmc_cmd: sdmmc-cmd {
638a2a1bfe1SKever Yang				rockchip,pins = <1 15 RK_FUNC_1 &pcfg_pull_none_drv_12ma>;
639a2a1bfe1SKever Yang			};
640a2a1bfe1SKever Yang
641a2a1bfe1SKever Yang			sdmmc_bus4: sdmmc-bus4 {
642a2a1bfe1SKever Yang				rockchip,pins = <1 18 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
643a2a1bfe1SKever Yang						<1 19 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
644a2a1bfe1SKever Yang						<1 20 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
645a2a1bfe1SKever Yang						<1 21 RK_FUNC_1 &pcfg_pull_none_drv_12ma>;
646a2a1bfe1SKever Yang			};
647a2a1bfe1SKever Yang		};
648a2a1bfe1SKever Yang
649a2a1bfe1SKever Yang		sdio {
650a2a1bfe1SKever Yang			sdio_clk: sdio-clk {
651a2a1bfe1SKever Yang				rockchip,pins = <3 0 RK_FUNC_1 &pcfg_pull_none_drv_12ma>;
652a2a1bfe1SKever Yang			};
653a2a1bfe1SKever Yang
654a2a1bfe1SKever Yang			sdio_cmd: sdio-cmd {
655a2a1bfe1SKever Yang				rockchip,pins = <3 1 RK_FUNC_1 &pcfg_pull_none_drv_12ma>;
656a2a1bfe1SKever Yang			};
657a2a1bfe1SKever Yang
658a2a1bfe1SKever Yang			sdio_bus4: sdio-bus4 {
659a2a1bfe1SKever Yang				rockchip,pins = <3 2 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
660a2a1bfe1SKever Yang						<3 3 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
661a2a1bfe1SKever Yang						<3 4 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
662a2a1bfe1SKever Yang						<3 5 RK_FUNC_1 &pcfg_pull_none_drv_12ma>;
663a2a1bfe1SKever Yang			};
664a2a1bfe1SKever Yang		};
665a2a1bfe1SKever Yang
666b647442cSKever Yang		emmc {
667b647442cSKever Yang			emmc_clk: emmc-clk {
668b647442cSKever Yang				rockchip,pins = <2 RK_PA7 RK_FUNC_2 &pcfg_pull_none>;
669b647442cSKever Yang			};
670b647442cSKever Yang
671b647442cSKever Yang			emmc_cmd: emmc-cmd {
672b647442cSKever Yang				rockchip,pins = <1 RK_PC6 RK_FUNC_2 &pcfg_pull_none>;
673b647442cSKever Yang			};
674b647442cSKever Yang
675b647442cSKever Yang			emmc_bus8: emmc-bus8 {
676b647442cSKever Yang				rockchip,pins = <1 RK_PD0 RK_FUNC_2 &pcfg_pull_none>,
677b647442cSKever Yang						<1 RK_PD1 RK_FUNC_2 &pcfg_pull_none>,
678b647442cSKever Yang						<1 RK_PD2 RK_FUNC_2 &pcfg_pull_none>,
679b647442cSKever Yang						<1 RK_PD3 RK_FUNC_2 &pcfg_pull_none>,
680b647442cSKever Yang						<1 RK_PD4 RK_FUNC_2 &pcfg_pull_none>,
681b647442cSKever Yang						<1 RK_PD5 RK_FUNC_2 &pcfg_pull_none>,
682b647442cSKever Yang						<1 RK_PD6 RK_FUNC_2 &pcfg_pull_none>,
683b647442cSKever Yang						<1 RK_PD7 RK_FUNC_2 &pcfg_pull_none>;
684b647442cSKever Yang			};
685b647442cSKever Yang		};
686b647442cSKever Yang
687b647442cSKever Yang		gmac {
688b647442cSKever Yang			rgmii_pins: rgmii-pins {
689b647442cSKever Yang				rockchip,pins = <2 RK_PB6 RK_FUNC_1 &pcfg_pull_none>,
690b647442cSKever Yang						<2 RK_PB4 RK_FUNC_1 &pcfg_pull_none>,
691b647442cSKever Yang						<2 RK_PD1 RK_FUNC_1 &pcfg_pull_none>,
692b647442cSKever Yang						<2 RK_PC3 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
693b647442cSKever Yang						<2 RK_PC2 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
694b647442cSKever Yang						<2 RK_PC6 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
695b647442cSKever Yang						<2 RK_PC7 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
696b647442cSKever Yang						<2 RK_PB1 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
697b647442cSKever Yang						<2 RK_PB5 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
698b647442cSKever Yang						<2 RK_PC1 RK_FUNC_1 &pcfg_pull_none>,
699b647442cSKever Yang						<2 RK_PC0 RK_FUNC_1 &pcfg_pull_none>,
700b647442cSKever Yang						<2 RK_PC5 RK_FUNC_2 &pcfg_pull_none>,
701b647442cSKever Yang						<2 RK_PC4 RK_FUNC_2 &pcfg_pull_none>,
702b647442cSKever Yang						<2 RK_PB3 RK_FUNC_1 &pcfg_pull_none>,
703b647442cSKever Yang						<2 RK_PB0 RK_FUNC_1 &pcfg_pull_none>;
704b647442cSKever Yang			};
705b647442cSKever Yang
706b647442cSKever Yang			rmii_pins: rmii-pins {
707b647442cSKever Yang				rockchip,pins = <2 RK_PB6 RK_FUNC_1 &pcfg_pull_none>,
708b647442cSKever Yang						<2 RK_PB4 RK_FUNC_1 &pcfg_pull_none>,
709b647442cSKever Yang						<2 RK_PD1 RK_FUNC_1 &pcfg_pull_none>,
710b647442cSKever Yang						<2 RK_PC3 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
711b647442cSKever Yang						<2 RK_PC2 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
712b647442cSKever Yang						<2 RK_PB5 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
713b647442cSKever Yang						<2 RK_PC1 RK_FUNC_1 &pcfg_pull_none>,
714b647442cSKever Yang						<2 RK_PC0 RK_FUNC_1 &pcfg_pull_none>,
715b647442cSKever Yang						<2 RK_PB0 RK_FUNC_1 &pcfg_pull_none>,
716b647442cSKever Yang						<2 RK_PB7 RK_FUNC_1 &pcfg_pull_none>;
717b647442cSKever Yang			};
718b647442cSKever Yang
719b647442cSKever Yang			phy_pins: phy-pins {
720b647442cSKever Yang				rockchip,pins = <2 RK_PB6 RK_FUNC_2 &pcfg_pull_none>,
721b647442cSKever Yang						<2 RK_PB0 RK_FUNC_2 &pcfg_pull_none>;
722b647442cSKever Yang			};
723b647442cSKever Yang		};
724b647442cSKever Yang
725b647442cSKever Yang		i2c0 {
726b647442cSKever Yang			i2c0_xfer: i2c0-xfer {
727b647442cSKever Yang				rockchip,pins = <0 RK_PA0 RK_FUNC_1 &pcfg_pull_none>,
728b647442cSKever Yang						<0 RK_PA1 RK_FUNC_1 &pcfg_pull_none>;
729b647442cSKever Yang			};
730b647442cSKever Yang		};
731b647442cSKever Yang
732b647442cSKever Yang		i2c1 {
733b647442cSKever Yang			i2c1_xfer: i2c1-xfer {
734b647442cSKever Yang				rockchip,pins = <0 RK_PA2 RK_FUNC_1 &pcfg_pull_none>,
735b647442cSKever Yang						<0 RK_PA3 RK_FUNC_1 &pcfg_pull_none>;
736b647442cSKever Yang			};
737b647442cSKever Yang		};
738b647442cSKever Yang
739b647442cSKever Yang		i2c2 {
740b647442cSKever Yang			i2c2_xfer: i2c2-xfer {
741b647442cSKever Yang				rockchip,pins = <2 RK_PC4 RK_FUNC_1 &pcfg_pull_none>,
742b647442cSKever Yang						<2 RK_PC5 RK_FUNC_1 &pcfg_pull_none>;
743b647442cSKever Yang			};
744b647442cSKever Yang		};
745b647442cSKever Yang
746b647442cSKever Yang		i2c3 {
747b647442cSKever Yang			i2c3_xfer: i2c3-xfer {
748b647442cSKever Yang				rockchip,pins = <0 RK_PA6 RK_FUNC_1 &pcfg_pull_none>,
749b647442cSKever Yang						<0 RK_PA7 RK_FUNC_1 &pcfg_pull_none>;
750b647442cSKever Yang			};
751b647442cSKever Yang		};
752b647442cSKever Yang
753b647442cSKever Yang		i2s1 {
754b647442cSKever Yang			i2s1_bus: i2s1-bus {
755b647442cSKever Yang				rockchip,pins = <0 RK_PB0 RK_FUNC_1 &pcfg_pull_none>,
756b647442cSKever Yang						<0 RK_PB1 RK_FUNC_1 &pcfg_pull_none>,
757b647442cSKever Yang						<0 RK_PB3 RK_FUNC_1 &pcfg_pull_none>,
758b647442cSKever Yang						<0 RK_PB4 RK_FUNC_1 &pcfg_pull_none>,
759b647442cSKever Yang						<0 RK_PB5 RK_FUNC_1 &pcfg_pull_none>,
760b647442cSKever Yang						<0 RK_PB6 RK_FUNC_1 &pcfg_pull_none>,
761b647442cSKever Yang						<1 RK_PA2 RK_FUNC_1 &pcfg_pull_none>,
762b647442cSKever Yang						<1 RK_PA4 RK_FUNC_1 &pcfg_pull_none>,
763b647442cSKever Yang						<1 RK_PA5 RK_FUNC_1 &pcfg_pull_none>;
764b647442cSKever Yang			};
765b647442cSKever Yang		};
766b647442cSKever Yang
767b647442cSKever Yang		pwm0 {
768b647442cSKever Yang			pwm0_pin: pwm0-pin {
769b647442cSKever Yang				rockchip,pins = <3 RK_PC5 RK_FUNC_1 &pcfg_pull_none>;
770b647442cSKever Yang			};
771b647442cSKever Yang		};
772b647442cSKever Yang
773b647442cSKever Yang		pwm1 {
774b647442cSKever Yang			pwm1_pin: pwm1-pin {
775b647442cSKever Yang				rockchip,pins = <0 RK_PD6 RK_FUNC_2 &pcfg_pull_none>;
776b647442cSKever Yang			};
777b647442cSKever Yang		};
778b647442cSKever Yang
779b647442cSKever Yang		pwm2 {
780b647442cSKever Yang			pwm2_pin: pwm2-pin {
781b647442cSKever Yang				rockchip,pins = <1 RK_PB4 RK_FUNC_2 &pcfg_pull_none>;
782b647442cSKever Yang			};
783b647442cSKever Yang		};
784b647442cSKever Yang
785b647442cSKever Yang		pwm3 {
786b647442cSKever Yang			pwm3_pin: pwm3-pin {
787b647442cSKever Yang				rockchip,pins = <1 RK_PB3 RK_FUNC_2 &pcfg_pull_none>;
788b647442cSKever Yang			};
789b647442cSKever Yang		};
790b647442cSKever Yang
791b647442cSKever Yang		tsadc {
792b647442cSKever Yang			otp_gpio: otp-gpio {
793b647442cSKever Yang				rockchip,pins = <0 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
794b647442cSKever Yang			};
795b647442cSKever Yang
796b647442cSKever Yang			otp_out: otp-out {
797b647442cSKever Yang				rockchip,pins = <0 RK_PD0 RK_FUNC_2 &pcfg_pull_none>;
798b647442cSKever Yang			};
799b647442cSKever Yang		};
800b647442cSKever Yang
801b647442cSKever Yang		uart0 {
802b647442cSKever Yang			uart0_xfer: uart0-xfer {
803b647442cSKever Yang				rockchip,pins = <2 RK_PD2 RK_FUNC_1 &pcfg_pull_none>,
804b647442cSKever Yang						<2 RK_PD3 RK_FUNC_1 &pcfg_pull_none>;
805b647442cSKever Yang			};
806b647442cSKever Yang
807b647442cSKever Yang			uart0_cts: uart0-cts {
808b647442cSKever Yang				rockchip,pins = <2 RK_PD5 RK_FUNC_1 &pcfg_pull_none>;
809b647442cSKever Yang			};
810b647442cSKever Yang
811b647442cSKever Yang			uart0_rts: uart0-rts {
812b647442cSKever Yang				rockchip,pins = <0 RK_PC1 RK_FUNC_1 &pcfg_pull_none>;
813b647442cSKever Yang			};
814b647442cSKever Yang		};
815b647442cSKever Yang
816b647442cSKever Yang		uart1 {
817b647442cSKever Yang			uart1_xfer: uart1-xfer {
818b647442cSKever Yang				rockchip,pins = <1 RK_PB1 RK_FUNC_1 &pcfg_pull_none>,
819b647442cSKever Yang						<1 RK_PB2 RK_FUNC_1 &pcfg_pull_none>;
820b647442cSKever Yang			};
821b647442cSKever Yang
822b647442cSKever Yang			uart1_cts: uart1-cts {
823b647442cSKever Yang				rockchip,pins = <1 RK_PB0 RK_FUNC_1 &pcfg_pull_none>;
824b647442cSKever Yang			};
825b647442cSKever Yang
826b647442cSKever Yang			uart1_rts: uart1-rts {
827b647442cSKever Yang				rockchip,pins = <1 RK_PB3 RK_FUNC_1 &pcfg_pull_none>;
828b647442cSKever Yang			};
829b647442cSKever Yang		};
830b647442cSKever Yang
831b647442cSKever Yang		uart2 {
832b647442cSKever Yang			uart2_xfer: uart2-xfer {
8333174f329SDavid Wu				rockchip,pins = <1 RK_PC2 RK_FUNC_2 &pcfg_pull_up>,
834b647442cSKever Yang						<1 RK_PC3 RK_FUNC_2 &pcfg_pull_none>;
835b647442cSKever Yang			};
836b647442cSKever Yang
837b647442cSKever Yang			uart2_cts: uart2-cts {
838b647442cSKever Yang				rockchip,pins = <0 RK_PD1 RK_FUNC_1 &pcfg_pull_none>;
839b647442cSKever Yang			};
840b647442cSKever Yang
841b647442cSKever Yang			uart2_rts: uart2-rts {
842b647442cSKever Yang				rockchip,pins = <0 RK_PD0 RK_FUNC_1 &pcfg_pull_none>;
843b647442cSKever Yang			};
844b647442cSKever Yang		};
8453174f329SDavid Wu
8463174f329SDavid Wu		uart2-1 {
8473174f329SDavid Wu			uart21_xfer: uart21-xfer {
8483174f329SDavid Wu				rockchip,pins = <1 10 RK_FUNC_2 &pcfg_pull_up>,
8493174f329SDavid Wu						<1 9 RK_FUNC_2 &pcfg_pull_none>;
8503174f329SDavid Wu			};
8513174f329SDavid Wu		};
852b647442cSKever Yang	};
853b647442cSKever Yang
854b647442cSKever Yang	dmc: dmc@11200000 {
855b647442cSKever Yang		compatible = "rockchip,rk3228-dmc", "syscon";
856b647442cSKever Yang		rockchip,cru = <&cru>;
857b647442cSKever Yang		rockchip,grf = <&grf>;
858b647442cSKever Yang		rockchip,msch = <&service_msch>;
859b647442cSKever Yang		reg = <0x11200000 0x3fc
860b647442cSKever Yang		       0x12000000 0x400>;
861b647442cSKever Yang		rockchip,sram = <&ddr_sram>;
862b647442cSKever Yang	};
863b647442cSKever Yang
864b647442cSKever Yang	service_msch: syscon@31090000 {
865b647442cSKever Yang		compatible = "rockchip,rk3228-msch", "syscon";
866b647442cSKever Yang		reg = <0x31090000 0x2000>;
867b647442cSKever Yang	};
8680a5f26cbSZhangbin Tong
8690a5f26cbSZhangbin Tong	nandc: nandc@30030000 {
8700a5f26cbSZhangbin Tong		compatible = "rockchip,rk-nandc";
8710a5f26cbSZhangbin Tong		reg = <0x30030000 0x4000>;
8720a5f26cbSZhangbin Tong		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
8730a5f26cbSZhangbin Tong		nandc_id = <0>;
8740a5f26cbSZhangbin Tong		clocks = <&cru SCLK_NANDC>, <&cru HCLK_NANDC>;
8750a5f26cbSZhangbin Tong		clock-names = "clk_nandc", "hclk_nandc";
8760a5f26cbSZhangbin Tong		status = "disabled";
8770a5f26cbSZhangbin Tong	};
878b647442cSKever Yang};
879