您尚未登录。

楼主 # 2022-03-31 22:43:37

iyzsong
会员
注册时间: 2020-02-02
已发帖子: 8
积分: 38

声讯会议速记机 (RK3399) 使用经验

我的型号为 SX-100302 黑色, 某鱼 525 块购得。

1. microusb 连接 PC,按住升级孔再开机,进入 loader 模式
2. loader 模式下执行: xrock reset maskrom ,进入 maskrom 模式
3. maskrom 模式下执行: xrock maskrom rk3399_ddr_800MHz_v1.25.bin rk3399_usbplug_v1.26.bin ,初始化 DDR
4. rkdeveloptool ppt 输出如下:

**********Partition Info(parameter)**********
NO  LBA       Name                
00  00002000  uboot
01  00004000  trust
02  00006000  misc
03  00008000  resource
04  00010000  kernel
05  0001C000  boot
06  0002C000  recovery
07  0004C000  backup
08  00084000  cache
09  000C4000  system
10  004C4000  metadata
11  004CC000  verity_mode
12  004CC040  oem
13  004D0040  userdata

5. xrock rest,然后再进入 loader 模式,使用 rkdeveloptool 备份分区

rkdeveloptool rl 0x2000 0x2000 uboot.img
rkdeveloptool rl 0x4000 0x2000 trust.img
rkdeveloptool rl 0x6000 0x2000 misc.img
rkdeveloptool rl 0x8000 0x2000 resource.img
rkdeveloptool rl 0x10000 0xc000 kernel.img
rkdeveloptool rl 0x1c000 0x10000 boot.img
rkdeveloptool rl 0x2c000 0x20000 recovery.img
rkdeveloptool rl 0x4c000 0x38000 backup.img
rkdeveloptool rl 0x84000 0x40000 cache.img
rkdeveloptool rl 0xc4000 0x400000 system.img
rkdeveloptool rl 0x4c4000 0x8000 metadata.img
rkdeveloptool rl 0x4cc000 0x40 verify_mode.img
rkdeveloptool rl 0x4cc040 0x4000 oem.img

6. 执行 extract-dtb boot.img 提取 dtb 文件,再用 dtc -I dtb -O dts -o x.dts 01_dtbdump_rockchip,android.dtb 命令提取 dts 文件:

/dts-v1/;

