<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[【求助】LCD RGB18 部分引脚被占用应该如何释放]]></title><description><![CDATA[<p dir="auto">这个是rgb18的引脚定义：</p>
<pre><code>			rgb18_pins_a: rgb18@0 {
				pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", \
					"PD6", "PD7", "PD8", "PD9", "PD10", "PD11", \
					"PD12", "PD13", "PD14", "PD15", "PD16", "PD17", \
					"PD18", "PD19", "PD20", "PD21";
				function = "lcd0";
				drive-strength = &lt;30&gt;;
				bias-disable;
			};
</code></pre>
<p dir="auto">在系统启动时LCD驱动程序报错如下：主要是因为PD19引脚被占用导致引脚申请失败</p>
<pre><code>[    5.809429] [DISP]disp_module_init
[    5.814103] disp 5000000.disp: Adding to iommu group 0
[    5.845304] disp 5000000.disp: 5000000.disp supply vcc-lcd not found, using dummy regulator
[    5.855057] disp 5000000.disp: 5000000.disp supply vcc-pd not found, using dummy regulator
[    5.875786] display_fb_request,fb_id:0
[    5.886234] [DISP] Fb_copy_boot_fb,line:1443:
[    5.886240] no boot_fb0
[    5.894393] disp_al_manager_apply ouput_type:0
[    5.900737] [DISP]disp_module_init finish
[    5.905298] [DISP] lcd_clk_config,line:732:
[    5.905310] disp 0, clk: pll(114000000),clk(114000000),dclk(19000000) dsi_rate(114000000)
[    5.905310]      clk real:pll(288000000),clk(288000000),dclk(48000000) dsi_rate(0)
[    5.963933] =====================LCD_open_flow
[    5.968892] =====================LCD_power_on
[    5.974983] sun8iw20-pinctrl 2000000.pinctrl: pin PD19 already requested by 2000000.pinctrl:115; cannot claim for 1c0c000.lcd0
[    6.031543] sun8iw20-pinctrl 2000000.pinctrl: pin-115 (1c0c000.lcd0) status -22
[    6.039701] sun8iw20-pinctrl 2000000.pinctrl: could not request pin 115 (PD19) from group PD19  on device 2000000.pinctrl
[    6.091538] platform 1c0c000.lcd0: Error applying setting, reverse things back
[    6.099618] [DISP] disp_sys_pin_set_state,line:395:
[    6.099622] pinctrl_select_state(active) for allwinner,sunxi-lcd0 fail
[    6.181549] =====================LCD_panel_init

</code></pre>
<p dir="auto">这个是进入系统后打印的引脚信息：</p>
<pre><code>root@TinaLinux:/# cat /sys/kernel/debug/pinctrl/2000000.pinctrl/pinmux-pins
Pinmux settings per pin
Format: pin (name): mux_owner|gpio_owner (strict) hog?
pin 32 (PB0): device 2502800.twi function gpio_in group PB0
pin 33 (PB1): device 2502800.twi function gpio_in group PB1
pin 34 (PB2): UNCLAIMED
pin 35 (PB3): UNCLAIMED
pin 36 (PB4): UNCLAIMED
pin 37 (PB5): UNCLAIMED
pin 38 (PB6): UNCLAIMED
pin 39 (PB7): UNCLAIMED
pin 40 (PB8): device 2500000.uart function uart0 group PB8
pin 41 (PB9): device 2500000.uart function uart0 group PB9
pin 42 (PB10): device 2031000.dmic function io_disabled group PB10
pin 43 (PB11): device 2031000.dmic function io_disabled group PB11
pin 44 (PB12): UNCLAIMED
pin 64 (PC0): device 2008000.ledc function ledc group PC0
pin 65 (PC1): UNCLAIMED
pin 66 (PC2): UNCLAIMED
pin 67 (PC3): UNCLAIMED
pin 68 (PC4): UNCLAIMED
pin 69 (PC5): UNCLAIMED
pin 70 (PC6): UNCLAIMED
pin 71 (PC7): UNCLAIMED
pin 96 (PD0): UNCLAIMED
pin 97 (PD1): UNCLAIMED
pin 98 (PD2): UNCLAIMED
pin 99 (PD3): UNCLAIMED
pin 100 (PD4): UNCLAIMED
pin 101 (PD5): UNCLAIMED
pin 102 (PD6): UNCLAIMED
pin 103 (PD7): UNCLAIMED
pin 104 (PD8): UNCLAIMED
pin 105 (PD9): UNCLAIMED
pin 106 (PD10): UNCLAIMED
pin 107 (PD11): UNCLAIMED
pin 108 (PD12): UNCLAIMED
pin 109 (PD13): UNCLAIMED
pin 110 (PD14): UNCLAIMED
pin 111 (PD15): UNCLAIMED
pin 112 (PD16): UNCLAIMED
pin 113 (PD17): UNCLAIMED
pin 114 (PD18): UNCLAIMED
pin 115 (PD19): GPIO 2000000.pinctrl:115
pin 116 (PD20): GPIO 2000000.pinctrl:116
pin 117 (PD21): GPIO 2000000.pinctrl:117
pin 118 (PD22): UNCLAIMED
pin 128 (PE0): UNCLAIMED
pin 129 (PE1): UNCLAIMED
pin 130 (PE2): UNCLAIMED
pin 131 (PE3): UNCLAIMED
pin 132 (PE4): UNCLAIMED
pin 133 (PE5): UNCLAIMED
pin 134 (PE6): UNCLAIMED
pin 135 (PE7): UNCLAIMED
pin 136 (PE8): UNCLAIMED
pin 137 (PE9): UNCLAIMED
pin 138 (PE10): UNCLAIMED
pin 139 (PE11): UNCLAIMED
pin 140 (PE12): UNCLAIMED
pin 141 (PE13): UNCLAIMED
pin 142 (PE14): device 2031000.dmic function io_disabled group PE14
pin 143 (PE15): UNCLAIMED
pin 144 (PE16): UNCLAIMED
pin 145 (PE17): device 2031000.dmic function io_disabled group PE17
pin 160 (PF0): device 4020000.sdmmc function sdc0 group PF0
pin 161 (PF1): device 4020000.sdmmc function sdc0 group PF1
pin 162 (PF2): device 4020000.sdmmc function sdc0 group PF2
pin 163 (PF3): device 4020000.sdmmc function sdc0 group PF3
pin 164 (PF4): device 4020000.sdmmc function sdc0 group PF4
pin 165 (PF5): device 4020000.sdmmc function sdc0 group PF5
pin 166 (PF6): GPIO 2000000.pinctrl:166
pin 192 (PG0): device 4021000.sdmmc function gpio_in group PG0
pin 193 (PG1): device 4021000.sdmmc function gpio_in group PG1
pin 194 (PG2): device 4021000.sdmmc function gpio_in group PG2
pin 195 (PG3): device 4021000.sdmmc function gpio_in group PG3
pin 196 (PG4): device 4021000.sdmmc function gpio_in group PG4
pin 197 (PG5): device 4021000.sdmmc function gpio_in group PG5
pin 198 (PG6): device 2500400.uart function uart1 group PG6
pin 199 (PG7): device 2500400.uart function uart1 group PG7
pin 200 (PG8): device 2500400.uart function uart1 group PG8
pin 201 (PG9): device 2500400.uart function uart1 group PG9
pin 202 (PG10): GPIO 2000000.pinctrl:202
pin 203 (PG11): device soc@3000000:rfkill@0 function clk_fanout1 group PG11
pin 204 (PG12): GPIO 2000000.pinctrl:204
pin 205 (PG13): UNCLAIMED
pin 206 (PG14): UNCLAIMED
pin 207 (PG15): UNCLAIMED
pin 208 (PG16): GPIO 2000000.pinctrl:208
pin 209 (PG17): GPIO 2000000.pinctrl:209
pin 210 (PG18): GPIO 2000000.pinctrl:210
</code></pre>
<p dir="auto">打印信息没显示PD19、PD20、PD21三个引脚是被哪个设备占用了，dts文件里除了rgb使用了PD19、PD20、PD21，别的地方都没再使用<br />
文件：lichee/linux-5.4/arch/riscv/boot/dts/sunxi/sun20iw1p1.dtsi</p>
<pre><code>/*
 * Allwinner Technology CO., Ltd. sun20iw1p1 platform.
 *
 */

/memreserve/ 0x41fc0000 0x020000;  /* opensbi */

#include &lt;dt-bindings/clock/sun8iw20-ccu.h&gt;
#include &lt;dt-bindings/clock/sun8iw20-r-ccu.h&gt;
#include &lt;dt-bindings/clock/sun8iw20-rtc.h&gt;
#include &lt;dt-bindings/reset/sun8iw20-ccu.h&gt;
#include &lt;dt-bindings/reset/sun8iw20-r-ccu.h&gt;
#include &lt;dt-bindings/gpio/gpio.h&gt;
#include &lt;dt-bindings/interrupt-controller/irq.h&gt;
#include &lt;dt-bindings/gpio/sun4i-gpio.h&gt;
#include &lt;dt-bindings/thermal/thermal.h&gt;

/ {
	model = "sun20iw1p1";
	compatible = "allwinner,sun20iw1p1";
	#address-cells = &lt;2&gt;;
	#size-cells = &lt;2&gt;;

	aliases {
		serial0 = &amp;uart0;
		serial1 = &amp;uart1;
		serial2 = &amp;uart2;
		serial3 = &amp;uart3;
		serial4 = &amp;uart4;
		serial5 = &amp;uart5;
		spi0 = &amp;spi0;
		spi1 = &amp;spi1;
		twi0 = &amp;twi0;
		twi1 = &amp;twi1;
		twi2 = &amp;twi2;
		twi3 = &amp;twi3;
		mmc2 = &amp;sdc2;
		pwm0 = &amp;pwm0;
		pwm1 = &amp;pwm1;
		pwm2 = &amp;pwm2;
		pwm3 = &amp;pwm3;
		pwm4 = &amp;pwm4;
		pwm5 = &amp;pwm5;
		pwm6 = &amp;pwm6;
		pwm7 = &amp;pwm7;
		ir0 = &amp;s_cir0;
		ir1 = &amp;ir1;
		mmc0 = &amp;sdc0;
		ve0 = &amp;ve;
		tvd = &amp;tvd;
		tvd0 = &amp;tvd0;
	} ;

	chosen {
		bootargs = "console=ttyS0,115200n8 debug loglevel=7,initcall_debug=1 init=/init earlycon=sbi";
		stdout-path = "serial0:115200n8";
		linux,initrd-start = &lt;0x42000000&gt;;
		linux,initrd-end   = &lt;0x43000000&gt;;
	};

	cpus {
		#address-cells = &lt;1&gt;;
		#size-cells = &lt;0&gt;;
		timebase-frequency = &lt;24000000&gt;;

		idle-states {
			CPU_SLEEP: cpu-sleep {
				compatible = "riscv,idle-state";
				local-timer-stop;
				entry-latency-us = &lt;59&gt;;
				exit-latency-us = &lt;59&gt;;
				min-residency-us = &lt;5000&gt;;
			};
		};

		CPU0: cpu@0 {
			device_type = "cpu";
			reg = &lt;0&gt;;
			status = "okay";
			compatible = "riscv";
			riscv,isa = "rv64imafdcvsu";
		/*	riscv,priv-major = &lt;1&gt;;*/
		/*	riscv,priv-minor = &lt;10&gt;;*/
			mmu-type = "riscv,sv39";
			clocks = &lt;&amp;ccu CLK_RISCV&gt;;
			clock-frequency = &lt;24000000&gt;;
			operating-points-v2 = &lt;&amp;cpu_opp_table&gt;;
			cpu-idle-states = &lt;&amp;CPU_SLEEP&gt;;
			#cooling-cells = &lt;2&gt;;
	/*		d-cache-size = &lt;0x8000&gt;;*/
	/*		d-cache-line-size = &lt;32&gt;;*/
			CPU0_intc: interrupt-controller {
				#interrupt-cells = &lt;1&gt;;
				interrupt-controller;
				compatible = "riscv,cpu-intc";
			};
		};
	};

	dram: dram {
		device_type = "dram";
		compatible = "allwinner,dram";
		clocks = &lt;&amp;ccu CLK_PLL_DDR0&gt;;
		clock-names = "pll_ddr";
	};

	memory@40000000 {
		device_type = "memory";
		reg = &lt;0x0 0x40000000 0x0 0x8000000&gt;;
	};

	dump_reg: dump_reg@20000 {
		compatible = "allwinner,sunxi-dump-reg";
		reg = &lt;0x0 0x00020000 0x0 0x0004&gt;;
		/* 0x00020000: dump_reg test addr, 0x0004: dump_reg test size */
	};

	cpu_opp_table: cpu-opp-table {
		compatible = "allwinner,sun50i-operating-points";
		nvmem-cells = &lt;&amp;speedbin_efuse&gt;, &lt;&amp;cpubin_efuse&gt;;
		nvmem-cell-names = "speed", "bin";
		opp-shared;

		opp@1008000000 {
			opp-hz = /bits/ 64 &lt;1008000000&gt;;
			clock-latency-ns = &lt;244144&gt;; /* 8 32k periods */
			opp-microvolt-a0 = &lt;1100000&gt;;
			opp-microvolt-a1 = &lt;950000&gt;;

			opp-microvolt-b1 = &lt;950000&gt;;
			opp-supported-hw = &lt;0x1&gt;;
		};
	};

	dcxo24M: dcxo24M_clk {
		#clock-cells = &lt;0&gt;;
		compatible = "fixed-clock";
		clock-frequency = &lt;24000000&gt;;
		clock-output-names = "dcxo24M";
	};

	rc_16m: rc16m_clk {
		#clock-cells = &lt;0&gt;;
		compatible = "fixed-clock";
		clock-frequency = &lt;16000000&gt;;
		clock-accuracy = &lt;300000000&gt;;
		clock-output-names = "rc-16m";
	};

	ext_32k: ext32k_clk {
		#clock-cells = &lt;0&gt;;
		compatible = "fixed-clock";
		clock-frequency = &lt;32768&gt;;
		clock-output-names = "ext-32k";
	};

	reg_pio1_8: pio-18 {
		compatible = "regulator-fixed";
		regulator-name = "pio-18";
		regulator-min-microvolt = &lt;1800000&gt;;
		regulator-max-microvolt = &lt;1800000&gt;;
	};

	reg_pio3_3: pio-33 {
		compatible = "regulator-fixed";
		regulator-name = "pio-33";
		regulator-min-microvolt = &lt;3300000&gt;;
		regulator-max-microvolt = &lt;3300000&gt;;
	};

	thermal-zones {
		cpu_thermal_zone {
			polling-delay-passive = &lt;500&gt;;
			polling-delay = &lt;1000&gt;;
			thermal-sensors = &lt;&amp;ths 0&gt;;
			sustainable-power = &lt;1200&gt;;

			cpu_trips: trips {
				cpu_threshold: trip-point@0 {
					temperature = &lt;70000&gt;;
					type = "passive";
					hysteresis = &lt;0&gt;;
				};
				cpu_target: trip-point@1 {
					temperature = &lt;90000&gt;;
					type = "passive";
					hysteresis = &lt;0&gt;;
				};
				cpu_crit: cpu_crit@0 {
					temperature = &lt;110000&gt;;
					type = "critical";
					hysteresis = &lt;0&gt;;
				};
			};

			cooling-maps {
				map0 {
					trip = &lt;&amp;cpu_target&gt;;
					cooling-device = &lt;&amp;CPU0
					THERMAL_NO_LIMIT
					THERMAL_NO_LIMIT&gt;;
					contribution = &lt;1024&gt;;
				};
			};
		};
	};

	mmu_aw: iommu@2010000 {
		compatible = "allwinner,sunxi-iommu";
		reg = &lt;0x0 0x02010000 0x0 0x1000&gt;;
		interrupts-extended = &lt;&amp;plic0 80 IRQ_TYPE_LEVEL_HIGH&gt;;
		interrupt-names = "iommu-irq";
		clocks = &lt;&amp;ccu CLK_BUS_IOMMU&gt;;
		clock-names = "iommu";
		#iommu-cells = &lt;2&gt;;
		status = "okay";
	};

	soc: soc@3000000 {
		#address-cells = &lt;2&gt;;
		#size-cells = &lt;2&gt;;
		compatible = "simple-bus";
		ranges;

		sram_ctrl: sram_ctrl@3000000 {
			compatible = "allwinner,sram_ctrl";
			reg = &lt;0x0 0x3000000 0 0x16C&gt;;
			soc_ver {
				offset = &lt;0x24&gt;;
				mask = &lt;0x7&gt;;
				shift = &lt;0&gt;;
				ver_a = &lt;0x18590000&gt;;
				ver_b = &lt;0x18590002&gt;;
				ver_d = &lt;0x18590003&gt;;
			};

			soc_id {
				offset = &lt;0x200&gt;;
				mask = &lt;0x1&gt;;
				shift = &lt;22&gt;;
			};

			soc_bin {
				offset = &lt;0x0&gt;;
				mask = &lt;0x3ff&gt;;
				shift = &lt;0x0&gt;;
			};

		};

		rtc_ccu: rtc_ccu@7090000 {
			compatible = "allwinner,sun20iw1-rtc-ccu";
			device_type = "rtc-ccu";
			reg = &lt;0x0 0x07090000 0x0 0x320&gt;;  /* The same as rtc */
			#clock-cells = &lt;1&gt;;
		};

		ccu: clock@2001000 {
			compatible = "allwinner,sun20iw1-ccu";
			reg = &lt;0x0 0x02001000 0x0 0x1000&gt;;
			clocks = &lt;&amp;dcxo24M&gt;, &lt;&amp;rtc_ccu CLK_OSC32K&gt;, &lt;&amp;rtc_ccu CLK_IOSC&gt;;
			clock-names = "hosc", "losc", "iosc";
			#clock-cells = &lt;1&gt;;
			#reset-cells = &lt;1&gt;;
		};

		r_ccu: clock@7010000 {
			compatible = "allwinner,sun20iw1-r-ccu";
			reg = &lt;0x0 0x07010000 0x0 0x240&gt;;
			clocks = &lt;&amp;dcxo24M&gt;, &lt;&amp;rtc_ccu CLK_OSC32K&gt;, &lt;&amp;rtc_ccu CLK_IOSC&gt;,
				 &lt;&amp;ccu CLK_PLL_PERIPH0&gt;;
			clock-names = "hosc", "losc", "iosc", "pll-periph0";
			#clock-cells = &lt;1&gt;;
			#reset-cells = &lt;1&gt;;
		};


		plic0: interrupt-controller@10000000 {
			compatible = "riscv,plic0";
			#address-cells = &lt;2&gt;;
			#interrupt-cells = &lt;2&gt;;
			interrupt-controller;
			reg = &lt;0x0 0x10000000 0x0 0x4000000&gt;;
			interrupts-extended = &lt;&amp;CPU0_intc 0xffffffff &amp;CPU0_intc 9&gt;;
			reg-names = "control";
			riscv,max-priority = &lt;7&gt;;
			riscv,ndev=&lt;200&gt;;
		};

		uart0: uart@2500000 {
			compatible = "allwinner,sun20i-uart";
			device_type = "uart0";
			reg = &lt;0x0 0x02500000 0x0 0x400&gt;;
			interrupts-extended = &lt;&amp;plic0 18 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_UART0&gt;;
			clock-names = "uart0";
			resets = &lt;&amp;ccu RST_BUS_UART0&gt;;
			sunxi,uart-fifosize = &lt;64&gt;;
			uart0_port = &lt;0&gt;;
			uart0_type = &lt;2&gt;;
			status = "okay";
		};

		uart1: uart@2500400 {
			compatible = "allwinner,sun20i-uart";
			device_type = "uart1";
			reg = &lt;0x0 0x02500400 0x0 0x400&gt;;
			interrupts-extended = &lt;&amp;plic0 19 IRQ_TYPE_LEVEL_HIGH&gt;;
			sunxi,uart-fifosize = &lt;256&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_UART1&gt;;
			clock-names = "uart1";
			resets = &lt;&amp;ccu RST_BUS_UART1&gt;;
			uart1_port = &lt;1&gt;;
			uart1_type = &lt;4&gt;;
			status = "disabled";
		};

		uart2: uart@2500800 {
			compatible = "allwinner,sun20i-uart";
			device_type = "uart2";
			reg = &lt;0x0 0x02500800 0x0 0x400&gt;;
			interrupts-extended = &lt;&amp;plic0 20 IRQ_TYPE_LEVEL_HIGH&gt;;
			sunxi,uart-fifosize = &lt;256&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_UART2&gt;;
			clock-names = "uart2";
			resets = &lt;&amp;ccu RST_BUS_UART2&gt;;
			uart2_port = &lt;2&gt;;
			uart2_type = &lt;4&gt;;
			status = "disabled";
		};

		uart3: uart@2500c00 {
			compatible = "allwinner,sun20i-uart";
			device_type = "uart3";
			reg = &lt;0x0 0x02500c00 0x0 0x400&gt;;
			interrupts-extended = &lt;&amp;plic0 21 IRQ_TYPE_LEVEL_HIGH&gt;;
			sunxi,uart-fifosize = &lt;256&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_UART3&gt;;
			clock-names = "uart3";
			resets = &lt;&amp;ccu RST_BUS_UART3&gt;;
			uart3_port = &lt;3&gt;;
			uart3_type = &lt;4&gt;;
			status = "disabled";
		};

		uart4: uart@2501000 {
			compatible = "allwinner,sun20i-uart";
			device_type = "uart4";
			reg = &lt;0x0 0x02501000 0x0 0x400&gt;;
			interrupts-extended = &lt;&amp;plic0 22 IRQ_TYPE_LEVEL_HIGH&gt;;
			sunxi,uart-fifosize = &lt;256&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_UART4&gt;;
			clock-names = "uart4";
			resets = &lt;&amp;ccu RST_BUS_UART4&gt;;
			uart4_port = &lt;4&gt;;
			uart4_type = &lt;2&gt;;
			status = "disabled";
		};

		uart5: uart@2501400 {
			compatible = "allwinner,sun20i-uart";
			device_type = "uart5";
			reg = &lt;0x0 0x02501400 0x0 0x400&gt;;
			interrupts-extended = &lt;&amp;plic0 23 IRQ_TYPE_LEVEL_HIGH&gt;;
			sunxi,uart-fifosize = &lt;256&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_UART5&gt;;
			clock-names = "uart5";
			resets = &lt;&amp;ccu RST_BUS_UART5&gt;;
			uart5_port = &lt;5&gt;;
			uart5_type = &lt;2&gt;;
			status = "disabled";
		};
		cryptoengine: ce@03040000 {
			compatible = "allwinner,sunxi-ce";
			device_name = "ce";
			reg = &lt;0x0 0x03040000 0x0 0xa0&gt;, /* non-secure space */
			      &lt;0x0 0x03040800 0x0 0xa0&gt;; /* secure space */
			interrupts-extended = &lt;&amp;plic0 68 IRQ_TYPE_EDGE_RISING&gt;, /*non-secure*/
				   &lt;&amp;plic0 69 IRQ_TYPE_EDGE_RISING&gt;; /* secure*/
			clock-frequency = &lt;400000000&gt;; /* 400MHz */
			clocks = &lt;&amp;ccu CLK_BUS_CE&gt;, &lt;&amp;ccu CLK_CE&gt;, &lt;&amp;ccu CLK_MBUS_CE&gt;,
					&lt;&amp;ccu CLK_PLL_PERIPH0_2X&gt;;
			clock-names = "bus_ce", "ce_clk", "mbus_ce", "pll_periph0_2x";
			resets = &lt;&amp;ccu RST_BUS_CE&gt;;
			status = "okay";
		};

		s_cir0: s_cir@7040000 {
			compatible = "allwinner,s_cir";
			reg = &lt;0x0 0x07040000 0x0 0x400&gt;;
			interrupts-extended = &lt;&amp;plic0 167 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;r_ccu CLK_R_APB0_BUS_IRRX&gt;, &lt;&amp;dcxo24M&gt;, &lt;&amp;r_ccu CLK_R_APB0_IRRX&gt;;
			clock-names = "bus", "pclk", "mclk";
			resets = &lt;&amp;r_ccu RST_R_APB0_BUS_IRRX&gt;;
			supply = "";
			supply_vol = "";
			status = "disabled";
		};

		ir1: ir@2003000 {
			compatible = "allwinner,irtx";
			reg = &lt;0x0 0x02003000 0x0 0x400&gt;;
			interrupts-extended = &lt;&amp;plic0 35 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_IR_TX&gt;, &lt;&amp;dcxo24M&gt;, &lt;&amp;ccu CLK_IR_TX&gt;;
			clock-names = "bus", "pclk", "mclk";
			resets = &lt;&amp;ccu RST_BUS_IR_TX&gt;;
			status = "disabled";
		};

		di: deinterlace@5400000 {
			compatible = "allwinner,sunxi-deinterlace";
			reg = &lt;0x0 0x05400000 0x0 0x0000ffff&gt;;
			interrupts-extended = &lt;&amp;plic0 104 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_DI&gt;,
				 &lt;&amp;ccu CLK_BUS_DI&gt;,
				 &lt;&amp;ccu CLK_PLL_PERIPH0_2X&gt;;
			clock-names = "clk_di",
				      "pll_periph",
				      "clk_bus_di";
			resets = &lt;&amp;ccu RST_BUS_DI&gt;;
			reset-names = "rst_bus_di";

			assigned-clocks = &lt;&amp;ccu CLK_DI&gt;;
			assigned-clock-parents = &lt;&amp;ccu CLK_PLL_PERIPH0_2X&gt;;
			assigned-clock-rates = &lt;300000000&gt;;

			iommus = &lt;&amp;mmu_aw 4 1&gt;;
			status = "okay";
		};

		gmac0: eth@4500000 {
			compatible = "allwinner,sunxi-gmac";
			reg = &lt;0x0 0x04500000 0x0 0x10000&gt;,
			      &lt;0x0 0x03000030 0x0 0x4&gt;;
			interrupts-extended = &lt;&amp;plic0 62 IRQ_TYPE_LEVEL_HIGH&gt;;
			interrupt-names = "gmacirq";
			clocks = &lt;&amp;ccu CLK_BUS_EMAC0&gt;, &lt;&amp;ccu CLK_EMAC0_25M&gt;;
			clock-names = "gmac", "ephy";
			resets = &lt;&amp;ccu RST_BUS_EMAC0&gt;;
			device_type = "gmac0";
			pinctrl-0 = &lt;&amp;gmac_pins_a&gt;;
			pinctrl-1 = &lt;&amp;gmac_pins_b&gt;;
			pinctrl-names = "default", "sleep";
			phy-mode = "rgmii";
			use_ephy25m = &lt;1&gt;;
			tx-delay = &lt;7&gt;;
			rx-delay = &lt;31&gt;;
			phy-rst = &lt;&amp;pio PA 14 GPIO_ACTIVE_LOW&gt;;
			gmac-power0;
			gmac-power1;
			gmac-power2;
			status = "disabled";
		};

		rtc: rtc@7090000 {
			compatible = "allwinner,sun20iw1-rtc";
			device_type = "rtc";
			wakeup-source;
			interrupts-extended = &lt;&amp;plic0 160 IRQ_TYPE_LEVEL_HIGH&gt;;
			reg = &lt;0x0 0x07090000 0x0 0x320&gt;;
			clocks = &lt;&amp;r_ccu CLK_R_AHB_BUS_RTC&gt;, &lt;&amp;rtc_ccu CLK_RTC_SPI&gt;, &lt;&amp;rtc_ccu CLK_RTC_1K&gt;;
			clock-names = "r-ahb-rtc", "rtc-spi", "rtc-1k";
			resets = &lt;&amp;r_ccu RST_R_AHB_BUS_RTC&gt;;
			gpr_cur_pos = &lt;6&gt;;
		};

		dma: dma-controller@3002000 {
			compatible = "allwinner,sun8i-riscv-dma";
			reg = &lt;0x0 0x03002000 0x0 0x1000&gt;;
			interrupts-extended = &lt;&amp;plic0 66 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_DMA&gt;, &lt;&amp;ccu CLK_MBUS_DMA&gt;;
			clock-names = "bus", "mbus";
			resets = &lt;&amp;ccu RST_BUS_DMA&gt;;
			dma-channels = &lt;8&gt;;
			dma-requests = &lt;48&gt;;
			#dma-cells = &lt;1&gt;;
			status = "okay";
		};

		soc_timer0: timer@2050000 {
			compatible = "allwinner,sun4i-a10-timer";
			device_type = "soc_timer";
			reg = &lt;0x0 0x02050000 0x0 0xA0&gt;;
			interrupts-extended = &lt;&amp;plic0 75 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;dcxo24M&gt;;
			status = "okay";
		};

		wdt: watchdog@6011000 {
			compatible = "allwinner,sun20i-wdt";
			reg = &lt;0x0 0x06011000 0x0 0x20&gt;;
			interrupts-extended = &lt;&amp;plic0 147 IRQ_TYPE_LEVEL_HIGH&gt;;
		};

		mbus0:mbus-comtroller@3102000 {
			compatible = "allwinner,sun8i-mbus";
			reg = &lt;0x0 0x03102000 0x0 0x1000&gt;;
			#mbus-cells = &lt;1&gt;;
		};

		pmu: pmu {
			compatible = "riscv,c910_pmu";
		};

		ilde: idle {
			compatible = "riscv,idle";
		};

		pio: pinctrl@2000000 {
			compatible = "allwinner,sun20iw1-pinctrl";
			reg = &lt;0x0 0x02000000 0x0 0x500&gt;;
			interrupts-extended = &lt;&amp;plic0 85 IRQ_TYPE_LEVEL_HIGH&gt;,
				     &lt;&amp;plic0 87 IRQ_TYPE_LEVEL_HIGH&gt;,
				     &lt;&amp;plic0 89 IRQ_TYPE_LEVEL_HIGH&gt;,
				     &lt;&amp;plic0 91 IRQ_TYPE_LEVEL_HIGH&gt;,
				     &lt;&amp;plic0 93 IRQ_TYPE_LEVEL_HIGH&gt;,
				     &lt;&amp;plic0 95 IRQ_TYPE_LEVEL_HIGH&gt;;
			device_type = "pio";
			clocks = &lt;&amp;ccu CLK_APB0&gt;, &lt;&amp;dcxo24M&gt;, &lt;&amp;rtc_ccu CLK_OSC32K&gt;;
			clock-names = "apb", "hosc", "losc";
			gpio-controller;
			#gpio-cells = &lt;3&gt;;
			interrupt-controller;
			#interrupt-cells = &lt;3&gt;;
			#size-cells = &lt;0&gt;;
			vcc-pf-supply = &lt;&amp;reg_pio1_8&gt;;
			vcc-pfo-supply = &lt;&amp;reg_pio3_3&gt;;

			test_pins_a: test_pins@0 {
				allwinner,pins = "PB0", "PB1";
				allwinner,function = "test";
				allwinner,muxsel = &lt;0x7&gt;;
				allwinner,drive = &lt;1&gt;;
				allwinner,pull = &lt;1&gt;;
			};
			test_pins_b: test_pins@1 {
				pins = "PB0", "PB1";
				function = "io_disabled";
				allwinner,muxsel = &lt;0xF&gt;;
				allwinner,drive = &lt;1&gt;;
				allwinner,pull = &lt;1&gt;;
			};

			gmac_pins_a: gmac@0 {
				pins = "PA0", "PA1", "PA2", "PA3",
						 "PA4", "PA5", "PA6", "PA7",
						 "PA8", "PA10", "PA11", "PA12",
						 "PA13", "PA17", "PA18", "PA28",
						 "PA29", "PA30", "PA31";
				function = "gmac0";
				drive-strength = &lt;10&gt;;
			};

			gmac_pins_b: gmac@1 {
				pins = "PA0", "PA1", "PA2", "PA3",
						 "PA4", "PA5", "PA6", "PA7",
						 "PA8", "PA10", "PA11", "PA12",
						 "PA13", "PA17", "PA18", "PA28",
						 "PA29", "PA30", "PA31";
				function = "gpio_in";
				drive-strength = &lt;10&gt;;
			};

			ir1_pins_a: ir1@0 {  /* For FPGA board */
				pins = "PG11";
				function = "ir1";
				drive-strength = &lt;10&gt;;
			};

			csi_mclk0_pins_a: csi_mclk0@0 {
				pins = "PE3";
				function = "csi0";
				drive-strength = &lt;10&gt;;
			};
			csi_mclk0_pins_b: csi_mclk0@1 {
				pins = "PE3";
				function = "gpio_in";
			};
			csi0_pins_a: csi0@0 {
				pins = "PE2", "PE0", "PE1", "PE4", "PE5",
						 "PE6", "PE7", "PE8", "PE9", "PE10", "PE11";
				function = "ncsi0";
				drive-strength = &lt;10&gt;;
			};
			csi0_pins_b: csi0@1 {
				pins = "PE2", "PE0", "PE1", "PE4", "PE5",
						 "PE6", "PE7", "PE8", "PE9", "PE10", "PE11";
				function = "io_disabled";
				drive-strength = &lt;10&gt;;
			};

			lvds0_pins_a: lvds0@0 {
				pins  = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9";
				function = "lvds0";
				drive-strength = &lt;30&gt;;
				bias-disable;
			};

			lvds0_pins_b: lvds0@1 {
				pins  = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9";
				function = "io_disabled";
				drive-strength = &lt;30&gt;;
				bias-disable;
			};

			rgb24_pins_a: rgb24@0 {
				pins = "PB2", "PB3", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", \
					"PB4", "PB5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", \
					"PB6", "PB7", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", \
					"PD18", "PD19", "PD20", "PD21";
				function = "lcd0";
				drive-strength = &lt;30&gt;;
				bias-disable;
			};

			rgb24_pins_b: rgb24@1 {
				pins = "PB2", "PB3", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", \
					"PB4", "PB5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", \
					"PB6", "PB7", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", \
					"PD18", "PD19", "PD20", "PD21";
				function = "io_disabled";
				bias-disable;
			};

			rgb18_pins_a: rgb18@0 {
				pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", \
					"PD6", "PD7", "PD8", "PD9", "PD10", "PD11", \
					"PD12", "PD13", "PD14", "PD15", "PD16", "PD17", \
					"PD18", "PD19", "PD20", "PD21";
				function = "lcd0";
				drive-strength = &lt;30&gt;;
				bias-disable;
			};

			rgb18_pins_b: rgb18@1 {
				pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", \
					"PD6", "PD7", "PD8", "PD9", "PD10", "PD11", \
					"PD12", "PD13", "PD14", "PD15", "PD16", "PD17", \
					"PD18", "PD19", "PD20", "PD21";
				function = "io_disabled";
				bias-disable;
			};

			dsi2lane_pins_a: dsi2lane@0 {
				pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5";
				function = "dsi";
				drive-strength = &lt;30&gt;;
				bias-disable;
			};

			dsi2lane_pins_b: dsi2lane@1 {
				pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5";
				function = "io_disabled";
				bias-disable;
			};

			dsi4lane_pins_a: dsi4lane@0 {
				pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9";
				function = "dsi";
				drive-strength = &lt;30&gt;;
				bias-disable;
			};

			dsi4lane_pins_b: dsi4lane@1 {
				pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9";
				function = "io_disabled";
				bias-disable;
			};

		};

		spi0: spi@4025000 {
			#address-cells = &lt;1&gt;;
			#size-cells = &lt;0&gt;;
			compatible = "allwinner,sun20i-spi";
			device_type = "spi0";
			reg = &lt;0x0 0x04025000 0x0 0x300&gt;;
			interrupts-extended = &lt;&amp;plic0 31 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_PLL_PERIPH0&gt;, &lt;&amp;ccu CLK_SPI0&gt;, &lt;&amp;ccu CLK_BUS_SPI0&gt;;
			clock-names = "pll", "mod", "bus";
			resets = &lt;&amp;ccu RST_BUS_SPI0&gt;;
			clock-frequency = &lt;100000000&gt;;
			pinctrl-names = "default", "sleep";
			spi0_cs_number = &lt;1&gt;;
			spi0_cs_bitmap = &lt;1&gt;;
			dmas = &lt;&amp;dma 22&gt;, &lt;&amp;dma 22&gt;;
			dma-names = "tx", "rx";
			status = "disabled";
		};

		spi1: spi@4026000 {
			#address-cells = &lt;1&gt;;
			#size-cells = &lt;0&gt;;
			compatible = "allwinner,sun20i-spi";
			reg = &lt;0x0 0x04026000 0x0 0x1000&gt;;
			interrupts-extended = &lt;&amp;plic0 32 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_PLL_PERIPH0&gt;, &lt;&amp;ccu CLK_SPI1&gt;, &lt;&amp;ccu CLK_BUS_SPI1&gt;;
			clock-names = "pll", "mod", "bus";
			resets = &lt;&amp;ccu RST_BUS_SPI1&gt;;
			clock-frequency = &lt;100000000&gt;;
			spi1_cs_number = &lt;1&gt;;
			spi1_cs_bitmap = &lt;1&gt;;
			dmas = &lt;&amp;dma 23&gt;, &lt;&amp;dma 23&gt;;
			dma-names = "tx", "rx";
			status = "disabled";
		};

		twi0: twi@2502000 {
			#address-cells = &lt;1&gt;;
			#size-cells = &lt;0&gt;;
			compatible = "allwinner,sun20i-twi";
			device_type = "twi0";
			reg = &lt;0x0 0x02502000 0x0 0x400&gt;;
			interrupts-extended= &lt;&amp;plic0 25 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_I2C0&gt;;
			resets = &lt;&amp;ccu RST_BUS_I2C0&gt;;
			clock-names = "bus";
			clock-frequency = &lt;400000&gt;;
			dmas = &lt;&amp;dma 43&gt;, &lt;&amp;dma 43&gt;;
			dma-names = "tx", "rx";
			status = "disabled";
		};

		twi1: twi@2502400 {
			#address-cells = &lt;1&gt;;
			#size-cells = &lt;0&gt;;
			compatible = "allwinner,sun20i-twi";
			device_type = "twi1";
			reg = &lt;0x0 0x02502400 0x0 0x400&gt;;
			interrupts-extended= &lt;&amp;plic0 26 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_I2C1&gt;;
			resets = &lt;&amp;ccu RST_BUS_I2C1&gt;;
			clock-names = "bus";
			clock-frequency = &lt;200000&gt;;
			dmas = &lt;&amp;dma 44&gt;, &lt;&amp;dma 44&gt;;
			dma-names = "tx", "rx";
			status = "disabled";
		};

		twi2: twi@2502800 {
			#address-cells = &lt;1&gt;;
			#size-cells = &lt;0&gt;;
			compatible = "allwinner,sun20i-twi";
			device_type = "twi2";
			reg = &lt;0x0 0x02502800 0x0 0x400&gt;;
			interrupts-extended = &lt;&amp;plic0 27 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_I2C2&gt;;
			resets = &lt;&amp;ccu RST_BUS_I2C2&gt;;
			clock-names = "bus";
			clock-frequency = &lt;100000&gt;;
			dmas = &lt;&amp;dma 45&gt;, &lt;&amp;dma 45&gt;;
			dma-names = "tx", "rx";
			status = "disabled";
		};

		twi3: twi@2502c00 {
			#address-cells = &lt;1&gt;;
			#size-cells = &lt;0&gt;;
			compatible = "allwinner,sun20i-twi";
			device_type = "twi3";
			reg = &lt;0x0 0x02502c00 0x0 0x400&gt;;
			interrupts-extended = &lt;&amp;plic0 28 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_I2C3&gt;;
			resets = &lt;&amp;ccu RST_BUS_I2C3&gt;;
			clock-names = "bus";
			clock-frequency = &lt;100000&gt;;
			dmas = &lt;&amp;dma 46&gt;, &lt;&amp;dma 46&gt;;
			dma-names = "tx", "rx";
			status = "disabled";
		};

		ledc: ledc@2008000 {
			#address-cells = &lt;1&gt;;
			#size-cells = &lt;0&gt;;
			compatible = "allwinner,sunxi-leds";
			reg = &lt;0x0 0x02008000 0x0 0x400&gt;;
			interrupts-extended = &lt;&amp;plic0 36 IRQ_TYPE_LEVEL_HIGH&gt;;
			interrupt-names = "ledcirq";
			clocks = &lt;&amp;ccu CLK_LEDC&gt;, &lt;&amp;ccu CLK_BUS_LEDC&gt;;
			clock-names = "clk_ledc", "clk_cpuapb";
			dmas = &lt;&amp;dma 42&gt;, &lt;&amp;dma 42&gt;;
			dma-names = "rx", "tx";
			resets = &lt;&amp;ccu RST_BUS_LEDC&gt;;
			reset-names = "ledc_reset";
			status = "disable";
		};

		pwm: pwm@2000c00 {
			#pwm-cells = &lt;0x3&gt;;
			compatible = "allwinner,sunxi-pwm";
			reg = &lt;0x0 0x02000c00 0x0 0x3ff&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_PWM&gt;;
			resets = &lt;&amp;ccu RST_BUS_PWM&gt;;
			pwm-number = &lt;8&gt;;
			pwm-base = &lt;0x0&gt;;
			sunxi-pwms = &lt;&amp;pwm0&gt;, &lt;&amp;pwm1&gt;, &lt;&amp;pwm2&gt;, &lt;&amp;pwm3&gt;, &lt;&amp;pwm4&gt;,
				&lt;&amp;pwm5&gt;, &lt;&amp;pwm6&gt;, &lt;&amp;pwm7&gt;;

		};

		keyboard0: keyboard@2009800 {
			compatible = "allwinner,keyboard_1350mv";
			reg = &lt;0x0 0x02009800 0x0 0x400&gt;;
			interrupts-extended = &lt;&amp;plic0 77 IRQ_TYPE_EDGE_RISING&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_LRADC&gt;;
			resets = &lt;&amp;ccu RST_BUS_LRADC&gt;;
			key_cnt = &lt;5&gt;;
			key0 = &lt;210 115&gt;;
			key1 = &lt;410 114&gt;;
			key2 = &lt;590 139&gt;;
			key3 = &lt;750 28&gt;;
			key4 = &lt;880 172&gt;;
			status = "disabled";
		};

		sid@3006000 {
			compatible = "allwinner,sun20iw1p1-sid", "allwinner,sunxi-sid";
			reg = &lt;0x0 0x03006000 0 0x1000&gt;;
			#address-cells = &lt;1&gt;;
			#size-cells = &lt;1&gt;;

			chipid {
				reg = &lt;0x0 0&gt;;
				offset = &lt;0x200&gt;;
				size = &lt;0x10&gt;;
			};

			oem {
				reg = &lt;0x0 0&gt;;
				offset = &lt;0x238&gt;;
				size = &lt;0x8&gt;;
			};

			secure_status {
				reg = &lt;0x0 0&gt;;
				offset = &lt;0x210&gt;;
				size = &lt;0x4&gt;;
			};

			speedbin_efuse: speedbin@00 {
				reg = &lt;0x00 2&gt;;
			};

			cpubin_efuse: cpubin@28 {
				reg = &lt;0x28 2&gt;;
			};

			ths_calib: calib@14 {
				reg = &lt;0x14 8&gt;;
			};
		};

		gpadc: gpadc@2009000 {
		       compatible = "allwinner,sunxi-gpadc";
		       reg = &lt;0x0 0x02009000 0x0 0x400&gt;;
		       interrupts-extended = &lt;&amp;plic0 73 IRQ_TYPE_LEVEL_HIGH&gt;;
		       clocks = &lt;&amp;ccu CLK_BUS_GPADC&gt;;
		       clock-names = "bus";
		       resets = &lt;&amp;ccu RST_BUS_GPADC&gt;;
		       status = "okay";
		};

		ths: ths@02009400 {
			compatible = "allwinner,sun20iw1p1-ths";
			reg = &lt;0x0 0x02009400 0x0 0x400&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_THS&gt;;
			clock-names = "bus";
			resets = &lt;&amp;ccu RST_BUS_THS&gt;;
			nvmem-cells = &lt;&amp;ths_calib&gt;;
			nvmem-cell-names = "calibration";
			#thermal-sensor-cells = &lt;1&gt;;
		};

		tpadc: tpadc@2009c00 {
			compatible = "allwinner,tp_key";
			reg = &lt;0x0 0x02009c00 0x0 0x400&gt;;
			interrupts-extended = &lt;&amp;plic0 78 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_TPADC&gt;, &lt;&amp;ccu CLK_BUS_TPADC&gt;;
			clock-names = "mod", "bus";
			clock-frequency = &lt;1000000&gt;;
			resets = &lt;&amp;ccu RST_BUS_TPADC&gt;;
			status = "disabled";
		};

		rtp:rtp@2009c00 {
			compatible = "allwinner,sun8i-ts";
			reg = &lt;0x0 0x02009c00 0x0 0x400&gt;;
			clocks = &lt;&amp;ccu CLK_TPADC&gt;, &lt;&amp;ccu CLK_BUS_TPADC&gt;;
			clock-names = "mod", "bus";
			clock-frequency = &lt;1000000&gt;;
			resets = &lt;&amp;ccu RST_BUS_TPADC&gt;;
			interrupts-extended = &lt;&amp;plic0 78 IRQ_TYPE_LEVEL_HIGH&gt;;
		};

		/* codec addr: 0x02030000, the others is invalid to avoid build warining */
		codec:codec@2030000 {
			#sound-dai-cells = &lt;0&gt;;
			compatible = "allwinner,sunxi-internal-codec";
			reg = &lt;0x0 0x02030000 0x0 0x34c&gt;;
			clocks = &lt;&amp;ccu CLK_PLL_AUDIO0&gt;,
				 &lt;&amp;ccu CLK_PLL_AUDIO1_DIV5&gt;,
				 &lt;&amp;ccu CLK_AUDIO_DAC&gt;,
				 &lt;&amp;ccu CLK_AUDIO_ADC&gt;,
				 &lt;&amp;ccu CLK_BUS_AUDIO_CODEC&gt;;
			clock-names = "pll_audio0", "pll_audio1_div5",
				      "audio_clk_dac", "audio_clk_adc",
				      "audio_clk_bus";
			resets = &lt;&amp;ccu RST_BUS_AUDIO_CODEC&gt;;
			rx_sync_en  = &lt;0x00&gt;;
			device_type = "codec";
			status = "disabled";
		};

		dummy_cpudai:dummy_cpudai@203034c {
			compatible = "allwinner,sunxi-dummy-cpudai";
			reg = &lt;0x0 0x0203034c 0x0 0x4&gt;;
			tx_fifo_size    = &lt;128&gt;;
			rx_fifo_size    = &lt;256&gt;;
			dac_txdata      = &lt;0x02030020&gt;;
			adc_txdata      = &lt;0x02030040&gt;;
			playback_cma    = &lt;128&gt;;
			capture_cma     = &lt;256&gt;;
			device_type = "cpudai";
			dmas = &lt;&amp;dma 7&gt;, &lt;&amp;dma 7&gt;;
			dma-names = "tx", "rx";
			status = "disabled";
		};

		sndcodec:sound@2030340 {
			compatible = "allwinner,sunxi-codec-machine";
			reg = &lt;0x0 0x02030340 0x0 0x4&gt;;
			interrupts-extended = &lt;&amp;plic0 41 IRQ_TYPE_LEVEL_HIGH&gt;;
			sunxi,audio-codec = &lt;&amp;codec&gt;;
			sunxi,cpudai-controller = &lt;&amp;dummy_cpudai&gt;;
			device_type = "sndcodec";
			status = "disabled";
		};

		sunxi_rpaf_dsp0:rpaf-dsp@203034c {
			compatible = "allwinner,rpaf-dsp0";
			device_type = "sunxi_rpaf_dsp0";
			dsp_id = &lt;0x0&gt;;
			status = "okay";
		};

		/* dmic addr: 0x02031000, the others is invalid to avoid build warining */
		dmic:dmic@2031000{
			#sound-dai-cells = &lt;0&gt;;
			compatible = "allwinner,sunxi-dmic";
			reg = &lt;0x0 0x02031000 0x0 0x50&gt;;
			clocks = &lt;&amp;ccu CLK_PLL_AUDIO0&gt;,
				 &lt;&amp;ccu CLK_DMIC&gt;,
				 &lt;&amp;ccu CLK_BUS_DMIC&gt;;
			clock-names = "pll_audio", "dmic", "dmic_bus";
			resets = &lt;&amp;ccu RST_BUS_DMIC&gt;;
			dmas		= &lt;&amp;dma 8&gt;;
			dma-names	= "rx";
			interrupts-extended = &lt;&amp;plic0 40 IRQ_TYPE_LEVEL_HIGH&gt;;
			clk_parent	= &lt;0x1&gt;;
			capture_cma	= &lt;256&gt;;
			data_vol	= &lt;0xB0&gt;;
			rx_chmap	= &lt;0x76543210&gt;;
			rx_sync_en      = &lt;0x00&gt;;
			device_type = "dmic";
			status = "disabled";
		};

		dmic_codec:sound@2031050{
			#sound-dai-cells = &lt;0&gt;;
			compatible = "dmic-codec";
			reg = &lt;0x0 0x02031050 0x0 0x4&gt;;
			num-channels = &lt;8&gt;;
			status = "disabled";
		};

		sounddmic:sounddmic@2031060 {
			reg = &lt;0x0 0x02031060 0x0 0x4&gt;;
			compatible = "sunxi,simple-audio-card";
			simple-audio-card,name = "snddmic";
			simple-audio-card,capture_only;
			status = "disabled";
			/* simple-audio-card,format = "i2s"; */
			simple-audio-card,cpu {
				sound-dai = &lt;&amp;dmic&gt;;
			};
			simple-audio-card,codec {
				sound-dai = &lt;&amp;dmic_codec&gt;;
			};
		};

		/* daudio0 addr: 0x02032000, the others is invalid to avoid build warining */
		daudio0:daudio@2032000 {
			#sound-dai-cells = &lt;0&gt;;
			compatible = "allwinner,sunxi-daudio";
			reg = &lt;0x0 0x02032000 0x0 0xa0&gt;;
			clocks = &lt;&amp;ccu CLK_PLL_AUDIO0&gt;,
				 &lt;&amp;ccu CLK_I2S0&gt;,
				 &lt;&amp;ccu CLK_BUS_I2S0&gt;;
			clock-names = "pll_audio", "i2s0", "i2s0_bus";
			resets = &lt;&amp;ccu RST_BUS_I2S0&gt;;
			dmas		= &lt;&amp;dma 3&gt;, &lt;&amp;dma 3&gt;;
			dma-names	= "tx", "rx";
			interrupts-extended = &lt;&amp;plic0 42 IRQ_TYPE_LEVEL_HIGH&gt;;
			sign_extend		= &lt;0x00&gt;;
			tx_data_mode		= &lt;0x00&gt;;
			rx_data_mode		= &lt;0x00&gt;;
			msb_lsb_first		= &lt;0x00&gt;;
			pcm_lrck_period		= &lt;0x80&gt;;
			slot_width_select	= &lt;0x20&gt;;
			frametype		= &lt;0x00&gt;;
			tdm_config		= &lt;0x01&gt;;
			tdm_num			= &lt;0x00&gt;;
			mclk_div		= &lt;0x00&gt;;
			clk_parent		= &lt;0x01&gt;;
			capture_cma		= &lt;128&gt;;
			playback_cma		= &lt;128&gt;;
			tx_num			= &lt;4&gt;;
			tx_chmap1		= &lt;0x76543210&gt;;
			tx_chmap0		= &lt;0xFEDCBA98&gt;;
			rx_num			= &lt;4&gt;;
			rx_chmap3		= &lt;0x03020100&gt;;
			rx_chmap2		= &lt;0x07060504&gt;;
			rx_chmap1		= &lt;0x0B0A0908&gt;;
			rx_chmap0		= &lt;0x0F0E0D0C&gt;;
			asrc_function_en	= &lt;0x00&gt;;
			rx_sync_en              = &lt;0x00&gt;;
			device_type = "daudio0";
			status = "disabled";
		};

		sounddaudio0: sounddaudio0@20320a0 {
			reg = &lt;0x0 0x020320a0 0x0 0x4&gt;;
			compatible = "sunxi,simple-audio-card";
			simple-audio-card,name = "snddaudio0";
			simple-audio-card,format = "i2s";
			status = "disabled";
			/* simple-audio-card,frame-master = &lt;&amp;daudio0_master&gt;; */
			/* simple-audio-card,bitclock-master = &lt;&amp;daudio0_master&gt;; */
			/* simple-audio-card,bitclock-inversion; */
			/* simple-audio-card,frame-inversion; */
			simple-audio-card,cpu {
				sound-dai = &lt;&amp;daudio0&gt;;
			};
		};

		/* daudio1 addr: 0x02033000, the others is invalid to avoid build warining */
		daudio1:daudio@2033000 {
			#sound-dai-cells = &lt;0&gt;;
			compatible = "allwinner,sunxi-daudio";
			reg = &lt;0x0 0x02033000 0x0 0xa0&gt;;
			clocks = &lt;&amp;ccu CLK_PLL_AUDIO0&gt;,
				 &lt;&amp;ccu CLK_I2S1&gt;,
				 &lt;&amp;ccu CLK_BUS_I2S1&gt;;
			clock-names = "pll_audio", "i2s1", "i2s1_bus";
			resets = &lt;&amp;ccu RST_BUS_I2S1&gt;;
			dmas		= &lt;&amp;dma 4&gt;, &lt;&amp;dma 4&gt;;
			dma-names	= "tx", "rx";
			interrupts-extended = &lt;&amp;plic0 43 IRQ_TYPE_LEVEL_HIGH&gt;;
			sign_extend		= &lt;0x00&gt;;
			tx_data_mode		= &lt;0x00&gt;;
			rx_data_mode		= &lt;0x00&gt;;
			msb_lsb_first		= &lt;0x00&gt;;
			pcm_lrck_period		= &lt;0x80&gt;;
			slot_width_select	= &lt;0x20&gt;;
			frametype		= &lt;0x00&gt;;
			tdm_config		= &lt;0x01&gt;;
			tdm_num			= &lt;0x01&gt;;
			mclk_div		= &lt;0x00&gt;;
			clk_parent		= &lt;0x01&gt;;
			capture_cma		= &lt;128&gt;;
			playback_cma		= &lt;128&gt;;
			tx_num			= &lt;4&gt;;
			tx_chmap1		= &lt;0x76543210&gt;;
			tx_chmap0		= &lt;0xFEDCBA98&gt;;
			rx_num			= &lt;4&gt;;
			rx_chmap3		= &lt;0x03020100&gt;;
			rx_chmap2		= &lt;0x07060504&gt;;
			rx_chmap1		= &lt;0x0B0A0908&gt;;
			rx_chmap0		= &lt;0x0F0E0D0C&gt;;
			asrc_function_en	= &lt;0x00&gt;;
			rx_sync_en              = &lt;0x00&gt;;
			device_type = "daudio1";
			status = "disabled";
		};

		sounddaudio1: sounddaudio1@20330a0 {
			reg = &lt;0x0 0x020330a0 0x0 0x4&gt;;
			compatible = "sunxi,simple-audio-card";
			simple-audio-card,name = "snddaudio1";
			simple-audio-card,format = "i2s";
			status = "disabled";
			simple-audio-card,cpu {
				sound-dai = &lt;&amp;daudio1&gt;;
			};
		};

		/* daudio2 addr: 0x02034000, the others is invalid to avoid build warining */
		daudio2:daudio@2034000 {
			#sound-dai-cells = &lt;0&gt;;
			compatible = "allwinner,sunxi-daudio";
			reg = &lt;0x0 0x02034000 0x0 0xa0&gt;;
			clocks = &lt;&amp;ccu CLK_PLL_AUDIO0&gt;,
				 &lt;&amp;ccu CLK_I2S2&gt;,
				 &lt;&amp;ccu CLK_BUS_I2S2&gt;,
				 &lt;&amp;ccu CLK_PLL_AUDIO0_4X&gt;,
				 &lt;&amp;ccu CLK_I2S2_ASRC&gt;;
			resets = &lt;&amp;ccu RST_BUS_I2S2&gt;;
			dmas		= &lt;&amp;dma 5&gt;, &lt;&amp;dma 5&gt;;
			dma-names	= "tx", "rx";
			interrupts-extended = &lt;&amp;plic0 44 IRQ_TYPE_LEVEL_HIGH&gt;;
			sign_extend		= &lt;0x00&gt;;
			tx_data_mode		= &lt;0x00&gt;;
			rx_data_mode		= &lt;0x00&gt;;
			msb_lsb_first		= &lt;0x00&gt;;
			pcm_lrck_period		= &lt;0x80&gt;;
			slot_width_select	= &lt;0x20&gt;;
			frametype		= &lt;0x00&gt;;
			tdm_config		= &lt;0x01&gt;;
			tdm_num			= &lt;0x02&gt;;
			mclk_div		= &lt;0x01&gt;;
			clk_parent		= &lt;0x01&gt;;
			capture_cma		= &lt;128&gt;;
			playback_cma		= &lt;128&gt;;
			tx_num			= &lt;4&gt;;
			tx_chmap1		= &lt;0x76543210&gt;;
			tx_chmap0		= &lt;0xFEDCBA98&gt;;
			rx_num			= &lt;4&gt;;
			rx_chmap3		= &lt;0x03020100&gt;;
			rx_chmap2		= &lt;0x07060504&gt;;
			rx_chmap1		= &lt;0x0B0A0908&gt;;
			rx_chmap0		= &lt;0x0F0E0D0C&gt;;
			asrc_function_en	= &lt;0x00&gt;;
			rx_sync_en              = &lt;0x00&gt;;
			device_type = "daudio2";
			status = "disabled";
		};

		sounddaudio2: sounddaudio2@20340a0 {
			reg = &lt;0x0 0x020340a0 0x0 0x4&gt;;
			compatible = "sunxi,simple-audio-card";
			simple-audio-card,name = "snddaudio2";
			simple-audio-card,format = "i2s";
			status = "disabled";
			simple-audio-card,cpu {
				sound-dai = &lt;&amp;daudio2&gt;;
			};
		};

		hdmiaudio: hdmiaudio@20340a4 {
			#sound-dai-cells = &lt;0&gt;;
			reg = &lt;0x0 0x020340a4 0x0 0x4&gt;;
			compatible = "allwinner,sunxi-hdmiaudio";
			status = "disabled";
		};

		/* spdif addr: 0x02036000, the others is invalid to avoid build warining */
		spdif:spdif@2036000 {
			#sound-dai-cells = &lt;0&gt;;
			compatible = "allwinner,sunxi-spdif";
			reg = &lt;0x0 0x02036000 0x0 0x58&gt;;
			clocks = &lt;&amp;ccu CLK_PLL_AUDIO0_4X&gt;,
				 &lt;&amp;ccu CLK_SPDIF_TX&gt;,
				 &lt;&amp;ccu CLK_BUS_SPDIF&gt;,
				 &lt;&amp;ccu CLK_PLL_AUDIO1&gt;,
				 &lt;&amp;ccu CLK_PLL_AUDIO1_DIV5&gt;,
				 &lt;&amp;ccu CLK_PLL_PERIPH0&gt;,
				 &lt;&amp;ccu CLK_SPDIF_RX&gt;;
			clock-names = "pll_audio0", "spdif", "spdif_bus",
				      "pll_audio1", "pll_audio1_div5",
				      "pll_periph","spdif_rx";
			resets = &lt;&amp;ccu RST_BUS_SPDIF&gt;;
			dmas		= &lt;&amp;dma 2&gt;, &lt;&amp;dma 2&gt;;
			dma-names	= "tx", "rx";
			interrupts-extended = &lt;&amp;plic0 41 IRQ_TYPE_LEVEL_HIGH&gt;;
			clk_parent	= &lt;0x1&gt;;
			playback_cma	= &lt;128&gt;;
			capture_cma	= &lt;128&gt;;
			rx_sync_en      = &lt;0&gt;;
			device_type = "spdif";
			status = "disabled";
		};

		soundspdif:soundspdif@2036040 {
			reg = &lt;0x0 0x02036040 0x0 0x4&gt;;
			compatible = "sunxi,simple-audio-card";
			simple-audio-card,name = "sndspdif";
			status = "disabled";
			 /* simple-audio-card,format = "i2s"; */
			 simple-audio-card,cpu {
				 sound-dai = &lt;&amp;spdif&gt;;
			 };
			 simple-audio-card,codec {
				 /*snd-soc-dummy*/
			 };
		};

		g2d: g2d@5410000 {
			compatible = "allwinner,sunxi-g2d";
			reg = &lt;0x0 0x05410000 0x0 0x3ffff&gt;;
/*			interrupts = &lt;GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH&gt;;*/
			interrupts-extended = &lt;&amp;plic0 105 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_G2D&gt;, &lt;&amp;ccu CLK_G2D&gt;, &lt;&amp;ccu CLK_MBUS_G2D&gt;;
			clock-names = "bus", "g2d", "mbus_g2d";
			resets = &lt;&amp;ccu RST_BUS_G2D&gt;;
			iommus = &lt;&amp;mmu_aw 3 1&gt;;
			status = "okay";
		};

		disp: disp@5000000 {
			compatible = "allwinner,sunxi-disp";
			reg = &lt;0x0 0x05000000 0x0 0x3fffff&gt;,	/* de0 */
			      &lt;0x0 0x05460000 0x0 0xfff&gt;,	/*display_if_top*/
			      &lt;0x0 0x05461000 0x0 0xfff&gt;,	/* tcon-lcd0 */
			      &lt;0x0 0x05470000 0x0 0xfff&gt;,	/* tcon-tv */
			      &lt;0x0 0x05450000 0x0 0x1fff&gt;;	/* dsi0*/
/*			interrupts = &lt;GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH&gt;,tcon-lcd0
				     &lt;GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH&gt;,tcon-tv
				     &lt;GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH&gt;;dsi*/
			interrupts-extended = &lt;&amp;plic0 106 IRQ_TYPE_LEVEL_HIGH&gt;,
					      &lt;&amp;plic0 107 IRQ_TYPE_LEVEL_HIGH&gt;,
					      &lt;&amp;plic0 108 IRQ_TYPE_LEVEL_HIGH&gt;;

			clocks = &lt;&amp;ccu CLK_DE0&gt;,
				 &lt;&amp;ccu CLK_DE0&gt;,
				 &lt;&amp;ccu CLK_BUS_DE0&gt;,
				 &lt;&amp;ccu CLK_BUS_DE0&gt;,
				 &lt;&amp;ccu CLK_BUS_DPSS_TOP0&gt;,
				 &lt;&amp;ccu CLK_BUS_DPSS_TOP0&gt;,
				 &lt;&amp;ccu CLK_MIPI_DSI&gt;,
				 &lt;&amp;ccu CLK_BUS_MIPI_DSI&gt;,
				 &lt;&amp;ccu CLK_TCON_LCD0&gt;,
				 &lt;&amp;ccu CLK_TCON_TV&gt;,
				 &lt;&amp;ccu CLK_BUS_TCON_LCD0&gt;,
				 &lt;&amp;ccu CLK_BUS_TCON_TV&gt;,
				 &lt;&amp;ccu CLK_MIPI_DSI&gt;,
				 &lt;&amp;ccu CLK_BUS_MIPI_DSI&gt;;
			clock-names = "clk_de0",
					"clk_de1",
					"clk_bus_de0",
					"clk_bus_de1",
					"clk_bus_dpss_top0",
					"clk_bus_dpss_top1",
					"clk_mipi_dsi0",
					"clk_bus_mipi_dsi0",
					"clk_tcon0",
					"clk_tcon1",/*tcon-tv actually*/
					"clk_bus_tcon0",
					"clk_bus_tcon1",/*tcon-tv actually*/
					"clk_mipi_dsi0",
					"clk_bus_mipi_dsi0";
			resets = &lt;&amp;ccu RST_BUS_DE0&gt;,
				 &lt;&amp;ccu RST_BUS_DE0&gt;,
				 &lt;&amp;ccu RST_BUS_DPSS_TOP0&gt;,
				 &lt;&amp;ccu RST_BUS_DPSS_TOP0&gt;,
				 &lt;&amp;ccu RST_BUS_MIPI_DSI&gt;,
				 &lt;&amp;ccu RST_BUS_TCON_LCD0&gt;,
				 &lt;&amp;ccu RST_BUS_TCON_TV&gt;,
				 &lt;&amp;ccu RST_BUS_LVDS0&gt;;
			reset-names = "rst_bus_de0",
					"rst_bus_de1",
					"rst_bus_dpss_top0",
					"rst_bus_dpss_top1",
					"rst_bus_mipi_dsi0",
					"rst_bus_tcon0",
					"rst_bus_tcon1",
					"rst_bus_lvds0";

			assigned-clocks = &lt;&amp;ccu CLK_DE0&gt;,
			&lt;&amp;ccu CLK_MIPI_DSI&gt;,
			&lt;&amp;ccu CLK_TCON_LCD0&gt;,
			&lt;&amp;ccu CLK_TCON_TV&gt;;
			assigned-clock-parents = &lt;&amp;ccu CLK_PLL_PERIPH0_2X&gt;,
			&lt;&amp;ccu CLK_PLL_PERIPH0&gt;,
			&lt;&amp;ccu CLK_PLL_VIDEO0_4X&gt;,
			&lt;&amp;ccu CLK_PLL_VIDEO1_4X&gt;;
			assigned-clock-rates = &lt;300000000&gt;,
			&lt;150000000&gt;,
			&lt;0&gt;,
			&lt;0&gt;;

			boot_disp = &lt;0&gt;;
			boot_disp1 = &lt;0&gt;;
			boot_disp2 = &lt;0&gt;;
			fb_base = &lt;0&gt;;
			iommus = &lt;&amp;mmu_aw 2 0&gt;;
			status = "okay";
		};

             ve: ve@1c0e000 {
                   compatible = "allwinner,sunxi-cedar-ve";
                   reg = &lt;0x0 0x01c0e000 0x0 0x1000&gt;,
                         &lt;0x0 0x03000000 0x0 0x10&gt;,
                         &lt;0x0 0x03001000 0x0 0x1000&gt;;
                   interrupts-extended = &lt;&amp;plic0 82 IRQ_TYPE_LEVEL_HIGH&gt;;
                   clocks = &lt;&amp;ccu CLK_BUS_VE&gt;, &lt;&amp;ccu CLK_VE&gt;, &lt;&amp;ccu CLK_MBUS_VE&gt;;
                   clock-names = "bus_ve", "ve", "mbus_ve";
                   resets = &lt;&amp;ccu RST_BUS_VE&gt;;
                   iommus = &lt;&amp;mmu_aw 0 1&gt;;
                   status = "okay";
             };

		msgbox: msgbox@0601f000 {
			compatible = "sunxi,msgbox-amp";
			reg = &lt;0x0 0x03003000 0x0 0x1000&gt;,
			      &lt;0x0 0x01701000 0x0 0x1000&gt;,
			      &lt;0x0 0x0601f000 0x0 0x1000&gt;;
			interrupts-extended = &lt;&amp;plic0 144 IRQ_TYPE_LEVEL_HIGH&gt;,
					&lt;&amp;plic0 102 IRQ_TYPE_LEVEL_HIGH&gt;,
					&lt;&amp;plic0 140 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_MSGBOX2&gt;;
			rpmsg_id = "sunxi,dsp-msgbox","sunxi,dsp-power-msgbox";
			resets = &lt;&amp;ccu RST_BUS_MSGBOX2&gt;;
			reset-names = "rst";
			msgbox_amp_counts = &lt;3&gt;;
			msgbox_amp_local = &lt;2&gt;;
			rpmsg_amp_remote-0 = &lt;1&gt;;
			rpmsg_read_channel-0 = &lt;2&gt;;
			rpmsg_write_channel-0 = &lt;2&gt;;
			rpmsg_amp_remote-1 = &lt;1&gt;;
			rpmsg_read_channel-1 = &lt;0&gt;;
			rpmsg_write_channel-1 = &lt;0&gt;;
		};

		lcd0: lcd0@1c0c000 {
			compatible = "allwinner,sunxi-lcd0";
			reg = &lt;0x0 0x1c0c000 0x0 0x0&gt;;  /* Fake registers to avoid dtc compiling warnings */
			pinctrl-names = "active","sleep";
			status = "okay";
		};


		sdc2: sdmmc@4022000 {
			compatible = "allwinner,sunxi-mmc-v4p6x";
			device_type = "sdc2";
			reg = &lt;0x0 0x04022000 0x0 0x1000&gt;;
			interrupts-extended = &lt;&amp;plic0 58 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;dcxo24M&gt;,
				 &lt;&amp;ccu CLK_PLL_PERIPH0_2X&gt;,
				 &lt;&amp;ccu CLK_MMC2&gt;,
				 &lt;&amp;ccu CLK_BUS_MMC2&gt;;
			clock-names = "osc24m","pll_periph","mmc","ahb";
			resets = &lt;&amp;ccu RST_BUS_MMC2&gt;;
			reset-names = "rst";
			pinctrl-names = "default","sleep";
			pinctrl-0 = &lt;&amp;sdc2_pins_a&gt;;
			pinctrl-1 = &lt;&amp;sdc2_pins_b&gt;;
			bus-width = &lt;4&gt;;
			req-page-count = &lt;2&gt;;
			cap-mmc-highspeed;
			cap-cmd23;
			mmc-cache-ctrl;
			non-removable;
			/*max-frequency = &lt;200000000&gt;;*/
			max-frequency = &lt;50000000&gt;;
			cap-erase;
			mmc-high-capacity-erase-size;
			no-sdio;
			no-sd;
			/*-- speed mode --*/
			/*sm0: DS26_SDR12*/
			/*sm1: HSSDR52_SDR25*/
			/*sm2: HSDDR52_DDR50*/
			/*sm3: HS200_SDR104*/
			/*sm4: HS400*/
			/*-- frequency point --*/
			/*f0: CLK_400K*/
			/*f1: CLK_25M*/
			/*f2: CLK_50M*/
			/*f3: CLK_100M*/
			/*f4: CLK_150M*/
			/*f5: CLK_200M*/

			sdc_tm4_sm0_freq0 = &lt;0&gt;;
			sdc_tm4_sm0_freq1 = &lt;0&gt;;
			sdc_tm4_sm1_freq0 = &lt;0x00000000&gt;;
			sdc_tm4_sm1_freq1 = &lt;0&gt;;
			sdc_tm4_sm2_freq0 = &lt;0x00000000&gt;;
			sdc_tm4_sm2_freq1 = &lt;0&gt;;
			sdc_tm4_sm3_freq0 = &lt;0x05000000&gt;;
			sdc_tm4_sm3_freq1 = &lt;0x00000005&gt;;
			sdc_tm4_sm4_freq0 = &lt;0x00050000&gt;;
			sdc_tm4_sm4_freq1 = &lt;0x00000004&gt;;
			sdc_tm4_sm4_freq0_cmd = &lt;0&gt;;
			sdc_tm4_sm4_freq1_cmd = &lt;0&gt;;

			/*vmmc-supply = &lt;&amp;reg_3p3v&gt;;*/
			/*vqmc-supply = &lt;&amp;reg_3p3v&gt;;*/
			/*vdmc-supply = &lt;&amp;reg_3p3v&gt;;*/
			/*vmmc = "vcc-card";*/
			/*vqmc = "";*/
			/*vdmc = "";*/
			/*sunxi-power-save-mode;*/
		};

		sdc0: sdmmc@4020000 {
			compatible = "allwinner,sunxi-mmc-v5p3x";
			device_type = "sdc0";
			reg = &lt;0x0 0x04020000 0x0 0x1000&gt;;
			interrupts-extended = &lt;&amp;plic0 56 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;dcxo24M&gt;,
				 &lt;&amp;ccu CLK_PLL_PERIPH0_2X&gt;,
				 &lt;&amp;ccu CLK_MMC0&gt;,
				 &lt;&amp;ccu CLK_BUS_MMC0&gt;;
			clock-names = "osc24m","pll_periph","mmc","ahb";
			resets = &lt;&amp;ccu RST_BUS_MMC0&gt;;
			reset-names = "rst";
			pinctrl-names = "default","mmc_1v8","sleep","uart_jtag";
			pinctrl-0 = &lt;&amp;sdc0_pins_a&gt;;
			pinctrl-1 = &lt;&amp;sdc0_pins_b&gt;;
			pinctrl-2 = &lt;&amp;sdc0_pins_c&gt;;
			pinctrl-3 = &lt;&amp;sdc0_pins_d &amp;sdc0_pins_e&gt;;
			max-frequency = &lt;50000000&gt;;
			bus-width = &lt;4&gt;;
			req-page-count = &lt;2&gt;;
			/*non-removable;*/
			/*broken-cd;*/
			/*cd-inverted*/
			/*cd-gpios = &lt;&amp;pio PF 6 GPIO_ACTIVE_LOW&gt;;*/
			/* vmmc-supply = &lt;&amp;reg_3p3v&gt;;*/
			/* vqmc-supply = &lt;&amp;reg_3p3v&gt;;*/
			/* vdmc-supply = &lt;&amp;reg_3p3v&gt;;*/
			/*vmmc = "vcc-card";*/
			/*vqmc = "";*/
			/*vdmc = "";*/
			cap-sd-highspeed;
			cap-wait-while-busy;
			no-sdio;
			no-mmc;
			/*sd-uhs-sdr50;*/
			/*sd-uhs-ddr50;*/
			/*cap-sdio-irq;*/
			/*keep-power-in-suspend;*/
			/*ignore-pm-notify;*/
			/*sunxi-power-save-mode;*/
			/*sunxi-dly-400k = &lt;1 0 0 0&gt;; */
			/*sunxi-dly-26M  = &lt;1 0 0 0&gt;;*/
			/*sunxi-dly-52M  = &lt;1 0 0 0&gt;;*/
			/*sunxi-dly-52M-ddr4  = &lt;1 0 0 0&gt;;*/
			/*sunxi-dly-52M-ddr8  = &lt;1 0 0 0&gt;;*/
			/*sunxi-dly-104M  = &lt;1 0 0 0&gt;;*/
			/*sunxi-dly-208M  = &lt;1 0 0 0&gt;;*/
			/*sunxi-dly-104M-ddr  = &lt;1 0 0 0&gt;;*/
			/*sunxi-dly-208M-ddr  = &lt;1 0 0 0&gt;;*/

			status = "okay";
		};



		sdc1: sdmmc@4021000 {
			compatible = "allwinner,sunxi-mmc-v5p3x";
			device_type = "sdc1";
			reg = &lt;0x0 0x04021000 0x0 0x1000&gt;;
			interrupts-extended = &lt;&amp;plic0 57 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;dcxo24M&gt;,
				 &lt;&amp;ccu CLK_PLL_PERIPH0_2X&gt;,
				 &lt;&amp;ccu CLK_MMC1&gt;,
				 &lt;&amp;ccu CLK_BUS_MMC1&gt;;
			clock-names = "osc24m","pll_periph","mmc","ahb";
			resets = &lt;&amp;ccu RST_BUS_MMC1&gt;;
			reset-names = "rst";
			pinctrl-names = "default","sleep";
			pinctrl-0 = &lt;&amp;sdc1_pins_a&gt;;
			pinctrl-1 = &lt;&amp;sdc1_pins_b&gt;;
			max-frequency = &lt;50000000&gt;;
			bus-width = &lt;4&gt;;
			/*broken-cd;*/
			/*cd-inverted*/
			/*cd-gpios = &lt;&amp;pio PG 6 6 1 2 0&gt;;*/
			/* vmmc-supply = &lt;&amp;reg_3p3v&gt;;*/
			/* vqmc-supply = &lt;&amp;reg_3p3v&gt;;*/
			/* vdmc-supply = &lt;&amp;reg_3p3v&gt;;*/
			/*vmmc = "vcc-card";*/
			/*vqmc = "";*/
			/*vdmc = "";*/
			cap-sd-highspeed;
			no-mmc;
			/*sd-uhs-sdr50;*/
			/*sd-uhs-ddr50;*/
			/*sd-uhs-sdr104;*/
			/*cap-sdio-irq;*/
			keep-power-in-suspend;
			/*ignore-pm-notify;*/
			/*sunxi-power-save-mode;*/
			/*sunxi-dly-400k = &lt;1 0 0 0 0&gt;; */
			/*sunxi-dly-26M  = &lt;1 0 0 0 0&gt;;*/
			/*sunxi-dly-52M  = &lt;1 0 0 0 0&gt;;*/
			sunxi-dly-52M-ddr4  = &lt;1 0 0 0 2&gt;;
			/*sunxi-dly-52M-ddr8  = &lt;1 0 0 0 0&gt;;*/
			sunxi-dly-104M  = &lt;1 0 0 0 1&gt;;
			/*sunxi-dly-208M  = &lt;1 1 0 0 0&gt;;*/
			sunxi-dly-208M  = &lt;1 0 0 0 1&gt;;
			/*sunxi-dly-104M-ddr  = &lt;1 0 0 0 0&gt;;*/
			/*sunxi-dly-208M-ddr  = &lt;1 0 0 0 0&gt;;*/

			status = "disabled";
		};

		hdmi: hdmi@5500000 {
			compatible = "allwinner,sunxi-hdmi";
			reg = &lt;0x0 0x05500000 0x0 0xfffff&gt;;
			interrupts-extended = &lt;&amp;plic0 93 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_HDMI&gt;,
				&lt;&amp;ccu CLK_HDMI_24M&gt;,
				&lt;&amp;ccu CLK_HDMI_CEC&gt;,
				&lt;&amp;ccu CLK_TCON_TV&gt;;
			clock-names = "clk_bus_hdmi",
					"clk_ddc",
					"clk_cec",
					"clk_tcon_tv";
			resets = &lt;&amp;ccu RST_BUS_HDMI_SUB&gt;,
				&lt;&amp;ccu RST_BUS_HDMI_MAIN&gt;;
			reset-names = "rst_bus_sub",
				      "rst_bus_main";
			assigned-clocks = &lt;&amp;ccu CLK_HDMI_CEC&gt;;
			assigned-clock-parents = &lt;&amp;ccu CLK_HDMI_CEC_32K&gt;;
			assigned-clock-rates = &lt;0&gt;;
			status = "okay";
		};

		usbc0:usbc0@0 {
			device_type = "usbc0";
			compatible = "allwinner,sunxi-otg-manager";
			usb_port_type = &lt;2&gt;;
			usb_detect_type = &lt;1&gt;;
			usb_id_gpio;
			usb_det_vbus_gpio;
			usb_regulator_io = "nocare";
			usb_wakeup_suspend = &lt;0&gt;;
			usb_luns = &lt;3&gt;;
			usb_serial_unique = &lt;0&gt;;
			usb_serial_number = "20080411";
			rndis_wceis = &lt;1&gt;;
			status = "okay";
		};

		udc:udc-controller@0x04100000 {
			compatible = "allwinner,sunxi-udc";
			reg = &lt;0x0 0x04100000 0x0 0x1000&gt;, /*udc base*/
			      &lt;0x0 0x00000000 0x0 0x100&gt;; /*sram base*/
			interrupts-extended = &lt;&amp;plic0 45 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_OTG&gt;;
			clock-names = "bus_otg";
			resets = &lt;&amp;ccu RST_BUS_OTG&gt;, &lt;&amp;ccu RST_USB_PHY0&gt;;
			reset-names = "otg", "phy";
			status = "okay";
		};

		ehci0:ehci0-controller@0x04101000 {
			compatible = "allwinner,sunxi-ehci0";
			reg = &lt;0x0 0x04101000 0x0 0xFFF&gt;, /*hci0 base*/
			      &lt;0x0 0x00000000 0x0 0x100&gt;, /*sram base*/
			      &lt;0x0 0x04100000 0x0 0x1000&gt;; /*otg base*/
			interrupts-extended = &lt;&amp;plic0 46 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_EHCI0&gt;;
			clock-names = "bus_hci";
			resets = &lt;&amp;ccu RST_BUS_EHCI0&gt;, &lt;&amp;ccu RST_USB_PHY0&gt;;
			reset-names = "hci", "phy";
			hci_ctrl_no = &lt;0&gt;;
			status = "okay";
		};

		ohci0:ohci0-controller@0x04101400 {
			compatible = "allwinner,sunxi-ohci0";
			reg = &lt;0x0 0x04101400 0x0 0xFFF&gt;, /*hci0 base*/
			      &lt;0x0 0x00000000 0x0 0x100&gt;, /*sram base*/
			      &lt;0x0 0x04100000 0x0 0x1000&gt;; /*otg base*/
			interrupts-extended = &lt;&amp;plic0 47 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_OHCI0&gt;, &lt;&amp;ccu CLK_USB_OHCI0&gt;;
			clock-names = "bus_hci", "ohci";
			resets = &lt;&amp;ccu RST_BUS_OHCI0&gt;, &lt;&amp;ccu RST_USB_PHY0&gt;;
			reset-names = "hci", "phy";
			hci_ctrl_no = &lt;0&gt;;
			status = "okay";
		};

		usbc1:usbc1@0 {
			device_type = "usbc1";
			usb_regulator_io = "nocare";
			usb_wakeup_suspend = &lt;0&gt;;
			status = "disable";
		};

		ehci1:ehci1-controller@0x04200000 {
			compatible = "allwinner,sunxi-ehci1";
			reg = &lt;0x0 0x04200000 0x0 0xFFF&gt;, /*ehci1 base*/
			      &lt;0x0 0x00000000 0x0 0x100&gt;, /*sram base*/
			      &lt;0x0 0x04100000 0x0 0x1000&gt;; /*otg base*/
			interrupts-extended = &lt;&amp;plic0 49 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_EHCI1&gt;;
			clock-names = "bus_hci";
			resets = &lt;&amp;ccu RST_BUS_EHCI1&gt;, &lt;&amp;ccu RST_USB_PHY1&gt;;
			reset-names = "hci", "phy";
			hci_ctrl_no = &lt;1&gt;;
			status = "disable";
		};

		ohci1:ohci1-controller@0x04200400 {
			compatible = "allwinner,sunxi-ohci1";
			reg = &lt;0x0 0x04200400 0x0 0xFFF&gt;, /*ohci1 base*/
			      &lt;0x0 0x00000000 0x0 0x100&gt;, /*sram base*/
			      &lt;0x0 0x04100000 0x0 0x1000&gt;; /*otg base*/
			interrupts-extended = &lt;&amp;plic0 50 IRQ_TYPE_LEVEL_HIGH&gt;;
			clocks = &lt;&amp;ccu CLK_BUS_OHCI1&gt;, &lt;&amp;ccu CLK_USB_OHCI1&gt;;
			clock-names = "bus_hci", "ohci";
			resets = &lt;&amp;ccu RST_BUS_OHCI1&gt;, &lt;&amp;ccu RST_USB_PHY1&gt;;
			reset-names = "hci", "phy";
			hci_ctrl_no = &lt;1&gt;;
			status = "disable";
		};

		pwm0: pwm0@2000c10 {
			compatible = "allwinner,sunxi-pwm0";
			reg = &lt;0x0 0x02000c10 0x0 0x4&gt;;
			reg_base = &lt;0x02000c00&gt;;
		};

		pwm1: pwm1@2000c11 {
			compatible = "allwinner,sunxi-pwm1";
			reg = &lt;0x0 0x02000c11 0x0 0x4&gt;;
			reg_base = &lt;0x02000c00&gt;;
		};

		pwm2: pwm2@2000c12 {
			compatible = "allwinner,sunxi-pwm2";
			reg = &lt;0x0 0x02000c12 0x0 0x4&gt;;
			reg_base = &lt;0x02000c00&gt;;
		};

		pwm3: pwm3@2000c13 {
			compatible = "allwinner,sunxi-pwm3";
			reg = &lt;0x0 0x02000c13 0x0 0x4&gt;;
			reg_base = &lt;0x02000c00&gt;;
		};

		pwm4: pwm4@2000c14 {
			compatible = "allwinner,sunxi-pwm4";
			reg = &lt;0x0 0x02000c14 0x0 0x4&gt;;
			reg_base = &lt;0x02000c00&gt;;
		};

		pwm5: pwm5@2000c15 {
			compatible = "allwinner,sunxi-pwm5";
			reg = &lt;0x0 0x02000c15 0x0 0x4&gt;;
			reg_base = &lt;0x02000c00&gt;;
		};

		pwm6: pwm6@2000c16 {
			compatible = "allwinner,sunxi-pwm6";
			reg = &lt;0x0 0x02000c16 0x0 0x4&gt;;
			reg_base = &lt;0x02000c00&gt;;
		};

		pwm7: pwm7@2000c17 {
			compatible = "allwinner,sunxi-pwm7";
			reg = &lt;0x0 0x02000c17 0x0 0x4&gt;;
			reg_base = &lt;0x02000c00&gt;;
		};

		lcd_fb0: lcd_fb0@0 {
			compatible = "allwinner,sunxi-lcd_fb0";
			pinctrl-names = "active","sleep";
			status = "disabled";
		};

		vind0: vind@5800800 {
			compatible = "allwinner,sunxi-vin-media", "simple-bus";
			#address-cells = &lt;2&gt;;
			#size-cells = &lt;2&gt;;
			ranges;
			device_id = &lt;0&gt;;
			csi_top = &lt;336000000&gt;;
			csi_isp = &lt;327000000&gt;;
			reg = &lt;0x0 0x05800800 0x0 0x200&gt;,
				&lt;0x0 0x05800000 0x0 0x800&gt;;
			clocks = &lt;&amp;ccu CLK_CSI_TOP&gt;, &lt;&amp;ccu CLK_PLL_VIDEO1_2X&gt;,
				&lt;&amp;ccu CLK_CSI0_MCLK&gt;, &lt;&amp;dcxo24M&gt;, &lt;&amp;ccu CLK_PLL_VIDEO1&gt;,
				&lt;&amp;ccu CLK_BUS_CSI&gt;, &lt;&amp;ccu CLK_MBUS_CSI&gt;;
			clock-names = "csi_top", "csi_top_src",
					"csi_mclk0", "csi_mclk0_24m", "csi_mclk0_pll",
					"csi_bus", "csi_mbus";
			resets = &lt;&amp;ccu RST_BUS_CSI&gt;;
			reset-names = "csi_ret";
			pinctrl-names = "mclk0-default", "mclk0-sleep";
			pinctrl-0 = &lt;&amp;csi_mclk0_pins_a&gt;;
			pinctrl-1 = &lt;&amp;csi_mclk0_pins_b&gt;;
			status = "okay";

			csi0: csi@5801000{
				compatible = "allwinner,sunxi-csi";
				reg = &lt;0x0 0x05801000 0x0 0x1000&gt;;
				interrupts-extended = &lt;&amp;plic0 116 IRQ_TYPE_LEVEL_HIGH&gt;;
				pinctrl-names = "default","sleep";
				pinctrl-0 = &lt;&amp;csi0_pins_a&gt;;
				pinctrl-1 = &lt;&amp;csi0_pins_b&gt;;
				device_id = &lt;0&gt;;
				iommus = &lt;&amp;mmu_aw 1 1&gt;;
				status = "okay";
			};
			isp0: isp@5809410 {
				compatible = "allwinner,sunxi-isp";
				reg = &lt;0x0 0x05809410 0x0 0x10&gt;;
				device_id = &lt;0xfe&gt;;

				status = "okay";
			};
			isp1: isp@5809420 {
				compatible = "allwinner,sunxi-isp";
				reg = &lt;0x0 0x05809420 0x0 0x10&gt;;
				device_id = &lt;0xff&gt;;
				status = "okay";
			};
			scaler0: scaler@5809430 {
				compatible = "allwinner,sunxi-scaler";
				reg = &lt;0x0 0x05809430 0x0 0x10&gt;;
				device_id = &lt;0xfe&gt;;
				status = "okay";
			};
			scaler1: scaler@5809440 {
				compatible = "allwinner,sunxi-scaler";
				reg = &lt;0x0 0x05809440 0x0 0x10&gt;;
				device_id = &lt;0xff&gt;;
				status = "okay";
			};
			actuator0: actuator@5809450 {
				compatible = "allwinner,sunxi-actuator";
				device_type = "actuator0";
				reg = &lt;0x0 0x05809450 0x0 0x10&gt;;
				actuator0_name = "ad5820_act";
				actuator0_slave = &lt;0x18&gt;;
				actuator0_af_pwdn = &lt;&gt;;
				actuator0_afvdd = "afvcc-csi";
				actuator0_afvdd_vol = &lt;2800000&gt;;
				status = "disabled";
			};
			flash0: flash@5809460 {
				device_type = "flash0";
				compatible = "allwinner,sunxi-flash";
				reg = &lt;0x0 0x05809460 0x0 0x10&gt;;
				flash0_type = &lt;2&gt;;
				flash0_en = &lt;&gt;;
				flash0_mode = &lt;&gt;;
				flash0_flvdd = "";
				flash0_flvdd_vol = &lt;&gt;;
				device_id = &lt;0&gt;;
				status = "disabled";
			};
			sensor0: sensor@5809470 {
				reg = &lt;0x0 0x05809470 0x0 0x10&gt;;
				device_type = "sensor0";
				compatible = "allwinner,sunxi-sensor";
				sensor0_mname = "ov5640";
				sensor0_twi_cci_id = &lt;2&gt;;
				sensor0_twi_addr = &lt;0x78&gt;;
				sensor0_mclk_id = &lt;0&gt;;
				sensor0_pos = "rear";
				sensor0_isp_used = &lt;0&gt;;
				sensor0_fmt = &lt;0&gt;;
				sensor0_stby_mode = &lt;0&gt;;
				sensor0_vflip = &lt;0&gt;;
				sensor0_hflip = &lt;0&gt;;
				sensor0_iovdd-supply = &lt;&gt;;
				sensor0_iovdd_vol = &lt;&gt;;
				sensor0_avdd-supply = &lt;&gt;;
				sensor0_avdd_vol = &lt;&gt;;
				sensor0_dvdd-supply = &lt;&gt;;
				sensor0_dvdd_vol = &lt;&gt;;
				sensor0_power_en = &lt;&gt;;
				sensor0_reset = &lt;&amp;pio PE 9 GPIO_ACTIVE_LOW&gt;;
				sensor0_pwdn = &lt;&amp;pio PE 8 GPIO_ACTIVE_LOW&gt;;
				sensor0_sm_vs = &lt;&gt;;
				flash_handle = &lt;&amp;flash0&gt;;
				act_handle = &lt;&amp;actuator0&gt;;
				device_id = &lt;0&gt;;
				status	= "okay";
			};
			sensor1: sensor@5809480 {
				reg = &lt;0x0 0x05809480 0x0 0x10&gt;;
				device_type = "sensor1";
				compatible = "allwinner,sunxi-sensor";
				sensor1_mname = "ov5647";
				sensor1_twi_cci_id = &lt;3&gt;;
				sensor1_twi_addr = &lt;0x6c&gt;;
				sensor1_mclk_id = &lt;1&gt;;
				sensor1_pos = "front";
				sensor1_isp_used = &lt;0&gt;;
				sensor1_fmt = &lt;0&gt;;
				sensor1_stby_mode = &lt;0&gt;;
				sensor1_vflip = &lt;0&gt;;
				sensor1_hflip = &lt;0&gt;;
				sensor1_iovdd-supply = &lt;&gt;;
				sensor1_iovdd_vol = &lt;&gt;;
				sensor1_avdd-supply = &lt;&gt;;
				sensor1_avdd_vol = &lt;&gt;;
				sensor1_dvdd-supply = &lt;&gt;;
				sensor1_dvdd_vol = &lt;&gt;;
				sensor1_power_en = &lt;&gt;;
				sensor1_reset = &lt;&amp;pio PE 7 GPIO_ACTIVE_LOW&gt;;
				sensor1_pwdn = &lt;&amp;pio PE 6 GPIO_ACTIVE_LOW&gt;;
				sensor1_sm_vs = &lt;&gt;;
				flash_handle = &lt;&gt;;
				act_handle = &lt;&gt;;
				device_id = &lt;1&gt;;
				status	= "okay";
			};
			vinc0: vinc@5809000 {
				compatible = "allwinner,sunxi-vin-core";
				device_type = "vinc0";
				reg = &lt;0x0 0x05809000 0x0 0x200&gt;;
				interrupts-extended = &lt;&amp;plic0 111 IRQ_TYPE_LEVEL_HIGH&gt;;
				vinc0_csi_sel = &lt;0&gt;;
				vinc0_mipi_sel = &lt;0xff&gt;;
				vinc0_isp_sel = &lt;0&gt;;
				vinc0_tdm_rx_sel = &lt;0xff&gt;;
				vinc0_rear_sensor_sel = &lt;0&gt;;
				vinc0_front_sensor_sel = &lt;0&gt;;
				vinc0_sensor_list = &lt;0&gt;;
				device_id = &lt;0&gt;;
				iommus = &lt;&amp;mmu_aw 1 1&gt;;
				status = "okay";
			};
			vinc1: vinc@5809200 {
				device_type = "vinc1";
				compatible = "allwinner,sunxi-vin-core";
				reg = &lt;0x0 0x05809200 0x0 0x200&gt;;
				interrupts-extended = &lt;&amp;plic0 112 IRQ_TYPE_LEVEL_HIGH&gt;;
				vinc1_csi_sel = &lt;0&gt;;
				vinc1_mipi_sel = &lt;0xff&gt;;
				vinc1_isp_sel = &lt;1&gt;;
				vinc1_tdm_rx_sel = &lt;0xff&gt;;
				vinc1_rear_sensor_sel = &lt;0&gt;;
				vinc1_front_sensor_sel = &lt;0&gt;;
				vinc1_sensor_list = &lt;0&gt;;
				device_id = &lt;1&gt;;
				iommus = &lt;&amp;mmu_aw 1 1&gt;;
				status = "okay";
			};

		};
		tvd: tvd@05c00000 {
			compatible = "allwinner,sunxi-tvd";
			reg = &lt;0x0 0x05c00000 0x0 0x00010000&gt;;/*tvd_top*/
			interrupts-extended = &lt;&amp;plic0 123 IRQ_TYPE_LEVEL_HIGH&gt;;

			clocks = &lt;&amp;ccu CLK_BUS_TVD_TOP&gt;,
			&lt;&amp;ccu CLK_MBUS_TVIN&gt;;
			clock-names = "clk_bus_tvd_top",
			"clk_mbus_tvd";

			resets = &lt;&amp;ccu RST_BUS_TVD_TOP&gt;;
			reset-names = "rst_bus_tvd_top";

			tvd-number = &lt;1&gt;;
			tvds = &lt;&amp;tvd0&gt;;
			status = "okay";
		};

		tvd0: tvd0@05c01000 {
			compatible = "allwinner,sunxi-tvd0";
			reg = &lt;0x0 0x05c01000 0x0 0x00010000&gt;;
			interrupts-extended = &lt;&amp;plic0 123 IRQ_TYPE_LEVEL_HIGH&gt;;

			clocks = &lt;&amp;ccu CLK_TVD&gt;,
			&lt;&amp;ccu CLK_BUS_TVD&gt;;
			clock-names = "clk_tvd0","clk_bus_tvd0";

			resets = &lt;&amp;ccu RST_BUS_TVD&gt;;
			reset-names = "rst_bus_tvd0";

			assigned-clocks = &lt;&amp;ccu CLK_TVD&gt;;
			assigned-clock-parents = &lt;&amp;ccu CLK_PLL_VIDEO1&gt;;

			tvd_used = &lt;1&gt;;
			tvd_if = &lt;0&gt;;
			status = "okay";
		};
	};

};
</code></pre>
<p dir="auto">文件：device/config/chips/d1-h/configs/nezha/linux-5.4/board.dts</p>
<pre><code>/*
 * Allwinner Technology CO., Ltd. sun20iw1p1 fpga.
 *
 * fpga support.
 */

/dts-v1/;

/memreserve/ 0x42000000 0x100000;  /* dsp used 1MB */
#include "sun20iw1p1.dtsi"

/{
	compatible = "allwinner,d1-h", "arm,sun20iw1p1", "allwinner,sun20iw1p1";

	aliases {
		dsp0 = &amp;dsp0;
		dsp0_gpio_int= &amp;dsp0_gpio_int;
		gmac0 = &amp;gmac0;
	};

	dsp0: dsp0 {
		compatible = "allwinner,sun20iw1-dsp";
		status = "okay";
	};

	dsp0_gpio_int: dsp0_gpio_int {
		compatible = "allwinner,sun20iw1-dsp-gpio-int";
		pin-group = "PB", "PC", "PD", "PE";
		status = "disabled";
	};

	reg_vdd_cpu: vdd-cpu {
		compatible = "sunxi-pwm-regulator";
		pwms = &lt;&amp;pwm 0 5000 1&gt;;
		regulator-name = "vdd_cpu";
		regulator-min-microvolt = &lt;810000&gt;;
		regulator-max-microvolt = &lt;1160000&gt;;
		regulator-ramp-delay = &lt;25&gt;;
		regulator-always-on;
		regulator-boot-on;
		status = "okay";
	};

	reg_usb1_vbus: usb1-vbus {
		compatible = "regulator-fixed";
		regulator-name = "usb1-vbus";
		regulator-min-microvolt = &lt;5000000&gt;;
		regulator-max-microvolt = &lt;5000000&gt;;
		regulator-enable-ramp-delay = &lt;1000&gt;;
		gpio = &lt;&amp;pio PD 19 GPIO_ACTIVE_HIGH&gt;;
		enable-active-high;
	};
};

&amp;CPU0 {
	cpu-supply = &lt;&amp;reg_vdd_cpu&gt;;
};

&amp;pio {
	sdc0_pins_a: sdc0@0 {
		allwinner,pins = "PF0", "PF1", "PF2",
				 "PF3", "PF4", "PF5";
		allwinner,function = "sdc0";
		allwinner,muxsel = &lt;2&gt;;
		allwinner,drive = &lt;3&gt;;
		allwinner,pull = &lt;1&gt;;
		pins = "PF0", "PF1", "PF2",
		       "PF3", "PF4", "PF5";
		function = "sdc0";
		drive-strength = &lt;30&gt;;
		bias-pull-up;
		power-source = &lt;3300&gt;;
	};


	sdc0_pins_b: sdc0@1 {
		pins = "PF0", "PF1", "PF2",
		       "PF3", "PF4", "PF5";
		function = "sdc0";
		drive-strength = &lt;30&gt;;
		bias-pull-up;
		power-source = &lt;1800&gt;;
	};

	sdc0_pins_c: sdc0@2 {
		pins = "PF0", "PF1", "PF2",
			"PF3", "PF4", "PF5";
		function = "gpio_in";
	};

	/* TODO: add jtag pin */
	sdc0_pins_d: sdc0@3 {
		pins = "PF2", "PF4";
		function = "uart0";
		drive-strength = &lt;10&gt;;
		bias-pull-up;
	};

	sdc0_pins_e: sdc0@4 {
		pins = "PF0", "PF1", "PF3",
			"PF5";
		function = "jtag";
		drive-strength = &lt;10&gt;;
		bias-pull-up;
	};


	sdc1_pins_a: sdc1@0 {
		pins = "PG0", "PG1", "PG2",
		       "PG3", "PG4", "PG5";
		function = "sdc1";
		drive-strength = &lt;30&gt;;
		bias-pull-up;
	};

	sdc1_pins_b: sdc1@1 {
		pins = "PG0", "PG1", "PG2",
		       "PG3", "PG4", "PG5";
			function = "gpio_in";
	};

	sdc2_pins_a: sdc2@0 {
		allwinner,pins = "PC2", "PC3", "PC4",
				 "PC5", "PC6", "PC7";
		allwinner,function = "sdc2";
		allwinner,muxsel = &lt;3&gt;;
		allwinner,drive = &lt;3&gt;;
		allwinner,pull = &lt;1&gt;;
		pins = "PC2", "PC3", "PC4",
			"PC5", "PC6", "PC7";
		function = "sdc2";
		drive-strength = &lt;30&gt;;
		bias-pull-up;
	};

	sdc2_pins_b: sdc2@1 {
		pins = "PC2", "PC3", "PC4",
		       "PC5", "PC6", "PC7";
		function = "gpio_in";
	};

	wlan_pins_a:wlan@0 {
		pins = "PG11";
		function = "clk_fanout1";
	};

	uart0_pins_a: uart0_pins@0 {  /* For nezha board */
		pins = "PB8", "PB9";
		function = "uart0";
		drive-strength = &lt;10&gt;;
		bias-pull-up;
	};

	uart0_pins_b: uart0_pins@1 {  /* For nezha board */
		pins = "PB8", "PB9";
		function = "gpio_in";
	};

	uart1_pins_a: uart1_pins@0 {  /* For EVB1 board */
		pins = "PG6", "PG7", "PG8", "PG9";
		function = "uart1";
		drive-strength = &lt;10&gt;;
		bias-pull-up;
	};

	uart1_pins_b: uart1_pins {  /* For EVB1 board */
		pins = "PG6", "PG7", "PG8", "PG9";
		function = "gpio_in";
	};

	uart2_pins_a: uart2_pins@0 {  /* For EVB1 board */
		pins = "PC0", "PC1";
		function = "uart2";
		drive-strength = &lt;10&gt;;
		bias-pull-up;
	};

	uart2_pins_b: uart2_pins@1 {  /* For EVB1 board */
		pins = "PC0", "PC1";
		function = "gpio_in";
	};

	uart3_pins_a: uart3_pins@0 {  /* For EVB1 board */
		pins = "PD10", "PD11";
		function = "uart3";
		muxsel = &lt;5&gt;;
		drive-strength = &lt;10&gt;;
		bias-pull-up;
	};

	twi0_pins_a: twi0@0 {
		pins = "PB10", "PB11";	/*sck sda*/
		function = "twi0";
		drive-strength = &lt;10&gt;;
	};

	twi0_pins_b: twi0@1 {
		pins = "PB10", "PB11";
		function = "gpio_in";
	};

	twi1_pins_a: twi1@0 {
		pins = "PB4", "PB5";
		function = "twi1";
		drive-strength = &lt;10&gt;;
	};

	twi1_pins_b: twi1@1 {
		pins = "PB4", "PB5";
		function = "gpio_in";
	};

	twi2_pins_a: twi2@0 {
		pins = "PB0", "PB1";
		function = "twi2";
		drive-strength = &lt;10&gt;;
	};

	twi2_pins_b: twi2@1 {
		pins = "PB0", "PB1";
		function = "gpio_in";
	};

	twi3_pins_a: twi3@0 {
		pins = "PB6", "PB7";
		function = "twi3";
		drive-strength = &lt;10&gt;;
	};

	twi3_pins_b: twi3@1 {
		pins = "PB6", "PB7";
		function = "gpio_in";
	};

	gmac_pins_a: gmac@0 {
		pins = "PE0", "PE1", "PE2", "PE3",
		       "PE4", "PE5", "PE6", "PE7",
		       "PE8", "PE9", "PE10", "PE11",
		       "PE12", "PE13", "PE14", "PE15";
		function = "gmac0";
		muxsel = &lt;8&gt;; /* for uboot driver */
		drive-strength = &lt;10&gt;;
	};

	gmac_pins_b: gmac@1 {
		pins = "PE0", "PE1", "PE2", "PE3",
		       "PE4", "PE5", "PE6", "PE7",
		       "PE8", "PE9", "PE10", "PE11",
		       "PE12", "PE13", "PE14", "PE15";
		function = "gpio_in";
	};

	dmic_pins_a: dmic@0 {
		/* DMIC_PIN: CLK, DATA0, DATA1, DATA2 */
		pins = "PE17", "PB11", "PB10", "PE14";
		function = "dmic";
		drive-strength = &lt;20&gt;;
		bias-disable;
	};

	dmic_pins_b: dmic@1 {
		pins = "PE17", "PB11", "PB10", "PE14";
		function = "io_disabled";
		drive-strength = &lt;20&gt;;
		bias-disable;
	};

	daudio0_pins_a: daudio0@0 {
		/* MCLK, BCLK, LRCK */
		pins = "PE17", "PE16", "PE15";
		function = "i2s0";
		drive-strength = &lt;20&gt;;
		bias-disable;
	};

	daudio0_pins_b: daudio0@1 {
		/* DIN0 */
		pins = "PE14";
		function = "i2s0_din";
		drive-strength = &lt;20&gt;;
		bias-disable;
	};

	daudio0_pins_c: daudio0@2 {
		/* DOUT0 */
		pins = "PE13";
		function = "i2s0_dout";
		drive-strength = &lt;20&gt;;
		bias-disable;
	};

	daudio0_pins_d: daudio0_sleep@0 {
		pins = "PE17", "PE16", "PE15", "PE14", "PE13";
		function = "io_disabled";
		drive-strength = &lt;20&gt;;
		bias-disable;
	};

	daudio1_pins_a: daudio1@0 {
		/* MCLK, LRCK, BCLK */
		pins = "PG11", "PG12", "PG13";
		function = "i2s1";
		drive-strength = &lt;20&gt;;
		bias-disable;
	};

	daudio1_pins_b: daudio1@1 {
		/* DIN0 */
		pins = "PG14";
		function = "i2s1_din";
		drive-strength = &lt;20&gt;;
		bias-disable;
	};

	daudio1_pins_c: daudio1@2 {
		/* DOUT0 */
		pins = "PG15";
		function = "i2s1_dout";
		drive-strength = &lt;20&gt;;
		bias-disable;
	};

	daudio1_pins_d: daudio1_sleep@0 {
		pins = "PG11", "PG12", "PG13", "PG14", "PG15";
		function = "io_disabled";
		drive-strength = &lt;20&gt;;
		bias-disable;
	};

	daudio2_pins_a: daudio2@0 {
		/* I2S_PIN: MCLK, BCLK, LRCK */
		pins = "PB7", "PB5", "PB6";
		function = "i2s2";
		drive-strength = &lt;20&gt;;
		bias-disable;
	};

	daudio2_pins_b: daudio2@1 {
		/* I2S_PIN: DOUT0 */
		pins = "PB4";
		function = "i2s2_dout";
		drive-strength = &lt;20&gt;;
		bias-disable;
	};

	daudio2_pins_c: daudio2@2 {
		/* I2S_PIN: DIN0 */
		pins = "PB3";
		function = "i2s2_din";
		drive-strength = &lt;20&gt;;
		bias-disable;
	};

	daudio2_pins_d: daudio2_sleep@0 {
		pins = "PB7", "PB5", "PB6", "PB4", "PB3";
		function = "io_disabled";
		drive-strength = &lt;20&gt;;
		bias-disable;
	};

	spdif_pins_a: spdif@0 {
		/* SPDIF_PIN: SPDIF_OUT */
		pins = "PB0";
		function = "spdif";
		drive-strength = &lt;20&gt;;
		bias-disable;
	};

	spdif_pins_b: spdif_sleep@0 {
		pins = "PB0";
		function = "io_disabled";
		drive-strength = &lt;20&gt;;
		bias-disable;
	};

	spi0_pins_a: spi0@0 {
		pins = "PC2", "PC4", "PC5"; /* clk, mosi, miso */
		function = "spi0";
		muxsel = &lt;2&gt;;
		drive-strength = &lt;10&gt;;
	};

	spi0_pins_b: spi0@1 {
		pins = "PC3", "PC7", "PC6";
		function = "spi0";
		muxsel = &lt;2&gt;;
		drive-strength = &lt;10&gt;;
		bias-pull-up;   /* cs, hold, wp should be pulled up */
	};

	spi0_pins_c: spi0@2 {
		pins = "PC2", "PC3", "PC4", "PC5","PC6", "PC7";
		function = "gpio_in";
		muxsel = &lt;0&gt;;
		drive-strength = &lt;10&gt;;
	};

	spi1_pins_a: spi1@0 {
		pins = "PD11", "PD12", "PD13"; /* clk, mosi, miso */
		function = "spi1";
		drive-strength = &lt;10&gt;;
	};

	spi1_pins_b: spi1@1 {
		pins = "PD10", "PD14", "PD15";
		function = "spi1";
		drive-strength = &lt;10&gt;;
		bias-pull-up;   /* cs, hold, wp should be pulled up */
	};

	spi1_pins_c: spi1@2 {
		pins = "PD10", "PD11", "PD12", "PD13","PD14", "PD15";
		function = "gpio_in";
		drive-strength = &lt;10&gt;;
	};

	ledc_pins_a: ledc@0 {
		pins = "PC0";
		function = "ledc";
		drive-strength = &lt;10&gt;;
	};

	ledc_pins_b: ledc@1 {
		pins = "PC0";
		function = "gpio_in";
	};

	pwm0_pin_a: pwm0@0 {
		pins = "PD16";
		function = "pwm0";
		drive-strength = &lt;10&gt;;
		bias-pull-up;
	};

	pwm0_pin_b: pwm0@1 {
		pins = "PD16";
		function = "gpio_in";
		bias-disable;
	};

	pwm2_pin_a: pwm2@0 {
		pins = "PD18";
		function = "pwm2";
		drive-strength = &lt;10&gt;;
		bias-pull-up;
	};

	pwm2_pin_b: pwm2@1 {
		pins = "PD18";
		function = "gpio_out";
	};

	pwm7_pin_a: pwm7@0 {
		pins = "PD22";
		function = "pwm7";
		drive-strength = &lt;10&gt;;
		bias-pull-up;
	};

	pwm7_pin_b: pwm7@1 {
		pins = "PD22";
		function = "gpio_in";
	};


	s_cir0_pins_a: s_cir@0 {
		pins = "PB12";
		function = "ir";
		drive-strength = &lt;10&gt;;
		bias-pull-up;
	};

	s_cir0_pins_b: s_cir@1 {
		pins = "PB12";
		function = "gpio_in";
	};

	ir1_pins_a: ir1@0 {
		pins = "PB0";
		function = "ir";
		drive-strength = &lt;10&gt;;
		bias-pull-up;
	};

	ir1_pins_b: ir1@1 {
		pins = "PB0";
		function = "gpio_in";
	};
};

&amp;uart0 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = &lt;&amp;uart0_pins_a&gt;;
	pinctrl-1 = &lt;&amp;uart0_pins_b&gt;;
	status = "okay";
};

&amp;uart1 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = &lt;&amp;uart1_pins_a&gt;;
	pinctrl-1 = &lt;&amp;uart1_pins_b&gt;;
	status = "okay";
};

