17053e06bSLiang Chen// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
27053e06bSLiang Chen/*
37053e06bSLiang Chen * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
47053e06bSLiang Chen */
57053e06bSLiang Chen
67053e06bSLiang Chen#include <dt-bindings/clock/px30-cru.h>
77053e06bSLiang Chen#include <dt-bindings/gpio/gpio.h>
87053e06bSLiang Chen#include <dt-bindings/interrupt-controller/arm-gic.h>
97053e06bSLiang Chen#include <dt-bindings/interrupt-controller/irq.h>
107053e06bSLiang Chen#include <dt-bindings/pinctrl/rockchip.h>
117053e06bSLiang Chen#include <dt-bindings/power/px30-power.h>
127053e06bSLiang Chen#include <dt-bindings/soc/rockchip,boot-mode.h>
13023115cdSHeiko Stuebner#include <dt-bindings/thermal/thermal.h>
147053e06bSLiang Chen
157053e06bSLiang Chen/ {
167053e06bSLiang Chen	compatible = "rockchip,px30";
177053e06bSLiang Chen
187053e06bSLiang Chen	interrupt-parent = <&gic>;
197053e06bSLiang Chen	#address-cells = <2>;
207053e06bSLiang Chen	#size-cells = <2>;
217053e06bSLiang Chen
227053e06bSLiang Chen	aliases {
237053e06bSLiang Chen		ethernet0 = &gmac;
247053e06bSLiang Chen		i2c0 = &i2c0;
257053e06bSLiang Chen		i2c1 = &i2c1;
267053e06bSLiang Chen		i2c2 = &i2c2;
277053e06bSLiang Chen		i2c3 = &i2c3;
287053e06bSLiang Chen		serial0 = &uart0;
297053e06bSLiang Chen		serial1 = &uart1;
307053e06bSLiang Chen		serial2 = &uart2;
317053e06bSLiang Chen		serial3 = &uart3;
327053e06bSLiang Chen		serial4 = &uart4;
337053e06bSLiang Chen		serial5 = &uart5;
347053e06bSLiang Chen		spi0 = &spi0;
357053e06bSLiang Chen		spi1 = &spi1;
367053e06bSLiang Chen	};
377053e06bSLiang Chen
387053e06bSLiang Chen	cpus {
397053e06bSLiang Chen		#address-cells = <2>;
407053e06bSLiang Chen		#size-cells = <0>;
417053e06bSLiang Chen
427053e06bSLiang Chen		cpu0: cpu@0 {
437053e06bSLiang Chen			device_type = "cpu";
4431af04cdSRob Herring			compatible = "arm,cortex-a35";
457053e06bSLiang Chen			reg = <0x0 0x0>;
467053e06bSLiang Chen			enable-method = "psci";
477053e06bSLiang Chen			clocks = <&cru ARMCLK>;
487053e06bSLiang Chen			#cooling-cells = <2>;
497053e06bSLiang Chen			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
507053e06bSLiang Chen			dynamic-power-coefficient = <90>;
517053e06bSLiang Chen			operating-points-v2 = <&cpu0_opp_table>;
527053e06bSLiang Chen		};
537053e06bSLiang Chen
547053e06bSLiang Chen		cpu1: cpu@1 {
557053e06bSLiang Chen			device_type = "cpu";
5631af04cdSRob Herring			compatible = "arm,cortex-a35";
577053e06bSLiang Chen			reg = <0x0 0x1>;
587053e06bSLiang Chen			enable-method = "psci";
597053e06bSLiang Chen			clocks = <&cru ARMCLK>;
607053e06bSLiang Chen			#cooling-cells = <2>;
617053e06bSLiang Chen			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
627053e06bSLiang Chen			dynamic-power-coefficient = <90>;
637053e06bSLiang Chen			operating-points-v2 = <&cpu0_opp_table>;
647053e06bSLiang Chen		};
657053e06bSLiang Chen
667053e06bSLiang Chen		cpu2: cpu@2 {
677053e06bSLiang Chen			device_type = "cpu";
6831af04cdSRob Herring			compatible = "arm,cortex-a35";
697053e06bSLiang Chen			reg = <0x0 0x2>;
707053e06bSLiang Chen			enable-method = "psci";
717053e06bSLiang Chen			clocks = <&cru ARMCLK>;
727053e06bSLiang Chen			#cooling-cells = <2>;
737053e06bSLiang Chen			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
747053e06bSLiang Chen			dynamic-power-coefficient = <90>;
757053e06bSLiang Chen			operating-points-v2 = <&cpu0_opp_table>;
767053e06bSLiang Chen		};
777053e06bSLiang Chen
787053e06bSLiang Chen		cpu3: cpu@3 {
797053e06bSLiang Chen			device_type = "cpu";
8031af04cdSRob Herring			compatible = "arm,cortex-a35";
817053e06bSLiang Chen			reg = <0x0 0x3>;
827053e06bSLiang Chen			enable-method = "psci";
837053e06bSLiang Chen			clocks = <&cru ARMCLK>;
847053e06bSLiang Chen			#cooling-cells = <2>;
857053e06bSLiang Chen			cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
867053e06bSLiang Chen			dynamic-power-coefficient = <90>;
877053e06bSLiang Chen			operating-points-v2 = <&cpu0_opp_table>;
887053e06bSLiang Chen		};
897053e06bSLiang Chen
907053e06bSLiang Chen		idle-states {
917053e06bSLiang Chen			entry-method = "psci";
927053e06bSLiang Chen
937053e06bSLiang Chen			CPU_SLEEP: cpu-sleep {
947053e06bSLiang Chen				compatible = "arm,idle-state";
957053e06bSLiang Chen				local-timer-stop;
967053e06bSLiang Chen				arm,psci-suspend-param = <0x0010000>;
977053e06bSLiang Chen				entry-latency-us = <120>;
987053e06bSLiang Chen				exit-latency-us = <250>;
997053e06bSLiang Chen				min-residency-us = <900>;
1007053e06bSLiang Chen			};
1017053e06bSLiang Chen
1027053e06bSLiang Chen			CLUSTER_SLEEP: cluster-sleep {
1037053e06bSLiang Chen				compatible = "arm,idle-state";
1047053e06bSLiang Chen				local-timer-stop;
1057053e06bSLiang Chen				arm,psci-suspend-param = <0x1010000>;
1067053e06bSLiang Chen				entry-latency-us = <400>;
1077053e06bSLiang Chen				exit-latency-us = <500>;
1087053e06bSLiang Chen				min-residency-us = <2000>;
1097053e06bSLiang Chen			};
1107053e06bSLiang Chen		};
1117053e06bSLiang Chen	};
1127053e06bSLiang Chen
113a30f3d90SKrzysztof Kozlowski	cpu0_opp_table: opp-table-0 {
1147053e06bSLiang Chen		compatible = "operating-points-v2";
1157053e06bSLiang Chen		opp-shared;
1167053e06bSLiang Chen
1177053e06bSLiang Chen		opp-600000000 {
1187053e06bSLiang Chen			opp-hz = /bits/ 64 <600000000>;
1197053e06bSLiang Chen			opp-microvolt = <950000 950000 1350000>;
1207053e06bSLiang Chen			clock-latency-ns = <40000>;
1218554723eSHeiko Stuebner			opp-suspend;
1227053e06bSLiang Chen		};
1237053e06bSLiang Chen		opp-816000000 {
1247053e06bSLiang Chen			opp-hz = /bits/ 64 <816000000>;
1257053e06bSLiang Chen			opp-microvolt = <1050000 1050000 1350000>;
1267053e06bSLiang Chen			clock-latency-ns = <40000>;
1277053e06bSLiang Chen		};
1287053e06bSLiang Chen		opp-1008000000 {
1297053e06bSLiang Chen			opp-hz = /bits/ 64 <1008000000>;
1307053e06bSLiang Chen			opp-microvolt = <1175000 1175000 1350000>;
1317053e06bSLiang Chen			clock-latency-ns = <40000>;
1327053e06bSLiang Chen		};
1337053e06bSLiang Chen		opp-1200000000 {
1347053e06bSLiang Chen			opp-hz = /bits/ 64 <1200000000>;
1357053e06bSLiang Chen			opp-microvolt = <1300000 1300000 1350000>;
1367053e06bSLiang Chen			clock-latency-ns = <40000>;
1377053e06bSLiang Chen		};
1387053e06bSLiang Chen		opp-1296000000 {
1397053e06bSLiang Chen			opp-hz = /bits/ 64 <1296000000>;
1407053e06bSLiang Chen			opp-microvolt = <1350000 1350000 1350000>;
1417053e06bSLiang Chen			clock-latency-ns = <40000>;
1427053e06bSLiang Chen		};
1437053e06bSLiang Chen	};
1447053e06bSLiang Chen
1457053e06bSLiang Chen	arm-pmu {
1465944eb7aSRobin Murphy		compatible = "arm,cortex-a35-pmu";
1477053e06bSLiang Chen		interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1487053e06bSLiang Chen			     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
1497053e06bSLiang Chen			     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
1507053e06bSLiang Chen			     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
1517053e06bSLiang Chen		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
1527053e06bSLiang Chen	};
1537053e06bSLiang Chen
1547053e06bSLiang Chen	display_subsystem: display-subsystem {
1557053e06bSLiang Chen		compatible = "rockchip,display-subsystem";
156967c1464SSandy Huang		ports = <&vopb_out>, <&vopl_out>;
1577053e06bSLiang Chen		status = "disabled";
1587053e06bSLiang Chen	};
1597053e06bSLiang Chen
1607053e06bSLiang Chen	gmac_clkin: external-gmac-clock {
1617053e06bSLiang Chen		compatible = "fixed-clock";
1627053e06bSLiang Chen		clock-frequency = <50000000>;
1637053e06bSLiang Chen		clock-output-names = "gmac_clkin";
1647053e06bSLiang Chen		#clock-cells = <0>;
1657053e06bSLiang Chen	};
1667053e06bSLiang Chen
1677053e06bSLiang Chen	psci {
1687053e06bSLiang Chen		compatible = "arm,psci-1.0";
1697053e06bSLiang Chen		method = "smc";
1707053e06bSLiang Chen	};
1717053e06bSLiang Chen
1727053e06bSLiang Chen	timer {
1737053e06bSLiang Chen		compatible = "arm,armv8-timer";
1747053e06bSLiang Chen		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
1757053e06bSLiang Chen			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
1767053e06bSLiang Chen			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
1777053e06bSLiang Chen			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
1787053e06bSLiang Chen	};
1797053e06bSLiang Chen
180023115cdSHeiko Stuebner	thermal_zones: thermal-zones {
181023115cdSHeiko Stuebner		soc_thermal: soc-thermal {
182023115cdSHeiko Stuebner			polling-delay-passive = <20>;
183023115cdSHeiko Stuebner			polling-delay = <1000>;
184023115cdSHeiko Stuebner			sustainable-power = <750>;
185023115cdSHeiko Stuebner			thermal-sensors = <&tsadc 0>;
186023115cdSHeiko Stuebner
187023115cdSHeiko Stuebner			trips {
188023115cdSHeiko Stuebner				threshold: trip-point-0 {
189023115cdSHeiko Stuebner					temperature = <70000>;
190023115cdSHeiko Stuebner					hysteresis = <2000>;
191023115cdSHeiko Stuebner					type = "passive";
192023115cdSHeiko Stuebner				};
193023115cdSHeiko Stuebner
194023115cdSHeiko Stuebner				target: trip-point-1 {
195023115cdSHeiko Stuebner					temperature = <85000>;
196023115cdSHeiko Stuebner					hysteresis = <2000>;
197023115cdSHeiko Stuebner					type = "passive";
198023115cdSHeiko Stuebner				};
199023115cdSHeiko Stuebner
200023115cdSHeiko Stuebner				soc_crit: soc-crit {
201023115cdSHeiko Stuebner					temperature = <115000>;
202023115cdSHeiko Stuebner					hysteresis = <2000>;
203023115cdSHeiko Stuebner					type = "critical";
204023115cdSHeiko Stuebner				};
205023115cdSHeiko Stuebner			};
206023115cdSHeiko Stuebner
207023115cdSHeiko Stuebner			cooling-maps {
208023115cdSHeiko Stuebner				map0 {
209023115cdSHeiko Stuebner					trip = <&target>;
210023115cdSHeiko Stuebner					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
211023115cdSHeiko Stuebner					contribution = <4096>;
212023115cdSHeiko Stuebner				};
213a07f34a0SHeiko Stuebner
214a07f34a0SHeiko Stuebner				map1 {
215a07f34a0SHeiko Stuebner					trip = <&target>;
216a07f34a0SHeiko Stuebner					cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
217a07f34a0SHeiko Stuebner					contribution = <4096>;
218a07f34a0SHeiko Stuebner				};
219023115cdSHeiko Stuebner			};
220023115cdSHeiko Stuebner		};
221023115cdSHeiko Stuebner
222023115cdSHeiko Stuebner		gpu_thermal: gpu-thermal {
223023115cdSHeiko Stuebner			polling-delay-passive = <100>; /* milliseconds */
224023115cdSHeiko Stuebner			polling-delay = <1000>; /* milliseconds */
225023115cdSHeiko Stuebner			thermal-sensors = <&tsadc 1>;
226023115cdSHeiko Stuebner		};
227023115cdSHeiko Stuebner	};
228023115cdSHeiko Stuebner
2297053e06bSLiang Chen	xin24m: xin24m {
2307053e06bSLiang Chen		compatible = "fixed-clock";
2317053e06bSLiang Chen		#clock-cells = <0>;
2327053e06bSLiang Chen		clock-frequency = <24000000>;
2337053e06bSLiang Chen		clock-output-names = "xin24m";
2347053e06bSLiang Chen	};
2357053e06bSLiang Chen
2367053e06bSLiang Chen	pmu: power-management@ff000000 {
2377053e06bSLiang Chen		compatible = "rockchip,px30-pmu", "syscon", "simple-mfd";
2387053e06bSLiang Chen		reg = <0x0 0xff000000 0x0 0x1000>;
2397053e06bSLiang Chen
2407053e06bSLiang Chen		power: power-controller {
2417053e06bSLiang Chen			compatible = "rockchip,px30-power-controller";
2427053e06bSLiang Chen			#power-domain-cells = <1>;
2437053e06bSLiang Chen			#address-cells = <1>;
2447053e06bSLiang Chen			#size-cells = <0>;
2457053e06bSLiang Chen
2467053e06bSLiang Chen			/* These power domains are grouped by VD_LOGIC */
247d5de0d68SElaine Zhang			power-domain@PX30_PD_USB {
2487053e06bSLiang Chen				reg = <PX30_PD_USB>;
2497053e06bSLiang Chen				clocks = <&cru HCLK_HOST>,
2507053e06bSLiang Chen					 <&cru HCLK_OTG>,
2517053e06bSLiang Chen					 <&cru SCLK_OTG_ADP>;
2527053e06bSLiang Chen				pm_qos = <&qos_usb_host>, <&qos_usb_otg>;
253837188d4SJohan Jonker				#power-domain-cells = <0>;
2547053e06bSLiang Chen			};
255d5de0d68SElaine Zhang			power-domain@PX30_PD_SDCARD {
2567053e06bSLiang Chen				reg = <PX30_PD_SDCARD>;
2577053e06bSLiang Chen				clocks = <&cru HCLK_SDMMC>,
2587053e06bSLiang Chen					 <&cru SCLK_SDMMC>;
2597053e06bSLiang Chen				pm_qos = <&qos_sdmmc>;
260837188d4SJohan Jonker				#power-domain-cells = <0>;
2617053e06bSLiang Chen			};
262d5de0d68SElaine Zhang			power-domain@PX30_PD_GMAC {
2637053e06bSLiang Chen				reg = <PX30_PD_GMAC>;
2647053e06bSLiang Chen				clocks = <&cru ACLK_GMAC>,
2657053e06bSLiang Chen					 <&cru PCLK_GMAC>,
2667053e06bSLiang Chen					 <&cru SCLK_MAC_REF>,
2677053e06bSLiang Chen					 <&cru SCLK_GMAC_RX_TX>;
2687053e06bSLiang Chen				pm_qos = <&qos_gmac>;
269837188d4SJohan Jonker				#power-domain-cells = <0>;
2707053e06bSLiang Chen			};
271d5de0d68SElaine Zhang			power-domain@PX30_PD_MMC_NAND {
2727053e06bSLiang Chen				reg = <PX30_PD_MMC_NAND>;
2737053e06bSLiang Chen				clocks =  <&cru HCLK_NANDC>,
2747053e06bSLiang Chen					  <&cru HCLK_EMMC>,
2757053e06bSLiang Chen					  <&cru HCLK_SDIO>,
2767053e06bSLiang Chen					  <&cru HCLK_SFC>,
2777053e06bSLiang Chen					  <&cru SCLK_EMMC>,
2787053e06bSLiang Chen					  <&cru SCLK_NANDC>,
2797053e06bSLiang Chen					  <&cru SCLK_SDIO>,
2807053e06bSLiang Chen					  <&cru SCLK_SFC>;
2817053e06bSLiang Chen				pm_qos = <&qos_emmc>, <&qos_nand>,
2827053e06bSLiang Chen					 <&qos_sdio>, <&qos_sfc>;
283837188d4SJohan Jonker				#power-domain-cells = <0>;
2847053e06bSLiang Chen			};
285d5de0d68SElaine Zhang			power-domain@PX30_PD_VPU {
2867053e06bSLiang Chen				reg = <PX30_PD_VPU>;
2877053e06bSLiang Chen				clocks = <&cru ACLK_VPU>,
2887053e06bSLiang Chen					 <&cru HCLK_VPU>,
2897053e06bSLiang Chen					 <&cru SCLK_CORE_VPU>;
2907053e06bSLiang Chen				pm_qos = <&qos_vpu>, <&qos_vpu_r128>;
291837188d4SJohan Jonker				#power-domain-cells = <0>;
2927053e06bSLiang Chen			};
293d5de0d68SElaine Zhang			power-domain@PX30_PD_VO {
2947053e06bSLiang Chen				reg = <PX30_PD_VO>;
2957053e06bSLiang Chen				clocks = <&cru ACLK_RGA>,
2967053e06bSLiang Chen					 <&cru ACLK_VOPB>,
2977053e06bSLiang Chen					 <&cru ACLK_VOPL>,
2987053e06bSLiang Chen					 <&cru DCLK_VOPB>,
2997053e06bSLiang Chen					 <&cru DCLK_VOPL>,
3007053e06bSLiang Chen					 <&cru HCLK_RGA>,
3017053e06bSLiang Chen					 <&cru HCLK_VOPB>,
3027053e06bSLiang Chen					 <&cru HCLK_VOPL>,
3037053e06bSLiang Chen					 <&cru PCLK_MIPI_DSI>,
3047053e06bSLiang Chen					 <&cru SCLK_RGA_CORE>,
3057053e06bSLiang Chen					 <&cru SCLK_VOPB_PWM>;
3067053e06bSLiang Chen				pm_qos = <&qos_rga_rd>, <&qos_rga_wr>,
3077053e06bSLiang Chen					 <&qos_vop_m0>, <&qos_vop_m1>;
308837188d4SJohan Jonker				#power-domain-cells = <0>;
3097053e06bSLiang Chen			};
310d5de0d68SElaine Zhang			power-domain@PX30_PD_VI {
3117053e06bSLiang Chen				reg = <PX30_PD_VI>;
3127053e06bSLiang Chen				clocks = <&cru ACLK_CIF>,
3137053e06bSLiang Chen					 <&cru ACLK_ISP>,
3147053e06bSLiang Chen					 <&cru HCLK_CIF>,
3157053e06bSLiang Chen					 <&cru HCLK_ISP>,
3167053e06bSLiang Chen					 <&cru SCLK_ISP>;
3177053e06bSLiang Chen				pm_qos = <&qos_isp_128>, <&qos_isp_rd>,
3187053e06bSLiang Chen					 <&qos_isp_wr>, <&qos_isp_m1>,
3197053e06bSLiang Chen					 <&qos_vip>;
320837188d4SJohan Jonker				#power-domain-cells = <0>;
3217053e06bSLiang Chen			};
322d5de0d68SElaine Zhang			power-domain@PX30_PD_GPU {
3237053e06bSLiang Chen				reg = <PX30_PD_GPU>;
3247053e06bSLiang Chen				clocks = <&cru SCLK_GPU>;
3257053e06bSLiang Chen				pm_qos = <&qos_gpu>;
326837188d4SJohan Jonker				#power-domain-cells = <0>;
3277053e06bSLiang Chen			};
3287053e06bSLiang Chen		};
3297053e06bSLiang Chen	};
3307053e06bSLiang Chen
3317053e06bSLiang Chen	pmugrf: syscon@ff010000 {
3327053e06bSLiang Chen		compatible = "rockchip,px30-pmugrf", "syscon", "simple-mfd";
3337053e06bSLiang Chen		reg = <0x0 0xff010000 0x0 0x1000>;
3347053e06bSLiang Chen		#address-cells = <1>;
3357053e06bSLiang Chen		#size-cells = <1>;
3367053e06bSLiang Chen
3377053e06bSLiang Chen		pmu_io_domains: io-domains {
3387053e06bSLiang Chen			compatible = "rockchip,px30-pmu-io-voltage-domain";
3397053e06bSLiang Chen			status = "disabled";
3407053e06bSLiang Chen		};
3417053e06bSLiang Chen
3427053e06bSLiang Chen		reboot-mode {
3437053e06bSLiang Chen			compatible = "syscon-reboot-mode";
3447053e06bSLiang Chen			offset = <0x200>;
3457053e06bSLiang Chen			mode-bootloader = <BOOT_BL_DOWNLOAD>;
3467053e06bSLiang Chen			mode-fastboot = <BOOT_FASTBOOT>;
3477053e06bSLiang Chen			mode-loader = <BOOT_BL_DOWNLOAD>;
3487053e06bSLiang Chen			mode-normal = <BOOT_NORMAL>;
3497053e06bSLiang Chen			mode-recovery = <BOOT_RECOVERY>;
3507053e06bSLiang Chen		};
3517053e06bSLiang Chen	};
3527053e06bSLiang Chen
3537053e06bSLiang Chen	uart0: serial@ff030000 {
3547053e06bSLiang Chen		compatible = "rockchip,px30-uart", "snps,dw-apb-uart";
3557053e06bSLiang Chen		reg = <0x0 0xff030000 0x0 0x100>;
3567053e06bSLiang Chen		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
3577053e06bSLiang Chen		clocks = <&pmucru SCLK_UART0_PMU>, <&pmucru PCLK_UART0_PMU>;
3587053e06bSLiang Chen		clock-names = "baudclk", "apb_pclk";
3597053e06bSLiang Chen		dmas = <&dmac 0>, <&dmac 1>;
3607053e06bSLiang Chen		dma-names = "tx", "rx";
3617053e06bSLiang Chen		reg-shift = <2>;
3627053e06bSLiang Chen		reg-io-width = <4>;
3637053e06bSLiang Chen		pinctrl-names = "default";
3647053e06bSLiang Chen		pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
3657053e06bSLiang Chen		status = "disabled";
3667053e06bSLiang Chen	};
3677053e06bSLiang Chen
3687053e06bSLiang Chen	i2s1_2ch: i2s@ff070000 {
3697053e06bSLiang Chen		compatible = "rockchip,px30-i2s", "rockchip,rk3066-i2s";
3707053e06bSLiang Chen		reg = <0x0 0xff070000 0x0 0x1000>;
3717053e06bSLiang Chen		interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
3727053e06bSLiang Chen		clocks = <&cru SCLK_I2S1>, <&cru HCLK_I2S1>;
3737053e06bSLiang Chen		clock-names = "i2s_clk", "i2s_hclk";
3747053e06bSLiang Chen		dmas = <&dmac 18>, <&dmac 19>;
3757053e06bSLiang Chen		dma-names = "tx", "rx";
3767053e06bSLiang Chen		pinctrl-names = "default";
3777053e06bSLiang Chen		pinctrl-0 = <&i2s1_2ch_sclk &i2s1_2ch_lrck
3787053e06bSLiang Chen			     &i2s1_2ch_sdi &i2s1_2ch_sdo>;
3797053e06bSLiang Chen		#sound-dai-cells = <0>;
3807053e06bSLiang Chen		status = "disabled";
3817053e06bSLiang Chen	};
3827053e06bSLiang Chen
3837053e06bSLiang Chen	i2s2_2ch: i2s@ff080000 {
3847053e06bSLiang Chen		compatible = "rockchip,px30-i2s", "rockchip,rk3066-i2s";
3857053e06bSLiang Chen		reg = <0x0 0xff080000 0x0 0x1000>;
3867053e06bSLiang Chen		interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
3877053e06bSLiang Chen		clocks = <&cru SCLK_I2S2>, <&cru HCLK_I2S2>;
3887053e06bSLiang Chen		clock-names = "i2s_clk", "i2s_hclk";
3897053e06bSLiang Chen		dmas = <&dmac 20>, <&dmac 21>;
3907053e06bSLiang Chen		dma-names = "tx", "rx";
3917053e06bSLiang Chen		pinctrl-names = "default";
3927053e06bSLiang Chen		pinctrl-0 = <&i2s2_2ch_sclk &i2s2_2ch_lrck
3937053e06bSLiang Chen			     &i2s2_2ch_sdi &i2s2_2ch_sdo>;
3947053e06bSLiang Chen		#sound-dai-cells = <0>;
3957053e06bSLiang Chen		status = "disabled";
3967053e06bSLiang Chen	};
3977053e06bSLiang Chen
3987053e06bSLiang Chen	gic: interrupt-controller@ff131000 {
3997053e06bSLiang Chen		compatible = "arm,gic-400";
4007053e06bSLiang Chen		#interrupt-cells = <3>;
4017053e06bSLiang Chen		#address-cells = <0>;
4027053e06bSLiang Chen		interrupt-controller;
4037053e06bSLiang Chen		reg = <0x0 0xff131000 0 0x1000>,
4047053e06bSLiang Chen		      <0x0 0xff132000 0 0x2000>,
4057053e06bSLiang Chen		      <0x0 0xff134000 0 0x2000>,
4067053e06bSLiang Chen		      <0x0 0xff136000 0 0x2000>;
4077053e06bSLiang Chen		interrupts = <GIC_PPI 9
4087053e06bSLiang Chen		      (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
4097053e06bSLiang Chen	};
4107053e06bSLiang Chen
4117053e06bSLiang Chen	grf: syscon@ff140000 {
4127053e06bSLiang Chen		compatible = "rockchip,px30-grf", "syscon", "simple-mfd";
4137053e06bSLiang Chen		reg = <0x0 0xff140000 0x0 0x1000>;
4147053e06bSLiang Chen		#address-cells = <1>;
4157053e06bSLiang Chen		#size-cells = <1>;
4167053e06bSLiang Chen
4177053e06bSLiang Chen		io_domains: io-domains {
4187053e06bSLiang Chen			compatible = "rockchip,px30-io-voltage-domain";
4197053e06bSLiang Chen			status = "disabled";
4207053e06bSLiang Chen		};
421dbb6f778SMiquel Raynal
422dbb6f778SMiquel Raynal		lvds: lvds {
423dbb6f778SMiquel Raynal			compatible = "rockchip,px30-lvds";
424dbb6f778SMiquel Raynal			phys = <&dsi_dphy>;
425dbb6f778SMiquel Raynal			phy-names = "dphy";
426dbb6f778SMiquel Raynal			rockchip,grf = <&grf>;
427dbb6f778SMiquel Raynal			rockchip,output = "lvds";
428dbb6f778SMiquel Raynal			status = "disabled";
429dbb6f778SMiquel Raynal
430186444c1SHeiko Stuebner			ports {
431186444c1SHeiko Stuebner				#address-cells = <1>;
432186444c1SHeiko Stuebner				#size-cells = <0>;
433186444c1SHeiko Stuebner
434dbb6f778SMiquel Raynal				port@0 {
435dbb6f778SMiquel Raynal					reg = <0>;
436dbb6f778SMiquel Raynal					#address-cells = <1>;
437dbb6f778SMiquel Raynal					#size-cells = <0>;
438dbb6f778SMiquel Raynal
439dbb6f778SMiquel Raynal					lvds_vopb_in: endpoint@0 {
440dbb6f778SMiquel Raynal						reg = <0>;
441dbb6f778SMiquel Raynal						remote-endpoint = <&vopb_out_lvds>;
442dbb6f778SMiquel Raynal					};
443dbb6f778SMiquel Raynal
444dbb6f778SMiquel Raynal					lvds_vopl_in: endpoint@1 {
445dbb6f778SMiquel Raynal						reg = <1>;
446dbb6f778SMiquel Raynal						remote-endpoint = <&vopl_out_lvds>;
447dbb6f778SMiquel Raynal					};
448dbb6f778SMiquel Raynal				};
449dbb6f778SMiquel Raynal			};
4507053e06bSLiang Chen		};
451186444c1SHeiko Stuebner	};
4527053e06bSLiang Chen
4537053e06bSLiang Chen	uart1: serial@ff158000 {
4547053e06bSLiang Chen		compatible = "rockchip,px30-uart", "snps,dw-apb-uart";
4557053e06bSLiang Chen		reg = <0x0 0xff158000 0x0 0x100>;
4567053e06bSLiang Chen		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
4577053e06bSLiang Chen		clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
4587053e06bSLiang Chen		clock-names = "baudclk", "apb_pclk";
4597053e06bSLiang Chen		dmas = <&dmac 2>, <&dmac 3>;
4607053e06bSLiang Chen		dma-names = "tx", "rx";
4617053e06bSLiang Chen		reg-shift = <2>;
4627053e06bSLiang Chen		reg-io-width = <4>;
4637053e06bSLiang Chen		pinctrl-names = "default";
4647053e06bSLiang Chen		pinctrl-0 = <&uart1_xfer &uart1_cts &uart1_rts>;
4657053e06bSLiang Chen		status = "disabled";
4667053e06bSLiang Chen	};
4677053e06bSLiang Chen
4687053e06bSLiang Chen	uart2: serial@ff160000 {
4697053e06bSLiang Chen		compatible = "rockchip,px30-uart", "snps,dw-apb-uart";
4707053e06bSLiang Chen		reg = <0x0 0xff160000 0x0 0x100>;
4717053e06bSLiang Chen		interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
4727053e06bSLiang Chen		clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
4737053e06bSLiang Chen		clock-names = "baudclk", "apb_pclk";
4747053e06bSLiang Chen		dmas = <&dmac 4>, <&dmac 5>;
4757053e06bSLiang Chen		dma-names = "tx", "rx";
4767053e06bSLiang Chen		reg-shift = <2>;
4777053e06bSLiang Chen		reg-io-width = <4>;
4787053e06bSLiang Chen		pinctrl-names = "default";
4797053e06bSLiang Chen		pinctrl-0 = <&uart2m0_xfer>;
4807053e06bSLiang Chen		status = "disabled";
4817053e06bSLiang Chen	};
4827053e06bSLiang Chen
4837053e06bSLiang Chen	uart3: serial@ff168000 {
4847053e06bSLiang Chen		compatible = "rockchip,px30-uart", "snps,dw-apb-uart";
4857053e06bSLiang Chen		reg = <0x0 0xff168000 0x0 0x100>;
4867053e06bSLiang Chen		interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
4877053e06bSLiang Chen		clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
4887053e06bSLiang Chen		clock-names = "baudclk", "apb_pclk";
4897053e06bSLiang Chen		dmas = <&dmac 6>, <&dmac 7>;
4907053e06bSLiang Chen		dma-names = "tx", "rx";
4917053e06bSLiang Chen		reg-shift = <2>;
4927053e06bSLiang Chen		reg-io-width = <4>;
4937053e06bSLiang Chen		pinctrl-names = "default";
4947053e06bSLiang Chen		pinctrl-0 = <&uart3m1_xfer &uart3m1_cts &uart3m1_rts>;
4957053e06bSLiang Chen		status = "disabled";
4967053e06bSLiang Chen	};
4977053e06bSLiang Chen
4987053e06bSLiang Chen	uart4: serial@ff170000 {
4997053e06bSLiang Chen		compatible = "rockchip,px30-uart", "snps,dw-apb-uart";
5007053e06bSLiang Chen		reg = <0x0 0xff170000 0x0 0x100>;
5017053e06bSLiang Chen		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
5027053e06bSLiang Chen		clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
5037053e06bSLiang Chen		clock-names = "baudclk", "apb_pclk";
5047053e06bSLiang Chen		dmas = <&dmac 8>, <&dmac 9>;
5057053e06bSLiang Chen		dma-names = "tx", "rx";
5067053e06bSLiang Chen		reg-shift = <2>;
5077053e06bSLiang Chen		reg-io-width = <4>;
5087053e06bSLiang Chen		pinctrl-names = "default";
5097053e06bSLiang Chen		pinctrl-0 = <&uart4_xfer &uart4_cts &uart4_rts>;
5107053e06bSLiang Chen		status = "disabled";
5117053e06bSLiang Chen	};
5127053e06bSLiang Chen
5137053e06bSLiang Chen	uart5: serial@ff178000 {
5147053e06bSLiang Chen		compatible = "rockchip,px30-uart", "snps,dw-apb-uart";
5157053e06bSLiang Chen		reg = <0x0 0xff178000 0x0 0x100>;
5167053e06bSLiang Chen		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
5177053e06bSLiang Chen		clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
5187053e06bSLiang Chen		clock-names = "baudclk", "apb_pclk";
5197053e06bSLiang Chen		dmas = <&dmac 10>, <&dmac 11>;
5207053e06bSLiang Chen		dma-names = "tx", "rx";
5217053e06bSLiang Chen		reg-shift = <2>;
5227053e06bSLiang Chen		reg-io-width = <4>;
5237053e06bSLiang Chen		pinctrl-names = "default";
5247053e06bSLiang Chen		pinctrl-0 = <&uart5_xfer &uart5_cts &uart5_rts>;
5257053e06bSLiang Chen		status = "disabled";
5267053e06bSLiang Chen	};
5277053e06bSLiang Chen
5287053e06bSLiang Chen	i2c0: i2c@ff180000 {
5297053e06bSLiang Chen		compatible = "rockchip,px30-i2c", "rockchip,rk3399-i2c";
5307053e06bSLiang Chen		reg = <0x0 0xff180000 0x0 0x1000>;
5317053e06bSLiang Chen		clocks =  <&cru SCLK_I2C0>, <&cru PCLK_I2C0>;
5327053e06bSLiang Chen		clock-names = "i2c", "pclk";
5337053e06bSLiang Chen		interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
5347053e06bSLiang Chen		pinctrl-names = "default";
5357053e06bSLiang Chen		pinctrl-0 = <&i2c0_xfer>;
5367053e06bSLiang Chen		#address-cells = <1>;
5377053e06bSLiang Chen		#size-cells = <0>;
5387053e06bSLiang Chen		status = "disabled";
5397053e06bSLiang Chen	};
5407053e06bSLiang Chen
5417053e06bSLiang Chen	i2c1: i2c@ff190000 {
5427053e06bSLiang Chen		compatible = "rockchip,px30-i2c", "rockchip,rk3399-i2c";
5437053e06bSLiang Chen		reg = <0x0 0xff190000 0x0 0x1000>;
5447053e06bSLiang Chen		clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
5457053e06bSLiang Chen		clock-names = "i2c", "pclk";
5467053e06bSLiang Chen		interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
5477053e06bSLiang Chen		pinctrl-names = "default";
5487053e06bSLiang Chen		pinctrl-0 = <&i2c1_xfer>;
5497053e06bSLiang Chen		#address-cells = <1>;
5507053e06bSLiang Chen		#size-cells = <0>;
5517053e06bSLiang Chen		status = "disabled";
5527053e06bSLiang Chen	};
5537053e06bSLiang Chen
5547053e06bSLiang Chen	i2c2: i2c@ff1a0000 {
5557053e06bSLiang Chen		compatible = "rockchip,px30-i2c", "rockchip,rk3399-i2c";
5567053e06bSLiang Chen		reg = <0x0 0xff1a0000 0x0 0x1000>;
5577053e06bSLiang Chen		clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
5587053e06bSLiang Chen		clock-names = "i2c", "pclk";
5597053e06bSLiang Chen		interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
5607053e06bSLiang Chen		pinctrl-names = "default";
5617053e06bSLiang Chen		pinctrl-0 = <&i2c2_xfer>;
5627053e06bSLiang Chen		#address-cells = <1>;
5637053e06bSLiang Chen		#size-cells = <0>;
5647053e06bSLiang Chen		status = "disabled";
5657053e06bSLiang Chen	};
5667053e06bSLiang Chen
5677053e06bSLiang Chen	i2c3: i2c@ff1b0000 {
5687053e06bSLiang Chen		compatible = "rockchip,px30-i2c", "rockchip,rk3399-i2c";
5697053e06bSLiang Chen		reg = <0x0 0xff1b0000 0x0 0x1000>;
5707053e06bSLiang Chen		clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
5717053e06bSLiang Chen		clock-names = "i2c", "pclk";
5727053e06bSLiang Chen		interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
5737053e06bSLiang Chen		pinctrl-names = "default";
5747053e06bSLiang Chen		pinctrl-0 = <&i2c3_xfer>;
5757053e06bSLiang Chen		#address-cells = <1>;
5767053e06bSLiang Chen		#size-cells = <0>;
5777053e06bSLiang Chen		status = "disabled";
5787053e06bSLiang Chen	};
5797053e06bSLiang Chen
5807053e06bSLiang Chen	spi0: spi@ff1d0000 {
5817053e06bSLiang Chen		compatible = "rockchip,px30-spi", "rockchip,rk3066-spi";
5827053e06bSLiang Chen		reg = <0x0 0xff1d0000 0x0 0x1000>;
5837053e06bSLiang Chen		interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
5847053e06bSLiang Chen		clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
5857053e06bSLiang Chen		clock-names = "spiclk", "apb_pclk";
5867053e06bSLiang Chen		dmas = <&dmac 12>, <&dmac 13>;
5877053e06bSLiang Chen		dma-names = "tx", "rx";
5887053e06bSLiang Chen		pinctrl-names = "default";
5897053e06bSLiang Chen		pinctrl-0 = <&spi0_clk &spi0_csn &spi0_miso &spi0_mosi>;
5907053e06bSLiang Chen		#address-cells = <1>;
5917053e06bSLiang Chen		#size-cells = <0>;
5927053e06bSLiang Chen		status = "disabled";
5937053e06bSLiang Chen	};
5947053e06bSLiang Chen
5957053e06bSLiang Chen	spi1: spi@ff1d8000 {
5967053e06bSLiang Chen		compatible = "rockchip,px30-spi", "rockchip,rk3066-spi";
5977053e06bSLiang Chen		reg = <0x0 0xff1d8000 0x0 0x1000>;
5987053e06bSLiang Chen		interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
5997053e06bSLiang Chen		clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
6007053e06bSLiang Chen		clock-names = "spiclk", "apb_pclk";
6017053e06bSLiang Chen		dmas = <&dmac 14>, <&dmac 15>;
6027053e06bSLiang Chen		dma-names = "tx", "rx";
6037053e06bSLiang Chen		pinctrl-names = "default";
6047053e06bSLiang Chen		pinctrl-0 = <&spi1_clk &spi1_csn0 &spi1_csn1 &spi1_miso &spi1_mosi>;
6057053e06bSLiang Chen		#address-cells = <1>;
6067053e06bSLiang Chen		#size-cells = <0>;
6077053e06bSLiang Chen		status = "disabled";
6087053e06bSLiang Chen	};
6097053e06bSLiang Chen
6107053e06bSLiang Chen	wdt: watchdog@ff1e0000 {
611d16c7082SJohan Jonker		compatible = "rockchip,px30-wdt", "snps,dw-wdt";
6127053e06bSLiang Chen		reg = <0x0 0xff1e0000 0x0 0x100>;
6137053e06bSLiang Chen		clocks = <&cru PCLK_WDT_NS>;
6147053e06bSLiang Chen		interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
6157053e06bSLiang Chen		status = "disabled";
6167053e06bSLiang Chen	};
6177053e06bSLiang Chen
6187053e06bSLiang Chen	pwm0: pwm@ff200000 {
6197053e06bSLiang Chen		compatible = "rockchip,px30-pwm", "rockchip,rk3328-pwm";
6207053e06bSLiang Chen		reg = <0x0 0xff200000 0x0 0x10>;
6217053e06bSLiang Chen		clocks = <&cru SCLK_PWM0>, <&cru PCLK_PWM0>;
6227053e06bSLiang Chen		clock-names = "pwm", "pclk";
6237053e06bSLiang Chen		pinctrl-names = "default";
6247053e06bSLiang Chen		pinctrl-0 = <&pwm0_pin>;
6257053e06bSLiang Chen		#pwm-cells = <3>;
6267053e06bSLiang Chen		status = "disabled";
6277053e06bSLiang Chen	};
6287053e06bSLiang Chen
6297053e06bSLiang Chen	pwm1: pwm@ff200010 {
6307053e06bSLiang Chen		compatible = "rockchip,px30-pwm", "rockchip,rk3328-pwm";
6317053e06bSLiang Chen		reg = <0x0 0xff200010 0x0 0x10>;
6327053e06bSLiang Chen		clocks = <&cru SCLK_PWM0>, <&cru PCLK_PWM0>;
6337053e06bSLiang Chen		clock-names = "pwm", "pclk";
6347053e06bSLiang Chen		pinctrl-names = "default";
6357053e06bSLiang Chen		pinctrl-0 = <&pwm1_pin>;
6367053e06bSLiang Chen		#pwm-cells = <3>;
6377053e06bSLiang Chen		status = "disabled";
6387053e06bSLiang Chen	};
6397053e06bSLiang Chen
6407053e06bSLiang Chen	pwm2: pwm@ff200020 {
6417053e06bSLiang Chen		compatible = "rockchip,px30-pwm", "rockchip,rk3328-pwm";
6427053e06bSLiang Chen		reg = <0x0 0xff200020 0x0 0x10>;
6437053e06bSLiang Chen		clocks = <&cru SCLK_PWM0>, <&cru PCLK_PWM0>;
6447053e06bSLiang Chen		clock-names = "pwm", "pclk";
6457053e06bSLiang Chen		pinctrl-names = "default";
6467053e06bSLiang Chen		pinctrl-0 = <&pwm2_pin>;
6477053e06bSLiang Chen		#pwm-cells = <3>;
6487053e06bSLiang Chen		status = "disabled";
6497053e06bSLiang Chen	};
6507053e06bSLiang Chen
6517053e06bSLiang Chen	pwm3: pwm@ff200030 {
6527053e06bSLiang Chen		compatible = "rockchip,px30-pwm", "rockchip,rk3328-pwm";
6537053e06bSLiang Chen		reg = <0x0 0xff200030 0x0 0x10>;
6547053e06bSLiang Chen		clocks = <&cru SCLK_PWM0>, <&cru PCLK_PWM0>;
6557053e06bSLiang Chen		clock-names = "pwm", "pclk";
6567053e06bSLiang Chen		pinctrl-names = "default";
6577053e06bSLiang Chen		pinctrl-0 = <&pwm3_pin>;
6587053e06bSLiang Chen		#pwm-cells = <3>;
6597053e06bSLiang Chen		status = "disabled";
6607053e06bSLiang Chen	};
6617053e06bSLiang Chen
6627053e06bSLiang Chen	pwm4: pwm@ff208000 {
6637053e06bSLiang Chen		compatible = "rockchip,px30-pwm", "rockchip,rk3328-pwm";
6647053e06bSLiang Chen		reg = <0x0 0xff208000 0x0 0x10>;
6657053e06bSLiang Chen		clocks = <&cru SCLK_PWM1>, <&cru PCLK_PWM1>;
6667053e06bSLiang Chen		clock-names = "pwm", "pclk";
6677053e06bSLiang Chen		pinctrl-names = "default";
6687053e06bSLiang Chen		pinctrl-0 = <&pwm4_pin>;
6697053e06bSLiang Chen		#pwm-cells = <3>;
6707053e06bSLiang Chen		status = "disabled";
6717053e06bSLiang Chen	};
6727053e06bSLiang Chen
6737053e06bSLiang Chen	pwm5: pwm@ff208010 {
6747053e06bSLiang Chen		compatible = "rockchip,px30-pwm", "rockchip,rk3328-pwm";
6757053e06bSLiang Chen		reg = <0x0 0xff208010 0x0 0x10>;
6767053e06bSLiang Chen		clocks = <&cru SCLK_PWM1>, <&cru PCLK_PWM1>;
6777053e06bSLiang Chen		clock-names = "pwm", "pclk";
6787053e06bSLiang Chen		pinctrl-names = "default";
6797053e06bSLiang Chen		pinctrl-0 = <&pwm5_pin>;
6807053e06bSLiang Chen		#pwm-cells = <3>;
6817053e06bSLiang Chen		status = "disabled";
6827053e06bSLiang Chen	};
6837053e06bSLiang Chen
6847053e06bSLiang Chen	pwm6: pwm@ff208020 {
6857053e06bSLiang Chen		compatible = "rockchip,px30-pwm", "rockchip,rk3328-pwm";
6867053e06bSLiang Chen		reg = <0x0 0xff208020 0x0 0x10>;
6877053e06bSLiang Chen		clocks = <&cru SCLK_PWM1>, <&cru PCLK_PWM1>;
6887053e06bSLiang Chen		clock-names = "pwm", "pclk";
6897053e06bSLiang Chen		pinctrl-names = "default";
6907053e06bSLiang Chen		pinctrl-0 = <&pwm6_pin>;
6917053e06bSLiang Chen		#pwm-cells = <3>;
6927053e06bSLiang Chen		status = "disabled";
6937053e06bSLiang Chen	};
6947053e06bSLiang Chen
6957053e06bSLiang Chen	pwm7: pwm@ff208030 {
6967053e06bSLiang Chen		compatible = "rockchip,px30-pwm", "rockchip,rk3328-pwm";
6977053e06bSLiang Chen		reg = <0x0 0xff208030 0x0 0x10>;
6987053e06bSLiang Chen		clocks = <&cru SCLK_PWM1>, <&cru PCLK_PWM1>;
6997053e06bSLiang Chen		clock-names = "pwm", "pclk";
7007053e06bSLiang Chen		pinctrl-names = "default";
7017053e06bSLiang Chen		pinctrl-0 = <&pwm7_pin>;
7027053e06bSLiang Chen		#pwm-cells = <3>;
7037053e06bSLiang Chen		status = "disabled";
7047053e06bSLiang Chen	};
7057053e06bSLiang Chen
7067053e06bSLiang Chen	rktimer: timer@ff210000 {
7077053e06bSLiang Chen		compatible = "rockchip,px30-timer", "rockchip,rk3288-timer";
7087053e06bSLiang Chen		reg = <0x0 0xff210000 0x0 0x1000>;
7097053e06bSLiang Chen		interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
7107053e06bSLiang Chen		clocks = <&cru PCLK_TIMER>, <&cru SCLK_TIMER0>;
7117053e06bSLiang Chen		clock-names = "pclk", "timer";
7127053e06bSLiang Chen	};
7137053e06bSLiang Chen
714*8fd94150SKrzysztof Kozlowski	dmac: dma-controller@ff240000 {
7157053e06bSLiang Chen		compatible = "arm,pl330", "arm,primecell";
7167053e06bSLiang Chen		reg = <0x0 0xff240000 0x0 0x4000>;
7177053e06bSLiang Chen		interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
7187053e06bSLiang Chen			     <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
719505af918SSugar Zhang		arm,pl330-periph-burst;
7207053e06bSLiang Chen		clocks = <&cru ACLK_DMAC>;
7217053e06bSLiang Chen		clock-names = "apb_pclk";
7227053e06bSLiang Chen		#dma-cells = <1>;
7237053e06bSLiang Chen	};
7247053e06bSLiang Chen
725023115cdSHeiko Stuebner	tsadc: tsadc@ff280000 {
726023115cdSHeiko Stuebner		compatible = "rockchip,px30-tsadc";
727023115cdSHeiko Stuebner		reg = <0x0 0xff280000 0x0 0x100>;
728023115cdSHeiko Stuebner		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
729023115cdSHeiko Stuebner		assigned-clocks = <&cru SCLK_TSADC>;
730023115cdSHeiko Stuebner		assigned-clock-rates = <50000>;
731023115cdSHeiko Stuebner		clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
732023115cdSHeiko Stuebner		clock-names = "tsadc", "apb_pclk";
733023115cdSHeiko Stuebner		resets = <&cru SRST_TSADC>;
734023115cdSHeiko Stuebner		reset-names = "tsadc-apb";
735023115cdSHeiko Stuebner		rockchip,grf = <&grf>;
736023115cdSHeiko Stuebner		rockchip,hw-tshut-temp = <120000>;
737023115cdSHeiko Stuebner		pinctrl-names = "init", "default", "sleep";
7382bc65fefSJohan Jonker		pinctrl-0 = <&tsadc_otp_pin>;
739023115cdSHeiko Stuebner		pinctrl-1 = <&tsadc_otp_out>;
7402bc65fefSJohan Jonker		pinctrl-2 = <&tsadc_otp_pin>;
741023115cdSHeiko Stuebner		#thermal-sensor-cells = <1>;
742023115cdSHeiko Stuebner		status = "disabled";
743023115cdSHeiko Stuebner	};
744023115cdSHeiko Stuebner
7457053e06bSLiang Chen	saradc: saradc@ff288000 {
7467053e06bSLiang Chen		compatible = "rockchip,px30-saradc", "rockchip,rk3399-saradc";
7477053e06bSLiang Chen		reg = <0x0 0xff288000 0x0 0x100>;
7487053e06bSLiang Chen		interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
7497053e06bSLiang Chen		#io-channel-cells = <1>;
7507053e06bSLiang Chen		clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
7517053e06bSLiang Chen		clock-names = "saradc", "apb_pclk";
7527053e06bSLiang Chen		resets = <&cru SRST_SARADC_P>;
7537053e06bSLiang Chen		reset-names = "saradc-apb";
7547053e06bSLiang Chen		status = "disabled";
7557053e06bSLiang Chen	};
7567053e06bSLiang Chen
757fbb78418SHeiko Stuebner	otp: nvmem@ff290000 {
758fbb78418SHeiko Stuebner		compatible = "rockchip,px30-otp";
759fbb78418SHeiko Stuebner		reg = <0x0 0xff290000 0x0 0x4000>;
760fbb78418SHeiko Stuebner		clocks = <&cru SCLK_OTP_USR>, <&cru PCLK_OTP_NS>,
761fbb78418SHeiko Stuebner			 <&cru PCLK_OTP_PHY>;
762fbb78418SHeiko Stuebner		clock-names = "otp", "apb_pclk", "phy";
763fbb78418SHeiko Stuebner		resets = <&cru SRST_OTP_PHY>;
764fbb78418SHeiko Stuebner		reset-names = "phy";
765fbb78418SHeiko Stuebner		#address-cells = <1>;
766fbb78418SHeiko Stuebner		#size-cells = <1>;
767fbb78418SHeiko Stuebner
768fbb78418SHeiko Stuebner		/* Data cells */
769fbb78418SHeiko Stuebner		cpu_id: id@7 {
770fbb78418SHeiko Stuebner			reg = <0x07 0x10>;
771fbb78418SHeiko Stuebner		};
772fbb78418SHeiko Stuebner		cpu_leakage: cpu-leakage@17 {
773fbb78418SHeiko Stuebner			reg = <0x17 0x1>;
774fbb78418SHeiko Stuebner		};
775fbb78418SHeiko Stuebner		performance: performance@1e {
776fbb78418SHeiko Stuebner			reg = <0x1e 0x1>;
777fbb78418SHeiko Stuebner			bits = <4 3>;
778fbb78418SHeiko Stuebner		};
779fbb78418SHeiko Stuebner	};
780fbb78418SHeiko Stuebner
7817053e06bSLiang Chen	cru: clock-controller@ff2b0000 {
7827053e06bSLiang Chen		compatible = "rockchip,px30-cru";
7837053e06bSLiang Chen		reg = <0x0 0xff2b0000 0x0 0x1000>;
78445cb61b4SHeiko Stuebner		clocks = <&xin24m>, <&pmucru PLL_GPLL>;
78545cb61b4SHeiko Stuebner		clock-names = "xin24m", "gpll";
7867053e06bSLiang Chen		rockchip,grf = <&grf>;
7877053e06bSLiang Chen		#clock-cells = <1>;
7887053e06bSLiang Chen		#reset-cells = <1>;
7897053e06bSLiang Chen
79045cb61b4SHeiko Stuebner		assigned-clocks = <&cru PLL_NPLL>,
79145cb61b4SHeiko Stuebner			<&cru ACLK_BUS_PRE>, <&cru ACLK_PERI_PRE>,
79245cb61b4SHeiko Stuebner			<&cru HCLK_BUS_PRE>, <&cru HCLK_PERI_PRE>,
79345cb61b4SHeiko Stuebner			<&cru PCLK_BUS_PRE>, <&cru SCLK_GPU>;
79445cb61b4SHeiko Stuebner
79545cb61b4SHeiko Stuebner		assigned-clock-rates = <1188000000>,
79645cb61b4SHeiko Stuebner			<200000000>, <200000000>,
79745cb61b4SHeiko Stuebner			<150000000>, <150000000>,
79845cb61b4SHeiko Stuebner			<100000000>, <200000000>;
7997053e06bSLiang Chen	};
8007053e06bSLiang Chen
8017053e06bSLiang Chen	pmucru: clock-controller@ff2bc000 {
8027053e06bSLiang Chen		compatible = "rockchip,px30-pmucru";
8037053e06bSLiang Chen		reg = <0x0 0xff2bc000 0x0 0x1000>;
80445cb61b4SHeiko Stuebner		clocks = <&xin24m>;
80545cb61b4SHeiko Stuebner		clock-names = "xin24m";
8067053e06bSLiang Chen		rockchip,grf = <&grf>;
8077053e06bSLiang Chen		#clock-cells = <1>;
8087053e06bSLiang Chen		#reset-cells = <1>;
8097053e06bSLiang Chen
8107053e06bSLiang Chen		assigned-clocks =
8117053e06bSLiang Chen			<&pmucru PLL_GPLL>, <&pmucru PCLK_PMU_PRE>,
81245cb61b4SHeiko Stuebner			<&pmucru SCLK_WIFI_PMU>;
8137053e06bSLiang Chen		assigned-clock-rates =
8147053e06bSLiang Chen			<1200000000>, <100000000>,
81545cb61b4SHeiko Stuebner			<26000000>;
8167053e06bSLiang Chen	};
8177053e06bSLiang Chen
818f952b45bSHeiko Stuebner	usb2phy_grf: syscon@ff2c0000 {
819f952b45bSHeiko Stuebner		compatible = "rockchip,px30-usb2phy-grf", "syscon",
820f952b45bSHeiko Stuebner			     "simple-mfd";
821f952b45bSHeiko Stuebner		reg = <0x0 0xff2c0000 0x0 0x10000>;
822f952b45bSHeiko Stuebner		#address-cells = <1>;
823f952b45bSHeiko Stuebner		#size-cells = <1>;
824f952b45bSHeiko Stuebner
8258c3d6425SJohan Jonker		u2phy: usb2phy@100 {
826f952b45bSHeiko Stuebner			compatible = "rockchip,px30-usb2phy";
827f952b45bSHeiko Stuebner			reg = <0x100 0x20>;
828f952b45bSHeiko Stuebner			clocks = <&pmucru SCLK_USBPHY_REF>;
829f952b45bSHeiko Stuebner			clock-names = "phyclk";
830f952b45bSHeiko Stuebner			#clock-cells = <0>;
831f952b45bSHeiko Stuebner			assigned-clocks = <&cru USB480M>;
832f952b45bSHeiko Stuebner			assigned-clock-parents = <&u2phy>;
833f952b45bSHeiko Stuebner			clock-output-names = "usb480m_phy";
834f952b45bSHeiko Stuebner			status = "disabled";
835f952b45bSHeiko Stuebner
836f952b45bSHeiko Stuebner			u2phy_host: host-port {
837f952b45bSHeiko Stuebner				#phy-cells = <0>;
838f952b45bSHeiko Stuebner				interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
839f952b45bSHeiko Stuebner				interrupt-names = "linestate";
840f952b45bSHeiko Stuebner				status = "disabled";
841f952b45bSHeiko Stuebner			};
842f952b45bSHeiko Stuebner
843f952b45bSHeiko Stuebner			u2phy_otg: otg-port {
844f952b45bSHeiko Stuebner				#phy-cells = <0>;
845f952b45bSHeiko Stuebner				interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
846f952b45bSHeiko Stuebner					     <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
847f952b45bSHeiko Stuebner					     <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
848f952b45bSHeiko Stuebner				interrupt-names = "otg-bvalid", "otg-id",
849f952b45bSHeiko Stuebner						  "linestate";
850f952b45bSHeiko Stuebner				status = "disabled";
851f952b45bSHeiko Stuebner			};
852f952b45bSHeiko Stuebner		};
853f952b45bSHeiko Stuebner	};
854f952b45bSHeiko Stuebner
8557e90ccecSMiquel Raynal	dsi_dphy: phy@ff2e0000 {
8567e90ccecSMiquel Raynal		compatible = "rockchip,px30-dsi-dphy";
8577e90ccecSMiquel Raynal		reg = <0x0 0xff2e0000 0x0 0x10000>;
8587e90ccecSMiquel Raynal		clocks = <&pmucru SCLK_MIPIDSIPHY_REF>, <&cru PCLK_MIPIDSIPHY>;
8597e90ccecSMiquel Raynal		clock-names = "ref", "pclk";
8607e90ccecSMiquel Raynal		resets = <&cru SRST_MIPIDSIPHY_P>;
8617e90ccecSMiquel Raynal		reset-names = "apb";
8627e90ccecSMiquel Raynal		#phy-cells = <0>;
8637e90ccecSMiquel Raynal		power-domains = <&power PX30_PD_VO>;
8647e90ccecSMiquel Raynal		status = "disabled";
8657e90ccecSMiquel Raynal	};
8667e90ccecSMiquel Raynal
867e2425dccSHeiko Stuebner	csi_dphy: phy@ff2f0000 {
868e2425dccSHeiko Stuebner		compatible = "rockchip,px30-csi-dphy";
869e2425dccSHeiko Stuebner		reg = <0x0 0xff2f0000 0x0 0x4000>;
870e2425dccSHeiko Stuebner		clocks = <&cru PCLK_MIPICSIPHY>;
871e2425dccSHeiko Stuebner		clock-names = "pclk";
872e2425dccSHeiko Stuebner		#phy-cells = <0>;
873e2425dccSHeiko Stuebner		power-domains = <&power PX30_PD_VI>;
874e2425dccSHeiko Stuebner		resets = <&cru SRST_MIPICSIPHY_P>;
875e2425dccSHeiko Stuebner		reset-names = "apb";
876e2425dccSHeiko Stuebner		rockchip,grf = <&grf>;
877e2425dccSHeiko Stuebner		status = "disabled";
878e2425dccSHeiko Stuebner	};
879e2425dccSHeiko Stuebner
880bb598133SHeiko Stuebner	usb20_otg: usb@ff300000 {
881bb598133SHeiko Stuebner		compatible = "rockchip,px30-usb", "rockchip,rk3066-usb",
882bb598133SHeiko Stuebner			     "snps,dwc2";
883bb598133SHeiko Stuebner		reg = <0x0 0xff300000 0x0 0x40000>;
884bb598133SHeiko Stuebner		interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
885bb598133SHeiko Stuebner		clocks = <&cru HCLK_OTG>;
886bb598133SHeiko Stuebner		clock-names = "otg";
887bb598133SHeiko Stuebner		dr_mode = "otg";
888bb598133SHeiko Stuebner		g-np-tx-fifo-size = <16>;
889bb598133SHeiko Stuebner		g-rx-fifo-size = <280>;
890bb598133SHeiko Stuebner		g-tx-fifo-size = <256 128 128 64 32 16>;
891f952b45bSHeiko Stuebner		phys = <&u2phy_otg>;
892f952b45bSHeiko Stuebner		phy-names = "usb2-phy";
893bb598133SHeiko Stuebner		power-domains = <&power PX30_PD_USB>;
894bb598133SHeiko Stuebner		status = "disabled";
895bb598133SHeiko Stuebner	};
896bb598133SHeiko Stuebner
8977053e06bSLiang Chen	usb_host0_ehci: usb@ff340000 {
8987053e06bSLiang Chen		compatible = "generic-ehci";
8997053e06bSLiang Chen		reg = <0x0 0xff340000 0x0 0x10000>;
9007053e06bSLiang Chen		interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
9017053e06bSLiang Chen		clocks = <&cru HCLK_HOST>;
902f952b45bSHeiko Stuebner		phys = <&u2phy_host>;
903f952b45bSHeiko Stuebner		phy-names = "usb";
9047053e06bSLiang Chen		power-domains = <&power PX30_PD_USB>;
9057053e06bSLiang Chen		status = "disabled";
9067053e06bSLiang Chen	};
9077053e06bSLiang Chen
9087053e06bSLiang Chen	usb_host0_ohci: usb@ff350000 {
9097053e06bSLiang Chen		compatible = "generic-ohci";
9107053e06bSLiang Chen		reg = <0x0 0xff350000 0x0 0x10000>;
9117053e06bSLiang Chen		interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
9127053e06bSLiang Chen		clocks = <&cru HCLK_HOST>;
913f952b45bSHeiko Stuebner		phys = <&u2phy_host>;
914f952b45bSHeiko Stuebner		phy-names = "usb";
9157053e06bSLiang Chen		power-domains = <&power PX30_PD_USB>;
9167053e06bSLiang Chen		status = "disabled";
9177053e06bSLiang Chen	};
9187053e06bSLiang Chen
9197053e06bSLiang Chen	gmac: ethernet@ff360000 {
9207053e06bSLiang Chen		compatible = "rockchip,px30-gmac";
9217053e06bSLiang Chen		reg = <0x0 0xff360000 0x0 0x10000>;
9227053e06bSLiang Chen		interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
9237053e06bSLiang Chen		interrupt-names = "macirq";
9247053e06bSLiang Chen		clocks = <&cru SCLK_GMAC>, <&cru SCLK_GMAC_RX_TX>,
9257053e06bSLiang Chen			 <&cru SCLK_GMAC_RX_TX>, <&cru SCLK_MAC_REF>,
9267053e06bSLiang Chen			 <&cru SCLK_MAC_REFOUT>, <&cru ACLK_GMAC>,
9277053e06bSLiang Chen			 <&cru PCLK_GMAC>, <&cru SCLK_GMAC_RMII>;
9287053e06bSLiang Chen		clock-names = "stmmaceth", "mac_clk_rx",
9297053e06bSLiang Chen			      "mac_clk_tx", "clk_mac_ref",
9307053e06bSLiang Chen			      "clk_mac_refout", "aclk_mac",
9317053e06bSLiang Chen			      "pclk_mac", "clk_mac_speed";
9327053e06bSLiang Chen		rockchip,grf = <&grf>;
9337053e06bSLiang Chen		phy-mode = "rmii";
9347053e06bSLiang Chen		pinctrl-names = "default";
9357053e06bSLiang Chen		pinctrl-0 = <&rmii_pins &mac_refclk_12ma>;
9367053e06bSLiang Chen		power-domains = <&power PX30_PD_GMAC>;
9377053e06bSLiang Chen		resets = <&cru SRST_GMAC_A>;
9387053e06bSLiang Chen		reset-names = "stmmaceth";
9397053e06bSLiang Chen		status = "disabled";
9407053e06bSLiang Chen	};
9417053e06bSLiang Chen
9423ef7c255SJohan Jonker	sdmmc: mmc@ff370000 {
9437053e06bSLiang Chen		compatible = "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc";
9447053e06bSLiang Chen		reg = <0x0 0xff370000 0x0 0x4000>;
9457053e06bSLiang Chen		interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
9467053e06bSLiang Chen		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
9477053e06bSLiang Chen			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
9487f214735SJohan Jonker		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
949fb0ab17fSJohan Jonker		bus-width = <4>;
9507053e06bSLiang Chen		fifo-depth = <0x100>;
9517053e06bSLiang Chen		max-frequency = <150000000>;
9527053e06bSLiang Chen		pinctrl-names = "default";
9537053e06bSLiang Chen		pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_det &sdmmc_bus4>;
9547053e06bSLiang Chen		power-domains = <&power PX30_PD_SDCARD>;
9557053e06bSLiang Chen		status = "disabled";
9567053e06bSLiang Chen	};
9577053e06bSLiang Chen
9583ef7c255SJohan Jonker	sdio: mmc@ff380000 {
9597053e06bSLiang Chen		compatible = "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc";
9607053e06bSLiang Chen		reg = <0x0 0xff380000 0x0 0x4000>;
9617053e06bSLiang Chen		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
9627053e06bSLiang Chen		clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
9637053e06bSLiang Chen			 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
9647f214735SJohan Jonker		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
965fb0ab17fSJohan Jonker		bus-width = <4>;
9667053e06bSLiang Chen		fifo-depth = <0x100>;
9677053e06bSLiang Chen		max-frequency = <150000000>;
9687053e06bSLiang Chen		pinctrl-names = "default";
9697053e06bSLiang Chen		pinctrl-0 = <&sdio_bus4 &sdio_cmd &sdio_clk>;
9707053e06bSLiang Chen		power-domains = <&power PX30_PD_MMC_NAND>;
9717053e06bSLiang Chen		status = "disabled";
9727053e06bSLiang Chen	};
9737053e06bSLiang Chen
9743ef7c255SJohan Jonker	emmc: mmc@ff390000 {
9757053e06bSLiang Chen		compatible = "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc";
9767053e06bSLiang Chen		reg = <0x0 0xff390000 0x0 0x4000>;
9777053e06bSLiang Chen		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
9787053e06bSLiang Chen		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
9797053e06bSLiang Chen			 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
9807f214735SJohan Jonker		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
981fb0ab17fSJohan Jonker		bus-width = <8>;
9827053e06bSLiang Chen		fifo-depth = <0x100>;
9837053e06bSLiang Chen		max-frequency = <150000000>;
984cdfebb27SHeiko Stuebner		pinctrl-names = "default";
985cdfebb27SHeiko Stuebner		pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
9867053e06bSLiang Chen		power-domains = <&power PX30_PD_MMC_NAND>;
9877053e06bSLiang Chen		status = "disabled";
9887053e06bSLiang Chen	};
9897053e06bSLiang Chen
9904d97b78aSChris Morgan	sfc: spi@ff3a0000 {
9914d97b78aSChris Morgan		compatible = "rockchip,sfc";
9924d97b78aSChris Morgan		reg = <0x0 0xff3a0000 0x0 0x4000>;
9934d97b78aSChris Morgan		interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
9944d97b78aSChris Morgan		clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
9954d97b78aSChris Morgan		clock-names = "clk_sfc", "hclk_sfc";
9964d97b78aSChris Morgan		pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bus4>;
9974d97b78aSChris Morgan		pinctrl-names = "default";
9984d97b78aSChris Morgan		power-domains = <&power PX30_PD_MMC_NAND>;
9994d97b78aSChris Morgan		status = "disabled";
10004d97b78aSChris Morgan	};
10014d97b78aSChris Morgan
1002d00e6e22SYifeng Zhao	nfc: nand-controller@ff3b0000 {
1003d00e6e22SYifeng Zhao		compatible = "rockchip,px30-nfc";
1004d00e6e22SYifeng Zhao		reg = <0x0 0xff3b0000 0x0 0x4000>;
1005d00e6e22SYifeng Zhao		interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
1006d00e6e22SYifeng Zhao		clocks = <&cru HCLK_NANDC>, <&cru SCLK_NANDC>;
1007d00e6e22SYifeng Zhao		clock-names = "ahb", "nfc";
1008d00e6e22SYifeng Zhao		assigned-clocks = <&cru SCLK_NANDC>;
1009d00e6e22SYifeng Zhao		assigned-clock-rates = <150000000>;
1010d00e6e22SYifeng Zhao		pinctrl-names = "default";
1011d00e6e22SYifeng Zhao		pinctrl-0 = <&flash_ale &flash_bus8 &flash_cle &flash_cs0
1012d00e6e22SYifeng Zhao			     &flash_rdn &flash_rdy &flash_wrn &flash_dqs>;
1013d00e6e22SYifeng Zhao		power-domains = <&power PX30_PD_MMC_NAND>;
1014d00e6e22SYifeng Zhao		status = "disabled";
1015d00e6e22SYifeng Zhao	};
1016d00e6e22SYifeng Zhao
1017a30f3d90SKrzysztof Kozlowski	gpu_opp_table: opp-table-1 {
1018f43e351cSMaciej Matuszczyk		compatible = "operating-points-v2";
1019f43e351cSMaciej Matuszczyk
1020f43e351cSMaciej Matuszczyk		opp-200000000 {
1021f43e351cSMaciej Matuszczyk			opp-hz = /bits/ 64 <200000000>;
1022f43e351cSMaciej Matuszczyk			opp-microvolt = <950000>;
1023f43e351cSMaciej Matuszczyk		};
1024f43e351cSMaciej Matuszczyk		opp-300000000 {
1025f43e351cSMaciej Matuszczyk			opp-hz = /bits/ 64 <300000000>;
1026f43e351cSMaciej Matuszczyk			opp-microvolt = <975000>;
1027f43e351cSMaciej Matuszczyk		};
1028f43e351cSMaciej Matuszczyk		opp-400000000 {
1029f43e351cSMaciej Matuszczyk			opp-hz = /bits/ 64 <400000000>;
1030f43e351cSMaciej Matuszczyk			opp-microvolt = <1050000>;
1031f43e351cSMaciej Matuszczyk		};
1032f43e351cSMaciej Matuszczyk		opp-480000000 {
1033f43e351cSMaciej Matuszczyk			opp-hz = /bits/ 64 <480000000>;
1034f43e351cSMaciej Matuszczyk			opp-microvolt = <1125000>;
1035f43e351cSMaciej Matuszczyk		};
1036f43e351cSMaciej Matuszczyk	};
1037f43e351cSMaciej Matuszczyk
1038a07f34a0SHeiko Stuebner	gpu: gpu@ff400000 {
1039a07f34a0SHeiko Stuebner		compatible = "rockchip,px30-mali", "arm,mali-bifrost";
1040a07f34a0SHeiko Stuebner		reg = <0x0 0xff400000 0x0 0x4000>;
1041a07f34a0SHeiko Stuebner		interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
1042a07f34a0SHeiko Stuebner			     <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
1043a07f34a0SHeiko Stuebner			     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
1044a07f34a0SHeiko Stuebner		interrupt-names = "job", "mmu", "gpu";
1045a07f34a0SHeiko Stuebner		clocks = <&cru SCLK_GPU>;
1046a07f34a0SHeiko Stuebner		#cooling-cells = <2>;
1047a07f34a0SHeiko Stuebner		power-domains = <&power PX30_PD_GPU>;
1048f43e351cSMaciej Matuszczyk		operating-points-v2 = <&gpu_opp_table>;
1049a07f34a0SHeiko Stuebner		status = "disabled";
1050a07f34a0SHeiko Stuebner	};
1051a07f34a0SHeiko Stuebner
10526b4b2af5SPaul Kocialkowski	vpu: video-codec@ff442000 {
10536b4b2af5SPaul Kocialkowski		compatible = "rockchip,px30-vpu";
10546b4b2af5SPaul Kocialkowski		reg = <0x0 0xff442000 0x0 0x800>;
10556b4b2af5SPaul Kocialkowski		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
10566b4b2af5SPaul Kocialkowski			     <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
10576b4b2af5SPaul Kocialkowski		interrupt-names = "vepu", "vdpu";
10586b4b2af5SPaul Kocialkowski		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
10596b4b2af5SPaul Kocialkowski		clock-names = "aclk", "hclk";
10606b4b2af5SPaul Kocialkowski		iommus = <&vpu_mmu>;
10616b4b2af5SPaul Kocialkowski		power-domains = <&power PX30_PD_VPU>;
10626b4b2af5SPaul Kocialkowski	};
10636b4b2af5SPaul Kocialkowski
10646b4b2af5SPaul Kocialkowski	vpu_mmu: iommu@ff442800 {
10656b4b2af5SPaul Kocialkowski		compatible = "rockchip,iommu";
10666b4b2af5SPaul Kocialkowski		reg = <0x0 0xff442800 0x0 0x100>;
10676b4b2af5SPaul Kocialkowski		interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
10686b4b2af5SPaul Kocialkowski		clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
10696b4b2af5SPaul Kocialkowski		clock-names = "aclk", "iface";
10706b4b2af5SPaul Kocialkowski		#iommu-cells = <0>;
10716b4b2af5SPaul Kocialkowski		power-domains = <&power PX30_PD_VPU>;
10726b4b2af5SPaul Kocialkowski	};
10736b4b2af5SPaul Kocialkowski
1074cc5912abSHeiko Stuebner	dsi: dsi@ff450000 {
1075a39891a6SDavid Heidelberg		compatible = "rockchip,px30-mipi-dsi", "snps,dw-mipi-dsi";
1076cc5912abSHeiko Stuebner		reg = <0x0 0xff450000 0x0 0x10000>;
1077cc5912abSHeiko Stuebner		interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
1078cc5912abSHeiko Stuebner		clocks = <&cru PCLK_MIPI_DSI>;
1079cc5912abSHeiko Stuebner		clock-names = "pclk";
1080cc5912abSHeiko Stuebner		phys = <&dsi_dphy>;
1081cc5912abSHeiko Stuebner		phy-names = "dphy";
1082cc5912abSHeiko Stuebner		power-domains = <&power PX30_PD_VO>;
1083cc5912abSHeiko Stuebner		resets = <&cru SRST_MIPIDSI_HOST_P>;
1084cc5912abSHeiko Stuebner		reset-names = "apb";
1085cc5912abSHeiko Stuebner		rockchip,grf = <&grf>;
1086cc5912abSHeiko Stuebner		#address-cells = <1>;
1087cc5912abSHeiko Stuebner		#size-cells = <0>;
1088cc5912abSHeiko Stuebner		status = "disabled";
1089cc5912abSHeiko Stuebner
1090cc5912abSHeiko Stuebner		ports {
1091cc5912abSHeiko Stuebner			#address-cells = <1>;
1092cc5912abSHeiko Stuebner			#size-cells = <0>;
1093cc5912abSHeiko Stuebner
1094cc5912abSHeiko Stuebner			port@0 {
1095cc5912abSHeiko Stuebner				reg = <0>;
1096cc5912abSHeiko Stuebner				#address-cells = <1>;
1097cc5912abSHeiko Stuebner				#size-cells = <0>;
1098cc5912abSHeiko Stuebner
1099cc5912abSHeiko Stuebner				dsi_in_vopb: endpoint@0 {
1100cc5912abSHeiko Stuebner					reg = <0>;
1101cc5912abSHeiko Stuebner					remote-endpoint = <&vopb_out_dsi>;
1102cc5912abSHeiko Stuebner				};
1103cc5912abSHeiko Stuebner
1104cc5912abSHeiko Stuebner				dsi_in_vopl: endpoint@1 {
1105cc5912abSHeiko Stuebner					reg = <1>;
1106cc5912abSHeiko Stuebner					remote-endpoint = <&vopl_out_dsi>;
1107cc5912abSHeiko Stuebner				};
1108cc5912abSHeiko Stuebner			};
1109cc5912abSHeiko Stuebner		};
1110cc5912abSHeiko Stuebner	};
1111cc5912abSHeiko Stuebner
11127053e06bSLiang Chen	vopb: vop@ff460000 {
11137053e06bSLiang Chen		compatible = "rockchip,px30-vop-big";
11147053e06bSLiang Chen		reg = <0x0 0xff460000 0x0 0xefc>;
11157053e06bSLiang Chen		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
11167053e06bSLiang Chen		clocks = <&cru ACLK_VOPB>, <&cru DCLK_VOPB>,
11177053e06bSLiang Chen			 <&cru HCLK_VOPB>;
11187053e06bSLiang Chen		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
1119967c1464SSandy Huang		resets = <&cru SRST_VOPB_A>, <&cru SRST_VOPB_H>, <&cru SRST_VOPB>;
1120967c1464SSandy Huang		reset-names = "axi", "ahb", "dclk";
11217053e06bSLiang Chen		iommus = <&vopb_mmu>;
11227053e06bSLiang Chen		power-domains = <&power PX30_PD_VO>;
11237053e06bSLiang Chen		status = "disabled";
1124967c1464SSandy Huang
1125967c1464SSandy Huang		vopb_out: port {
1126967c1464SSandy Huang			#address-cells = <1>;
1127967c1464SSandy Huang			#size-cells = <0>;
1128cc5912abSHeiko Stuebner
1129cc5912abSHeiko Stuebner			vopb_out_dsi: endpoint@0 {
1130cc5912abSHeiko Stuebner				reg = <0>;
1131cc5912abSHeiko Stuebner				remote-endpoint = <&dsi_in_vopb>;
1132cc5912abSHeiko Stuebner			};
1133dbb6f778SMiquel Raynal
1134dbb6f778SMiquel Raynal			vopb_out_lvds: endpoint@1 {
1135dbb6f778SMiquel Raynal				reg = <1>;
1136dbb6f778SMiquel Raynal				remote-endpoint = <&lvds_vopb_in>;
1137dbb6f778SMiquel Raynal			};
1138967c1464SSandy Huang		};
11397053e06bSLiang Chen	};
11407053e06bSLiang Chen
11417053e06bSLiang Chen	vopb_mmu: iommu@ff460f00 {
11427053e06bSLiang Chen		compatible = "rockchip,iommu";
11437053e06bSLiang Chen		reg = <0x0 0xff460f00 0x0 0x100>;
11447053e06bSLiang Chen		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
11457053e06bSLiang Chen		clocks = <&cru ACLK_VOPB>, <&cru HCLK_VOPB>;
11468e57eed2SHeiko Stuebner		clock-names = "aclk", "iface";
11477053e06bSLiang Chen		power-domains = <&power PX30_PD_VO>;
11487053e06bSLiang Chen		#iommu-cells = <0>;
11497053e06bSLiang Chen		status = "disabled";
11507053e06bSLiang Chen	};
11517053e06bSLiang Chen
11527053e06bSLiang Chen	vopl: vop@ff470000 {
11537053e06bSLiang Chen		compatible = "rockchip,px30-vop-lit";
11547053e06bSLiang Chen		reg = <0x0 0xff470000 0x0 0xefc>;
11557053e06bSLiang Chen		interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
11567053e06bSLiang Chen		clocks = <&cru ACLK_VOPL>, <&cru DCLK_VOPL>,
11577053e06bSLiang Chen			 <&cru HCLK_VOPL>;
11587053e06bSLiang Chen		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
1159967c1464SSandy Huang		resets = <&cru SRST_VOPL_A>, <&cru SRST_VOPL_H>, <&cru SRST_VOPL>;
1160967c1464SSandy Huang		reset-names = "axi", "ahb", "dclk";
11617053e06bSLiang Chen		iommus = <&vopl_mmu>;
11627053e06bSLiang Chen		power-domains = <&power PX30_PD_VO>;
11637053e06bSLiang Chen		status = "disabled";
1164967c1464SSandy Huang
1165967c1464SSandy Huang		vopl_out: port {
1166967c1464SSandy Huang			#address-cells = <1>;
1167967c1464SSandy Huang			#size-cells = <0>;
1168cc5912abSHeiko Stuebner
1169cc5912abSHeiko Stuebner			vopl_out_dsi: endpoint@0 {
1170cc5912abSHeiko Stuebner				reg = <0>;
1171cc5912abSHeiko Stuebner				remote-endpoint = <&dsi_in_vopl>;
1172cc5912abSHeiko Stuebner			};
1173dbb6f778SMiquel Raynal
1174dbb6f778SMiquel Raynal			vopl_out_lvds: endpoint@1 {
1175dbb6f778SMiquel Raynal				reg = <1>;
1176dbb6f778SMiquel Raynal				remote-endpoint = <&lvds_vopl_in>;
1177dbb6f778SMiquel Raynal			};
1178967c1464SSandy Huang		};
11797053e06bSLiang Chen	};
11807053e06bSLiang Chen
11817053e06bSLiang Chen	vopl_mmu: iommu@ff470f00 {
11827053e06bSLiang Chen		compatible = "rockchip,iommu";
11837053e06bSLiang Chen		reg = <0x0 0xff470f00 0x0 0x100>;
1184656c6483SSandy Huang		interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
11857053e06bSLiang Chen		clocks = <&cru ACLK_VOPL>, <&cru HCLK_VOPL>;
11868e57eed2SHeiko Stuebner		clock-names = "aclk", "iface";
11877053e06bSLiang Chen		power-domains = <&power PX30_PD_VO>;
11887053e06bSLiang Chen		#iommu-cells = <0>;
11897053e06bSLiang Chen		status = "disabled";
11907053e06bSLiang Chen	};
11917053e06bSLiang Chen
11928df7b453SHeiko Stuebner	isp: isp@ff4a0000 {
11938df7b453SHeiko Stuebner		compatible = "rockchip,px30-cif-isp"; /*rk3326-rkisp1*/
11948df7b453SHeiko Stuebner		reg = <0x0 0xff4a0000 0x0 0x8000>;
11958df7b453SHeiko Stuebner		interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
11968df7b453SHeiko Stuebner			     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
11978df7b453SHeiko Stuebner			     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
11988df7b453SHeiko Stuebner		interrupt-names = "isp", "mi", "mipi";
11998df7b453SHeiko Stuebner		clocks = <&cru SCLK_ISP>,
12008df7b453SHeiko Stuebner			 <&cru ACLK_ISP>,
12018df7b453SHeiko Stuebner			 <&cru HCLK_ISP>,
12028df7b453SHeiko Stuebner			 <&cru PCLK_ISP>;
12038df7b453SHeiko Stuebner		clock-names = "isp", "aclk", "hclk", "pclk";
12048df7b453SHeiko Stuebner		iommus = <&isp_mmu>;
12058df7b453SHeiko Stuebner		phys = <&csi_dphy>;
12068df7b453SHeiko Stuebner		phy-names = "dphy";
12078df7b453SHeiko Stuebner		power-domains = <&power PX30_PD_VI>;
12088df7b453SHeiko Stuebner		status = "disabled";
12098df7b453SHeiko Stuebner
12108df7b453SHeiko Stuebner		ports {
12118df7b453SHeiko Stuebner			#address-cells = <1>;
12128df7b453SHeiko Stuebner			#size-cells = <0>;
12138df7b453SHeiko Stuebner
12148df7b453SHeiko Stuebner			port@0 {
12158df7b453SHeiko Stuebner				reg = <0>;
12168df7b453SHeiko Stuebner				#address-cells = <1>;
12178df7b453SHeiko Stuebner				#size-cells = <0>;
12188df7b453SHeiko Stuebner			};
12198df7b453SHeiko Stuebner		};
12208df7b453SHeiko Stuebner	};
12218df7b453SHeiko Stuebner
12228df7b453SHeiko Stuebner	isp_mmu: iommu@ff4a8000 {
12238df7b453SHeiko Stuebner		compatible = "rockchip,iommu";
12248df7b453SHeiko Stuebner		reg = <0x0 0xff4a8000 0x0 0x100>;
12258df7b453SHeiko Stuebner		interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
12268df7b453SHeiko Stuebner		clocks = <&cru ACLK_ISP>, <&cru HCLK_ISP>;
12278df7b453SHeiko Stuebner		clock-names = "aclk", "iface";
12288df7b453SHeiko Stuebner		power-domains = <&power PX30_PD_VI>;
12298df7b453SHeiko Stuebner		rockchip,disable-mmu-reset;
12308df7b453SHeiko Stuebner		#iommu-cells = <0>;
12318df7b453SHeiko Stuebner	};
12328df7b453SHeiko Stuebner
12337053e06bSLiang Chen	qos_gmac: qos@ff518000 {
12346c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
12357053e06bSLiang Chen		reg = <0x0 0xff518000 0x0 0x20>;
12367053e06bSLiang Chen	};
12377053e06bSLiang Chen
12387053e06bSLiang Chen	qos_gpu: qos@ff520000 {
12396c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
12407053e06bSLiang Chen		reg = <0x0 0xff520000 0x0 0x20>;
12417053e06bSLiang Chen	};
12427053e06bSLiang Chen
12437053e06bSLiang Chen	qos_sdmmc: qos@ff52c000 {
12446c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
12457053e06bSLiang Chen		reg = <0x0 0xff52c000 0x0 0x20>;
12467053e06bSLiang Chen	};
12477053e06bSLiang Chen
12487053e06bSLiang Chen	qos_emmc: qos@ff538000 {
12496c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
12507053e06bSLiang Chen		reg = <0x0 0xff538000 0x0 0x20>;
12517053e06bSLiang Chen	};
12527053e06bSLiang Chen
12537053e06bSLiang Chen	qos_nand: qos@ff538080 {
12546c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
12557053e06bSLiang Chen		reg = <0x0 0xff538080 0x0 0x20>;
12567053e06bSLiang Chen	};
12577053e06bSLiang Chen
12587053e06bSLiang Chen	qos_sdio: qos@ff538100 {
12596c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
12607053e06bSLiang Chen		reg = <0x0 0xff538100 0x0 0x20>;
12617053e06bSLiang Chen	};
12627053e06bSLiang Chen
12637053e06bSLiang Chen	qos_sfc: qos@ff538180 {
12646c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
12657053e06bSLiang Chen		reg = <0x0 0xff538180 0x0 0x20>;
12667053e06bSLiang Chen	};
12677053e06bSLiang Chen
12687053e06bSLiang Chen	qos_usb_host: qos@ff540000 {
12696c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
12707053e06bSLiang Chen		reg = <0x0 0xff540000 0x0 0x20>;
12717053e06bSLiang Chen	};
12727053e06bSLiang Chen
12737053e06bSLiang Chen	qos_usb_otg: qos@ff540080 {
12746c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
12757053e06bSLiang Chen		reg = <0x0 0xff540080 0x0 0x20>;
12767053e06bSLiang Chen	};
12777053e06bSLiang Chen
12787053e06bSLiang Chen	qos_isp_128: qos@ff548000 {
12796c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
12807053e06bSLiang Chen		reg = <0x0 0xff548000 0x0 0x20>;
12817053e06bSLiang Chen	};
12827053e06bSLiang Chen
12837053e06bSLiang Chen	qos_isp_rd: qos@ff548080 {
12846c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
12857053e06bSLiang Chen		reg = <0x0 0xff548080 0x0 0x20>;
12867053e06bSLiang Chen	};
12877053e06bSLiang Chen
12887053e06bSLiang Chen	qos_isp_wr: qos@ff548100 {
12896c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
12907053e06bSLiang Chen		reg = <0x0 0xff548100 0x0 0x20>;
12917053e06bSLiang Chen	};
12927053e06bSLiang Chen
12937053e06bSLiang Chen	qos_isp_m1: qos@ff548180 {
12946c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
12957053e06bSLiang Chen		reg = <0x0 0xff548180 0x0 0x20>;
12967053e06bSLiang Chen	};
12977053e06bSLiang Chen
12987053e06bSLiang Chen	qos_vip: qos@ff548200 {
12996c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
13007053e06bSLiang Chen		reg = <0x0 0xff548200 0x0 0x20>;
13017053e06bSLiang Chen	};
13027053e06bSLiang Chen
13037053e06bSLiang Chen	qos_rga_rd: qos@ff550000 {
13046c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
13057053e06bSLiang Chen		reg = <0x0 0xff550000 0x0 0x20>;
13067053e06bSLiang Chen	};
13077053e06bSLiang Chen
13087053e06bSLiang Chen	qos_rga_wr: qos@ff550080 {
13096c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
13107053e06bSLiang Chen		reg = <0x0 0xff550080 0x0 0x20>;
13117053e06bSLiang Chen	};
13127053e06bSLiang Chen
13137053e06bSLiang Chen	qos_vop_m0: qos@ff550100 {
13146c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
13157053e06bSLiang Chen		reg = <0x0 0xff550100 0x0 0x20>;
13167053e06bSLiang Chen	};
13177053e06bSLiang Chen
13187053e06bSLiang Chen	qos_vop_m1: qos@ff550180 {
13196c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
13207053e06bSLiang Chen		reg = <0x0 0xff550180 0x0 0x20>;
13217053e06bSLiang Chen	};
13227053e06bSLiang Chen
13237053e06bSLiang Chen	qos_vpu: qos@ff558000 {
13246c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
13257053e06bSLiang Chen		reg = <0x0 0xff558000 0x0 0x20>;
13267053e06bSLiang Chen	};
13277053e06bSLiang Chen
13287053e06bSLiang Chen	qos_vpu_r128: qos@ff558080 {
13296c3ae9f9SJohan Jonker		compatible = "rockchip,px30-qos", "syscon";
13307053e06bSLiang Chen		reg = <0x0 0xff558080 0x0 0x20>;
13317053e06bSLiang Chen	};
13327053e06bSLiang Chen
13337053e06bSLiang Chen	pinctrl: pinctrl {
13347053e06bSLiang Chen		compatible = "rockchip,px30-pinctrl";
13357053e06bSLiang Chen		rockchip,grf = <&grf>;
13367053e06bSLiang Chen		rockchip,pmu = <&pmugrf>;
13377053e06bSLiang Chen		#address-cells = <2>;
13387053e06bSLiang Chen		#size-cells = <2>;
13397053e06bSLiang Chen		ranges;
13407053e06bSLiang Chen
1341ec3028e7SJohan Jonker		gpio0: gpio@ff040000 {
13427053e06bSLiang Chen			compatible = "rockchip,gpio-bank";
13437053e06bSLiang Chen			reg = <0x0 0xff040000 0x0 0x100>;
13447053e06bSLiang Chen			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
13457053e06bSLiang Chen			clocks = <&pmucru PCLK_GPIO0_PMU>;
13467053e06bSLiang Chen			gpio-controller;
13477053e06bSLiang Chen			#gpio-cells = <2>;
13487053e06bSLiang Chen
13497053e06bSLiang Chen			interrupt-controller;
13507053e06bSLiang Chen			#interrupt-cells = <2>;
13517053e06bSLiang Chen		};
13527053e06bSLiang Chen
1353ec3028e7SJohan Jonker		gpio1: gpio@ff250000 {
13547053e06bSLiang Chen			compatible = "rockchip,gpio-bank";
13557053e06bSLiang Chen			reg = <0x0 0xff250000 0x0 0x100>;
13567053e06bSLiang Chen			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
13577053e06bSLiang Chen			clocks = <&cru PCLK_GPIO1>;
13587053e06bSLiang Chen			gpio-controller;
13597053e06bSLiang Chen			#gpio-cells = <2>;
13607053e06bSLiang Chen
13617053e06bSLiang Chen			interrupt-controller;
13627053e06bSLiang Chen			#interrupt-cells = <2>;
13637053e06bSLiang Chen		};
13647053e06bSLiang Chen
1365ec3028e7SJohan Jonker		gpio2: gpio@ff260000 {
13667053e06bSLiang Chen			compatible = "rockchip,gpio-bank";
13677053e06bSLiang Chen			reg = <0x0 0xff260000 0x0 0x100>;
13687053e06bSLiang Chen			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
13697053e06bSLiang Chen			clocks = <&cru PCLK_GPIO2>;
13707053e06bSLiang Chen			gpio-controller;
13717053e06bSLiang Chen			#gpio-cells = <2>;
13727053e06bSLiang Chen
13737053e06bSLiang Chen			interrupt-controller;
13747053e06bSLiang Chen			#interrupt-cells = <2>;
13757053e06bSLiang Chen		};
13767053e06bSLiang Chen
1377ec3028e7SJohan Jonker		gpio3: gpio@ff270000 {
13787053e06bSLiang Chen			compatible = "rockchip,gpio-bank";
13797053e06bSLiang Chen			reg = <0x0 0xff270000 0x0 0x100>;
13807053e06bSLiang Chen			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
13817053e06bSLiang Chen			clocks = <&cru PCLK_GPIO3>;
13827053e06bSLiang Chen			gpio-controller;
13837053e06bSLiang Chen			#gpio-cells = <2>;
13847053e06bSLiang Chen
13857053e06bSLiang Chen			interrupt-controller;
13867053e06bSLiang Chen			#interrupt-cells = <2>;
13877053e06bSLiang Chen		};
13887053e06bSLiang Chen
13897053e06bSLiang Chen		pcfg_pull_up: pcfg-pull-up {
13907053e06bSLiang Chen			bias-pull-up;
13917053e06bSLiang Chen		};
13927053e06bSLiang Chen
13937053e06bSLiang Chen		pcfg_pull_down: pcfg-pull-down {
13947053e06bSLiang Chen			bias-pull-down;
13957053e06bSLiang Chen		};
13967053e06bSLiang Chen
13977053e06bSLiang Chen		pcfg_pull_none: pcfg-pull-none {
13987053e06bSLiang Chen			bias-disable;
13997053e06bSLiang Chen		};
14007053e06bSLiang Chen
14017053e06bSLiang Chen		pcfg_pull_none_2ma: pcfg-pull-none-2ma {
14027053e06bSLiang Chen			bias-disable;
14037053e06bSLiang Chen			drive-strength = <2>;
14047053e06bSLiang Chen		};
14057053e06bSLiang Chen
14067053e06bSLiang Chen		pcfg_pull_up_2ma: pcfg-pull-up-2ma {
14077053e06bSLiang Chen			bias-pull-up;
14087053e06bSLiang Chen			drive-strength = <2>;
14097053e06bSLiang Chen		};
14107053e06bSLiang Chen
14117053e06bSLiang Chen		pcfg_pull_up_4ma: pcfg-pull-up-4ma {
14127053e06bSLiang Chen			bias-pull-up;
14137053e06bSLiang Chen			drive-strength = <4>;
14147053e06bSLiang Chen		};
14157053e06bSLiang Chen
14167053e06bSLiang Chen		pcfg_pull_none_4ma: pcfg-pull-none-4ma {
14177053e06bSLiang Chen			bias-disable;
14187053e06bSLiang Chen			drive-strength = <4>;
14197053e06bSLiang Chen		};
14207053e06bSLiang Chen
14217053e06bSLiang Chen		pcfg_pull_down_4ma: pcfg-pull-down-4ma {
14227053e06bSLiang Chen			bias-pull-down;
14237053e06bSLiang Chen			drive-strength = <4>;
14247053e06bSLiang Chen		};
14257053e06bSLiang Chen
14267053e06bSLiang Chen		pcfg_pull_none_8ma: pcfg-pull-none-8ma {
14277053e06bSLiang Chen			bias-disable;
14287053e06bSLiang Chen			drive-strength = <8>;
14297053e06bSLiang Chen		};
14307053e06bSLiang Chen
14317053e06bSLiang Chen		pcfg_pull_up_8ma: pcfg-pull-up-8ma {
14327053e06bSLiang Chen			bias-pull-up;
14337053e06bSLiang Chen			drive-strength = <8>;
14347053e06bSLiang Chen		};
14357053e06bSLiang Chen
14367053e06bSLiang Chen		pcfg_pull_none_12ma: pcfg-pull-none-12ma {
14377053e06bSLiang Chen			bias-disable;
14387053e06bSLiang Chen			drive-strength = <12>;
14397053e06bSLiang Chen		};
14407053e06bSLiang Chen
14417053e06bSLiang Chen		pcfg_pull_up_12ma: pcfg-pull-up-12ma {
14427053e06bSLiang Chen			bias-pull-up;
14437053e06bSLiang Chen			drive-strength = <12>;
14447053e06bSLiang Chen		};
14457053e06bSLiang Chen
14467053e06bSLiang Chen		pcfg_pull_none_smt: pcfg-pull-none-smt {
14477053e06bSLiang Chen			bias-disable;
14487053e06bSLiang Chen			input-schmitt-enable;
14497053e06bSLiang Chen		};
14507053e06bSLiang Chen
14517053e06bSLiang Chen		pcfg_output_high: pcfg-output-high {
14527053e06bSLiang Chen			output-high;
14537053e06bSLiang Chen		};
14547053e06bSLiang Chen
14557053e06bSLiang Chen		pcfg_output_low: pcfg-output-low {
14567053e06bSLiang Chen			output-low;
14577053e06bSLiang Chen		};
14587053e06bSLiang Chen
14597053e06bSLiang Chen		pcfg_input_high: pcfg-input-high {
14607053e06bSLiang Chen			bias-pull-up;
14617053e06bSLiang Chen			input-enable;
14627053e06bSLiang Chen		};
14637053e06bSLiang Chen
14647053e06bSLiang Chen		pcfg_input: pcfg-input {
14657053e06bSLiang Chen			input-enable;
14667053e06bSLiang Chen		};
14677053e06bSLiang Chen
14687053e06bSLiang Chen		i2c0 {
14697053e06bSLiang Chen			i2c0_xfer: i2c0-xfer {
14707053e06bSLiang Chen				rockchip,pins =
14717053e06bSLiang Chen					<0 RK_PB0 1 &pcfg_pull_none_smt>,
14727053e06bSLiang Chen					<0 RK_PB1 1 &pcfg_pull_none_smt>;
14737053e06bSLiang Chen			};
14747053e06bSLiang Chen		};
14757053e06bSLiang Chen
14767053e06bSLiang Chen		i2c1 {
14777053e06bSLiang Chen			i2c1_xfer: i2c1-xfer {
14787053e06bSLiang Chen				rockchip,pins =
14797053e06bSLiang Chen					<0 RK_PC2 1 &pcfg_pull_none_smt>,
14807053e06bSLiang Chen					<0 RK_PC3 1 &pcfg_pull_none_smt>;
14817053e06bSLiang Chen			};
14827053e06bSLiang Chen		};
14837053e06bSLiang Chen
14847053e06bSLiang Chen		i2c2 {
14857053e06bSLiang Chen			i2c2_xfer: i2c2-xfer {
14867053e06bSLiang Chen				rockchip,pins =
14877053e06bSLiang Chen					<2 RK_PB7 2 &pcfg_pull_none_smt>,
14887053e06bSLiang Chen					<2 RK_PC0 2 &pcfg_pull_none_smt>;
14897053e06bSLiang Chen			};
14907053e06bSLiang Chen		};
14917053e06bSLiang Chen
14927053e06bSLiang Chen		i2c3 {
14937053e06bSLiang Chen			i2c3_xfer: i2c3-xfer {
14947053e06bSLiang Chen				rockchip,pins =
14957053e06bSLiang Chen					<1 RK_PB4 4 &pcfg_pull_none_smt>,
14967053e06bSLiang Chen					<1 RK_PB5 4 &pcfg_pull_none_smt>;
14977053e06bSLiang Chen			};
14987053e06bSLiang Chen		};
14997053e06bSLiang Chen
15007053e06bSLiang Chen		tsadc {
15012bc65fefSJohan Jonker			tsadc_otp_pin: tsadc-otp-pin {
15027053e06bSLiang Chen				rockchip,pins =
15037053e06bSLiang Chen					<0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
15047053e06bSLiang Chen			};
15057053e06bSLiang Chen
15067053e06bSLiang Chen			tsadc_otp_out: tsadc-otp-out {
15077053e06bSLiang Chen				rockchip,pins =
15087053e06bSLiang Chen					<0 RK_PA6 1 &pcfg_pull_none>;
15097053e06bSLiang Chen			};
15107053e06bSLiang Chen		};
15117053e06bSLiang Chen
15127053e06bSLiang Chen		uart0 {
15137053e06bSLiang Chen			uart0_xfer: uart0-xfer {
15147053e06bSLiang Chen				rockchip,pins =
15157053e06bSLiang Chen					<0 RK_PB2 1 &pcfg_pull_up>,
15167053e06bSLiang Chen					<0 RK_PB3 1 &pcfg_pull_up>;
15177053e06bSLiang Chen			};
15187053e06bSLiang Chen
15197053e06bSLiang Chen			uart0_cts: uart0-cts {
15207053e06bSLiang Chen				rockchip,pins =
15217053e06bSLiang Chen					<0 RK_PB4 1 &pcfg_pull_none>;
15227053e06bSLiang Chen			};
15237053e06bSLiang Chen
15247053e06bSLiang Chen			uart0_rts: uart0-rts {
15257053e06bSLiang Chen				rockchip,pins =
15267053e06bSLiang Chen					<0 RK_PB5 1 &pcfg_pull_none>;
15277053e06bSLiang Chen			};
15287053e06bSLiang Chen		};
15297053e06bSLiang Chen
15307053e06bSLiang Chen		uart1 {
15317053e06bSLiang Chen			uart1_xfer: uart1-xfer {
15327053e06bSLiang Chen				rockchip,pins =
15337053e06bSLiang Chen					<1 RK_PC1 1 &pcfg_pull_up>,
15347053e06bSLiang Chen					<1 RK_PC0 1 &pcfg_pull_up>;
15357053e06bSLiang Chen			};
15367053e06bSLiang Chen
15377053e06bSLiang Chen			uart1_cts: uart1-cts {
15387053e06bSLiang Chen				rockchip,pins =
15397053e06bSLiang Chen					<1 RK_PC2 1 &pcfg_pull_none>;
15407053e06bSLiang Chen			};
15417053e06bSLiang Chen
15427053e06bSLiang Chen			uart1_rts: uart1-rts {
15437053e06bSLiang Chen				rockchip,pins =
15447053e06bSLiang Chen					<1 RK_PC3 1 &pcfg_pull_none>;
15457053e06bSLiang Chen			};
15467053e06bSLiang Chen		};
15477053e06bSLiang Chen
15487053e06bSLiang Chen		uart2-m0 {
15497053e06bSLiang Chen			uart2m0_xfer: uart2m0-xfer {
15507053e06bSLiang Chen				rockchip,pins =
15517053e06bSLiang Chen					<1 RK_PD2 2 &pcfg_pull_up>,
15527053e06bSLiang Chen					<1 RK_PD3 2 &pcfg_pull_up>;
15537053e06bSLiang Chen			};
15547053e06bSLiang Chen		};
15557053e06bSLiang Chen
15567053e06bSLiang Chen		uart2-m1 {
15577053e06bSLiang Chen			uart2m1_xfer: uart2m1-xfer {
15587053e06bSLiang Chen				rockchip,pins =
15597053e06bSLiang Chen					<2 RK_PB4 2 &pcfg_pull_up>,
15607053e06bSLiang Chen					<2 RK_PB6 2 &pcfg_pull_up>;
15617053e06bSLiang Chen			};
15627053e06bSLiang Chen		};
15637053e06bSLiang Chen
15647053e06bSLiang Chen		uart3-m0 {
15657053e06bSLiang Chen			uart3m0_xfer: uart3m0-xfer {
15667053e06bSLiang Chen				rockchip,pins =
15677053e06bSLiang Chen					<0 RK_PC0 2 &pcfg_pull_up>,
15687053e06bSLiang Chen					<0 RK_PC1 2 &pcfg_pull_up>;
15697053e06bSLiang Chen			};
15707053e06bSLiang Chen
15717053e06bSLiang Chen			uart3m0_cts: uart3m0-cts {
15727053e06bSLiang Chen				rockchip,pins =
15737053e06bSLiang Chen					<0 RK_PC2 2 &pcfg_pull_none>;
15747053e06bSLiang Chen			};
15757053e06bSLiang Chen
15767053e06bSLiang Chen			uart3m0_rts: uart3m0-rts {
15777053e06bSLiang Chen				rockchip,pins =
15787053e06bSLiang Chen					<0 RK_PC3 2 &pcfg_pull_none>;
15797053e06bSLiang Chen			};
15807053e06bSLiang Chen		};
15817053e06bSLiang Chen
15827053e06bSLiang Chen		uart3-m1 {
15837053e06bSLiang Chen			uart3m1_xfer: uart3m1-xfer {
15847053e06bSLiang Chen				rockchip,pins =
15857053e06bSLiang Chen					<1 RK_PB6 2 &pcfg_pull_up>,
15867053e06bSLiang Chen					<1 RK_PB7 2 &pcfg_pull_up>;
15877053e06bSLiang Chen			};
15887053e06bSLiang Chen
15897053e06bSLiang Chen			uart3m1_cts: uart3m1-cts {
15907053e06bSLiang Chen				rockchip,pins =
15917053e06bSLiang Chen					<1 RK_PB4 2 &pcfg_pull_none>;
15927053e06bSLiang Chen			};
15937053e06bSLiang Chen
15947053e06bSLiang Chen			uart3m1_rts: uart3m1-rts {
15957053e06bSLiang Chen				rockchip,pins =
15967053e06bSLiang Chen					<1 RK_PB5 2 &pcfg_pull_none>;
15977053e06bSLiang Chen			};
15987053e06bSLiang Chen		};
15997053e06bSLiang Chen
16007053e06bSLiang Chen		uart4 {
16017053e06bSLiang Chen			uart4_xfer: uart4-xfer {
16027053e06bSLiang Chen				rockchip,pins =
16037053e06bSLiang Chen					<1 RK_PD4 2 &pcfg_pull_up>,
16047053e06bSLiang Chen					<1 RK_PD5 2 &pcfg_pull_up>;
16057053e06bSLiang Chen			};
16067053e06bSLiang Chen
16077053e06bSLiang Chen			uart4_cts: uart4-cts {
16087053e06bSLiang Chen				rockchip,pins =
16097053e06bSLiang Chen					<1 RK_PD6 2 &pcfg_pull_none>;
16107053e06bSLiang Chen			};
16117053e06bSLiang Chen
16127053e06bSLiang Chen			uart4_rts: uart4-rts {
16137053e06bSLiang Chen				rockchip,pins =
16147053e06bSLiang Chen					<1 RK_PD7 2 &pcfg_pull_none>;
16157053e06bSLiang Chen			};
16167053e06bSLiang Chen		};
16177053e06bSLiang Chen
16187053e06bSLiang Chen		uart5 {
16197053e06bSLiang Chen			uart5_xfer: uart5-xfer {
16207053e06bSLiang Chen				rockchip,pins =
16217053e06bSLiang Chen					<3 RK_PA2 4 &pcfg_pull_up>,
16227053e06bSLiang Chen					<3 RK_PA1 4 &pcfg_pull_up>;
16237053e06bSLiang Chen			};
16247053e06bSLiang Chen
16257053e06bSLiang Chen			uart5_cts: uart5-cts {
16267053e06bSLiang Chen				rockchip,pins =
16277053e06bSLiang Chen					<3 RK_PA3 4 &pcfg_pull_none>;
16287053e06bSLiang Chen			};
16297053e06bSLiang Chen
16307053e06bSLiang Chen			uart5_rts: uart5-rts {
16317053e06bSLiang Chen				rockchip,pins =
16327053e06bSLiang Chen					<3 RK_PA5 4 &pcfg_pull_none>;
16337053e06bSLiang Chen			};
16347053e06bSLiang Chen		};
16357053e06bSLiang Chen
16367053e06bSLiang Chen		spi0 {
16377053e06bSLiang Chen			spi0_clk: spi0-clk {
16387053e06bSLiang Chen				rockchip,pins =
16397053e06bSLiang Chen					<1 RK_PB7 3 &pcfg_pull_up_4ma>;
16407053e06bSLiang Chen			};
16417053e06bSLiang Chen
16427053e06bSLiang Chen			spi0_csn: spi0-csn {
16437053e06bSLiang Chen				rockchip,pins =
16447053e06bSLiang Chen					<1 RK_PB6 3 &pcfg_pull_up_4ma>;
16457053e06bSLiang Chen			};
16467053e06bSLiang Chen
16477053e06bSLiang Chen			spi0_miso: spi0-miso {
16487053e06bSLiang Chen				rockchip,pins =
16497053e06bSLiang Chen					<1 RK_PB5 3 &pcfg_pull_up_4ma>;
16507053e06bSLiang Chen			};
16517053e06bSLiang Chen
16527053e06bSLiang Chen			spi0_mosi: spi0-mosi {
16537053e06bSLiang Chen				rockchip,pins =
16547053e06bSLiang Chen					<1 RK_PB4 3 &pcfg_pull_up_4ma>;
16557053e06bSLiang Chen			};
16567053e06bSLiang Chen
16577053e06bSLiang Chen			spi0_clk_hs: spi0-clk-hs {
16587053e06bSLiang Chen				rockchip,pins =
16597053e06bSLiang Chen					<1 RK_PB7 3 &pcfg_pull_up_8ma>;
16607053e06bSLiang Chen			};
16617053e06bSLiang Chen
16627053e06bSLiang Chen			spi0_miso_hs: spi0-miso-hs {
16637053e06bSLiang Chen				rockchip,pins =
16647053e06bSLiang Chen					<1 RK_PB5 3 &pcfg_pull_up_8ma>;
16657053e06bSLiang Chen			};
16667053e06bSLiang Chen
16677053e06bSLiang Chen			spi0_mosi_hs: spi0-mosi-hs {
16687053e06bSLiang Chen				rockchip,pins =
16697053e06bSLiang Chen					<1 RK_PB4 3 &pcfg_pull_up_8ma>;
16707053e06bSLiang Chen			};
16717053e06bSLiang Chen		};
16727053e06bSLiang Chen
16737053e06bSLiang Chen		spi1 {
16747053e06bSLiang Chen			spi1_clk: spi1-clk {
16757053e06bSLiang Chen				rockchip,pins =
16767053e06bSLiang Chen					<3 RK_PB7 4 &pcfg_pull_up_4ma>;
16777053e06bSLiang Chen			};
16787053e06bSLiang Chen
16797053e06bSLiang Chen			spi1_csn0: spi1-csn0 {
16807053e06bSLiang Chen				rockchip,pins =
16817053e06bSLiang Chen					<3 RK_PB1 4 &pcfg_pull_up_4ma>;
16827053e06bSLiang Chen			};
16837053e06bSLiang Chen
16847053e06bSLiang Chen			spi1_csn1: spi1-csn1 {
16857053e06bSLiang Chen				rockchip,pins =
16867053e06bSLiang Chen					<3 RK_PB2 2 &pcfg_pull_up_4ma>;
16877053e06bSLiang Chen			};
16887053e06bSLiang Chen
16897053e06bSLiang Chen			spi1_miso: spi1-miso {
16907053e06bSLiang Chen				rockchip,pins =
16917053e06bSLiang Chen					<3 RK_PB6 4 &pcfg_pull_up_4ma>;
16927053e06bSLiang Chen			};
16937053e06bSLiang Chen
16947053e06bSLiang Chen			spi1_mosi: spi1-mosi {
16957053e06bSLiang Chen				rockchip,pins =
16967053e06bSLiang Chen					<3 RK_PB4 4 &pcfg_pull_up_4ma>;
16977053e06bSLiang Chen			};
16987053e06bSLiang Chen
16997053e06bSLiang Chen			spi1_clk_hs: spi1-clk-hs {
17007053e06bSLiang Chen				rockchip,pins =
17017053e06bSLiang Chen					<3 RK_PB7 4 &pcfg_pull_up_8ma>;
17027053e06bSLiang Chen			};
17037053e06bSLiang Chen
17047053e06bSLiang Chen			spi1_miso_hs: spi1-miso-hs {
17057053e06bSLiang Chen				rockchip,pins =
17067053e06bSLiang Chen					<3 RK_PB6 4 &pcfg_pull_up_8ma>;
17077053e06bSLiang Chen			};
17087053e06bSLiang Chen
17097053e06bSLiang Chen			spi1_mosi_hs: spi1-mosi-hs {
17107053e06bSLiang Chen				rockchip,pins =
17117053e06bSLiang Chen					<3 RK_PB4 4 &pcfg_pull_up_8ma>;
17127053e06bSLiang Chen			};
17137053e06bSLiang Chen		};
17147053e06bSLiang Chen
17157053e06bSLiang Chen		pdm {
17167053e06bSLiang Chen			pdm_clk0m0: pdm-clk0m0 {
17177053e06bSLiang Chen				rockchip,pins =
17187053e06bSLiang Chen					<3 RK_PC6 2 &pcfg_pull_none>;
17197053e06bSLiang Chen			};
17207053e06bSLiang Chen
17217053e06bSLiang Chen			pdm_clk0m1: pdm-clk0m1 {
17227053e06bSLiang Chen				rockchip,pins =
17237053e06bSLiang Chen					<2 RK_PC6 1 &pcfg_pull_none>;
17247053e06bSLiang Chen			};
17257053e06bSLiang Chen
17267053e06bSLiang Chen			pdm_clk1: pdm-clk1 {
17277053e06bSLiang Chen				rockchip,pins =
17287053e06bSLiang Chen					<3 RK_PC7 2 &pcfg_pull_none>;
17297053e06bSLiang Chen			};
17307053e06bSLiang Chen
17317053e06bSLiang Chen			pdm_sdi0m0: pdm-sdi0m0 {
17327053e06bSLiang Chen				rockchip,pins =
17337053e06bSLiang Chen					<3 RK_PD3 2 &pcfg_pull_none>;
17347053e06bSLiang Chen			};
17357053e06bSLiang Chen
17367053e06bSLiang Chen			pdm_sdi0m1: pdm-sdi0m1 {
17377053e06bSLiang Chen				rockchip,pins =
17387053e06bSLiang Chen					<2 RK_PC5 2 &pcfg_pull_none>;
17397053e06bSLiang Chen			};
17407053e06bSLiang Chen
17417053e06bSLiang Chen			pdm_sdi1: pdm-sdi1 {
17427053e06bSLiang Chen				rockchip,pins =
17437053e06bSLiang Chen					<3 RK_PD0 2 &pcfg_pull_none>;
17447053e06bSLiang Chen			};
17457053e06bSLiang Chen
17467053e06bSLiang Chen			pdm_sdi2: pdm-sdi2 {
17477053e06bSLiang Chen				rockchip,pins =
17487053e06bSLiang Chen					<3 RK_PD1 2 &pcfg_pull_none>;
17497053e06bSLiang Chen			};
17507053e06bSLiang Chen
17517053e06bSLiang Chen			pdm_sdi3: pdm-sdi3 {
17527053e06bSLiang Chen				rockchip,pins =
17537053e06bSLiang Chen					<3 RK_PD2 2 &pcfg_pull_none>;
17547053e06bSLiang Chen			};
17557053e06bSLiang Chen
17567053e06bSLiang Chen			pdm_clk0m0_sleep: pdm-clk0m0-sleep {
17577053e06bSLiang Chen				rockchip,pins =
17587053e06bSLiang Chen					<3 RK_PC6 RK_FUNC_GPIO &pcfg_input_high>;
17597053e06bSLiang Chen			};
17607053e06bSLiang Chen
17617053e06bSLiang Chen			pdm_clk0m_sleep1: pdm-clk0m1-sleep {
17627053e06bSLiang Chen				rockchip,pins =
17637053e06bSLiang Chen					<2 RK_PC6 RK_FUNC_GPIO &pcfg_input_high>;
17647053e06bSLiang Chen			};
17657053e06bSLiang Chen
17667053e06bSLiang Chen			pdm_clk1_sleep: pdm-clk1-sleep {
17677053e06bSLiang Chen				rockchip,pins =
17687053e06bSLiang Chen					<3 RK_PC7 RK_FUNC_GPIO &pcfg_input_high>;
17697053e06bSLiang Chen			};
17707053e06bSLiang Chen
17717053e06bSLiang Chen			pdm_sdi0m0_sleep: pdm-sdi0m0-sleep {
17727053e06bSLiang Chen				rockchip,pins =
17737053e06bSLiang Chen					<3 RK_PD3 RK_FUNC_GPIO &pcfg_input_high>;
17747053e06bSLiang Chen			};
17757053e06bSLiang Chen
17767053e06bSLiang Chen			pdm_sdi0m1_sleep: pdm-sdi0m1-sleep {
17777053e06bSLiang Chen				rockchip,pins =
17787053e06bSLiang Chen					<2 RK_PC5 RK_FUNC_GPIO &pcfg_input_high>;
17797053e06bSLiang Chen			};
17807053e06bSLiang Chen
17817053e06bSLiang Chen			pdm_sdi1_sleep: pdm-sdi1-sleep {
17827053e06bSLiang Chen				rockchip,pins =
17837053e06bSLiang Chen					<3 RK_PD0 RK_FUNC_GPIO &pcfg_input_high>;
17847053e06bSLiang Chen			};
17857053e06bSLiang Chen
17867053e06bSLiang Chen			pdm_sdi2_sleep: pdm-sdi2-sleep {
17877053e06bSLiang Chen				rockchip,pins =
17887053e06bSLiang Chen					<3 RK_PD1 RK_FUNC_GPIO &pcfg_input_high>;
17897053e06bSLiang Chen			};
17907053e06bSLiang Chen
17917053e06bSLiang Chen			pdm_sdi3_sleep: pdm-sdi3-sleep {
17927053e06bSLiang Chen				rockchip,pins =
17937053e06bSLiang Chen					<3 RK_PD2 RK_FUNC_GPIO &pcfg_input_high>;
17947053e06bSLiang Chen			};
17957053e06bSLiang Chen		};
17967053e06bSLiang Chen
17977053e06bSLiang Chen		i2s0 {
17987053e06bSLiang Chen			i2s0_8ch_mclk: i2s0-8ch-mclk {
17997053e06bSLiang Chen				rockchip,pins =
18007053e06bSLiang Chen					<3 RK_PC1 2 &pcfg_pull_none>;
18017053e06bSLiang Chen			};
18027053e06bSLiang Chen
18037053e06bSLiang Chen			i2s0_8ch_sclktx: i2s0-8ch-sclktx {
18047053e06bSLiang Chen				rockchip,pins =
18057053e06bSLiang Chen					<3 RK_PC3 2 &pcfg_pull_none>;
18067053e06bSLiang Chen			};
18077053e06bSLiang Chen
18087053e06bSLiang Chen			i2s0_8ch_sclkrx: i2s0-8ch-sclkrx {
18097053e06bSLiang Chen				rockchip,pins =
18107053e06bSLiang Chen					<3 RK_PB4 2 &pcfg_pull_none>;
18117053e06bSLiang Chen			};
18127053e06bSLiang Chen
18137053e06bSLiang Chen			i2s0_8ch_lrcktx: i2s0-8ch-lrcktx {
18147053e06bSLiang Chen				rockchip,pins =
18157053e06bSLiang Chen					<3 RK_PC2 2 &pcfg_pull_none>;
18167053e06bSLiang Chen			};
18177053e06bSLiang Chen
18187053e06bSLiang Chen			i2s0_8ch_lrckrx: i2s0-8ch-lrckrx {
18197053e06bSLiang Chen				rockchip,pins =
18207053e06bSLiang Chen					<3 RK_PB5 2 &pcfg_pull_none>;
18217053e06bSLiang Chen			};
18227053e06bSLiang Chen
18237053e06bSLiang Chen			i2s0_8ch_sdo0: i2s0-8ch-sdo0 {
18247053e06bSLiang Chen				rockchip,pins =
18257053e06bSLiang Chen					<3 RK_PC4 2 &pcfg_pull_none>;
18267053e06bSLiang Chen			};
18277053e06bSLiang Chen
18287053e06bSLiang Chen			i2s0_8ch_sdo1: i2s0-8ch-sdo1 {
18297053e06bSLiang Chen				rockchip,pins =
18307053e06bSLiang Chen					<3 RK_PC0 2 &pcfg_pull_none>;
18317053e06bSLiang Chen			};
18327053e06bSLiang Chen
18337053e06bSLiang Chen			i2s0_8ch_sdo2: i2s0-8ch-sdo2 {
18347053e06bSLiang Chen				rockchip,pins =
18357053e06bSLiang Chen					<3 RK_PB7 2 &pcfg_pull_none>;
18367053e06bSLiang Chen			};
18377053e06bSLiang Chen
18387053e06bSLiang Chen			i2s0_8ch_sdo3: i2s0-8ch-sdo3 {
18397053e06bSLiang Chen				rockchip,pins =
18407053e06bSLiang Chen					<3 RK_PB6 2 &pcfg_pull_none>;
18417053e06bSLiang Chen			};
18427053e06bSLiang Chen
18437053e06bSLiang Chen			i2s0_8ch_sdi0: i2s0-8ch-sdi0 {
18447053e06bSLiang Chen				rockchip,pins =
18457053e06bSLiang Chen					<3 RK_PC5 2 &pcfg_pull_none>;
18467053e06bSLiang Chen			};
18477053e06bSLiang Chen
18487053e06bSLiang Chen			i2s0_8ch_sdi1: i2s0-8ch-sdi1 {
18497053e06bSLiang Chen				rockchip,pins =
18507053e06bSLiang Chen					<3 RK_PB3 2 &pcfg_pull_none>;
18517053e06bSLiang Chen			};
18527053e06bSLiang Chen
18537053e06bSLiang Chen			i2s0_8ch_sdi2: i2s0-8ch-sdi2 {
18547053e06bSLiang Chen				rockchip,pins =
18557053e06bSLiang Chen					<3 RK_PB1 2 &pcfg_pull_none>;
18567053e06bSLiang Chen			};
18577053e06bSLiang Chen
18587053e06bSLiang Chen			i2s0_8ch_sdi3: i2s0-8ch-sdi3 {
18597053e06bSLiang Chen				rockchip,pins =
18607053e06bSLiang Chen					<3 RK_PB0 2 &pcfg_pull_none>;
18617053e06bSLiang Chen			};
18627053e06bSLiang Chen		};
18637053e06bSLiang Chen
18647053e06bSLiang Chen		i2s1 {
18657053e06bSLiang Chen			i2s1_2ch_mclk: i2s1-2ch-mclk {
18667053e06bSLiang Chen				rockchip,pins =
18677053e06bSLiang Chen					<2 RK_PC3 1 &pcfg_pull_none>;
18687053e06bSLiang Chen			};
18697053e06bSLiang Chen
18707053e06bSLiang Chen			i2s1_2ch_sclk: i2s1-2ch-sclk {
18717053e06bSLiang Chen				rockchip,pins =
18727053e06bSLiang Chen					<2 RK_PC2 1 &pcfg_pull_none>;
18737053e06bSLiang Chen			};
18747053e06bSLiang Chen
18757053e06bSLiang Chen			i2s1_2ch_lrck: i2s1-2ch-lrck {
18767053e06bSLiang Chen				rockchip,pins =
18777053e06bSLiang Chen					<2 RK_PC1 1 &pcfg_pull_none>;
18787053e06bSLiang Chen			};
18797053e06bSLiang Chen
18807053e06bSLiang Chen			i2s1_2ch_sdi: i2s1-2ch-sdi {
18817053e06bSLiang Chen				rockchip,pins =
18827053e06bSLiang Chen					<2 RK_PC5 1 &pcfg_pull_none>;
18837053e06bSLiang Chen			};
18847053e06bSLiang Chen
18857053e06bSLiang Chen			i2s1_2ch_sdo: i2s1-2ch-sdo {
18867053e06bSLiang Chen				rockchip,pins =
18877053e06bSLiang Chen					<2 RK_PC4 1 &pcfg_pull_none>;
18887053e06bSLiang Chen			};
18897053e06bSLiang Chen		};
18907053e06bSLiang Chen
18917053e06bSLiang Chen		i2s2 {
18927053e06bSLiang Chen			i2s2_2ch_mclk: i2s2-2ch-mclk {
18937053e06bSLiang Chen				rockchip,pins =
18947053e06bSLiang Chen					<3 RK_PA1 2 &pcfg_pull_none>;
18957053e06bSLiang Chen			};
18967053e06bSLiang Chen
18977053e06bSLiang Chen			i2s2_2ch_sclk: i2s2-2ch-sclk {
18987053e06bSLiang Chen				rockchip,pins =
18997053e06bSLiang Chen					<3 RK_PA2 2 &pcfg_pull_none>;
19007053e06bSLiang Chen			};
19017053e06bSLiang Chen
19027053e06bSLiang Chen			i2s2_2ch_lrck: i2s2-2ch-lrck {
19037053e06bSLiang Chen				rockchip,pins =
19047053e06bSLiang Chen					<3 RK_PA3 2 &pcfg_pull_none>;
19057053e06bSLiang Chen			};
19067053e06bSLiang Chen
19077053e06bSLiang Chen			i2s2_2ch_sdi: i2s2-2ch-sdi {
19087053e06bSLiang Chen				rockchip,pins =
19097053e06bSLiang Chen					<3 RK_PA5 2 &pcfg_pull_none>;
19107053e06bSLiang Chen			};
19117053e06bSLiang Chen
19127053e06bSLiang Chen			i2s2_2ch_sdo: i2s2-2ch-sdo {
19137053e06bSLiang Chen				rockchip,pins =
19147053e06bSLiang Chen					<3 RK_PA7 2 &pcfg_pull_none>;
19157053e06bSLiang Chen			};
19167053e06bSLiang Chen		};
19177053e06bSLiang Chen
19187053e06bSLiang Chen		sdmmc {
19197053e06bSLiang Chen			sdmmc_clk: sdmmc-clk {
19207053e06bSLiang Chen				rockchip,pins =
19217053e06bSLiang Chen					<1 RK_PD6 1 &pcfg_pull_none_8ma>;
19227053e06bSLiang Chen			};
19237053e06bSLiang Chen
19247053e06bSLiang Chen			sdmmc_cmd: sdmmc-cmd {
19257053e06bSLiang Chen				rockchip,pins =
19267053e06bSLiang Chen					<1 RK_PD7 1 &pcfg_pull_up_8ma>;
19277053e06bSLiang Chen			};
19287053e06bSLiang Chen
19297053e06bSLiang Chen			sdmmc_det: sdmmc-det {
19307053e06bSLiang Chen				rockchip,pins =
19317053e06bSLiang Chen					<0 RK_PA3 1 &pcfg_pull_up_8ma>;
19327053e06bSLiang Chen			};
19337053e06bSLiang Chen
19347053e06bSLiang Chen			sdmmc_bus1: sdmmc-bus1 {
19357053e06bSLiang Chen				rockchip,pins =
19367053e06bSLiang Chen					<1 RK_PD2 1 &pcfg_pull_up_8ma>;
19377053e06bSLiang Chen			};
19387053e06bSLiang Chen
19397053e06bSLiang Chen			sdmmc_bus4: sdmmc-bus4 {
19407053e06bSLiang Chen				rockchip,pins =
19417053e06bSLiang Chen					<1 RK_PD2 1 &pcfg_pull_up_8ma>,
19427053e06bSLiang Chen					<1 RK_PD3 1 &pcfg_pull_up_8ma>,
19437053e06bSLiang Chen					<1 RK_PD4 1 &pcfg_pull_up_8ma>,
19447053e06bSLiang Chen					<1 RK_PD5 1 &pcfg_pull_up_8ma>;
19457053e06bSLiang Chen			};
19467053e06bSLiang Chen		};
19477053e06bSLiang Chen
19487053e06bSLiang Chen		sdio {
19497053e06bSLiang Chen			sdio_clk: sdio-clk {
19507053e06bSLiang Chen				rockchip,pins =
19517053e06bSLiang Chen					<1 RK_PC5 1 &pcfg_pull_none>;
19527053e06bSLiang Chen			};
19537053e06bSLiang Chen
19547053e06bSLiang Chen			sdio_cmd: sdio-cmd {
19557053e06bSLiang Chen				rockchip,pins =
19567053e06bSLiang Chen					<1 RK_PC4 1 &pcfg_pull_up>;
19577053e06bSLiang Chen			};
19587053e06bSLiang Chen
19597053e06bSLiang Chen			sdio_bus4: sdio-bus4 {
19607053e06bSLiang Chen				rockchip,pins =
19617053e06bSLiang Chen					<1 RK_PC6 1 &pcfg_pull_up>,
19627053e06bSLiang Chen					<1 RK_PC7 1 &pcfg_pull_up>,
19637053e06bSLiang Chen					<1 RK_PD0 1 &pcfg_pull_up>,
19647053e06bSLiang Chen					<1 RK_PD1 1 &pcfg_pull_up>;
19657053e06bSLiang Chen			};
19667053e06bSLiang Chen		};
19677053e06bSLiang Chen
19687053e06bSLiang Chen		emmc {
19697053e06bSLiang Chen			emmc_clk: emmc-clk {
19707053e06bSLiang Chen				rockchip,pins =
19717053e06bSLiang Chen					<1 RK_PB1 2 &pcfg_pull_none_8ma>;
19727053e06bSLiang Chen			};
19737053e06bSLiang Chen
19747053e06bSLiang Chen			emmc_cmd: emmc-cmd {
19757053e06bSLiang Chen				rockchip,pins =
19767053e06bSLiang Chen					<1 RK_PB2 2 &pcfg_pull_up_8ma>;
19777053e06bSLiang Chen			};
19787053e06bSLiang Chen
19797053e06bSLiang Chen			emmc_rstnout: emmc-rstnout {
19807053e06bSLiang Chen				rockchip,pins =
19817053e06bSLiang Chen					<1 RK_PB3 2 &pcfg_pull_none>;
19827053e06bSLiang Chen			};
19837053e06bSLiang Chen
19847053e06bSLiang Chen			emmc_bus1: emmc-bus1 {
19857053e06bSLiang Chen				rockchip,pins =
19867053e06bSLiang Chen					<1 RK_PA0 2 &pcfg_pull_up_8ma>;
19877053e06bSLiang Chen			};
19887053e06bSLiang Chen
19897053e06bSLiang Chen			emmc_bus4: emmc-bus4 {
19907053e06bSLiang Chen				rockchip,pins =
19917053e06bSLiang Chen					<1 RK_PA0 2 &pcfg_pull_up_8ma>,
19927053e06bSLiang Chen					<1 RK_PA1 2 &pcfg_pull_up_8ma>,
19937053e06bSLiang Chen					<1 RK_PA2 2 &pcfg_pull_up_8ma>,
19947053e06bSLiang Chen					<1 RK_PA3 2 &pcfg_pull_up_8ma>;
19957053e06bSLiang Chen			};
19967053e06bSLiang Chen
19977053e06bSLiang Chen			emmc_bus8: emmc-bus8 {
19987053e06bSLiang Chen				rockchip,pins =
19997053e06bSLiang Chen					<1 RK_PA0 2 &pcfg_pull_up_8ma>,
20007053e06bSLiang Chen					<1 RK_PA1 2 &pcfg_pull_up_8ma>,
20017053e06bSLiang Chen					<1 RK_PA2 2 &pcfg_pull_up_8ma>,
20027053e06bSLiang Chen					<1 RK_PA3 2 &pcfg_pull_up_8ma>,
20037053e06bSLiang Chen					<1 RK_PA4 2 &pcfg_pull_up_8ma>,
20047053e06bSLiang Chen					<1 RK_PA5 2 &pcfg_pull_up_8ma>,
20057053e06bSLiang Chen					<1 RK_PA6 2 &pcfg_pull_up_8ma>,
20067053e06bSLiang Chen					<1 RK_PA7 2 &pcfg_pull_up_8ma>;
20077053e06bSLiang Chen			};
20087053e06bSLiang Chen		};
20097053e06bSLiang Chen
20107053e06bSLiang Chen		flash {
20117053e06bSLiang Chen			flash_cs0: flash-cs0 {
20127053e06bSLiang Chen				rockchip,pins =
20137053e06bSLiang Chen					<1 RK_PB0 1 &pcfg_pull_none>;
20147053e06bSLiang Chen			};
20157053e06bSLiang Chen
20167053e06bSLiang Chen			flash_rdy: flash-rdy {
20177053e06bSLiang Chen				rockchip,pins =
20187053e06bSLiang Chen					<1 RK_PB1 1 &pcfg_pull_none>;
20197053e06bSLiang Chen			};
20207053e06bSLiang Chen
20217053e06bSLiang Chen			flash_dqs: flash-dqs {
20227053e06bSLiang Chen				rockchip,pins =
20237053e06bSLiang Chen					<1 RK_PB2 1 &pcfg_pull_none>;
20247053e06bSLiang Chen			};
20257053e06bSLiang Chen
20267053e06bSLiang Chen			flash_ale: flash-ale {
20277053e06bSLiang Chen				rockchip,pins =
20287053e06bSLiang Chen					<1 RK_PB3 1 &pcfg_pull_none>;
20297053e06bSLiang Chen			};
20307053e06bSLiang Chen
20317053e06bSLiang Chen			flash_cle: flash-cle {
20327053e06bSLiang Chen				rockchip,pins =
20337053e06bSLiang Chen					<1 RK_PB4 1 &pcfg_pull_none>;
20347053e06bSLiang Chen			};
20357053e06bSLiang Chen
20367053e06bSLiang Chen			flash_wrn: flash-wrn {
20377053e06bSLiang Chen				rockchip,pins =
20387053e06bSLiang Chen					<1 RK_PB5 1 &pcfg_pull_none>;
20397053e06bSLiang Chen			};
20407053e06bSLiang Chen
20417053e06bSLiang Chen			flash_csl: flash-csl {
20427053e06bSLiang Chen				rockchip,pins =
20437053e06bSLiang Chen					<1 RK_PB6 1 &pcfg_pull_none>;
20447053e06bSLiang Chen			};
20457053e06bSLiang Chen
20467053e06bSLiang Chen			flash_rdn: flash-rdn {
20477053e06bSLiang Chen				rockchip,pins =
20487053e06bSLiang Chen					<1 RK_PB7 1 &pcfg_pull_none>;
20497053e06bSLiang Chen			};
20507053e06bSLiang Chen
20517053e06bSLiang Chen			flash_bus8: flash-bus8 {
20527053e06bSLiang Chen				rockchip,pins =
20537053e06bSLiang Chen					<1 RK_PA0 1 &pcfg_pull_up_12ma>,
20547053e06bSLiang Chen					<1 RK_PA1 1 &pcfg_pull_up_12ma>,
20557053e06bSLiang Chen					<1 RK_PA2 1 &pcfg_pull_up_12ma>,
20567053e06bSLiang Chen					<1 RK_PA3 1 &pcfg_pull_up_12ma>,
20577053e06bSLiang Chen					<1 RK_PA4 1 &pcfg_pull_up_12ma>,
20587053e06bSLiang Chen					<1 RK_PA5 1 &pcfg_pull_up_12ma>,
20597053e06bSLiang Chen					<1 RK_PA6 1 &pcfg_pull_up_12ma>,
20607053e06bSLiang Chen					<1 RK_PA7 1 &pcfg_pull_up_12ma>;
20617053e06bSLiang Chen			};
20627053e06bSLiang Chen		};
20637053e06bSLiang Chen
20644d97b78aSChris Morgan		sfc {
20654d97b78aSChris Morgan			sfc_bus4: sfc-bus4 {
20664d97b78aSChris Morgan				rockchip,pins =
20674d97b78aSChris Morgan					<1 RK_PA0 3 &pcfg_pull_none>,
20684d97b78aSChris Morgan					<1 RK_PA1 3 &pcfg_pull_none>,
20694d97b78aSChris Morgan					<1 RK_PA2 3 &pcfg_pull_none>,
20704d97b78aSChris Morgan					<1 RK_PA3 3 &pcfg_pull_none>;
20714d97b78aSChris Morgan			};
20724d97b78aSChris Morgan
20734d97b78aSChris Morgan			sfc_bus2: sfc-bus2 {
20744d97b78aSChris Morgan				rockchip,pins =
20754d97b78aSChris Morgan					<1 RK_PA0 3 &pcfg_pull_none>,
20764d97b78aSChris Morgan					<1 RK_PA1 3 &pcfg_pull_none>;
20774d97b78aSChris Morgan			};
20784d97b78aSChris Morgan
20794d97b78aSChris Morgan			sfc_cs0: sfc-cs0 {
20804d97b78aSChris Morgan				rockchip,pins =
20814d97b78aSChris Morgan					<1 RK_PA4 3 &pcfg_pull_none>;
20824d97b78aSChris Morgan			};
20834d97b78aSChris Morgan
20844d97b78aSChris Morgan			sfc_clk: sfc-clk {
20854d97b78aSChris Morgan				rockchip,pins =
20864d97b78aSChris Morgan					<1 RK_PB1 3 &pcfg_pull_none>;
20874d97b78aSChris Morgan			};
20884d97b78aSChris Morgan		};
20894d97b78aSChris Morgan
20907053e06bSLiang Chen		lcdc {
20917053e06bSLiang Chen			lcdc_rgb_dclk_pin: lcdc-rgb-dclk-pin {
20927053e06bSLiang Chen				rockchip,pins =
20937053e06bSLiang Chen					<3 RK_PA0 1 &pcfg_pull_none_12ma>;
20947053e06bSLiang Chen			};
20957053e06bSLiang Chen
20967053e06bSLiang Chen			lcdc_rgb_m0_hsync_pin: lcdc-rgb-m0-hsync-pin {
20977053e06bSLiang Chen				rockchip,pins =
20987053e06bSLiang Chen					<3 RK_PA1 1 &pcfg_pull_none_12ma>;
20997053e06bSLiang Chen			};
21007053e06bSLiang Chen
21017053e06bSLiang Chen			lcdc_rgb_m0_vsync_pin: lcdc-rgb-m0-vsync-pin {
21027053e06bSLiang Chen				rockchip,pins =
21037053e06bSLiang Chen					<3 RK_PA2 1 &pcfg_pull_none_12ma>;
21047053e06bSLiang Chen			};
21057053e06bSLiang Chen
21067053e06bSLiang Chen			lcdc_rgb_m0_den_pin: lcdc-rgb-m0-den-pin {
21077053e06bSLiang Chen				rockchip,pins =
21087053e06bSLiang Chen					<3 RK_PA3 1 &pcfg_pull_none_12ma>;
21097053e06bSLiang Chen			};
21107053e06bSLiang Chen
21117053e06bSLiang Chen			lcdc_rgb888_m0_data_pins: lcdc-rgb888-m0-data-pins {
21127053e06bSLiang Chen				rockchip,pins =
21137053e06bSLiang Chen					<3 RK_PA7 1 &pcfg_pull_none_8ma>, /* lcdc_d3 */
21147053e06bSLiang Chen					<3 RK_PA6 1 &pcfg_pull_none_8ma>, /* lcdc_d2 */
21157053e06bSLiang Chen					<3 RK_PA5 1 &pcfg_pull_none_8ma>, /* lcdc_d1 */
21167053e06bSLiang Chen					<3 RK_PA4 1 &pcfg_pull_none_8ma>, /* lcdc_d0 */
21177053e06bSLiang Chen					<3 RK_PB3 1 &pcfg_pull_none_8ma>, /* lcdc_d7 */
21187053e06bSLiang Chen					<3 RK_PB2 1 &pcfg_pull_none_8ma>, /* lcdc_d6 */
21197053e06bSLiang Chen					<3 RK_PB1 1 &pcfg_pull_none_8ma>, /* lcdc_d5 */
21207053e06bSLiang Chen					<3 RK_PB0 1 &pcfg_pull_none_8ma>, /* lcdc_d4 */
21217053e06bSLiang Chen					<3 RK_PB7 1 &pcfg_pull_none_8ma>, /* lcdc_d11 */
21227053e06bSLiang Chen					<3 RK_PB6 1 &pcfg_pull_none_8ma>, /* lcdc_d10 */
21237053e06bSLiang Chen					<3 RK_PB5 1 &pcfg_pull_none_8ma>, /* lcdc_d9 */
21247053e06bSLiang Chen					<3 RK_PB4 1 &pcfg_pull_none_8ma>, /* lcdc_d8 */
21257053e06bSLiang Chen					<3 RK_PC3 1 &pcfg_pull_none_8ma>, /* lcdc_d15 */
21267053e06bSLiang Chen					<3 RK_PC2 1 &pcfg_pull_none_8ma>, /* lcdc_d14 */
21277053e06bSLiang Chen					<3 RK_PC1 1 &pcfg_pull_none_8ma>, /* lcdc_d13 */
21287053e06bSLiang Chen					<3 RK_PC0 1 &pcfg_pull_none_8ma>, /* lcdc_d12 */
21297053e06bSLiang Chen					<3 RK_PC7 1 &pcfg_pull_none_8ma>, /* lcdc_d19 */
21307053e06bSLiang Chen					<3 RK_PC6 1 &pcfg_pull_none_8ma>, /* lcdc_d18 */
21317053e06bSLiang Chen					<3 RK_PC5 1 &pcfg_pull_none_8ma>, /* lcdc_d17 */
21327053e06bSLiang Chen					<3 RK_PC4 1 &pcfg_pull_none_8ma>, /* lcdc_d16 */
21337053e06bSLiang Chen					<3 RK_PD3 1 &pcfg_pull_none_8ma>, /* lcdc_d23 */
21347053e06bSLiang Chen					<3 RK_PD2 1 &pcfg_pull_none_8ma>, /* lcdc_d22 */
21357053e06bSLiang Chen					<3 RK_PD1 1 &pcfg_pull_none_8ma>, /* lcdc_d21 */
21367053e06bSLiang Chen					<3 RK_PD0 1 &pcfg_pull_none_8ma>; /* lcdc_d20 */
21377053e06bSLiang Chen			};
21387053e06bSLiang Chen
21397053e06bSLiang Chen			lcdc_rgb666_m0_data_pins: lcdc-rgb666-m0-data-pins {
21407053e06bSLiang Chen				rockchip,pins =
21417053e06bSLiang Chen					<3 RK_PA7 1 &pcfg_pull_none_8ma>, /* lcdc_d3 */
21427053e06bSLiang Chen					<3 RK_PA6 1 &pcfg_pull_none_8ma>, /* lcdc_d2 */
21437053e06bSLiang Chen					<3 RK_PA5 1 &pcfg_pull_none_8ma>, /* lcdc_d1 */
21447053e06bSLiang Chen					<3 RK_PA4 1 &pcfg_pull_none_8ma>, /* lcdc_d0 */
21457053e06bSLiang Chen					<3 RK_PB3 1 &pcfg_pull_none_8ma>, /* lcdc_d7 */
21467053e06bSLiang Chen					<3 RK_PB2 1 &pcfg_pull_none_8ma>, /* lcdc_d6 */
21477053e06bSLiang Chen					<3 RK_PB1 1 &pcfg_pull_none_8ma>, /* lcdc_d5 */
21487053e06bSLiang Chen					<3 RK_PB0 1 &pcfg_pull_none_8ma>, /* lcdc_d4 */
21497053e06bSLiang Chen					<3 RK_PB7 1 &pcfg_pull_none_8ma>, /* lcdc_d11 */
21507053e06bSLiang Chen					<3 RK_PB6 1 &pcfg_pull_none_8ma>, /* lcdc_d10 */
21517053e06bSLiang Chen					<3 RK_PB5 1 &pcfg_pull_none_8ma>, /* lcdc_d9 */
21527053e06bSLiang Chen					<3 RK_PB4 1 &pcfg_pull_none_8ma>, /* lcdc_d8 */
21537053e06bSLiang Chen					<3 RK_PC3 1 &pcfg_pull_none_8ma>, /* lcdc_d15 */
21547053e06bSLiang Chen					<3 RK_PC2 1 &pcfg_pull_none_8ma>, /* lcdc_d14 */
21557053e06bSLiang Chen					<3 RK_PC1 1 &pcfg_pull_none_8ma>, /* lcdc_d13 */
21567053e06bSLiang Chen					<3 RK_PC0 1 &pcfg_pull_none_8ma>, /* lcdc_d12 */
21577053e06bSLiang Chen					<3 RK_PC5 1 &pcfg_pull_none_8ma>, /* lcdc_d17 */
21587053e06bSLiang Chen					<3 RK_PC4 1 &pcfg_pull_none_8ma>; /* lcdc_d16 */
21597053e06bSLiang Chen			};
21607053e06bSLiang Chen
21617053e06bSLiang Chen			lcdc_rgb565_m0_data_pins: lcdc-rgb565-m0-data-pins {
21627053e06bSLiang Chen				rockchip,pins =
21637053e06bSLiang Chen					<3 RK_PA7 1 &pcfg_pull_none_8ma>, /* lcdc_d3 */
21647053e06bSLiang Chen					<3 RK_PA6 1 &pcfg_pull_none_8ma>, /* lcdc_d2 */
21657053e06bSLiang Chen					<3 RK_PA5 1 &pcfg_pull_none_8ma>, /* lcdc_d1 */
21667053e06bSLiang Chen					<3 RK_PA4 1 &pcfg_pull_none_8ma>, /* lcdc_d0 */
21677053e06bSLiang Chen					<3 RK_PB3 1 &pcfg_pull_none_8ma>, /* lcdc_d7 */
21687053e06bSLiang Chen					<3 RK_PB2 1 &pcfg_pull_none_8ma>, /* lcdc_d6 */
21697053e06bSLiang Chen					<3 RK_PB1 1 &pcfg_pull_none_8ma>, /* lcdc_d5 */
21707053e06bSLiang Chen					<3 RK_PB0 1 &pcfg_pull_none_8ma>, /* lcdc_d4 */
21717053e06bSLiang Chen					<3 RK_PB7 1 &pcfg_pull_none_8ma>, /* lcdc_d11 */
21727053e06bSLiang Chen					<3 RK_PB6 1 &pcfg_pull_none_8ma>, /* lcdc_d10 */
21737053e06bSLiang Chen					<3 RK_PB5 1 &pcfg_pull_none_8ma>, /* lcdc_d9 */
21747053e06bSLiang Chen					<3 RK_PB4 1 &pcfg_pull_none_8ma>, /* lcdc_d8 */
21757053e06bSLiang Chen					<3 RK_PC3 1 &pcfg_pull_none_8ma>, /* lcdc_d15 */
21767053e06bSLiang Chen					<3 RK_PC2 1 &pcfg_pull_none_8ma>, /* lcdc_d14 */
21777053e06bSLiang Chen					<3 RK_PC1 1 &pcfg_pull_none_8ma>, /* lcdc_d13 */
21787053e06bSLiang Chen					<3 RK_PC0 1 &pcfg_pull_none_8ma>; /* lcdc_d12 */
21797053e06bSLiang Chen			};
21807053e06bSLiang Chen
21817053e06bSLiang Chen			lcdc_rgb888_m1_data_pins: lcdc-rgb888-m1-data-pins {
21827053e06bSLiang Chen				rockchip,pins =
21837053e06bSLiang Chen					<3 RK_PA6 1 &pcfg_pull_none_8ma>, /* lcdc_d2 */
21847053e06bSLiang Chen					<3 RK_PA4 1 &pcfg_pull_none_8ma>, /* lcdc_d0 */
21857053e06bSLiang Chen					<3 RK_PB3 1 &pcfg_pull_none_8ma>, /* lcdc_d7 */
21867053e06bSLiang Chen					<3 RK_PB2 1 &pcfg_pull_none_8ma>, /* lcdc_d6 */
21877053e06bSLiang Chen					<3 RK_PB5 1 &pcfg_pull_none_8ma>, /* lcdc_d9 */
21887053e06bSLiang Chen					<3 RK_PC3 1 &pcfg_pull_none_8ma>, /* lcdc_d15 */
21897053e06bSLiang Chen					<3 RK_PC2 1 &pcfg_pull_none_8ma>, /* lcdc_d14 */
21907053e06bSLiang Chen					<3 RK_PC1 1 &pcfg_pull_none_8ma>, /* lcdc_d13 */
21917053e06bSLiang Chen					<3 RK_PC0 1 &pcfg_pull_none_8ma>, /* lcdc_d12 */
21927053e06bSLiang Chen					<3 RK_PC7 1 &pcfg_pull_none_8ma>, /* lcdc_d19 */
21937053e06bSLiang Chen					<3 RK_PC6 1 &pcfg_pull_none_8ma>, /* lcdc_d18 */
21947053e06bSLiang Chen					<3 RK_PC5 1 &pcfg_pull_none_8ma>, /* lcdc_d17 */
21957053e06bSLiang Chen					<3 RK_PC4 1 &pcfg_pull_none_8ma>, /* lcdc_d16 */
21967053e06bSLiang Chen					<3 RK_PD3 1 &pcfg_pull_none_8ma>, /* lcdc_d23 */
21977053e06bSLiang Chen					<3 RK_PD2 1 &pcfg_pull_none_8ma>, /* lcdc_d22 */
21987053e06bSLiang Chen					<3 RK_PD1 1 &pcfg_pull_none_8ma>, /* lcdc_d21 */
21997053e06bSLiang Chen					<3 RK_PD0 1 &pcfg_pull_none_8ma>; /* lcdc_d20 */
22007053e06bSLiang Chen			};
22017053e06bSLiang Chen
22027053e06bSLiang Chen			lcdc_rgb666_m1_data_pins: lcdc-rgb666-m1-data-pins {
22037053e06bSLiang Chen				rockchip,pins =
22047053e06bSLiang Chen					<3 RK_PA6 1 &pcfg_pull_none_8ma>, /* lcdc_d2 */
22057053e06bSLiang Chen					<3 RK_PA4 1 &pcfg_pull_none_8ma>, /* lcdc_d0 */
22067053e06bSLiang Chen					<3 RK_PB3 1 &pcfg_pull_none_8ma>, /* lcdc_d7 */
22077053e06bSLiang Chen					<3 RK_PB2 1 &pcfg_pull_none_8ma>, /* lcdc_d6 */
22087053e06bSLiang Chen					<3 RK_PB5 1 &pcfg_pull_none_8ma>, /* lcdc_d9 */
22097053e06bSLiang Chen					<3 RK_PC3 1 &pcfg_pull_none_8ma>, /* lcdc_d15 */
22107053e06bSLiang Chen					<3 RK_PC2 1 &pcfg_pull_none_8ma>, /* lcdc_d14 */
22117053e06bSLiang Chen					<3 RK_PC1 1 &pcfg_pull_none_8ma>, /* lcdc_d13 */
22127053e06bSLiang Chen					<3 RK_PC0 1 &pcfg_pull_none_8ma>, /* lcdc_d12 */
22137053e06bSLiang Chen					<3 RK_PC5 1 &pcfg_pull_none_8ma>, /* lcdc_d17 */
22147053e06bSLiang Chen					<3 RK_PC4 1 &pcfg_pull_none_8ma>; /* lcdc_d16 */
22157053e06bSLiang Chen			};
22167053e06bSLiang Chen
22177053e06bSLiang Chen			lcdc_rgb565_m1_data_pins: lcdc-rgb565-m1-data-pins {
22187053e06bSLiang Chen				rockchip,pins =
22197053e06bSLiang Chen					<3 RK_PA6 1 &pcfg_pull_none_8ma>, /* lcdc_d2 */
22207053e06bSLiang Chen					<3 RK_PA4 1 &pcfg_pull_none_8ma>, /* lcdc_d0 */
22217053e06bSLiang Chen					<3 RK_PB3 1 &pcfg_pull_none_8ma>, /* lcdc_d7 */
22227053e06bSLiang Chen					<3 RK_PB2 1 &pcfg_pull_none_8ma>, /* lcdc_d6 */
22237053e06bSLiang Chen					<3 RK_PB5 1 &pcfg_pull_none_8ma>, /* lcdc_d9 */
22247053e06bSLiang Chen					<3 RK_PC3 1 &pcfg_pull_none_8ma>, /* lcdc_d15 */
22257053e06bSLiang Chen					<3 RK_PC2 1 &pcfg_pull_none_8ma>, /* lcdc_d14 */
22267053e06bSLiang Chen					<3 RK_PC1 1 &pcfg_pull_none_8ma>, /* lcdc_d13 */
22277053e06bSLiang Chen					<3 RK_PC0 1 &pcfg_pull_none_8ma>; /* lcdc_d12 */
22287053e06bSLiang Chen			};
22297053e06bSLiang Chen		};
22307053e06bSLiang Chen
22317053e06bSLiang Chen		pwm0 {
22327053e06bSLiang Chen			pwm0_pin: pwm0-pin {
22337053e06bSLiang Chen				rockchip,pins =
22347053e06bSLiang Chen					<0 RK_PB7 1 &pcfg_pull_none>;
22357053e06bSLiang Chen			};
22367053e06bSLiang Chen		};
22377053e06bSLiang Chen
22387053e06bSLiang Chen		pwm1 {
22397053e06bSLiang Chen			pwm1_pin: pwm1-pin {
22407053e06bSLiang Chen				rockchip,pins =
22417053e06bSLiang Chen					<0 RK_PC0 1 &pcfg_pull_none>;
22427053e06bSLiang Chen			};
22437053e06bSLiang Chen		};
22447053e06bSLiang Chen
22457053e06bSLiang Chen		pwm2 {
22467053e06bSLiang Chen			pwm2_pin: pwm2-pin {
22477053e06bSLiang Chen				rockchip,pins =
22487053e06bSLiang Chen					<2 RK_PB5 1 &pcfg_pull_none>;
22497053e06bSLiang Chen			};
22507053e06bSLiang Chen		};
22517053e06bSLiang Chen
22527053e06bSLiang Chen		pwm3 {
22537053e06bSLiang Chen			pwm3_pin: pwm3-pin {
22547053e06bSLiang Chen				rockchip,pins =
22557053e06bSLiang Chen					<0 RK_PC1 1 &pcfg_pull_none>;
22567053e06bSLiang Chen			};
22577053e06bSLiang Chen		};
22587053e06bSLiang Chen
22597053e06bSLiang Chen		pwm4 {
22607053e06bSLiang Chen			pwm4_pin: pwm4-pin {
22617053e06bSLiang Chen				rockchip,pins =
22627053e06bSLiang Chen					<3 RK_PC2 3 &pcfg_pull_none>;
22637053e06bSLiang Chen			};
22647053e06bSLiang Chen		};
22657053e06bSLiang Chen
22667053e06bSLiang Chen		pwm5 {
22677053e06bSLiang Chen			pwm5_pin: pwm5-pin {
22687053e06bSLiang Chen				rockchip,pins =
22697053e06bSLiang Chen					<3 RK_PC3 3 &pcfg_pull_none>;
22707053e06bSLiang Chen			};
22717053e06bSLiang Chen		};
22727053e06bSLiang Chen
22737053e06bSLiang Chen		pwm6 {
22747053e06bSLiang Chen			pwm6_pin: pwm6-pin {
22757053e06bSLiang Chen				rockchip,pins =
22767053e06bSLiang Chen					<3 RK_PC4 3 &pcfg_pull_none>;
22777053e06bSLiang Chen			};
22787053e06bSLiang Chen		};
22797053e06bSLiang Chen
22807053e06bSLiang Chen		pwm7 {
22817053e06bSLiang Chen			pwm7_pin: pwm7-pin {
22827053e06bSLiang Chen				rockchip,pins =
22837053e06bSLiang Chen					<3 RK_PC5 3 &pcfg_pull_none>;
22847053e06bSLiang Chen			};
22857053e06bSLiang Chen		};
22867053e06bSLiang Chen
22877053e06bSLiang Chen		gmac {
22887053e06bSLiang Chen			rmii_pins: rmii-pins {
22897053e06bSLiang Chen				rockchip,pins =
22907053e06bSLiang Chen					<2 RK_PA0 2 &pcfg_pull_none_12ma>, /* mac_txen */
22917053e06bSLiang Chen					<2 RK_PA1 2 &pcfg_pull_none_12ma>, /* mac_txd1 */
22927053e06bSLiang Chen					<2 RK_PA2 2 &pcfg_pull_none_12ma>, /* mac_txd0 */
22937053e06bSLiang Chen					<2 RK_PA3 2 &pcfg_pull_none>, /* mac_rxd0 */
22947053e06bSLiang Chen					<2 RK_PA4 2 &pcfg_pull_none>, /* mac_rxd1 */
22957053e06bSLiang Chen					<2 RK_PA5 2 &pcfg_pull_none>, /* mac_rxer */
22967053e06bSLiang Chen					<2 RK_PA6 2 &pcfg_pull_none>, /* mac_rxdv */
22977053e06bSLiang Chen					<2 RK_PA7 2 &pcfg_pull_none>, /* mac_mdio */
22987053e06bSLiang Chen					<2 RK_PB1 2 &pcfg_pull_none>; /* mac_mdc */
22997053e06bSLiang Chen			};
23007053e06bSLiang Chen
23017053e06bSLiang Chen			mac_refclk_12ma: mac-refclk-12ma {
23027053e06bSLiang Chen				rockchip,pins =
23037053e06bSLiang Chen					<2 RK_PB2 2 &pcfg_pull_none_12ma>;
23047053e06bSLiang Chen			};
23057053e06bSLiang Chen
23067053e06bSLiang Chen			mac_refclk: mac-refclk {
23077053e06bSLiang Chen				rockchip,pins =
23087053e06bSLiang Chen					<2 RK_PB2 2 &pcfg_pull_none>;
23097053e06bSLiang Chen			};
23107053e06bSLiang Chen		};
23117053e06bSLiang Chen
23127053e06bSLiang Chen		cif-m0 {
23137053e06bSLiang Chen			cif_clkout_m0: cif-clkout-m0 {
23147053e06bSLiang Chen				rockchip,pins =
23157053e06bSLiang Chen					<2 RK_PB3 1 &pcfg_pull_none>;
23167053e06bSLiang Chen			};
23177053e06bSLiang Chen
23187053e06bSLiang Chen			dvp_d2d9_m0: dvp-d2d9-m0 {
23197053e06bSLiang Chen				rockchip,pins =
23207053e06bSLiang Chen					<2 RK_PA0 1 &pcfg_pull_none>, /* cif_data2 */
23217053e06bSLiang Chen					<2 RK_PA1 1 &pcfg_pull_none>, /* cif_data3 */
23227053e06bSLiang Chen					<2 RK_PA2 1 &pcfg_pull_none>, /* cif_data4 */
23237053e06bSLiang Chen					<2 RK_PA3 1 &pcfg_pull_none>, /* cif_data5 */
23247053e06bSLiang Chen					<2 RK_PA4 1 &pcfg_pull_none>, /* cif_data6 */
23257053e06bSLiang Chen					<2 RK_PA5 1 &pcfg_pull_none>, /* cif_data7 */
23267053e06bSLiang Chen					<2 RK_PA6 1 &pcfg_pull_none>, /* cif_data8 */
23277053e06bSLiang Chen					<2 RK_PA7 1 &pcfg_pull_none>, /* cif_data9 */
23287053e06bSLiang Chen					<2 RK_PB0 1 &pcfg_pull_none>, /* cif_sync */
23297053e06bSLiang Chen					<2 RK_PB1 1 &pcfg_pull_none>, /* cif_href */
23307053e06bSLiang Chen					<2 RK_PB2 1 &pcfg_pull_none>, /* cif_clkin */
23317053e06bSLiang Chen					<2 RK_PB3 1 &pcfg_pull_none>; /* cif_clkout */
23327053e06bSLiang Chen			};
23337053e06bSLiang Chen
23347053e06bSLiang Chen			dvp_d0d1_m0: dvp-d0d1-m0 {
23357053e06bSLiang Chen				rockchip,pins =
23367053e06bSLiang Chen					<2 RK_PB4 1 &pcfg_pull_none>, /* cif_data0 */
23377053e06bSLiang Chen					<2 RK_PB6 1 &pcfg_pull_none>; /* cif_data1 */
23387053e06bSLiang Chen			};
23397053e06bSLiang Chen
23407053e06bSLiang Chen			dvp_d10d11_m0:d10-d11-m0 {
23417053e06bSLiang Chen				rockchip,pins =
23427053e06bSLiang Chen					<2 RK_PB7 1 &pcfg_pull_none>, /* cif_data10 */
23437053e06bSLiang Chen					<2 RK_PC0 1 &pcfg_pull_none>; /* cif_data11 */
23447053e06bSLiang Chen			};
23457053e06bSLiang Chen		};
23467053e06bSLiang Chen
23477053e06bSLiang Chen		cif-m1 {
23487053e06bSLiang Chen			cif_clkout_m1: cif-clkout-m1 {
23497053e06bSLiang Chen				rockchip,pins =
23507053e06bSLiang Chen					<3 RK_PD0 3 &pcfg_pull_none>;
23517053e06bSLiang Chen			};
23527053e06bSLiang Chen
23537053e06bSLiang Chen			dvp_d2d9_m1: dvp-d2d9-m1 {
23547053e06bSLiang Chen				rockchip,pins =
23557053e06bSLiang Chen					<3 RK_PA3 3 &pcfg_pull_none>, /* cif_data2 */
23567053e06bSLiang Chen					<3 RK_PA5 3 &pcfg_pull_none>, /* cif_data3 */
23577053e06bSLiang Chen					<3 RK_PA7 3 &pcfg_pull_none>, /* cif_data4 */
23587053e06bSLiang Chen					<3 RK_PB0 3 &pcfg_pull_none>, /* cif_data5 */
23597053e06bSLiang Chen					<3 RK_PB1 3 &pcfg_pull_none>, /* cif_data6 */
23607053e06bSLiang Chen					<3 RK_PB4 3 &pcfg_pull_none>, /* cif_data7 */
23617053e06bSLiang Chen					<3 RK_PB6 3 &pcfg_pull_none>, /* cif_data8 */
23627053e06bSLiang Chen					<3 RK_PB7 3 &pcfg_pull_none>, /* cif_data9 */
23637053e06bSLiang Chen					<3 RK_PD1 3 &pcfg_pull_none>, /* cif_sync */
23647053e06bSLiang Chen					<3 RK_PD2 3 &pcfg_pull_none>, /* cif_href */
23657053e06bSLiang Chen					<3 RK_PD3 3 &pcfg_pull_none>, /* cif_clkin */
23667053e06bSLiang Chen					<3 RK_PD0 3 &pcfg_pull_none>; /* cif_clkout */
23677053e06bSLiang Chen			};
23687053e06bSLiang Chen
23697053e06bSLiang Chen			dvp_d0d1_m1: dvp-d0d1-m1 {
23707053e06bSLiang Chen				rockchip,pins =
23717053e06bSLiang Chen					<3 RK_PA1 3 &pcfg_pull_none>, /* cif_data0 */
23727053e06bSLiang Chen					<3 RK_PA2 3 &pcfg_pull_none>; /* cif_data1 */
23737053e06bSLiang Chen			};
23747053e06bSLiang Chen
23757053e06bSLiang Chen			dvp_d10d11_m1:d10-d11-m1 {
23767053e06bSLiang Chen				rockchip,pins =
23777053e06bSLiang Chen					<3 RK_PC6 3 &pcfg_pull_none>, /* cif_data10 */
23787053e06bSLiang Chen					<3 RK_PC7 3 &pcfg_pull_none>; /* cif_data11 */
23797053e06bSLiang Chen			};
23807053e06bSLiang Chen		};
23817053e06bSLiang Chen
23827053e06bSLiang Chen		isp {
23837053e06bSLiang Chen			isp_prelight: isp-prelight {
23847053e06bSLiang Chen				rockchip,pins =
23857053e06bSLiang Chen					<3 RK_PD1 4 &pcfg_pull_none>;
23867053e06bSLiang Chen			};
23877053e06bSLiang Chen		};
23887053e06bSLiang Chen	};
23897053e06bSLiang Chen};
2390