/ {
	compatible = "rockchip,android\0rockchip,rk3399-excavator-edp\0rockchip,rk3399";
	interrupt-parent = <0x01>;
	#address-cells = <0x02>;
	#size-cells = <0x02>;
	model = "Rockchip RK3399 Excavator Board edp (Android)";

	ddr_timing {
		compatible = "rockchip,ddr-timing";
		ddr3_speed_bin = <0x15>;
		pd_idle = <0x00>;
		sr_idle = <0x00>;
		sr_mc_gate_idle = <0x00>;
		srpd_lite_idle = <0x00>;
		standby_idle = <0x00>;
		auto_lp_dis_freq = <0x29a>;
		ddr3_dll_dis_freq = <0x12c>;
		phy_dll_dis_freq = <0x104>;
		ddr3_odt_dis_freq = <0x29a>;
		ddr3_drv = <0x28>;
		ddr3_odt = <0x78>;
		phy_ddr3_ca_drv = <0x28>;
		phy_ddr3_dq_drv = <0x28>;
		phy_ddr3_odt = <0xf0>;
		lpddr3_odt_dis_freq = <0x29a>;
		lpddr3_drv = <0x22>;
		lpddr3_odt = <0xf0>;
		phy_lpddr3_ca_drv = <0x22>;
		phy_lpddr3_dq_drv = <0x22>;
		phy_lpddr3_odt = <0xf0>;
		lpddr4_odt_dis_freq = <0x320>;
		lpddr4_drv = <0xf0>;
		lpddr4_dq_odt = <0x28>;
		lpddr4_ca_odt = <0x00>;
		phy_lpddr4_ca_drv = <0x28>;
		phy_lpddr4_ck_cs_drv = <0x28>;
		phy_lpddr4_dq_drv = <0x3c>;
		phy_lpddr4_odt = <0x28>;
		phandle = <0x8e>;
	};

	aliases {
		i2c0 = "/i2c@ff3c0000";
		i2c1 = "/i2c@ff110000";
		i2c2 = "/i2c@ff120000";
		i2c3 = "/i2c@ff130000";
		i2c4 = "/i2c@ff3d0000";
		i2c5 = "/i2c@ff140000";
		i2c6 = "/i2c@ff150000";
		i2c7 = "/i2c@ff160000";
		i2c8 = "/i2c@ff3e0000";
		serial0 = "/serial@ff180000";
		serial1 = "/serial@ff370000";
		serial2 = "/serial@ff1a0000";
		serial3 = "/serial@ff190000";
		serial4 = "/serial@ff1b0000";
		dsi0 = "/dsi@ff960000";
		dsi1 = "/dsi@ff968000";
	};

	cpus {
		#address-cells = <0x02>;
		#size-cells = <0x00>;

		cpu-map {

			cluster0 {

				core0 {
					cpu = <0x02>;
				};

				core1 {
					cpu = <0x03>;
				};

				core2 {
					cpu = <0x04>;
				};

				core3 {
					cpu = <0x05>;
				};
			};

			cluster1 {

				core0 {
					cpu = <0x06>;
				};

				core1 {
					cpu = <0x07>;
				};
			};
		};

		cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-a53\0arm,armv8";
			reg = <0x00 0x00>;
			enable-method = "psci";
			#cooling-cells = <0x02>;
			clocks = <0x08 0x08>;
			cpu-idle-states = <0x09 0x0a>;
			dynamic-power-coefficient = <0x64>;
			operating-points-v2 = <0x0b>;
			sched-energy-costs = <0x0c 0x0d>;
			cpu-supply = <0x0e>;
			phandle = <0x02>;
		};

		cpu@1 {
			device_type = "cpu";
			compatible = "arm,cortex-a53\0arm,armv8";
			reg = <0x00 0x01>;
			enable-method = "psci";
			clocks = <0x08 0x08>;
			cpu-idle-states = <0x09 0x0a>;
			dynamic-power-coefficient = <0x64>;
			operating-points-v2 = <0x0b>;
			sched-energy-costs = <0x0c 0x0d>;
			cpu-supply = <0x0e>;
			phandle = <0x03>;
		};

		cpu@2 {
			device_type = "cpu";
			compatible = "arm,cortex-a53\0arm,armv8";
			reg = <0x00 0x02>;
			enable-method = "psci";
			clocks = <0x08 0x08>;
			cpu-idle-states = <0x09 0x0a>;
			dynamic-power-coefficient = <0x64>;
			operating-points-v2 = <0x0b>;
			sched-energy-costs = <0x0c 0x0d>;
			cpu-supply = <0x0e>;
			phandle = <0x04>;
		};

		cpu@3 {
			device_type = "cpu";
			compatible = "arm,cortex-a53\0arm,armv8";
			reg = <0x00 0x03>;
			enable-method = "psci";
			clocks = <0x08 0x08>;
			cpu-idle-states = <0x09 0x0a>;
			dynamic-power-coefficient = <0x64>;
			operating-points-v2 = <0x0b>;
			sched-energy-costs = <0x0c 0x0d>;
			cpu-supply = <0x0e>;
			phandle = <0x05>;
		};

		cpu@100 {
			device_type = "cpu";
			compatible = "arm,cortex-a72\0arm,armv8";
			reg = <0x00 0x100>;
			enable-method = "psci";
			#cooling-cells = <0x02>;
			clocks = <0x08 0x09>;
			cpu-idle-states = <0x09 0x0a>;
			dynamic-power-coefficient = <0x1b4>;
			operating-points-v2 = <0x0f>;
			sched-energy-costs = <0x10 0x11>;
			cpu-supply = <0x12>;
			phandle = <0x06>;
		};

		cpu@101 {
			device_type = "cpu";
			compatible = "arm,cortex-a72\0arm,armv8";
			reg = <0x00 0x101>;
			enable-method = "psci";
			clocks = <0x08 0x09>;
			cpu-idle-states = <0x09 0x0a>;
			dynamic-power-coefficient = <0x1b4>;
			operating-points-v2 = <0x0f>;
			sched-energy-costs = <0x10 0x11>;
			cpu-supply = <0x12>;
			phandle = <0x07>;
		};

		idle-states {
			entry-method = "psci";

			cpu-sleep {
				compatible = "arm,idle-state";
				local-timer-stop;
				arm,psci-suspend-param = <0x10000>;
				entry-latency-us = <0x78>;
				exit-latency-us = <0xfa>;
				min-residency-us = <0x384>;
				phandle = <0x09>;
			};

			cluster-sleep {
				compatible = "arm,idle-state";
				local-timer-stop;
				arm,psci-suspend-param = <0x1010000>;
				entry-latency-us = <0x190>;
				exit-latency-us = <0x1f4>;
				min-residency-us = <0x7d0>;
				phandle = <0x0a>;
			};
		};
	};

	pmu_a53 {
		compatible = "arm,cortex-a53-pmu";
		interrupts = <0x01 0x07 0x08 0x13>;
	};

	pmu_a72 {
		compatible = "arm,cortex-a72-pmu";
		interrupts = <0x01 0x07 0x08 0x14>;
	};

	psci {
		compatible = "arm,psci-1.0";
		method = "smc";
	};

	timer {
		compatible = "arm,armv8-timer";
		interrupts = <0x01 0x0d 0x08 0x00 0x01 0x0e 0x08 0x00 0x01 0x0b 0x08 0x00 0x01 0x0a 0x08 0x00>;
	};

	xin24m {
		compatible = "fixed-clock";
		clock-frequency = <0x16e3600>;
		clock-output-names = "xin24m";
		#clock-cells = <0x00>;
	};

	dummy_cpll {
		compatible = "fixed-clock";
		clock-frequency = <0x00>;
		clock-output-names = "dummy_cpll";
		#clock-cells = <0x00>;
	};

	dummy_vpll {
		compatible = "fixed-clock";
		clock-frequency = <0x00>;
		clock-output-names = "dummy_vpll";
		#clock-cells = <0x00>;
	};

	amba {
		compatible = "arm,amba-bus";
		#address-cells = <0x02>;
		#size-cells = <0x02>;
		ranges;

		dma-controller@ff6d0000 {
			compatible = "arm,pl330\0arm,primecell";
			reg = <0x00 0xff6d0000 0x00 0x4000>;
			interrupts = <0x00 0x05 0x04 0x00 0x00 0x06 0x04 0x00>;
			#dma-cells = <0x01>;
			clocks = <0x08 0xd3>;
			clock-names = "apb_pclk";
			peripherals-req-type-burst;
			iram = <0x15>;
			rockchip,force-iram;
			phandle = <0x59>;
		};

		dma-controller@ff6e0000 {
			compatible = "arm,pl330\0arm,primecell";
			reg = <0x00 0xff6e0000 0x00 0x4000>;
			interrupts = <0x00 0x07 0x04 0x00 0x00 0x08 0x04 0x00>;
			#dma-cells = <0x01>;
			clocks = <0x08 0xd4>;
			clock-names = "apb_pclk";
			peripherals-req-type-burst;
			phandle = <0x48>;
		};
	};

	ethernet@fe300000 {
		compatible = "rockchip,rk3399-gmac";
		reg = <0x00 0xfe300000 0x00 0x10000>;
		rockchip,grf = <0x16>;
		interrupts = <0x00 0x0c 0x04 0x00>;
		interrupt-names = "macirq";
		clocks = <0x08 0x69 0x08 0x67 0x08 0x68 0x08 0x66 0x08 0x6a 0x08 0xd5 0x08 0x166>;
		clock-names = "stmmaceth\0mac_clk_rx\0mac_clk_tx\0clk_mac_ref\0clk_mac_refout\0aclk_mac\0pclk_mac";
		resets = <0x08 0x89>;
		reset-names = "stmmaceth";
		power-domains = <0x17 0x16>;
		status = "okay";
		phy-supply = <0x18>;
		phy-mode = "rmii";
		clock_in_out = "input";
		snps,reset-gpio = <0x19 0x02 0x01>;
		snps,reset-active-low;
		snps,reset-delays-us = <0x00 0x2710 0xc350>;
		assigned-clocks = <0x08 0xa6>;
		assigned-clock-parents = <0x1a>;
		pinctrl-names = "default";
		pinctrl-0 = <0x1b>;
		tx_delay = <0x28>;
		rx_delay = <0x11>;
	};

	dwmmc@fe310000 {
		compatible = "rockchip,rk3399-dw-mshc\0rockchip,rk3288-dw-mshc";
		reg = <0x00 0xfe310000 0x00 0x4000>;
		interrupts = <0x00 0x40 0x04 0x00>;
		clock-freq-min-max = <0x30d40 0x2faf080>;
		clocks = <0x08 0x1ee 0x08 0x4d 0x08 0x9c 0x08 0x9d>;
		clock-names = "biu\0ciu\0ciu-drive\0ciu-sample";
		fifo-depth = <0x100>;
		power-domains = <0x17 0x1c>;
		status = "okay";
		clock-frequency = <0x2faf080>;
		supports-sdio;
		bus-width = <0x04>;
		disable-wp;
		cap-sd-highspeed;
		cap-sdio-irq;
		keep-power-in-suspend;
		mmc-pwrseq = <0x1c>;
		non-removable;
		num-slots = <0x01>;
		pinctrl-names = "default";
		pinctrl-0 = <0x1d 0x1e 0x1f>;
		sd-uhs-sdr104;
	};

	dwmmc@fe320000 {
		compatible = "rockchip,rk3399-dw-mshc\0rockchip,rk3288-dw-mshc";
		reg = <0x00 0xfe320000 0x00 0x4000>;
		interrupts = <0x00 0x41 0x04 0x00>;
		clock-freq-min-max = <0x186a0 0x8f0d180>;
		clocks = <0x08 0x1ce 0x08 0x4c 0x08 0x9a 0x08 0x9b>;
		clock-names = "biu\0ciu\0ciu-drive\0ciu-sample";
		fifo-depth = <0x100>;
		power-domains = <0x17 0x1b>;
		status = "okay";
		clock-frequency = <0x8f0d180>;
		supports-sd;
		bus-width = <0x04>;
		cap-mmc-highspeed;
		cap-sd-highspeed;
		disable-wp;
		num-slots = <0x01>;
		vmmc-supply = <0x20>;
		vqmmc-supply = <0x21>;
		pinctrl-names = "default";
		pinctrl-0 = <0x22 0x23 0x24 0x25>;
	};

	sdhci@fe330000 {
		compatible = "rockchip,rk3399-sdhci-5.1\0arasan,sdhci-5.1";
		reg = <0x00 0xfe330000 0x00 0x10000>;
		interrupts = <0x00 0x0b 0x04 0x00>;
		arasan,soc-ctl-syscon = <0x16>;
		assigned-clocks = <0x08 0x4e>;
		assigned-clock-rates = <0xbebc200>;
		clocks = <0x08 0x4e 0x08 0xf0>;
		clock-names = "clk_xin\0clk_ahb";
		clock-output-names = "emmc_cardclock";
		#clock-cells = <0x00>;
		phys = <0x26>;
		phy-names = "phy_arasan";
		power-domains = <0x17 0x17>;
		status = "okay";
		bus-width = <0x08>;
		mmc-hs400-1_8v;
		supports-emmc;
		non-removable;
		keep-power-in-suspend;
		mmc-hs400-enhanced-strobe;
		assigned-clock-parents = <0x08 0x05>;
		phandle = <0x97>;
	};

	usb@fe340000 {
		compatible = "generic-ehci";
		reg = <0x00 0xfe340000 0x00 0x30000>;
		interrupts = <0x00 0x21 0x04 0x00>;
		clocks = <0x08 0x1cc 0x08 0x79 0x08 0x154>;
		clock-names = "hclk_hsic\0clk_hsicphy\0pclk_hsicphy";
		rockchip-has-usic;
		status = "disabled";
	};

	usb@fe380000 {
		compatible = "generic-ehci";
		reg = <0x00 0xfe380000 0x00 0x20000>;
		interrupts = <0x00 0x1a 0x04 0x00>;
		clocks = <0x08 0x1c8 0x08 0x1c9 0x08 0xa8>;
		clock-names = "hclk_host0\0hclk_host0_arb\0usbphy0_480m";
		phys = <0x27>;
		phy-names = "usb";
		power-domains = <0x17 0x0e>;
		status = "okay";
	};

	usb@fe3a0000 {
		compatible = "generic-ohci";
		reg = <0x00 0xfe3a0000 0x00 0x20000>;
		interrupts = <0x00 0x1c 0x04 0x00>;
		clocks = <0x08 0x1c8 0x08 0x1c9 0x08 0xa8>;
		clock-names = "hclk_host0\0hclk_host0_arb\0usbphy0_480m";
		phys = <0x27>;
		phy-names = "usb";
		power-domains = <0x17 0x0e>;
		status = "okay";
	};

	usb@fe3c0000 {
		compatible = "generic-ehci";
		reg = <0x00 0xfe3c0000 0x00 0x20000>;
		interrupts = <0x00 0x1e 0x04 0x00>;
		clocks = <0x08 0x1ca 0x08 0x1cb 0x08 0xa9>;
		clock-names = "hclk_host1\0hclk_host1_arb\0usbphy1_480m";
		phys = <0x28>;
		phy-names = "usb";
		power-domains = <0x17 0x0e>;
		status = "okay";
	};

	usb@fe3e0000 {
		compatible = "generic-ohci";
		reg = <0x00 0xfe3e0000 0x00 0x20000>;
		interrupts = <0x00 0x20 0x04 0x00>;
		clocks = <0x08 0x1ca 0x08 0x1cb 0x08 0xa9>;
		clock-names = "hclk_host1\0hclk_host1_arb\0usbphy1_480m";
		phys = <0x28>;
		phy-names = "usb";
		power-domains = <0x17 0x0e>;
		status = "okay";
	};

	usb@fe800000 {
		compatible = "rockchip,rk3399-dwc3";
		clocks = <0x08 0x81 0x08 0x83 0x08 0xf6 0x08 0xf9>;
		clock-names = "ref_clk\0suspend_clk\0bus_clk\0grf_clk";
		power-domains = <0x17 0x18>;
		resets = <0x08 0x125>;
		reset-names = "usb3-otg";
		#address-cells = <0x02>;
		#size-cells = <0x02>;
		ranges;
		status = "okay";

		dwc3@fe800000 {
			compatible = "snps,dwc3";
			reg = <0x00 0xfe800000 0x00 0x100000>;
			interrupts = <0x00 0x69 0x04 0x00>;
			dr_mode = "otg";
			phys = <0x29>;
			phy-names = "usb2-phy";
			phy_type = "utmi_wide";
			snps,dis_enblslpm_quirk;
			snps,dis-u2-freeclk-exists-quirk;
			snps,dis_u2_susphy_quirk;
			snps,dis-del-phy-power-chg-quirk;
			snps,tx-ipgap-linecheck-dis-quirk;
			snps,xhci-slow-suspend-quirk;
			snps,xhci-trb-ent-quirk;
			snps,usb3-warm-reset-on-resume-quirk;
			status = "okay";
			maximum-speed = "high-speed";
		};
	};

	usb@fe900000 {
		compatible = "rockchip,rk3399-dwc3";
		clocks = <0x08 0x82 0x08 0x84 0x08 0xf7 0x08 0xf9>;
		clock-names = "ref_clk\0suspend_clk\0bus_clk\0grf_clk";
		power-domains = <0x17 0x18>;
		resets = <0x08 0x126>;
		reset-names = "usb3-otg";
		#address-cells = <0x02>;
		#size-cells = <0x02>;
		ranges;
		status = "okay";

		dwc3@fe900000 {
			compatible = "snps,dwc3";
			reg = <0x00 0xfe900000 0x00 0x100000>;
			interrupts = <0x00 0x6e 0x04 0x00>;
			dr_mode = "host";
			phys = <0x2a 0x2b>;
			phy-names = "usb2-phy\0usb3-phy";
			phy_type = "utmi_wide";
			snps,dis_enblslpm_quirk;
			snps,dis-u2-freeclk-exists-quirk;
			snps,dis_u2_susphy_quirk;
			snps,dis-del-phy-power-chg-quirk;
			snps,tx-ipgap-linecheck-dis-quirk;
			snps,xhci-slow-suspend-quirk;
			snps,xhci-trb-ent-quirk;
			snps,usb3-warm-reset-on-resume-quirk;
			status = "okay";
		};
	};

	dp@fec00000 {
		compatible = "rockchip,rk3399-cdn-dp";
		reg = <0x00 0xfec00000 0x00 0x100000>;
		interrupts = <0x00 0x09 0x04 0x00>;
		clocks = <0x08 0x72 0x08 0x175 0x08 0xa1 0x08 0x16f>;
		clock-names = "core-clk\0pclk\0spdif\0grf";
		assigned-clocks = <0x08 0x72>;
		assigned-clock-rates = <0x5f5e100>;
		power-domains = <0x17 0x15>;
		phys = <0x2c>;
		resets = <0x08 0x103 0x08 0x148 0x08 0x14a 0x08 0xfd>;
		reset-names = "spdif\0dptx\0apb\0core";
		rockchip,grf = <0x16>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		#sound-dai-cells = <0x01>;
		status = "disabled";
		extcon = <0x2d>;
		phandle = <0xcc>;

		ports {
			#address-cells = <0x01>;
			#size-cells = <0x00>;

			port {
				#address-cells = <0x01>;
				#size-cells = <0x00>;

				endpoint@0 {
					reg = <0x00>;
					remote-endpoint = <0x2e>;
					status = "disabled";
					phandle = <0xab>;
				};

				endpoint@1 {
					reg = <0x01>;
					remote-endpoint = <0x2f>;
					phandle = <0xa4>;
				};
			};
		};
	};

	interrupt-controller@fee00000 {
		compatible = "arm,gic-v3";
		#interrupt-cells = <0x04>;
		#address-cells = <0x02>;
		#size-cells = <0x02>;
		ranges;
		interrupt-controller;
		reg = <0x00 0xfee00000 0x00 0x10000 0x00 0xfef00000 0x00 0xc0000 0x00 0xfff00000 0x00 0x10000 0x00 0xfff10000 0x00 0x10000 0x00 0xfff20000 0x00 0x10000>;
		interrupts = <0x01 0x09 0x04 0x00>;
		phandle = <0x01>;

		interrupt-controller@fee20000 {
			compatible = "arm,gic-v3-its";
			msi-controller;
			reg = <0x00 0xfee20000 0x00 0x20000>;
			phandle = <0x84>;
		};

		ppi-partitions {

			interrupt-partition-0 {
				affinity = <0x02 0x03 0x04 0x05>;
				phandle = <0x13>;
			};

			interrupt-partition-1 {
				affinity = <0x06 0x07>;
				phandle = <0x14>;
			};
		};
	};

	saradc@ff100000 {
		compatible = "rockchip,rk3399-saradc";
		reg = <0x00 0xff100000 0x00 0x100>;
		interrupts = <0x00 0x3e 0x04 0x00>;
		#io-channel-cells = <0x01>;
		clocks = <0x08 0x50 0x08 0x165>;
		clock-names = "saradc\0apb_pclk";
		resets = <0x08 0xd4>;
		reset-names = "saradc-apb";
		status = "okay";
	};

	i2c@ff3c0000 {
		compatible = "rockchip,rk3399-i2c";
		reg = <0x00 0xff3c0000 0x00 0x1000>;
		clocks = <0x30 0x09 0x30 0x1b>;
		clock-names = "i2c\0pclk";
		interrupts = <0x00 0x39 0x04 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0x31>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "okay";
		i2c-scl-rising-time-ns = <0xa8>;
		i2c-scl-falling-time-ns = <0x04>;
		clock-frequency = <0x61a80>;

		syr827@40 {
			compatible = "silergy,syr827";
			reg = <0x40>;
			vin-supply = <0x32>;
			regulator-compatible = "fan53555-reg";
			pinctrl-names = "default";
			pinctrl-0 = <0x33>;
			vsel-gpios = <0x34 0x11 0x00>;
			regulator-name = "vdd_cpu_b";
			regulator-min-microvolt = <0xadf34>;
			regulator-max-microvolt = <0x16e360>;
			regulator-ramp-delay = <0x3e8>;
			fcs,suspend-voltage-selector = <0x01>;
			regulator-always-on;
			regulator-boot-on;
			regulator-initial-state = <0x03>;
			phandle = <0x12>;

			regulator-state-mem {
				regulator-off-in-suspend;
			};
		};

		syr828@41 {
			compatible = "silergy,syr828";
			reg = <0x41>;
			vin-supply = <0x32>;
			regulator-compatible = "fan53555-reg";
			pinctrl-names = "default";
			pinctrl-0 = <0x35>;
			vsel-gpios = <0x34 0x0e 0x00>;
			regulator-name = "vdd_gpu";
			regulator-min-microvolt = <0xadf34>;
			regulator-max-microvolt = <0x16e360>;
			regulator-ramp-delay = <0x3e8>;
			fcs,suspend-voltage-selector = <0x01>;
			regulator-always-on;
			regulator-boot-on;
			regulator-initial-state = <0x03>;
			phandle = <0x9f>;

			regulator-state-mem {
				regulator-off-in-suspend;
			};
		};

		pmic@1b {
			compatible = "rockchip,rk808";
			reg = <0x1b>;
			interrupt-parent = <0x34>;
			interrupts = <0x15 0x08>;
			pinctrl-names = "default";
			pinctrl-0 = <0x36>;
			rockchip,system-power-controller;
			wakeup-source;
			#clock-cells = <0x01>;
			clock-output-names = "xin32k\0rk808-clkout2";
			extern_drv_gpio = <0x37 0x18 0x00>;
			hub_rst_gpio = <0x19 0x1e 0x00>;
			ap_work_gpio = <0x38 0x1c 0x00>;
			vcc1-supply = <0x39>;
			vcc2-supply = <0x39>;
			vcc3-supply = <0x39>;
			vcc4-supply = <0x39>;
			vcc6-supply = <0x39>;
			vcc7-supply = <0x39>;
			vcc8-supply = <0x3a>;
			vcc9-supply = <0x39>;
			vcc10-supply = <0x39>;
			vcc11-supply = <0x39>;
			vcc12-supply = <0x39>;
			vddio-supply = <0x3b>;
			phandle = <0xcd>;

			regulators {

				DCDC_REG1 {
					regulator-always-on;
					regulator-boot-on;
					regulator-min-microvolt = <0xb71b0>;
					regulator-max-microvolt = <0x149970>;
					regulator-ramp-delay = <0x1771>;
					regulator-name = "vdd_center";
					phandle = <0x90>;

					regulator-state-mem {
						regulator-off-in-suspend;
					};
				};

				DCDC_REG2 {
					regulator-always-on;
					regulator-boot-on;
					regulator-min-microvolt = <0xb71b0>;
					regulator-max-microvolt = <0x149970>;
					regulator-ramp-delay = <0x1771>;
					regulator-name = "vdd_cpu_l";
					phandle = <0x0e>;

					regulator-state-mem {
						regulator-off-in-suspend;
					};
				};

				DCDC_REG3 {
					regulator-always-on;
					regulator-boot-on;
					regulator-name = "vcc_ddr";

					regulator-state-mem {
						regulator-on-in-suspend;
					};
				};

				DCDC_REG4 {
					regulator-always-on;
					regulator-boot-on;
					regulator-min-microvolt = <0x1b7740>;
					regulator-max-microvolt = <0x1b7740>;
					regulator-name = "vcc_1v8";
					phandle = <0x3a>;

					regulator-state-mem {
						regulator-on-in-suspend;
						regulator-suspend-microvolt = <0x1b7740>;
					};
				};

				LDO_REG1 {
					regulator-always-on;
					regulator-boot-on;
					regulator-min-microvolt = <0x1b7740>;
					regulator-max-microvolt = <0x1b7740>;
					regulator-name = "vcc1v8_dvp";
					phandle = <0x94>;

					regulator-state-mem {
						regulator-off-in-suspend;
					};
				};

				LDO_REG2 {
					regulator-min-microvolt = <0x325aa0>;
					regulator-max-microvolt = <0x325aa0>;
					regulator-name = "vcc3v0_tp";

					regulator-state-mem {
						regulator-on-in-suspend;
						regulator-suspend-microvolt = <0x325aa0>;
					};
				};

				LDO_REG3 {
					regulator-always-on;
					regulator-boot-on;
					regulator-min-microvolt = <0x1b7740>;
					regulator-max-microvolt = <0x1b7740>;
					regulator-name = "vcc1v8_pmu";
					phandle = <0x3b>;

					regulator-state-mem {
						regulator-on-in-suspend;
						regulator-suspend-microvolt = <0x1b7740>;
					};
				};

				LDO_REG4 {
					regulator-always-on;
					regulator-boot-on;
					regulator-min-microvolt = <0x1b7740>;
					regulator-max-microvolt = <0x2dc6c0>;
					regulator-name = "vccio_sd";
					phandle = <0x21>;

					regulator-state-mem {
						regulator-on-in-suspend;
						regulator-suspend-microvolt = <0x2dc6c0>;
					};
				};

				LDO_REG5 {
					regulator-always-on;
					regulator-boot-on;
					regulator-min-microvolt = <0x2dc6c0>;
					regulator-max-microvolt = <0x2dc6c0>;
					regulator-name = "vcca3v0_codec";

					regulator-state-mem {
						regulator-off-in-suspend;
					};
				};

				LDO_REG6 {
					regulator-always-on;
					regulator-boot-on;
					regulator-min-microvolt = <0x16e360>;
					regulator-max-microvolt = <0x16e360>;
					regulator-name = "vcc_1v5";

					regulator-state-mem {
						regulator-on-in-suspend;
						regulator-suspend-microvolt = <0x16e360>;
					};
				};

				LDO_REG7 {
					regulator-min-microvolt = <0x1b7740>;
					regulator-max-microvolt = <0x1b7740>;
					regulator-name = "vcca1v8_codec";
					phandle = <0x95>;

					regulator-state-mem {
						regulator-on-in-suspend;
						regulator-suspend-microvolt = <0x1b7740>;
					};
				};

				LDO_REG8 {
					regulator-always-on;
					regulator-boot-on;
					regulator-min-microvolt = <0x2dc6c0>;
					regulator-max-microvolt = <0x2dc6c0>;
					regulator-name = "vcc_3v0";
					phandle = <0x96>;

					regulator-state-mem {
						regulator-on-in-suspend;
						regulator-suspend-microvolt = <0x2dc6c0>;
					};
				};
			};
		};

		hym8563@51 {
			status = "okay";
			compatible = "haoyu,hym8563";
			reg = <0x51>;
			#clock-cells = <0x00>;
			clock-frequency = <0x8000>;
		};
	};

	i2c@ff110000 {
		compatible = "rockchip,rk3399-i2c";
		reg = <0x00 0xff110000 0x00 0x1000>;
		clocks = <0x08 0x41 0x08 0x155>;
		clock-names = "i2c\0pclk";
		interrupts = <0x00 0x3b 0x04 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0x3c>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "okay";
		i2c-scl-rising-time-ns = <0x12c>;
		i2c-scl-falling-time-ns = <0x0f>;

		sensor@18 {
			status = "disabled";
			compatible = "bma2xx_acc";
			reg = <0x18>;
			type = <0x02>;
			poll_delay_ms = <0x1e>;
			layout = <0x01>;
		};

		es8316@10 {
			#sound-dai-cells = <0x00>;
			compatible = "everest,es8316";
			reg = <0x10>;
			clocks = <0x08 0x59>;
			clock-names = "mclk";
			pinctrl-names = "default";
			pinctrl-0 = <0x3d>;
			status = "okay";
			phandle = <0xd4>;
		};

		es7210@40 {
			status = "disabled";
			compatible = "everest,es7210";
			reg = <0x40>;
		};
	};

	i2c@ff120000 {
		compatible = "rockchip,rk3399-i2c";
		reg = <0x00 0xff120000 0x00 0x1000>;
		clocks = <0x08 0x42 0x08 0x156>;
		clock-names = "i2c\0pclk";
		interrupts = <0x00 0x23 0x04 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0x3e>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "okay";
	};

	i2c@ff130000 {
		compatible = "rockchip,rk3399-i2c";
		reg = <0x00 0xff130000 0x00 0x1000>;
		clocks = <0x08 0x43 0x08 0x157>;
		clock-names = "i2c\0pclk";
		interrupts = <0x00 0x22 0x04 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0x3f>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "disabled";
	};

	i2c@ff140000 {
		compatible = "rockchip,rk3399-i2c";
		reg = <0x00 0xff140000 0x00 0x1000>;
		clocks = <0x08 0x44 0x08 0x158>;
		clock-names = "i2c\0pclk";
		interrupts = <0x00 0x26 0x04 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0x40>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "disabled";
	};

	i2c@ff150000 {
		compatible = "rockchip,rk3399-i2c";
		reg = <0x00 0xff150000 0x00 0x1000>;
		clocks = <0x08 0x45 0x08 0x159>;
		clock-names = "i2c\0pclk";
		interrupts = <0x00 0x25 0x04 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0x41>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "disabled";
	};

	i2c@ff160000 {
		compatible = "rockchip,rk3399-i2c";
		reg = <0x00 0xff160000 0x00 0x1000>;
		clocks = <0x08 0x46 0x08 0x15a>;
		clock-names = "i2c\0pclk";
		interrupts = <0x00 0x24 0x04 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0x42>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "disabled";
	};

	serial@ff180000 {
		compatible = "rockchip,rk3399-uart\0snps,dw-apb-uart";
		reg = <0x00 0xff180000 0x00 0x100>;
		clocks = <0x08 0x51 0x08 0x160>;
		clock-names = "baudclk\0apb_pclk";
		interrupts = <0x00 0x63 0x04 0x00>;
		reg-shift = <0x02>;
		reg-io-width = <0x04>;
		pinctrl-names = "default";
		pinctrl-0 = <0x43 0x44>;
		status = "okay";
		assigned-clocks = <0x08 0xac>;
		assigned-clock-parents = <0x08 0x05>;
	};

	serial@ff190000 {
		compatible = "rockchip,rk3399-uart\0snps,dw-apb-uart";
		reg = <0x00 0xff190000 0x00 0x100>;
		clocks = <0x08 0x52 0x08 0x161>;
		clock-names = "baudclk\0apb_pclk";
		interrupts = <0x00 0x62 0x04 0x00>;
		reg-shift = <0x02>;
		reg-io-width = <0x04>;
		pinctrl-names = "default";
		pinctrl-0 = <0x45>;
		status = "disabled";
		assigned-clocks = <0x08 0xad>;
		assigned-clock-parents = <0x08 0x05>;
	};

	serial@ff1a0000 {
		compatible = "rockchip,rk3399-uart\0snps,dw-apb-uart";
		reg = <0x00 0xff1a0000 0x00 0x100>;
		clocks = <0x08 0x53 0x08 0x162>;
		clock-names = "baudclk\0apb_pclk";
		interrupts = <0x00 0x64 0x04 0x00>;
		reg-shift = <0x02>;
		reg-io-width = <0x04>;
		pinctrl-names = "default";
		pinctrl-0 = <0x46>;
		status = "disabled";
		assigned-clocks = <0x08 0xad>;
		assigned-clock-parents = <0x08 0x05>;
	};

	serial@ff1b0000 {
		compatible = "rockchip,rk3399-uart\0snps,dw-apb-uart";
		reg = <0x00 0xff1b0000 0x00 0x100>;
		clocks = <0x08 0x54 0x08 0x163>;
		clock-names = "baudclk\0apb_pclk";
		interrupts = <0x00 0x65 0x04 0x00>;
		reg-shift = <0x02>;
		reg-io-width = <0x04>;
		pinctrl-names = "default";
		pinctrl-0 = <0x47>;
		status = "okay";
		assigned-clocks = <0x08 0xad>;
		assigned-clock-parents = <0x08 0x05>;
	};

	spi@ff1c0000 {
		compatible = "rockchip,rk3399-spi\0rockchip,rk3066-spi";
		reg = <0x00 0xff1c0000 0x00 0x1000>;
		clocks = <0x08 0x47 0x08 0x15b>;
		clock-names = "spiclk\0apb_pclk";
		interrupts = <0x00 0x44 0x04 0x00>;
		dmas = <0x48 0x0a 0x48 0x0b>;
		dma-names = "tx\0rx";
		pinctrl-names = "default";
		pinctrl-0 = <0x49 0x4a 0x4b 0x4c>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "disabled";
	};

	spi@ff1d0000 {
		compatible = "rockchip,rk3399-spi\0rockchip,rk3066-spi";
		reg = <0x00 0xff1d0000 0x00 0x1000>;
		clocks = <0x08 0x48 0x08 0x15c>;
		clock-names = "spiclk\0apb_pclk";
		interrupts = <0x00 0x35 0x04 0x00>;
		dmas = <0x48 0x0c 0x48 0x0d>;
		dma-names = "tx\0rx";
		pinctrl-names = "default";
		pinctrl-0 = <0x4d 0x4e 0x4f 0x50>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "disabled";
	};

	spi@ff1e0000 {
		compatible = "rockchip,rk3399-spi\0rockchip,rk3066-spi";
		reg = <0x00 0xff1e0000 0x00 0x1000>;
		clocks = <0x08 0x49 0x08 0x15d>;
		clock-names = "spiclk\0apb_pclk";
		interrupts = <0x00 0x34 0x04 0x00>;
		dmas = <0x48 0x0e 0x48 0x0f>;
		dma-names = "tx\0rx";
		pinctrl-names = "default";
		pinctrl-0 = <0x51 0x52 0x53 0x54>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "disabled";
	};

	spi@ff1f0000 {
		compatible = "rockchip,rk3399-spi\0rockchip,rk3066-spi";
		reg = <0x00 0xff1f0000 0x00 0x1000>;
		clocks = <0x08 0x4a 0x08 0x15e>;
		clock-names = "spiclk\0apb_pclk";
		interrupts = <0x00 0x43 0x04 0x00>;
		dmas = <0x48 0x12 0x48 0x13>;
		dma-names = "tx\0rx";
		pinctrl-names = "default";
		pinctrl-0 = <0x55 0x56 0x57 0x58>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "disabled";
	};

	spi@ff200000 {
		compatible = "rockchip,rk3399-spi\0rockchip,rk3066-spi";
		reg = <0x00 0xff200000 0x00 0x1000>;
		clocks = <0x08 0x4b 0x08 0x15f>;
		clock-names = "spiclk\0apb_pclk";
		interrupts = <0x00 0x84 0x04 0x00>;
		dmas = <0x59 0x08 0x59 0x09>;
		dma-names = "tx\0rx";
		pinctrl-names = "default";
		pinctrl-0 = <0x5a 0x5b 0x5c 0x5d>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		power-domains = <0x17 0x1c>;
		status = "disabled";
	};

	thermal-zones {

		soc-thermal {
			polling-delay-passive = <0x14>;
			polling-delay = <0x3e8>;
			sustainable-power = <0x3e8>;
			thermal-sensors = <0x5e 0x00>;

			trips {

				trip-point-0 {
					temperature = <0x11170>;
					hysteresis = <0x7d0>;
					type = "passive";
				};

				trip-point-1 {
					temperature = <0x14c08>;
					hysteresis = <0x7d0>;
					type = "passive";
					phandle = <0x5f>;
				};

				soc-crit {
					temperature = <0x1c138>;
					hysteresis = <0x7d0>;
					type = "critical";
				};
			};

			cooling-maps {

				map0 {
					trip = <0x5f>;
					cooling-device = <0x02 0xffffffff 0xffffffff>;
					contribution = <0x1000>;
				};

				map1 {
					trip = <0x5f>;
					cooling-device = <0x06 0xffffffff 0xffffffff>;
					contribution = <0x400>;
				};

				map2 {
					trip = <0x5f>;
					cooling-device = <0x60 0xffffffff 0xffffffff>;
					contribution = <0x1000>;
				};
			};
		};

		gpu-thermal {
			polling-delay-passive = <0x64>;
			polling-delay = <0x3e8>;
			thermal-sensors = <0x5e 0x01>;
		};
	};

	tsadc@ff260000 {
		compatible = "rockchip,rk3399-tsadc";
		reg = <0x00 0xff260000 0x00 0x100>;
		interrupts = <0x00 0x61 0x04 0x00>;
		rockchip,grf = <0x16>;
		clocks = <0x08 0x4f 0x08 0x164>;
		clock-names = "tsadc\0apb_pclk";
		assigned-clocks = <0x08 0x4f>;
		assigned-clock-rates = <0xb71b0>;
		resets = <0x08 0xe8>;
		reset-names = "tsadc-apb";
		pinctrl-names = "init\0default\0sleep";
		pinctrl-0 = <0x61>;
		pinctrl-1 = <0x62>;
		pinctrl-2 = <0x61>;
		#thermal-sensor-cells = <0x01>;
		rockchip,hw-tshut-temp = <0x1d4c0>;
		status = "okay";
		rockchip,hw-tshut-mode = <0x01>;
		rockchip,hw-tshut-polarity = <0x01>;
		phandle = <0x5e>;
	};

	qos@ffa58000 {
		compatible = "syscon";
		reg = <0x00 0xffa58000 0x00 0x20>;
		phandle = <0x6a>;
	};

	qos@ffa5c000 {
		compatible = "syscon";
		reg = <0x00 0xffa5c000 0x00 0x20>;
		phandle = <0x6b>;
	};

	qos@ffa60080 {
		compatible = "syscon";
		reg = <0x00 0xffa60080 0x00 0x20>;
		phandle = <0x6d>;
	};

	qos@ffa60100 {
		compatible = "syscon";
		reg = <0x00 0xffa60100 0x00 0x20>;
		phandle = <0x6e>;
	};

	qos@ffa60180 {
		compatible = "syscon";
		reg = <0x00 0xffa60180 0x00 0x20>;
		phandle = <0x6f>;
	};

	qos@ffa70000 {
		compatible = "syscon";
		reg = <0x00 0xffa70000 0x00 0x20>;
		phandle = <0x72>;
	};

	qos@ffa70080 {
		compatible = "syscon";
		reg = <0x00 0xffa70080 0x00 0x20>;
		phandle = <0x73>;
	};

	qos@ffa74000 {
		compatible = "syscon";
		reg = <0x00 0xffa74000 0x00 0x20>;
		phandle = <0x70>;
	};

	qos@ffa76000 {
		compatible = "syscon";
		reg = <0x00 0xffa76000 0x00 0x20>;
		phandle = <0x71>;
	};

	qos@ffa90000 {
		compatible = "syscon";
		reg = <0x00 0xffa90000 0x00 0x20>;
		phandle = <0x74>;
	};

	qos@ffa98000 {
		compatible = "syscon";
		reg = <0x00 0xffa98000 0x00 0x20>;
		phandle = <0x63>;
	};

	qos@ffaa0000 {
		compatible = "syscon";
		reg = <0x00 0xffaa0000 0x00 0x20>;
		phandle = <0x75>;
	};

	qos@ffaa0080 {
		compatible = "syscon";
		reg = <0x00 0xffaa0080 0x00 0x20>;
		phandle = <0x76>;
	};

	qos@ffaa8000 {
		compatible = "syscon";
		reg = <0x00 0xffaa8000 0x00 0x20>;
		phandle = <0x77>;
	};

	qos@ffaa8080 {
		compatible = "syscon";
		reg = <0x00 0xffaa8080 0x00 0x20>;
		phandle = <0x78>;
	};

	qos@ffab0000 {
		compatible = "syscon";
		reg = <0x00 0xffab0000 0x00 0x20>;
		phandle = <0x64>;
	};

	qos@ffab0080 {
		compatible = "syscon";
		reg = <0x00 0xffab0080 0x00 0x20>;
		phandle = <0x65>;
	};

	qos@ffab8000 {
		compatible = "syscon";
		reg = <0x00 0xffab8000 0x00 0x20>;
		phandle = <0x66>;
	};

	qos@ffac0000 {
		compatible = "syscon";
		reg = <0x00 0xffac0000 0x00 0x20>;
		phandle = <0x67>;
	};

	qos@ffac0080 {
		compatible = "syscon";
		reg = <0x00 0xffac0080 0x00 0x20>;
		phandle = <0x68>;
	};

	qos@ffac8000 {
		compatible = "syscon";
		reg = <0x00 0xffac8000 0x00 0x20>;
		phandle = <0x79>;
	};

	qos@ffac8080 {
		compatible = "syscon";
		reg = <0x00 0xffac8080 0x00 0x20>;
		phandle = <0x7a>;
	};

	qos@ffad0000 {
		compatible = "syscon";
		reg = <0x00 0xffad0000 0x00 0x20>;
		phandle = <0x7b>;
	};

	qos@ffad8080 {
		compatible = "syscon";
		reg = <0x00 0xffad8080 0x00 0x20>;
		phandle = <0x6c>;
	};

	qos@ffae0000 {
		compatible = "syscon";
		reg = <0x00 0xffae0000 0x00 0x20>;
		phandle = <0x69>;
	};

	power-management@ff310000 {
		compatible = "rockchip,rk3399-pmu\0syscon\0simple-mfd";
		reg = <0x00 0xff310000 0x00 0x1000>;

		power-controller {
			compatible = "rockchip,rk3399-power-controller";
			#power-domain-cells = <0x01>;
			#address-cells = <0x01>;
			#size-cells = <0x00>;
			phandle = <0x17>;

			pd_iep@34 {
				reg = <0x22>;
				clocks = <0x08 0xe1 0x08 0x1dd>;
				pm_qos = <0x63>;
			};

			pd_rga@33 {
				reg = <0x21>;
				clocks = <0x08 0xdc 0x08 0x1e5>;
				pm_qos = <0x64 0x65>;
			};

			pd_vcodec@31 {
				reg = <0x1f>;
				clocks = <0x08 0xeb 0x08 0x1ea>;
				pm_qos = <0x66>;
			};

			pd_vdu@32 {
				reg = <0x20>;
				clocks = <0x08 0xed 0x08 0x1ec>;
				pm_qos = <0x67 0x68>;
			};

			pd_gpu@35 {
				reg = <0x23>;
				clocks = <0x08 0xd0>;
				pm_qos = <0x69>;
			};

			pd_edp@25 {
				reg = <0x19>;
				clocks = <0x08 0x16c>;
			};

			pd_emmc@23 {
				reg = <0x17>;
				clocks = <0x08 0xf0>;
				pm_qos = <0x6a>;
			};

			pd_gmac@22 {
				reg = <0x16>;
				clocks = <0x08 0xd5 0x08 0x166>;
				pm_qos = <0x6b>;
			};

			pd_perihp@14 {
				reg = <0x0e>;
				#address-cells = <0x01>;
				#size-cells = <0x00>;
				clocks = <0x08 0xc0>;
				pm_qos = <0x6c 0x6d 0x6e 0x6f>;

				pd_sd@27 {
					reg = <0x1b>;
					clocks = <0x08 0x1ce 0x08 0x4c>;
					pm_qos = <0x70>;
				};
			};

			pd_sdioaudio@28 {
				reg = <0x1c>;
				clocks = <0x08 0x1ee>;
				pm_qos = <0x71>;
			};

			pd_usb3@24 {
				reg = <0x18>;
				clocks = <0x08 0xf4>;
				pm_qos = <0x72 0x73>;
			};

			pd_vio@15 {
				reg = <0x0f>;
				#address-cells = <0x01>;
				#size-cells = <0x00>;

				pd_hdcp@21 {
					reg = <0x15>;
					clocks = <0x08 0xde 0x08 0x1e7 0x08 0x172>;
					pm_qos = <0x74>;
				};

				pd_isp0@19 {
					reg = <0x13>;
					clocks = <0x08 0xe5 0x08 0x1df>;
					pm_qos = <0x75 0x76>;
				};

				pd_isp1@20 {
					reg = <0x14>;
					clocks = <0x08 0xe6 0x08 0x1e0>;
					pm_qos = <0x77 0x78>;
				};

				pd_tcpc0@RK3399_PD_TCPC0 {
					reg = <0x08>;
					clocks = <0x08 0x7e 0x08 0x7d>;
				};

				pd_tcpc1@RK3399_PD_TCPC1 {
					reg = <0x09>;
					clocks = <0x08 0x80 0x08 0x7f>;
				};

				pd_vo@16 {
					reg = <0x10>;
					#address-cells = <0x01>;
					#size-cells = <0x00>;

					pd_vopb@17 {
						reg = <0x11>;
						clocks = <0x08 0xd9 0x08 0x1d9>;
						pm_qos = <0x79 0x7a>;
					};

					pd_vopl@18 {
						reg = <0x12>;
						clocks = <0x08 0xdb 0x08 0x1db>;
						pm_qos = <0x7b>;
					};
				};
			};
		};
	};

	syscon@ff320000 {
		compatible = "rockchip,rk3399-pmugrf\0syscon\0simple-mfd";
		reg = <0x00 0xff320000 0x00 0x1000>;
		#address-cells = <0x01>;
		#size-cells = <0x01>;
		phandle = <0x8c>;

		io-domains {
			compatible = "rockchip,rk3399-pmu-io-voltage-domain";
			status = "okay";
			pmu1830-supply = <0x3a>;
		};

		reboot-mode {
			compatible = "syscon-reboot-mode";
			offset = <0x300>;
			mode-bootloader = <0x5242c301>;
			mode-charge = <0x5242c30b>;
			mode-fastboot = <0x5242c309>;
			mode-loader = <0x5242c301>;
			mode-normal = <0x5242c300>;
			mode-recovery = <0x5242c303>;
			mode-ums = <0x5242c30c>;
		};

		pmu-pvtm {
			compatible = "rockchip,rk3399-pmu-pvtm";
			clocks = <0x30 0x07>;
			clock-names = "pmu";
			resets = <0x08 0x1b>;
			reset-names = "pmu";
			status = "disabled";
		};
	};

	spi@ff350000 {
		compatible = "rockchip,rk3399-spi\0rockchip,rk3066-spi";
		reg = <0x00 0xff350000 0x00 0x1000>;
		clocks = <0x30 0x03 0x30 0x1f>;
		clock-names = "spiclk\0apb_pclk";
		interrupts = <0x00 0x3c 0x04 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0x7c 0x7d 0x7e 0x7f>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "disabled";
	};

	serial@ff370000 {
		compatible = "rockchip,rk3399-uart\0snps,dw-apb-uart";
		reg = <0x00 0xff370000 0x00 0x100>;
		clocks = <0x30 0x06 0x30 0x22>;
		clock-names = "baudclk\0apb_pclk";
		interrupts = <0x00 0x66 0x04 0x00>;
		reg-shift = <0x02>;
		reg-io-width = <0x04>;
		pinctrl-names = "default";
		pinctrl-0 = <0x80>;
		status = "okay";
		assigned-clocks = <0x30 0x0c>;
		assigned-clock-parents = <0x30 0x01>;
	};

	i2c@ff3d0000 {
		compatible = "rockchip,rk3399-i2c";
		reg = <0x00 0xff3d0000 0x00 0x1000>;
		clocks = <0x30 0x0a 0x30 0x1c>;
		clock-names = "i2c\0pclk";
		interrupts = <0x00 0x38 0x04 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0x81>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "okay";
		i2c-scl-rising-time-ns = <0x258>;
		i2c-scl-falling-time-ns = <0x14>;

		fusb30x@22 {
			compatible = "fairchild,fusb302";
			reg = <0x22>;
			pinctrl-names = "default";
			pinctrl-0 = <0x82>;
			int-n-gpios = <0x34 0x02 0x00>;
			vbus-5v-gpios = <0x38 0x00 0x00>;
			status = "disabled";
			phandle = <0x2d>;
		};

		mpu6500@68 {
			status = "disabled";
			compatible = "invensense,mpu6500";
			reg = <0x68>;
			irq-gpio = <0x34 0x16 0x01>;
			mpu-int_config = <0x10>;
			mpu-level_shifter = <0x00>;
			mpu-orientation = <0x00 0x01 0x00 0x01 0x00 0x00 0x00 0x00 0x01>;
			orientation-x = <0x01>;
			orientation-y = <0x00>;
			orientation-z = <0x00>;
			mpu-debug = <0x01>;
		};

		cw2015@62 {
			status = "okay";
			compatible = "cw201x";
			reg = <0x62>;
			dc_det_gpio = <0x34 0x01 0x01>;
			bat_config_info = <0x15 0xb5 0x86 0x68 0x4b 0x2e 0x35 0x4e 0x58 0x50 0x43 0x48 0x54 0x5c 0x5c 0x61 0x5c 0x51 0x45 0x40 0x3d 0x45 0x4e 0x58 0x5d 0x4a 0x0b 0x85 0x2a 0x4a 0x5f 0x6a 0x6b 0x6e 0x71 0x6e 0x3d 0x17 0x69 0x11 0x04 0x31 0x3f 0x72 0x8a 0x92 0x92 0x37 0x54 0x77 0x9e 0xa1 0x80 0x96 0xc2 0xcb 0x2f 0x00 0x64 0xa5 0xb5 0x15 0x48 0x09>;
			monitor_sec = <0x05>;
			virtual_power = <0x00>;
		};

		sensor@18 {
			status = "disabled";
			compatible = "bma2xx_acc";
			reg = <0x18>;
			type = <0x02>;
			poll_delay_ms = <0x1e>;
			layout = <0x08>;
		};

		ts@40 {
			status = "okay";
			compatible = "GSL,GSL3673_800X1280";
			reg = <0x40>;
			irq_gpio_number = <0x19 0x10 0x08>;
			rst_gpio_number = <0x19 0x11 0x00>;
		};
	};

	i2c@ff3e0000 {
		compatible = "rockchip,rk3399-i2c";
		reg = <0x00 0xff3e0000 0x00 0x1000>;
		clocks = <0x30 0x0b 0x30 0x1d>;
		clock-names = "i2c\0pclk";
		interrupts = <0x00 0x3a 0x04 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0x83>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "disabled";
	};

	pcie-phy {
		compatible = "rockchip,rk3399-pcie-phy";
		#phy-cells = <0x00>;
		rockchip,grf = <0x16>;
		clocks = <0x08 0x8a>;
		clock-names = "refclk";
		resets = <0x08 0x87>;
		reset-names = "phy";
		status = "disabled";
		phandle = <0x86>;
	};

	pcie@f8000000 {
		compatible = "rockchip,rk3399-pcie";
		#address-cells = <0x03>;
		#size-cells = <0x02>;
		aspm-no-l0s;
		clocks = <0x08 0xc5 0x08 0xc4 0x08 0x147 0x08 0xa0>;
		clock-names = "aclk\0aclk-perf\0hclk\0pm";
		bus-range = <0x00 0x1f>;
		max-link-speed = <0x01>;
		linux,pci-domain = <0x00>;
		msi-map = <0x00 0x84 0x00 0x1000>;
		interrupts = <0x00 0x31 0x04 0x00 0x00 0x32 0x04 0x00 0x00 0x33 0x04 0x00>;
		interrupt-names = "sys\0legacy\0client";
		#interrupt-cells = <0x01>;
		interrupt-map-mask = <0x00 0x00 0x00 0x07>;
		interrupt-map = <0x00 0x00 0x00 0x01 0x85 0x00 0x00 0x00 0x00 0x02 0x85 0x01 0x00 0x00 0x00 0x03 0x85 0x02 0x00 0x00 0x00 0x04 0x85 0x03>;
		phys = <0x86>;
		phy-names = "pcie-phy";
		ranges = <0x83000000 0x00 0xfa000000 0x00 0xfa000000 0x00 0x1e00000 0x81000000 0x00 0xfbe00000 0x00 0xfbe00000 0x00 0x100000>;
		reg = <0x00 0xf8000000 0x00 0x2000000 0x00 0xfd000000 0x00 0x1000000>;
		reg-names = "axi-base\0apb-base";
		resets = <0x08 0x82 0x08 0x83 0x08 0x84 0x08 0x85 0x08 0x86 0x08 0x81 0x08 0x80>;
		reset-names = "core\0mgmt\0mgmt-sticky\0pipe\0pm\0pclk\0aclk";
		status = "disabled";
		ep-gpios = <0x38 0x04 0x00>;
		num-lanes = <0x04>;
		pinctrl-names = "default";
		pinctrl-0 = <0x87>;

		interrupt-controller {
			interrupt-controller;
			#address-cells = <0x00>;
			#interrupt-cells = <0x01>;
			phandle = <0x85>;
		};
	};

	pwm@ff420000 {
		compatible = "rockchip,rk3399-pwm\0rockchip,rk3288-pwm";
		reg = <0x00 0xff420000 0x00 0x10>;
		#pwm-cells = <0x03>;
		pinctrl-names = "active";
		pinctrl-0 = <0x88>;
		clocks = <0x30 0x1e>;
		clock-names = "pwm";
		status = "okay";
		phandle = <0xca>;
	};

	pwm@ff420010 {
		compatible = "rockchip,rk3399-pwm\0rockchip,rk3288-pwm";
		reg = <0x00 0xff420010 0x00 0x10>;
		#pwm-cells = <0x03>;
		pinctrl-names = "active";
		pinctrl-0 = <0x89>;
		clocks = <0x30 0x1e>;
		clock-names = "pwm";
		status = "disabled";
	};

	pwm@ff420020 {
		compatible = "rockchip,rk3399-pwm\0rockchip,rk3288-pwm";
		reg = <0x00 0xff420020 0x00 0x10>;
		#pwm-cells = <0x03>;
		pinctrl-names = "active";
		pinctrl-0 = <0x8a>;
		clocks = <0x30 0x1e>;
		clock-names = "pwm";
		status = "okay";
		phandle = <0xd2>;
	};

	pwm@ff420030 {
		compatible = "rockchip,rk3399-pwm\0rockchip,rk3288-pwm";
		reg = <0x00 0xff420030 0x00 0x10>;
		#pwm-cells = <0x03>;
		pinctrl-names = "active";
		pinctrl-0 = <0x8b>;
		clocks = <0x30 0x1e>;
		clock-names = "pwm";
		status = "disabled";
	};

	dfi@ff630000 {
		reg = <0x00 0xff630000 0x00 0x4000>;
		compatible = "rockchip,rk3399-dfi";
		rockchip,pmu = <0x8c>;
		clocks = <0x08 0x179>;
		clock-names = "pclk_ddr_mon";
		status = "okay";
		phandle = <0x8d>;
	};

	dmc {
		compatible = "rockchip,rk3399-dmc";
		devfreq-events = <0x8d>;
		interrupts = <0x00 0x01 0x04 0x00>;
		clocks = <0x08 0xaa>;
		clock-names = "dmc_clk";
		ddr_timing = <0x8e>;
		upthreshold = <0x28>;
		downdifferential = <0x14>;
		system-status-freq = <0x01 0xd0fc0 0x08 0x65900 0x02 0x65900 0x20 0xd0fc0 0x10 0xd0fc0 0x10000 0xd0fc0 0x2000 0xd0fc0 0x1000 0xd0fc0 0xc00 0xd0fc0 0x4000 0xd0fc0>;
		vop-pn-msch-readlatency = <0x00 0x00 0x04 0x20>;
		auto-min-freq = <0x65900>;
		auto-freq-en = <0x00>;
		status = "okay";
		operating-points-v2 = <0x8f>;
		center-supply = <0x90>;
		vop-bw-dmc-freq = <0x00 0x241 0x65900 0x242 0x1869f 0xd0fc0>;
		phandle = <0xae>;
	};

	vpu_service@ff650000 {
		compatible = "rockchip,vpu_service";
		rockchip,grf = <0x16>;
		iommus = <0x91>;
		iommu_enabled = <0x01>;
		reg = <0x00 0xff650000 0x00 0x800>;
		interrupts = <0x00 0x71 0x04 0x00 0x00 0x72 0x04 0x00>;
		interrupt-names = "irq_dec\0irq_enc";
		clocks = <0x08 0xeb 0x08 0x1ea>;
		clock-names = "aclk_vcodec\0hclk_vcodec";
		resets = <0x08 0x53 0x08 0x51>;
		reset-names = "video_h\0video_a";
		power-domains = <0x17 0x1f>;
		dev_mode = <0x00>;
		allocator = <0x01>;
		status = "okay";
	};

	iommu@ff650800 {
		compatible = "rockchip,iommu";
		reg = <0x00 0xff650800 0x00 0x40>;
		interrupts = <0x00 0x73 0x04 0x00>;
		interrupt-names = "vpu_mmu";
		clocks = <0x08 0xeb 0x08 0x1ea>;
		clock-names = "aclk\0hclk";
		power-domains = <0x17 0x1f>;
		#iommu-cells = <0x00>;
		phandle = <0x91>;
	};

	rkvdec@ff660000 {
		compatible = "rockchip,rkvdec";
		rockchip,grf = <0x16>;
		iommus = <0x92>;
		iommu_enabled = <0x01>;
		reg = <0x00 0xff660000 0x00 0x400>;
		interrupts = <0x00 0x74 0x04 0x00>;
		interrupt-names = "irq_dec";
		clocks = <0x08 0xed 0x08 0x1ec 0x08 0x9f 0x08 0x9e>;
		clock-names = "aclk_vcodec\0hclk_vcodec\0clk_cabac\0clk_core";
		resets = <0x08 0x5b 0x08 0x59 0x08 0x5c 0x08 0x5d 0x08 0x58 0x08 0x5a>;
		reset-names = "video_h\0video_a\0video_core\0video_cabac\0niu_a\0niu_h";
		power-domains = <0x17 0x20>;
		dev_mode = <0x02>;
		allocator = <0x01>;
		status = "okay";
	};

	iommu@ff660480 {
		compatible = "rockchip,iommu";
		reg = <0x00 0xff660480 0x00 0x40 0x00 0xff6604c0 0x00 0x40>;
		interrupts = <0x00 0x75 0x04 0x00>;
		interrupt-names = "vdec_mmu";
		clocks = <0x08 0xed 0x08 0x1ec>;
		clock-names = "aclk\0hclk";
		power-domains = <0x17 0x20>;
		#iommu-cells = <0x00>;
		phandle = <0x92>;
	};

	iep@ff670000 {
		compatible = "rockchip,iep";
		iommu_enabled = <0x01>;
		iommus = <0x93>;
		reg = <0x00 0xff670000 0x00 0x800>;
		interrupts = <0x00 0x2a 0x04 0x00>;
		clocks = <0x08 0xe1 0x08 0x1dd>;
		clock-names = "aclk_iep\0hclk_iep";
		power-domains = <0x17 0x22>;
		allocator = <0x01>;
		version = <0x02>;
		status = "okay";
	};

	iommu@ff670800 {
		compatible = "rockchip,iommu";
		reg = <0x00 0xff670800 0x00 0x40>;
		interrupts = <0x00 0x2a 0x04 0x00>;
		interrupt-names = "iep_mmu";
		#iommu-cells = <0x00>;
		status = "okay";
		phandle = <0x93>;
	};

	rga@ff680000 {
		compatible = "rockchip,rga2";
		reg = <0x00 0xff680000 0x00 0x1000>;
		interrupts = <0x00 0x37 0x04 0x00>;
		clocks = <0x08 0xdc 0x08 0x1e5 0x08 0x6d>;
		clock-names = "aclk_rga\0hclk_rga\0clk_rga";
		resets = <0x08 0x6a 0x08 0x67 0x08 0x69>;
		reset-names = "core\0axi\0ahb";
		power-domains = <0x17 0x21>;
		status = "okay";
		dev_mode = <0x01>;
		dma-coherent;
	};

	efuse@ff690000 {
		compatible = "rockchip,rk3399-efuse";
		reg = <0x00 0xff690000 0x00 0x80>;
		#address-cells = <0x01>;
		#size-cells = <0x01>;
		clocks = <0x08 0x17d>;
		clock-names = "pclk_efuse";

		specification-serial-number@6 {
			reg = <0x06 0x01>;
			bits = <0x00 0x05>;
			phandle = <0xc7>;
		};

		cpu-id@7 {
			reg = <0x07 0x10>;
			phandle = <0xda>;
		};

		cpu-leakage@17 {
			reg = <0x17 0x01>;
			phandle = <0xc8>;
		};

		gpu-leakage@18 {
			reg = <0x18 0x01>;
			phandle = <0xc9>;
		};

		center-leakage@19 {
			reg = <0x19 0x01>;
		};

		cpu-leakage@1a {
			reg = <0x1a 0x01>;
			phandle = <0xc6>;
		};

		logic-leakage@1b {
			reg = <0x1b 0x01>;
		};

		wafer-info@1c {
			reg = <0x1c 0x01>;
		};
	};

	pmu-clock-controller@ff750000 {
		compatible = "rockchip,rk3399-pmucru";
		reg = <0x00 0xff750000 0x00 0x1000>;
		#clock-cells = <0x01>;
		#reset-cells = <0x01>;
		assigned-clocks = <0x30 0x01 0x30 0x2c>;
		assigned-clock-rates = <0x284af100 0x5c81a40>;
		phandle = <0x30>;
	};

	clock-controller@ff760000 {
		compatible = "rockchip,rk3399-cru";
		reg = <0x00 0xff760000 0x00 0x1000>;
		#clock-cells = <0x01>;
		#reset-cells = <0x01>;
		assigned-clocks = <0x08 0xc0 0x08 0xc2 0x08 0x1c2 0x08 0x4c 0x08 0xf0 0x08 0xcd 0x08 0x1cd 0x08 0x9f 0x08 0x9e 0x08 0xf4 0x08 0xbe 0x08 0xc9 0x08 0x186 0x08 0xd5 0x08 0x88 0x08 0x87 0x08 0x08 0x08 0x09 0x08 0x06 0x08 0xd0 0x08 0x05 0x08 0xc0 0x08 0x1c0 0x08 0x140 0x08 0xc2 0x08 0x1c1 0x08 0x142 0x08 0x1c2 0x08 0x143 0x08 0x41 0x08 0x42 0x08 0x43 0x08 0x44 0x08 0x45 0x08 0x46 0x08 0x47 0x08 0x48 0x08 0x49 0x08 0x4a 0x08 0x4b 0x08 0xfa 0x08 0xe5 0x08 0xe6 0x08 0x6b 0x08 0x6c 0x08 0x16a 0x08 0xde 0x08 0xe3 0x08 0x1cd 0x08 0x85 0x08 0x86 0x08 0x4e 0x08 0xf0 0x08 0xcd 0x08 0xe1 0x08 0xdc 0x08 0x6d 0x08 0xed 0x08 0xeb 0x08 0x178 0x08 0xd5 0x08 0x9f 0x08 0x9e 0x08 0xf4 0x08 0xbe 0x08 0xc9 0x08 0x186 0x08 0x88 0x08 0x87 0x08 0xd9 0x08 0x1d9 0x08 0xdb 0x08 0x1db>;
		assigned-clock-rates = <0x47868c0 0x2faf080 0x2faf080 0x2faf080 0x2faf080 0x5f5e100 0x2faf080 0x8f0d180 0x8f0d180 0x8f0d180 0x2faf080 0x8f0d180 0x2faf080 0x5f5e100 0x47868c0 0x47868c0 0x30a32c00 0x30a32c00 0x23c34600 0xbebc200 0x2faf0800 0x8f0d180 0x47868c0 0x23c3460 0x11e1a300 0x5f5e100 0x2faf080 0x5f5e100 0x2faf080 0x5f5e100 0x5f5e100 0x5f5e100 0x5f5e100 0x5f5e100 0x5f5e100 0x2faf080 0x2faf080 0x2faf080 0x2faf080 0x2faf080 0xbebc200 0x17d78400 0x17d78400 0x5f5e100 0x5f5e100 0x5f5e100 0x17d78400 0x17d78400 0xbebc200 0x5f5e100 0xbebc200 0xbebc200 0x5f5e100 0x17d78400 0x17d78400 0x17d78400 0x17d78400 0x11e1a300 0x17d78400 0xbebc200 0x17d78400 0x11e1a300 0x11e1a300 0x11e1a300 0x11e1a300 0x11e1a300 0x5f5e100 0x8f0d180 0x8f0d180 0x17d78400 0x5f5e100 0x17d78400 0x5f5e100>;
		phandle = <0x08>;
	};

	syscon@ff770000 {
		compatible = "rockchip,rk3399-grf\0syscon\0simple-mfd";
		reg = <0x00 0xff770000 0x00 0x10000>;
		#address-cells = <0x01>;
		#size-cells = <0x01>;
		phandle = <0x16>;

		io-domains {
			compatible = "rockchip,rk3399-io-voltage-domain";
			status = "okay";
			bt656-supply = <0x94>;
			audio-supply = <0x95>;
			sdmmc-supply = <0x21>;
			gpio1830-supply = <0x96>;
		};

		phy@f780 {
			compatible = "rockchip,rk3399-emmc-phy";
			reg = <0xf780 0x24>;
			clocks = <0x97>;
			clock-names = "emmcclk";
			#phy-cells = <0x00>;
			status = "okay";
			phandle = <0x26>;
		};

		usb2-phy@e450 {
			compatible = "rockchip,rk3399-usb2phy";
			reg = <0xe450 0x10>;
			clocks = <0x08 0x7b>;
			clock-names = "phyclk";
			#clock-cells = <0x00>;
			clock-output-names = "clk_usbphy0_480m";
			status = "okay";

			otg-port {
				#phy-cells = <0x00>;
				interrupts = <0x00 0x67 0x04 0x00 0x00 0x68 0x04 0x00 0x00 0x6a 0x04 0x00>;
				interrupt-names = "otg-bvalid\0otg-id\0linestate";
				status = "okay";
				phandle = <0x29>;
			};

			host-port {
				#phy-cells = <0x00>;
				interrupts = <0x00 0x1b 0x04 0x00>;
				interrupt-names = "linestate";
				status = "okay";
				vbus-supply = <0x98>;
				phandle = <0x27>;
			};
		};

		usb2-phy@e460 {
			compatible = "rockchip,rk3399-usb2phy";
			reg = <0xe460 0x10>;
			clocks = <0x08 0x7c>;
			clock-names = "phyclk";
			#clock-cells = <0x00>;
			clock-output-names = "clk_usbphy1_480m";
			status = "okay";

			otg-port {
				#phy-cells = <0x00>;
				interrupts = <0x00 0x6c 0x04 0x00 0x00 0x6d 0x04 0x00 0x00 0x6f 0x04 0x00>;
				interrupt-names = "otg-bvalid\0otg-id\0linestate";
				status = "okay";
				vbus-supply = <0x99>;
				phandle = <0x2a>;
			};

			host-port {
				#phy-cells = <0x00>;
				interrupts = <0x00 0x1f 0x04 0x00>;
				interrupt-names = "linestate";
				status = "okay";
				vbus-supply = <0x9a>;
				phandle = <0x28>;
			};
		};

		mipi-dphy-rx0 {
			compatible = "rockchip,rk3399-mipi-dphy";
			clocks = <0x08 0x77 0x08 0xa5 0x08 0x16f>;
			clock-names = "dphy-ref\0dphy-cfg\0grf";
			power-domains = <0x17 0x0f>;
			status = "disabled";
		};

		pvtm {
			compatible = "rockchip,rk3399-pvtm";
			clocks = <0x08 0x73 0x08 0x74 0x08 0x75 0x08 0x76>;
			clock-names = "core_l\0core_b\0gpu\0ddr";
			resets = <0x08 0x1f 0x08 0x2f 0x08 0x123 0x08 0x4f>;
			reset-names = "core_l\0core_b\0gpu\0ddr";
			status = "okay";
		};
	};

	phy@ff7c0000 {
		compatible = "rockchip,rk3399-typec-phy";
		reg = <0x00 0xff7c0000 0x00 0x40000>;
		rockchip,grf = <0x16>;
		#phy-cells = <0x01>;
		clocks = <0x08 0x7e 0x08 0x7d>;
		clock-names = "tcpdcore\0tcpdphy-ref";
		assigned-clocks = <0x08 0x7e>;
		assigned-clock-rates = <0x2faf080>;
		power-domains = <0x17 0x08>;
		resets = <0x08 0x95 0x08 0x94 0x08 0x14c>;
		reset-names = "uphy\0uphy-pipe\0uphy-tcphy";
		rockchip,typec-conn-dir = <0xe580 0x00 0x10>;
		rockchip,usb3tousb2-en = <0xe580 0x03 0x13>;
		rockchip,usb3-host-disable = <0x2434 0x00 0x10>;
		rockchip,usb3-host-port = <0x2434 0x0c 0x1c>;
		rockchip,external-psm = <0xe588 0x0e 0x1e>;
		rockchip,pipe-status = <0xe5c0 0x00 0x00>;
		rockchip,uphy-dp-sel = <0x6268 0x13 0x13>;
		status = "disabled";
		extcon = <0x2d>;

		dp-port {
			#phy-cells = <0x00>;
			phandle = <0x2c>;
		};

		usb3-port {
			#phy-cells = <0x00>;
		};
	};

	phy@ff800000 {
		compatible = "rockchip,rk3399-typec-phy";
		reg = <0x00 0xff800000 0x00 0x40000>;
		rockchip,grf = <0x16>;
		#phy-cells = <0x01>;
		clocks = <0x08 0x80 0x08 0x7f>;
		clock-names = "tcpdcore\0tcpdphy-ref";
		assigned-clocks = <0x08 0x80>;
		assigned-clock-rates = <0x2faf080>;
		power-domains = <0x17 0x09>;
		resets = <0x08 0x9d 0x08 0x9c 0x08 0x14d>;
		reset-names = "uphy\0uphy-pipe\0uphy-tcphy";
		rockchip,typec-conn-dir = <0xe58c 0x00 0x10>;
		rockchip,usb3tousb2-en = <0xe58c 0x03 0x13>;
		rockchip,usb3-host-disable = <0x2444 0x00 0x10>;
		rockchip,usb3-host-port = <0x2444 0x0c 0x1c>;
		rockchip,external-psm = <0xe594 0x0e 0x1e>;
		rockchip,pipe-status = <0xe5c0 0x10 0x10>;
		rockchip,uphy-dp-sel = <0x6268 0x03 0x13>;
		status = "okay";

		dp-port {
			#phy-cells = <0x00>;
		};

		usb3-port {
			#phy-cells = <0x00>;
			phandle = <0x2b>;
		};
	};

	watchdog@ff848000 {
		compatible = "snps,dw-wdt";
		reg = <0x00 0xff848000 0x00 0x100>;
		clocks = <0x08 0x17c>;
		interrupts = <0x00 0x78 0x04 0x00>;
	};

	rktimer@ff850000 {
		compatible = "rockchip,rk3399-timer";
		reg = <0x00 0xff850000 0x00 0x1000>;
		interrupts = <0x00 0x51 0x04 0x00>;
		clocks = <0x08 0x168 0x08 0x5a>;
		clock-names = "pclk\0timer";
	};

	spdif@ff870000 {
		compatible = "rockchip,rk3399-spdif";
		reg = <0x00 0xff870000 0x00 0x1000>;
		interrupts = <0x00 0x42 0x04 0x00>;
		dmas = <0x59 0x07>;
		dma-names = "tx";
		clock-names = "mclk\0hclk";
		clocks = <0x08 0x55 0x08 0x1d7>;
		pinctrl-names = "default";
		pinctrl-0 = <0x9b>;
		power-domains = <0x17 0x1c>;
		status = "okay";
		i2c-scl-rising-time-ns = <0x1c2>;
		i2c-scl-falling-time-ns = <0x0f>;
		#sound-dai-cells = <0x00>;
		assigned-clocks = <0x08 0xb1>;
		assigned-clock-parents = <0x08 0x05>;
		phandle = <0xcb>;
	};

	i2s@ff880000 {
		compatible = "rockchip,rk3399-i2s\0rockchip,rk3066-i2s";
		reg = <0x00 0xff880000 0x00 0x1000>;
		rockchip,grf = <0x16>;
		interrupts = <0x00 0x27 0x04 0x00>;
		dmas = <0x59 0x00 0x59 0x01>;
		dma-names = "tx\0rx";
		clock-names = "i2s_clk\0i2s_hclk";
		clocks = <0x08 0x56 0x08 0x1d4>;
		pinctrl-names = "default";
		pinctrl-0 = <0x9c>;
		power-domains = <0x17 0x1c>;
		status = "okay";
		rockchip,i2s-broken-burst-len;
		rockchip,playback-channels = <0x08>;
		rockchip,capture-channels = <0x08>;
		#sound-dai-cells = <0x00>;
		assigned-clocks = <0x08 0xae>;
		assigned-clock-parents = <0x08 0x05>;
		phandle = <0xd3>;
	};

	i2s@ff890000 {
		compatible = "rockchip,rk3399-i2s\0rockchip,rk3066-i2s";
		reg = <0x00 0xff890000 0x00 0x1000>;
		interrupts = <0x00 0x28 0x04 0x00>;
		dmas = <0x59 0x02 0x59 0x03>;
		dma-names = "tx\0rx";
		clock-names = "i2s_clk\0i2s_hclk";
		clocks = <0x08 0x57 0x08 0x1d5>;
		pinctrl-names = "default";
		pinctrl-0 = <0x9d>;
		power-domains = <0x17 0x1c>;
		status = "disabled";
		assigned-clocks = <0x08 0xaf>;
		assigned-clock-parents = <0x08 0x05>;
	};

	i2s@ff8a0000 {
		compatible = "rockchip,rk3399-i2s\0rockchip,rk3066-i2s";
		reg = <0x00 0xff8a0000 0x00 0x1000>;
		interrupts = <0x00 0x29 0x04 0x00>;
		dmas = <0x59 0x04 0x59 0x05>;
		dma-names = "tx\0rx";
		clock-names = "i2s_clk\0i2s_hclk";
		clocks = <0x08 0x58 0x08 0x1d6>;
		power-domains = <0x17 0x1c>;
		status = "okay";
		#sound-dai-cells = <0x00>;
		assigned-clocks = <0x08 0xb0>;
		assigned-clock-parents = <0x08 0x05>;
		rockchip,bclk-fs = <0x80>;
		phandle = <0xd6>;
	};

	gpu@ff9a0000 {
		compatible = "arm,malit860\0arm,malit86x\0arm,malit8xx\0arm,mali-midgard";
		reg = <0x00 0xff9a0000 0x00 0x10000>;
		interrupts = <0x00 0x13 0x04 0x00 0x00 0x14 0x04 0x00 0x00 0x15 0x04 0x00>;
		interrupt-names = "GPU\0JOB\0MMU";
		clocks = <0x08 0xd0>;
		clock-names = "clk_mali";
		#cooling-cells = <0x02>;
		power-domains = <0x17 0x23>;
		power-off-delay-ms = <0xc8>;
		status = "okay";
		operating-points-v2 = <0x9e>;
		mali-supply = <0x9f>;
		phandle = <0x60>;

		power_model {
			compatible = "arm,mali-simple-power-model";
			voltage = <0x384>;
			frequency = <0x1f4>;
			static-power = <0x12c>;
			dynamic-power = <0x18c>;
			ts = <0x7d00 0x125c 0xffffffb0 0x02>;
			thermal-zone = "gpu-thermal";
		};
	};

	vop@ff8f0000 {
		compatible = "rockchip,rk3399-vop-lit";
		reg = <0x00 0xff8f0000 0x00 0x600 0x00 0xff8f1c00 0x00 0x200 0x00 0xff8f2000 0x00 0x400>;
		reg-names = "regs\0cabc_lut\0gamma_lut";
		interrupts = <0x00 0x77 0x04 0x00>;
		clocks = <0x08 0xdb 0x08 0xb5 0x08 0x1db 0x08 0xb7>;
		clock-names = "aclk_vop\0dclk_vop\0hclk_vop\0dclk_source";
		resets = <0x08 0x113 0x08 0x117 0x08 0x119>;
		reset-names = "axi\0ahb\0dclk";
		power-domains = <0x17 0x12>;
		iommus = <0xa0>;
		status = "okay";
		assigned-clocks = <0x08 0xb7>;
		assigned-clock-parents = <0x08 0x07>;

		port {
			#address-cells = <0x01>;
			#size-cells = <0x00>;
			phandle = <0xbe>;

			endpoint@0 {
				reg = <0x00>;
				remote-endpoint = <0xa1>;
				phandle = <0xb5>;
			};

			endpoint@1 {
				reg = <0x01>;
				remote-endpoint = <0xa2>;
				phandle = <0xbc>;
			};

			endpoint@2 {
				reg = <0x02>;
				remote-endpoint = <0xa3>;
				phandle = <0xb3>;
			};

			endpoint@3 {
				reg = <0x03>;
				remote-endpoint = <0xa4>;
				phandle = <0x2f>;
			};

			endpoint@4 {
				reg = <0x04>;
				remote-endpoint = <0xa5>;
				phandle = <0xb9>;
			};
		};
	};

	voppwm@ff8f01a0 {
		compatible = "rockchip,vop-pwm";
		reg = <0x00 0xff8f01a0 0x00 0x10>;
		#pwm-cells = <0x03>;
		pinctrl-names = "active";
		pinctrl-0 = <0xa6>;
		clocks = <0x08 0x6c>;
		clock-names = "pwm";
		status = "disabled";
	};

	iommu@ff8f3f00 {
		compatible = "rockchip,iommu";
		reg = <0x00 0xff8f3f00 0x00 0x100>;
		interrupts = <0x00 0x77 0x04 0x00>;
		interrupt-names = "vopl_mmu";
		clocks = <0x08 0xdb 0x08 0x1db>;
		clock-names = "aclk\0hclk";
		power-domains = <0x17 0x12>;
		#iommu-cells = <0x00>;
		status = "okay";
		phandle = <0xa0>;
	};

	vop@ff900000 {
		compatible = "rockchip,rk3399-vop-big";
		reg = <0x00 0xff900000 0x00 0x600 0x00 0xff901c00 0x00 0x200 0x00 0xff902000 0x00 0x1000>;
		reg-names = "regs\0cabc_lut\0gamma_lut";
		interrupts = <0x00 0x76 0x04 0x00>;
		clocks = <0x08 0xd9 0x08 0xb4 0x08 0x1d9 0x08 0xb6>;
		clock-names = "aclk_vop\0dclk_vop\0hclk_vop\0dclk_source";
		resets = <0x08 0x112 0x08 0x116 0x08 0x118>;
		reset-names = "axi\0ahb\0dclk";
		power-domains = <0x17 0x11>;
		iommus = <0xa7>;
		status = "okay";
		assigned-clocks = <0x08 0xb6>;
		assigned-clock-parents = <0x08 0x04>;

		port {
			#address-cells = <0x01>;
			#size-cells = <0x00>;
			phandle = <0xbd>;

			endpoint@0 {
				reg = <0x00>;
				remote-endpoint = <0xa8>;
				phandle = <0xbb>;
			};

			endpoint@1 {
				reg = <0x01>;
				remote-endpoint = <0xa9>;
				phandle = <0xb4>;
			};

			endpoint@2 {
				reg = <0x02>;
				remote-endpoint = <0xaa>;
				phandle = <0xb2>;
			};

			endpoint@3 {
				reg = <0x03>;
				remote-endpoint = <0xab>;
				phandle = <0x2e>;
			};

			endpoint@4 {
				reg = <0x04>;
				remote-endpoint = <0xac>;
				phandle = <0xb8>;
			};
		};
	};

	voppwm@ff9001a0 {
		compatible = "rockchip,vop-pwm";
		reg = <0x00 0xff9001a0 0x00 0x10>;
		#pwm-cells = <0x03>;
		pinctrl-names = "active";
		pinctrl-0 = <0xad>;
		clocks = <0x08 0x6b>;
		clock-names = "pwm";
		status = "disabled";
	};

	iommu@ff903f00 {
		compatible = "rockchip,iommu";
		reg = <0x00 0xff903f00 0x00 0x100>;
		interrupts = <0x00 0x76 0x04 0x00>;
		interrupt-names = "vopb_mmu";
		clocks = <0x08 0xd9 0x08 0x1d9>;
		clock-names = "aclk\0hclk";
		power-domains = <0x17 0x11>;
		#iommu-cells = <0x00>;
		status = "okay";
		phandle = <0xa7>;
	};

	rkisp1@ff910000 {
		compatible = "rockchip,rk3399-rkisp1";
		reg = <0x00 0xff910000 0x00 0x4000>;
		interrupts = <0x00 0x2b 0x04 0x00>;
		clocks = <0x08 0x6e 0x08 0xe5 0x08 0x1df 0x08 0xe9 0x08 0x1e3>;
		clock-names = "clk_isp\0aclk_isp\0hclk_isp\0aclk_isp_wrap\0hclk_isp_wrap";
		devfreq = <0xae>;
		power-domains = <0x17 0x13>;
		iommus = <0xaf>;
		status = "disabled";
	};

	iommu@ff914000 {
		compatible = "rockchip,iommu";
		reg = <0x00 0xff914000 0x00 0x100 0x00 0xff915000 0x00 0x100>;
		interrupts = <0x00 0x2b 0x04 0x00>;
		interrupt-names = "isp0_mmu";
		#iommu-cells = <0x00>;
		clocks = <0x08 0xe7 0x08 0x1e1>;
		clock-names = "aclk\0hclk";
		power-domains = <0x17 0x13>;
		rk_iommu,disable_reset_quirk;
		status = "okay";
		phandle = <0xaf>;
	};

	rkisp1@ff920000 {
		compatible = "rockchip,rk3399-rkisp1";
		reg = <0x00 0xff920000 0x00 0x4000>;
		interrupts = <0x00 0x2c 0x04 0x00>;
		clocks = <0x08 0x6f 0x08 0xe6 0x08 0x1e0 0x08 0xea 0x08 0x1e4>;
		clock-names = "clk_isp\0aclk_isp\0hclk_isp\0aclk_isp_wrap\0hclk_isp_wrap";
		devfreq = <0xae>;
		power-domains = <0x17 0x14>;
		iommus = <0xb0>;
		status = "disabled";
	};

	iommu@ff924000 {
		compatible = "rockchip,iommu";
		reg = <0x00 0xff924000 0x00 0x100 0x00 0xff925000 0x00 0x100>;
		interrupts = <0x00 0x2c 0x04 0x00>;
		interrupt-names = "isp1_mmu";
		#iommu-cells = <0x00>;
		clocks = <0x08 0xe8 0x08 0x1e2>;
		clock-names = "aclk\0hclk";
		power-domains = <0x17 0x14>;
		rk_iommu,disable_reset_quirk;
		status = "okay";
		phandle = <0xb0>;
	};

	hdmi@ff940000 {
		compatible = "rockchip,rk3399-dw-hdmi";
		reg = <0x00 0xff940000 0x00 0x20000>;
		reg-io-width = <0x04>;
		rockchip,grf = <0x16>;
		pinctrl-names = "default";
		pinctrl-0 = <0xb1>;
		power-domains = <0x17 0x15>;
		interrupts = <0x00 0x17 0x04 0x00>;
		clocks = <0x08 0x174 0x08 0x71 0x08 0x07 0x08 0x16f 0x08 0x70>;
		clock-names = "iahb\0isfr\0vpll\0grf\0cec";
		status = "okay";
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		#sound-dai-cells = <0x00>;
		ddc-i2c-scl-high-time-ns = <0x2599>;
		ddc-i2c-scl-low-time-ns = <0x2710>;
		phandle = <0xd7>;

		ports {

			port {
				#address-cells = <0x01>;
				#size-cells = <0x00>;

				endpoint@0 {
					reg = <0x00>;
					remote-endpoint = <0xb2>;
					phandle = <0xaa>;
				};

				endpoint@1 {
					reg = <0x01>;
					remote-endpoint = <0xb3>;
					phandle = <0xa3>;
				};
			};
		};
	};

	dsi@ff960000 {
		compatible = "rockchip,rk3399-mipi-dsi";
		reg = <0x00 0xff960000 0x00 0x8000>;
		interrupts = <0x00 0x2d 0x04 0x00>;
		clocks = <0x08 0xa2 0x08 0x170 0x08 0xa3>;
		clock-names = "ref\0pclk\0phy_cfg";
		resets = <0x08 0xfb>;
		reset-names = "apb";
		power-domains = <0x17 0x0f>;
		rockchip,grf = <0x16>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "okay";

		ports {

			port {
				#address-cells = <0x01>;
				#size-cells = <0x00>;

				endpoint@0 {
					reg = <0x00>;
					remote-endpoint = <0xb4>;
					phandle = <0xa9>;
				};

				endpoint@1 {
					reg = <0x01>;
					remote-endpoint = <0xb5>;
					status = "disabled";
					phandle = <0xa1>;
				};
			};
		};

		panel@0 {
			compatible = "simple-panel-dsi";
			reg = <0x00>;
			backlight = <0xb6>;
			enable-gpios = <0x37 0x1d 0x00>;
			prepare-delay-ms = <0x64>;
			enable-delay-ms = <0x64>;
			unprepare-delay-ms = <0x64>;
			disable-delay-ms = <0x64>;
			reset-delay-ms = <0x64>;
			init-delay-ms = <0x64>;
			bl-delay-ms = <0xc8>;
			width-mm = <0x64>;
			height-mm = <0x64>;
			dsi,flags = <0x03>;
			dsi,format = <0x00>;
			dsi,lanes = <0x04>;
			panel-init-sequence = <0x5780111 0x5140129>;

			display-timings {
				native-mode = <0xb7>;

				timing {
					clock-frequency = <0x9d5b340>;
					hactive = <0x4b0>;
					vactive = <0x780>;
					hback-porch = <0x3c>;
					hfront-porch = <0x50>;
					vback-porch = <0x19>;
					vfront-porch = <0x23>;
					hsync-len = <0x2c>;
					vsync-len = <0x05>;
					hsync-active = <0x01>;
					vsync-active = <0x01>;
					de-active = <0x00>;
					pixelclk-active = <0x00>;
					pwm_polarity = <0x01>;
					phandle = <0xb7>;
				};
			};
		};
	};

	dsi@ff968000 {
		compatible = "rockchip,rk3399-mipi-dsi";
		reg = <0x00 0xff968000 0x00 0x8000>;
		interrupts = <0x00 0x2e 0x04 0x00>;
		clocks = <0x08 0xa2 0x08 0x171 0x08 0xa4>;
		clock-names = "ref\0pclk\0phy_cfg";
		resets = <0x08 0xfc>;
		reset-names = "apb";
		power-domains = <0x17 0x0f>;
		rockchip,grf = <0x16>;
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		status = "disabled";

		ports {

			port {
				#address-cells = <0x01>;
				#size-cells = <0x00>;

				endpoint@0 {
					reg = <0x00>;
					remote-endpoint = <0xb8>;
					phandle = <0xac>;
				};

				endpoint@1 {
					reg = <0x01>;
					remote-endpoint = <0xb9>;
					phandle = <0xa5>;
				};
			};
		};
	};

	edp@ff970000 {
		compatible = "rockchip,rk3399-edp";
		reg = <0x00 0xff970000 0x00 0x8000>;
		interrupts = <0x00 0x0a 0x04 0x00>;
		clocks = <0x08 0x16a 0x08 0x16c>;
		clock-names = "dp\0pclk";
		power-domains = <0x17 0x19>;
		resets = <0x08 0x11d>;
		reset-names = "dp";
		rockchip,grf = <0x16>;
		status = "disabled";
		pinctrl-names = "default";
		pinctrl-0 = <0xba>;

		ports {
			#address-cells = <0x01>;
			#size-cells = <0x00>;

			port@0 {
				reg = <0x00>;
				#address-cells = <0x01>;
				#size-cells = <0x00>;

				endpoint@0 {
					reg = <0x00>;
					remote-endpoint = <0xbb>;
					phandle = <0xa8>;
				};

				endpoint@1 {
					reg = <0x01>;
					remote-endpoint = <0xbc>;
					phandle = <0xa2>;
				};
			};
		};
	};

	hdmi-hdcp2@ff988000 {
		compatible = "rockchip,rk3399-hdmi-hdcp2";
		reg = <0x00 0xff988000 0x00 0x2000>;
		interrupts = <0x00 0x16 0x04 0x00>;
		clocks = <0x08 0xe0 0x08 0x176 0x08 0x1e9>;
		clock-names = "aclk_hdcp2\0pclk_hdcp2\0hdcp2_clk_hdmi";
		status = "disabled";
	};

	display-subsystem {
		compatible = "rockchip,display-subsystem";
		ports = <0xbd 0xbe>;
		clocks = <0x08 0x07 0x08 0x04>;
		clock-names = "hdmi-tmds-pll\0default-vop-pll";
		devfreq = <0xae>;
		status = "okay";
		logo-memory-region = <0xbf>;
		secure-memory-region = <0xc0>;

		route {

			route-hdmi {
				status = "disabled";
				logo,uboot = "logo.bmp";
				logo,kernel = "logo_kernel.bmp";
				logo,mode = "center";
				charge_logo,mode = "center";
				connect = <0xb2>;
			};

			route-dsi {
				status = "okay";
				logo,uboot = "logo.bmp";
				logo,kernel = "logo_kernel.bmp";
				logo,mode = "center";
				charge_logo,mode = "center";
				connect = <0xb4>;
			};

			route-dsi1 {
				status = "disabled";
				logo,uboot = "logo.bmp";
				logo,kernel = "logo_kernel.bmp";
				logo,mode = "center";
				charge_logo,mode = "center";
				connect = <0xb9>;
			};

			route-edp {
				status = "disabled";
				logo,uboot = "logo.bmp";
				logo,kernel = "logo_kernel.bmp";
				logo,mode = "center";
				charge_logo,mode = "center";
				connect = <0xbb>;
			};
		};
	};

	nocp-cci-msch0@ffa86000 {
		compatible = "rockchip,rk3399-nocp";
		reg = <0x00 0xffa86000 0x00 0x400>;
	};

	nocp-gpu-msch0@ffa86400 {
		compatible = "rockchip,rk3399-nocp";
		reg = <0x00 0xffa86400 0x00 0x400>;
	};

	nocp-hp-msch0@ffa86800 {
		compatible = "rockchip,rk3399-nocp";
		reg = <0x00 0xffa86800 0x00 0x400>;
	};

	nocp-lp-msch0@ffa86c00 {
		compatible = "rockchip,rk3399-nocp";
		reg = <0x00 0xffa86c00 0x00 0x400>;
	};

	nocp-video-msch0@ffa87000 {
		compatible = "rockchip,rk3399-nocp";
		reg = <0x00 0xffa87000 0x00 0x400>;
	};

	nocp-vio0-msch0@ffa87400 {
		compatible = "rockchip,rk3399-nocp";
		reg = <0x00 0xffa87400 0x00 0x400>;
	};

	nocp-vio1-msch0@ffa87800 {
		compatible = "rockchip,rk3399-nocp";
		reg = <0x00 0xffa87800 0x00 0x400>;
	};

	nocp-cci-msch1@ffa8e000 {
		compatible = "rockchip,rk3399-nocp";
		reg = <0x00 0xffa8e000 0x00 0x400>;
	};

	nocp-gpu-msch1@ffa8e400 {
		compatible = "rockchip,rk3399-nocp";
		reg = <0x00 0xffa8e400 0x00 0x400>;
	};

	nocp-hp-msch1@ffa8e800 {
		compatible = "rockchip,rk3399-nocp";
		reg = <0x00 0xffa8e800 0x00 0x400>;
	};

	nocp-lp-msch1@ffa8ec00 {
		compatible = "rockchip,rk3399-nocp";
		reg = <0x00 0xffa8ec00 0x00 0x400>;
	};

	nocp-video-msch1@ffa8f000 {
		compatible = "rockchip,rk3399-nocp";
		reg = <0x00 0xffa8f000 0x00 0x400>;
	};

	nocp-vio0-msch1@ffa8f400 {
		compatible = "rockchip,rk3399-nocp";
		reg = <0x00 0xffa8f400 0x00 0x400>;
	};

	nocp-vio1-msch1@ffa8f800 {
		compatible = "rockchip,rk3399-nocp";
		reg = <0x00 0xffa8f800 0x00 0x400>;
	};

	pinctrl {
		compatible = "rockchip,rk3399-pinctrl";
		rockchip,grf = <0x16>;
		rockchip,pmu = <0x8c>;
		#address-cells = <0x02>;
		#size-cells = <0x02>;
		ranges;

		gpio0@ff720000 {
			compatible = "rockchip,gpio-bank";
			reg = <0x00 0xff720000 0x00 0x100>;
			clocks = <0x30 0x17>;
			interrupts = <0x00 0x0e 0x04 0x00>;
			gpio-controller;
			#gpio-cells = <0x02>;
			interrupt-controller;
			#interrupt-cells = <0x02>;
			phandle = <0xd0>;
		};

		gpio1@ff730000 {
			compatible = "rockchip,gpio-bank";
			reg = <0x00 0xff730000 0x00 0x100>;
			clocks = <0x30 0x18>;
			interrupts = <0x00 0x0f 0x04 0x00>;
			gpio-controller;
			#gpio-cells = <0x02>;
			interrupt-controller;
			#interrupt-cells = <0x02>;
			phandle = <0x34>;
		};

		gpio2@ff780000 {
			compatible = "rockchip,gpio-bank";
			reg = <0x00 0xff780000 0x00 0x100>;
			clocks = <0x08 0x150>;
			interrupts = <0x00 0x10 0x04 0x00>;
			gpio-controller;
			#gpio-cells = <0x02>;
			interrupt-controller;
			#interrupt-cells = <0x02>;
			phandle = <0x38>;
		};

		gpio3@ff788000 {
			compatible = "rockchip,gpio-bank";
			reg = <0x00 0xff788000 0x00 0x100>;
			clocks = <0x08 0x151>;
			interrupts = <0x00 0x11 0x04 0x00>;
			gpio-controller;
			#gpio-cells = <0x02>;
			interrupt-controller;
			#interrupt-cells = <0x02>;
			phandle = <0x19>;
		};

		gpio4@ff790000 {
			compatible = "rockchip,gpio-bank";
			reg = <0x00 0xff790000 0x00 0x100>;
			clocks = <0x08 0x152>;
			interrupts = <0x00 0x12 0x04 0x00>;
			gpio-controller;
			#gpio-cells = <0x02>;
			interrupt-controller;
			#interrupt-cells = <0x02>;
			phandle = <0x37>;
		};

		pcfg-pull-up {
			bias-pull-up;
			phandle = <0xc1>;
		};

		pcfg-pull-down {
			bias-pull-down;
			phandle = <0xc5>;
		};

		pcfg-pull-none {
			bias-disable;
			phandle = <0xc3>;
		};

		pcfg-pull-up-20ma {
			bias-pull-up;
			drive-strength = <0x14>;
		};

		pcfg-pull-none-20ma {
			bias-disable;
			drive-strength = <0x14>;
		};

		pcfg-pull-none-18ma {
			bias-disable;
			drive-strength = <0x12>;
		};

		pcfg-pull-none-12ma {
			bias-disable;
			drive-strength = <0x0c>;
			phandle = <0xc4>;
		};

		pcfg-pull-up-8ma {
			bias-pull-up;
			drive-strength = <0x08>;
		};

		pcfg-pull-down-4ma {
			bias-pull-down;
			drive-strength = <0x04>;
		};

		pcfg-pull-up-2ma {
			bias-pull-up;
			drive-strength = <0x02>;
		};

		pcfg-pull-down-12ma {
			bias-pull-down;
			drive-strength = <0x0c>;
		};

		pcfg-pull-none-13ma {
			bias-disable;
			drive-strength = <0x0d>;
			phandle = <0xc2>;
		};

		pcfg-output-high {
			output-high;
		};

		pcfg-output-low {
			output-low;
		};

		pcfg-input {
			input-enable;
		};

		emmc {

			emmc-pwr {
				rockchip,pins = <0x00 0x05 0x01 0xc1>;
			};
		};

		gmac {

			rgmii-pins {
				rockchip,pins = <0x03 0x11 0x01 0xc2 0x03 0x0e 0x01 0xc3 0x03 0x0d 0x01 0xc3 0x03 0x0c 0x01 0xc2 0x03 0x0b 0x01 0xc3 0x03 0x09 0x01 0xc3 0x03 0x08 0x01 0xc3 0x03 0x07 0x01 0xc3 0x03 0x06 0x01 0xc3 0x03 0x05 0x01 0xc2 0x03 0x04 0x01 0xc2 0x03 0x03 0x01 0xc3 0x03 0x02 0x01 0xc3 0x03 0x01 0x01 0xc2 0x03 0x00 0x01 0xc2>;
			};

			rmii-pins {
				rockchip,pins = <0x03 0x0d 0x01 0xc3 0x03 0x0c 0x01 0xc2 0x03 0x0b 0x01 0xc3 0x03 0x0a 0x01 0xc3 0x03 0x09 0x01 0xc3 0x03 0x08 0x01 0xc3 0x03 0x07 0x01 0xc3 0x03 0x06 0x01 0xc3 0x03 0x05 0x01 0xc2 0x03 0x04 0x01 0xc2>;
				phandle = <0x1b>;
			};
		};

		i2c0 {

			i2c0-xfer {
				rockchip,pins = <0x01 0x0f 0x02 0xc3 0x01 0x10 0x02 0xc3>;
				phandle = <0x31>;
			};
		};

		i2c1 {

			i2c1-xfer {
				rockchip,pins = <0x04 0x02 0x01 0xc3 0x04 0x01 0x01 0xc3>;
				phandle = <0x3c>;
			};
		};

		i2c2 {

			i2c2-xfer {
				rockchip,pins = <0x02 0x01 0x02 0xc4 0x02 0x00 0x02 0xc4>;
				phandle = <0x3e>;
			};
		};

		i2c3 {

			i2c3-xfer {
				rockchip,pins = <0x04 0x11 0x01 0xc3 0x04 0x10 0x01 0xc3>;
				phandle = <0x3f>;
			};

			i2c3_gpio {
				rockchip,pins = <0x04 0x11 0x00 0xc3 0x04 0x10 0x00 0xc3>;
			};
		};

		i2c4 {

			i2c4-xfer {
				rockchip,pins = <0x01 0x0c 0x01 0xc3 0x01 0x0b 0x01 0xc3>;
				phandle = <0x81>;
			};
		};

		i2c5 {

			i2c5-xfer {
				rockchip,pins = <0x03 0x0b 0x02 0xc3 0x03 0x0a 0x02 0xc3>;
				phandle = <0x40>;
			};
		};

		i2c6 {

			i2c6-xfer {
				rockchip,pins = <0x02 0x0a 0x02 0xc3 0x02 0x09 0x02 0xc3>;
				phandle = <0x41>;
			};
		};

		i2c7 {

			i2c7-xfer {
				rockchip,pins = <0x02 0x08 0x02 0xc3 0x02 0x07 0x02 0xc3>;
				phandle = <0x42>;
			};
		};

		i2c8 {

			i2c8-xfer {
				rockchip,pins = <0x01 0x15 0x01 0xc3 0x01 0x14 0x01 0xc3>;
				phandle = <0x83>;
			};
		};

		i2s0 {

			i2s0-8ch-bus {
				rockchip,pins = <0x03 0x18 0x01 0xc3 0x03 0x19 0x01 0xc3 0x03 0x1a 0x01 0xc3 0x03 0x1b 0x01 0xc3 0x03 0x1f 0x01 0xc3>;
				phandle = <0x9c>;
			};

			i2s-8ch-mclk {
				rockchip,pins = <0x04 0x00 0x01 0xc3>;
				phandle = <0x3d>;
			};
		};

		i2s1 {

			i2s1-2ch-bus {
				rockchip,pins = <0x04 0x03 0x01 0xc3 0x04 0x04 0x01 0xc3 0x04 0x06 0x01 0xc3 0x04 0x07 0x01 0xc3>;
				phandle = <0x9d>;
			};
		};

		sdio0 {

			sdio0-bus1 {
				rockchip,pins = <0x02 0x14 0x01 0xc1>;
			};

			sdio0-bus4 {
				rockchip,pins = <0x02 0x14 0x01 0xc1 0x02 0x15 0x01 0xc1 0x02 0x16 0x01 0xc1 0x02 0x17 0x01 0xc1>;
				phandle = <0x1d>;
			};

			sdio0-cmd {
				rockchip,pins = <0x02 0x18 0x01 0xc1>;
				phandle = <0x1e>;
			};

			sdio0-clk {
				rockchip,pins = <0x02 0x19 0x01 0xc3>;
				phandle = <0x1f>;
			};

			sdio0-cd {
				rockchip,pins = <0x02 0x1a 0x01 0xc1>;
			};

			sdio0-pwr {
				rockchip,pins = <0x02 0x1b 0x01 0xc1>;
			};

			sdio0-bkpwr {
				rockchip,pins = <0x02 0x1c 0x01 0xc1>;
			};

			sdio0-wp {
				rockchip,pins = <0x00 0x03 0x01 0xc1>;
			};

			sdio0-int {
				rockchip,pins = <0x00 0x04 0x01 0xc1>;
			};
		};

		sdmmc {

			sdmmc-bus1 {
				rockchip,pins = <0x04 0x08 0x01 0xc1>;
			};

			sdmmc-bus4 {
				rockchip,pins = <0x04 0x08 0x01 0xc1 0x04 0x09 0x01 0xc1 0x04 0x0a 0x01 0xc1 0x04 0x0b 0x01 0xc1>;
				phandle = <0x25>;
			};

			sdmmc-clk {
				rockchip,pins = <0x04 0x0c 0x01 0xc3>;
				phandle = <0x22>;
			};

			sdmmc-cmd {
				rockchip,pins = <0x04 0x0d 0x01 0xc1>;
				phandle = <0x23>;
			};

			sdmcc-cd {
				rockchip,pins = <0x00 0x07 0x01 0xc1>;
				phandle = <0x24>;
			};

			sdmmc-wp {
				rockchip,pins = <0x00 0x08 0x01 0xc1>;
			};
		};

		spdif {

			spdif-bus {
				rockchip,pins = <0x04 0x15 0x01 0xc3>;
				phandle = <0x9b>;
			};

			spdif-bus-1 {
				rockchip,pins = <0x03 0x10 0x03 0xc3>;
			};
		};

		spi0 {

			spi0-clk {
				rockchip,pins = <0x03 0x06 0x02 0xc1>;
				phandle = <0x49>;
			};

			spi0-cs0 {
				rockchip,pins = <0x03 0x07 0x02 0xc1>;
				phandle = <0x4c>;
			};

			spi0-cs1 {
				rockchip,pins = <0x03 0x08 0x02 0xc1>;
			};

			spi0-tx {
				rockchip,pins = <0x03 0x05 0x02 0xc1>;
				phandle = <0x4a>;
			};

			spi0-rx {
				rockchip,pins = <0x03 0x04 0x02 0xc1>;
				phandle = <0x4b>;
			};
		};

		spi1 {

			spi1-clk {
				rockchip,pins = <0x01 0x09 0x02 0xc1>;
				phandle = <0x4d>;
			};

			spi1-cs0 {
				rockchip,pins = <0x01 0x0a 0x02 0xc1>;
				phandle = <0x50>;
			};

			spi1-rx {
				rockchip,pins = <0x01 0x07 0x02 0xc1>;
				phandle = <0x4f>;
			};

			spi1-tx {
				rockchip,pins = <0x01 0x08 0x02 0xc1>;
				phandle = <0x4e>;
			};
		};

		spi2 {

			spi2-clk {
				rockchip,pins = <0x02 0x0b 0x01 0xc1>;
				phandle = <0x51>;
			};

			spi2-cs0 {
				rockchip,pins = <0x02 0x0c 0x01 0xc1>;
				phandle = <0x54>;
			};

			spi2-rx {
				rockchip,pins = <0x02 0x09 0x01 0xc1>;
				phandle = <0x53>;
			};

			spi2-tx {
				rockchip,pins = <0x02 0x0a 0x01 0xc1>;
				phandle = <0x52>;
			};
		};

		spi3 {

			spi3-clk {
				rockchip,pins = <0x01 0x11 0x01 0xc1>;
				phandle = <0x7c>;
			};

			spi3-cs0 {
				rockchip,pins = <0x01 0x12 0x01 0xc1>;
				phandle = <0x7f>;
			};

			spi3-rx {
				rockchip,pins = <0x01 0x0f 0x01 0xc1>;
				phandle = <0x7e>;
			};

			spi3-tx {
				rockchip,pins = <0x01 0x10 0x01 0xc1>;
				phandle = <0x7d>;
			};
		};

		spi4 {

			spi4-clk {
				rockchip,pins = <0x03 0x02 0x02 0xc1>;
				phandle = <0x55>;
			};

			spi4-cs0 {
				rockchip,pins = <0x03 0x03 0x02 0xc1>;
				phandle = <0x58>;
			};

			spi4-rx {
				rockchip,pins = <0x03 0x00 0x02 0xc1>;
				phandle = <0x57>;
			};

			spi4-tx {
				rockchip,pins = <0x03 0x01 0x02 0xc1>;
				phandle = <0x56>;
			};
		};

		spi5 {

			spi5-clk {
				rockchip,pins = <0x02 0x16 0x02 0xc1>;
				phandle = <0x5a>;
			};

			spi5-cs0 {
				rockchip,pins = <0x02 0x17 0x02 0xc1>;
				phandle = <0x5d>;
			};

			spi5-rx {
				rockchip,pins = <0x02 0x14 0x02 0xc1>;
				phandle = <0x5c>;
			};

			spi5-tx {
				rockchip,pins = <0x02 0x15 0x02 0xc1>;
				phandle = <0x5b>;
			};
		};

		tsadc {

			otp-gpio {
				rockchip,pins = <0x01 0x06 0x00 0xc3>;
				phandle = <0x61>;
			};

			otp-out {
				rockchip,pins = <0x01 0x06 0x01 0xc3>;
				phandle = <0x62>;
			};
		};

		uart0 {

			uart0-xfer {
				rockchip,pins = <0x02 0x10 0x01 0xc1 0x02 0x11 0x01 0xc3>;
				phandle = <0x43>;
			};

			uart0-cts {
				rockchip,pins = <0x02 0x12 0x01 0xc3>;
				phandle = <0x44>;
			};

			uart0-rts {
				rockchip,pins = <0x02 0x13 0x01 0xc3>;
				phandle = <0xd8>;
			};
		};

		uart1 {

			uart1-xfer {
				rockchip,pins = <0x03 0x0c 0x02 0xc1 0x03 0x0d 0x02 0xc3>;
				phandle = <0x45>;
			};
		};

		uart2a {

			uart2a-xfer {
				rockchip,pins = <0x04 0x08 0x02 0xc1 0x04 0x09 0x02 0xc3>;
			};
		};

		uart2b {

			uart2b-xfer {
				rockchip,pins = <0x04 0x10 0x02 0xc1 0x04 0x11 0x02 0xc3>;
			};
		};

		uart2c {

			uart2c-xfer {
				rockchip,pins = <0x04 0x13 0x01 0xc1 0x04 0x14 0x01 0xc3>;
				phandle = <0x46>;
			};
		};

		uart3 {

			uart3-xfer {
				rockchip,pins = <0x03 0x0e 0x02 0xc1 0x03 0x0f 0x02 0xc3>;
				phandle = <0x47>;
			};

			uart3-cts {
				rockchip,pins = <0x03 0x10 0x02 0xc3>;
			};

			uart3-rts {
				rockchip,pins = <0x03 0x11 0x02 0xc3>;
			};
		};

		uart4 {

			uart4-xfer {
				rockchip,pins = <0x01 0x07 0x01 0xc1 0x01 0x08 0x01 0xc3>;
				phandle = <0x80>;
			};
		};

		uarthdcp {

			uarthdcp-xfer {
				rockchip,pins = <0x04 0x15 0x02 0xc1 0x04 0x16 0x02 0xc3>;
			};
		};

		pwm0 {

			pwm0-pin {
				rockchip,pins = <0x04 0x12 0x01 0xc3>;
				phandle = <0x88>;
			};

			vop0-pwm-pin {
				rockchip,pins = <0x04 0x12 0x02 0xc3>;
				phandle = <0xad>;
			};

			vop1-pwm-pin {
				rockchip,pins = <0x04 0x12 0x03 0xc3>;
				phandle = <0xa6>;
			};
		};

		pwm1 {

			pwm1-pin {
				rockchip,pins = <0x04 0x16 0x01 0xc3>;
				phandle = <0x89>;
			};
		};

		pwm2 {

			pwm2-pin {
				rockchip,pins = <0x01 0x13 0x01 0xc3>;
				phandle = <0x8a>;
			};
		};

		pwm3a {

			pwm3a-pin {
				rockchip,pins = <0x00 0x06 0x01 0xc3>;
				phandle = <0x8b>;
			};
		};

		pwm3b {

			pwm3b-pin {
				rockchip,pins = <0x01 0x0e 0x01 0xc3>;
			};
		};

		edp {

			edp-hpd {
				rockchip,pins = <0x04 0x17 0x02 0xc3>;
				phandle = <0xba>;
			};
		};

		hdmi {

			hdmi-i2c-xfer {
				rockchip,pins = <0x04 0x11 0x03 0xc3 0x04 0x10 0x03 0xc3>;
				phandle = <0xb1>;
			};

			hdmi-cec {
				rockchip,pins = <0x04 0x17 0x01 0xc3>;
			};
		};

		pcie {

			pci-clkreqn {
				rockchip,pins = <0x02 0x1a 0x02 0xc3>;
				phandle = <0x87>;
			};

			pci-clkreqnb {
				rockchip,pins = <0x04 0x18 0x01 0xc3>;
			};

			pci-clkreqn-cpm {
				rockchip,pins = <0x02 0x1a 0x00 0xc3>;
			};

			pci-clkreqnb-cpm {
				rockchip,pins = <0x04 0x18 0x00 0xc3>;
			};
		};

		pmic {

			pmic-int-l {
				rockchip,pins = <0x01 0x15 0x00 0xc1>;
				phandle = <0x36>;
			};

			vsel1-gpio {
				rockchip,pins = <0x01 0x11 0x00 0xc5>;
				phandle = <0x33>;
			};

			vsel2-gpio {
				rockchip,pins = <0x01 0x0e 0x00 0xc5>;
				phandle = <0x35>;
			};
		};

		usb2 {

			host-vbus-drv {
				rockchip,pins = <0x04 0x19 0x00 0xc3>;
				phandle = <0xcf>;
			};
		};

		vcc_sd {

			vcc-sd-h {
				rockchip,pins = <0x00 0x01 0x00 0xc1>;
				phandle = <0xd1>;
			};
		};

		fusb30x {

			fusb0-int {
				rockchip,pins = <0x01 0x02 0x00 0xc1>;
				phandle = <0x82>;
			};
		};

		sdio-pwrseq {

			wifi-enable-h {
				rockchip,pins = <0x04 0x07 0x00 0xc3>;
				phandle = <0xce>;
			};
		};

		wireless-bluetooth {

			uart0-gpios {
				rockchip,pins = <0x02 0x13 0x00 0xc3>;
				phandle = <0xd9>;
			};
		};

		isp {

			cif-clkout {
				rockchip,pins = <0x02 0x0b 0x03 0xc3>;
				phandle = <0xdc>;
			};

			isp-dvp-d0d7 {
				rockchip,pins = <0x02 0x00 0x03 0xc3 0x02 0x01 0x03 0xc3 0x02 0x02 0x03 0xc3 0x02 0x03 0x03 0xc3 0x02 0x04 0x03 0xc3 0x02 0x05 0x03 0xc3 0x02 0x06 0x03 0xc3 0x02 0x07 0x03 0xc3 0x02 0x08 0x03 0xc3 0x02 0x09 0x03 0xc3 0x02 0x0a 0x03 0xc3>;
			};

			isp-shutter {
				rockchip,pins = <0x01 0x01 0x01 0xc3 0x01 0x00 0x01 0xc3>;
			};

			isp-flash-trigger {
				rockchip,pins = <0x01 0x03 0x01 0xc3>;
			};

			isp-prelight {
				rockchip,pins = <0x01 0x04 0x01 0xc3>;
			};

			isp_flash_trigger_as_gpio {
				rockchip,pins = <0x01 0x03 0x00 0xc3>;
			};
		};

		usb {

			otg-vbus-drv {
				rockchip,pins = <0x04 0x1c 0x00 0xc3>;
				phandle = <0xdd>;
			};

			host0-vbus-drv {
				rockchip,pins = <0x04 0x15 0x00 0xc3>;
				phandle = <0xde>;
			};

			host1-vbus-drv {
				rockchip,pins = <0x04 0x1e 0x00 0xc3>;
				phandle = <0xdf>;
			};
		};
	};

	rockchip-suspend {
		compatible = "rockchip,pm-rk3399";
		status = "okay";
		rockchip,sleep-debug-en = <0x01>;
		rockchip,virtual-poweroff = <0x00>;
		rockchip,sleep-mode-config = <0xde>;
		rockchip,wakeup-config = <0x804>;
		rockchip,pwm-regulator-config = <0x04>;
		rockchip,power-ctrl = <0x34 0x11 0x00 0x34 0x0e 0x00>;
	};

	energy-costs {

		rk3399-core-cost0 {
			busy-cost-data = <0x6c 0x2e 0x9f 0x43 0xd8 0x5a 0x10b 0x78 0x13e 0x99 0x177 0xc6 0x191 0xde>;
			idle-cost-data = <0x06 0x06 0x00 0x00>;
			phandle = <0x0c>;
		};

		rk3399-core-cost1 {
			busy-cost-data = <0xd2 0x81 0x134 0xb8 0x1a3 0xf6 0x206 0x14f 0x269 0x1ac 0x2d8 0x23d 0x33b 0x2d4 0x39d 0x384 0x400 0x454>;
			idle-cost-data = <0x0f 0x0f 0x00 0x00>;
			phandle = <0x10>;
		};

		rk3399-cluster-cost0 {
			busy-cost-data = <0x6c 0x2e 0x9f 0x43 0xd8 0x5a 0x10b 0x78 0x13e 0x99 0x177 0xc6 0x191 0xde>;
			idle-cost-data = <0x38 0x38 0x38 0x38>;
			phandle = <0x0d>;
		};

		rk3399-cluster-cost1 {
			busy-cost-data = <0xd2 0x81 0x134 0xb8 0x1a3 0xf6 0x206 0x14f 0x269 0x1ac 0x2d8 0x23d 0x33b 0x2d4 0x39d 0x384 0x400 0x454>;
			idle-cost-data = <0x41 0x41 0x41 0x41>;
			phandle = <0x11>;
		};
	};

	opp-table0 {
		compatible = "operating-points-v2";
		opp-shared;
		rockchip,temp-hysteresis = <0x1388>;
		rockchip,low-temp = <0x2710>;
		rockchip,low-temp-min-volt = <0xdbba0>;
		nvmem-cells = <0xc6 0xc7>;
		nvmem-cell-names = "cpu_leakage\0specification_serial_number";
		clocks = <0x08 0x01>;
		rockchip,avs-scale = <0x14>;
		rockchip,bin-scaling-sel = <0x00 0x1e 0x01 0x22>;
		rockchip,pvtm-voltage-sel = <0x00 0x2308c 0x00 0x2308d 0x24414 0x01 0x24415 0x251c0 0x02 0x251c1 0xf423f 0x03>;
		rockchip,pvtm-freq = <0x639c0>;
		rockchip,pvtm-volt = <0xf4240>;
		rockchip,pvtm-ch = <0x00 0x00>;
		rockchip,pvtm-sample-time = <0x3e8>;
		rockchip,pvtm-number = <0x0a>;
		rockchip,pvtm-error = <0x3e8>;
		rockchip,pvtm-ref-temp = <0x29>;
		rockchip,pvtm-temp-prop = <0x73 0x42>;
		rockchip,thermal-zone = "soc-thermal";
		phandle = <0x0b>;

		opp-408000000 {
			opp-hz = <0x00 0x18519600>;
			opp-microvolt = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L0 = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L1 = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L2 = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L3 = <0xc96a8 0xc96a8 0x1312d0>;
			clock-latency-ns = <0x9c40>;
		};

		opp-600000000 {
			opp-hz = <0x00 0x23c34600>;
			opp-microvolt = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L0 = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L1 = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L2 = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L3 = <0xc96a8 0xc96a8 0x1312d0>;
			clock-latency-ns = <0x9c40>;
		};

		opp-816000000 {
			opp-hz = <0x00 0x30a32c00>;
			opp-microvolt = <0xd59f8 0xd59f8 0x1312d0>;
			opp-microvolt-L0 = <0xd59f8 0xd59f8 0x1312d0>;
			opp-microvolt-L1 = <0xcf850 0xcf850 0x1312d0>;
			opp-microvolt-L2 = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L3 = <0xc96a8 0xc96a8 0x1312d0>;
			clock-latency-ns = <0x9c40>;
			opp-suspend;
		};

		opp-1008000000 {
			opp-hz = <0x00 0x3c14dc00>;
			opp-microvolt = <0xe7ef0 0xe7ef0 0x1312d0>;
			opp-microvolt-L0 = <0xe7ef0 0xe7ef0 0x1312d0>;
			opp-microvolt-L1 = <0xe1d48 0xe1d48 0x1312d0>;
			opp-microvolt-L2 = <0xdbba0 0xdbba0 0x1312d0>;
			opp-microvolt-L3 = <0xd59f8 0xd59f8 0x1312d0>;
			clock-latency-ns = <0x9c40>;
		};

		opp-1200000000 {
			opp-hz = <0x00 0x47868c00>;
			opp-microvolt = <0xfa3e8 0xfa3e8 0x1312d0>;
			opp-microvolt-L0 = <0xfa3e8 0xfa3e8 0x1312d0>;
			opp-microvolt-L1 = <0xf4240 0xf4240 0x1312d0>;
			opp-microvolt-L2 = <0xee098 0xee098 0x1312d0>;
			opp-microvolt-L3 = <0xe7ef0 0xe7ef0 0x1312d0>;
			clock-latency-ns = <0x9c40>;
		};

		opp-1416000000 {
			opp-hz = <0x00 0x54667200>;
			opp-microvolt = <0x118c30 0x118c30 0x1312d0>;
			opp-microvolt-L0 = <0x118c30 0x118c30 0x1312d0>;
			opp-microvolt-L1 = <0x112a88 0x112a88 0x1312d0>;
			opp-microvolt-L2 = <0x10c8e0 0x10c8e0 0x1312d0>;
			opp-microvolt-L3 = <0x106738 0x106738 0x1312d0>;
			clock-latency-ns = <0x9c40>;
		};
	};

	opp-table1 {
		compatible = "operating-points-v2";
		opp-shared;
		rockchip,temp-hysteresis = <0x1388>;
		rockchip,low-temp = <0x2710>;
		rockchip,low-temp-min-volt = <0xdbba0>;
		nvmem-cells = <0xc8 0xc7>;
		nvmem-cell-names = "cpu_leakage\0specification_serial_number";
		clocks = <0x08 0x02>;
		rockchip,avs-scale = <0x08>;
		rockchip,bin-scaling-sel = <0x00 0x08 0x01 0x11>;
		rockchip,pvtm-voltage-sel = <0x00 0x24608 0x00 0x24609 0x25d78 0x01 0x25d79 0x27100 0x02 0x27101 0xf423f 0x03>;
		rockchip,pvtm-freq = <0x639c0>;
		rockchip,pvtm-volt = <0xf4240>;
		rockchip,pvtm-ch = <0x01 0x00>;
		rockchip,pvtm-sample-time = <0x3e8>;
		rockchip,pvtm-number = <0x0a>;
		rockchip,pvtm-error = <0x3e8>;
		rockchip,pvtm-ref-temp = <0x29>;
		rockchip,pvtm-temp-prop = <0x47 0x23>;
		rockchip,thermal-zone = "soc-thermal";
		phandle = <0x0f>;

		opp-408000000 {
			opp-hz = <0x00 0x18519600>;
			opp-microvolt = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L0 = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L1 = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L2 = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L3 = <0xc96a8 0xc96a8 0x1312d0>;
			clock-latency-ns = <0x9c40>;
		};

		opp-600000000 {
			opp-hz = <0x00 0x23c34600>;
			opp-microvolt = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L0 = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L1 = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L2 = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L3 = <0xc96a8 0xc96a8 0x1312d0>;
			clock-latency-ns = <0x9c40>;
		};

		opp-816000000 {
			opp-hz = <0x00 0x30a32c00>;
			opp-microvolt = <0xcf850 0xcf850 0x1312d0>;
			opp-microvolt-L0 = <0xcf850 0xcf850 0x1312d0>;
			opp-microvolt-L1 = <0xcf850 0xcf850 0x1312d0>;
			opp-microvolt-L2 = <0xc96a8 0xc96a8 0x1312d0>;
			opp-microvolt-L3 = <0xc96a8 0xc96a8 0x1312d0>;
			clock-latency-ns = <0x9c40>;
			opp-suspend;
		};

		opp-1008000000 {
			opp-hz = <0x00 0x3c14dc00>;
			opp-microvolt = <0xdbba0 0xdbba0 0x1312d0>;
			opp-microvolt-L0 = <0xdbba0 0xdbba0 0x1312d0>;
			opp-microvolt-L1 = <0xd59f8 0xd59f8 0x1312d0>;
			opp-microvolt-L2 = <0xd59f8 0xd59f8 0x1312d0>;
			opp-microvolt-L3 = <0xd59f8 0xd59f8 0x1312d0>;
			clock-latency-ns = <0x9c40>;
		};

		opp-1200000000 {
			opp-hz = <0x00 0x47868c00>;
			opp-microvolt = <0xee098 0xee098 0x1312d0>;
			opp-microvolt-L0 = <0xee098 0xee098 0x1312d0>;
			opp-microvolt-L1 = <0xe7ef0 0xe7ef0 0x1312d0>;
			opp-microvolt-L2 = <0xe1d48 0xe1d48 0x1312d0>;
			opp-microvolt-L3 = <0xdbba0 0xdbba0 0x1312d0>;
			clock-latency-ns = <0x9c40>;
		};

		opp-1416000000 {
			opp-hz = <0x00 0x54667200>;
			opp-microvolt = <0x100590 0x100590 0x1312d0>;
			opp-microvolt-L0 = <0x100590 0x100590 0x1312d0>;
			opp-microvolt-L1 = <0xfa3e8 0xfa3e8 0x1312d0>;
			opp-microvolt-L2 = <0xfa3e8 0xfa3e8 0x1312d0>;
			opp-microvolt-L3 = <0xf4240 0xf4240 0x1312d0>;
			clock-latency-ns = <0x9c40>;
		};

		opp-1608000000 {
			opp-hz = <0x00 0x5fd82200>;
			opp-microvolt = <0x112a88 0x112a88 0x1312d0>;
			opp-microvolt-L0 = <0x112a88 0x112a88 0x1312d0>;
			opp-microvolt-L1 = <0x10c8e0 0x10c8e0 0x1312d0>;
			opp-microvolt-L2 = <0x106738 0x106738 0x1312d0>;
			opp-microvolt-L3 = <0x100590 0x100590 0x1312d0>;
			clock-latency-ns = <0x9c40>;
		};

		opp-1800000000 {
			opp-hz = <0x00 0x6b49d200>;
			opp-microvolt = <0x12b128 0x12b128 0x1312d0>;
			opp-microvolt-L0 = <0x12b128 0x12b128 0x1312d0>;
			opp-microvolt-L1 = <0x124f80 0x124f80 0x1312d0>;
			opp-microvolt-L2 = <0x11edd8 0x11edd8 0x1312d0>;
			opp-microvolt-L3 = <0x118c30 0x118c30 0x1312d0>;
			clock-latency-ns = <0x9c40>;
		};
	};

	opp-table2 {
		compatible = "operating-points-v2";
		rockchip,thermal-zone = "soc-thermal";
		rockchip,temp-hysteresis = <0x1388>;
		rockchip,low-temp = <0x2710>;
		rockchip,low-temp-min-volt = <0xdbba0>;
		nvmem-cells = <0xc9>;
		nvmem-cell-names = "gpu_leakage";
		rockchip,pvtm-voltage-sel = <0x00 0x1d8a8 0x00 0x1d8a9 0x1ea3c 0x01 0x1ea3d 0x1f5f4 0x02 0x1f5f5 0xf423f 0x03>;
		rockchip,pvtm-freq = <0x30d40>;
		rockchip,pvtm-volt = <0xdbba0>;
		rockchip,pvtm-ch = <0x03 0x00>;
		rockchip,pvtm-sample-time = <0x3e8>;
		rockchip,pvtm-number = <0x0a>;
		rockchip,pvtm-error = <0x3e8>;
		rockchip,pvtm-ref-temp = <0x29>;
		rockchip,pvtm-temp-prop = <0x2e 0x0c>;
		rockchip,pvtm-thermal-zone = "gpu-thermal";
		phandle = <0x9e>;

		opp-200000000 {
			opp-hz = <0x00 0xbebc200>;
			opp-microvolt = <0xc96a8>;
			opp-microvolt-L0 = <0xc96a8>;
			opp-microvolt-L1 = <0xc96a8>;
			opp-microvolt-L2 = <0xc96a8>;
			opp-microvolt-L3 = <0xc96a8>;
		};

		opp-300000000 {
			opp-hz = <0x00 0x11e1a300>;
			opp-microvolt = <0xc96a8>;
			opp-microvolt-L0 = <0xc96a8>;
			opp-microvolt-L1 = <0xc96a8>;
			opp-microvolt-L2 = <0xc96a8>;
			opp-microvolt-L3 = <0xc96a8>;
		};

		opp-400000000 {
			opp-hz = <0x00 0x17d78400>;
			opp-microvolt = <0xcf850>;
			opp-microvolt-L0 = <0xcf850>;
			opp-microvolt-L1 = <0xcf850>;
			opp-microvolt-L2 = <0xc96a8>;
			opp-microvolt-L3 = <0xc96a8>;
		};

		opp-600000000 {
			opp-hz = <0x00 0x23c34600>;
			opp-microvolt = <0xe7ef0>;
			opp-microvolt-L0 = <0xe7ef0>;
			opp-microvolt-L1 = <0xe7ef0>;
			opp-microvolt-L2 = <0xe1d48>;
			opp-microvolt-L3 = <0xe1d48>;
		};

		opp-800000000 {
			opp-hz = <0x00 0x2faf0800>;
			opp-microvolt = <0x112a88>;
			opp-microvolt-L0 = <0x112a88>;
			opp-microvolt-L1 = <0x10c8e0>;
			opp-microvolt-L2 = <0x106738>;
			opp-microvolt-L3 = <0x100590>;
		};
	};

	opp-table3 {
		compatible = "operating-points-v2";
		phandle = <0x8f>;

		opp-200000000 {
			opp-hz = <0x00 0xbebc200>;
			opp-microvolt = <0xe1d48>;
			status = "disabled";
		};

		opp-300000000 {
			opp-hz = <0x00 0x11e1a300>;
			opp-microvolt = <0xe1d48>;
			status = "disabled";
		};

		opp-400000000 {
			opp-hz = <0x00 0x17d78400>;
			opp-microvolt = <0xe1d48>;
			status = "disabled";
		};

		opp-528000000 {
			opp-hz = <0x00 0x1f78a400>;
			opp-microvolt = <0xe1d48>;
			status = "disabled";
		};

		opp-600000000 {
			opp-hz = <0x00 0x23c34600>;
			opp-microvolt = <0xe1d48>;
			status = "disabled";
		};

		opp-800000000 {
			opp-hz = <0x00 0x2faf0800>;
			opp-microvolt = <0xe1d48>;
			status = "disabled";
		};

		opp-416000000 {
			opp-hz = <0x00 0x18cba800>;
			opp-microvolt = <0xe1d48>;
		};

		opp-856000000 {
			opp-hz = <0x00 0x33058600>;
			opp-microvolt = <0xe1d48>;
		};

		opp-928000000 {
			opp-hz = <0x00 0x37502800>;
			opp-microvolt = <0xe1d48>;
			status = "disabled";
		};

		opp-1056000000 {
			opp-hz = <0x00 0x3ef14800>;
			opp-microvolt = <0xe1d48>;
			status = "disabled";
		};
	};

	backlight {
		status = "okay";
		compatible = "pwm-backlight";
		pwms = <0xca 0x00 0x61a8 0x00>;
		brightness-levels = <0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3a 0x3b 0x3c 0x3d 0x3e 0x3f 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4a 0x4b 0x4c 0x4d 0x4e 0x4f 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5a 0x5b 0x5c 0x5d 0x5e 0x5f 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6a 0x6b 0x6c 0x6d 0x6e 0x6f 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7a 0x7b 0x7c 0x7d 0x7e 0x7f 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8a 0x8b 0x8c 0x8d 0x8e 0x8f 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9a 0x9b 0x9c 0x9d 0x9e 0x9f 0xa0 0xa1 0xa2 0xa3 0xa4 0xa5 0xa6 0xa7 0xa8 0xa9 0xaa 0xab 0xac 0xad 0xae 0xaf 0xb0 0xb1 0xb2 0xb3 0xb4 0xb5 0xb6 0xb7 0xb8 0xb9 0xba 0xbb 0xbc 0xbd 0xbe 0xbf 0xc0 0xc1 0xc2 0xc3 0xc4 0xc5 0xc6 0xc7 0xc8 0xc9 0xca 0xcb 0xcc 0xcd 0xce 0xcf 0xd0 0xd1 0xd2 0xd3 0xd4 0xd5 0xd6 0xd7 0xd8 0xd9 0xda 0xdb 0xdc 0xdd 0xde 0xdf 0xe0 0xe1 0xe2 0xe3 0xe4 0xe5 0xe6 0xe7 0xe8 0xe9 0xea 0xeb 0xec 0xed 0xee 0xef 0xf0 0xf1 0xf2 0xf3 0xf4 0xf5 0xf6 0xf7 0xf8 0xf9 0xfa 0xfb 0xfc 0xfd 0xfe 0xff>;
		default-brightness-level = <0xc8>;
		enable-gpios = <0x37 0x1a 0x00>;
		phandle = <0xb6>;
	};

	external-gmac-clock {
		compatible = "fixed-clock";
		clock-frequency = <0x7735940>;
		clock-output-names = "clkin_gmac";
		#clock-cells = <0x00>;
		phandle = <0x1a>;
	};

	dw-hdmi-audio {
		status = "disabled";
		compatible = "rockchip,dw-hdmi-audio";
		#sound-dai-cells = <0x00>;
	};

	dp-sound {
		status = "disabled";
		compatible = "rockchip,cdndp-sound";
		rockchip,cpu = <0xcb>;
		rockchip,codec = <0xcc 0x01>;
	};

	sdio-pwrseq {
		compatible = "mmc-pwrseq-simple";
		clocks = <0xcd 0x01>;
		clock-names = "ext_clock";
		pinctrl-names = "default";
		pinctrl-0 = <0xce>;
		reset-gpios = <0x37 0x07 0x01>;
		phandle = <0x1c>;
	};

	vcc3v3-sys {
		compatible = "regulator-fixed";
		regulator-name = "vcc3v3_sys";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <0x325aa0>;
		regulator-max-microvolt = <0x325aa0>;
		phandle = <0x39>;
	};

	vcc5v0-host-regulator {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <0x37 0x19 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0xcf>;
		regulator-name = "vcc5v0_host";
		phandle = <0x9a>;
	};

	vcc5v0-sys {
		compatible = "regulator-fixed";
		regulator-name = "vcc5v0_sys";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <0x4c4b40>;
		regulator-max-microvolt = <0x4c4b40>;
		phandle = <0x32>;
	};

	vcc-sd {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <0xd0 0x01 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0xd1>;
		regulator-name = "vcc_sd";
		regulator-min-microvolt = <0x325aa0>;
		regulator-max-microvolt = <0x325aa0>;
		phandle = <0x20>;
	};

	vcc-phy-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vcc_phy";
		regulator-always-on;
		regulator-boot-on;
		phandle = <0x18>;
	};

	vdd-log {
		compatible = "pwm-regulator";
		pwms = <0xd2 0x00 0x61a8 0x01>;
		regulator-name = "vdd_log";
		regulator-min-microvolt = "\0\f5";
		regulator-max-microvolt = <0x155cc0>;
		regulator-always-on;
		regulator-boot-on;
		rockchip,pwm_id = <0x02>;
		rockchip,pwm_voltage = <0xe7ef0>;
	};

	es8316-sound {
		compatible = "simple-audio-card";
		simple-audio-card,format = "i2s";
		simple-audio-card,name = "rockchip,es8316-codec";
		simple-audio-card,mclk-fs = <0x100>;
		simple-audio-card,widgets = "Microphone\0Mic Jack\0Headphone\0Headphone Jack";
		simple-audio-card,routing = "Mic Jack\0MICBIAS1\0IN1P\0Mic Jack\0Headphone Jack\0HPOL\0Headphone Jack\0HPOR";
		status = "okay";

		simple-audio-card,cpu {
			sound-dai = <0xd3>;
		};

		simple-audio-card,codec {
			sound-dai = <0xd4>;
		};
	};

	spdif-sound {
		status = "disabled";
		compatible = "simple-audio-card";
		simple-audio-card,name = "ROCKCHIP,SPDIF";

		simple-audio-card,cpu {
			sound-dai = <0xcb>;
		};

		simple-audio-card,codec {
			sound-dai = <0xd5>;
		};
	};

	spdif-out {
		status = "disabled";
		compatible = "linux,spdif-dit";
		#sound-dai-cells = <0x00>;
		phandle = <0xd5>;
	};

	hdmi-sound {
		status = "okay";
		compatible = "simple-audio-card";
		simple-audio-card,format = "i2s";
		simple-audio-card,mclk-fs = <0x100>;
		simple-audio-card,name = "rockchip,hdmi";

		simple-audio-card,cpu {
			sound-dai = <0xd6>;
		};

		simple-audio-card,codec {
			sound-dai = <0xd7>;
		};
	};

	wireless-wlan {
		compatible = "wlan-platdata";
		rockchip,grf = <0x16>;
		wifi_chip_type = "ap6354";
		sdio_vref = <0x708>;
		WIFI,host_wake_irq = <0x19 0x1d 0x00>;
		status = "okay";
	};

	wireless-bluetooth {
		compatible = "bluetooth-platdata";
		clocks = <0xcd 0x01>;
		clock-names = "ext_clock";
		uart_rts_gpios = <0x38 0x13 0x01>;
		pinctrl-names = "default\0rts_gpio";
		pinctrl-0 = <0xd8>;
		pinctrl-1 = <0xd9>;
		BT,reset_gpio = <0x37 0x06 0x00>;
		BT,wake_gpio = <0x38 0x1a 0x00>;
		BT,wake_host_irq = <0x19 0x1c 0x00>;
		status = "okay";
	};

	chosen {
		bootargs = "earlycon=uart8250,mmio32,0xff1a0000 swiotlb=1 coherent_pool=1m";
	};

	cpuinfo {
		compatible = "rockchip,cpuinfo";
		nvmem-cells = <0xda>;
		nvmem-cell-names = "id";
	};

	ramoops_mem {
		reg = <0x00 0x110000 0x00 0xf0000>;
		reg-names = "ramoops_mem";
		phandle = <0xdb>;
	};

	ramoops {
		compatible = "ramoops";
		record-size = <0x00 0x20000>;
		console-size = <0x00 0x80000>;
		ftrace-size = <0x00 0x00>;
		pmsg-size = <0x00 0x50000>;
		memory-region = <0xdb>;
	};

	fiq-debugger {
		compatible = "rockchip,fiq-debugger";
		rockchip,serial-id = <0x02>;
		rockchip,wake-irq = <0x00>;
		rockchip,irq-mode-enable = <0x00>;
		rockchip,baudrate = <0x16e360>;
		pinctrl-names = "default";
		pinctrl-0 = <0x46>;
		interrupts = <0x00 0x96 0x04 0x00>;
	};

	reserved-memory {
		#address-cells = <0x02>;
		#size-cells = <0x02>;
		ranges;

		drm-logo@00000000 {
			compatible = "rockchip,drm-logo";
			reg = <0x00 0x00 0x00 0x00>;
			phandle = <0xbf>;
		};

		secure-memory@20000000 {
			compatible = "rockchip,secure-memory";
			reg = <0x00 0x20000000 0x00 0x10000000>;
			status = "disabled";
			phandle = <0xc0>;
		};

		stb-devinfo@00000000 {
			compatible = "rockchip,stb-devinfo";
			reg = <0x00 0x00 0x00 0x00>;
		};
	};

	rockchip-key {
		compatible = "rockchip,key";
		status = "okay";

		vol-up-key {
			linux,code = <0x73>;
			label = "volume up";
			rockchip,adc_value = <0x01>;
		};

		vol-down-key {
			linux,code = <0x72>;
			label = "volume down";
			rockchip,adc_value = <0xaa>;
		};

		power-key {
			gpios = <0xd0 0x05 0x01>;
			linux,code = <0x74>;
			label = "power";
			gpio-key,wakeup;
		};
	};

	isp@ff910000 {
		compatible = "rockchip,rk3399-isp\0rockchip,isp";
		reg = <0x00 0xff910000 0x00 0x4000>;
		interrupts = <0x00 0x2b 0x04 0x00>;
		assigned-clocks = <0x08 0xb2>;
		assigned-clock-parents = <0x08 0x05>;
		assigned-clock-rates = <0x2faf0800>;
		clocks = <0x08 0x89 0x08 0xb2 0x08 0xa4 0x08 0x77 0x08 0xe7 0x08 0xe9 0x08 0x1e1 0x08 0x1e3 0x08 0x6e 0x08 0xa5>;
		clock-names = "clk_cif_out\0clk_cif_pll\0pclk_dphytxrx\0pclk_dphy_ref\0aclk_isp0_noc\0aclk_isp0_wrapper\0hclk_isp0_noc\0hclk_isp0_wrapper\0clk_isp0\0pclk_dphyrx";
		pinctrl-names = "cif_clkout\0isp_mipi_fl\0isp_mipi_fl_prefl\0isp_flash_as_gpio\0isp_flash_as_trigger_out";
		pinctrl-0 = <0xdc>;
		pinctrl-1 = <0xdc>;
		rockchip,isp,mipiphy = <0x02>;
		rockchip,isp,cifphy = <0x01>;
		rockchip,isp,dsiphy,reg = <0xff968000 0x8000>;
		rockchip,grf = <0x16>;
		rockchip,cru = <0x08>;
		rockchip,gpios = <0x34 0x00 0x00>;
		rockchip,isp,iommu-enable = <0x01>;
		power-domains = <0x17 0x13>;
		iommus = <0xaf>;
		status = "okay";
	};

	isp@ff920000 {
		compatible = "rockchip,rk3399-isp\0rockchip,isp";
		reg = <0x00 0xff920000 0x00 0x4000>;
		interrupts = <0x00 0x2c 0x04 0x00>;
		clocks = <0x08 0xe8 0x08 0xea 0x08 0x1e2 0x08 0x1e4 0x08 0x6f 0x08 0x89 0x08 0xb2 0x08 0xa4 0x08 0x77 0x08 0x17b 0x08 0xa5 0x08 0x171 0x08 0x78>;
		clock-names = "aclk_isp1_noc\0aclk_isp1_wrapper\0hclk_isp1_noc\0hclk_isp1_wrapper\0clk_isp1\0clk_cif_out\0clk_cif_pll\0pclk_dphytxrx\0pclk_dphy_ref\0pclk_isp1\0pclk_dphyrx\0pclk_mipi_dsi\0mipi_dphy_cfg";
		pinctrl-names = "cif_clkout\0isp_mipi_fl\0isp_mipi_fl_prefl\0isp_flash_as_gpio\0isp_flash_as_trigger_out";
		pinctrl-0 = <0xdc>;
		pinctrl-1 = <0xdc>;
		rockchip,isp,mipiphy = <0x02>;
		rockchip,isp,cifphy = <0x01>;
		rockchip,isp,dsiphy,reg = <0xff968000 0x8000>;
		rockchip,grf = <0x16>;
		rockchip,cru = <0x08>;
		rockchip,gpios = <0x34 0x00 0x00>;
		rockchip,isp,iommu-enable = <0x01>;
		power-domains = <0x17 0x14>;
		iommus = <0xb0>;
		status = "okay";
	};

	uboot-charge {
		compatible = "rockchip,uboot-charge";
		rockchip,uboot-charge-on = <0x01>;
		rockchip,android-charge-on = <0x00>;
	};

	firmware {

		android {
			compatible = "android,firmware";

			fstab {
				compatible = "android,fstab";

				system {
					compatible = "android,system";
					dev = "/dev/block/platform/fe330000.sdhci/by-name/system";
					type = "ext4";
					mnt_flags = "ro,barrier=1,inode_readahead_blks=8";
					fsmgr_flags = "wait,verify";
				};

				vendor {
					compatible = "android,vendor";
					dev = "/dev/block/platform/fe330000.sdhci/by-name/vendor";
					type = "ext4";
					mnt_flags = "ro,barrier=1,inode_readahead_blks=8";
					fsmgr_flags = "wait,verify";
				};
			};
		};
	};

	sram@ff8d0000 {
		compatible = "mmio-sram";
		reg = <0x00 0xff8d0000 0x00 0x20000>;
		phandle = <0x15>;
	};

	otg-vbus-regulator {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <0x37 0x1c 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0xdd>;
		regulator-name = "vcc_otg_vbus";
		regulator-boot-on;
		regulator-always-on;
	};

	host0-vbus-regulator {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <0x37 0x15 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0xde>;
		regulator-name = "vcc_host0_vbus";
		phandle = <0x98>;
	};

	host1-vbus-regulator {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <0x37 0x1e 0x00>;
		pinctrl-names = "default";
		pinctrl-0 = <0xdf>;
		regulator-name = "vcc_host1_vbus";
		phandle = <0x99>;
	};

	test-power {
		status = "disabled";
	};

	ir-receiver {
		compatible = "rockchip,remotectl";
		module-gpios = <0xd0 0x06 0x01>;
		status = "okay";
	};

	xh_custom {
		status = "okay";
		compatible = "rockchip,xh_custom";
		red_led_gpio = <0x19 0x03 0x00>;
		gpio_1 = <0x19 0x01 0x00>;
		gpio_3 = <0x34 0x18 0x00>;
		gpio_4 = <0x34 0x12 0x00>;
		gpio_5 = <0x34 0x09 0x00>;
		backlight_en = <0x37 0x1a 0x00>;
		host3_en = <0x37 0x19 0x00>;
		host_otg_en = <0x37 0x1c 0x00>;
		host1_en = <0x37 0x03 0x00>;
		host2_en = <0x37 0x05 0x00>;
		speaker_en = <0xd0 0x0b 0x00>;
		xh_3g_power = <0x34 0x17 0x00>;
	};

	xh_key {
		status = "disabled";
		compatible = "rockchip,xh_key";
		gpio_0 = <0x19 0x00 0x00>;
	};

	rockchip_headset {
		status = "okay";
		compatible = "rockchip_headset";
		headset_gpio = <0x34 0x04 0x01>;
	};

	rockchip_linein {
		status = "okay";
		compatible = "rockchip_linein";
		linein_gpio = <0x34 0x03 0x01>;
	};
};