&amp;uart2 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = &lt;&amp;uart2_pins_a&gt;;
	pinctrl-1 = &lt;&amp;uart2_pins_b&gt;;
	status = "disabled";
};

&amp;uart3 {
	compatible = "allwinner,sun20iw1-dsp-uart";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = &lt;&amp;uart3_pins_a&gt;;
	pinctrl-1 = &lt;&amp;uart3_pins_a&gt;;
	status = "okay";
};

&amp;soc {
	card0_boot_para@2 {
		/*
		 * Avoid dtc compiling warnings.
		 * @TODO: Developer should modify this to the actual value
		 */
		reg = &lt;0x0 0x2 0x0 0x0&gt;;
		device_type = "card0_boot_para";
		card_ctrl = &lt;0x0&gt;;
		card_high_speed = &lt;0x1&gt;;
		card_line = &lt;0x4&gt;;
		pinctrl-0 = &lt;&amp;sdc0_pins_a&gt;;
	};

	card2_boot_para@3 {
		/*
		 * Avoid dtc compiling warnings.
		 * @TODO: Developer should modify this to the actual value
		 */
		reg = &lt;0x0 0x3 0x0 0x0&gt;;
		device_type = "card2_boot_para";
		card_ctrl = &lt;0x2&gt;;
		card_high_speed = &lt;0x1&gt;;
		card_line = &lt;0x4&gt;;
		pinctrl-0 = &lt;&amp;sdc2_pins_a&gt;;
		/*pinctrl-0 = &lt;&amp;sdc0_pins_a&gt;;*/
		/*sdc_ex_dly_used = &lt;0x2&gt;;*/
		sdc_io_1v8 = &lt;0x1&gt;;
		/*sdc_type = "tm4";*/
		sdc_tm4_hs200_max_freq = &lt;150&gt;;
		sdc_tm4_hs400_max_freq = &lt;100&gt;;
		sdc_ex_dly_used = &lt;2&gt;;
		/*sdc_tm4_win_th = &lt;8&gt;;*/
		/*sdc_dis_host_caps = &lt;0x180&gt;;*/
	};

	rfkill: rfkill@0 {
		compatible    = "allwinner,sunxi-rfkill";
		chip_en;
		power_en;
		pinctrl-0 = &lt;&amp;wlan_pins_a&gt;;
		pinctrl-names = "default";
		status        = "okay";

		wlan: wlan@0 {
			compatible    = "allwinner,sunxi-wlan";
			clock-names = "32k-fanout1";
			clocks = &lt;&amp;ccu CLK_FANOUT1_OUT&gt;;
			wlan_busnum    = &lt;0x1&gt;;
			wlan_regon    = &lt;&amp;pio PG 12 GPIO_ACTIVE_HIGH&gt;;
			wlan_hostwake  = &lt;&amp;pio PG 10 GPIO_ACTIVE_HIGH&gt;;
			/*wlan_power    = "VCC-3V3";*/
			/*wlan_power_vol = &lt;3300000&gt;;*/
			/*interrupt-parent = &lt;&amp;pio&gt;;
			interrupts = &lt; PG 10 IRQ_TYPE_LEVEL_HIGH&gt;;*/
			wakeup-source;

		};

		bt: bt@0 {
			compatible    = "allwinner,sunxi-bt";
			clock-names = "32k-fanout1";
			clocks = &lt;&amp;ccu CLK_FANOUT1_OUT&gt;;
			/*bt_power_num = &lt;0x01&gt;;*/
			/*bt_power      = "axp803-dldo1";*/
			/*bt_io_regulator = "axp803-dldo1";*/
			/*bt_io_vol = &lt;3300000&gt;;*/
			/*bt_power_vol = &lt;330000&gt;;*/
			bt_rst_n      = &lt;&amp;pio PG 18 GPIO_ACTIVE_LOW&gt;;
			status        = "okay";
		};
	};

	btlpm: btlpm@0 {
		compatible  = "allwinner,sunxi-btlpm";
		uart_index  = &lt;0x1&gt;;
		bt_wake     = &lt;&amp;pio PG 16 GPIO_ACTIVE_HIGH&gt;;
		bt_hostwake = &lt;&amp;pio PG 17 GPIO_ACTIVE_HIGH&gt;;
		status      = "okay";
	};

	addr_mgt: addr_mgt@0 {
		compatible     = "allwinner,sunxi-addr_mgt";
		type_addr_wifi = &lt;0x0&gt;;
		type_addr_bt   = &lt;0x0&gt;;
		type_addr_eth  = &lt;0x0&gt;;
		status         = "okay";
	};
};

