xref: /rk3399_rockchip-uboot/arch/arm/dts/rk3036.dtsi (revision 0f063360456b81471052d62cd076b09336ce098f)
1fc0fada0Shuang lin/*
2fc0fada0Shuang lin * SPDX-License-Identifier:	GPL-2.0+
3fc0fada0Shuang lin */
4fc0fada0Shuang lin
5fc0fada0Shuang lin#include <dt-bindings/gpio/gpio.h>
6fc0fada0Shuang lin#include <dt-bindings/interrupt-controller/irq.h>
7fc0fada0Shuang lin#include <dt-bindings/interrupt-controller/arm-gic.h>
8fc0fada0Shuang lin#include <dt-bindings/pinctrl/rockchip.h>
9fc0fada0Shuang lin#include <dt-bindings/clock/rk3036-cru.h>
10fc0fada0Shuang lin#include "skeleton.dtsi"
11fc0fada0Shuang lin
12fc0fada0Shuang lin/ {
13fc0fada0Shuang lin	compatible = "rockchip,rk3036";
14fc0fada0Shuang lin
15fc0fada0Shuang lin	interrupt-parent = <&gic>;
16fc0fada0Shuang lin
17fc0fada0Shuang lin	aliases {
18fc0fada0Shuang lin		gpio0 = &gpio0;
19fc0fada0Shuang lin		gpio1 = &gpio1;
20fc0fada0Shuang lin		gpio2 = &gpio2;
21fc0fada0Shuang lin		i2c1 = &i2c1;
22fc0fada0Shuang lin		serial0 = &uart0;
23fc0fada0Shuang lin		serial1 = &uart1;
24fc0fada0Shuang lin		serial2 = &uart2;
25fc0fada0Shuang lin		mmc0 = &emmc;
269b21b454SEddie Cai		mmc1 = &sdmmc;
27fc0fada0Shuang lin	};
28fc0fada0Shuang lin
29fc0fada0Shuang lin	memory {
30fc0fada0Shuang lin		device_type = "memory";
31fc0fada0Shuang lin		reg = <0x60000000 0x40000000>;
32fc0fada0Shuang lin	};
33fc0fada0Shuang lin
34fc0fada0Shuang lin        arm-pmu {
35fc0fada0Shuang lin                compatible = "arm,cortex-a7-pmu";
36fc0fada0Shuang lin                interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
37fc0fada0Shuang lin                             <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
38fc0fada0Shuang lin                interrupt-affinity = <&cpu0>, <&cpu1>;
39fc0fada0Shuang lin        };
40fc0fada0Shuang lin
41fc0fada0Shuang lin	cpus {
42fc0fada0Shuang lin		#address-cells = <1>;
43fc0fada0Shuang lin		#size-cells = <0>;
44fc0fada0Shuang lin		enable-method = "rockchip,rk3036-smp";
45fc0fada0Shuang lin
46fc0fada0Shuang lin		cpu0: cpu@f00 {
47fc0fada0Shuang lin			device_type = "cpu";
48fc0fada0Shuang lin			compatible = "arm,cortex-a7";
49fc0fada0Shuang lin			reg = <0xf00>;
50fc0fada0Shuang lin			operating-points = <
51fc0fada0Shuang lin				/* KHz    uV */
52fc0fada0Shuang lin				 816000 1000000
53fc0fada0Shuang lin			>;
54fc0fada0Shuang lin			#cooling-cells = <2>; /* min followed by max */
55fc0fada0Shuang lin			clock-latency = <40000>;
56fc0fada0Shuang lin			clocks = <&cru ARMCLK>;
57fc0fada0Shuang lin			resets = <&cru SRST_CORE0>;
58fc0fada0Shuang lin		};
59fc0fada0Shuang lin		cpu1: cpu@f01 {
60fc0fada0Shuang lin			device_type = "cpu";
61fc0fada0Shuang lin			compatible = "arm,cortex-a7";
62fc0fada0Shuang lin			reg = <0xf01>;
63fc0fada0Shuang lin			resets = <&cru SRST_CORE1>;
64fc0fada0Shuang lin		};
65fc0fada0Shuang lin	};
66fc0fada0Shuang lin
67fc0fada0Shuang lin	amba {
68fc0fada0Shuang lin		compatible = "arm,amba-bus";
69fc0fada0Shuang lin		#address-cells = <1>;
70fc0fada0Shuang lin		#size-cells = <1>;
71fc0fada0Shuang lin		ranges;
72fc0fada0Shuang lin
73fc0fada0Shuang lin                pdma: pdma@20078000 {
74fc0fada0Shuang lin                        compatible = "arm,pl330", "arm,primecell";
75fc0fada0Shuang lin                        reg = <0x20078000 0x4000>;
76fc0fada0Shuang lin                        arm,pl330-broken-no-flushp;
77fc0fada0Shuang lin                        interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
78fc0fada0Shuang lin                                     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
79fc0fada0Shuang lin                        #dma-cells = <1>;
80fc0fada0Shuang lin                        clocks = <&cru ACLK_DMAC2>;
81fc0fada0Shuang lin                        clock-names = "apb_pclk";
82fc0fada0Shuang lin                };
83fc0fada0Shuang lin	};
84fc0fada0Shuang lin
85fc0fada0Shuang lin	xin24m: oscillator {
86fc0fada0Shuang lin		compatible = "fixed-clock";
87fc0fada0Shuang lin		clock-frequency = <24000000>;
88fc0fada0Shuang lin		clock-output-names = "xin24m";
89fc0fada0Shuang lin		#clock-cells = <0>;
90fc0fada0Shuang lin	};
91fc0fada0Shuang lin
92fbf3603bSJoseph Chen	psci: psci {
93fbf3603bSJoseph Chen		compatible      = "arm,psci-1.0";
94fbf3603bSJoseph Chen		method          = "smc";
95fbf3603bSJoseph Chen	};
96fbf3603bSJoseph Chen
97fc0fada0Shuang lin	timer {
98fc0fada0Shuang lin		compatible = "arm,armv7-timer";
99fc0fada0Shuang lin		arm,cpu-registers-not-fw-configured;
100fc0fada0Shuang lin		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
101fc0fada0Shuang lin			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
102fc0fada0Shuang lin			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
103fc0fada0Shuang lin			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
104fc0fada0Shuang lin		clock-frequency = <24000000>;
105fc0fada0Shuang lin	};
106fc0fada0Shuang lin
107fc0fada0Shuang lin	cru: clock-controller@20000000 {
108fc0fada0Shuang lin		compatible = "rockchip,rk3036-cru";
109fc0fada0Shuang lin		reg = <0x20000000 0x1000>;
110fc0fada0Shuang lin		rockchip,grf = <&grf>;
111fc0fada0Shuang lin		#clock-cells = <1>;
112fc0fada0Shuang lin		#reset-cells = <1>;
113fc0fada0Shuang lin		assigned-clocks = <&cru PLL_GPLL>;
114fc0fada0Shuang lin		assigned-clock-rates = <594000000>;
115fc0fada0Shuang lin	};
116fc0fada0Shuang lin
117d975296cSDavid Wu	dmc: dmc@20004000 {
118d975296cSDavid Wu		compatible = "rockchip,rk3036-dmc", "syscon";
119d975296cSDavid Wu		reg = <0x0 0x20004000 0x0 0x1000>;
120d975296cSDavid Wu	};
121d975296cSDavid Wu
122fc0fada0Shuang lin	uart0: serial@20060000 {
123fc0fada0Shuang lin		compatible = "rockchip,rk3036-uart", "snps,dw-apb-uart";
124fc0fada0Shuang lin		reg = <0x20060000 0x100>;
125fc0fada0Shuang lin		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
126fc0fada0Shuang lin		reg-shift = <2>;
127fc0fada0Shuang lin		reg-io-width = <4>;
128fc0fada0Shuang lin		clock-frequency = <24000000>;
129fc0fada0Shuang lin		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
130fc0fada0Shuang lin		clock-names = "baudclk", "apb_pclk";
131fc0fada0Shuang lin		pinctrl-names = "default";
132fc0fada0Shuang lin		pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
133fc0fada0Shuang lin	};
134fc0fada0Shuang lin
135fc0fada0Shuang lin	uart1: serial@20064000 {
136fc0fada0Shuang lin		compatible = "rockchip,rk3036-uart", "snps,dw-apb-uart";
137fc0fada0Shuang lin		reg = <0x20064000 0x100>;
138fc0fada0Shuang lin		interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
139fc0fada0Shuang lin		reg-shift = <2>;
140fc0fada0Shuang lin		reg-io-width = <4>;
141fc0fada0Shuang lin		clock-frequency = <24000000>;
142fc0fada0Shuang lin		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
143fc0fada0Shuang lin		clock-names = "baudclk", "apb_pclk";
144fc0fada0Shuang lin		pinctrl-names = "default";
145fc0fada0Shuang lin		pinctrl-0 = <&uart1_xfer>;
146fc0fada0Shuang lin	};
147fc0fada0Shuang lin
148fc0fada0Shuang lin	uart2: serial@20068000 {
149fc0fada0Shuang lin		compatible = "rockchip,rk3036-uart", "snps,dw-apb-uart";
150fc0fada0Shuang lin		reg = <0x20068000 0x100>;
151fc0fada0Shuang lin		interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
152fc0fada0Shuang lin		reg-shift = <2>;
153fc0fada0Shuang lin		reg-io-width = <4>;
154fc0fada0Shuang lin		clock-frequency = <24000000>;
155fc0fada0Shuang lin		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
156fc0fada0Shuang lin		clock-names = "baudclk", "apb_pclk";
157fc0fada0Shuang lin		pinctrl-names = "default";
158fc0fada0Shuang lin		pinctrl-0 = <&uart2_xfer>;
159fc0fada0Shuang lin	};
160fc0fada0Shuang lin
161fc0fada0Shuang lin	pwm0: pwm@20050000 {
162fc0fada0Shuang lin		compatible = "rockchip,rk2928-pwm";
163fc0fada0Shuang lin		reg = <0x20050000 0x10>;
164fc0fada0Shuang lin		#pwm-cells = <3>;
165bab0c55cSDavid Wu		pinctrl-names = "active";
166fc0fada0Shuang lin		pinctrl-0 = <&pwm0_pin>;
167fc0fada0Shuang lin		clocks = <&cru PCLK_PWM>;
168fc0fada0Shuang lin		clock-names = "pwm";
169fc0fada0Shuang lin		status = "disabled";
170fc0fada0Shuang lin	};
171fc0fada0Shuang lin
172fc0fada0Shuang lin	pwm1: pwm@20050010 {
173fc0fada0Shuang lin		compatible = "rockchip,rk2928-pwm";
174fc0fada0Shuang lin		reg = <0x20050010 0x10>;
175fc0fada0Shuang lin		#pwm-cells = <3>;
176bab0c55cSDavid Wu		pinctrl-names = "active";
177fc0fada0Shuang lin		pinctrl-0 = <&pwm1_pin>;
178fc0fada0Shuang lin		clocks = <&cru PCLK_PWM>;
179fc0fada0Shuang lin		clock-names = "pwm";
180fc0fada0Shuang lin		status = "disabled";
181fc0fada0Shuang lin	};
182fc0fada0Shuang lin
183fc0fada0Shuang lin	pwm2: pwm@20050020 {
184fc0fada0Shuang lin		compatible = "rockchip,rk2928-pwm";
185fc0fada0Shuang lin		reg = <0x20050020 0x10>;
186fc0fada0Shuang lin		#pwm-cells = <3>;
187bab0c55cSDavid Wu		pinctrl-names = "active";
188fc0fada0Shuang lin		pinctrl-0 = <&pwm2_pin>;
189fc0fada0Shuang lin		clocks = <&cru PCLK_PWM>;
190fc0fada0Shuang lin		clock-names = "pwm";
191fc0fada0Shuang lin		status = "disabled";
192fc0fada0Shuang lin	};
193fc0fada0Shuang lin
194fc0fada0Shuang lin	pwm3: pwm@20050030 {
195fc0fada0Shuang lin		compatible = "rockchip,rk2928-pwm";
196fc0fada0Shuang lin		reg = <0x20050030 0x10>;
197fc0fada0Shuang lin		#pwm-cells = <2>;
198bab0c55cSDavid Wu		pinctrl-names = "active";
199fc0fada0Shuang lin		pinctrl-0 = <&pwm3_pin>;
200fc0fada0Shuang lin		clocks = <&cru PCLK_PWM>;
201fc0fada0Shuang lin		clock-names = "pwm";
202fc0fada0Shuang lin		status = "disabled";
203fc0fada0Shuang lin	};
204fc0fada0Shuang lin
205fc0fada0Shuang lin	sram: sram@10080000 {
206fc0fada0Shuang lin		compatible = "rockchip,rk3036-smp-sram", "mmio-sram";
207fc0fada0Shuang lin		reg = <0x10080000 0x2000>;
208fc0fada0Shuang lin	};
209fc0fada0Shuang lin
210fc0fada0Shuang lin	gic: interrupt-controller@10139000 {
211fc0fada0Shuang lin		compatible = "arm,gic-400";
212fc0fada0Shuang lin		interrupt-controller;
213fc0fada0Shuang lin		#interrupt-cells = <3>;
214fc0fada0Shuang lin		#address-cells = <0>;
215fc0fada0Shuang lin
216fc0fada0Shuang lin		reg = <0x10139000 0x1000>,
217fc0fada0Shuang lin		      <0x1013a000 0x1000>,
218fc0fada0Shuang lin		      <0x1013c000 0x2000>,
219fc0fada0Shuang lin		      <0x1013e000 0x2000>;
220fc0fada0Shuang lin		interrupts = <GIC_PPI 9 0xf04>;
221fc0fada0Shuang lin	};
222fc0fada0Shuang lin
223fc0fada0Shuang lin	grf: syscon@20008000 {
224fc0fada0Shuang lin		compatible = "rockchip,rk3036-grf", "syscon";
225fc0fada0Shuang lin		reg = <0x20008000 0x1000>;
226*0f063360SJianwei Zheng		#address-cells = <1>;
227*0f063360SJianwei Zheng		#size-cells = <1>;
228*0f063360SJianwei Zheng
229*0f063360SJianwei Zheng		usb2phy: usb2-phy@17c {
230*0f063360SJianwei Zheng			compatible = "rockchip,rk3036-usb2phy";
231*0f063360SJianwei Zheng			reg = <0x017c 0x0c>;
232*0f063360SJianwei Zheng			clocks = <&cru SCLK_OTGPHY0>;
233*0f063360SJianwei Zheng			clock-names = "phyclk";
234*0f063360SJianwei Zheng			#clock-cells = <0>;
235*0f063360SJianwei Zheng			clock-output-names = "usb480m_phy";
236*0f063360SJianwei Zheng			status = "disabled";
237*0f063360SJianwei Zheng
238*0f063360SJianwei Zheng			u2phy_otg: otg-port {
239*0f063360SJianwei Zheng				#phy-cells = <0>;
240*0f063360SJianwei Zheng				interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
241*0f063360SJianwei Zheng					<GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
242*0f063360SJianwei Zheng					<GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
243*0f063360SJianwei Zheng				interrupt-names = "otg-bvalid", "otg-id",
244*0f063360SJianwei Zheng						"linestate";
245*0f063360SJianwei Zheng				status = "disabled";
246*0f063360SJianwei Zheng			};
247*0f063360SJianwei Zheng
248*0f063360SJianwei Zheng			u2phy_host: host-port {
249*0f063360SJianwei Zheng				#phy-cells = <0>;
250*0f063360SJianwei Zheng				interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
251*0f063360SJianwei Zheng				interrupt-names = "linestate";
252*0f063360SJianwei Zheng				status = "disabled";
253*0f063360SJianwei Zheng			};
254*0f063360SJianwei Zheng		};
255fc0fada0Shuang lin	};
256fc0fada0Shuang lin
257fc0fada0Shuang lin	usb_otg: usb@10180000 {
258fc0fada0Shuang lin		compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
259fc0fada0Shuang lin				"snps,dwc2";
260fc0fada0Shuang lin		reg = <0x10180000 0x40000>;
261fc0fada0Shuang lin		interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
262fc0fada0Shuang lin		clocks = <&cru HCLK_OTG0>;
263fc0fada0Shuang lin		clock-names = "otg";
264fc0fada0Shuang lin		dr_mode = "otg";
265fc0fada0Shuang lin		g-np-tx-fifo-size = <16>;
266fc0fada0Shuang lin		g-rx-fifo-size = <275>;
267fc0fada0Shuang lin		g-tx-fifo-size = <256 128 128 64 64 32>;
268fc0fada0Shuang lin		g-use-dma;
269fc0fada0Shuang lin		status = "disabled";
270fc0fada0Shuang lin	};
271fc0fada0Shuang lin
272fc0fada0Shuang lin	usb_host: usb@101c0000 {
273fc0fada0Shuang lin		compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
274fc0fada0Shuang lin				"snps,dwc2";
275fc0fada0Shuang lin		reg = <0x101c0000 0x40000>;
276fc0fada0Shuang lin		interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
277fc0fada0Shuang lin		clocks = <&cru HCLK_OTG1>;
278fc0fada0Shuang lin		clock-names = "otg";
279fc0fada0Shuang lin		dr_mode = "host";
280fc0fada0Shuang lin		status = "disabled";
281fc0fada0Shuang lin	};
282fc0fada0Shuang lin
283fc0fada0Shuang lin	emmc: dwmmc@1021c000 {
284fc0fada0Shuang lin		compatible = "rockchip,rk3288-dw-mshc";
285fc0fada0Shuang lin		clock-frequency = <37500000>;
2863f7a7255SKever Yang		max-frequency = <37500000>;
287fc0fada0Shuang lin		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
288fc0fada0Shuang lin		<&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
289c5c7b477SKever Yang		clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
290fc0fada0Shuang lin		dmas = <&pdma 12>;
291fc0fada0Shuang lin		dma-names = "rx-tx";
292fc0fada0Shuang lin		fifo-depth = <0x100>;
293fc0fada0Shuang lin		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
294fc0fada0Shuang lin		reg = <0x1021c000 0x4000>;
295fc0fada0Shuang lin		broken-cd;
296fc0fada0Shuang lin		bus-width = <8>;
297fc0fada0Shuang lin		cap-mmc-highspeed;
298fc0fada0Shuang lin		mmc-ddr-1_8v;
299fc0fada0Shuang lin		disable-wp;
30028637248Shuang lin		fifo-mode;
301fc0fada0Shuang lin		non-removable;
302fc0fada0Shuang lin		num-slots = <1>;
303fc0fada0Shuang lin		default-sample-phase = <158>;
304fc0fada0Shuang lin		pinctrl-names = "default";
305fc0fada0Shuang lin		pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
306fc0fada0Shuang lin	};
307fc0fada0Shuang lin
30852a8a1a4SJon Lin	sfc: sfc@102080000 {
30952a8a1a4SJon Lin		compatible = "rockchip,rksfc";
31052a8a1a4SJon Lin		reg = <0x10208000 0x4000>;
31152a8a1a4SJon Lin		#address-cells = <1>;
31252a8a1a4SJon Lin		#size-cells = <0>;
31352a8a1a4SJon Lin		interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
31452a8a1a4SJon Lin		clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
31552a8a1a4SJon Lin		clock-names = "clk_sfc", "hclk_sfc";
31652a8a1a4SJon Lin		status = "disabled";
31752a8a1a4SJon Lin	};
31852a8a1a4SJon Lin
3199b21b454SEddie Cai	sdmmc: dwmmc@10214000 {
3209b21b454SEddie Cai		compatible = "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc";
3219b21b454SEddie Cai		reg = <0x10214000 0x4000>;
3229b21b454SEddie Cai		clock-frequency = <37500000>;
3239b21b454SEddie Cai		max-frequency = <37500000>;
3249b21b454SEddie Cai		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>;
3259b21b454SEddie Cai		clock-names = "biu", "ciu";
3269b21b454SEddie Cai		fifo-depth = <0x100>;
3279b21b454SEddie Cai		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
3289b21b454SEddie Cai		status = "disabled";
3299b21b454SEddie Cai	};
3309b21b454SEddie Cai
331eb45fc5aSJon Lin	nandc: nandc@10500000 {
332eb45fc5aSJon Lin		compatible = "rockchip,rk-nandc";
333eb45fc5aSJon Lin		reg = <0x10500000 0x4000>;
334eb45fc5aSJon Lin		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
335eb45fc5aSJon Lin		nandc_id = <0>;
336eb45fc5aSJon Lin		clocks = <&cru SCLK_NANDC>, <&cru HCLK_NANDC>;
337eb45fc5aSJon Lin		clock-names = "clk_nandc", "hclk_nandc";
338eb45fc5aSJon Lin		status = "disabled";
339eb45fc5aSJon Lin	};
340eb45fc5aSJon Lin
341fc0fada0Shuang lin	pinctrl: pinctrl {
342fc0fada0Shuang lin		compatible = "rockchip,rk3036-pinctrl";
343fc0fada0Shuang lin		rockchip,grf = <&grf>;
344fc0fada0Shuang lin		#address-cells = <1>;
345fc0fada0Shuang lin		#size-cells = <1>;
346fc0fada0Shuang lin		ranges;
347fc0fada0Shuang lin
348fc0fada0Shuang lin		gpio0: gpio0@2007c000 {
349fc0fada0Shuang lin			compatible = "rockchip,gpio-bank";
350fc0fada0Shuang lin			reg = <0x2007c000 0x100>;
351fc0fada0Shuang lin			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
352fc0fada0Shuang lin			clocks = <&cru PCLK_GPIO0>;
353fc0fada0Shuang lin
354fc0fada0Shuang lin			gpio-controller;
355fc0fada0Shuang lin			#gpio-cells = <2>;
356fc0fada0Shuang lin
357fc0fada0Shuang lin			interrupt-controller;
358fc0fada0Shuang lin			#interrupt-cells = <2>;
359fc0fada0Shuang lin		};
360fc0fada0Shuang lin
361fc0fada0Shuang lin		gpio1: gpio1@20080000 {
362fc0fada0Shuang lin			compatible = "rockchip,gpio-bank";
363fc0fada0Shuang lin			reg = <0x20080000 0x100>;
364fc0fada0Shuang lin			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
365fc0fada0Shuang lin			clocks = <&cru PCLK_GPIO1>;
366fc0fada0Shuang lin
367fc0fada0Shuang lin			gpio-controller;
368fc0fada0Shuang lin			#gpio-cells = <2>;
369fc0fada0Shuang lin
370fc0fada0Shuang lin			interrupt-controller;
371fc0fada0Shuang lin			#interrupt-cells = <2>;
372fc0fada0Shuang lin		};
373fc0fada0Shuang lin
374fc0fada0Shuang lin		gpio2: gpio2@20084000 {
375fc0fada0Shuang lin			compatible = "rockchip,gpio-bank";
376fc0fada0Shuang lin			reg = <0x20084000 0x100>;
377fc0fada0Shuang lin			interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
378fc0fada0Shuang lin			clocks = <&cru PCLK_GPIO2>;
379fc0fada0Shuang lin
380fc0fada0Shuang lin			gpio-controller;
381fc0fada0Shuang lin			#gpio-cells = <2>;
382fc0fada0Shuang lin
383fc0fada0Shuang lin			interrupt-controller;
384fc0fada0Shuang lin			#interrupt-cells = <2>;
385fc0fada0Shuang lin		};
386fc0fada0Shuang lin
387fc0fada0Shuang lin		pcfg_pull_up: pcfg-pull-up {
388fc0fada0Shuang lin			bias-pull-up;
389fc0fada0Shuang lin		};
390fc0fada0Shuang lin
391fc0fada0Shuang lin		pcfg_pull_down: pcfg-pull-down {
392fc0fada0Shuang lin			bias-pull-down;
393fc0fada0Shuang lin		};
394fc0fada0Shuang lin
395fc0fada0Shuang lin		pcfg_pull_none: pcfg-pull-none {
396fc0fada0Shuang lin			bias-disable;
397fc0fada0Shuang lin		};
398fc0fada0Shuang lin
399fc0fada0Shuang lin		emmc {
400fc0fada0Shuang lin			/*
401fc0fada0Shuang lin			 * We run eMMC at max speed; bump up drive strength.
402fc0fada0Shuang lin			 * We also have external pulls, so disable the internal ones.
403fc0fada0Shuang lin			 */
404fc0fada0Shuang lin			emmc_clk: emmc-clk {
405fc0fada0Shuang lin				rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none>;
406fc0fada0Shuang lin			};
407fc0fada0Shuang lin
408fc0fada0Shuang lin			emmc_cmd: emmc-cmd {
409fc0fada0Shuang lin				rockchip,pins = <2 1 RK_FUNC_2 &pcfg_pull_none>;
410fc0fada0Shuang lin			};
411fc0fada0Shuang lin
412fc0fada0Shuang lin			emmc_bus8: emmc-bus8 {
413fc0fada0Shuang lin				rockchip,pins = <1 24 RK_FUNC_2 &pcfg_pull_none>,
414fc0fada0Shuang lin						<1 25 RK_FUNC_2 &pcfg_pull_none>,
415fc0fada0Shuang lin						<1 26 RK_FUNC_2 &pcfg_pull_none>,
416fc0fada0Shuang lin						<1 27 RK_FUNC_2 &pcfg_pull_none>;
417fc0fada0Shuang lin				/*
418fc0fada0Shuang lin						<1 28 RK_FUNC_2 &pcfg_pull_up>,
419fc0fada0Shuang lin						<1 29 RK_FUNC_2 &pcfg_pull_up>,
420fc0fada0Shuang lin						<1 30 RK_FUNC_2 &pcfg_pull_up>,
421fc0fada0Shuang lin						<1 31 RK_FUNC_2 &pcfg_pull_up>;
422fc0fada0Shuang lin						*/
423fc0fada0Shuang lin			};
424fc0fada0Shuang lin		};
425fc0fada0Shuang lin
426fc0fada0Shuang lin		uart0 {
427fc0fada0Shuang lin			uart0_xfer: uart0-xfer {
428fc0fada0Shuang lin				rockchip,pins = <0 16 RK_FUNC_1 &pcfg_pull_none>,
429fc0fada0Shuang lin						<0 17 RK_FUNC_1 &pcfg_pull_none>;
430fc0fada0Shuang lin			};
431fc0fada0Shuang lin
432fc0fada0Shuang lin			uart0_cts: uart0-cts {
433fc0fada0Shuang lin				rockchip,pins = <0 18 RK_FUNC_1 &pcfg_pull_none>;
434fc0fada0Shuang lin			};
435fc0fada0Shuang lin
436fc0fada0Shuang lin			uart0_rts: uart0-rts {
437fc0fada0Shuang lin				rockchip,pins = <0 19 RK_FUNC_1 &pcfg_pull_none>;
438fc0fada0Shuang lin			};
439fc0fada0Shuang lin		};
440fc0fada0Shuang lin
441fc0fada0Shuang lin		uart1 {
442fc0fada0Shuang lin			uart1_xfer: uart1-xfer {
443fc0fada0Shuang lin				rockchip,pins = <2 22 RK_FUNC_1 &pcfg_pull_none>,
444fc0fada0Shuang lin						<2 23 RK_FUNC_1 &pcfg_pull_none>;
445fc0fada0Shuang lin			};
446fc0fada0Shuang lin			/* no rts / cts for uart1 */
447fc0fada0Shuang lin		};
448fc0fada0Shuang lin
449fc0fada0Shuang lin                uart2 {
450fc0fada0Shuang lin                        uart2_xfer: uart2-xfer {
451fc0fada0Shuang lin                                rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_none>,
452fc0fada0Shuang lin                                                <1 19 RK_FUNC_2 &pcfg_pull_none>;
453fc0fada0Shuang lin                        };
454fc0fada0Shuang lin                        /* no rts / cts for uart2 */
455fc0fada0Shuang lin                };
456fc0fada0Shuang lin
457fc0fada0Shuang lin		pwm0 {
458fc0fada0Shuang lin			pwm0_pin: pwm0-pin {
459fc0fada0Shuang lin				rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>;
460fc0fada0Shuang lin			};
461fc0fada0Shuang lin		};
462fc0fada0Shuang lin
463fc0fada0Shuang lin		pwm1 {
464fc0fada0Shuang lin			pwm1_pin: pwm1-pin {
465fc0fada0Shuang lin				rockchip,pins = <0 1 RK_FUNC_2 &pcfg_pull_none>;
466fc0fada0Shuang lin			};
467fc0fada0Shuang lin		};
468fc0fada0Shuang lin
469fc0fada0Shuang lin		pwm2 {
470fc0fada0Shuang lin			pwm2_pin: pwm2-pin {
471fc0fada0Shuang lin				rockchip,pins = <0 1 2 &pcfg_pull_none>;
472fc0fada0Shuang lin			};
473fc0fada0Shuang lin		};
474fc0fada0Shuang lin
475fc0fada0Shuang lin		pwm3 {
476fc0fada0Shuang lin			pwm3_pin: pwm3-pin {
477fc0fada0Shuang lin				rockchip,pins = <0 27 1 &pcfg_pull_none>;
478fc0fada0Shuang lin			};
479fc0fada0Shuang lin		};
480fc0fada0Shuang lin
481fc0fada0Shuang lin		i2c1 {
482fc0fada0Shuang lin			i2c1_xfer: i2c1-xfer {
483fc0fada0Shuang lin				rockchip,pins = <0 2 RK_FUNC_1 &pcfg_pull_none>,
484fc0fada0Shuang lin						<0 3 RK_FUNC_1 &pcfg_pull_none>;
485fc0fada0Shuang lin			};
486fc0fada0Shuang lin		};
487fc0fada0Shuang lin	};
488fc0fada0Shuang lin
489fc0fada0Shuang lin	i2c1: i2c@20056000 {
490fc0fada0Shuang lin		compatible = "rockchip,rk3288-i2c";
491fc0fada0Shuang lin		reg = <0x20056000 0x1000>;
492fc0fada0Shuang lin		interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
493fc0fada0Shuang lin		#address-cells = <1>;
494fc0fada0Shuang lin		#size-cells = <0>;
495fc0fada0Shuang lin		clock-names = "i2c";
496fc0fada0Shuang lin		clocks = <&cru PCLK_I2C1>;
497fc0fada0Shuang lin		pinctrl-names = "default";
498fc0fada0Shuang lin		pinctrl-0 = <&i2c1_xfer>;
499fc0fada0Shuang lin		status = "disabled";
500fc0fada0Shuang lin	};
501fc0fada0Shuang lin};
502