7. 再进入 maskrom 模式,备份前 8M 固件: xrock flash read 0 16384 8M.img

分区 00 (uboot) 实际上是从 0x4000 (8M) 处开始,如果是 loader 模式下从 0x0000 读写 flash 相当于从 0x2000 读写。

8. 清除前 8M 固件以便默认从 sdcard 启动 (可能从 64 扇区清除 preloader 就行) : xrock flash erase 0 16384
如果不行可以刷 8M 空的文件进去。


TODO: 编译 u-boot (目前瞎整了一个没反应,准备放假拆开看看有无串口) ,启动 armbian ...

参考:
http://opensource.rock-chips.com/wiki_Main_Page
http://sinsunvoice.com/Product/674831919.html

最近编辑记录 iyzsong (2022-03-31 22:51:48)

离线

楼主 #1 2022-04-03 11:24:48

iyzsong
会员
注册时间: 2020-02-02
已发帖子: 8
积分: 38

Re: 声讯会议速记机 (RK3399) 使用经验

我们知道在执行 xrock maskrom rk3399_ddr_800MHz_v1.25.bin rk3399_usb
plug_v1.26.bin 的时候板子的 UART2 串口会输出一些信息。

因此先上逻辑分析仪 (我第一次用),用 pulseview 看,分析出 UART2: 黄 GND, 橙 RX, 绿 TX。