&amp;sdc2 {
	non-removable;
	bus-width = &lt;4&gt;;
	mmc-ddr-1_8v;
	mmc-hs200-1_8v;
	no-sdio;
	no-sd;
	ctl-spec-caps = &lt;0x308&gt;;
	cap-mmc-highspeed;
	sunxi-power-save-mode;
	sunxi-dis-signal-vol-sw;
	mmc-bootpart-noacc;
	max-frequency = &lt;150000000&gt;;
	/*vmmc-supply = &lt;&amp;reg_dcdc1&gt;;*/
	/*emmc io vol 3.3v*/
	/*vqmmc-supply = &lt;&amp;reg_aldo1&gt;;*/
	/*emmc io vol 1.8v*/
	/*vqmmc-supply = &lt;&amp;reg_eldo1&gt;;*/
	status = "disabled";
};

&amp;sdc0 {
	bus-width = &lt;4&gt;;
	cd-gpios = &lt;&amp;pio PF 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)&gt;;
	/*non-removable;*/
	/*broken-cd;*/
	cd-inverted;
	/*data3-detect;*/
	/*card-pwr-gpios = &lt;&amp;pio PH 14 1 1 2 0xffffffff&gt;;*/
	cd-used-24M;
	cap-sd-highspeed;
	/*sd-uhs-sdr50;*/
	/*sd-uhs-ddr50;*/
	/*sd-uhs-sdr104;*/
	no-sdio;
	no-mmc;
	sunxi-power-save-mode;
	/*sunxi-dis-signal-vol-sw;*/
	max-frequency = &lt;150000000&gt;;
	ctl-spec-caps = &lt;0x8&gt;;
	/*vmmc-supply = &lt;&amp;reg_dcdc1&gt;;*/
	/*vqmmc33sw-supply = &lt;&amp;reg_dcdc1&gt;;*/
	/*vdmmc33sw-supply = &lt;&amp;reg_dcdc1&gt;;*/
	/*vqmmc18sw-supply = &lt;&amp;reg_eldo1&gt;;*/
	/*vdmmc18sw-supply = &lt;&amp;reg_eldo1&gt;;*/
	status = "okay";
};

