• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * This file is dual-licensed: you can use it either under the terms
3 * of the GPL or the X11 license, at your option. Note that this dual
4 * licensing only applies to this file, and not this project as a
5 * whole.
6 *
7 *  a) This file is free software; you can redistribute it and/or
8 *     modify it under the terms of the GNU General Public License as
9 *     published by the Free Software Foundation; either version 2 of the
10 *     License, or (at your option) any later version.
11 *
12 *     This file is distributed in the hope that it will be useful,
13 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
14 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 *     GNU General Public License for more details.
16 *
17 * Or, alternatively,
18 *
19 *  b) Permission is hereby granted, free of charge, to any person
20 *     obtaining a copy of this software and associated documentation
21 *     files (the "Software"), to deal in the Software without
22 *     restriction, including without limitation the rights to use,
23 *     copy, modify, merge, publish, distribute, sublicense, and/or
24 *     sell copies of the Software, and to permit persons to whom the
25 *     Software is furnished to do so, subject to the following
26 *     conditions:
27 *
28 *     The above copyright notice and this permission notice shall be
29 *     included in all copies or substantial portions of the Software.
30 *
31 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
32 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
33 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
34 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
35 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
36 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
38 *     OTHER DEALINGS IN THE SOFTWARE.
39 */
40
41#include <dt-bindings/gpio/gpio.h>
42#include <dt-bindings/interrupt-controller/irq.h>
43#include <dt-bindings/interrupt-controller/arm-gic.h>
44#include <dt-bindings/clock/rv1108-cru.h>
45#include <dt-bindings/pinctrl/rockchip.h>
46/ {
47	#address-cells = <1>;
48	#size-cells = <1>;
49
50	compatible = "rockchip,rv1108";
51
52	interrupt-parent = <&gic>;
53
54	aliases {
55		i2c0 = &i2c0;
56		i2c1 = &i2c1;
57		i2c2 = &i2c2;
58		i2c3 = &i2c3;
59		serial0 = &uart0;
60		serial1 = &uart1;
61		serial2 = &uart2;
62	};
63
64	cpus {
65		#address-cells = <1>;
66		#size-cells = <0>;
67
68		cpu0: cpu@f00 {
69			device_type = "cpu";
70			compatible = "arm,cortex-a7";
71			reg = <0xf00>;
72			clocks = <&cru ARMCLK>;
73			operating-points-v2 = <&cpu_opp_table>;
74		};
75	};
76
77	cpu_opp_table: opp_table {
78		compatible = "operating-points-v2";
79
80		opp-408000000 {
81			opp-hz = /bits/ 64 <408000000>;
82			opp-microvolt = <975000>;
83			clock-latency-ns = <40000>;
84		};
85		opp-600000000 {
86			opp-hz = /bits/ 64 <600000000>;
87			opp-microvolt = <975000>;
88			clock-latency-ns = <40000>;
89		};
90		opp-816000000 {
91			opp-hz = /bits/ 64 <816000000>;
92			opp-microvolt = <1025000>;
93			clock-latency-ns = <40000>;
94		};
95		opp-1008000000 {
96			opp-hz = /bits/ 64 <1008000000>;
97			opp-microvolt = <1150000>;
98			clock-latency-ns = <40000>;
99		};
100	};
101
102	arm-pmu {
103		compatible = "arm,cortex-a7-pmu";
104		interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
105	};
106
107	timer {
108		compatible = "arm,armv7-timer";
109		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>,
110			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
111		clock-frequency = <24000000>;
112	};
113
114	xin24m: oscillator {
115		compatible = "fixed-clock";
116		clock-frequency = <24000000>;
117		clock-output-names = "xin24m";
118		#clock-cells = <0>;
119	};
120
121	amba {
122		compatible = "simple-bus";
123		#address-cells = <1>;
124		#size-cells = <1>;
125		ranges;
126
127		pdma: pdma@102a0000 {
128			compatible = "arm,pl330", "arm,primecell";
129			reg = <0x102a0000 0x4000>;
130			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
131			#dma-cells = <1>;
132			arm,pl330-broken-no-flushp;
133			clocks = <&cru ACLK_DMAC>;
134			clock-names = "apb_pclk";
135		};
136	};
137
138	bus_intmem@10080000 {
139		compatible = "mmio-sram";
140		reg = <0x10080000 0x2000>;
141		#address-cells = <1>;
142		#size-cells = <1>;
143		ranges = <0 0x10080000 0x2000>;
144	};
145
146	uart2: serial@10210000 {
147		compatible = "rockchip,rv1108-uart", "snps,dw-apb-uart";
148		reg = <0x10210000 0x100>;
149		interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
150		reg-shift = <2>;
151		reg-io-width = <4>;
152		clock-frequency = <24000000>;
153		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
154		clock-names = "baudclk", "apb_pclk";
155		pinctrl-names = "default";
156		pinctrl-0 = <&uart2m0_xfer>;
157		status = "disabled";
158	};
159
160	uart1: serial@10220000 {
161		compatible = "rockchip,rv1108-uart", "snps,dw-apb-uart";
162		reg = <0x10220000 0x100>;
163		interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
164		reg-shift = <2>;
165		reg-io-width = <4>;
166		clock-frequency = <24000000>;
167		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
168		clock-names = "baudclk", "apb_pclk";
169		pinctrl-names = "default";
170		pinctrl-0 = <&uart1_xfer>;
171		status = "disabled";
172	};
173
174	uart0: serial@10230000 {
175		compatible = "rockchip,rv1108-uart", "snps,dw-apb-uart";
176		reg = <0x10230000 0x100>;
177		interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
178		reg-shift = <2>;
179		reg-io-width = <4>;
180		clock-frequency = <24000000>;
181		clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
182		clock-names = "baudclk", "apb_pclk";
183		pinctrl-names = "default";
184		pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
185		status = "disabled";
186	};
187
188	i2c1: i2c@10240000 {
189		compatible = "rockchip,rv1108-i2c";
190		reg = <0x10240000 0x1000>;
191		interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
192		#address-cells = <1>;
193		#size-cells = <0>;
194		clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
195		clock-names = "i2c", "pclk";
196		pinctrl-names = "default";
197		pinctrl-0 = <&i2c1_xfer>;
198		rockchip,grf = <&grf>;
199		status = "disabled";
200	};
201
202	i2c2: i2c@10250000 {
203		compatible = "rockchip,rv1108-i2c";
204		reg = <0x10250000 0x1000>;
205		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
206		#address-cells = <1>;
207		#size-cells = <0>;
208		clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
209		clock-names = "i2c", "pclk";
210		pinctrl-names = "default";
211		pinctrl-0 = <&i2c2m1_xfer>;
212		rockchip,grf = <&grf>;
213		status = "disabled";
214	};
215
216	i2c3: i2c@10260000 {
217		compatible = "rockchip,rv1108-i2c";
218		reg = <0x10260000 0x1000>;
219		interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
220		#address-cells = <1>;
221		#size-cells = <0>;
222		clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
223		clock-names = "i2c", "pclk";
224		pinctrl-names = "default";
225		pinctrl-0 = <&i2c3_xfer>;
226		rockchip,grf = <&grf>;
227		status = "disabled";
228	};
229
230	spi: spi@10270000 {
231		compatible = "rockchip,rv1108-spi";
232		reg = <0x10270000 0x1000>;
233		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
234		clocks = <&cru SCLK_SPI>, <&cru PCLK_SPI>;
235		clock-names = "spiclk", "apb_pclk";
236		dmas = <&pdma 8>, <&pdma 9>;
237		#dma-cells = <2>;
238		#address-cells = <1>;
239		#size-cells = <0>;
240		status = "disabled";
241	};
242
243	pwm4: pwm@10280000 {
244		compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
245		reg = <0x10280000 0x10>;
246		interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
247		clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
248		clock-names = "pwm", "pclk";
249		pinctrl-names = "default";
250		pinctrl-0 = <&pwm4_pin>;
251		#pwm-cells = <3>;
252		status = "disabled";
253	};
254
255	pwm5: pwm@10280010 {
256		compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
257		reg = <0x10280010 0x10>;
258		interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
259		clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
260		clock-names = "pwm", "pclk";
261		pinctrl-names = "default";
262		pinctrl-0 = <&pwm5_pin>;
263		#pwm-cells = <3>;
264		status = "disabled";
265	};
266
267	pwm6: pwm@10280020 {
268		compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
269		reg = <0x10280020 0x10>;
270		interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
271		clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
272		clock-names = "pwm", "pclk";
273		pinctrl-names = "default";
274		pinctrl-0 = <&pwm6_pin>;
275		#pwm-cells = <3>;
276		status = "disabled";
277	};
278
279	pwm7: pwm@10280030 {
280		compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
281		reg = <0x10280030 0x10>;
282		interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
283		clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
284		clock-names = "pwm", "pclk";
285		pinctrl-names = "default";
286		pinctrl-0 = <&pwm7_pin>;
287		#pwm-cells = <3>;
288		status = "disabled";
289	};
290
291	grf: syscon@10300000 {
292		compatible = "rockchip,rv1108-grf", "syscon", "simple-mfd";
293		reg = <0x10300000 0x1000>;
294		#address-cells = <1>;
295		#size-cells = <1>;
296
297		u2phy: usb2-phy@100 {
298			compatible = "rockchip,rv1108-usb2phy";
299			reg = <0x100 0x0c>;
300			clocks = <&cru SCLK_USBPHY>;
301			clock-names = "phyclk";
302			#clock-cells = <0>;
303			clock-output-names = "usbphy";
304			rockchip,usbgrf = <&usbgrf>;
305			status = "disabled";
306
307			u2phy_otg: otg-port {
308				interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
309				interrupt-names = "otg-mux";
310				#phy-cells = <0>;
311				status = "disabled";
312			};
313
314			u2phy_host: host-port {
315				interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
316				interrupt-names = "linestate";
317				#phy-cells = <0>;
318				status = "disabled";
319			};
320		};
321	};
322
323	watchdog: wdt@10360000 {
324		compatible = "snps,dw-wdt";
325		reg = <0x10360000 0x100>;
326		interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
327		clocks = <&cru PCLK_WDT>;
328		clock-names = "pclk_wdt";
329		status = "disabled";
330	};
331
332	adc: adc@1038c000 {
333		compatible = "rockchip,rv1108-saradc", "rockchip,rk3399-saradc";
334		reg = <0x1038c000 0x100>;
335		interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
336		#io-channel-cells = <1>;
337		clock-frequency = <1000000>;
338		clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
339		clock-names = "saradc", "apb_pclk";
340		status = "disabled";
341	};
342
343	i2c0: i2c@20000000 {
344		compatible = "rockchip,rv1108-i2c";
345		reg = <0x20000000 0x1000>;
346		interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
347		#address-cells = <1>;
348		#size-cells = <0>;
349		clocks = <&cru SCLK_I2C0_PMU>, <&cru PCLK_I2C0_PMU>;
350		clock-names = "i2c", "pclk";
351		pinctrl-names = "default";
352		pinctrl-0 = <&i2c0_xfer>;
353		rockchip,grf = <&grf>;
354		status = "disabled";
355	};
356
357	pwm0: pwm@20040000 {
358		compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
359		reg = <0x20040000 0x10>;
360		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
361		clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
362		clock-names = "pwm", "pclk";
363		pinctrl-names = "default";
364		pinctrl-0 = <&pwm0_pin>;
365		#pwm-cells = <3>;
366		status = "disabled";
367	};
368
369	pwm1: pwm@20040010 {
370		compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
371		reg = <0x20040010 0x10>;
372		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
373		clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
374		clock-names = "pwm", "pclk";
375		pinctrl-names = "default";
376		pinctrl-0 = <&pwm1_pin>;
377		#pwm-cells = <3>;
378		status = "disabled";
379	};
380
381	pwm2: pwm@20040020 {
382		compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
383		reg = <0x20040020 0x10>;
384		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
385		clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
386		clock-names = "pwm", "pclk";
387		pinctrl-names = "default";
388		pinctrl-0 = <&pwm2_pin>;
389		#pwm-cells = <3>;
390		status = "disabled";
391	};
392
393	pwm3: pwm@20040030 {
394		compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
395		reg = <0x20040030 0x10>;
396		interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
397		clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
398		clock-names = "pwm", "pclk";
399		pinctrl-names = "default";
400		pinctrl-0 = <&pwm3_pin>;
401		#pwm-cells = <3>;
402		status = "disabled";
403	};
404
405	pmugrf: syscon@20060000 {
406		compatible = "rockchip,rv1108-pmugrf", "syscon";
407		reg = <0x20060000 0x1000>;
408	};
409
410	usbgrf: syscon@202a0000 {
411		compatible = "rockchip,rv1108-usbgrf", "syscon";
412		reg = <0x202a0000 0x1000>;
413	};
414
415	cru: clock-controller@20200000 {
416		compatible = "rockchip,rv1108-cru";
417		reg = <0x20200000 0x1000>;
418		rockchip,grf = <&grf>;
419		#clock-cells = <1>;
420		#reset-cells = <1>;
421	};
422
423	emmc: dwmmc@30110000 {
424		compatible = "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc";
425		reg = <0x30110000 0x4000>;
426		interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
427		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
428			 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
429		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
430		fifo-depth = <0x100>;
431		max-frequency = <150000000>;
432		status = "disabled";
433	};
434
435	sdio: dwmmc@30120000 {
436		compatible = "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc";
437		reg = <0x30120000 0x4000>;
438		interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
439		clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
440			 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
441		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
442		fifo-depth = <0x100>;
443		max-frequency = <150000000>;
444		status = "disabled";
445	};
446
447	sdmmc: dwmmc@30130000 {
448		compatible = "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc";
449		reg = <0x30130000 0x4000>;
450		interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
451		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
452			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
453		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
454		fifo-depth = <0x100>;
455		max-frequency = <100000000>;
456		pinctrl-names = "default";
457		pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
458		status = "disabled";
459	};
460
461	usb_host_ehci: usb@30140000 {
462		compatible = "generic-ehci";
463		reg = <0x30140000 0x20000>;
464		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
465		clocks = <&cru HCLK_HOST0>, <&u2phy>;
466		clock-names = "usbhost", "utmi";
467		phys = <&u2phy_host>;
468		phy-names = "usb";
469		status = "disabled";
470	};
471
472	usb_host_ohci: usb@30160000 {
473		compatible = "generic-ohci";
474		reg = <0x30160000 0x20000>;
475		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
476		clocks = <&cru HCLK_HOST0>, <&u2phy>;
477		clock-names = "usbhost", "utmi";
478		phys = <&u2phy_host>;
479		phy-names = "usb";
480		status = "disabled";
481	};
482
483	usb_otg: usb@30180000 {
484		compatible = "rockchip,rv1108-usb", "rockchip,rk3066-usb",
485			     "snps,dwc2";
486		reg = <0x30180000 0x40000>;
487		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
488		clocks = <&cru HCLK_OTG>;
489		clock-names = "otg";
490		dr_mode = "otg";
491		g-np-tx-fifo-size = <16>;
492		g-rx-fifo-size = <280>;
493		g-tx-fifo-size = <256 128 128 64 32 16>;
494		g-use-dma;
495		phys = <&u2phy_otg>;
496		phy-names = "usb2-phy";
497		status = "disabled";
498	};
499
500	gic: interrupt-controller@32010000 {
501		compatible = "arm,gic-400";
502		interrupt-controller;
503		#interrupt-cells = <3>;
504		#address-cells = <0>;
505
506		reg = <0x32011000 0x1000>,
507		      <0x32012000 0x2000>,
508		      <0x32014000 0x2000>,
509		      <0x32016000 0x2000>;
510		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
511	};
512
513	pinctrl: pinctrl {
514		compatible = "rockchip,rv1108-pinctrl";
515		rockchip,grf = <&grf>;
516		rockchip,pmu = <&pmugrf>;
517		#address-cells = <1>;
518		#size-cells = <1>;
519		ranges;
520
521		gpio0: gpio0@20030000 {
522			compatible = "rockchip,gpio-bank";
523			reg = <0x20030000 0x100>;
524			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
525			clocks = <&cru PCLK_GPIO0_PMU>;
526
527			gpio-controller;
528			#gpio-cells = <2>;
529
530			interrupt-controller;
531			#interrupt-cells = <2>;
532		};
533
534		gpio1: gpio1@10310000 {
535			compatible = "rockchip,gpio-bank";
536			reg = <0x10310000 0x100>;
537			interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
538			clocks = <&cru PCLK_GPIO1>;
539
540			gpio-controller;
541			#gpio-cells = <2>;
542
543			interrupt-controller;
544			#interrupt-cells = <2>;
545		};
546
547		gpio2: gpio2@10320000 {
548			compatible = "rockchip,gpio-bank";
549			reg = <0x10320000 0x100>;
550			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
551			clocks = <&cru PCLK_GPIO2>;
552
553			gpio-controller;
554			#gpio-cells = <2>;
555
556			interrupt-controller;
557			#interrupt-cells = <2>;
558		};
559
560		gpio3: gpio3@10330000 {
561			compatible = "rockchip,gpio-bank";
562			reg = <0x10330000 0x100>;
563			interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
564			clocks = <&cru PCLK_GPIO3>;
565
566			gpio-controller;
567			#gpio-cells = <2>;
568
569			interrupt-controller;
570			#interrupt-cells = <2>;
571		};
572
573		pcfg_pull_up: pcfg-pull-up {
574			bias-pull-up;
575		};
576
577		pcfg_pull_down: pcfg-pull-down {
578			bias-pull-down;
579		};
580
581		pcfg_pull_none: pcfg-pull-none {
582			bias-disable;
583		};
584
585		pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
586			drive-strength = <8>;
587		};
588
589		pcfg_pull_none_drv_12ma: pcfg-pull-none-drv-12ma {
590			drive-strength = <12>;
591		};
592
593		pcfg_pull_none_smt: pcfg-pull-none-smt {
594			bias-disable;
595			input-schmitt-enable;
596		};
597
598		pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
599			bias-pull-up;
600			drive-strength = <8>;
601		};
602
603		pcfg_pull_none_drv_4ma: pcfg-pull-none-drv-4ma {
604			drive-strength = <4>;
605		};
606
607		pcfg_pull_up_drv_4ma: pcfg-pull-up-drv-4ma {
608			bias-pull-up;
609			drive-strength = <4>;
610		};
611
612		pcfg_output_high: pcfg-output-high {
613			output-high;
614		};
615
616		pcfg_output_low: pcfg-output-low {
617			output-low;
618		};
619
620		pcfg_input_high: pcfg-input-high {
621			bias-pull-up;
622			input-enable;
623		};
624
625		i2c0 {
626			i2c0_xfer: i2c0-xfer {
627				rockchip,pins = <0 RK_PB1 RK_FUNC_1 &pcfg_pull_none_smt>,
628						<0 RK_PB2 RK_FUNC_1 &pcfg_pull_none_smt>;
629			};
630		};
631
632		i2c1 {
633			i2c1_xfer: i2c1-xfer {
634				rockchip,pins = <2 RK_PD3 RK_FUNC_1 &pcfg_pull_up>,
635						<2 RK_PD4 RK_FUNC_1 &pcfg_pull_up>;
636			};
637		};
638
639		i2c2m1 {
640			i2c2m1_xfer: i2c2m1-xfer {
641				rockchip,pins = <0 RK_PC2 RK_FUNC_2 &pcfg_pull_none>,
642						<0 RK_PC6 RK_FUNC_3 &pcfg_pull_none>;
643			};
644
645			i2c2m1_gpio: i2c2m1-gpio {
646				rockchip,pins = <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>,
647						<0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
648			};
649		};
650
651		i2c2m05v {
652			i2c2m05v_xfer: i2c2m05v-xfer {
653				rockchip,pins = <1 RK_PD5 RK_FUNC_2 &pcfg_pull_none>,
654						<1 RK_PD4 RK_FUNC_2 &pcfg_pull_none>;
655			};
656
657			i2c2m05v_gpio: i2c2m05v-gpio {
658				rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>,
659						<1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
660			};
661		};
662
663		i2c3 {
664			i2c3_xfer: i2c3-xfer {
665				rockchip,pins = <0 RK_PB6 RK_FUNC_1 &pcfg_pull_none>,
666						<0 RK_PC4 RK_FUNC_2 &pcfg_pull_none>;
667			};
668		};
669
670		pwm0 {
671			pwm0_pin: pwm0-pin {
672				rockchip,pins = <0 RK_PC5 RK_FUNC_1 &pcfg_pull_none>;
673			};
674		};
675
676		pwm1 {
677			pwm1_pin: pwm1-pin {
678				rockchip,pins = <0 RK_PC4 RK_FUNC_1 &pcfg_pull_none>;
679			};
680		};
681
682		pwm2 {
683			pwm2_pin: pwm2-pin {
684				rockchip,pins = <0 RK_PC6 RK_FUNC_1 &pcfg_pull_none>;
685			};
686		};
687
688		pwm3 {
689			pwm3_pin: pwm3-pin {
690				rockchip,pins = <0 RK_PC0 RK_FUNC_1 &pcfg_pull_none>;
691			};
692		};
693
694		pwm4 {
695			pwm4_pin: pwm4-pin {
696				rockchip,pins = <1 RK_PC1 RK_FUNC_3 &pcfg_pull_none>;
697			};
698		};
699
700		pwm5 {
701			pwm5_pin: pwm5-pin {
702				rockchip,pins = <1 RK_PA7 RK_FUNC_2 &pcfg_pull_none>;
703			};
704		};
705
706		pwm6 {
707			pwm6_pin: pwm6-pin {
708				rockchip,pins = <1 RK_PB0 RK_FUNC_2 &pcfg_pull_none>;
709			};
710		};
711
712		pwm7 {
713			pwm7_pin: pwm7-pin {
714				rockchip,pins = <1 RK_PB1 RK_FUNC_2 &pcfg_pull_none>;
715			};
716		};
717
718		sdmmc {
719			sdmmc_clk: sdmmc-clk {
720				rockchip,pins = <3 RK_PC4 RK_FUNC_1 &pcfg_pull_none_drv_4ma>;
721			};
722
723			sdmmc_cmd: sdmmc-cmd {
724				rockchip,pins = <3 RK_PC5 RK_FUNC_1 &pcfg_pull_up_drv_4ma>;
725			};
726
727			sdmmc_cd: sdmmc-cd {
728				rockchip,pins = <0 RK_PA1 RK_FUNC_1 &pcfg_pull_up_drv_4ma>;
729			};
730
731			sdmmc_bus1: sdmmc-bus1 {
732				rockchip,pins = <3 RK_PC3 RK_FUNC_1 &pcfg_pull_up_drv_4ma>;
733			};
734
735			sdmmc_bus4: sdmmc-bus4 {
736				rockchip,pins = <3 RK_PC3 RK_FUNC_1 &pcfg_pull_up_drv_4ma>,
737						<3 RK_PC2 RK_FUNC_1 &pcfg_pull_up_drv_4ma>,
738						<3 RK_PC1 RK_FUNC_1 &pcfg_pull_up_drv_4ma>,
739						<3 RK_PC0 RK_FUNC_1 &pcfg_pull_up_drv_4ma>;
740			};
741		};
742
743		uart0 {
744			uart0_xfer: uart0-xfer {
745				rockchip,pins = <3 RK_PA6 RK_FUNC_1 &pcfg_pull_up>,
746						<3 RK_PA5 RK_FUNC_1 &pcfg_pull_none>;
747			};
748
749			uart0_cts: uart0-cts {
750				rockchip,pins = <3 RK_PA4 RK_FUNC_1 &pcfg_pull_none>;
751			};
752
753			uart0_rts: uart0-rts {
754				rockchip,pins = <3 RK_PA3 RK_FUNC_1 &pcfg_pull_none>;
755			};
756
757			uart0_rts_gpio: uart0-rts-gpio {
758				rockchip,pins = <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
759			};
760		};
761
762		uart1 {
763			uart1_xfer: uart1-xfer {
764				rockchip,pins = <1 RK_PD3 RK_FUNC_1 &pcfg_pull_up>,
765						<1 RK_PD2 RK_FUNC_1 &pcfg_pull_none>;
766			};
767
768			uart1_cts: uart1-cts {
769				rockchip,pins = <1 RK_PD0 RK_FUNC_1 &pcfg_pull_none>;
770			};
771
772			uart1_rts: uart1-rts {
773				rockchip,pins = <1 RK_PD1 RK_FUNC_1 &pcfg_pull_none>;
774			};
775		};
776
777		uart2m0 {
778			uart2m0_xfer: uart2m0-xfer {
779				rockchip,pins = <2 RK_PD2 RK_FUNC_1 &pcfg_pull_up>,
780						<2 RK_PD1 RK_FUNC_1 &pcfg_pull_none>;
781			};
782		};
783
784		uart2m1 {
785			uart2m1_xfer: uart2m1-xfer {
786				rockchip,pins = <3 RK_PC3 RK_FUNC_2 &pcfg_pull_up>,
787						<3 RK_PC2 RK_FUNC_2 &pcfg_pull_none>;
788			};
789		};
790
791		uart2_5v {
792			uart2_5v_cts: uart2_5v-cts {
793				rockchip,pins = <1 RK_PD4 RK_FUNC_1 &pcfg_pull_none>;
794			};
795
796			uart2_5v_rts: uart2_5v-rts {
797				rockchip,pins = <1 RK_PD5 RK_FUNC_1 &pcfg_pull_none>;
798			};
799		};
800	};
801};
802