执行 minicom -D /dev/ttyUSB0 -b 1500000, 也确认能看到输出。

pulseview.pngminicom.pngconnect.jpg

离线

楼主 #2 2022-04-04 20:15:59

iyzsong
会员
注册时间: 2020-02-02
已发帖子: 8
积分: 38

Re: 声讯会议速记机 (RK3399) 使用经验

u-boot 已经跑起,manjaro linux (也试了一下 netbsd 和 openbsd) 也能启动了。

代码仓库: https://github.com/iyzsong/u-boot/tree/sx-100302
目前修改了这些文件:

 arch/arm/dts/Makefile                           |   3 +-
 arch/arm/dts/rk3399-sx-100302-u-boot.dtsi (new) |  14 +++
 arch/arm/dts/rk3399-sx-100302.dts (new)         | 502 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configs/sx-100302-rk3399_defconfig (new)        |  78 ++++++++++++++++
 4 files changed, 596 insertions(+), 1 deletion(-)

配置文件 sx-100302-rk3399_defconfig,我是从 rock-pi-4-rk3399_defconfig 复制的,就修改了:

CONFIG_DEFAULT_DEVICE_TREE="rk3399-sx-100302"
CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-sx-100302.dtb"

rk3399-sx-100302-u-boot.dtsi:

#include "rk3399-u-boot.dtsi"
#include "rk3399-sdram-lpddr4-100.dtsi"

/ {
       chosen {
               stdout-path = "serial2:1500000n8";
               u-boot,spl-boot-order = "same-as-spl", &sdmmc;
       };
};

这里用的是 LPDDR4 的内存,我刚开始整成 LPDDR3 了导致不能启动。。。


rk3399-sx-100302.dts:

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
 */

/dts-v1/;
#include <dt-bindings/pwm/pwm.h>
#include "rk3399.dtsi"

/ {
	model = "Rockchip RK3399 Evaluation Board";
	compatible = "rockchip,rk3399-evb", "rockchip,rk3399";

	aliases {
		mmc0 = &sdio0;
		mmc1 = &sdmmc;
		mmc2 = &sdhci;
	};

	chosen {
		stdout-path = "serial2:115200n8";
	};

	backlight: backlight {
		compatible = "pwm-backlight";
		brightness-levels = <
			  0   1	  2   3	  4   5	  6   7
			  8   9	 10  11	 12  13	 14  15
			 16  17	 18  19	 20  21	 22  23
			 24  25	 26  27	 28  29	 30  31
			 32  33	 34  35	 36  37	 38  39
			 40  41	 42  43	 44  45	 46  47
			 48  49	 50  51	 52  53	 54  55
			 56  57	 58  59	 60  61	 62  63
			 64  65	 66  67	 68  69	 70  71
			 72  73	 74  75	 76  77	 78  79
			 80  81	 82  83	 84  85	 86  87
			 88  89	 90  91	 92  93	 94  95
			 96  97	 98  99 100 101 102 103
			104 105 106 107 108 109 110 111
			112 113 114 115 116 117 118 119
			120 121 122 123 124 125 126 127
			128 129 130 131 132 133 134 135
			136 137 138 139 140 141 142 143
			144 145 146 147 148 149 150 151
			152 153 154 155 156 157 158 159
			160 161 162 163 164 165 166 167
			168 169 170 171 172 173 174 175
			176 177 178 179 180 181 182 183
			184 185 186 187 188 189 190 191
			192 193 194 195 196 197 198 199
			200 201 202 203 204 205 206 207
			208 209 210 211 212 213 214 215
			216 217 218 219 220 221 222 223
			224 225 226 227 228 229 230 231
			232 233 234 235 236 237 238 239
			240 241 242 243 244 245 246 247
			248 249 250 251 252 253 254 255>;
		default-brightness-level = <200>;
		pwms = <&pwm0 0 25000 0>;
	};

	clkin_gmac: external-gmac-clock {
		compatible = "fixed-clock";
		clock-frequency = <125000000>;
		clock-output-names = "clkin_gmac";
		#clock-cells = <0>;
	};

	vdd_center: vdd-center {
		compatible = "pwm-regulator";
		pwms = <&pwm2 0 25000 1>;
		regulator-name = "vdd_center";
		regulator-min-microvolt = <800000>;
		regulator-max-microvolt = <1400000>;
		regulator-always-on;
		regulator-boot-on;
		status = "okay";
	};

	vcc3v3_sys: vcc3v3-sys {
		compatible = "regulator-fixed";
		regulator-name = "vcc3v3_sys";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	vcc5v0_host: vcc5v0-host-regulator {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&vcc5v0_host_en>;
		regulator-name = "vcc5v0_host";
		vin-supply = <&vcc5v0_sys>;
	};

	vcc5v0_sys: vcc5v0-sys {
		compatible = "regulator-fixed";
		regulator-name = "vcc5v0_sys";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
	};

	vcc_sd: vcc-sd {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&sdmmc0_pwr_h>;
		regulator-name = "vcc_sd";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	vcc_phy: vcc-phy-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vcc_phy";
		regulator-always-on;
		regulator-boot-on;
	};


};

&io_domains {
	sdmmc-supply = <&vcc_sdio>;
	status = "okay";
};

&emmc_phy {
	status = "okay";
};

&gmac {
	assigned-clocks = <&cru SCLK_RMII_SRC>;
	assigned-clock-parents = <&clkin_gmac>;
	clock_in_out = "input";
	phy-supply = <&vcc_phy>;
	phy-mode = "rmii";
	pinctrl-names = "default";
	pinctrl-0 = <&rmii_pins>;
	snps,reset-gpio = <&gpio3 RK_PA2 GPIO_ACTIVE_LOW>;
	snps,reset-active-low;
	snps,reset-delays-us = <0 10000 50000>;
	tx_delay = <0x28>;
	rx_delay = <0x11>;
	status = "okay";
};

&i2c0 {
	status = "okay";

	vdd_cpu_b: regulator@40 {
		compatible = "silergy,syr827";
		reg = <0x40>;
		fcs,suspend-voltage-selector = <1>;
		regulator-name = "vdd_cpu_b";
		regulator-min-microvolt = <712500>;
		regulator-max-microvolt = <1500000>;
		regulator-ramp-delay = <1000>;
		regulator-always-on;
		regulator-boot-on;
		vin-supply = <&vcc5v0_sys>;

		regulator-state-mem {
			regulator-off-in-suspend;
		};
	};

	vdd_gpu: regulator@41 {
		compatible = "silergy,syr828";
		reg = <0x41>;
		fcs,suspend-voltage-selector = <1>;
		regulator-name = "vdd_gpu";
		regulator-min-microvolt = <712500>;
		regulator-max-microvolt = <1500000>;
		regulator-ramp-delay = <1000>;
		regulator-always-on;
		regulator-boot-on;
		vin-supply = <&vcc5v0_sys>;

		regulator-state-mem {
			regulator-off-in-suspend;
		};
	};

	rk808: pmic@1b {
		compatible = "rockchip,rk808";
		reg = <0x1b>;
		interrupt-parent = <&gpio1>;
		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&pmic_int_l>;
		rockchip,system-power-controller;
		wakeup-source;
		#clock-cells = <1>;
		clock-output-names = "rk808-clkout1", "rk808-clkout2";

		vcc1-supply = <&vcc3v3_sys>;
		vcc2-supply = <&vcc3v3_sys>;
		vcc3-supply = <&vcc3v3_sys>;
		vcc4-supply = <&vcc3v3_sys>;
		vcc6-supply = <&vcc3v3_sys>;
		vcc7-supply = <&vcc3v3_sys>;
		vcc8-supply = <&vcc_1v8>;
		vcc9-supply = <&vcc3v3_sys>;
		vcc10-supply = <&vcc3v3_sys>;
		vcc11-supply = <&vcc3v3_sys>;
		vcc12-supply = <&vcc3v3_sys>;
		vddio-supply = <&vcc1v8_pmu>;

		regulators {
			vdd_log: DCDC_REG1 {
				regulator-name = "vdd_log";
				regulator-min-microvolt = <750000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <6001>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vdd_cpu_l: DCDC_REG2 {
				regulator-name = "vdd_cpu_l";
				regulator-min-microvolt = <750000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <6001>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc_ddr: DCDC_REG3 {
				regulator-name = "vcc_ddr";
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			vcc_1v8: DCDC_REG4 {
				regulator-name = "vcc_1v8";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <1800000>;
				};
			};

			vcc1v8_dvp: LDO_REG1 {
				regulator-name = "vcc1v8_dvp";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc3v0_tp: LDO_REG2 {
				regulator-name = "vcc3v0_tp";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <3300000>;
				};
			};

			vcc1v8_pmu: LDO_REG3 {
				regulator-name = "vcc1v8_pmu";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <1800000>;
				};
			};

			vcc_sdio: LDO_REG4 {
				regulator-name = "vcc_sdio";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3000000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <3000000>;
				};
			};

			vcca3v0_codec: LDO_REG5 {
				regulator-name = "vcca3v0_codec";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc_1v5: LDO_REG6 {
				regulator-name = "vcc_1v5";
				regulator-min-microvolt = <1500000>;
				regulator-max-microvolt = <1500000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <1500000>;
				};
			};

			vcca1v8_codec: LDO_REG7 {
				regulator-name = "vcca1v8_codec";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <1800000>;
				};
			};

			vcc_3v0: LDO_REG8 {
				regulator-name = "vcc_3v0";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <3000000>;
				};
			};

			vcc3v3_s3: SWITCH_REG1 {
				regulator-name = "vcc3v3_s3";
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			vcc3v3_s0: SWITCH_REG2 {
				regulator-name = "vcc3v3_s0";
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};
		};
	};

};