&amp;sdc1 {
	bus-width = &lt;4&gt;;
	no-mmc;
	no-sd;
	cap-sd-highspeed;
	/*sd-uhs-sdr12*/
	/*sd-uhs-sdr25;*/
	/*sd-uhs-sdr50;*/
	/*sd-uhs-ddr50;*/
	/*sd-uhs-sdr104;*/
	/*sunxi-power-save-mode;*/
	/*sunxi-dis-signal-vol-sw;*/
	cap-sdio-irq;
	keep-power-in-suspend;
	ignore-pm-notify;
	max-frequency = &lt;150000000&gt;;
	ctl-spec-caps = &lt;0x8&gt;;
	status = "okay";
};


/*
tvd configuration
used                   (create device, 0: do not create device, 1: create device)
agc_auto_enable        (0: agc manual mode,agc_manual_value is valid; 1: agc auto mode)
agc_manual_value       (agc manual value, default value is 64)
cagc_enable            (cagc        0: disable, 1: enable)
fliter_used            (3d fliter   0: disable, 1: enable)
support two PMU power  (tvd_power0, tvd_power1)
support two GPIO power (tvd_gpio0, tvd_gpio1)
NOTICE: If tvd need pmu power or gpio power,params need be configured under [tvd]
tvd_sw                 (the switch of all tvd driver.)
tvd_interface          (0: cvbs, 1: ypbpr,)
tvd_format             (0:TVD_PL_YUV420 , 1: MB_YUV420, 2: TVD_PL_YUV422)
tvd_system             (0:ntsc, 1:pal)
tvd_row                (total row number in multi channel mode 1-2)
tvd_column             (total column number in multi channel mode 1-2)
tvd_channelx_en        (0:disable, 1~4:position in multi channel mode,In single channel
                       mode,mean enable)
tvd_row*tvd_column is the total tvd channel number to be used in multichannel mode
+--------------------+--------------------+
|                    |                    |
|                    |                    |
|         1          |         2          |
|                    |                    |
|                    |                    |
+--------------------+--------------------+
|                    |                    |
|                    |                    |
|         3          |         4          |
|                    |                    |
|                    |                    |
+--------------------+--------------------+
*/