&i2c1 {
	status = "okay";
};

&i2c2 {
	status = "okay";
};

&pwm0 {
	status = "okay";
};

&pwm2 {
	status = "okay";
};

&sdhci {
	bus-width = <8>;
	mmc-hs400-1_8v;
	mmc-hs400-enhanced-strobe;
	non-removable;
	status = "okay";
};

&sdmmc {
	bus-width = <4>;
	cap-sd-highspeed;
	cap-mmc-highspeed;
	supports-sd;
	disable-wp;
	pinctrl-names = "default";
	pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc_cd>;
	sd-uhs-sdr104;
	vmmc-supply = <&vcc_sd>;
	vqmmc-supply = <&vcc_sdio>;
	status = "okay";
};

&u2phy0 {
	status = "okay";
};

&u2phy0_host {
	phy-supply = <&vcc5v0_host>;
	status = "okay";
};

&u2phy0_otg {
	status = "okay";
};

&u2phy1 {
	status = "okay";
};

&u2phy1_host {
	phy-supply = <&vcc5v0_host>;
	status = "okay";
};

&usb_host0_ehci {
	status = "okay";
};

&usb_host0_ohci {
	status = "okay";
};

&usb_host1_ehci {
	status = "okay";
};

&usb_host1_ohci {
	status = "okay";
};

&pinctrl {
	pmic {
		pmic_int_l: pmic-int-l {
			rockchip,pins =
				<1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};

	usb2 {
		vcc5v0_host_en: vcc5v0-host-en {
			rockchip,pins =
				<4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	sdmmc {
		sdmmc0_pwr_h: sdmmc0-pwr-h {
			rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};
};

&vopb {
	status = "okay";
};

&vopb_mmu {
	status = "okay";
};

&hdmi {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&hdmi_i2c_xfer>;
};

&hdmi_sound {
	status = "okay";
};

&gpu {
	mali-supply = <&vdd_gpu>;
	status = "okay";
};

&uart2 {
       status = "okay";
};

linux dmesg 输出:

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.16.11-1-MANJARO-ARM (builduser@fh-mjr-build-lon-xlarge) (gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.38) #1 SMP PREEMPT Wed Feb 23 12:30:41 UTC 2022
[    0.000000] Machine model: Rockchip RK3399 Evaluation Board
[    0.000000] efi: UEFI not found.
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x00000000f7ffffff]
[    0.000000] On node 0, zone DMA: 512 pages in unavailable ranges
[    0.000000] cma: Reserved 256 MiB at 0x00000000df800000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 20 pages/cpu s42008 r8192 d31720 u81920
[    0.000000] pcpu-alloc: s42008 r8192 d31720 u81920 alloc=20*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [0] 4 [0] 5
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 999432
[    0.000000] Kernel command line: initrd=/initramfs-linux.img console=ttyS2,115200 root=PARTUUID=f69a7281-3c4a-44b8-9c8d-381b2e750bb4 rw rootwait audit=0 quiet
[    0.000000] audit: disabled (until reboot)
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 3682196K/4061184K available (16256K kernel code, 2590K rwdata, 6940K rodata, 4096K init, 837K bss, 116844K reserved, 262144K cma-reserved)
[    0.000000] random: get_random_u64 called from cache_random_seq_create+0x84/0x184 with crng_init=0
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=6, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=6.
[    0.000000] 	Trampoline variant of Tasks RCU enabled.
[    0.000000] 	Rude variant of Tasks RCU enabled.
[    0.000000] 	Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=6
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 256 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x00000000fef00000
[    0.000000] ITS [mem 0xfee20000-0xfee3ffff]
[    0.000000] ITS@0x00000000fee20000: allocated 65536 Devices @480000 (flat, esz 8, psz 64K, shr 0)
[    0.000000] ITS: using cache flushing for cmd queue
[    0.000000] GICv3: using LPI property table @0x0000000000440000
[    0.000000] GIC: using cache flushing for LPI property table
[    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000000450000
[    0.000000] GICv3: GIC: PPI partition interrupt-partition-0[0] { /cpus/cpu@0[0] /cpus/cpu@1[1] /cpus/cpu@2[2] /cpus/cpu@3[3] }
[    0.000000] GICv3: GIC: PPI partition interrupt-partition-1[1] { /cpus/cpu@100[4] /cpus/cpu@101[5] }
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000001] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.002024] Console: colour dummy device 80x25
[    0.002090] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.002111] pid_max: default: 32768 minimum: 301
[    0.002267] LSM: Security Framework initializing
[    0.002317] Yama: becoming mindful.
[    0.002416] AppArmor: AppArmor initialized
[    0.002557] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.002592] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.005573] rcu: Hierarchical SRCU implementation.
[    0.007017] Platform MSI: interrupt-controller@fee20000 domain created
[    0.007381] PCI/MSI: /interrupt-controller@fee00000/interrupt-controller@fee20000 domain created
[    0.011492] EFI services will not be available.
[    0.012221] smp: Bringing up secondary CPUs ...
[    0.013057] Detected VIPT I-cache on CPU1
[    0.013102] GICv3: CPU1: found redistributor 1 region 0:0x00000000fef20000
[    0.013124] GICv3: CPU1: using allocated LPI pending table @0x0000000000460000
[    0.013192] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.014104] Detected VIPT I-cache on CPU2
[    0.014140] GICv3: CPU2: found redistributor 2 region 0:0x00000000fef40000
[    0.014158] GICv3: CPU2: using allocated LPI pending table @0x0000000000470000
[    0.014202] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.015026] Detected VIPT I-cache on CPU3
[    0.015059] GICv3: CPU3: found redistributor 3 region 0:0x00000000fef60000
[    0.015077] GICv3: CPU3: using allocated LPI pending table @0x0000000000500000
[    0.015119] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.015994] CPU features: detected: Spectre-v2
[    0.016014] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[    0.016022] Detected PIPT I-cache on CPU4
[    0.016055] GICv3: CPU4: found redistributor 100 region 0:0x00000000fef80000
[    0.016074] GICv3: CPU4: using allocated LPI pending table @0x0000000000510000
[    0.016122] CPU4: Booted secondary processor 0x0000000100 [0x410fd082]
[    0.016973] Detected PIPT I-cache on CPU5
[    0.017004] GICv3: CPU5: found redistributor 101 region 0:0x00000000fefa0000
[    0.017021] GICv3: CPU5: using allocated LPI pending table @0x0000000000520000
[    0.017059] CPU5: Booted secondary processor 0x0000000101 [0x410fd082]
[    0.017187] smp: Brought up 1 node, 6 CPUs
[    0.017217] SMP: Total of 6 processors activated.
[    0.017226] CPU features: detected: 32-bit EL0 Support
[    0.017231] CPU features: detected: 32-bit EL1 Support
[    0.017240] CPU features: detected: CRC32 instructions
[    0.038563] CPU: All CPU(s) started at EL2
[    0.038638] alternatives: patching kernel code
[    0.041343] devtmpfs: initialized
[    0.051075] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.051103] futex hash table entries: 2048 (order: 5, 131072 bytes, linear)
[    0.056009] pinctrl core: initialized pinctrl subsystem
[    0.056626] DMI not present or invalid.
[    0.057117] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.059548] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[    0.059865] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.060239] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.061314] thermal_sys: Registered thermal governor 'fair_share'
[    0.061322] thermal_sys: Registered thermal governor 'bang_bang'
[    0.061329] thermal_sys: Registered thermal governor 'step_wise'
[    0.061335] thermal_sys: Registered thermal governor 'user_space'
[    0.061716] cpuidle: using governor ladder
[    0.061748] cpuidle: using governor menu
[    0.061959] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.062166] ASID allocator initialised with 65536 entries
[    0.079748] platform ff770000.syscon:phy@f780: Fixing up cyclic dependency with fe330000.mmc
[    0.082415] platform ff940000.hdmi: Fixing up cyclic dependency with ff900000.vop
[    0.089015] rockchip-gpio ff720000.gpio0: probed /pinctrl/gpio0@ff720000
[    0.089704] rockchip-gpio ff730000.gpio1: probed /pinctrl/gpio1@ff730000
[    0.090282] rockchip-gpio ff780000.gpio2: probed /pinctrl/gpio2@ff780000
[    0.090902] rockchip-gpio ff788000.gpio3: probed /pinctrl/gpio3@ff788000
[    0.091461] rockchip-gpio ff790000.gpio4: probed /pinctrl/gpio4@ff790000
[    0.106782] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.106799] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.106807] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.106816] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    0.107330] cryptd: max_cpu_qlen set to 1000
[    0.108459] ACPI: Interpreter disabled.
[    0.110014] iommu: Default domain type: Translated
[    0.110024] iommu: DMA domain TLB invalidation policy: strict mode
[    0.112082] vgaarb: loaded
[    0.112836] SCSI subsystem initialized
[    0.113018] libata version 3.00 loaded.
[    0.113217] usbcore: registered new interface driver usbfs
[    0.113263] usbcore: registered new interface driver hub
[    0.113302] usbcore: registered new device driver usb
[    0.113732] mc: Linux media interface: v0.10
[    0.113765] videodev: Linux video capture interface: v2.00
[    0.113799] pps_core: LinuxPPS API ver. 1 registered
[    0.113806] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.113821] PTP clock support registered
[    0.114034] EDAC MC: Ver: 3.0.0
[    0.115116] Advanced Linux Sound Architecture Driver Initialized.
[    0.115690] NetLabel: Initializing
[    0.115696] NetLabel:  domain hash size = 128
[    0.115703] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[    0.115765] NetLabel:  unlabeled traffic allowed by default
[    0.116153] clocksource: Switched to clocksource arch_sys_counter
[    0.116423] VFS: Disk quotas dquot_6.6.0
[    0.116485] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.117114] AppArmor: AppArmor Filesystem Enabled
[    0.117341] pnp: PnP ACPI: disabled
[    0.126100] NET: Registered PF_INET protocol family
[    0.126375] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.129909] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.130047] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.130398] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
[    0.131066] TCP: Hash tables configured (established 32768 bind 32768)
[    0.131185] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.131325] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.131624] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.132152] RPC: Registered named UNIX socket transport module.
[    0.132162] RPC: Registered udp transport module.
[    0.132168] RPC: Registered tcp transport module.
[    0.132173] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.132184] PCI: CLS 0 bytes, default 64
[    0.132672] Trying to unpack rootfs image as initramfs...
[    0.146527] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.146958] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 7 counters available
[    0.147421] kvm [1]: IPA Size Limit: 40 bits
[    0.148907] kvm [1]: vgic-v2@fff20000
[    0.148938] kvm [1]: GIC system register CPU interface enabled
[    0.149188] kvm [1]: vgic interrupt IRQ18
[    0.149465] kvm [1]: Hyp mode initialized successfully
[    0.151376] Initialise system trusted keyrings
[    0.151652] workingset: timestamp_bits=46 max_order=20 bucket_order=0
[    0.157316] zbud: loaded
[    0.159495] NFS: Registering the id_resolver key type
[    0.159527] Key type id_resolver registered
[    0.159534] Key type id_legacy registered
[    0.159619] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.159634] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.159658] ntfs: driver 2.1.32 [Flags: R/W].
[    0.160037] fuse: init (API version 7.35)
[    0.160441] SGI XFS with ACLs, security attributes, quota, no debug enabled
[    0.225850] NET: Registered PF_ALG protocol family
[    0.225873] Key type asymmetric registered
[    0.225879] Asymmetric key parser 'x509' registered
[    0.226050] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 242)
[    0.226374] io scheduler mq-deadline registered
[    0.226383] io scheduler kyber registered
[    0.226509] io scheduler bfq registered
[    0.233198] rockchip-usb2phy ff770000.syscon:usb2phy@e450: failed to create phy
[    0.234221] rockchip-usb2phy ff770000.syscon:usb2phy@e460: failed to create phy
[    0.241268] IPMI message handler: version 39.2
[    0.247365] dma-pl330 ff6d0000.dma-controller: Loaded driver for PL330 DMAC-241330
[    0.247384] dma-pl330 ff6d0000.dma-controller: 	DBUFF-32x8bytes Num_Chans-6 Num_Peri-12 Num_Events-12
[    0.248559] dma-pl330 ff6e0000.dma-controller: Loaded driver for PL330 DMAC-241330
[    0.248572] dma-pl330 ff6e0000.dma-controller: 	DBUFF-128x8bytes Num_Chans-8 Num_Peri-20 Num_Events-16
[    0.254427] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.256617] printk: console [ttyS2] disabled
[    0.256684] ff1a0000.serial: ttyS2 at MMIO 0xff1a0000 (irq = 37, base_baud = 1500000) is a 16550A
[    0.273374] printk: console [ttyS2] enabled
[    0.277465] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.283759] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.283780] ehci-pci: EHCI PCI platform driver
[    0.283822] ehci-platform: EHCI generic platform driver
[    0.284050] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.284064] ohci-pci: OHCI PCI platform driver
[    0.284103] ohci-platform: OHCI generic platform driver
[    0.284293] uhci_hcd: USB Universal Host Controller Interface driver
[    0.284931] SPI driver max3421-hcd has no spi_device_id for maxim,max3421
[    0.285144] usbcore: registered new interface driver uas
[    0.285200] usbcore: registered new interface driver usb-storage
[    0.285231] usbcore: registered new interface driver ums-alauda
[    0.285260] usbcore: registered new interface driver ums-cypress
[    0.285288] usbcore: registered new interface driver ums-datafab
[    0.285316] usbcore: registered new interface driver ums_eneub6250
[    0.285345] usbcore: registered new interface driver ums-freecom
[    0.285374] usbcore: registered new interface driver ums-isd200
[    0.285402] usbcore: registered new interface driver ums-jumpshot
[    0.285436] usbcore: registered new interface driver ums-karma
[    0.285465] usbcore: registered new interface driver ums-onetouch
[    0.285501] usbcore: registered new interface driver ums-realtek
[    0.285530] usbcore: registered new interface driver ums-sddr09
[    0.285576] usbcore: registered new interface driver ums-sddr55
[    0.285606] usbcore: registered new interface driver ums-usbat
[    0.285687] usbcore: registered new interface driver usbserial_generic
[    0.285714] usbserial: USB Serial support registered for generic
[    0.287696] mousedev: PS/2 mouse device common for all mice
[    0.288553] i2c_dev: i2c /dev entries driver
[    0.292070] fan53555-regulator 0-0040: FAN53555 Option[8] Rev[1] Detected!
[    0.299078] fan53555-regulator 0-0041: FAN53555 Option[8] Rev[1] Detected!
[    0.306692] rk808 0-001b: chip id: 0x0
[    0.316435] rk808-regulator rk808-regulator: there is no dvs0 gpio
[    0.316465] rk808-regulator rk808-regulator: there is no dvs1 gpio
[    0.323727] vcc3v0_tp: Bringing 1800000uV into 3300000-3300000uV
[    0.332511] vcca1v8_codec: Bringing 800000uV into 1800000-1800000uV
[    0.339406] device-mapper: uevent: version 1.0.3
[    0.339693] device-mapper: ioctl: 4.45.0-ioctl (2021-03-22) initialised: dm-devel@redhat.com
[    0.340048] cpu cpu0: OPP table can't be empty
[    0.347316] sdhci: Secure Digital Host Controller Interface driver
[    0.347326] sdhci: Copyright(c) Pierre Ossman
[    0.348015] Synopsys Designware Multimedia Card Interface Driver
[    0.349653] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.349686] dwmmc_rockchip fe320000.mmc: IDMAC supports 32-bit address mode.
[    0.349728] dwmmc_rockchip fe320000.mmc: Using internal DMA controller.
[    0.349745] dwmmc_rockchip fe320000.mmc: Version ID is 270a
[    0.349829] dwmmc_rockchip fe320000.mmc: DW MMC controller at irq 29,32 bit host data width,256 deep fifo
[    0.350772] vcc_sdio: unsupportable voltage range: 3300000-3000000uV
[    0.352334] mmc0: CQHCI version 5.10
[    0.358079] ledtrig-cpu: registered to indicate activity on CPUs
[    0.358448] No iBFT detected.
[    0.359090] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    0.359452] hid: raw HID events driver (C) Jiri Kosina
[    0.359579] usbcore: registered new interface driver usbhid
[    0.359587] usbhid: USB HID core driver
[    0.359945] ashmem: initialized
[    0.361797] rk3399-dmc-freq ffa80000.dmc: supply center not found, using dummy regulator
[    0.367660] Initializing XFRM netlink socket
[    0.368170] NET: Registered PF_INET6 protocol family
[    0.370919] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    0.384572] mmc0: SDHCI controller on fe330000.mmc [fe330000.mmc] using ADMA
[    0.395164] random: fast init done
[    0.463367] mmc0: Command Queue Engine enabled
[    0.463406] mmc0: new HS400 Enhanced strobe MMC card at address 0001
[    0.464653] mmcblk0: mmc0:0001 DA4032 29.1 GiB
[    0.470099]  mmcblk0: p1
[    0.470962] mmcblk0boot0: mmc0:0001 DA4032 4.00 MiB
[    0.471877] mmc_host mmc1: Bus speed (slot 0) = 100000000Hz (slot req 100000000Hz, actual 100000000HZ div = 0)
[    0.472848] mmcblk0boot1: mmc0:0001 DA4032 4.00 MiB
[    0.473328] dwmmc_rockchip fe320000.mmc: All phases bad!
[    0.473341] mmc1: tuning execution failed: -5
[    0.474672] mmcblk0rpmb: mmc0:0001 DA4032 16.0 MiB, chardev (235:0)
[    0.478255] mmc1: error -5 whilst initialising SD card
[    0.485395] vcc_sdio: unsupportable voltage range: 3300000-3000000uV
[    0.505849] mmc_host mmc1: Bus speed (slot 0) = 300000Hz (slot req 300000Hz, actual 300000HZ div = 0)
[    0.609204] mmc_host mmc1: Bus speed (slot 0) = 100000000Hz (slot req 100000000Hz, actual 100000000HZ div = 0)
[    0.637113] Freeing initrd memory: 7540K
[    0.682683] Segment Routing with IPv6
[    0.682737] In-situ OAM (IOAM) with IPv6
[    0.682823] mip6: Mobile IPv6
[    0.682832] NET: Registered PF_PACKET protocol family
[    0.683422] Key type dns_resolver registered
[    0.684701] registered taskstats version 1
[    0.684718] Loading compiled-in X.509 certificates
[    0.686311] zswap: loaded using pool lzo/zbud
[    0.689628] debug_vm_pgtable: [debug_vm_pgtable         ]: Validating architecture page table helpers
[    0.689941] Key type ._fscrypt registered
[    0.689950] Key type .fscrypt registered
[    0.689956] Key type fscrypt-provisioning registered
[    0.691596] Key type encrypted registered
[    0.863333] ehci-platform fe380000.usb: EHCI Host Controller
[    0.863812] ehci-platform fe380000.usb: new USB bus registered, assigned bus number 1
[    0.863988] ehci-platform fe380000.usb: irq 31, io mem 0xfe380000
[    0.896257] ehci-platform fe380000.usb: USB 2.0 started, EHCI 1.00
[    0.896582] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.16
[    0.896600] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.896614] usb usb1: Product: EHCI Host Controller
[    0.896625] usb usb1: Manufacturer: Linux 5.16.11-1-MANJARO-ARM ehci_hcd
[    0.896636] usb usb1: SerialNumber: fe380000.usb
[    0.897414] hub 1-0:1.0: USB hub found
[    0.897475] hub 1-0:1.0: 1 port detected
[    0.900984] ehci-platform fe3c0000.usb: EHCI Host Controller
[    0.901380] ehci-platform fe3c0000.usb: new USB bus registered, assigned bus number 2
[    0.901547] ehci-platform fe3c0000.usb: irq 33, io mem 0xfe3c0000
[    0.926447] ehci-platform fe3c0000.usb: USB 2.0 started, EHCI 1.00
[    0.926742] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.16
[    0.926761] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.926775] usb usb2: Product: EHCI Host Controller
[    0.926786] usb usb2: Manufacturer: Linux 5.16.11-1-MANJARO-ARM ehci_hcd
[    0.926797] usb usb2: SerialNumber: fe3c0000.usb
[    0.927558] hub 2-0:1.0: USB hub found
[    0.927609] hub 2-0:1.0: 1 port detected
[    0.928998] ohci-platform fe3a0000.usb: Generic Platform OHCI controller
[    0.929392] ohci-platform fe3a0000.usb: new USB bus registered, assigned bus number 3
[    0.929564] ohci-platform fe3a0000.usb: irq 32, io mem 0xfe3a0000
[    1.000565] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.16
[    1.000585] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.000599] usb usb3: Product: Generic Platform OHCI controller
[    1.000611] usb usb3: Manufacturer: Linux 5.16.11-1-MANJARO-ARM ohci_hcd
[    1.000621] usb usb3: SerialNumber: fe3a0000.usb
[    1.001392] hub 3-0:1.0: USB hub found
[    1.001445] hub 3-0:1.0: 1 port detected
[    1.002821] ohci-platform fe3e0000.usb: Generic Platform OHCI controller
[    1.003260] ohci-platform fe3e0000.usb: new USB bus registered, assigned bus number 4
[    1.003421] ohci-platform fe3e0000.usb: irq 34, io mem 0xfe3e0000
[    1.070570] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.16
[    1.070590] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.070605] usb usb4: Product: Generic Platform OHCI controller
[    1.070616] usb usb4: Manufacturer: Linux 5.16.11-1-MANJARO-ARM ohci_hcd
[    1.070627] usb usb4: SerialNumber: fe3e0000.usb
[    1.071394] hub 4-0:1.0: USB hub found
[    1.071446] hub 4-0:1.0: 1 port detected
[    1.072895] rk3399-dmc-freq ffa80000.dmc: supply center not found, using dummy regulator
[    1.073218] rk3399-dmc-freq ffa80000.dmc: Invalid operating-points in device tree.
[    1.081728] rk3399-dmc-freq: probe of ffa80000.dmc failed with error -22
[    1.085139] ALSA device list:
[    1.085155]   No soundcards found.
[    1.085381] dw-apb-uart ff1a0000.serial: forbid DMA for kernel console
[    1.088029] Freeing unused kernel memory: 4096K
[    1.186314] usb 1-1: new high-speed USB device number 2 using ehci-platform
[    1.279760] mmc_host mmc1: Timeout sending command (cmd 0x200000 arg 0x0 status 0x80200000)
[    1.789260] dwmmc_rockchip fe320000.mmc: Busy; trying anyway
[    1.826866] Run /init as init process
[    1.826882]   with arguments:
[    1.826890]     /init
[    1.826897]   with environment:
[    1.826903]     HOME=/
[    1.826909]     TERM=linux
[    1.999556] usb 1-1: New USB device found, idVendor=05e3, idProduct=0608, bcdDevice=88.32
[    1.999588] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    1.999602] usb 1-1: Product: USB2.0 Hub
[    2.001631] hub 1-1:1.0: USB hub found
[    2.002126] hub 1-1:1.0: 4 ports detected
[    2.506208] mmc_host mmc1: Timeout sending command (cmd 0x200000 arg 0x0 status 0x80200000)
[    3.015721] dwmmc_rockchip fe320000.mmc: Busy; trying anyway
[    3.227344] dwmmc_rockchip fe320000.mmc: Successfully tuned phase to 273
[    3.227392] mmc1: new ultra high speed SDR50 SDHC card at address aaaa
[    3.228595] mmcblk1: mmc1:aaaa SS32G 29.7 GiB
[    3.237069]  mmcblk1: p1 p2
[    3.553957] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[    4.092868] systemd[1]: System time before build time, advancing clock.
[    4.178246] systemd[1]: systemd 250.3-4-arch running in system mode (+PAM +AUDIT -SELINUX -APPARMOR -IMA +SMACK +SECCOMP +GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY +P11KIT -QRENCODE +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -BPF_FRAMEWORK +XKBCOMMON +UTMP -SYSVINIT default-hierarchy=unified)
[    4.179605] systemd[1]: Detected architecture arm64.
[    4.181811] systemd[1]: Hostname set to <sx3399>.
[    4.408599] systemd-fstab-generator[272]: Failed to create unit file /run/systemd/generator/boot.mount, as it already exists. Duplicate entry in /etc/fstab?
[    4.441718] systemd[268]: /usr/lib/systemd/system-generators/systemd-fstab-generator failed with exit status 1.
[    4.773876] systemd[1]: /usr/lib/systemd/system/plymouth-start.service:15: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed.
[    4.908971] systemd[1]: Queued start job for default target Graphical Interface.
[    4.910440] random: systemd: uninitialized urandom read (16 bytes read)
[    4.913940] systemd[1]: Created slice Slice /system/getty.
[    4.914226] random: systemd: uninitialized urandom read (16 bytes read)
[    4.915790] systemd[1]: Created slice Slice /system/modprobe.
[    4.915882] random: systemd: uninitialized urandom read (16 bytes read)
[    4.917788] systemd[1]: Created slice Slice /system/serial-getty.
[    4.919029] systemd[1]: Created slice User and Session Slice.
[    4.919412] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    4.920169] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[    4.920480] systemd[1]: Reached target Local Integrity Protected Volumes.
[    4.920670] systemd[1]: Reached target Remote File Systems.
[    4.920784] systemd[1]: Reached target Slice Units.
[    4.920926] systemd[1]: Reached target Swaps.
[    4.921069] systemd[1]: Reached target Local Verity Protected Volumes.
[    4.921544] systemd[1]: Listening on Device-mapper event daemon FIFOs.
[    4.928725] systemd[1]: Listening on Process Core Dump Socket.
[    4.945185] systemd[1]: Journal Audit Socket was skipped because of a failed condition check (ConditionSecurity=audit).
[    4.946020] systemd[1]: Listening on Journal Socket (/dev/log).
[    4.946726] systemd[1]: Listening on Journal Socket.
[    4.947483] systemd[1]: Listening on Network Service Netlink Socket.
[    4.948048] systemd[1]: Listening on Userspace Out-Of-Memory (OOM) Killer Socket.
[    4.948816] systemd[1]: Listening on udev Control Socket.
[    4.949296] systemd[1]: Listening on udev Kernel Socket.
[    4.953670] systemd[1]: Mounting Huge Pages File System...
[    4.958051] systemd[1]: Mounting POSIX Message Queue File System...
[    4.962716] systemd[1]: Mounting Kernel Debug File System...
[    4.963368] systemd[1]: Kernel Trace File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/tracing).
[    4.968748] systemd[1]: Mounting Temporary Directory /tmp...
[    4.974677] systemd[1]: Starting Create List of Static Device Nodes...
[    4.979853] systemd[1]: Starting Load Kernel Module configfs...
[    4.984768] systemd[1]: Starting Load Kernel Module drm...
[    4.989691] systemd[1]: Starting Load Kernel Module fuse...
[    4.990354] systemd[1]: File System Check on Root Device was skipped because of a failed condition check (ConditionPathIsReadWrite=!/).
[    4.998093] systemd[1]: Starting Journal Service...
[    5.006120] systemd[1]: Starting Load Kernel Modules...
[    5.010825] systemd[1]: Starting Generate network units from Kernel command line...
[    5.015794] systemd[1]: Starting Remount Root and Kernel File Systems...
[    5.016273] systemd[1]: Repartition Root Disk was skipped because all trigger condition checks failed.
[    5.021389] systemd[1]: Starting Coldplug All udev Devices...
[    5.026669] systemd[1]: Starting Setup Virtual Console...
[    5.037658] systemd[1]: Mounted Huge Pages File System.
[    5.038860] systemd[1]: Mounted POSIX Message Queue File System.
[    5.040250] systemd[1]: Mounted Kernel Debug File System.
[    5.041393] systemd[1]: Mounted Temporary Directory /tmp.
[    5.043797] systemd[1]: Finished Create List of Static Device Nodes.
[    5.055706] systemd[1]: modprobe@configfs.service: Deactivated successfully.
[    5.056616] systemd[1]: Finished Load Kernel Module configfs.
[    5.058159] systemd[1]: modprobe@drm.service: Deactivated successfully.
[    5.058940] systemd[1]: Finished Load Kernel Module drm.
[    5.060508] systemd[1]: modprobe@fuse.service: Deactivated successfully.
[    5.061278] systemd[1]: Finished Load Kernel Module fuse.
[    5.062377] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null). Quota mode: none.
[    5.062524] systemd[1]: Finished Generate network units from Kernel command line.
[    5.065279] systemd[1]: Reached target Preparation for Network.
[    5.069899] systemd[1]: Mounting FUSE Control File System...
[    5.074957] systemd[1]: Mounting Kernel Configuration File System...
[    5.077840] systemd[1]: Finished Load Kernel Modules.
[    5.079264] systemd[1]: Finished Remount Root and Kernel File Systems.
[    5.098127] systemd[1]: Rebuild Hardware Database was skipped because of a failed condition check (ConditionNeedsUpdate=/etc).
[    5.104677] systemd[1]: Starting Load/Save Random Seed...
[    5.112618] systemd[1]: Starting Apply Kernel Variables...
[    5.113155] systemd[1]: Create System Users was skipped because of a failed condition check (ConditionNeedsUpdate=/etc).
[    5.118165] systemd[1]: Starting Create Static Device Nodes in /dev...
[    5.122521] systemd[1]: Mounted FUSE Control File System.
[    5.123299] systemd[1]: Mounted Kernel Configuration File System.
[    5.248444] systemd[1]: Finished Apply Kernel Variables.
[    5.255664] systemd[1]: Started Journal Service.
[    5.298774] systemd-journald[289]: Received client request to flush runtime journal.
[    5.945475] pwm-backlight backlight: supply power not found, using dummy regulator
[    6.030994] rockchip-rga ff680000.rga: HW Version: 0x03.02
[    6.054649] rockchip_vdec: module is from the staging directory, the quality is unknown, you have been warned.
[    6.055272] rockchip-rga ff680000.rga: Registered rockchip-rga as /dev/video0
[    6.061133] hantro_vpu: module is from the staging directory, the quality is unknown, you have been warned.
[    6.062297] rkvdec ff660000.video-codec: Adding to iommu group 1
[    6.062345] dw_wdt ff848000.watchdog: No valid TOPs array specified
[    6.065083] hantro-vpu ff650000.video-codec: Adding to iommu group 0
[    6.065270] rk_gmac-dwmac fe300000.ethernet: IRQ eth_wake_irq not found
[    6.065296] rk_gmac-dwmac fe300000.ethernet: IRQ eth_lpi not found
[    6.065465] rk_gmac-dwmac fe300000.ethernet: PTP uses main clock
[    6.065910] rk_gmac-dwmac fe300000.ethernet: clock input or output? (input).
[    6.065929] rk_gmac-dwmac fe300000.ethernet: TX delay(0x28).
[    6.065976] rk_gmac-dwmac fe300000.ethernet: RX delay(0x11).
[    6.065997] rk_gmac-dwmac fe300000.ethernet: integrated PHY? (no).
[    6.066085] rk_gmac-dwmac fe300000.ethernet: cannot get clock clk_mac_speed
[    6.074495] rk_gmac-dwmac fe300000.ethernet: clock input from PHY
[    6.079545] rk_gmac-dwmac fe300000.ethernet: init for RMII
[    6.080149] rk_gmac-dwmac fe300000.ethernet: User ID: 0x10, Synopsys ID: 0x35
[    6.080179] rk_gmac-dwmac fe300000.ethernet: 	DWMAC1000
[    6.080192] rk_gmac-dwmac fe300000.ethernet: DMA HW capability register supported
[    6.080203] rk_gmac-dwmac fe300000.ethernet: RX Checksum Offload Engine supported
[    6.080212] rk_gmac-dwmac fe300000.ethernet: COE Type 2
[    6.080223] rk_gmac-dwmac fe300000.ethernet: TX Checksum insertion supported
[    6.080233] rk_gmac-dwmac fe300000.ethernet: Wake-Up On Lan supported
[    6.088157] rk_gmac-dwmac fe300000.ethernet: Normal descriptors
[    6.088185] rk_gmac-dwmac fe300000.ethernet: Ring mode enabled
[    6.088195] rk_gmac-dwmac fe300000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[    6.113448] hantro-vpu ff650000.video-codec: registered rockchip,rk3399-vpu-enc as /dev/video1
[    6.136079] hantro-vpu ff650000.video-codec: registered rockchip,rk3399-vpu-dec as /dev/video3
[    6.141897] rk808-rtc rk808-rtc: registered as rtc0
[    6.143784] rk808-rtc rk808-rtc: setting system clock to 2021-10-01T00:17:16 UTC (1633047436)
[    6.158970] systemd-journald[289]: Time jumped backwards, rotating.
[    6.271147] panfrost ff9a0000.gpu: clock rate = 500000000
[    6.282700] rockchip-vop ff900000.vop: Adding to iommu group 2
[    6.283285] panfrost ff9a0000.gpu: mali-t860 id 0x860 major 0x2 minor 0x0 status 0x0
[    6.283307] panfrost ff9a0000.gpu: features: 00000000,100e77bf, issues: 00000000,24040400
[    6.283321] panfrost ff9a0000.gpu: Features: L2:0x07120206 Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff JS:0x7
[    6.283338] panfrost ff9a0000.gpu: shader_present=0xf l2_present=0x1
[    6.287183] [drm] Initialized panfrost 1.2.0 20180908 for ff9a0000.gpu on minor 0
[    6.412533] [drm] unsupported AFBC format[3231564e]
[    6.418998] rockchip-drm display-subsystem: bound ff900000.vop (ops vop_component_ops [rockchipdrm])
[    6.419306] dwhdmi-rockchip ff940000.hdmi: Detected HDMI TX controller v2.11a with HDCP (DWC HDMI 2.0 TX PHY)
[    6.420237] ICPlus IP101G stmmac-0:01: attached PHY driver (mii_bus:phy_addr=stmmac-0:01, irq=POLL)
[    6.475564] dwhdmi-rockchip ff940000.hdmi: registered DesignWare HDMI I2C bus driver
[    6.498798] rockchip-drm display-subsystem: bound ff940000.hdmi (ops dw_hdmi_rockchip_ops [rockchipdrm])
[    6.499281] rockchip-drm display-subsystem: [drm] Cannot find any crtc or sizes
[    6.510858] [drm] Initialized rockchip 1.0.0 20140818 for display-subsystem on minor 1
[    6.712145] Registered IR keymap rc-cec
[    6.712410] rc rc0: dw_hdmi as /devices/platform/ff940000.hdmi/rc/rc0
[    6.712698] input: dw_hdmi as /devices/platform/ff940000.hdmi/rc/rc0/input0
[    7.039257] systemd-journald[289]: Oldest entry in /run/log/journal/0699c81ad53d4ccab0104be4ed663e50/system.journal is older than the configured file retention duration (1month), suggesting rotation.
[    7.039301] systemd-journald[289]: /run/log/journal/0699c81ad53d4ccab0104be4ed663e50/system.journal: Journal header limits reached or header out-of-date, rotating.
[    7.194653] 8021q: 802.1Q VLAN Support v1.8
[    7.344351] alg: No test for hmac(md4) (hmac(md4-generic))
[    7.345988] zram: Added device: zram0
[    7.362329] zram0: detected capacity change from 0 to 11867928
[    7.459487] rk_gmac-dwmac fe300000.ethernet eth0: PHY [stmmac-0:01] driver [ICPlus IP101G] (irq=POLL)
[    7.461523] rk_gmac-dwmac fe300000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0
[    7.518147] rockchip-drm display-subsystem: [drm] Cannot find any crtc or sizes
[    7.666426] rk_gmac-dwmac fe300000.ethernet: Failed to reset the dma
[    7.673547] rk_gmac-dwmac fe300000.ethernet eth0: stmmac_hw_setup: DMA engine initialization failed
[    7.683735] rk_gmac-dwmac fe300000.ethernet eth0: stmmac_open: Hw setup failed
[    8.032489] random: crng init done
[    8.032502] random: 7 urandom warning(s) missed due to ratelimiting
[    8.167457] Adding 5933960k swap on /dev/zram0.  Priority:100 extents:1 across:5933960k SSFS
[  134.709460] rk_gmac-dwmac fe300000.ethernet eth0: PHY [stmmac-0:01] driver [ICPlus IP101G] (irq=POLL)
[  134.711574] rk_gmac-dwmac fe300000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0
[  134.916435] rk_gmac-dwmac fe300000.ethernet: Failed to reset the dma
[  134.923575] rk_gmac-dwmac fe300000.ethernet eth0: stmmac_hw_setup: DMA engine initialization failed
[  134.933767] rk_gmac-dwmac fe300000.ethernet eth0: stmmac_open: Hw setup failed