&amp;tvd {
	tvd_sw          = &lt;1&gt;;
	tvd_interface   = &lt;0&gt;;
	tvd_format      = &lt;0&gt;;
	tvd_system      = &lt;1&gt;;
	tvd_row         = &lt;1&gt;;
	tvd_column      = &lt;1&gt;;
	tvd_channel0_en = &lt;1&gt;;
	tvd_channel1_en = &lt;0&gt;;
	tvd_channel2_en = &lt;0&gt;;
	tvd_channel3_en = &lt;0&gt;;
	/*tvd_gpio0 = &lt;&amp;pio PD 22 GPIO_ACTIVE_HIGH&gt;;*/
	/*tvd_gpio1 = &lt;&amp;pio PD 23 GPIO_ACTIVE_HIGH&gt;;*/
	/*tvd_gpio2 = &lt;&amp;pio PD 24 GPIO_ACTIVE_HIGH&gt;;*/
	/*	dc1sw-supply = &lt;&amp;reg_dc1sw&gt;;*/
	/*	eldo3-supply = &lt;&amp;reg_eldo3&gt;;*/
	/*tvd_power0      = "dc1sw"*/
	/*tvd_power1      = "eldo3"*/
};

&amp;tvd0 {
	used                    = &lt;1&gt;;
	agc_auto_enable         = &lt;1&gt;;
	agc_manual_value        = &lt;64&gt;;
	cagc_enable             = &lt;1&gt;;
	fliter_used             = &lt;1&gt;;
};

/* Audio Driver modules */
&amp;sunxi_rpaf_dsp0 {
	status = "okay";
};

/* if audiocodec is used, sdc0 and uart0 should be closed to enable PA. */
&amp;codec {
	/* MIC and headphone gain setting */
	mic1gain 	= &lt;0x13&gt;;
	mic2gain 	= &lt;0x13&gt;;
	mic3gain 	= &lt;0x13&gt;;
	/* ADC/DAC DRC/HPF func enabled */
        /* 0x1:DAP_HP_EN; 0x2:DAP_SPK_EN; 0x3:DAP_HPSPK_EN */
	adcdrc_cfg 	= &lt;0x0&gt;;
	adchpf_cfg 	= &lt;0x1&gt;;
	dacdrc_cfg 	= &lt;0x0&gt;;
	dachpf_cfg 	= &lt;0x0&gt;;
	/* Volume about */
	digital_vol 	= &lt;0x00&gt;;
	lineout_vol 	= &lt;0x1a&gt;;
	headphonegain	= &lt;0x03&gt;;
	/* Pa enabled about */
	pa_level 	= &lt;0x01&gt;;
	pa_pwr_level 	= &lt;0x01&gt;;
	pa_msleep_time 	= &lt;0x78&gt;;
	/* gpio-spk	= &lt;&amp;pio PF 2 GPIO_ACTIVE_HIGH&gt;; */
	/* gpio-spk-pwr	= &lt;&amp;pio PF 4 GPIO_ACTIVE_HIGH&gt;; */
	/* regulator about */
	/* avcc-supply	= &lt;&amp;reg_aldo1&gt;; */
	/* hpvcc-supply	= &lt;&amp;reg_eldo1&gt;; */
	status = "okay";
};

&amp;sndcodec {
	hp_detect_case	= &lt;0x01&gt;;
	jack_enable	= &lt;0x01&gt;;
	status = "okay";
};

&amp;dummy_cpudai {
	/* CMA config about */
	playback_cma	= &lt;128&gt;;
	capture_cma	= &lt;256&gt;;
	status = "okay";
};

&amp;dmic {
	pinctrl-names   = "default","sleep";
	pinctrl-0       = &lt;&amp;dmic_pins_a&gt;;
	pinctrl-1       = &lt;&amp;dmic_pins_b&gt;;
	status = "okay";
};

&amp;sounddmic {
	status = "okay";
};

&amp;dmic_codec {
	status = "okay";
};

/*-----------------------------------------------------------------------------
 * pcm_lrck_period	16/32/64/128/256
 *			(set 0x20 for HDMI audio out)
 * slot_width_select	16bits/20bits/24bits/32bits
 *			(set 0x20 for HDMI audio out)
 * frametype		0 --&gt; short frame = 1 clock width;
 *			1 --&gt; long frame = 2 clock width;
 * tdm_config		0 --&gt; pcm
 *			1 --&gt; i2s
 *			(set 0x01 for HDMI audio out)
 * mclk_div		0 --&gt; not output
 *			1/2/4/6/8/12/16/24/32/48/64/96/128/176/192
 *			(set mclk as external codec clk source, freq is pll_audio/mclk_div)
 * pinctrl_used		0 --&gt; I2S/PCM use for internal (e.g. HDMI)
 *			1 --&gt; I2S/PCM use for external audio
 * daudio_type:		0 --&gt; external audio type
 *			1 --&gt; HDMI audio type
 *---------------------------------------------------------------------------*/
&amp;daudio0 {
	mclk_div 	= &lt;0x01&gt;;
	frametype 	= &lt;0x00&gt;;
	tdm_config 	= &lt;0x01&gt;;
	sign_extend 	= &lt;0x00&gt;;
	msb_lsb_first 	= &lt;0x00&gt;;
	pcm_lrck_period = &lt;0x80&gt;;
	slot_width_select = &lt;0x20&gt;;
	pinctrl-names   = "default", "sleep";
	pinctrl-0       = &lt;&amp;daudio0_pins_a &amp;daudio0_pins_b &amp;daudio0_pins_c&gt;;
	pinctrl-1       = &lt;&amp;daudio0_pins_d&gt;;
	pinctrl_used	= &lt;0x0&gt;;
	status = "disabled";
};

/*-----------------------------------------------------------------------------
 * simple-audio-card,name	name of sound card, e.g.
 *				"snddaudio0" --&gt; use for external audio
 *				"sndhdmi" --&gt; use for HDMI audio
 * sound-dai			"snd-soc-dummy" --&gt; use for I2S
 *				"hdmiaudio" --&gt; use for HDMI audio
 *				"ac108" --&gt; use for external audio of ac108
 *---------------------------------------------------------------------------*/
&amp;sounddaudio0 {
	/* simple-audio-card,format = "i2s"; */
	/* simple-audio-card,frame-master = &lt;&amp;daudio0_master&gt;; */
	/* simple-audio-card,bitclock-master = &lt;&amp;daudio0_master&gt;; */
	/* simple-audio-card,bitclock-inversion; */
	/* simple-audio-card,frame-inversion; */
	status = "disabled";
	daudio0_master: simple-audio-card,codec {
		/* sound-dai = &lt;&amp;ac108&gt;; */
	};
};

&amp;daudio1 {
	mclk_div 	= &lt;0x01&gt;;
	frametype 	= &lt;0x00&gt;;
	tdm_config 	= &lt;0x01&gt;;
	sign_extend 	= &lt;0x00&gt;;
	msb_lsb_first 	= &lt;0x00&gt;;
	pcm_lrck_period = &lt;0x80&gt;;
	slot_width_select = &lt;0x20&gt;;
	pinctrl-names   = "default", "sleep";
	pinctrl-0       = &lt;&amp;daudio1_pins_a &amp;daudio1_pins_b &amp;daudio1_pins_c&gt;;
	pinctrl-1       = &lt;&amp;daudio1_pins_d&gt;;
	pinctrl_used	= &lt;0x0&gt;;
	status = "disabled";
};

&amp;sounddaudio1 {
	status = "disabled";
	daudio1_master: simple-audio-card,codec {
		/* sound-dai = &lt;&amp;ac108&gt;; */
	};
};

&amp;daudio2 {
	mclk_div 	= &lt;0x00&gt;;
	frametype 	= &lt;0x00&gt;;
	tdm_config 	= &lt;0x01&gt;;
	sign_extend 	= &lt;0x00&gt;;
	tx_data_mode 	= &lt;0x00&gt;;
	rx_data_mode 	= &lt;0x00&gt;;
	msb_lsb_first 	= &lt;0x00&gt;;
	pcm_lrck_period = &lt;0x20&gt;;
	slot_width_select = &lt;0x20&gt;;
	asrc_function_en  = &lt;0x00&gt;;
	pinctrl-names   = "default", "sleep";
	/*pinctrl-0       = &lt;&amp;daudio2_pins_a &amp;daudio2_pins_b &amp;daudio2_pins_c&gt;;*/
	/*pinctrl-1       = &lt;&amp;daudio2_pins_d&gt;;*/
	/* HDMI audio, no need pin */
	pinctrl-0;
	pinctrl-1;
	pinctrl_used	= &lt;0x0&gt;;
	daudio_type	= &lt;0x1&gt;;
	status = "okay";
};

/* if HDMI audio is used, daudio2 should be enable. */
&amp;hdmiaudio {
	status = "okay";
};

&amp;sounddaudio2 {
	status = "okay";
	simple-audio-card,name = "sndhdmi";
	daudio2_master: simple-audio-card,codec {
		sound-dai = &lt;&amp;hdmiaudio&gt;;
	};
};

&amp;spdif {
	pinctrl-names   = "default","sleep";
	pinctrl-0       = &lt;&amp;spdif_pins_a&gt;;
	pinctrl-1       = &lt;&amp;spdif_pins_b&gt;;
	status = "disabled";
};

&amp;soundspdif {
	status = "disabled";
};

/*
 *usb_port_type: usb mode. 0-device, 1-host, 2-otg.
 *usb_detect_type: usb hotplug detect mode. 0-none, 1-vbus/id detect, 2-id/dpdm detect.
 *usb_detect_mode: 0-thread scan, 1-id gpio interrupt.
 *usb_id_gpio: gpio for id detect.
 *usb_det_vbus_gpio: gpio for id detect. gpio or "axp_ctrl";
 *usb_wakeup_suspend：0-SUPER_STANDBY, 1-USB_STANDBY.
 */
&amp;usbc0 {
	device_type = "usbc0";
	usb_port_type = &lt;0x2&gt;;
	usb_detect_type = &lt;0x1&gt;;
	usb_detect_mode = &lt;0&gt;;
	usb_id_gpio = &lt;&amp;pio PD 21 GPIO_ACTIVE_HIGH&gt;;
	enable-active-high;
	usb_det_vbus_gpio = &lt;&amp;pio PD 20 GPIO_ACTIVE_HIGH&gt;;
	usb_wakeup_suspend = &lt;0&gt;;
	usb_serial_unique = &lt;0&gt;;
	usb_serial_number = "20080411";
	rndis_wceis = &lt;1&gt;;
	status = "okay";
};

&amp;ehci0 {
	drvvbus-supply = &lt;&amp;reg_usb1_vbus&gt;;
};

&amp;ohci0 {
	drvvbus-supply = &lt;&amp;reg_usb1_vbus&gt;;
};

&amp;usbc1 {
	device_type = "usbc1";
	usb_regulator_io = "nocare";
	usb_wakeup_suspend = &lt;0&gt;;
	status = "okay";
};

&amp;ehci1 {
	status = "okay";
};

&amp;ohci1 {
	status = "okay";
};

&amp;twi0 {
	clock-frequency = &lt;400000&gt;;
	pinctrl-0 = &lt;&amp;twi0_pins_a&gt;;
	pinctrl-1 = &lt;&amp;twi0_pins_b&gt;;
	pinctrl-names = "default", "sleep";
	status = "disabled";

	eeprom@50 {
		compatible = "atmel,24c16";
		reg = &lt;0x50&gt;;
		status = "disabled";
	};
};

&amp;twi1 {
	clock-frequency = &lt;400000&gt;;
	pinctrl-0 = &lt;&amp;twi1_pins_a&gt;;
	pinctrl-1 = &lt;&amp;twi1_pins_b&gt;;
	pinctrl-names = "default", "sleep";
	status = "disabled";
};

&amp;twi2 {
	clock-frequency = &lt;400000&gt;;
	pinctrl-0 = &lt;&amp;twi2_pins_a&gt;;
	pinctrl-1 = &lt;&amp;twi2_pins_b&gt;;
	pinctrl-names = "default", "sleep";
	dmas = &lt;&amp;dma 45&gt;, &lt;&amp;dma 45&gt;;
	dma-names = "tx", "rx";
	status = "okay";

	/* pcf8574-usage:
	 * only use gpio0~7, 0 means PP0.
	 * pin set:
	 * gpios = &lt;&amp;pcf8574 0 GPIO_ACTIVE_LOW&gt;;
	 * interrupt set:
	 * interrupt-parent = &lt;&amp;pcf8574&gt;;
	 * interrupts = &lt;0 IRQ_TYPE_EDGE_FALLING&gt;;
	 */
	pcf8574: gpio@38 {
		compatible = "nxp,pcf8574";
		reg = &lt;0x38&gt;;
		gpio_base = &lt;2020&gt;;
		gpio-controller;
		#gpio-cells = &lt;2&gt;;
		interrupt-controller;
		#interrupt-cells = &lt;2&gt;;
		interrupt-parent = &lt;&amp;pio&gt;;
		interrupts = &lt;PB 2 IRQ_TYPE_EDGE_FALLING&gt;;
		status = "okay";
	};

	ctp@14 {
		compatible = "allwinner,goodix";
		device_type = "ctp";
		reg = &lt;0x14&gt;;
		status = "disabled";
		ctp_name = "gt9xxnew_ts";
		ctp_twi_id = &lt;0x2&gt;;
		ctp_twi_addr = &lt;0x14&gt;;
		ctp_screen_max_x = &lt;0x320&gt;;
		ctp_screen_max_y = &lt;0x500&gt;;
		ctp_revert_x_flag = &lt;0x0&gt;;
		ctp_revert_y_flag = &lt;0x1&gt;;
		ctp_exchange_x_y_flag = &lt;0x0&gt;;
		ctp_int_port = &lt;&amp;pio PG 14 GPIO_ACTIVE_HIGH&gt;;
		ctp_wakeup = &lt;&amp;pio PG 15 GPIO_ACTIVE_HIGH&gt;;
	};
};

&amp;twi3 {
	clock-frequency = &lt;400000&gt;;
	pinctrl-0 = &lt;&amp;twi3_pins_a&gt;;
	pinctrl-1 = &lt;&amp;twi3_pins_b&gt;;
	pinctrl-names = "default", "sleep";
	status = "disabled";
};

&amp;gmac0 {
	phy-mode = "rgmii";
	use_ephy25m = &lt;1&gt;;
	pinctrl-0 = &lt;&amp;gmac_pins_a&gt;;
	pinctrl-1 = &lt;&amp;gmac_pins_b&gt;;
	pinctrl-names = "default", "sleep";
	phy-rst = &lt;&amp;pio PE 16 GPIO_ACTIVE_HIGH&gt;;
	tx-delay = &lt;3&gt;; /*2~4*/
	rx-delay = &lt;0&gt;;
	status = "disable";
};

&amp;spi0 {
	clock-frequency = &lt;100000000&gt;;
	pinctrl-0 = &lt;&amp;spi0_pins_a &amp;spi0_pins_b&gt;;
	pinctrl-1 = &lt;&amp;spi0_pins_c&gt;;
	pinctrl-names = "default", "sleep";
	/*spi-supply = &lt;&amp;reg_dcdc1&gt;;*/
	spi_slave_mode = &lt;0&gt;;
	spi0_cs_number = &lt;1&gt;;
        spi0_cs_bitmap = &lt;1&gt;;
	status = "disabled";

	spi-nand@0 {
		compatible = "spi-nand";
		spi-max-frequency=&lt;0x5F5E100&gt;;
		reg = &lt;0x0&gt;;
		spi-rx-bus-width=&lt;0x04&gt;;
		spi-tx-bus-width=&lt;0x04&gt;;
		status="disabled";
	};
};

&amp;spi1 {
	clock-frequency = &lt;100000000&gt;;
	pinctrl-0 = &lt;&amp;spi1_pins_a &amp;spi1_pins_b&gt;;
	pinctrl-1 = &lt;&amp;spi1_pins_c&gt;;
	pinctrl-names = "default", "sleep";
	spi_slave_mode = &lt;0&gt;;
	spi1_cs_number = &lt;1&gt;;
	spi1_cs_bitmap = &lt;1&gt;;
	spi_dbi_enable = &lt;1&gt;;
	status = "disabled";

	spi_board1@0 {
		device_type = "spi-dbi";
		compatible = "sunxi,spidbi";
		spi-max-frequency = &lt;0x5f5e100&gt;;
		reg = &lt;0x0&gt;;
		spi-rx-bus-width = &lt;0x4&gt;;
		spi-tx-bus-width = &lt;0x4&gt;;
		status = "okay";
	};
	/* spi_board1@0 {
		device_type = "spi_board1";
		compatible = "rohm,dh2228fv";
		spi-max-frequency = &lt;0x5f5e100&gt;;
		reg = &lt;0x0&gt;;
		spi-rx-bus-width = &lt;0x4&gt;;
		spi-tx-bus-width = &lt;0x4&gt;;
		status = "disabled";
	}; */
};

&amp;ledc {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = &lt;&amp;ledc_pins_a&gt;;
	pinctrl-1 = &lt;&amp;ledc_pins_b&gt;;
	led_count = &lt;12&gt;;
	output_mode = "GRB";
	reset_ns = &lt;84&gt;;
	t1h_ns = &lt;800&gt;;
	t1l_ns = &lt;320&gt;;
	t0h_ns = &lt;300&gt;;
	t0l_ns = &lt;800&gt;;
	wait_time0_ns = &lt;84&gt;;
	wait_time1_ns = &lt;84&gt;;
	wait_data_time_ns = &lt;600000&gt;;
	status	= "okay";
};

&amp;keyboard0 {
	key0 = &lt;210 0x160&gt;;
	wakeup-source;
	status = "okay";
};

/*----------------------------------------------------------------------------------
disp init configuration

disp_mode             (0:screen0&lt;screen0,fb0&gt;)
screenx_output_type   (0:none; 1:lcd; 2:tv; 3:hdmi;5:vdpo)
screenx_output_mode   (used for hdmi output, 0:480i 1:576i 2:480p 3:576p 4:720p50)
                      (5:720p60 6:1080i50 7:1080i60 8:1080p24 9:1080p50 10:1080p60)
screenx_output_format (for hdmi, 0:RGB 1:yuv444 2:yuv422 3:yuv420)
screenx_output_bits   (for hdmi, 0:8bit 1:10bit 2:12bit 2:16bit)
screenx_output_eotf   (for hdmi, 0:reserve 4:SDR 16:HDR10 18:HLG)
screenx_output_cs     (for hdmi, 0:undefined  257:BT709 260:BT601  263:BT2020)
screenx_output_dvi_hdmi (for hdmi, 0:undefined 1:dvi mode 2:hdmi mode)
screen0_output_range   (for hdmi, 0:default 1:full 2:limited)
screen0_output_scan    (for hdmi, 0:no data 1:overscan 2:underscan)
screen0_output_aspect_ratio  (for hdmi, 8-same as original picture 9-4:3 10-16:9 11-14:9)
fbx format            (4:RGB655 5:RGB565 6:RGB556 7:ARGB1555 8:RGBA5551 9:RGB888 10:ARGB8888 12:ARGB4444)
fbx pixel sequence    (0:ARGB 1:BGRA 2:ABGR 3:RGBA)
fb0_scaler_mode_enable(scaler mode enable, used FE)
fbx_width,fbx_height  (framebuffer horizontal/vertical pixels, fix to output resolution while equal 0)
lcdx_backlight        (lcd init backlight,the range:[0,256],default:197
lcdx_yy               (lcd init screen bright/contrast/saturation/hue, value:0~100, default:50/50/57/50)
lcd0_contrast         (LCD contrast, 0~100)
lcd0_saturation       (LCD saturation, 0~100)
lcd0_hue              (LCD hue, 0~100)
framebuffer software rotation setting:
disp_rotation_used:   (0:disable; 1:enable,you must set fbX_width to lcd_y,
set fbX_height to lcd_x)
degreeX:              (X:screen index; 0:0 degree; 1:90 degree; 3:270 degree)
degreeX_Y:            (X:screen index; Y:layer index 0~15; 0:0 degree; 1:90 degree; 3:270 degree)
devX_output_type : config output type in bootGUI framework in UBOOT-2018.
				   (0:none; 1:lcd; 2:tv; 4:hdmi;)
devX_output_mode : config output resolution(see include/video/sunxi_display2.h) of bootGUI framework in UBOOT-2018
devX_screen_id   : config display index of bootGUI framework in UBOOT-2018
devX_do_hpd      : whether do hpd detectation or not in UBOOT-2018
chn_cfg_mode     : Hardware DE channel allocation config. 0:single display with 6
				   channel, 1:dual display with 4 channel in main display and 2 channel in second
                   display, 2:dual display with 3 channel in main display and 3 channel in second
                   in display.
----------------------------------------------------------------------------------*/
&amp;disp {
	disp_init_enable         = &lt;1&gt;;
	disp_mode                = &lt;0&gt;;

	screen0_output_type      = &lt;1&gt;;
	screen0_output_mode      = &lt;4&gt;;

	screen1_output_type      = &lt;3&gt;;
	screen1_output_mode      = &lt;10&gt;;

	screen1_output_format    = &lt;0&gt;;
	screen1_output_bits      = &lt;0&gt;;
	screen1_output_eotf      = &lt;4&gt;;
	screen1_output_cs        = &lt;257&gt;;
	screen1_output_dvi_hdmi  = &lt;2&gt;;
	screen1_output_range     = &lt;2&gt;;
	screen1_output_scan      = &lt;0&gt;;
	screen1_output_aspect_ratio = &lt;8&gt;;

	dev0_output_type         = &lt;1&gt;;
	dev0_output_mode         = &lt;4&gt;;
	dev0_screen_id           = &lt;0&gt;;
	dev0_do_hpd              = &lt;0&gt;;

	dev1_output_type         = &lt;4&gt;;
	dev1_output_mode         = &lt;10&gt;;
	dev1_screen_id           = &lt;1&gt;;
	dev1_do_hpd              = &lt;1&gt;;

	def_output_dev           = &lt;0&gt;;
	hdmi_mode_check          = &lt;1&gt;;

	fb0_format               = &lt;0&gt;;
	fb0_width                = &lt;0&gt;;
	fb0_height               = &lt;0&gt;;

	fb1_format               = &lt;0&gt;;
	fb1_width                = &lt;0&gt;;
	fb1_height               = &lt;0&gt;;
	chn_cfg_mode             = &lt;1&gt;;

	disp_para_zone           = &lt;1&gt;;
	/*VCC-LCD*/
/*	dc1sw-supply = &lt;&amp;reg_dc1sw&gt;;*/
	/*VCC-DSI*/
/*	eldo3-supply = &lt;&amp;reg_eldo3&gt;;*/
	/*VCC-PD*/
/*	dcdc1-supply = &lt;&amp;reg_dcdc1&gt;;*/
};

/*----------------------------------------------------------------------------------
;lcd0 configuration

;lcd_if:               0:hv(sync+de); 1:8080; 2:ttl; 3:lvds; 4:dsi; 5:edp; 6:extend dsi
;lcd_hv_if             0:Parallel RGB; 8:Serial RGB; 10:Dummy RGB; 11: RGB Dummy;12:CCIR656
;lcd_hv_clk_phase      0:0 degree;1:90 degree;2:180 degree;3:270 degree
;lcd_hv_sync_polarity  0:vs low,hs low; 1:vs high,hslow; 2:vs low,hs high; 3:vs high,hs high
;lcd_hv_syuv_seq       0:YUYV; 1:YVYU; 2:UYVY; 3:VYUY
;lcd_cpu_if            0:18bit/1 cycle parallel(RGB666); 4:16bit/1cycle parallel (RGB565)
;                      6:18bit/3 cycle parallel(RGB666); 7:16bit/2cycle parallel (RGB565)
;lcd_cpu_te            0:frame auto trigger; 1:frame triggered by te rising edge; 2:frame triggered by te falling edge;
;lcd_dsi_if            0:video mode; 1: Command mode; 2:video burst mode
;lcd_dsi_te            0:frame auto trigger; 1:frame triggered by te rising edge; 2:frame triggered by te falling edge;
;lcd_x:                lcd horizontal resolution
;lcd_y:                lcd vertical resolution
;lcd_width:            width of lcd in mm
;lcd_height:           height of lcd in mm
;lcd_dclk_freq:        in MHZ unit
;lcd_pwm_freq:         in HZ unit
;lcd_pwm_pol:          lcd backlight PWM polarity
;lcd_pwm_max_limit     lcd backlight PWM max limit(&lt;=255)
;lcd_hbp:              hsync back porch(pixel) + hsync plus width(pixel);
;lcd_ht:               hsync total cycle(pixel)
;lcd_vbp:              vsync back porch(line) + vysnc plus width(line)
;lcd_vt:               vysnc total cycle(line)
;lcd_hspw:             hsync plus width(pixel)
;lcd_vspw:             vysnc plus width(pixel)
;lcd_lvds_if:          0:single link;  1:dual link
;lcd_lvds_colordepth:  0:8bit; 1:6bit
;lcd_lvds_mode:        0:NS mode; 1:JEIDA mode
;lcd_frm:              0:disable; 1:enable rgb666 dither; 2:enable rgb656 dither
;lcd_io_phase:         0:noraml; 1:intert phase(0~3bit: vsync phase; 4~7bit:hsync phase;
;                      8~11bit:dclk phase; 12~15bit:de phase)
;lcd_gamma_en          lcd gamma correction enable
;lcd_bright_curve_en   lcd bright curve correction enable
;lcd_cmap_en           lcd color map function enable
;deu_mode              0:smoll lcd screen; 1:large lcd screen(larger than 10inch)
;lcdgamma4iep:         Smart Backlight parameter, lcd gamma vale * 10;
;                      decrease it while lcd is not bright enough; increase while lcd is too bright
;smart_color           90:normal lcd screen 65:retina lcd screen(9.7inch)
;Pin setting for special function ie.LVDS, RGB data or vsync
;   name(donot care) = port:PD12&lt;pin function&gt;&lt;pull up or pull down&gt;&lt;drive ability&gt;&lt;output level&gt;
;Pin setting for gpio:
;   lcd_gpio_X     = port:PD12&lt;pin function&gt;&lt;pull up or pull down&gt;&lt;drive ability&gt;&lt;output level&gt;
;Pin setting for backlight enable pin
;   lcd_bl_en     = port:PD12&lt;pin function&gt;&lt;pull up or pull down&gt;&lt;drive ability&gt;&lt;output level&gt;
;fsync setting, pulse to csi
;lcd_fsync_en          (0:disable fsync,1:enable)
;lcd_fsync_act_time    (active time of fsync, unit:pixel)
;lcd_fsync_dis_time    (disactive time of fsync, unit:pixel)
;lcd_fsync_pol         (0:positive;1:negative)
;gpio config: &lt;&amp;pio for cpu or &amp;r_pio for cpus, port, port num, pio function,
pull up or pull down(default 0), driver level(default 1), data&gt;
;For dual link lvds: use lvds2link_pins_a  and lvds2link_pins_b instead
;For rgb24: use rgb24_pins_a  and rgb24_pins_b instead
;For lvds1: use lvds1_pins_a  and lvds1_pins_b instead
;For lvds0: use lvds0_pins_a  and lvds0_pins_b instead
;----------------------------------------------------------------------------------*/
&amp;lcd0 {
	lcd_used        = &lt;1&gt;;
	lcd_driver_name = "st7701s_rgb";

	lcd_if          = &lt;0&gt;;
	lcd_hv_if       = &lt;0&gt;;

	lcd_width       = &lt;53&gt;;
	lcd_height      = &lt;53&gt;;
	lcd_x           = &lt;480&gt;;
	lcd_y           = &lt;480&gt;;
	lcd_dclk_freq   = &lt;19&gt;;
	lcd_hbp         = &lt;60&gt;;
	lcd_ht          = &lt;612&gt;;
	lcd_hspw        = &lt;12&gt;;
	lcd_vbp         = &lt;18&gt;;
	lcd_vt          = &lt;520&gt;;
	lcd_vspw        = &lt;4&gt;;

	lcd_backlight   = &lt;100&gt;;
	lcd_pwm_used    = &lt;1&gt;;
	lcd_pwm_ch      = &lt;7&gt;;
	lcd_pwm_freq    = &lt;1000&gt;;
	lcd_pwm_pol     = &lt;1&gt;;
	lcd_bright_curve_en = &lt;0&gt;;

	lcd_frm         = &lt;1&gt;;
	lcd_io_phase    = &lt;0x0000&gt;;
	lcd_gamma_en    = &lt;0&gt;;
	lcd_cmap_en     = &lt;0&gt;;
	lcd_hv_clk_phase= &lt;0&gt;;
	lcd_hv_sync_polarity= &lt;0&gt;;
	lcd_rb_swap          = &lt;0&gt;;

	lcd_power       = "vcc-lcd";
	lcd_pin_power   = "vcc-pd";
	lcd_gpio_0      = &lt;&amp;pio PG 13 GPIO_ACTIVE_HIGH&gt;;
	lcd_gpio_1      = &lt;&amp;pio PE 15 GPIO_ACTIVE_HIGH&gt;;
	lcd_gpio_2      = &lt;&amp;pio PE 12 GPIO_ACTIVE_HIGH&gt;;
	lcd_gpio_3      = &lt;&amp;pio PE 16 GPIO_ACTIVE_HIGH&gt;;
	pinctrl-0       = &lt;&amp;rgb18_pins_a&gt;;
	pinctrl-1       = &lt;&amp;rgb18_pins_b&gt;;
};

&amp;hdmi {
	hdmi_used = &lt;1&gt;;
	hdmi_power_cnt = &lt;0&gt;;
	hdmi_cts_compatibility = &lt;1&gt;;
	hdmi_hdcp_enable = &lt;1&gt;;
	hdmi_hdcp22_enable = &lt;0&gt;;
	hdmi_cec_support = &lt;1&gt;;
	hdmi_cec_super_standby = &lt;0&gt;;

	ddc_en_io_ctrl = &lt;0&gt;;
	power_io_ctrl = &lt;0&gt;;
};

&amp;pwm0 {
	pinctrl-names = "active", "sleep";
	pinctrl-0 = &lt;&amp;pwm0_pin_a&gt;;
	pinctrl-1 = &lt;&amp;pwm0_pin_b&gt;;
	status = "okay";
};

&amp;pwm2 {
	pinctrl-names = "active", "sleep";
	pinctrl-0 = &lt;&amp;pwm2_pin_a&gt;;
	pinctrl-1 = &lt;&amp;pwm2_pin_b&gt;;
	status = "okay";
};

&amp;pwm7 {
	pinctrl-names = "active", "sleep";
	pinctrl-0 = &lt;&amp;pwm7_pin_a&gt;;
	pinctrl-1 = &lt;&amp;pwm7_pin_b&gt;;
	status = "okay";
};

&amp;rtp {
	allwinner,tp-sensitive-adjust = &lt;0xf&gt;;
	allwinner,filter-type = &lt;0x1&gt;;
	allwinner,ts-attached;
	status = "disabled";
};

&amp;gpadc {
	channel_num = &lt;2&gt;;
	channel_select = &lt;3&gt;;
	channel_data_select = &lt;3&gt;;
	channel_compare_select = &lt;3&gt;;
	channel_cld_select = &lt;3&gt;;
	channel_chd_select = &lt;3&gt;;
	channel0_compare_lowdata = &lt;1700000&gt;;
	channel0_compare_higdata = &lt;1200000&gt;;
	channel1_compare_lowdata = &lt;460000&gt;;
	channel1_compare_higdata = &lt;1200000&gt;;
	status = "disabled";
};

&amp;s_cir0 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = &lt;&amp;s_cir0_pins_a&gt;;
	pinctrl-1 = &lt;&amp;s_cir0_pins_b&gt;;
	status = "disabled";
};

&amp;ir1 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = &lt;&amp;ir1_pins_a&gt;;
	pinctrl-1 = &lt;&amp;ir1_pins_b&gt;;
	status = "disabled";
};

/* &amp;lcd_fb0 {
	lcd_used = &lt;1&gt;;
	lcd_driver_name = "kld35512";
	lcd_if = &lt;1&gt;;
	lcd_dbi_if = &lt;4&gt;;
	lcd_data_speed = &lt;60&gt;;
	lcd_spi_bus_num = &lt;1&gt;;
	lcd_x = &lt;320&gt;;
	lcd_y = &lt;480&gt;;
	lcd_pixel_fmt = &lt;10&gt;;
	lcd_dbi_fmt = &lt;2&gt;;
	lcd_rgb_order = &lt;0&gt;;
	lcd_width = &lt;60&gt;;
	lcd_height = &lt;95&gt;;
	lcd_pwm_used = &lt;1&gt;;
	lcd_pwm_ch = &lt;7&gt;;
	lcd_pwm_freq = &lt;5000&gt;;
	lcd_pwm_pol = &lt;1&gt;;
	lcd_frm = &lt;1&gt;;
	lcd_gamma_en = &lt;1&gt;;
	fb_buffer_num = &lt;2&gt;;
	lcd_backlight = &lt;100&gt;;
	lcd_fps = &lt;40&gt;;
	lcd_dbi_te = &lt;1&gt;;
	lcd_dbi_clk_mode = &lt;1&gt;;
	lcd_gpio_0 = &lt;&amp;pio PC 0 GPIO_ACTIVE_HIGH&gt;;
	status = "okay";
}; */

/* &amp;lcd_fb0 {
	lcd_used = &lt;1&gt;;
	lcd_driver_name = "kld2844b";
	lcd_if = &lt;1&gt;;
	lcd_dbi_if = &lt;4&gt;;
	lcd_data_speed = &lt;60&gt;;
	lcd_spi_bus_num = &lt;1&gt;;
	lcd_x = &lt;240&gt;;
	lcd_y = &lt;320&gt;;
	lcd_width = &lt;60&gt;;
	lcd_height = &lt;95&gt;;
	lcd_pwm_used = &lt;1&gt;;
	lcd_pwm_ch = &lt;7&gt;;
	lcd_pwm_freq = &lt;5000&gt;;
	lcd_pwm_pol = &lt;0&gt;;
	lcd_pixel_fmt = &lt;0&gt;;
	lcd_dbi_fmt = &lt;3&gt;;
	lcd_rgb_order = &lt;0&gt;;
	lcd_frm = &lt;1&gt;;
	lcd_gamma_en = &lt;1&gt;;
	fb_buffer_num = &lt;2&gt;;
	lcd_backlight = &lt;100&gt;;
	lcd_dbi_te = &lt;1&gt;;
	lcd_fps = &lt;60&gt;;
	lcd_gpio_0 = &lt;&amp;pio PC 0 GPIO_ACTIVE_HIGH&gt;;
	status = "okay";
}; */
</code></pre>
<p dir="auto">求大佬指点这个可能是被哪个设备占用了，或者有什么方法能找到被占用的地方<img src="https://bbs.aw-ol.com/plugins/nodebb-plugin-emoji/emoji/android/1f64f.png?v=9vrjmbh7mr2" class="not-responsive emoji emoji-android emoji--pray" title=":pray:" alt="🙏" /></p>
]]></description><link>https://bbs.aw-ol.com/topic/1950/求助-lcd-rgb18-部分引脚被占用应该如何释放</link><generator>RSS for Node</generator><lastBuildDate>Tue, 19 May 2026 19:50:49 GMT</lastBuildDate><atom:link href="https://bbs.aw-ol.com/topic/1950.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 21 Aug 2022 02:52:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 【求助】LCD RGB18 部分引脚被占用应该如何释放 on Sun, 21 Aug 2022 10:09:23 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://bbs.aw-ol.com/uid/317">@yuzukitsuru</a> 非常感谢，没仔细看，按 PD19 搜了没搜到，没想到是分开写的<img src="https://bbs.aw-ol.com/plugins/nodebb-plugin-emoji/emoji/android/1f602.png?v=9vrjmbh7mr2" class="not-responsive emoji emoji-android emoji--joy" title=":joy:" alt="😂" /></p>
]]></description><link>https://bbs.aw-ol.com/post/9660</link><guid isPermaLink="true">https://bbs.aw-ol.com/post/9660</guid><dc:creator><![CDATA[dyd2022]]></dc:creator><pubDate>Sun, 21 Aug 2022 10:09:23 GMT</pubDate></item><item><title><![CDATA[Reply to 【求助】LCD RGB18 部分引脚被占用应该如何释放 on Sun, 21 Aug 2022 03:01:04 GMT]]></title><description><![CDATA[<p dir="auto">你要不要再找找？我帮你找到了一个</p>
<p dir="auto"><img src="/assets/uploads/files/1661050850911-e42e2671-31f5-4e9a-af51-8dddfd67e665-image.png" alt="e42e2671-31f5-4e9a-af51-8dddfd67e665-image.png" class=" img-responsive img-markdown" width="1310" height="609" /></p>
]]></description><link>https://bbs.aw-ol.com/post/9654</link><guid isPermaLink="true">https://bbs.aw-ol.com/post/9654</guid><dc:creator><![CDATA[YuzukiTsuru]]></dc:creator><pubDate>Sun, 21 Aug 2022 03:01:04 GMT</pubDate></item></channel></rss>