目前的问题有:
1. u-boot 不能访问内置的 emmc,会报 Card did not respond to voltage select, 但是启动 linux 后是可以的。 (uboot 的 rockchip_sdhci.c 暂未实现 set_enhanced_strobe 方法)
2. u-boot 和 linux 都不能正常使用有线网卡。


有没有好心人指点一下这两个问题...

最近编辑记录 iyzsong (2022-04-04 21:12:12)

离线

楼主 #3 2022-04-04 21:09:41

iyzsong
会员
注册时间: 2020-02-02
已发帖子: 8
积分: 38

Re: 声讯会议速记机 (RK3399) 使用经验

从 linux 的输出 new HS400 Enhanced strobe MMC card at address 0001 中可以判断出来
uboot 要用这个 emmc 的话需要启用 mmc-hs400-enhanced-strobe 支持才行:

CONFIG_MMC_HS400_ES_SUPPORT=y
CONFIG_SPL_MMC_HS400_ES_SUPPORT=y

但是并没行,之后我发现在 drivers/mmc/mmc-uclass.c 中:

#if CONFIG_IS_ENABLED(MMC_HS400_ES_SUPPORT)
static int dm_mmc_set_enhanced_strobe(struct udevice *dev)
{
	struct dm_mmc_ops *ops = mmc_get_ops(dev);

	if (ops->set_enhanced_strobe)
		return ops->set_enhanced_strobe(dev);

	debug("XXXXX no set_enhanced_strobe here XXXXX\n");
	return -ENOTSUPP;
}

int mmc_set_enhanced_strobe(struct mmc *mmc)
{
	return dm_mmc_set_enhanced_strobe(mmc->dev);
}
#endif

我走到了 no set_enhanced_strobe here ,也就是 uboot 的 rockchip_sdhci.c 还没实现 set_enhanced_strobe 这个方法。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn