您尚未登录。

楼主 # 2024-03-09 22:59:49

Goku
会员
注册时间: 2022-05-31
已发帖子: 6
积分: 16

H616 orangepi zero 2w touch_driver 移植过程设备树设置问题请教

生成orangepi zero 2w 移植 touch_driver 移植过程问题:主要是对全志设备树的修改不熟悉

    求指导全志的h616移植驱动设备树设置
[*]linux 6.1内核版本链接[/*]
https://github.com/orangepi-xunlong/linux-orangepi/tree/orange-pi-6.1-sun50iw9

  • 硬件引脚选取

    根据原理图选择引脚
    SDA : PI8 
    SCL : PI7
    INT : PI13
    RST : TX5 -> B15->PH2

    %E5%BC%95%E8%84%9A%E5%9B%BE.jpeg

  • 设备树修改点:sun50i-h616.dtsi

    pio: pinctrl@300b000 {
    			compatible = "allwinner,sun50i-h616-pinctrl";
    			reg = <0x0300b000 0x400>;
    			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
    				     <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
    				     <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
    				     <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
    				     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
    				     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
    				     <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
    				     <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_APB1>, <&osc24M>, <&rtc CLK_OSC32K>;
    			clock-names = "apb", "hosc", "losc";
    			gpio-controller;
    			#gpio-cells = <3>;
    			interrupt-controller;
    			#interrupt-cells = <3>;
    
    			/omit-if-no-ref/
    			i2c1_pi_pins: i2c1-pi-pins {
    				pins = "PI7", "PI8";
    				function = "i2c1";
    			};
    			
    			ts_int_active: ts_int-active {
    				pins = "PI13";
    				function = "gpio-in";
    			};
    
    			ts_int_suspend: ts_int-suspend {
    				pins = "PI13";
    				function = "gpio-out";
    			};
    
    			ts_reset_active: ts_reset-active {
    				pins = "PH2";
    				function = "0";
    			};
    
    			ts_reset_suspend: ts_reset-suspend {
    				pins = "PH2";
    				function = "0";
    			};
    			
    			ts_release: ts_release-pin {
    				pins = "PH2";
    				function = "gpio-out";
    			};
    		};
  • 设备树完整代码:sun50i-h616.dtsi

    // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
    // Copyright (C) 2020 Arm Ltd.
    // based on the H6 dtsi, which is:
    //   Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io>
    
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/sun50i-h616-ccu.h>
    #include <dt-bindings/clock/sun50i-h6-r-ccu.h>
    #include <dt-bindings/clock/sun6i-rtc.h>
    #include <dt-bindings/clock/sun8i-de2.h>
    #include <dt-bindings/clock/sun8i-tcon-top.h>
    #include <dt-bindings/reset/sun50i-h616-ccu.h>
    #include <dt-bindings/reset/sun50i-h6-r-ccu.h>
    #include <dt-bindings/reset/sun8i-de2.h>
    #include <dt-bindings/thermal/thermal.h>
    
    / {
    	interrupt-parent = <&gic>;
    	#address-cells = <2>;
    	#size-cells = <2>;
    
    	cpus {
    		#address-cells = <1>;
    		#size-cells = <0>;
    
    		cpu0: cpu@0 {
    			compatible = "arm,cortex-a53";
    			device_type = "cpu";
    			reg = <0>;
    			enable-method = "psci";
    			clocks = <&ccu CLK_CPUX>;
    			clock-latency-ns = <244144>; /* 8 32k periods */
    			#cooling-cells = <2>;
    			operating-points-v2 = <&cpu_opp_table>;
    		};
    
    		cpu1: cpu@1 {
    			compatible = "arm,cortex-a53";
    			device_type = "cpu";
    			reg = <1>;
    			enable-method = "psci";
    			clocks = <&ccu CLK_CPUX>;
    			clock-latency-ns = <244144>; /* 8 32k periods */
    			#cooling-cells = <2>;
    			operating-points-v2 = <&cpu_opp_table>;
    		};
    
    		cpu2: cpu@2 {
    			compatible = "arm,cortex-a53";
    			device_type = "cpu";
    			reg = <2>;
    			enable-method = "psci";
    			clocks = <&ccu CLK_CPUX>;
    			clock-latency-ns = <244144>; /* 8 32k periods */
    			#cooling-cells = <2>;
    			operating-points-v2 = <&cpu_opp_table>;
    		};
    
    		cpu3: cpu@3 {
    			compatible = "arm,cortex-a53";
    			device_type = "cpu";
    			reg = <3>;
    			enable-method = "psci";
    			clocks = <&ccu CLK_CPUX>;
    			clock-latency-ns = <244144>; /* 8 32k periods */
    			#cooling-cells = <2>;
    			operating-points-v2 = <&cpu_opp_table>;
    		};
    	};
    
    	de: display-engine {
    		compatible = "allwinner,sun50i-h6-display-engine";
    		allwinner,pipelines = <&mixer0>;
    		status = "disabled";
    	};
    
    	reserved-memory {
    		#address-cells = <2>;
    		#size-cells = <2>;
    		ranges;
    
    		/*
    		 * 512 KiB reserved for Trusted Firmware-A (BL31).
    		 * This is added by BL31 itself, but some bootloaders fail
    		 * to propagate this into the DTB handed to kernels.
    		 */
    		secmon@40000000 {
    			reg = <0x0 0x40000000 0x0 0x80000>;
    			no-map;
    		};
    	};
    
    	osc24M: osc24M-clk {
    		#clock-cells = <0>;
    		compatible = "fixed-clock";
    		clock-frequency = <24000000>;
    		clock-output-names = "osc24M";
    	};
    
    	pmu {
    		compatible = "arm,cortex-a53-pmu";
    		interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
    			     <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
    			     <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
    			     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
    		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
    	};
    
    	psci {
    		compatible = "arm,psci-0.2";
    		method = "smc";
    	};
    
    	timer {
    		compatible = "arm,armv8-timer";
    		arm,no-tick-in-suspend;
    		interrupts = <GIC_PPI 13
    			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
    			     <GIC_PPI 14
    			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
    			     <GIC_PPI 11
    			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
    			     <GIC_PPI 10
    			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
    	};
    
    	soc {
    		compatible = "simple-bus";
    		#address-cells = <1>;
    		#size-cells = <1>;
    		ranges = <0x0 0x0 0x0 0x40000000>;
    
    		bus@1000000 {
    			compatible = "allwinner,sun50i-h616-de33",
    				     "allwinner,sun50i-a64-de2";
    			reg = <0x1000000 0x400000>;
    			allwinner,sram = <&de3_sram 1>;
    			#address-cells = <1>;
    			#size-cells = <1>;
    			ranges = <0 0x1000000 0x400000>;
    
    			display_clocks: clock@8000 {
    				compatible = "allwinner,sun50i-h616-de33-clk";
    				reg = <0x8000 0x100>;
    				clocks = <&ccu CLK_DE>, <&ccu CLK_BUS_DE>;
    				clock-names = "mod", "bus";
    				resets = <&ccu RST_BUS_DE>;
    				#clock-cells = <1>;
    				#reset-cells = <1>;
    			};
    
    			mixer0: mixer@100000 {
    				compatible = "allwinner,sun50i-h616-de33-mixer-0";
    				reg = <0x100000 0x100000>,
    				      <0x8100 0x40>,
    				      <0x280000 0x20000>;
    				clocks = <&display_clocks CLK_BUS_MIXER0>,
    					 <&display_clocks CLK_MIXER0>;
    				clock-names = "bus", "mod";
    				resets = <&display_clocks RST_MIXER0>;
    
    				ports {
    					#address-cells = <1>;
    					#size-cells = <0>;
    
    					mixer0_out: port@1 {
    						reg = <1>;
    
    						mixer0_out_tcon_top_mixer0: endpoint {
    							remote-endpoint = <&tcon_top_mixer0_in_mixer0>;
    						};
    					};
    				};
    			};
    		};
    
    		gpu: gpu@1800000 {
    			compatible = "allwinner,sun50i-h616-mali",
    			             "arm,mali-bifrost";
    			reg = <0x1800000 0x40000>;
    			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
    			             <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
    			             <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
    			interrupt-names = "job", "mmu", "gpu";
    			clocks = <&ccu CLK_GPU0>, <&ccu CLK_BUS_GPU>;
    			clock-names = "core", "bus";
    			resets = <&ccu RST_BUS_GPU>;
    			//operating-points-v2 = <&gpu_opp_table>;
    			//#cooling-cells = <2>;
    			status = "disabled";
    		};
    
    		video-codec@1c0e000 {
    			compatible = "allwinner,sun50i-h616-video-engine";
    			reg = <0x01c0e000 0x2000>;
    			clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
    				 <&ccu CLK_MBUS_VE>;
    			clock-names = "ahb", "mod", "ram";
    			resets = <&ccu RST_BUS_VE>;
    			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
    			allwinner,sram = <&ve_sram 1>;
    		};
    
    		syscon: syscon@3000000 {
    			compatible = "allwinner,sun50i-h616-system-control";
    			reg = <0x03000000 0x30>,<0x03000038 0x0fc8>;
    			#address-cells = <1>;
    			#size-cells = <1>;
    			ranges;
    
    			sram_a2: sram@100000 {
    				compatible = "mmio-sram";
    				reg = <0x00100000 0x18000>;
    				#address-cells = <1>;
    				#size-cells = <1>;
    				ranges = <0 0x00100000 0x18000>;
    
    				scpi_sram: scpi-sram@17c00 {
    					compatible = "arm,scp-shmem";
    					reg = <0x17c00 0x200>;
    				};
    			};
    
    			sram_c: sram@28000 {
    				compatible = "mmio-sram";
    				reg = <0x00028000 0x30000>;
    				#address-cells = <1>;
    				#size-cells = <1>;
    				ranges = <0 0x00028000 0x30000>;
    
    				de3_sram: sram-section@0 {
    					compatible = "allwinner,sun50i-h616-sram-c",
    						     "allwinner,sun50i-a64-sram-c";
    					reg = <0x0000 0x1e000>;
    				};
    			};
    
    			sram_c1: sram@1a00000 {
    				compatible = "mmio-sram";
    				reg = <0x01a00000 0x200000>;
    				#address-cells = <1>;
    				#size-cells = <1>;
    				ranges = <0 0x01a00000 0x200000>;
    
    				ve_sram: sram-section@0 {
    					compatible = "allwinner,sun50i-h616-sram-c1";
    					reg = <0x000000 0x200000>;
    				};
    			};
    		};
    
    		ccu: clock@3001000 {
    			compatible = "allwinner,sun50i-h616-ccu";
    			reg = <0x03001000 0x1000>;
    			clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>;
    			clock-names = "hosc", "losc", "iosc";
    			#clock-cells = <1>;
    			#reset-cells = <1>;
    		};
    
    		sid: efuse@3006000 {
    			compatible = "allwinner,sun50i-h616-sid";
    			reg = <0x03006000 0x1000>;
    			#address-cells = <1>;
    			#size-cells = <1>;
    
    			cpu_speed_grade: cpu-speed-grade@00 {
    				reg = <0x00 0x02>;
    			};
    
    			ths_calibration: thermal-sensor-calibration@14 {
    				reg = <0x14 0x8>;
    			};
    
    			ephy_calibration: ephy-calibration@2c {
    				reg = <0x2c 0x2>;
    			};
    		};
    
    		watchdog: watchdog@30090a0 {
    			compatible = "allwinner,sun50i-h616-wdt",
    				     "allwinner,sun6i-a31-wdt";
    			reg = <0x030090a0 0x20>;
    			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&osc24M>;
    			status = "okay";
    		};
    
    		pwm: pwm@300a000 {
    			compatible = "allwinner,sun50i-h616-pwm";
    			reg = <0x0300a000 0x400>;
    			clocks = <&osc24M>, <&ccu CLK_BUS_PWM>;
    			clock-names = "mod", "bus";
    			resets = <&ccu RST_BUS_PWM>;
    			pwm-number = <6>;
    			pwm-base = <0x0>;
    			sunxi-pwms = <&pwm0>, <&pwm1>, <&pwm2>, <&pwm3>, <&pwm4>, <&pwm5>;
    			#pwm-cells = <3>;
    			status = "okay";
    		};
    
    		pwm0: pwm0@0300a000 {
    			compatible = "allwinner,sunxi-pwm0";
    		};
    
    		pwm1: pwm1@0300a000 {
    			compatible = "allwinner,sunxi-pwm1";
    			pinctrl-names = "default";
    			pinctrl-0 = <&pwm1_ph_pin>;
    		};
    
    		pwm2: pwm2@0300a000 {
    			compatible = "allwinner,sunxi-pwm2";
    			pinctrl-names = "default";
    			pinctrl-0 = <&pwm2_ph_pin>;
    		};
    
    		pwm3: pwm3@0300a000 {
    			compatible = "allwinner,sunxi-pwm3";
    			pinctrl-names = "default";
    			pinctrl-0 = <&pwm3_ph_pin>;
    		};
    
    		pwm4: pwm4@0300a000 {
    			compatible = "allwinner,sunxi-pwm4";
    			pinctrl-names = "default";
    			pinctrl-0 = <&pwm4_ph_pin>;
    		};
    
    		pwm5: pwm5@0300a000 {
    			compatible = "allwinner,sunxi-pwm5";
    			pinctrl-names = "default";
    			pinctrl-0 = <&pwm5_pin>;
    		};
    
    		pio: pinctrl@300b000 {
    			compatible = "allwinner,sun50i-h616-pinctrl";
    			reg = <0x0300b000 0x400>;
    			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
    				     <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
    				     <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
    				     <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
    				     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
    				     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
    				     <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
    				     <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_APB1>, <&osc24M>, <&rtc CLK_OSC32K>;
    			clock-names = "apb", "hosc", "losc";
    			gpio-controller;
    			#gpio-cells = <3>;
    			interrupt-controller;
    			#interrupt-cells = <3>;
    
    			ext_rgmii_pins: rgmii-pins {
    				pins = "PI0", "PI1", "PI2", "PI3", "PI4",
    				       "PI5", "PI7", "PI8", "PI9", "PI10",
    				       "PI11", "PI12", "PI13", "PI14", "PI15",
    				       "PI16";
    				function = "emac0";
    				drive-strength = <40>;
    			};
    
    			/omit-if-no-ref/
    			i2c0_pi_pins: i2c0-pi-pins {
    				pins = "PI5", "PI6";
    				function = "i2c0";
    			};
    
    			/omit-if-no-ref/
    			i2c1_ph_pins: i2c1-ph-pins {
    				pins = "PH0", "PH1";
    				function = "i2c1";
    			};
    
    			/omit-if-no-ref/
    			i2c1_pi_pins: i2c1-pi-pins {
    				pins = "PI7", "PI8";
    				function = "i2c1";
    			};
    
    			/omit-if-no-ref/
    			i2c2_ph_pins: i2c2-ph-pins {
    				pins = "PH2", "PH3";
    				function = "i2c2";
    			};
    
    			/omit-if-no-ref/
    			i2c2_pi_pins: i2c2-pi-pins {
    				pins = "PI9", "PI10";
    				function = "i2c2";
    			};
    
    			/omit-if-no-ref/
    			i2c3_ph_pins: i2c3-ph-pins {
    				pins = "PH4", "PH5";
    				function = "i2c3";
    			};
    
    			i2c3_pa_pins: i2c3-pa-pins {
    				pins = "PA10", "PA11";
    				function = "i2c3";
    				bias-pull-up;
    			};
    
    			/omit-if-no-ref/
    			i2c4_ph_pins: i2c4-ph-pins {
    				pins = "PH6", "PH7";
    				function = "i2c4";
    			};
    			
    			ts_int_active: ts_int-active {
    				pins = "PI13";
    				function = "gpio-in";
    			};
    
    			ts_int_suspend: ts_int-suspend {
    				pins = "PI13";
    				function = "gpio-out";
    			};
    
    			ts_reset_active: ts_reset-active {
    				pins = "PH2";
    				function = "0";
    			};
    
    			ts_reset_suspend: ts_reset-suspend {
    				pins = "PH2";
    				function = "0";
    			};
    			
    			ts_release: ts_release-pin {
    				pins = "PH2";
    				function = "gpio-out";
    			};
    			
    
    			/omit-if-no-ref/
    			i2s3_pins: i2s3-pins {
    				pins = "PH5", "PH6", "PH7", "PH8", "PH9";
    				function = "i2s3";
    			};
    
    			ir_rx_pin: ir-rx-pin {
    				pins = "PH10";
    				function = "ir_rx";
    			};
    
    			/omit-if-no-ref/
    			pwm1_ph_pin: pwm1-ph-pin {
    				pins = "PH3";
    				function = "pwm1";
    			};
    
    			/omit-if-no-ref/
    			pwm2_ph_pin: pwm2-ph-pin {
    				pins = "PH2";
    				function = "pwm2";
    			};
    
    			/omit-if-no-ref/
    			pwm3_ph_pin: pwm3-ph-pin {
    				pins = "PH0";
    				function = "pwm3";
    			};
    
    			/omit-if-no-ref/
    			pwm4_ph_pin: pwm4-ph-pin {
    				pins = "PH1";
    				function = "pwm4";
    			};
    
    			/omit-if-no-ref/
    			pwm5_pin: pwm5-pin {
    				pins = "PA12";
    				function = "pwm5";
    			};
    
    			/omit-if-no-ref/
    			pwm1_pi_pin: pwm1-pi-pin {
    				pins = "PI11";
    				function = "pwm1";
    			};
    
    			/omit-if-no-ref/
    			pwm2_pi_pin: pwm2-pi-pin {
    				pins = "PI12";
    				function = "pwm2";
    			};
    
    			/omit-if-no-ref/
    			pwm3_pi_pin: pwm3-pi-pin {
    				pins = "PI13";
    				function = "pwm3";
    			};
    
    			/omit-if-no-ref/
    			pwm4_pi_pin: pwm4-pi-pin {
    				pins = "PI14";
    				function = "pwm4";
    			};
    
    			mmc0_pins: mmc0-pins {
    				pins = "PF0", "PF1", "PF2", "PF3",
    				       "PF4", "PF5";
    				function = "mmc0";
    				drive-strength = <30>;
    				bias-pull-up;
    			};
    
    			/omit-if-no-ref/
    			mmc1_pins: mmc1-pins {
    				pins = "PG0", "PG1", "PG2", "PG3",
    				       "PG4", "PG5";
    				function = "mmc1";
    				drive-strength = <30>;
    				bias-pull-up;
    			};
    
    			mmc2_pins: mmc2-pins {
    				pins = "PC0", "PC1", "PC5", "PC6",
    				       "PC8", "PC9", "PC10", "PC11",
    				       "PC13", "PC14", "PC15", "PC16";
    				function = "mmc2";
    				drive-strength = <30>;
    				bias-pull-up;
    			};
    
    			rmii_pins: rmii-pins {
    				pins = "PA0", "PA1", "PA2", "PA3", "PA4",
    				       "PA5", "PA6", "PA7", "PA8", "PA9";
    				function = "emac1";
    				drive-strength = <40>;
    			};
    
    			/omit-if-no-ref/
    			spi0_pins: spi0-pins {
    				pins = "PC0", "PC2", "PC4";
    				function = "spi0";
    			};
    
    			/omit-if-no-ref/
    			spi0_cs0_pin: spi0-cs0-pin {
    				pins = "PC3";
    				function = "spi0";
    			};
    
    			/omit-if-no-ref/
    			spi1_pins: spi1-pins {
    				pins = "PH6", "PH7", "PH8";
    				function = "spi1";
    			};
    
    			/omit-if-no-ref/
    			spi1_cs0_pin: spi1-cs0-pin {
    				pins = "PH5";
    				function = "spi1";
    			};
    
    			/omit-if-no-ref/
    			spi1_cs1_pin: spi1-cs1-pin {
    				pins = "PH9";
    				function = "spi1";
    			};
    
    			uart0_ph_pins: uart0-ph-pins {
    				pins = "PH0", "PH1";
    				function = "uart0";
    			};
    
    			/omit-if-no-ref/
    			uart1_ph_pins: uart1-ph-pins {
    				pins = "PG6", "PG7";
    				function = "uart1";
    			};
    
    			/omit-if-no-ref/
    			uart1_ph_rts_cts_pins: uart1-ph-rts-cts-pins {
    				pins = "PG8", "PG9";
    				function = "uart1";
    			};
    
    			/omit-if-no-ref/
    			uart2_ph_pins: uart2-ph-pins {
    				pins = "PH5", "PH6";
    				function = "uart2";
    			};
    
    			/omit-if-no-ref/
    			uart2_ph_rts_cts_pins: uart2-ph-rts-cts-pins {
    				pins = "PH7", "PH8";
    				function = "uart2";
    			};
    
    			/omit-if-no-ref/
    			uart2_pi_pins: uart2-pi-pins {
    				pins = "PI5", "PI6";
    				function = "uart2";
    			};
    
    			/omit-if-no-ref/
    			uart3_pi_pins: uart3-pi-pins {
    				pins = "PI9", "PI10";
    				function = "uart3";
    			};
    
    			/omit-if-no-ref/
    			uart4_pi_pins: uart4-pi-pins {
    				pins = "PI13", "PI14";
    				function = "uart4";
    			};
    
    			/omit-if-no-ref/
    			uart5_ph_pins: uart5-ph-pins {
    				pins = "PH2", "PH3";
    				function = "uart5";
    			};
    		};
    
    		gic: interrupt-controller@3021000 {
    			compatible = "arm,gic-400";
    			reg = <0x03021000 0x1000>,
    			      <0x03022000 0x2000>,
    			      <0x03024000 0x2000>,
    			      <0x03026000 0x2000>;
    			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
    			interrupt-controller;
    			#interrupt-cells = <3>;
    		};
    
    		mmc0: mmc@4020000 {
    			compatible = "allwinner,sun50i-h616-mmc",
    				     "allwinner,sun50i-a100-mmc";
    			reg = <0x04020000 0x1000>;
    			clocks = <&ccu CLK_BUS_MMC0>, <&ccu CLK_MMC0>;
    			clock-names = "ahb", "mmc";
    			resets = <&ccu RST_BUS_MMC0>;
    			reset-names = "ahb";
    			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
    			pinctrl-names = "default";
    			pinctrl-0 = <&mmc0_pins>;
    			status = "disabled";
    			max-frequency = <150000000>;
    			cap-sd-highspeed;
    			cap-mmc-highspeed;
    			mmc-ddr-3_3v;
    			cap-sdio-irq;
    			#address-cells = <1>;
    			#size-cells = <0>;
    		};
    
    		mmc1: mmc@4021000 {
    			compatible = "allwinner,sun50i-h616-mmc",
    				     "allwinner,sun50i-a100-mmc";
    			reg = <0x04021000 0x1000>;
    			clocks = <&ccu CLK_BUS_MMC1>, <&ccu CLK_MMC1>;
    			clock-names = "ahb", "mmc";
    			resets = <&ccu RST_BUS_MMC1>;
    			reset-names = "ahb";
    			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
    			pinctrl-names = "default";
    			pinctrl-0 = <&mmc1_pins>;
    			status = "disabled";
    			max-frequency = <150000000>;
    			cap-sd-highspeed;
    			cap-mmc-highspeed;
    			mmc-ddr-3_3v;
    			cap-sdio-irq;
    			#address-cells = <1>;
    			#size-cells = <0>;
    		};
    
    		mmc2: mmc@4022000 {
    			compatible = "allwinner,sun50i-h616-emmc",
    				     "allwinner,sun50i-a100-emmc";
    			reg = <0x04022000 0x1000>;
    			clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
    			clock-names = "ahb", "mmc";
    			resets = <&ccu RST_BUS_MMC2>;
    			reset-names = "ahb";
    			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
    			pinctrl-names = "default";
    			pinctrl-0 = <&mmc2_pins>;
    			status = "disabled";
    			max-frequency = <150000000>;
    			cap-sd-highspeed;
    			cap-mmc-highspeed;
    			mmc-ddr-3_3v;
    			cap-sdio-irq;
    			#address-cells = <1>;
    			#size-cells = <0>;
    		};
    
    		dma: dma-controller@3002000 {
    			compatible = "allwinner,sun50i-h616-dma";
    			reg = <0x03002000 0x1000>;
    			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_DMA>, <&ccu CLK_MBUS_DMA>;
    			clock-names = "bus", "mbus";
    			dma-channels = <16>;
    			dma-requests = <49>;
    			resets = <&ccu RST_BUS_DMA>;
    			#dma-cells = <1>;
    		};
    
    		codec: codec@05096000 {
    			#sound-dai-cells = <0>;
    			compatible = "allwinner,sun50i-h616-codec";
    			reg = <0x05096000 0x31c>;
    			interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_AUDIO_CODEC>,
    				 <&ccu CLK_AUDIO_CODEC_1X>,
    				 <&ccu CLK_AUDIO_CODEC_4X>;
    			clock-names = "apb", "audio-codec-1x", "audio-codec-4x";
    			resets = <&ccu RST_BUS_AUDIO_CODEC>;
    			dmas = <&dma 6>;
    			dma-names = "tx";
    			status = "disabled";
    		};
    
    		ahub_dam_plat:ahub_dam_plat@5097000 {
    			#sound-dai-cells = <0>;
    			/* sound card without pcm for hardware mix setting */
    			compatible	= "allwinner,sunxi-snd-plat-ahub_dam";
    			reg		= <0x05097000 0x1000>;
    			resets		= <&ccu RST_BUS_AUDIO_HUB>;
    			clocks          = <&ccu CLK_AUDIO_CODEC_1X>,
    			                  <&ccu CLK_AUDIO_CODEC_4X>,
    			                  <&ccu CLK_AUDIO_HUB>,
    			                  <&ccu CLK_BUS_AUDIO_HUB>;
    			clock-names     = "clk_pll_audio",
    			                  "clk_pll_audio_4x",
    			                  "clk_audio_hub",
    			                  "clk_bus_audio_hub";
    			status		= "disabled";
    		};
    
    		ahub_dam_mach:ahub_dam_mach {
    			compatible = "allwinner,sunxi-snd-mach";
    			soundcard-mach,name = "ahubdam";
    			status		= "disabled";
    			soundcard-mach,cpu {
    				sound-dai = <&ahub_dam_plat>;
    			};
    			soundcard-mach,codec {
    			};
    		};
    
    		ahub1_plat:ahub1_plat {
    			#sound-dai-cells = <0>;
    			compatible	= "allwinner,sunxi-snd-plat-ahub";
    			apb_num		= <1>;	/* for dma port 4 */
    			dmas		= <&dma 4>, <&dma 4>;
    			dma-names	= "tx", "rx";
    			playback_cma	= <128>;
    			capture_cma	= <128>;
    			tx_fifo_size	= <128>;
    			rx_fifo_size	= <128>;
    
    			tdm_num		= <1>;
    			tx_pin		= <0>;
    			rx_pin		= <0>;
    			status		= "disabled";
    		};
    
    		ahub1_mach:ahub1_mach {
    			compatible = "allwinner,sunxi-snd-mach";
    			soundcard-mach,name = "ahubhdmi";
    
    			soundcard-mach,format		= "i2s";
    			soundcard-mach,frame-master	= <&ahub1_cpu>;
    			soundcard-mach,bitclock-master	= <&ahub1_cpu>;
    			/* soundcard-mach,frame-inversion; */
    			/* soundcard-mach,bitclock-inversion; */
    			soundcard-mach,slot-num		= <2>;
    			soundcard-mach,slot-width	= <32>;
    			status		= "disabled";
    			ahub1_cpu: soundcard-mach,cpu {
    				sound-dai = <&ahub1_plat>;
    				soundcard-mach,pll-fs	= <4>;
    				soundcard-mach,mclk-fs	= <0>;
    			};
    
    			ahub1_codec: soundcard-mach,codec {
    				sound-dai = <&hdmi>;
    			};
    		};
    
    		uart0: serial@5000000 {
    			compatible = "snps,dw-apb-uart";
    			reg = <0x05000000 0x400>;
    			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
    			reg-shift = <2>;
    			reg-io-width = <4>;
    			clocks = <&ccu CLK_BUS_UART0>;
    			resets = <&ccu RST_BUS_UART0>;
    			status = "disabled";
    		};
    
    		uart1: serial@5000400 {
    			compatible = "snps,dw-apb-uart";
    			reg = <0x05000400 0x400>;
    			interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
    			reg-shift = <2>;
    			reg-io-width = <4>;
    			clocks = <&ccu CLK_BUS_UART1>;
    			resets = <&ccu RST_BUS_UART1>;
    			status = "disabled";
    		};
    
    		uart2: serial@5000800 {
    			compatible = "snps,dw-apb-uart";
    			reg = <0x05000800 0x400>;
    			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
    			reg-shift = <2>;
    			reg-io-width = <4>;
    			clocks = <&ccu CLK_BUS_UART2>;
    			resets = <&ccu RST_BUS_UART2>;
    			status = "disabled";
    		};
    
    		uart3: serial@5000c00 {
    			compatible = "snps,dw-apb-uart";
    			reg = <0x05000c00 0x400>;
    			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
    			reg-shift = <2>;
    			reg-io-width = <4>;
    			clocks = <&ccu CLK_BUS_UART3>;
    			resets = <&ccu RST_BUS_UART3>;
    			status = "disabled";
    		};
    
    		uart4: serial@5001000 {
    			compatible = "snps,dw-apb-uart";
    			reg = <0x05001000 0x400>;
    			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
    			reg-shift = <2>;
    			reg-io-width = <4>;
    			clocks = <&ccu CLK_BUS_UART4>;
    			resets = <&ccu RST_BUS_UART4>;
    			status = "disabled";
    		};
    
    		uart5: serial@5001400 {
    			compatible = "snps,dw-apb-uart";
    			reg = <0x05001400 0x400>;
    			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
    			reg-shift = <2>;
    			reg-io-width = <4>;
    			clocks = <&ccu CLK_BUS_UART5>;
    			resets = <&ccu RST_BUS_UART5>;
    			status = "disabled";
    		};
    
    		i2c0: i2c@5002000 {
    			compatible = "allwinner,sun50i-h616-i2c",
    				     "allwinner,sun8i-v536-i2c",
    				     "allwinner,sun6i-a31-i2c";
    			reg = <0x05002000 0x400>;
    			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_I2C0>;
    			resets = <&ccu RST_BUS_I2C0>;
    			pinctrl-names = "default";
    			pinctrl-0 = <&i2c0_pi_pins>;
    			status = "disabled";
    			#address-cells = <1>;
    			#size-cells = <0>;
    		};
    
    		i2c1: i2c@5002400 {
    			compatible = "allwinner,sun50i-h616-i2c",
    				     "allwinner,sun8i-v536-i2c",
    				     "allwinner,sun6i-a31-i2c";
    			reg = <0x05002400 0x400>;
    			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_I2C1>;
    			resets = <&ccu RST_BUS_I2C1>;
    			pinctrl-names = "default";
    			pinctrl-0 = <&i2c1_ph_pins>;
    			status = "disabled";
    			#address-cells = <1>;
    			#size-cells = <0>;
    		};
    
    		i2c2: i2c@5002800 {
    			compatible = "allwinner,sun50i-h616-i2c",
    				     "allwinner,sun8i-v536-i2c",
    				     "allwinner,sun6i-a31-i2c";
    			reg = <0x05002800 0x400>;
    			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_I2C2>;
    			resets = <&ccu RST_BUS_I2C2>;
    			pinctrl-names = "default";
    			pinctrl-0 = <&i2c2_ph_pins>;
    			status = "disabled";
    			#address-cells = <1>;
    			#size-cells = <0>;
    		};
    
    		i2c3: i2c@5002c00 {
    			compatible = "allwinner,sun50i-h616-i2c",
    				     "allwinner,sun8i-v536-i2c",
    				     "allwinner,sun6i-a31-i2c";
    			reg = <0x05002c00 0x400>;
    			interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_I2C3>;
    			resets = <&ccu RST_BUS_I2C3>;
    			pinctrl-names = "default";
    			pinctrl-0 = <&i2c3_ph_pins>;
    			status = "disabled";
    			#address-cells = <1>;
    			#size-cells = <0>;
    		};
    
    		i2c4: i2c@5003000 {
    			compatible = "allwinner,sun50i-h616-i2c",
    				     "allwinner,sun8i-v536-i2c",
    				     "allwinner,sun6i-a31-i2c";
    			reg = <0x05003000 0x400>;
    			interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_I2C4>;
    			resets = <&ccu RST_BUS_I2C4>;
    			pinctrl-names = "default";
    			pinctrl-0 = <&i2c4_ph_pins>;
    			status = "disabled";
    			#address-cells = <1>;
    			#size-cells = <0>;
    		};
    
    		spi0: spi@5010000 {
    			compatible = "allwinner,sun50i-h616-spi",
    				     "allwinner,sun8i-h3-spi";
    			reg = <0x05010000 0x1000>;
    			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
    			clock-names = "ahb", "mod";
    			resets = <&ccu RST_BUS_SPI0>;
    			pinctrl-names = "default";
    			pinctrl-0 = <&spi0_pins>;
    			dmas = <&dma 22>, <&dma 22>;
    			dma-names = "rx", "tx";
    			status = "disabled";
    			#address-cells = <1>;
    			#size-cells = <0>;
    		};
    
    		spi1: spi@5011000 {
    			compatible = "allwinner,sun50i-h616-spi",
    				     "allwinner,sun8i-h3-spi";
    			reg = <0x05011000 0x1000>;
    			interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
    			clock-names = "ahb", "mod";
    			resets = <&ccu RST_BUS_SPI1>;
    			pinctrl-names = "default";
    			pinctrl-0 = <&spi1_pins>, <&spi1_cs1_pin>;
    			dmas = <&dma 23>, <&dma 23>;
    			dma-names = "rx", "tx";
    			status = "disabled";
    			#address-cells = <1>;
    			#size-cells = <0>;
    		};
    
    		emac0: ethernet@5020000 {
    			compatible = "allwinner,sun50i-h616-emac0",
    				     "allwinner,sun50i-a64-emac";
    			reg = <0x05020000 0x10000>;
    			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
    			interrupt-names = "macirq";
    			clocks = <&ccu CLK_BUS_EMAC0>;
    			clock-names = "stmmaceth";
    			resets = <&ccu RST_BUS_EMAC0>;
    			reset-names = "stmmaceth";
    			syscon = <&syscon>;
    			status = "disabled";
    
    			mdio0: mdio {
    				compatible = "snps,dwmac-mdio";
    				#address-cells = <1>;
    				#size-cells = <0>;
    			};
    		};
    
    		emac1: ethernet@5030000 {
    			compatible = "allwinner,sunxi-gmac";
    			reg = <0x05030000 0x10000>,
    			      <0x03000034 0x4>;
    			reg-names = "gmac1_reg","ephy_reg";
    			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
    			interrupt-names = "gmacirq";
    			resets = <&ccu RST_BUS_EMAC1>;
    			reset-names = "stmmaceth";
    			clocks = <&ccu CLK_BUS_EMAC1>,<&ccu CLK_EMAC_25M>;
    			clock-names = "bus-emac1","emac-25m";
    			pinctrl-0 = <&rmii_pins>;
    			pinctrl-names = "default";
    			phy-mode = "rmii";
    			tx-delay = <7>;
    			rx-delay = <31>;
    			phy-rst;
    			gmac-power0;
    			gmac-power1;
    			gmac-power2;
    			status = "disabled";
    
    			mdio1: mdio {
    				compatible = "ethernet-phy-ieee802.3-c22";
    				#address-cells = <1>;
    				#size-cells = <0>;
    			};
    		};
    
    		usbotg: usb@5100000 {
    			compatible = "allwinner,sun50i-h616-musb",
    				     "allwinner,sun8i-h3-musb";
    			reg = <0x05100000 0x0400>;
    			clocks = <&ccu CLK_BUS_OTG>;
    			resets = <&ccu RST_BUS_OTG>;
    			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
    			interrupt-names = "mc";
    			phys = <&usbphy 0>;
    			phy-names = "usb";
    			extcon = <&usbphy 0>;
    			status = "disabled";
    		};
    
    		usbphy: phy@5100400 {
    			compatible = "allwinner,sun50i-h616-usb-phy";
    			reg = <0x05100400 0x24>,
    			      <0x05101800 0x14>,
    			      <0x05200800 0x14>,
    			      <0x05310800 0x14>,
    			      <0x05311800 0x14>;
    			reg-names = "phy_ctrl",
    				    "pmu0",
    				    "pmu1",
    				    "pmu2",
    				    "pmu3";
    			clocks = <&ccu CLK_USB_PHY0>,
    				 <&ccu CLK_USB_PHY1>,
    				 <&ccu CLK_USB_PHY2>,
    				 <&ccu CLK_USB_PHY3>,
    				 <&ccu CLK_BUS_EHCI2>;
    			clock-names = "usb0_phy",
    				      "usb1_phy",
    				      "usb2_phy",
    				      "usb3_phy",
    				      "pmu2_clk";
    			resets = <&ccu RST_USB_PHY0>,
    				 <&ccu RST_USB_PHY1>,
    				 <&ccu RST_USB_PHY2>,
    				 <&ccu RST_USB_PHY3>;
    			reset-names = "usb0_reset",
    				      "usb1_reset",
    				      "usb2_reset",
    				      "usb3_reset";
    			status = "disabled";
    			#phy-cells = <1>;
    		};
    
    		ehci0: usb@5101000 {
    			compatible = "allwinner,sun50i-h616-ehci",
    				     "generic-ehci";
    			reg = <0x05101000 0x100>;
    			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_OHCI0>,
    				 <&ccu CLK_BUS_EHCI0>,
    				 <&ccu CLK_USB_OHCI0>,
    				 <&ccu CLK_USB_PHY2>;
    			resets = <&ccu RST_BUS_OHCI0>,
    				 <&ccu RST_BUS_EHCI0>,
    				 <&ccu RST_USB_PHY2>;
    			phys = <&usbphy 0>;
    			phy-names = "usb";
    			status = "disabled";
    		};
    
    		ohci0: usb@5101400 {
    			compatible = "allwinner,sun50i-h616-ohci",
    				     "generic-ohci";
    			reg = <0x05101400 0x100>;
    			interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_OHCI0>,
    				 <&ccu CLK_USB_OHCI0>,
    				 <&ccu CLK_USB_PHY2>;
    			resets = <&ccu RST_BUS_OHCI0>,
    				 <&ccu RST_USB_PHY2>;
    			phys = <&usbphy 0>;
    			phy-names = "usb";
    			status = "disabled";
    		};
    
    		ehci1: usb@5200000 {
    			compatible = "allwinner,sun50i-h616-ehci",
    				     "generic-ehci";
    			reg = <0x05200000 0x100>;
    			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_OHCI1>,
    				 <&ccu CLK_BUS_EHCI1>,
    				 <&ccu CLK_USB_OHCI1>,
    				 <&ccu CLK_USB_PHY2>;
    			resets = <&ccu RST_BUS_OHCI1>,
    				 <&ccu RST_BUS_EHCI1>,
    				 <&ccu RST_USB_PHY2>;
    			phys = <&usbphy 1>;
    			phy-names = "usb";
    			status = "disabled";
    		};
    
    		ohci1: usb@5200400 {
    			compatible = "allwinner,sun50i-h616-ohci",
    				     "generic-ohci";
    			reg = <0x05200400 0x100>;
    			interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_OHCI1>,
    				 <&ccu CLK_USB_OHCI1>,
    				 <&ccu CLK_USB_PHY2>;
    			resets = <&ccu RST_BUS_OHCI1>,
    				 <&ccu RST_USB_PHY2>;
    			phys = <&usbphy 1>;
    			phy-names = "usb";
    			status = "disabled";
    		};
    
    		ehci2: usb@5310000 {
    			compatible = "allwinner,sun50i-h616-ehci",
    				     "generic-ehci";
    			reg = <0x05310000 0x100>;
    			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_OHCI2>,
    				 <&ccu CLK_BUS_EHCI2>,
    				 <&ccu CLK_USB_OHCI2>;
    			resets = <&ccu RST_BUS_OHCI2>,
    				 <&ccu RST_BUS_EHCI2>;
    			phys = <&usbphy 2>;
    			phy-names = "usb";
    			status = "disabled";
    		};
    
    		ohci2: usb@5310400 {
    			compatible = "allwinner,sun50i-h616-ohci",
    				     "generic-ohci";
    			reg = <0x05310400 0x100>;
    			interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_OHCI2>,
    				 <&ccu CLK_USB_OHCI2>;
    			resets = <&ccu RST_BUS_OHCI2>;
    			phys = <&usbphy 2>;
    			phy-names = "usb";
    			status = "disabled";
    		};
    
    		ehci3: usb@5311000 {
    			compatible = "allwinner,sun50i-h616-ehci",
    				     "generic-ehci";
    			reg = <0x05311000 0x100>;
    			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_OHCI3>,
    				 <&ccu CLK_BUS_EHCI3>,
    				 <&ccu CLK_USB_OHCI3>,
    				 <&ccu CLK_USB_PHY2>;
    			resets = <&ccu RST_BUS_OHCI3>,
    				 <&ccu RST_BUS_EHCI3>,
    				 <&ccu RST_USB_PHY2>;
    			phys = <&usbphy 3>;
    			phy-names = "usb";
    			status = "disabled";
    		};
    
    		ohci3: usb@5311400 {
    			compatible = "allwinner,sun50i-h616-ohci",
    				     "generic-ohci";
    			reg = <0x05311400 0x100>;
    			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_OHCI3>,
    				 <&ccu CLK_USB_OHCI3>,
    				 <&ccu CLK_USB_PHY2>;
    			resets = <&ccu RST_BUS_OHCI3>,
    				 <&ccu RST_USB_PHY2>;
    			phys = <&usbphy 3>;
    			phy-names = "usb";
    			status = "disabled";
    		};
    
    		hdmi: hdmi@6000000 {
    			#sound-dai-cells = <0>;
    			compatible = "allwinner,sun50i-h616-dw-hdmi",
    				     "allwinner,sun50i-h6-dw-hdmi";
    			reg = <0x06000000 0x10000>;
    			reg-io-width = <1>;
    			interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>,
    				 <&ccu CLK_HDMI>, <&ccu CLK_HDMI_CEC>,
    				 <&ccu CLK_HDCP>, <&ccu CLK_BUS_HDCP>;
    			clock-names = "iahb", "isfr", "tmds", "cec", "hdcp",
    				      "hdcp-bus";
    			resets = <&ccu RST_BUS_HDMI>, <&ccu RST_BUS_HDCP>;
    			reset-names = "ctrl", "hdcp";
    			phys = <&hdmi_phy>;
    			phy-names = "phy";
    			status = "disabled";
    
    			ports {
    				#address-cells = <1>;
    				#size-cells = <0>;
    
    				hdmi_in: port@0 {
    					reg = <0>;
    
    					hdmi_in_tcon_top: endpoint {
    						remote-endpoint = <&tcon_top_hdmi_out_hdmi>;
    					};
    				};
    
    				hdmi_out: port@1 {
    					reg = <1>;
    				};
    			};
    		};
    
    		hdmi_phy: hdmi-phy@6010000 {
    			compatible = "allwinner,sun50i-h616-hdmi-phy";
    			reg = <0x06010000 0x10000>;
    			clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_SLOW>;
    			clock-names = "bus", "mod";
    			resets = <&ccu RST_BUS_HDMI_SUB>;
    			reset-names = "phy";
    			#phy-cells = <0>;
    		};
    
    		tcon_top: tcon-top@6510000 {
    			compatible = "allwinner,sun50i-h6-tcon-top";
    			reg = <0x06510000 0x1000>;
    			clocks = <&ccu CLK_BUS_TCON_TOP>,
    				 <&ccu CLK_TCON_TV0>;
    			clock-names = "bus",
    				      "tcon-tv0";
    			clock-output-names = "tcon-top-tv0";
    			resets = <&ccu RST_BUS_TCON_TOP>;
    			#clock-cells = <1>;
    
    			ports {
    				#address-cells = <1>;
    				#size-cells = <0>;
    
    				tcon_top_mixer0_in: port@0 {
    					#address-cells = <1>;
    					#size-cells = <0>;
    					reg = <0>;
    
    					tcon_top_mixer0_in_mixer0: endpoint@0 {
    						reg = <0>;
    						remote-endpoint = <&mixer0_out_tcon_top_mixer0>;
    					};
    				};
    
    				tcon_top_mixer0_out: port@1 {
    					#address-cells = <1>;
    					#size-cells = <0>;
    					reg = <1>;
    
    					tcon_top_mixer0_out_tcon_tv: endpoint@2 {
    						reg = <2>;
    						remote-endpoint = <&tcon_tv_in_tcon_top_mixer0>;
    					};
    				};
    
    				tcon_top_hdmi_in: port@4 {
    					#address-cells = <1>;
    					#size-cells = <0>;
    					reg = <4>;
    
    					tcon_top_hdmi_in_tcon_tv: endpoint@0 {
    						reg = <0>;
    						remote-endpoint = <&tcon_tv_out_tcon_top>;
    					};
    				};
    
    				tcon_top_hdmi_out: port@5 {
    					reg = <5>;
    
    					tcon_top_hdmi_out_hdmi: endpoint {
    						remote-endpoint = <&hdmi_in_tcon_top>;
    					};
    				};
    			};
    		};
    
    		tcon_tv: lcd-controller@6515000 {
    			compatible = "allwinner,sun50i-h6-tcon-tv",
    				     "allwinner,sun8i-r40-tcon-tv";
    			reg = <0x06515000 0x1000>;
    			interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_TCON_TV0>,
    				 <&tcon_top CLK_TCON_TOP_TV0>;
    			clock-names = "ahb",
    				      "tcon-ch1";
    			resets = <&ccu RST_BUS_TCON_TV0>;
    			reset-names = "lcd";
    
    			ports {
    				#address-cells = <1>;
    				#size-cells = <0>;
    
    				tcon_tv_in: port@0 {
    					reg = <0>;
    
    					tcon_tv_in_tcon_top_mixer0: endpoint {
    						remote-endpoint = <&tcon_top_mixer0_out_tcon_tv>;
    					};
    				};
    
    				tcon_tv_out: port@1 {
    					#address-cells = <1>;
    					#size-cells = <0>;
    					reg = <1>;
    
    					tcon_tv_out_tcon_top: endpoint@1 {
    						reg = <1>;
    						remote-endpoint = <&tcon_top_hdmi_in_tcon_tv>;
    					};
    				};
    			};
    		};
    
    		rtc: rtc@7000000 {
    			compatible = "allwinner,sun50i-h616-rtc";
    			reg = <0x07000000 0x400>;
    			interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&r_ccu CLK_R_APB1_RTC>, <&osc24M>,
    				 <&ccu CLK_PLL_SYSTEM_32K>;
    			clock-names = "bus", "hosc",
    				      "pll-32k";
    			#clock-cells = <1>;
    		};
    
    		r_ccu: clock@7010000 {
    			compatible = "allwinner,sun50i-h616-r-ccu";
    			reg = <0x07010000 0x210>;
    			clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>,
    				 <&ccu CLK_PLL_PERIPH0>;
    			clock-names = "hosc", "losc", "iosc", "pll-periph";
    			#clock-cells = <1>;
    			#reset-cells = <1>;
    		};
    
    		r_pio: pinctrl@7022000 {
    			compatible = "allwinner,sun50i-h616-r-pinctrl";
    			reg = <0x07022000 0x400>;
    			interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&r_ccu CLK_R_APB1>, <&osc24M>,
    				 <&rtc CLK_OSC32K>;
    			clock-names = "apb", "hosc", "losc";
    			gpio-controller;
    			#gpio-cells = <3>;
    			interrupt-controller;
    			#interrupt-cells = <3>;
    
    			/omit-if-no-ref/
    			r_i2c_pins: r-i2c-pins {
    				pins = "PL0", "PL1";
    				function = "s_i2c";
    			};
    
    			r_rsb_pins: r-rsb-pins {
    				pins = "PL0", "PL1";
    				function = "s_rsb";
    			};
    		};
    
    		ir: ir@7040000 {
    			compatible = "allwinner,sun50i-h616-ir",
    				     "allwinner,sun6i-a31-ir";
    			reg = <0x07040000 0x400>;
    			interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&r_ccu CLK_R_APB1_IR>,
    				 <&r_ccu CLK_IR>;
    			clock-names = "apb", "ir";
    			resets = <&r_ccu RST_R_APB1_IR>;
    			pinctrl-names = "default";
    			pinctrl-0 = <&ir_rx_pin>;
    			status = "disabled";
    		};
    
    		r_i2c: i2c@7081400 {
    			compatible = "allwinner,sun50i-h616-i2c",
    				     "allwinner,sun8i-v536-i2c",
    				     "allwinner,sun6i-a31-i2c";
    			reg = <0x07081400 0x400>;
    			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&r_ccu CLK_R_APB2_I2C>;
    			resets = <&r_ccu RST_R_APB2_I2C>;
    			status = "disabled";
    			#address-cells = <1>;
    			#size-cells = <0>;
    		};
    
    		r_rsb: rsb@7083000 {
    			compatible = "allwinner,sun50i-h616-rsb",
    				     "allwinner,sun8i-a23-rsb";
    			reg = <0x07083000 0x400>;
    			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&r_ccu CLK_R_APB2_RSB>;
    			clock-frequency = <3000000>;
    			resets = <&r_ccu RST_R_APB2_RSB>;
    			pinctrl-names = "default";
    			pinctrl-0 = <&r_rsb_pins>;
    			status = "disabled";
    			#address-cells = <1>;
    			#size-cells = <0>;
    		};
    
    		ths: thermal-sensor@5070400 {
    			/* The Thermal Sensor Controller(THS) embeds four thermal sensors,
    			sensor0 is located in GPU
    			sensor1 is located in VE
    			sensor2 is located in CPU
    			sensor3 is located in DDR
    			*/
    			compatible = "allwinner,sun50i-h616-ths";
    			reg = <0x05070400 0x400>;
    			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&ccu CLK_BUS_THS>;
    			clock-names = "bus";
    			resets = <&ccu RST_BUS_THS>;
    			nvmem-cells = <&ths_calibration>;
    			nvmem-cell-names = "calibration";
    			#thermal-sensor-cells = <1>;
    		};
    
    		dump_reg: dump_reg@20000 {
    			compatible = "allwinner,sunxi-dump-reg";
    			reg = <0x0 0x03001000 0x0 0x0f20>;
    			status = "okay";
    		};
    
    		sunxi-info {
    			compatible = "allwinner,sun50i-h616-sys-info";
    			status = "okay";
    		};
    
    		addr_mgt: addr-mgt {
    			compatible = "allwinner,sunxi-addr_mgt";
    			type_addr_wifi = <0x2>;
    			type_addr_bt = <0x2>;
    			type_addr_eth = <0x2>;
    			status = "okay";
    		};
    
    		r_lradc: lradc@5070800 {
    			compatible = "allwinner,sun50i-h616-lradc";
    			reg = <0x05070800 0x400>;
    			interrupts = <GIC_SPI 20 IRQ_TYPE_EDGE_RISING>;
    			clocks = <&ccu CLK_BUS_KEYADC>;
    			resets = <&ccu RST_BUS_KEYADC>;
    			status = "disabled";
    		};
    	};
    
    	thermal-zones {
    		cpu-thermal {
    			polling-delay-passive = <0>;
    			polling-delay = <0>;
    			thermal-sensors = <&ths 2>;
    
    			trips {
    				cpu_alert: cpu-alert {
    					temperature = <85000>;
    					hysteresis = <2000>;
    					type = "passive";
    				};
    
    				cpu-crit {
    					temperature = <100000>;
    					hysteresis = <0>;
    					type = "critical";
    				};
    			};
    
    			cooling-maps {
    				map0 {
    					trip = <&cpu_alert>;
    					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
    					                 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
    					                 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
    					                 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
    				};
    			};
    		};
    
    		gpu-thermal {
    			polling-delay-passive = <0>;
    			polling-delay = <0>;
    			thermal-sensors = <&ths 0>;
    
    			trips {
    				gpu_alert: gpu-alert {
    					temperature = <85000>;
    					hysteresis = <2000>;
    					type = "passive";
    				};
    
    				gpu-crit {
    					temperature = <100000>;
    					hysteresis = <0>;
    					type = "critical";
    				};
    			};
    
    			cooling-maps {
    				map0 {
    					trip = <&gpu_alert>;
    					cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
    				};
    			};
    		};
    
    		ve-thermal {
    			polling-delay-passive = <0>;
    			polling-delay = <0>;
    			thermal-sensors = <&ths 1>;
    
    			trips {
    				ve_alert: ve-alert {
    					temperature = <85000>;
    					hysteresis = <2000>;
    					type = "passive";
    				};
    			};
    		};
    
    		ddr-thermal {
    			polling-delay-passive = <0>;
    			polling-delay = <0>;
    			thermal-sensors = <&ths 3>;
    
    			trips {
    				ddr_alert: ddr-alert {
    					temperature = <85000>;
    					hysteresis = <2000>;
    					type = "passive";
    				};
    			};
    		};
    	};
    
    	gpu_opp_table: gpu-opp-table {
    		compatible = "operating-points-v2";
    		opp-125000000 {
    			opp-hz = /bits/ 64 <125000000>;
    			opp-microvolt = <810000>;
    		};
    		opp-250000000 {
    			opp-hz = /bits/ 64 <250000000>;
    			opp-microvolt = <810000>;
    		};
    		opp-432000000 {
    			opp-hz = /bits/ 64 <432000000>;
    			opp-microvolt = <810000>;
    		};
    		opp-600000000 {
    			opp-hz = /bits/ 64 <600000000>;
    			opp-microvolt = <960000>;
    		};
    		opp-800000000 {
    			opp-hz = /bits/ 64 <800000000>;
    			opp-microvolt = <1080000>;
    		};
    	};
    };
  • 设备树修改点:sun50i-h616-orangepi-zero2w.dts

    &i2c1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c1_pi_pins>;
    	
    	status = "okay";
    
    	smtouch: smtouch@2e{
    		compatible = "chipsemi,chsc_cap_touch";
    		reg = <0x2e>;
    		
    		interrupt-parent = <&pio>;
    		interrupts = <8 13 IRQ_TYPE_EDGE_FALLING>;  /*(PI13)*/
    		
    		chipsemi,int-gpio = <&pio 8 13 IRQ_TYPE_LEVEL_LOW>;
    		chipsemi,rst-gpio = <&pio 7 2 GPIO_ACTIVE_HIGH>;
    		
    		#pinctrl-names = "pmx_ts_active","pmx_ts_suspend","pmx_ts_release";
    		#pinctrl-0 = <&ts_int_active &ts_reset_active>;
    		#pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>;
    		#pinctrl-2 = <&ts_release>;
    
    	};
    };
  • 设备树完整文件:sun50i-h616-orangepi-zero2w.dts

    // SPDX-License-Identifier: (GPL-2.0+ or MIT)
    /*
     * Copyright (C) 2020 Arm Ltd.
     */
    
    /dts-v1/;
    
    #include "sun50i-h616.dtsi"
    #include "sun50i-h616-cpu-opp.dtsi"
    
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/input/input.h>
    #include <dt-bindings/leds/common.h>
    
    / {
    	model = "OrangePi Zero2 W";
    	compatible = "xunlong,orangepi-zero2w", "allwinner,sun50i-h616";
    
    	aliases {
    		serial0 = &uart0;
    		serial2 = &uart2;
    		serial3 = &uart3;
    		serial4 = &uart4;
    		serial5 = &uart5;
    		ethernet0 = &emac1;
    	};
    
    	chosen {
    		stdout-path = "serial0:115200n8";
    	};
    
    	connector {
    		compatible = "hdmi-connector";
    		type = "d";
    
    		port {
    			hdmi_con_in: endpoint {
    				remote-endpoint = <&hdmi_out_con>;
    			};
    		};
    	};
    
    	leds: leds {
    		compatible = "gpio-leds";
    
    		led-green {
    			label = "green_led";
    			gpios = <&pio 2 13 GPIO_ACTIVE_HIGH>; /* PC13 */
    			linux,default-trigger = "heartbeat";
    		};
    
    		100m_link {
    			label = "100m_link";
    			gpios = <&pio 2 15 GPIO_ACTIVE_HIGH>; /* PC15 */
    			default-state = "off";
    		};
    
    		100m_act {
    			label = "100m_act";
    			gpios = <&pio 2 16 GPIO_ACTIVE_HIGH>; /* PC16 */
    			default-state = "off";
    		};
    	};
    
    	reg_vcc5v: vcc5v {
    		/* board wide 5V supply directly from the USB-C socket */
    		compatible = "regulator-fixed";
    		regulator-name = "vcc-5v";
    		regulator-min-microvolt = <5000000>;
    		regulator-max-microvolt = <5000000>;
    		regulator-always-on;
    	};
    
    	reg_vcc33_wifi: vcc33-wifi {
    		/* Always on 3.3V regulator for WiFi and BT */
    		compatible = "regulator-fixed";
    		regulator-name = "vcc33-wifi";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		regulator-always-on;
    		vin-supply = <&reg_vcc5v>;
    	};
    
    	reg_vcc_wifi_io: vcc-wifi-io {
    		/* Always on 1.8V/300mA regulator for WiFi and BT IO */
    		compatible = "regulator-fixed";
    		regulator-name = "vcc-wifi-io";
    		regulator-min-microvolt = <1800000>;
    		regulator-max-microvolt = <1800000>;
    		regulator-always-on;
    		vin-supply = <&reg_vcc33_wifi>;
    	};
    
    	wifi_pwrseq: wifi-pwrseq {
    		compatible = "mmc-pwrseq-simple";
    		clocks = <&rtc 1>;
    		clock-names = "osc32k-out";
    		reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
    		post-power-on-delay-ms = <200>;
    	};
    
    	ac200_pwm_clk: ac200_clk {
    		compatible = "pwm-clock";
    		#clock-cells = <0>;
    		// pwm5 period_ns = 500 > 334 for select 24M clock.
    		pwms = <&pwm 5 500 0>;
    		clock-frequency = <2000000>;
    		status = "okay";
    	};
    };
    
    &pwm5 {
    	// clk_bypass_output = 1 for Clock direct output without frequency division
    	// so pwm5 output is 24MHz for AC200 & AC300 clock
    	clk_bypass_output = <0x1>;
    	status = "okay";
    };
    
    &de {
    	status = "okay";
    };
    
    &hdmi {
    	//hvcc-supply = <&reg_bldo1>;
    	status = "okay";
    };
    
    &hdmi_out {
    	hdmi_out_con: endpoint {
    		remote-endpoint = <&hdmi_con_in>;
    	};
    };
    
    &gpu {
    	mali-supply = <&reg_dcdc1>;
    	status = "disabled";
    };
    
    &mmc0 {
    	vmmc-supply = <&reg_dldo1>;
    	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;	/* PF6 */
    	bus-width = <4>;
    	max-frequency = <50000000>;
    	status = "okay";
    };
    
    &mmc1 {
    	vmmc-supply = <&reg_vcc33_wifi>;
    	vqmmc-supply = <&reg_vcc_wifi_io>;
    	mmc-pwrseq = <&wifi_pwrseq>;
    	bus-width = <4>;
    	non-removable;
    	mmc-ddr-1_8v;
    	status = "okay";
    };
    
    &r_i2c {
    	status = "okay";
    
    	axp313a: pmic@36 {
    		compatible = "x-powers,axp313a";
    		reg = <0x36>;
    		wakeup-source;
    
    		interrupt-parent = <&pio>;
    		interrupts = <2 9 IRQ_TYPE_LEVEL_LOW>; /* PC9 */
    		interrupt-controller;
    		#interrupt-cells = <1>;
    
    		regulators{
    			reg_dcdc1: dcdc1 {
    				regulator-name = "axp313a-dcdc1";
    				regulator-min-microvolt = <500000>;
    				regulator-max-microvolt = <1100000>;
    				regulator-step-delay-us = <25>;
    				regulator-final-delay-us = <50>;
    				regulator-always-on;
    			};
    
    			reg_dcdc2: dcdc2 {
    				regulator-name = "axp313a-dcdc2";
    				regulator-min-microvolt = <500000>;
    				regulator-max-microvolt = <1200000>;
    				regulator-step-delay-us = <25>;
    				regulator-final-delay-us = <50>;
    				regulator-ramp-delay = <200>;
    				regulator-always-on;
    			};
    
    			reg_dcdc3: dcdc3 {
    				regulator-name = "axp313a-dcdc3";
    				regulator-min-microvolt = <1100000>;
    				regulator-max-microvolt = <1100000>;
    				regulator-step-delay-us = <25>;
    				regulator-final-delay-us = <50>;
    				regulator-always-on;
    			};
    
    			reg_aldo1: ldo1 {
    				regulator-name = "axp313a-aldo1";
    				regulator-min-microvolt = <1800000>;
    				regulator-max-microvolt = <1800000>;
    				regulator-step-delay-us = <25>;
    				regulator-final-delay-us = <50>;
    				regulator-always-on;
    			};
    
    			reg_dldo1: ldo2 {
    				regulator-name = "axp313a-dldo1";
    				regulator-min-microvolt = <3300000>;
    				regulator-max-microvolt = <3300000>;
    				regulator-step-delay-us = <25>;
    				regulator-final-delay-us = <50>;
    				regulator-always-on;
    			};
    		};
    	};
    };
    
    &uart0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart0_ph_pins>;
    	status = "okay";
    };
    
    &usbotg {
    	/*
    	 * PHY0 pins are connected to a USB-C socket, but a role switch
    	 * is not implemented: both CC pins are pulled to GND.
    	 * The VBUS pins power the device, so a fixed peripheral mode
    	 * is the best choice.
    	 * The board can be powered via GPIOs, in this case port0 *can*
    	 * act as a host (with a cable/adapter ignoring CC), as VBUS is
    	 * then provided by the GPIOs. Any user of this setup would
    	 * need to adjust the DT accordingly: dr_mode set to "host",
    	 * enabling OHCI0 and EHCI0.
    	 */
    	dr_mode = "peripheral";
    	status = "okay";
    };
    
    &usbphy {
    	status = "okay";
    };
    
    &ehci0 {
    	status = "disabled";
    };
    
    &ehci1 {
    	status = "okay";
    };
    
    &ehci2 {
    	status = "okay";
    };
    
    &ehci3 {
    	status = "okay";
    };
    
    &ohci0 {
    	status = "disabled";
    };
    
    &ohci1 {
    	status = "okay";
    };
    
    &ohci2 {
    	status = "okay";
    };
    
    &ohci3 {
    	status = "okay";
    };
    
    &ir {
    	pinctrl-names = "default";
    	pinctrl-0 = <&ir_rx_pin>;
    	status = "okay";
    };
    
    &i2c0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c0_pi_pins>;
    	status = "disabled";
    };
    
    &i2c1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c1_pi_pins>;
    	
    	status = "okay";
    
    	smtouch: smtouch@2e{
    		compatible = "chipsemi,chsc_cap_touch";
    		reg = <0x2e>;
    		
    		interrupt-parent = <&pio>;
    		interrupts = <8 13 IRQ_TYPE_EDGE_FALLING>;  /*(PI13)*/
    		
    		chipsemi,int-gpio = <&pio 8 13 IRQ_TYPE_LEVEL_LOW>;
    		chipsemi,rst-gpio = <&pio 7 2 GPIO_ACTIVE_HIGH>;
    		
    		#pinctrl-names = "pmx_ts_active","pmx_ts_suspend","pmx_ts_release";
    		#pinctrl-0 = <&ts_int_active &ts_reset_active>;
    		#pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>;
    		#pinctrl-2 = <&ts_release>;
    
    	};
    };
    
    &i2c2 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c2_pi_pins>;
    	status = "disabled";
    };
    
    &i2c3 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c3_pa_pins>;
    
    	ac200_x: mfd@10 {
    		compatible = "x-powers,ac200";
    		reg = <0x10>;
    		clocks = <&ac200_pwm_clk>;
    		// ephy id
    		nvmem-cells = <&ephy_calibration>;
    		nvmem-cell-names = "calibration";
    
    		ac200_ephy: phy {
    			compatible = "x-powers,ac200-ephy";
    			status = "okay";
    		};
    	};
    };
    
    &i2c4 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c4_ph_pins>;
    	status = "disabled";
    };
    
    
    &uart2 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart2_pi_pins>;
    	status = "disabled";
    };
    
    &uart3 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart3_pi_pins>;
    	status = "disabled";
    };
    
    &uart4 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart4_pi_pins>;
    	status = "disabled";
    };
    
    &uart5 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart5_ph_pins>;
    	status = "disabled";
    };
    
    &spi0  {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&spi0_pins>, <&spi0_cs0_pin>;
    
    	spidev@0 {
    		status = "disabled";
    		compatible = "rohm,dh2228fv";
    		reg = <0>;
    		spi-max-frequency = <1000000>;
    	};
    
    	flash@0 {
    		status = "okay";
    		#address-cells = <1>;
    		#size-cells = <1>;
    		compatible = "jedec,spi-nor";
    		reg = <0>;
    		spi-max-frequency = <40000000>;
    	};
    };
    
    &spi1 {
    	status = "disabled";
    	#address-cells = <1>;
    	#size-cells = <0>;
    	pinctrl-names = "default";
    	pinctrl-0 = <&spi1_pins>, <&spi1_cs1_pin>;
    
    	spidev@1 {
    		compatible = "rohm,dh2228fv";
    		status = "disabled";
    		reg = <1>;
    		spi-max-frequency = <1000000>;
    	};
    };
    
    &codec {
    	allwinner,audio-routing =
    	        "Line Out", "LINEOUT";
    	status = "okay";
    };
    
    &ahub_dam_plat {
    	status = "okay";
    };
    
    &ahub_dam_mach {
    	status = "okay";
    };
    
    &ahub1_plat {
    	status = "okay";
    };
    
    &ahub1_mach {
    	status = "okay";
    };
    
    &cpu0 {
    	cpu-supply = <&reg_dcdc2>;
    	status = "okay";
    };
    
    &pwm1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&pwm1_pi_pin>;
    };
    
    &pwm2 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&pwm2_pi_pin>;
    };
    
    &pwm3 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&pwm3_pi_pin>;
    };
    
    &pwm4 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&pwm4_pi_pin>;
    };
    
    &emac1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&rmii_pins>;
    	phy-mode = "rmii";
    	phy-handle = <&rmii_phy>;
    	phy-supply = <&reg_dldo1>;
    	allwinner,rx-delay-ps = <3100>;
    	allwinner,tx-delay-ps = <700>;
    	status = "okay";
    };
    
    &mdio1 {
    	rmii_phy: ethernet-phy@1 {
    		compatible = "ethernet-phy-ieee802.3-c22";
    		reg = <1>;
    	};
    };
    
    &r_lradc {
    	vref-supply = <&reg_aldo1>;
    	status = "okay";
    
    	button-500 {
    		label = "KEY_1";
    		linux,code = <KEY_1>;
    		channel = <0>;
    		voltage = <500000>;
    	};
    
    	button-800 {
    		label = "KEY_ENTER";
    		linux,code = <KEY_ENTER>;
    		channel = <0>;
    		voltage = <800000>;
    	};
    };
  • 驱动加载报错log,目前没有进行实际硬件链接

  • 驱动加载后i2c设备树信息
    i2c%E8%AE%BE%E5%A4%87%E6%A0%91%E4%BF%A1%E6%81%AF.jpeg

  • 驱动加载后重启log
    %E9%A9%B1%E5%8A%A8%E5%8A%A0%E8%BD%BD%E4%BF%A1%E6%81%AF.jpeg

    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 6.1.31-sun50iw9 (root@goku-virtual-machine) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025, GNU ld (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 2.33.1.20191209) #1.0.0 SMP Sat Mar  9 16:27:27 CST 2024
    [    0.000000] Machine model: OrangePi Zero2 W
    [    0.000000] NUMA: No NUMA configuration found
    [    0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x000000007fffffff]
    [    0.000000] NUMA: NODE_DATA [mem 0x7fdc1040-0x7fdc2fff]
    [    0.000000] Zone ranges:
    [    0.000000]   DMA      [mem 0x0000000040000000-0x000000007fffffff]
    [    0.000000]   DMA32    empty
    [    0.000000]   Normal   empty
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x0000000040000000-0x000000004007ffff]
    [    0.000000]   node   0: [mem 0x0000000040080000-0x000000007fffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000007fffffff]
    [    0.000000] cma: Reserved 128 MiB at 0x0000000076c00000
    [    0.000000] psci: probing for conduit method from DT.
    [    0.000000] psci: PSCIv1.1 detected in firmware.
    [    0.000000] psci: Using standard PSCI v0.2 function IDs
    [    0.000000] psci: MIGRATE_INFO_TYPE not supported.
    [    0.000000] psci: SMC Calling Convention v1.4
    [    0.000000] percpu: Embedded 19 pages/cpu s37992 r8192 d31640 u77824
    [    0.000000] pcpu-alloc: s37992 r8192 d31640 u77824 alloc=19*4096
    [    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
    [    0.000000] Detected VIPT I-cache on CPU0
    [    0.000000] CPU features: detected: ARM erratum 845719
    [    0.000000] alternatives: applying boot alternatives
    [    0.000000] Fallback order for Node 0: 0 
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 258048
    [    0.000000] Policy zone: DMA
    [    0.000000] Kernel command line: root=UUID=551c3a76-a854-4201-b126-1cef2a294964 rootwait rootfstype=ext4 splash=verbose console=ttyS0,115200 console=tty1 consoleblank=0 loglevel=1 ubootpart=bb229d64-01 usb-storage.quirks=0x2537:0x1066:u,0x2537:0x1068:u   cgroup_enable=memory swapaccount=1
    [    0.000000] The swapaccount= commandline option is deprecated. Please report your usecase to linux-mm@kvack.org if you depend on this functionality.
    [    0.000000] Unknown kernel command line parameters "splash=verbose ubootpart=bb229d64-01 cgroup_enable=memory", will be passed to user space.
    [    0.000000] printk: log_buf_len individual max cpu contribution: 131072 bytes
    [    0.000000] printk: log_buf_len total cpu_extra contributions: 393216 bytes
    [    0.000000] printk: log_buf_len min size: 131072 bytes
    [    0.000000] printk: log_buf_len: 524288 bytes
    [    0.000000] printk: early log buf free: 128504(98%)
    [    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
    [    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
    [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
    [    0.000000] Memory: 852468K/1048576K available (13952K kernel code, 1464K rwdata, 3764K rodata, 2752K init, 502K bss, 65036K reserved, 131072K cma-reserved)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
    [    0.000000] rcu: Hierarchical RCU implementation.
    [    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
    [    0.000000] 	Tracing variant of Tasks RCU enabled.
    [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
    [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
    [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
    [    0.000000] Root IRQ handler: gic_handle_irq
    [    0.000000] GIC: Using split EOI/Deactivate mode
    [    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
    [    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
    [    0.000001] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
    [    0.000571] Console: colour dummy device 80x25
    [    0.000621] printk: console [tty1] enabled
    [    0.000703] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
    [    0.000718] pid_max: default: 32768 minimum: 301
    [    0.000792] LSM: Security Framework initializing
    [    0.000823] Yama: becoming mindful.
    [    0.000920] AppArmor: AppArmor initialized
    [    0.001003] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
    [    0.001018] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
    [    0.002040] cacheinfo: Unable to detect cache hierarchy for CPU 0
    [    0.002599] cblist_init_generic: Setting adjustable number of callback queues.
    [    0.002609] cblist_init_generic: Setting shift to 2 and lim to 1.
    [    0.002767] rcu: Hierarchical SRCU implementation.
    [    0.002772] rcu: 	Max phase no-delay instances is 1000.
    [    0.003866] smp: Bringing up secondary CPUs ...
    [    0.004385] Detected VIPT I-cache on CPU1
    [    0.004462] cacheinfo: Unable to detect cache hierarchy for CPU 1
    [    0.004499] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
    [    0.004991] Detected VIPT I-cache on CPU2
    [    0.005048] cacheinfo: Unable to detect cache hierarchy for CPU 2
    [    0.005066] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
    [    0.005507] Detected VIPT I-cache on CPU3
    [    0.005566] cacheinfo: Unable to detect cache hierarchy for CPU 3
    [    0.005585] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
    [    0.005644] smp: Brought up 1 node, 4 CPUs
    [    0.005656] SMP: Total of 4 processors activated.
    [    0.005663] CPU features: detected: 32-bit EL0 Support
    [    0.005667] CPU features: detected: CRC32 instructions
    [    0.005734] CPU: All CPU(s) started at EL2
    [    0.005738] alternatives: applying system-wide alternatives
    [    0.007430] devtmpfs: initialized
    [    0.013638] Registered cp15_barrier emulation handler
    [    0.013651] Registered setend emulation handler
    [    0.013802] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.013822] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
    [    0.018764] pinctrl core: initialized pinctrl subsystem
    [    0.020105] NET: Registered PF_NETLINK/PF_ROUTE protocol family
    [    0.021339] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
    [    0.021527] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.021640] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.021673] audit: initializing netlink subsys (disabled)
    [    0.021792] audit: type=2000 audit(0.020:1): state=initialized audit_enabled=0 res=1
    [    0.022175] thermal_sys: Registered thermal governor 'fair_share'
    [    0.022181] thermal_sys: Registered thermal governor 'bang_bang'
    [    0.022186] thermal_sys: Registered thermal governor 'step_wise'
    [    0.022190] thermal_sys: Registered thermal governor 'user_space'
    [    0.022226] cpuidle: using governor menu
    [    0.022448] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.022531] ASID allocator initialised with 65536 entries
    [    0.022659] Serial: AMBA PL011 UART driver
    [    0.027993] platform 3001000.clock: Fixed dependency cycle(s) with /soc/rtc@7000000
    [    0.032464] platform 6000000.hdmi: Fixed dependency cycle(s) with /soc/tcon-top@6510000
    [    0.032923] platform 6510000.tcon-top: Fixed dependency cycle(s) with /soc/lcd-controller@6515000
    [    0.032942] platform 6510000.tcon-top: Fixed dependency cycle(s) with /soc/bus@1000000/mixer@100000
    [    0.033602] platform 7010000.clock: Fixed dependency cycle(s) with /soc/rtc@7000000
    [    0.035042] platform 6000000.hdmi: Fixed dependency cycle(s) with /connector
    [    0.036586] KASLR disabled due to lack of seed
    [    0.042807] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
    [    0.042814] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
    [    0.042821] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
    [    0.042826] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
    [    0.042832] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.042837] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
    [    0.042843] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
    [    0.042848] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
    [    0.043534] cryptd: max_cpu_qlen set to 1000
    [    0.108161] raid6: neonx8   gen()  1844 MB/s
    [    0.176239] raid6: neonx4   gen()  1891 MB/s
    [    0.244317] raid6: neonx2   gen()  1794 MB/s
    [    0.312400] raid6: neonx1   gen()  1557 MB/s
    [    0.380464] raid6: int64x8  gen()  1282 MB/s
    [    0.448524] raid6: int64x4  gen()  1430 MB/s
    [    0.516602] raid6: int64x2  gen()  1219 MB/s
    [    0.584683] raid6: int64x1  gen()   908 MB/s
    [    0.584690] raid6: using algorithm neonx4 gen() 1891 MB/s
    [    0.652734] raid6: .... xor() 1369 MB/s, rmw enabled
    [    0.652740] raid6: using neon recovery algorithm
    [    0.654033] iommu: Default domain type: Translated 
    [    0.654039] iommu: DMA domain TLB invalidation policy: strict mode 
    [    0.654268] SCSI subsystem initialized
    [    0.654435] usbcore: registered new interface driver usbfs
    [    0.654470] usbcore: registered new interface driver hub
    [    0.654498] usbcore: registered new device driver usb
    [    0.654781] pps_core: LinuxPPS API ver. 1 registered
    [    0.654788] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.654803] PTP clock support registered
    [    0.655090] ARM FF-A: FFA_VERSION returned not supported
    [    0.655397] Advanced Linux Sound Architecture Driver Initialized.
    [    0.656007] NetLabel: Initializing
    [    0.656012] NetLabel:  domain hash size = 128
    [    0.656017] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
    [    0.656079] NetLabel:  unlabeled traffic allowed by default
    [    0.656084] mctp: management component transport protocol core
    [    0.656089] NET: Registered PF_MCTP protocol family
    [    0.656492] clocksource: Switched to clocksource arch_sys_counter
    [    0.656688] VFS: Disk quotas dquot_6.6.0
    [    0.656730] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [    0.657268] AppArmor: AppArmor Filesystem Enabled
    [    0.663556] NET: Registered PF_INET protocol family
    [    0.663688] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
    [    0.664806] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)
    [    0.664830] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
    [    0.664845] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.664917] TCP bind hash table entries: 8192 (order: 6, 262144 bytes, linear)
    [    0.665220] TCP: Hash tables configured (established 8192 bind 8192)
    [    0.665311] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
    [    0.665343] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
    [    0.665493] NET: Registered PF_UNIX/PF_LOCAL protocol family
    [    0.665982] Trying to unpack rootfs image as initramfs...
    [    0.674063] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
    [    0.675772] Initialise system trusted keyrings
    [    0.675836] Key type blacklist registered
    [    0.675986] workingset: timestamp_bits=44 max_order=18 bucket_order=0
    [    0.681123] zbud: loaded
    [    0.682564] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.684647] integrity: Platform Keyring initialized
    [    0.727244] xor: measuring software checksum speed
    [    0.731957]    8regs           :  2100 MB/sec
    [    0.736524]    32regs          :  2169 MB/sec
    [    0.741368]    arm64_neon      :  2037 MB/sec
    [    0.741375] xor: using function: 32regs (2169 MB/sec)
    [    0.741388] async_tx: api initialized (async)
    [    0.741399] Key type asymmetric registered
    [    0.741405] Asymmetric key parser 'x509' registered
    [    1.564781] Freeing initrd memory: 18992K
    [    1.579782] alg: self-tests for CTR-KDF (hmac(sha256)) passed
    [    1.579919] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
    [    1.580036] io scheduler mq-deadline registered
    [    1.580043] io scheduler kyber registered
    [    1.580242] io scheduler bfq registered
    [    1.593146] Serial: 8250/16550 driver, 6 ports, IRQ sharing disabled
    [    1.595430] misc dump reg init
    [    1.598668] cacheinfo: Unable to detect cache hierarchy for CPU 0
    [    1.602401] loop: module loaded
    [    1.605453] usbcore: registered new interface driver usb-storage
    [    1.605871] mousedev: PS/2 mouse device common for all mice
    [    1.606949] sun6i-rtc 7000000.rtc: registered as rtc0
    [    1.606973] sun6i-rtc 7000000.rtc: setting system clock to 2024-03-09T08:36:27 UTC (1709973387)
    [    1.607071] sun6i-rtc 7000000.rtc: RTC enabled
    [    1.607280] i2c_dev: i2c /dev entries driver
    [    1.607525] mv64xxx_i2c 7081400.i2c: can't get pinctrl, bus recovery not supported
    [    1.608776] sunxi-wdt 30090a0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
    [    1.610085] sdhci: Secure Digital Host Controller Interface driver
    [    1.610091] sdhci: Copyright(c) Pierre Ossman
    [    1.610114] Synopsys Designware Multimedia Card Interface Driver
    [    1.610808] sdhci-pltfm: SDHCI platform and OF driver helper
    [    1.611184] ledtrig-cpu: registered to indicate activity on CPUs
    [    1.611450] SMCCC: SOC_ID: ID = jep106:091e:1823 Revision = 0x00000002
    [    1.611910] hid: raw HID events driver (C) Jiri Kosina
    [    1.611985] usbcore: registered new interface driver usbhid
    [    1.611990] usbhid: USB HID core driver
    [    1.657692] NET: Registered PF_INET6 protocol family
    [    1.672121] Segment Routing with IPv6
    [    1.672200] In-situ OAM (IOAM) with IPv6
    [    1.672304] NET: Registered PF_PACKET protocol family
    [    1.672443] 8021q: 802.1Q VLAN Support v1.8
    [    1.672604] 9pnet: Installing 9P2000 support
    [    1.672684] Key type dns_resolver registered
    [    1.673205] registered taskstats version 1
    [    1.673231] Loading compiled-in X.509 certificates
    [    1.676641] Loaded X.509 cert 'Build time autogenerated kernel key: 372ea576ae15499f7bfe0e1fa5c3372d1f067f76'
    [    1.678773] zswap: loaded using pool zstd/z3fold
    [    1.679120] Key type .fscrypt registered
    [    1.679126] Key type fscrypt-provisioning registered
    [    1.680117] Btrfs loaded, crc32c=crc32c-generic, zoned=yes, fsverity=no
    [    1.680322] Key type encrypted registered
    [    1.680335] AppArmor: AppArmor sha1 policy hashing enabled
    [    1.680358] ima: No TPM chip found, activating TPM-bypass!
    [    1.680379] ima: Allocated hash algorithm: sha1
    [    1.680408] ima: No architecture policies found
    [    1.680469] evm: Initialising EVM extended attributes:
    [    1.680487] evm: security.selinux
    [    1.680493] evm: security.SMACK64
    [    1.680497] evm: security.SMACK64EXEC
    [    1.680501] evm: security.SMACK64TRANSMUTE
    [    1.680505] evm: security.SMACK64MMAP
    [    1.680509] evm: security.apparmor
    [    1.680513] evm: security.ima
    [    1.680518] evm: security.capability
    [    1.680522] evm: HMAC attrs: 0x1
    [    1.703684] sun50i-h616-pinctrl 300b000.pinctrl: initialized sunXi PIO driver
    [    1.704227] sun50i-h616-r-pinctrl 7022000.pinctrl: initialized sunXi PIO driver
    [    1.704771] sun50i-h616-pinctrl 300b000.pinctrl: supply vcc-ph not found, using dummy regulator
    [    1.705241] printk: console [ttyS0] disabled
    [    1.705315] 5000000.serial: ttyS0 at MMIO 0x5000000 (irq = 285, base_baud = 1500000) is a 16550A
    [    1.705569] printk: console [ttyS0] enabled
    [    1.706327] debugfs: Directory '1100000.mixer' with parent 'regmap' already present!
    [    1.706358] debugfs: Directory '1100000.mixer' with parent 'regmap' already present!
    [    1.722276] sun4i-drm display-engine: bound 1100000.mixer (ops 0xffff800008e95e48)
    [    1.722451] sun4i-drm display-engine: bound 6510000.tcon-top (ops 0xffff800008e9a620)
    [    1.722711] sun4i-drm display-engine: bound 6515000.lcd-controller (ops 0xffff800008e92e20)
    [    1.722770] sun8i-dw-hdmi 6000000.hdmi: supply hvcc not found, using dummy regulator
    [    1.722982] sun8i-dw-hdmi 6000000.hdmi: Detected HDMI TX controller v2.12a with HDCP (DWC HDMI 2.0 TX PHY)
    [    1.723394] sun8i-dw-hdmi 6000000.hdmi: registered DesignWare HDMI I2C bus driver
    [    1.723787] sun4i-drm display-engine: bound 6000000.hdmi (ops 0xffff800008e94f08)
    [    1.724191] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
    [    1.724253] sun4i-drm display-engine: [drm] Cannot find any crtc or sizes
    [    1.724801] sun50i-h616-pinctrl 300b000.pinctrl: supply vcc-pc not found, using dummy regulator
    [    1.725211] sun4i-drm display-engine: [drm] Cannot find any crtc or sizes
    [    1.726296] spi-nor spi0.0: ZB25VQ128A (16384 Kbytes)
    [    1.735616] ehci-platform 5200000.usb: EHCI Host Controller
    [    1.735656] ehci-platform 5200000.usb: new USB bus registered, assigned bus number 1
    [    1.735787] ehci-platform 5200000.usb: irq 289, io mem 0x05200000
    [    1.736062] ehci-platform 5311000.usb: EHCI Host Controller
    [    1.736080] ehci-platform 5311000.usb: new USB bus registered, assigned bus number 2
    [    1.736157] ehci-platform 5310000.usb: EHCI Host Controller
    [    1.736173] ehci-platform 5311000.usb: irq 290, io mem 0x05311000
    [    1.736175] ehci-platform 5310000.usb: new USB bus registered, assigned bus number 3
    [    1.736257] ehci-platform 5310000.usb: irq 291, io mem 0x05310000
    [    1.737005] ohci-platform 5200400.usb: Generic Platform OHCI controller
    [    1.737024] ohci-platform 5200400.usb: new USB bus registered, assigned bus number 4
    [    1.737061] ohci-platform 5310400.usb: Generic Platform OHCI controller
    [    1.737079] ohci-platform 5310400.usb: new USB bus registered, assigned bus number 5
    [    1.737096] ohci-platform 5200400.usb: irq 292, io mem 0x05200400
    [    1.737097] usb_phy_generic usb_phy_generic.4.auto: supply vcc not found, using dummy regulator
    [    1.737146] ohci-platform 5310400.usb: irq 293, io mem 0x05310400
    [    1.737197] usb_phy_generic usb_phy_generic.4.auto: dummy supplies not allowed for exclusive requests
    [    1.737244] ohci-platform 5311400.usb: Generic Platform OHCI controller
    [    1.737261] ohci-platform 5311400.usb: new USB bus registered, assigned bus number 6
    [    1.737331] ohci-platform 5311400.usb: irq 294, io mem 0x05311400
    [    1.738356] sun50i-h616-pinctrl 300b000.pinctrl: supply vcc-pi not found, using dummy regulator
    [    1.739038] sun50i-h616-pinctrl 300b000.pinctrl: unsupported function gpio-in on pin PI13
    [    1.739049] semi_touch 2-002e: there is not valid maps for state pmx_ts_active
    [    1.739059] sun50i-h616-pinctrl 300b000.pinctrl: missing function property in node ts_reset-active
    [    1.739450] sun50i-h616-pinctrl 300b000.pinctrl: supply vcc-pa not found, using dummy regulator
    [    1.740222] it's ac300, skip the ac200 init!
    [    1.740236] ac200: probe of 3-0010 failed with error -22
    [    1.740557] axp20x-i2c 0-0036: AXP20x variant AXP313a found
    [    1.740787] axp20x-i2c 0-0036: mask_invert=true is deprecated; please switch to unmask_base
    [    1.744712] input: axp20x-pek as /devices/platform/soc/7081400.i2c/i2c-0/0-0036/axp221-pek/input/input0
    [    1.744995] axp20x-regulator axp20x-regulator: DCDC frequency on AXP313a is fixed to 3 MHz.
    [    1.745005] axp20x-regulator axp20x-regulator: Error setting dcdc frequency: -22
    [    1.748502] ehci-platform 5200000.usb: USB 2.0 started, EHCI 1.00
    [    1.748713] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01
    [    1.748726] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    1.748736] usb usb1: Product: EHCI Host Controller
    [    1.748743] usb usb1: Manufacturer: Linux 6.1.31-sun50iw9 ehci_hcd
    [    1.748751] usb usb1: SerialNumber: 5200000.usb
    [    1.749147] hub 1-0:1.0: USB hub found
    [    1.749181] hub 1-0:1.0: 1 port detected
    [    1.750021] axp313a-dcdc3: Bringing 1200000uV into 1100000-1100000uV
    [    1.757110] axp20x-i2c 0-0036: AXP20X driver loaded
    [    1.758996] sun50i-cpufreq-nvmem: will use speed0 CPU OPPs
    [    1.763582] cpufreq: cpufreq_online: CPU0: Running at unlisted initial frequency: 1032000 KHz, changing to: 1200000 KHz
    [    1.763748] OF: /thermal-zones/gpu-thermal/cooling-maps/map0: could not get #cooling-cells for /soc/gpu@1800000
    [    1.763771] thermal_sys: Add a cooling_device property with at least one device
    [    1.763778] thermal thermal_zone0: binding zone gpu-thermal with cdev cpufreq-cpu0 failed:-2
    [    1.764257] sun50i-h616-pinctrl 300b000.pinctrl: supply vcc-pg not found, using dummy regulator
    [    1.765251] sun50i-h616-pinctrl 300b000.pinctrl: supply vcc-pf not found, using dummy regulator
    [    1.766102] sunxi-mmc 4021000.mmc: allocated mmc-pwrseq
    [    1.766262] sunxi-mmc 4020000.mmc: Got CD GPIO
    [    1.766489] gmac-power0: NULL
    [    1.766496] gmac-power1: NULL
    [    1.766501] gmac-power2: NULL
    [    1.768513] ehci-platform 5311000.usb: USB 2.0 started, EHCI 1.00
    [    1.768732] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01
    [    1.768743] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    1.768752] usb usb2: Product: EHCI Host Controller
    [    1.768759] usb usb2: Manufacturer: Linux 6.1.31-sun50iw9 ehci_hcd
    [    1.768766] usb usb2: SerialNumber: 5311000.usb
    [    1.769143] hub 2-0:1.0: USB hub found
    [    1.769173] hub 2-0:1.0: 1 port detected
    [    1.784512] ehci-platform 5310000.usb: USB 2.0 started, EHCI 1.00
    [    1.784886] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01
    [    1.784908] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    1.784924] usb usb3: Product: EHCI Host Controller
    [    1.784937] usb usb3: Manufacturer: Linux 6.1.31-sun50iw9 ehci_hcd
    [    1.784951] usb usb3: SerialNumber: 5310000.usb
    [    1.785511] hub 3-0:1.0: USB hub found
    [    1.785570] hub 3-0:1.0: 1 port detected
    [    1.792757] sunxi-mmc 4020000.mmc: initialized, max. request size: 16384 KB, uses new timings mode
    [    1.800821] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.01
    [    1.800842] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    1.800858] usb usb4: Product: Generic Platform OHCI controller
    [    1.800872] usb usb4: Manufacturer: Linux 6.1.31-sun50iw9 ohci_hcd
    [    1.800883] usb usb4: SerialNumber: 5200400.usb
    [    1.801314] hub 4-0:1.0: USB hub found
    [    1.801361] hub 4-0:1.0: 1 port detected
    [    1.801918] usb usb5: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.01
    [    1.801935] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    1.801954] usb usb5: Product: Generic Platform OHCI controller
    [    1.801965] usb usb5: Manufacturer: Linux 6.1.31-sun50iw9 ohci_hcd
    [    1.801976] usb usb5: SerialNumber: 5310400.usb
    [    1.802403] hub 5-0:1.0: USB hub found
    [    1.802450] hub 5-0:1.0: 1 port detected
    [    1.802998] usb usb6: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.01
    [    1.803015] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    1.803027] usb usb6: Product: Generic Platform OHCI controller
    [    1.803037] usb usb6: Manufacturer: Linux 6.1.31-sun50iw9 ohci_hcd
    [    1.803047] usb usb6: SerialNumber: 5311400.usb
    [    1.803459] hub 6-0:1.0: USB hub found
    [    1.803503] hub 6-0:1.0: 1 port detected
    [    1.831652] mmc0: host does not support reading read-only switch, assuming write-enable
    [    1.833585] mmc0: new high speed SDHC card at address 0001
    [    1.834750] mmcblk0: mmc0:0001 SD32G 29.1 GiB 
    [    1.837204]  mmcblk0: p1
    [    1.997084] sunxi-mmc 4021000.mmc: initialized, max. request size: 16384 KB, uses new timings mode
    [    2.014775] mmc1: new high speed SDIO card at address 8800
    [    2.599321] input: 5070800.lradc as /devices/platform/soc/5070800.lradc/input/input1
    [    2.606183] ALSA device list:
    [    2.606200]   #0: audiocodec
    [    2.606213]   #1: ahubdam
    [    2.606225]   #2: ahubhdmi
    [    2.608204] Freeing unused kernel memory: 2752K
    [    2.608381] Run /init as init process
    [    2.608393]   with arguments:
    [    2.608405]     /init
    [    2.608417]   with environment:
    [    2.608427]     HOME=/
    [    2.608438]     TERM=linux
    [    2.608449]     splash=verbose
    [    2.608460]     ubootpart=bb229d64-01
    [    2.608510]     cgroup_enable=memory
    [    4.710319] EXT4-fs (mmcblk0p1): mounted filesystem with writeback data mode. Quota mode: none.
    [    5.575801] systemd[1]: systemd 249.11-0ubuntu3.9 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY -P11KIT -QRENCODE +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified)
    [    5.576504] systemd[1]: Detected architecture arm64.
    [    5.579713] systemd[1]: Hostname set to <orangepizero2w>.
    [    6.470717] systemd[1]: Queued start job for default target Graphical Interface.
    [    7.820486] random: crng init done
    [    7.890412] systemd[1]: Created slice Slice /system/modprobe.
    [    7.894259] systemd[1]: Created slice Slice /system/serial-getty.
    [    7.895472] systemd[1]: Created slice User and Session Slice.
    [    7.895835] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [    7.896711] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
    [    7.897155] systemd[1]: Reached target Slice Units.
    [    7.897298] systemd[1]: Reached target Swaps.
    [    7.897411] systemd[1]: Reached target System Time Set.
    [    7.897684] systemd[1]: Reached target Local Verity Protected Volumes.
    [    7.911091] systemd[1]: Listening on RPCbind Server Activation Socket.
    [    7.911894] systemd[1]: Listening on Syslog Socket.
    [    7.912441] systemd[1]: Listening on fsck to fsckd communication Socket.
    [    7.912937] systemd[1]: Listening on initctl Compatibility Named Pipe.
    [    7.913857] systemd[1]: Listening on Journal Audit Socket.
    [    7.914311] systemd[1]: Listening on Journal Socket (/dev/log).
    [    7.914900] systemd[1]: Listening on Journal Socket.
    [    7.918424] systemd[1]: Listening on udev Control Socket.
    [    7.918890] systemd[1]: Listening on udev Kernel Socket.
    [    7.923403] systemd[1]: Mounting Huge Pages File System...
    [    7.927824] systemd[1]: Mounting POSIX Message Queue File System...
    [    7.932030] systemd[1]: Mounting Kernel Debug File System...
    [    7.933061] systemd[1]: Condition check resulted in Kernel Trace File System being skipped.
    [    7.933431] systemd[1]: Condition check resulted in Kernel Module supporting RPCSEC_GSS being skipped.
    [    7.939284] systemd[1]: Starting Restore / save the current clock...
    [    7.945091] systemd[1]: Starting Set the console keyboard layout...
    [    7.950210] systemd[1]: Starting Create List of Static Device Nodes...
    [    7.955101] systemd[1]: Starting Load Kernel Module chromeos_pstore...
    [    7.959885] systemd[1]: Starting Load Kernel Module configfs...
    [    7.964600] systemd[1]: Starting Load Kernel Module drm...
    [    7.969582] systemd[1]: Starting Load Kernel Module efi_pstore...
    [    7.977272] systemd[1]: Starting Load Kernel Module fuse...
    [    7.981775] systemd[1]: Starting Load Kernel Module pstore_blk...
    [    7.987040] systemd[1]: Starting Load Kernel Module pstore_zone...
    [    7.991428] systemd[1]: Starting Load Kernel Module ramoops...
    [    7.996613] systemd[1]: Started Nameserver information manager.
    [    7.997465] systemd[1]: Reached target Preparation for Network.
    [    7.998131] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
    [    8.037824] fuse: init (API version 7.37)
    [    8.045192] systemd[1]: Starting Load Kernel Modules...
    [    8.050194] systemd[1]: Starting Remount Root and Kernel File Systems...
    [    8.055582] systemd[1]: Starting Coldplug All udev Devices...
    [    8.064702] systemd[1]: Mounted Huge Pages File System.
    [    8.065992] systemd[1]: Mounted POSIX Message Queue File System.
    [    8.067498] systemd[1]: Mounted Kernel Debug File System.
    [    8.069894] systemd[1]: Finished Restore / save the current clock.
    [    8.072230] systemd[1]: Finished Create List of Static Device Nodes.
    [    8.074119] systemd[1]: modprobe@chromeos_pstore.service: Deactivated successfully.
    [    8.075021] systemd[1]: Finished Load Kernel Module chromeos_pstore.
    [    8.076405] systemd[1]: modprobe@configfs.service: Deactivated successfully.
    [    8.076558] EXT4-fs (mmcblk0p1): re-mounted. Quota mode: none.
    [    8.077323] systemd[1]: Finished Load Kernel Module configfs.
    [    8.081037] systemd[1]: modprobe@drm.service: Deactivated successfully.
    [    8.081827] systemd[1]: Finished Load Kernel Module drm.
    [    8.083020] systemd[1]: modprobe@efi_pstore.service: Deactivated successfully.
    [    8.083801] systemd[1]: Finished Load Kernel Module efi_pstore.
    [    8.085088] systemd[1]: modprobe@fuse.service: Deactivated successfully.
    [    8.085903] systemd[1]: Finished Load Kernel Module fuse.
    [    8.086970] systemd[1]: modprobe@pstore_blk.service: Deactivated successfully.
    [    8.087677] systemd[1]: Finished Load Kernel Module pstore_blk.
    [    8.088816] systemd[1]: modprobe@pstore_zone.service: Deactivated successfully.
    [    8.089533] systemd[1]: Finished Load Kernel Module pstore_zone.
    [    8.090490] systemd[1]: modprobe@ramoops.service: Deactivated successfully.
    [    8.091173] systemd[1]: Finished Load Kernel Module ramoops.
    [    8.093463] systemd[1]: Finished Remount Root and Kernel File Systems.
    [    8.116049] systemd[1]: Mounting FUSE Control File System...
    [    8.119927] systemd[1]: Mounting Kernel Configuration File System...
    [    8.120614] systemd[1]: Condition check resulted in Platform Persistent Storage Archival being skipped.
    [    8.125051] systemd[1]: Starting Load/Save Random Seed...
    [    8.129669] systemd[1]: Starting Create System Users...
    [    8.136630] systemd[1]: Mounted FUSE Control File System.
    [    8.137169] systemd[1]: Mounted Kernel Configuration File System.
    [    8.148385] WCN: marlin_init entry!
    [    8.148971] WCN: wcn config bt wake host
    [    8.149254] WCN_ERR: dts node for bt_wake not found
    [    8.149258] WCN: marlin2 parse_dt some para not config
    [    8.149270] sdiohal:sdiohal_parse_dt adma_tx:1, adma_rx:1, pwrseq:0, irq type:data, gpio_num:0, blksize:840
    [    8.156912] sdiohal:sdiohal_init ok
    [    8.157444] WCN: marlin_probe ok!
    [    8.191435] systemd[1]: Finished Load/Save Random Seed.
    [    8.192249] systemd[1]: Condition check resulted in First Boot Complete being skipped.
    [    8.205653] systemd[1]: Finished Create System Users.
    [    8.248101] cfg80211: Loading compiled-in X.509 certificates for regulatory database
    [    8.249760] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
    [    8.253118] systemd[1]: Starting Create Static Device Nodes in /dev...
    [    8.255010] systemd[1]: Finished Set the console keyboard layout.
    [    8.256758] [ADDR_MGT] addr_mgt_probe: module version: v1.0.9
    [    8.256863] [ADDR_MGT] addr_mgt_probe: success.
    [    8.297294] WCN: start_marlin [MARLIN_WIFI]
    [    8.297321] WCN: marlin power state:0, subsys: [MARLIN_WIFI] power 1
    [    8.297326] WCN: the first power on start
    [    8.314121] systemd[1]: Finished Create Static Device Nodes in /dev.
    [    8.314788] systemd[1]: Reached target Preparation for Local File Systems.
    [    8.356934] systemd[1]: Mounting /tmp...
    [    8.363142] systemd[1]: Starting Rule-based Manager for Device Events and Files...
    [    8.365931] systemd[1]: Mounted /tmp.
    [    8.366542] systemd[1]: Reached target Local File Systems.
    [    8.370704] systemd[1]: Starting Set console font and keymap...
    [    8.376852] systemd[1]: Starting Orange Pi ZRAM config...
    [    8.385748] systemd[1]: Starting Tell Plymouth To Write Out Runtime Data...
    [    8.386111] systemd[1]: Condition check resulted in RPC security service for NFS server being skipped.
    [    8.386289] systemd[1]: Condition check resulted in Mark the need to relabel after reboot being skipped.
    [    8.397285] systemd[1]: Starting Set Up Additional Binary Formats...
    [    8.397692] systemd[1]: Condition check resulted in Store a System Token in an EFI Variable being skipped.
    [    8.397908] systemd[1]: Condition check resulted in Commit a transient machine-id on disk being skipped.
    [    8.400138] systemd[1]: Finished Set console font and keymap.
    [    8.404638] WCN: marlin chip en dummy pull up -- need manually set GPIO 
    [    8.417927] systemd[1]: proc-sys-fs-binfmt_misc.automount: Got automount request for /proc/sys/fs/binfmt_misc, triggered by 361 (systemd-binfmt)
    [    8.422109] systemd[1]: Mounting Arbitrary Executable File Formats File System...
    [    8.423765] systemd[1]: Received SIGRTMIN+20 from PID 241 (plymouthd).
    [    8.432546] sdiohal:sdiohal_scan_card
    [    8.432792] sdiohal:sdiohal_probe: func->class=0, vendor=0x0000, device=0x0000, func_num=0x0001, clock=50000000
    [    8.432975] systemd[1]: Finished Tell Plymouth To Write Out Runtime Data.
    [    8.433401] WCN: marlin_get_wcn_chipid: chipid: 0x2355b001
    [    8.433409] WCN: marlin_scan_finish!
    [    8.433413] sdiohal:probe ok
    [    8.433513] sdiohal:scan end!
    [    8.433519] WCN: then marlin start to download
    [    8.433543] WCN: marlin_request_firmware from /lib/firmware/wcnmodem.bin start!
    [    8.443670] systemd[1]: Finished Coldplug All udev Devices.
    [    8.521249] systemd[1]: Starting Helper to synchronize boot up for ifupdown...
    [    8.525700] systemd[1]: Mounted Arbitrary Executable File Formats File System.
    [    8.532187] systemd[1]: Finished Set Up Additional Binary Formats.
    [    8.550796] systemd[1]: Finished Helper to synchronize boot up for ifupdown.
    [    8.657418] systemd[1]: Started Rule-based Manager for Device Events and Files.
    [    8.709170] systemd[1]: Starting Show Plymouth Boot Screen...
    [    8.840888] systemd[1]: Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
    [    8.844969] systemd[1]: Started Show Plymouth Boot Screen.
    [    8.845965] systemd[1]: Condition check resulted in Dispatch Password Requests to Console Directory Watch when bootsplash is active being skipped.
    [    8.846527] systemd[1]: Started Forward Password Requests to Plymouth Directory Watch.
    [    8.846943] systemd[1]: Reached target Local Encrypted Volumes.
    [    8.849316] mc: Linux media interface: v0.10
    [    8.881988] systemd[1]: Found device /dev/ttyS0.
    [    8.885570] videodev: Linux video capture interface: v2.00
    [    8.886102] zram: Added device: zram0
    [    8.886394] zram: Added device: zram1
    [    8.886654] zram: Added device: zram2
    [    8.978594] systemd[1]: Reached target Hardware activated USB gadget.
    [    9.103277] zram0: detected capacity change from 0 to 1005288
    [    9.117299] sunxi_cedrus: module is from the staging directory, the quality is unknown, you have been warned.
    [    9.121050] cedrus 1c0e000.video-codec: Device registered as /dev/video0
    [    9.130440] Registered IR keymap rc-empty
    [    9.130551] rc rc0: sunxi-ir as /devices/platform/soc/7040000.ir/rc/rc0
    [    9.130699] rc rc0: lirc_dev: driver sunxi-ir registered at minor = 0, raw IR receiver, no transmitter
    [    9.130806] input: sunxi-ir as /devices/platform/soc/7040000.ir/rc/rc0/input2
    [    9.131190] sunxi-ir 7040000.ir: initialized sunXi IR driver
    [    9.141450] Adding 502640k swap on /dev/zram0.  Priority:5 extents:1 across:502640k SSFS
    [    9.186092] systemd[1]: Condition check resulted in Dispatch Password Requests to Console Directory Watch when bootsplash is active being skipped.
    [    9.186520] systemd[1]: Condition check resulted in Kernel Trace File System being skipped.
    [    9.229205] systemd[1]: Starting Load Kernel Module chromeos_pstore...
    [    9.237534] systemd[1]: Starting Load Kernel Module efi_pstore...
    [    9.244924] systemd[1]: Starting Load Kernel Module pstore_blk...
    [    9.251494] systemd[1]: Starting Load Kernel Module pstore_zone...
    [    9.259233] systemd[1]: Starting Load Kernel Module ramoops...
    [    9.260194] systemd[1]: Condition check resulted in Store a System Token in an EFI Variable being skipped.
    [    9.260460] systemd[1]: Condition check resulted in Commit a transient machine-id on disk being skipped.
    [    9.262391] systemd[1]: modprobe@chromeos_pstore.service: Deactivated successfully.
    [    9.263360] systemd[1]: Finished Load Kernel Module chromeos_pstore.
    [    9.265673] systemd[1]: modprobe@efi_pstore.service: Deactivated successfully.
    [    9.268273] systemd[1]: Finished Load Kernel Module efi_pstore.
    [    9.270313] systemd[1]: modprobe@pstore_blk.service: Deactivated successfully.
    [    9.271514] systemd[1]: Finished Load Kernel Module pstore_blk.
    [    9.273197] systemd[1]: modprobe@pstore_zone.service: Deactivated successfully.
    [    9.274225] systemd[1]: Finished Load Kernel Module pstore_zone.
    [    9.286251] systemd[1]: modprobe@ramoops.service: Deactivated successfully.
    [    9.287917] systemd[1]: Finished Load Kernel Module ramoops.
    [    9.288714] systemd[1]: Condition check resulted in Platform Persistent Storage Archival being skipped.
    [    9.378835] zram1: detected capacity change from 0 to 102400
    [    9.417844] WCN: combin_img 0 marlin_firmware_write finish and successful
    [    9.418053] WCN: marlin_start_run read reset reg val:0x1
    [    9.418064] WCN: after do marlin_start_run reset reg val:0x0
    [    9.418273] WCN: s_marlin_bootup_time=9418273172
    [    9.424766] WCN: clock mode: TSX
    [    9.424992] WCN: marlin_write_cali_data sync init_state:0x91000000
    [    9.440727] systemd[1]: Finished Orange Pi ZRAM config.
    [    9.452750] WCN: marlin_write_cali_data sync init_state:0x91000000
    [    9.480906] WCN: marlin_write_cali_data sync init_state:0xf0f0f0f1
    [    9.480947] WCN: sdio_config bt_wake_host trigger:[high]
    [    9.480957] WCN: sdio_config irq:[inband]
    [    9.480966] WCN: sdio_config wake_host_level_duration_time:[20ms]
    [    9.480978] WCN: sdio_config wake_host_data_separation:[bt/wifi reuse]
    [    9.480987] WCN: marlin_send_sdio_config_to_cp sdio_config:0x80f01 (enable config)
    [    9.481489] systemd[1]: Starting Orange Pi memory supported logging...
    [    9.481643] WCN: marlin_write_cali_data finish
    [    9.482000] WCN: check_cp_ready sync val:0xf0f0f0f2, prj_type val:0x0
    [    9.508758] WCN: check_cp_ready sync val:0xf0f0f0f2, prj_type val:0x0
    [    9.536763] WCN: check_cp_ready sync val:0xf0f0f0f2, prj_type val:0x0
    [    9.551583] EXT4-fs (zram1): mounted filesystem without journal. Quota mode: none.
    [    9.564775] WCN: check_cp_ready sync val:0xf0f0f0f2, prj_type val:0x0
    [    9.592820] WCN: check_cp_ready sync val:0xf0f0f0ff, prj_type val:0x0
    [    9.592854] sdiohal:sdiohal_runtime_get entry
    [    9.593058] WCN: get_cp2_version entry!
    [    9.594558] WCN: WCND at cmd read:WCN_VER:Platform Version:MARLIN3_19B_W21.05.3~Project Version:sc2355_marlin3_lite_ott~12-15-2021 11:26:33~
    [    9.594582] WCN: switch_cp2_log - close entry!
    [    9.595877] WCN: WCND at cmd read:OK
    [    9.595929] WCN: then marlin download finished and run ok
    [    9.595939] WCN: start_loopcheck
    [    9.615015] WCN: get_board_ant_num [one_ant]
    [    9.615054] wifi ini path = /lib/firmware/wifi_2355b001_1ant.ini
    [    9.641131] sprdwl:sprdwl_get_fw_info length mismatch: len_count=83, r_len=89
    [    9.641176] sprdwl:sprdwl_get_fw_info, drv_version=1, fw_version=2, compat_ver=0
    [    9.641182] sprdwl:chip_model:0x2355, chip_ver:0x0
    [    9.641187] sprdwl:fw_ver:0, fw_std:0x7f, fw_capa:0x120f7f
    [    9.641192] sprdwl:mac_addr:c8:8a:d8:13:1b:1a
    [    9.641198] sprdwl:credit_capa:TX_WITH_CREDIT
    [    9.641202] sprdwl:ott support:0
    [    9.676407] unisoc_wifi unisoc_wifi wlan0: mixed HW and IP checksum settings.
    [    9.699049] systemd[1]: Starting Load/Save RF Kill Switch Status...
    [    9.700461] mtty_probe init device addr: 0x000000005b0ab84b
    [    9.700771] -->rfkill_bluetooth_init
    [    9.700913] bluetooth_set_power: start_block=1
    [    9.700927] WCN: marlin power state:4, subsys: [MARLIN_BLUETOOTH] power 0
    [    9.700936] WCN: can not power off, other module is on
    [    9.700944] bluetooth_set_power: end_block=1
    [    9.700962] <--rfkill_bluetooth_init
    [    9.706807] systemd[1]: Finished Load Kernel Modules.
    [    9.717041] systemd[1]: Starting Apply Kernel Variables...
    [    9.724699] bluetooth_set_power: start_block=0
    [    9.724746] WCN: start_marlin [MARLIN_BLUETOOTH]
    [    9.724759] WCN: marlin power state:4, subsys: [MARLIN_BLUETOOTH] power 1
    [    9.724767] WCN: marlin have open, GNSS is closed
    [    9.724772] bluetooth_set_power: end_block=0
    [    9.726469] systemd[1]: Started Load/Save RF Kill Switch Status.
    [    9.761169] systemd[1]: Finished Apply Kernel Variables.
    [    9.805183] systemd[1]: Starting Raise network interfaces...
    [   10.326180] systemd[1]: Finished Raise network interfaces.
    [   11.810461] systemd[1]: Finished Orange Pi memory supported logging.
    [   11.861464] systemd[1]: Starting Journal Service...
    [   11.997921] systemd[1]: Started Journal Service.
    [   12.076247] systemd-journald[636]: Received client request to flush runtime journal.
    [   12.196832] RPC: Registered named UNIX socket transport module.
    [   12.196857] RPC: Registered udp transport module.
    [   12.196860] RPC: Registered tcp transport module.
    [   12.196864] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [   13.306507] bluetooth_set_power: start_block=0
    [   13.306540] WCN: start_marlin [MARLIN_BLUETOOTH]
    [   13.306550] WCN: marlin power state:5, subsys: [MARLIN_BLUETOOTH] power 1
    [   13.306556] WCN: marlin have open, GNSS is closed
    [   13.306560] bluetooth_set_power: end_block=0
    [   13.345161] mtty_open device success!
    [   13.538448] Bluetooth: Core ver 2.22
    [   13.538601] NET: Registered PF_BLUETOOTH protocol family
    [   13.538606] Bluetooth: HCI device and connection manager initialized
    [   13.538627] Bluetooth: HCI socket layer initialized
    [   13.538636] Bluetooth: L2CAP socket layer initialized
    [   13.538651] Bluetooth: SCO socket layer initialized
    [   13.643561] Bluetooth: HCI UART driver ver 2.3
    [   13.643597] Bluetooth: HCI UART protocol H4 registered
    [   13.643602] Bluetooth: HCI UART protocol BCSP registered
    [   13.643706] Bluetooth: HCI UART protocol LL registered
    [   13.643712] Bluetooth: HCI UART protocol ATH3K registered
    [   13.643744] Bluetooth: HCI UART protocol Three-wire (H5) registered
    [   13.643973] Bluetooth: HCI UART protocol Intel registered
    [   13.644062] Bluetooth: HCI UART protocol Broadcom registered
    [   13.644089] Bluetooth: HCI UART protocol QCA registered
    [   13.644094] Bluetooth: HCI UART protocol AG6XX registered
    [   13.644122] Bluetooth: HCI UART protocol Marvell registered
    [   15.570087] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [   15.570113] Bluetooth: BNEP filters: protocol multicast
    [   15.570133] Bluetooth: BNEP socket layer initialized
    [   15.575620] Bluetooth: MGMT ver 1.22
    [   15.603691] NET: Registered PF_ALG protocol family
    [   16.861830] sunxi-gmac 5030000.ethernet eth0: eth0: Type(7) PHY ID 00441400 at 0 IRQ poll (5030000.ethernet-0:00)
    [   20.463009] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 6.1.31-sun50iw9 (root@goku-virtual-machine) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025, GNU ld (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 2.33.1.20191209) #1.0.0 SMP Sat Mar  9 22:06:25 CST 2024
    [    0.000000] Machine model: OrangePi Zero2 W
    [    0.000000] NUMA: No NUMA configuration found
    [    0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x000000007fffffff]
    [    0.000000] NUMA: NODE_DATA [mem 0x7fdc2040-0x7fdc3fff]
    [    0.000000] Zone ranges:
    [    0.000000]   DMA      [mem 0x0000000040000000-0x000000007fffffff]
    [    0.000000]   DMA32    empty
    [    0.000000]   Normal   empty
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x0000000040000000-0x000000004007ffff]
    [    0.000000]   node   0: [mem 0x0000000040080000-0x000000007fffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000007fffffff]
    [    0.000000] cma: Reserved 128 MiB at 0x0000000076c00000
    [    0.000000] psci: probing for conduit method from DT.
    [    0.000000] psci: PSCIv1.1 detected in firmware.
    [    0.000000] psci: Using standard PSCI v0.2 function IDs
    [    0.000000] psci: MIGRATE_INFO_TYPE not supported.
    [    0.000000] psci: SMC Calling Convention v1.4
    [    0.000000] percpu: Embedded 19 pages/cpu s37992 r8192 d31640 u77824
    [    0.000000] pcpu-alloc: s37992 r8192 d31640 u77824 alloc=19*4096
    [    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
    [    0.000000] Detected VIPT I-cache on CPU0
    [    0.000000] CPU features: detected: ARM erratum 845719
    [    0.000000] alternatives: applying boot alternatives
    [    0.000000] Fallback order for Node 0: 0 
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 258048
    [    0.000000] Policy zone: DMA
    [    0.000000] Kernel command line: root=UUID=551c3a76-a854-4201-b126-1cef2a294964 rootwait rootfstype=ext4 splash=verbose console=ttyS0,115200 console=tty1 consoleblank=0 loglevel=1 ubootpart=bb229d64-01 usb-storage.quirks=0x2537:0x1066:u,0x2537:0x1068:u   cgroup_enable=memory swapaccount=1
    [    0.000000] The swapaccount= commandline option is deprecated. Please report your usecase to linux-mm@kvack.org if you depend on this functionality.
    [    0.000000] Unknown kernel command line parameters "splash=verbose ubootpart=bb229d64-01 cgroup_enable=memory", will be passed to user space.
    [    0.000000] printk: log_buf_len individual max cpu contribution: 131072 bytes
    [    0.000000] printk: log_buf_len total cpu_extra contributions: 393216 bytes
    [    0.000000] printk: log_buf_len min size: 131072 bytes
    [    0.000000] printk: log_buf_len: 524288 bytes
    [    0.000000] printk: early log buf free: 128504(98%)
    [    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
    [    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
    [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
    [    0.000000] Memory: 852600K/1048576K available (13888K kernel code, 1462K rwdata, 3760K rodata, 2752K init, 499K bss, 64904K reserved, 131072K cma-reserved)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
    [    0.000000] rcu: Hierarchical RCU implementation.
    [    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
    [    0.000000] 	Tracing variant of Tasks RCU enabled.
    [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
    [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
    [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
    [    0.000000] Root IRQ handler: gic_handle_irq
    [    0.000000] GIC: Using split EOI/Deactivate mode
    [    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
    [    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
    [    0.000001] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
    [    0.000574] Console: colour dummy device 80x25
    [    0.000622] printk: console [tty1] enabled
    [    0.000706] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
    [    0.000719] pid_max: default: 32768 minimum: 301
    [    0.000794] LSM: Security Framework initializing
    [    0.000825] Yama: becoming mindful.
    [    0.000921] AppArmor: AppArmor initialized
    [    0.001005] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
    [    0.001019] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
    [    0.002033] cacheinfo: Unable to detect cache hierarchy for CPU 0
    [    0.002595] cblist_init_generic: Setting adjustable number of callback queues.
    [    0.002605] cblist_init_generic: Setting shift to 2 and lim to 1.
    [    0.002762] rcu: Hierarchical SRCU implementation.
    [    0.002768] rcu: 	Max phase no-delay instances is 1000.
    [    0.003865] smp: Bringing up secondary CPUs ...
    [    0.004386] Detected VIPT I-cache on CPU1
    [    0.004461] cacheinfo: Unable to detect cache hierarchy for CPU 1
    [    0.004496] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
    [    0.004988] Detected VIPT I-cache on CPU2
    [    0.005040] cacheinfo: Unable to detect cache hierarchy for CPU 2
    [    0.005058] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
    [    0.005498] Detected VIPT I-cache on CPU3
    [    0.005554] cacheinfo: Unable to detect cache hierarchy for CPU 3
    [    0.005572] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
    [    0.005631] smp: Brought up 1 node, 4 CPUs
    [    0.005643] SMP: Total of 4 processors activated.
    [    0.005649] CPU features: detected: 32-bit EL0 Support
    [    0.005654] CPU features: detected: CRC32 instructions
    [    0.005719] CPU: All CPU(s) started at EL2
    [    0.005724] alternatives: applying system-wide alternatives
    [    0.007384] devtmpfs: initialized
    [    0.013548] Registered cp15_barrier emulation handler
    [    0.013560] Registered setend emulation handler
    [    0.013724] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.013745] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
    [    0.018715] pinctrl core: initialized pinctrl subsystem
    [    0.020002] NET: Registered PF_NETLINK/PF_ROUTE protocol family
    [    0.021245] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
    [    0.021433] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.021550] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.021603] audit: initializing netlink subsys (disabled)
    [    0.021726] audit: type=2000 audit(0.020:1): state=initialized audit_enabled=0 res=1
    [    0.022085] thermal_sys: Registered thermal governor 'fair_share'
    [    0.022091] thermal_sys: Registered thermal governor 'bang_bang'
    [    0.022096] thermal_sys: Registered thermal governor 'step_wise'
    [    0.022100] thermal_sys: Registered thermal governor 'user_space'
    [    0.022136] cpuidle: using governor menu
    [    0.022356] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.022434] ASID allocator initialised with 65536 entries
    [    0.022583] Serial: AMBA PL011 UART driver
    [    0.027910] platform 3001000.clock: Fixed dependency cycle(s) with /soc/rtc@7000000
    [    0.032342] platform 6000000.hdmi: Fixed dependency cycle(s) with /soc/tcon-top@6510000
    [    0.032804] platform 6510000.tcon-top: Fixed dependency cycle(s) with /soc/lcd-controller@6515000
    [    0.032823] platform 6510000.tcon-top: Fixed dependency cycle(s) with /soc/bus@1000000/mixer@100000
    [    0.033487] platform 7010000.clock: Fixed dependency cycle(s) with /soc/rtc@7000000
    [    0.034937] platform 6000000.hdmi: Fixed dependency cycle(s) with /connector
    [    0.036452] KASLR disabled due to lack of seed
    [    0.042625] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
    [    0.042632] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
    [    0.042640] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
    [    0.042645] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
    [    0.042651] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.042656] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
    [    0.042662] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
    [    0.042667] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
    [    0.043340] cryptd: max_cpu_qlen set to 1000
    [    0.108090] raid6: neonx8   gen()  1851 MB/s
    [    0.176160] raid6: neonx4   gen()  1896 MB/s
    [    0.244215] raid6: neonx2   gen()  1792 MB/s
    [    0.312280] raid6: neonx1   gen()  1558 MB/s
    [    0.380343] raid6: int64x8  gen()  1282 MB/s
    [    0.448398] raid6: int64x4  gen()  1426 MB/s
    [    0.516478] raid6: int64x2  gen()  1219 MB/s
    [    0.584541] raid6: int64x1  gen()   906 MB/s
    [    0.584547] raid6: using algorithm neonx4 gen() 1896 MB/s
    [    0.652586] raid6: .... xor() 1366 MB/s, rmw enabled
    [    0.652591] raid6: using neon recovery algorithm
    [    0.653891] iommu: Default domain type: Translated 
    [    0.653898] iommu: DMA domain TLB invalidation policy: strict mode 
    [    0.654139] SCSI subsystem initialized
    [    0.654302] usbcore: registered new interface driver usbfs
    [    0.654341] usbcore: registered new interface driver hub
    [    0.654368] usbcore: registered new device driver usb
    [    0.654653] pps_core: LinuxPPS API ver. 1 registered
    [    0.654658] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.654673] PTP clock support registered
    [    0.654958] ARM FF-A: FFA_VERSION returned not supported
    [    0.655261] Advanced Linux Sound Architecture Driver Initialized.
    [    0.655880] NetLabel: Initializing
    [    0.655885] NetLabel:  domain hash size = 128
    [    0.655890] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
    [    0.655955] NetLabel:  unlabeled traffic allowed by default
    [    0.655960] mctp: management component transport protocol core
    [    0.655965] NET: Registered PF_MCTP protocol family
    [    0.656368] clocksource: Switched to clocksource arch_sys_counter
    [    0.656579] VFS: Disk quotas dquot_6.6.0
    [    0.656621] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [    0.657122] AppArmor: AppArmor Filesystem Enabled
    [    0.663363] NET: Registered PF_INET protocol family
    [    0.663507] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
    [    0.664620] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)
    [    0.664643] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
    [    0.664659] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.664730] TCP bind hash table entries: 8192 (order: 6, 262144 bytes, linear)
    [    0.665021] TCP: Hash tables configured (established 8192 bind 8192)
    [    0.665118] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
    [    0.665150] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
    [    0.665305] NET: Registered PF_UNIX/PF_LOCAL protocol family
    [    0.665789] Trying to unpack rootfs image as initramfs...
    [    0.676604] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
    [    0.678382] Initialise system trusted keyrings
    [    0.678442] Key type blacklist registered
    [    0.678650] workingset: timestamp_bits=44 max_order=18 bucket_order=0
    [    0.683741] zbud: loaded
    [    0.685205] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.687239] integrity: Platform Keyring initialized
    [    0.728264] xor: measuring software checksum speed
    [    0.732986]    8regs           :  2100 MB/sec
    [    0.737544]    32regs          :  2169 MB/sec
    [    0.742385]    arm64_neon      :  2037 MB/sec
    [    0.742392] xor: using function: 32regs (2169 MB/sec)
    [    0.742407] async_tx: api initialized (async)
    [    0.742417] Key type asymmetric registered
    [    0.742423] Asymmetric key parser 'x509' registered
    [    1.565191] Freeing initrd memory: 18992K
    [    1.580353] alg: self-tests for CTR-KDF (hmac(sha256)) passed
    [    1.580491] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
    [    1.580607] io scheduler mq-deadline registered
    [    1.580614] io scheduler kyber registered
    [    1.580799] io scheduler bfq registered
    [    1.593679] Serial: 8250/16550 driver, 6 ports, IRQ sharing disabled
    [    1.595953] misc dump reg init
    [    1.599192] cacheinfo: Unable to detect cache hierarchy for CPU 0
    [    1.602899] loop: module loaded
    [    1.605925] usbcore: registered new interface driver usb-storage
    [    1.606364] mousedev: PS/2 mouse device common for all mice
    [    1.607435] sun6i-rtc 7000000.rtc: registered as rtc0
    [    1.607459] sun6i-rtc 7000000.rtc: setting system clock to 2024-03-09T14:42:20 UTC (1709995340)
    [    1.607552] sun6i-rtc 7000000.rtc: RTC enabled
    [    1.607766] i2c_dev: i2c /dev entries driver
    [    1.608012] mv64xxx_i2c 7081400.i2c: can't get pinctrl, bus recovery not supported
    [    1.609267] sunxi-wdt 30090a0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
    [    1.610584] sdhci: Secure Digital Host Controller Interface driver
    [    1.610590] sdhci: Copyright(c) Pierre Ossman
    [    1.610613] Synopsys Designware Multimedia Card Interface Driver
    [    1.611311] sdhci-pltfm: SDHCI platform and OF driver helper
    [    1.611702] ledtrig-cpu: registered to indicate activity on CPUs
    [    1.611974] SMCCC: SOC_ID: ID = jep106:091e:1823 Revision = 0x00000002
    [    1.612450] hid: raw HID events driver (C) Jiri Kosina
    [    1.612527] usbcore: registered new interface driver usbhid
    [    1.612533] usbhid: USB HID core driver
    [    1.657603] NET: Registered PF_INET6 protocol family
    [    1.672039] Segment Routing with IPv6
    [    1.672123] In-situ OAM (IOAM) with IPv6
    [    1.672224] NET: Registered PF_PACKET protocol family
    [    1.672336] 8021q: 802.1Q VLAN Support v1.8
    [    1.672499] 9pnet: Installing 9P2000 support
    [    1.672580] Key type dns_resolver registered
    [    1.673105] registered taskstats version 1
    [    1.673132] Loading compiled-in X.509 certificates
    [    1.676557] Loaded X.509 cert 'Build time autogenerated kernel key: 7bd7920b377ffc8ec0340eaee14ec6404a465ad8'
    [    1.678684] zswap: loaded using pool zstd/z3fold
    [    1.679023] Key type .fscrypt registered
    [    1.679029] Key type fscrypt-provisioning registered
    [    1.680005] Btrfs loaded, crc32c=crc32c-generic, zoned=yes, fsverity=no
    [    1.680233] Key type encrypted registered
    [    1.680247] AppArmor: AppArmor sha1 policy hashing enabled
    [    1.680271] ima: No TPM chip found, activating TPM-bypass!
    [    1.680303] ima: Allocated hash algorithm: sha1
    [    1.680333] ima: No architecture policies found
    [    1.680434] evm: Initialising EVM extended attributes:
    [    1.680438] evm: security.selinux
    [    1.680443] evm: security.SMACK64
    [    1.680447] evm: security.SMACK64EXEC
    [    1.680452] evm: security.SMACK64TRANSMUTE
    [    1.680456] evm: security.SMACK64MMAP
    [    1.680460] evm: security.apparmor
    [    1.680464] evm: security.ima
    [    1.680468] evm: security.capability
    [    1.680472] evm: HMAC attrs: 0x1
    [    1.703581] sun50i-h616-pinctrl 300b000.pinctrl: initialized sunXi PIO driver
    [    1.704098] sun50i-h616-r-pinctrl 7022000.pinctrl: initialized sunXi PIO driver
    [    1.704604] sun50i-h616-pinctrl 300b000.pinctrl: supply vcc-ph not found, using dummy regulator
    [    1.705047] printk: console [ttyS0] disabled
    [    1.705119] 5000000.serial: ttyS0 at MMIO 0x5000000 (irq = 285, base_baud = 1500000) is a 16550A
    [    1.705374] printk: console [ttyS0] enabled
    [    1.706113] debugfs: Directory '1100000.mixer' with parent 'regmap' already present!
    [    1.706144] debugfs: Directory '1100000.mixer' with parent 'regmap' already present!
    [    1.722040] sun4i-drm display-engine: bound 1100000.mixer (ops 0xffff800008e85e48)
    [    1.722216] sun4i-drm display-engine: bound 6510000.tcon-top (ops 0xffff800008e8a620)
    [    1.722482] sun4i-drm display-engine: bound 6515000.lcd-controller (ops 0xffff800008e82e20)
    [    1.722539] sun8i-dw-hdmi 6000000.hdmi: supply hvcc not found, using dummy regulator
    [    1.722761] sun8i-dw-hdmi 6000000.hdmi: Detected HDMI TX controller v2.12a with HDCP (DWC HDMI 2.0 TX PHY)
    [    1.723210] sun8i-dw-hdmi 6000000.hdmi: registered DesignWare HDMI I2C bus driver
    [    1.723608] sun4i-drm display-engine: bound 6000000.hdmi (ops 0xffff800008e84f08)
    [    1.723983] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
    [    1.724048] sun4i-drm display-engine: [drm] Cannot find any crtc or sizes
    [    1.724579] sun50i-h616-pinctrl 300b000.pinctrl: supply vcc-pc not found, using dummy regulator
    [    1.724988] sun4i-drm display-engine: [drm] Cannot find any crtc or sizes
    [    1.725983] spi-nor spi0.0: ZB25VQ128A (16384 Kbytes)
    [    1.735218] ehci-platform 5200000.usb: EHCI Host Controller
    [    1.735255] ehci-platform 5200000.usb: new USB bus registered, assigned bus number 1
    [    1.735387] ehci-platform 5200000.usb: irq 289, io mem 0x05200000
    [    1.735633] ehci-platform 5310000.usb: EHCI Host Controller
    [    1.735651] ehci-platform 5310000.usb: new USB bus registered, assigned bus number 2
    [    1.735729] ehci-platform 5310000.usb: irq 290, io mem 0x05310000
    [    1.735777] ehci-platform 5311000.usb: EHCI Host Controller
    [    1.735795] ehci-platform 5311000.usb: new USB bus registered, assigned bus number 3
    [    1.735871] ehci-platform 5311000.usb: irq 291, io mem 0x05311000
    [    1.736601] ohci-platform 5200400.usb: Generic Platform OHCI controller
    [    1.736619] ohci-platform 5200400.usb: new USB bus registered, assigned bus number 4
    [    1.736650] usb_phy_generic usb_phy_generic.4.auto: supply vcc not found, using dummy regulator
    [    1.736693] ohci-platform 5310400.usb: Generic Platform OHCI controller
    [    1.736712] ohci-platform 5310400.usb: new USB bus registered, assigned bus number 5
    [    1.736721] ohci-platform 5200400.usb: irq 292, io mem 0x05200400
    [    1.736755] usb_phy_generic usb_phy_generic.4.auto: dummy supplies not allowed for exclusive requests
    [    1.736802] ohci-platform 5310400.usb: irq 293, io mem 0x05310400
    [    1.736905] ohci-platform 5311400.usb: Generic Platform OHCI controller
    [    1.736924] ohci-platform 5311400.usb: new USB bus registered, assigned bus number 6
    [    1.736988] ohci-platform 5311400.usb: irq 294, io mem 0x05311400
    [    1.737904] sun50i-h616-pinctrl 300b000.pinctrl: supply vcc-pi not found, using dummy regulator
    [    1.738927] sun50i-h616-pinctrl 300b000.pinctrl: supply vcc-pa not found, using dummy regulator
    [    1.739672] it's ac300, skip the ac200 init!
    [    1.739685] ac200: probe of 3-0010 failed with error -22
    [    1.739970] axp20x-i2c 0-0036: AXP20x variant AXP313a found
    [    1.740215] axp20x-i2c 0-0036: mask_invert=true is deprecated; please switch to unmask_base
    [    1.743854] input: axp20x-pek as /devices/platform/soc/7081400.i2c/i2c-0/0-0036/axp221-pek/input/input0
    [    1.744123] axp20x-regulator axp20x-regulator: DCDC frequency on AXP313a is fixed to 3 MHz.
    [    1.744133] axp20x-regulator axp20x-regulator: Error setting dcdc frequency: -22
    [    1.748392] ehci-platform 5200000.usb: USB 2.0 started, EHCI 1.00
    [    1.748650] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01
    [    1.748663] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    1.748672] usb usb1: Product: EHCI Host Controller
    [    1.748680] usb usb1: Manufacturer: Linux 6.1.31-sun50iw9 ehci_hcd
    [    1.748688] usb usb1: SerialNumber: 5200000.usb
    [    1.749087] hub 1-0:1.0: USB hub found
    [    1.749128] hub 1-0:1.0: 1 port detected
    [    1.749134] axp313a-dcdc3: Bringing 1200000uV into 1100000-1100000uV
    [    1.756214] axp20x-i2c 0-0036: AXP20X driver loaded
    [    1.758186] sun50i-cpufreq-nvmem: will use speed0 CPU OPPs
    [    1.762744] cpufreq: cpufreq_online: CPU0: Running at unlisted initial frequency: 1032000 KHz, changing to: 1200000 KHz
    [    1.762913] OF: /thermal-zones/gpu-thermal/cooling-maps/map0: could not get #cooling-cells for /soc/gpu@1800000
    [    1.762935] thermal_sys: Add a cooling_device property with at least one device
    [    1.762942] thermal thermal_zone0: binding zone gpu-thermal with cdev cpufreq-cpu0 failed:-2
    [    1.763407] sun50i-h616-pinctrl 300b000.pinctrl: supply vcc-pg not found, using dummy regulator
    [    1.764351] sun50i-h616-pinctrl 300b000.pinctrl: supply vcc-pf not found, using dummy regulator
    [    1.764391] ehci-platform 5310000.usb: USB 2.0 started, EHCI 1.00
    [    1.764591] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01
    [    1.764602] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    1.764610] usb usb2: Product: EHCI Host Controller
    [    1.764617] usb usb2: Manufacturer: Linux 6.1.31-sun50iw9 ehci_hcd
    [    1.764624] usb usb2: SerialNumber: 5310000.usb
    [    1.765059] hub 2-0:1.0: USB hub found
    [    1.765094] hub 2-0:1.0: 1 port detected
    [    1.765369] sunxi-mmc 4021000.mmc: allocated mmc-pwrseq
    [    1.765765] gmac-power0: NULL
    [    1.765772] gmac-power1: NULL
    [    1.765777] gmac-power2: NULL
    [    1.766463] sunxi-mmc 4020000.mmc: Got CD GPIO
    [    1.780400] ehci-platform 5311000.usb: USB 2.0 started, EHCI 1.00
    [    1.780771] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01
    [    1.780793] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    1.780809] usb usb3: Product: EHCI Host Controller
    [    1.780823] usb usb3: Manufacturer: Linux 6.1.31-sun50iw9 ehci_hcd
    [    1.780836] usb usb3: SerialNumber: 5311000.usb
    [    1.781453] hub 3-0:1.0: USB hub found
    [    1.781513] hub 3-0:1.0: 1 port detected
    [    1.793166] sunxi-mmc 4020000.mmc: initialized, max. request size: 16384 KB, uses new timings mode
    [    1.800685] usb usb6: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.01
    [    1.800707] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    1.800723] usb usb6: Product: Generic Platform OHCI controller
    [    1.800736] usb usb6: Manufacturer: Linux 6.1.31-sun50iw9 ohci_hcd
    [    1.800750] usb usb6: SerialNumber: 5311400.usb
    [    1.801184] hub 6-0:1.0: USB hub found
    [    1.801228] hub 6-0:1.0: 1 port detected
    [    1.801767] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.01
    [    1.801783] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    1.801795] usb usb4: Product: Generic Platform OHCI controller
    [    1.801805] usb usb4: Manufacturer: Linux 6.1.31-sun50iw9 ohci_hcd
    [    1.801815] usb usb4: SerialNumber: 5200400.usb
    [    1.802248] hub 4-0:1.0: USB hub found
    [    1.802291] hub 4-0:1.0: 1 port detected
    [    1.802812] usb usb5: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 6.01
    [    1.802828] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    1.802840] usb usb5: Product: Generic Platform OHCI controller
    [    1.802850] usb usb5: Manufacturer: Linux 6.1.31-sun50iw9 ohci_hcd
    [    1.802860] usb usb5: SerialNumber: 5310400.usb
    [    1.803279] hub 5-0:1.0: USB hub found
    [    1.803332] hub 5-0:1.0: 1 port detected
    [    1.831884] mmc0: host does not support reading read-only switch, assuming write-enable
    [    1.833828] mmc0: new high speed SDHC card at address 0001
    [    1.835010] mmcblk0: mmc0:0001 SD32G 29.1 GiB 
    [    1.837665]  mmcblk0: p1
    [    1.997256] sunxi-mmc 4021000.mmc: initialized, max. request size: 16384 KB, uses new timings mode
    [    2.015413] mmc1: new high speed SDIO card at address 8800
    [    2.599179] input: 5070800.lradc as /devices/platform/soc/5070800.lradc/input/input1
    [    2.606002] ALSA device list:
    [    2.606023]   #0: audiocodec
    [    2.606036]   #1: ahubdam
    [    2.606047]   #2: ahubhdmi
    [    2.608001] Freeing unused kernel memory: 2752K
    [    2.608178] Run /init as init process
    [    2.608190]   with arguments:
    [    2.608203]     /init
    [    2.608215]   with environment:
    [    2.608225]     HOME=/
    [    2.608237]     TERM=linux
    [    2.608248]     splash=verbose
    [    2.608259]     ubootpart=bb229d64-01
    [    2.608270]     cgroup_enable=memory
    [    4.711259] EXT4-fs (mmcblk0p1): mounted filesystem with writeback data mode. Quota mode: none.
    [    5.574124] systemd[1]: systemd 249.11-0ubuntu3.9 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY -P11KIT -QRENCODE +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified)
    [    5.574801] systemd[1]: Detected architecture arm64.
    [    5.577486] systemd[1]: Hostname set to <orangepizero2w>.
    [    6.492845] systemd[1]: Queued start job for default target Graphical Interface.
    [    7.820367] random: crng init done
    [    7.890341] systemd[1]: Created slice Slice /system/modprobe.
    [    7.894203] systemd[1]: Created slice Slice /system/serial-getty.
    [    7.895421] systemd[1]: Created slice User and Session Slice.
    [    7.895802] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [    7.896684] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
    [    7.897216] systemd[1]: Reached target Slice Units.
    [    7.897360] systemd[1]: Reached target Swaps.
    [    7.897477] systemd[1]: Reached target System Time Set.
    [    7.897741] systemd[1]: Reached target Local Verity Protected Volumes.
    [    7.911008] systemd[1]: Listening on RPCbind Server Activation Socket.
    [    7.911807] systemd[1]: Listening on Syslog Socket.
    [    7.912346] systemd[1]: Listening on fsck to fsckd communication Socket.
    [    7.912739] systemd[1]: Listening on initctl Compatibility Named Pipe.
    [    7.913699] systemd[1]: Listening on Journal Audit Socket.
    [    7.914145] systemd[1]: Listening on Journal Socket (/dev/log).
    [    7.914738] systemd[1]: Listening on Journal Socket.
    [    7.918332] systemd[1]: Listening on udev Control Socket.
    [    7.918823] systemd[1]: Listening on udev Kernel Socket.
    [    7.923322] systemd[1]: Mounting Huge Pages File System...
    [    7.927734] systemd[1]: Mounting POSIX Message Queue File System...
    [    7.932209] systemd[1]: Mounting Kernel Debug File System...
    [    7.933197] systemd[1]: Condition check resulted in Kernel Trace File System being skipped.
    [    7.933581] systemd[1]: Condition check resulted in Kernel Module supporting RPCSEC_GSS being skipped.
    [    7.939524] systemd[1]: Starting Restore / save the current clock...
    [    7.945533] systemd[1]: Starting Set the console keyboard layout...
    [    7.951163] systemd[1]: Starting Create List of Static Device Nodes...
    [    7.957004] systemd[1]: Starting Load Kernel Module chromeos_pstore...
    [    7.962557] systemd[1]: Starting Load Kernel Module configfs...
    [    7.969178] systemd[1]: Starting Load Kernel Module drm...
    [    7.973881] systemd[1]: Starting Load Kernel Module efi_pstore...
    [    7.978581] systemd[1]: Starting Load Kernel Module fuse...
    [    7.983821] systemd[1]: Starting Load Kernel Module pstore_blk...
    [    7.988311] systemd[1]: Starting Load Kernel Module pstore_zone...
    [    7.993383] systemd[1]: Starting Load Kernel Module ramoops...
    [    7.998243] systemd[1]: Started Nameserver information manager.
    [    7.999230] systemd[1]: Reached target Preparation for Network.
    [    7.999939] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
    [    8.039008] fuse: init (API version 7.37)
    [    8.065120] systemd[1]: Starting Load Kernel Modules...
    [    8.069582] systemd[1]: Starting Remount Root and Kernel File Systems...
    [    8.076554] systemd[1]: Starting Coldplug All udev Devices...
    [    8.084622] systemd[1]: Mounted Huge Pages File System.
    [    8.085324] systemd[1]: Mounted POSIX Message Queue File System.
    [    8.085965] systemd[1]: Mounted Kernel Debug File System.
    [    8.087690] systemd[1]: Finished Restore / save the current clock.
    [    8.089856] systemd[1]: Finished Create List of Static Device Nodes.
    [    8.091635] systemd[1]: modprobe@chromeos_pstore.service: Deactivated successfully.
    [    8.092626] systemd[1]: Finished Load Kernel Module chromeos_pstore.
    [    8.093890] systemd[1]: modprobe@configfs.service: Deactivated successfully.
    [    8.094588] systemd[1]: Finished Load Kernel Module configfs.
    [    8.095480] systemd[1]: modprobe@drm.service: Deactivated successfully.
    [    8.096149] systemd[1]: Finished Load Kernel Module drm.
    [    8.097064] systemd[1]: modprobe@efi_pstore.service: Deactivated successfully.
    [    8.097732] systemd[1]: Finished Load Kernel Module efi_pstore.
    [    8.098623] systemd[1]: modprobe@fuse.service: Deactivated successfully.
    [    8.099325] systemd[1]: Finished Load Kernel Module fuse.
    [    8.100247] systemd[1]: modprobe@pstore_blk.service: Deactivated successfully.
    [    8.100414] EXT4-fs (mmcblk0p1): re-mounted. Quota mode: none.
    [    8.136957] systemd[1]: Finished Load Kernel Module pstore_blk.
    [    8.140491] systemd[1]: modprobe@pstore_zone.service: Deactivated successfully.
    [    8.141244] systemd[1]: Finished Load Kernel Module pstore_zone.
    [    8.142216] systemd[1]: modprobe@ramoops.service: Deactivated successfully.
    [    8.142870] systemd[1]: Finished Load Kernel Module ramoops.
    [    8.145339] systemd[1]: Finished Remount Root and Kernel File Systems.
    [    8.167540] WCN: marlin_init entry!
    [    8.168002] WCN: wcn config bt wake host
    [    8.168231] WCN_ERR: dts node for bt_wake not found
    [    8.168234] WCN: marlin2 parse_dt some para not config
    [    8.168243] sdiohal:sdiohal_parse_dt adma_tx:1, adma_rx:1, pwrseq:0, irq type:data, gpio_num:0, blksize:840
    [    8.171758] sdiohal:sdiohal_init ok
    [    8.172316] WCN: marlin_probe ok!
    [    8.212803] systemd[1]: Mounting FUSE Control File System...
    [    8.217081] systemd[1]: Mounting Kernel Configuration File System...
    [    8.217612] systemd[1]: Condition check resulted in Platform Persistent Storage Archival being skipped.
    [    8.222456] systemd[1]: Starting Load/Save Random Seed...
    [    8.227320] systemd[1]: Starting Create System Users...
    [    8.230746] cfg80211: Loading compiled-in X.509 certificates for regulatory database
    [    8.231938] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
    [    8.236747] systemd[1]: Finished Set the console keyboard layout.
    [    8.240078] [ADDR_MGT] addr_mgt_probe: module version: v1.0.9
    [    8.240166] [ADDR_MGT] addr_mgt_probe: success.
    [    8.240351] systemd[1]: Mounted FUSE Control File System.
    [    8.241250] systemd[1]: Mounted Kernel Configuration File System.
    [    8.281600] WCN: start_marlin [MARLIN_WIFI]
    [    8.281623] WCN: marlin power state:0, subsys: [MARLIN_WIFI] power 1
    [    8.281629] WCN: the first power on start
    [    8.286050] systemd[1]: Finished Load/Save Random Seed.
    [    8.286834] systemd[1]: Condition check resulted in First Boot Complete being skipped.
    [    8.301844] systemd[1]: Finished Create System Users.
    [    8.345051] systemd[1]: Starting Create Static Device Nodes in /dev...
    [    8.387408] systemd[1]: Finished Create Static Device Nodes in /dev.
    [    8.388059] systemd[1]: Reached target Preparation for Local File Systems.
    [    8.392384] WCN: marlin chip en dummy pull up -- need manually set GPIO 
    [    8.424378] sdiohal:sdiohal_scan_card
    [    8.424587] sdiohal:sdiohal_probe: func->class=0, vendor=0x0000, device=0x0000, func_num=0x0001, clock=50000000
    [    8.424784] WCN: marlin_get_wcn_chipid: chipid: 0x2355b001
    [    8.424790] WCN: marlin_scan_finish!
    [    8.424794] sdiohal:probe ok
    [    8.424881] sdiohal:scan end!
    [    8.424886] WCN: then marlin start to download
    [    8.424900] WCN: marlin_request_firmware from /lib/firmware/wcnmodem.bin start!
    [    8.433043] systemd[1]: Mounting /tmp...
    [    8.444339] systemd[1]: Starting Rule-based Manager for Device Events and Files...
    [    8.448895] systemd[1]: Finished Coldplug All udev Devices.
    [    8.449927] systemd[1]: Mounted /tmp.
    [    8.450395] systemd[1]: Reached target Local File Systems.
    [    8.454884] systemd[1]: Starting Set console font and keymap...
    [    8.469238] systemd[1]: Starting Helper to synchronize boot up for ifupdown...
    [    8.474282] systemd[1]: Starting Orange Pi ZRAM config...
    [    8.479311] systemd[1]: Starting Tell Plymouth To Write Out Runtime Data...
    [    8.479927] systemd[1]: Condition check resulted in RPC security service for NFS server being skipped.
    [    8.480106] systemd[1]: Condition check resulted in Mark the need to relabel after reboot being skipped.
    [    8.489398] systemd[1]: Starting Set Up Additional Binary Formats...
    [    8.489718] systemd[1]: Condition check resulted in Store a System Token in an EFI Variable being skipped.
    [    8.489944] systemd[1]: Condition check resulted in Commit a transient machine-id on disk being skipped.
    [    8.492566] systemd[1]: Finished Set console font and keymap.
    [    8.503412] systemd[1]: Finished Helper to synchronize boot up for ifupdown.
    [    8.510486] systemd[1]: proc-sys-fs-binfmt_misc.automount: Got automount request for /proc/sys/fs/binfmt_misc, triggered by 361 (systemd-binfmt)
    [    8.514594] systemd[1]: Mounting Arbitrary Executable File Formats File System...
    [    8.520861] systemd[1]: Received SIGRTMIN+20 from PID 238 (plymouthd).
    [    8.537120] systemd[1]: Finished Tell Plymouth To Write Out Runtime Data.
    [    8.561873] systemd[1]: Mounted Arbitrary Executable File Formats File System.
    [    8.568429] systemd[1]: Finished Set Up Additional Binary Formats.
    [    8.714751] systemd[1]: Started Rule-based Manager for Device Events and Files.
    [    8.769236] systemd[1]: Starting Show Plymouth Boot Screen...
    [    8.785441] systemd[1]: Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
    [    8.914325] mc: Linux media interface: v0.10
    [    8.935555] systemd[1]: Started Show Plymouth Boot Screen.
    [    8.936230] systemd[1]: Condition check resulted in Dispatch Password Requests to Console Directory Watch when bootsplash is active being skipped.
    [    8.936856] systemd[1]: Started Forward Password Requests to Plymouth Directory Watch.
    [    8.937075] systemd[1]: Reached target Local Encrypted Volumes.
    [    8.938642] zram: Added device: zram0
    [    8.954910] zram: Added device: zram1
    [    8.961325] systemd[1]: Found device /dev/ttyS0.
    [    8.963067] zram: Added device: zram2
    [    8.972728] videodev: Linux video capture interface: v2.00
    [    9.079890] systemd[1]: Reached target Hardware activated USB gadget.
    [    9.189171] sunxi_cedrus: module is from the staging directory, the quality is unknown, you have been warned.
    [    9.198561] cedrus 1c0e000.video-codec: Device registered as /dev/video0
    [    9.204652] zram0: detected capacity change from 0 to 1005416
    [    9.210850] Registered IR keymap rc-empty
    [    9.210960] rc rc0: sunxi-ir as /devices/platform/soc/7040000.ir/rc/rc0
    [    9.212268] rc rc0: lirc_dev: driver sunxi-ir registered at minor = 0, raw IR receiver, no transmitter
    [    9.212411] input: sunxi-ir as /devices/platform/soc/7040000.ir/rc/rc0/input2
    [    9.216608] sunxi-ir 7040000.ir: initialized sunXi IR driver
    [    9.230440] systemd[1]: Condition check resulted in Dispatch Password Requests to Console Directory Watch when bootsplash is active being skipped.
    [    9.230830] systemd[1]: Condition check resulted in Kernel Trace File System being skipped.
    [    9.250203] Adding 502704k swap on /dev/zram0.  Priority:5 extents:1 across:502704k SSFS
    [    9.293078] systemd[1]: Starting Load Kernel Module chromeos_pstore...
    [    9.297600] systemd[1]: Starting Load Kernel Module efi_pstore...
    [    9.306558] systemd[1]: Starting Load Kernel Module pstore_blk...
    [    9.311332] systemd[1]: Starting Load Kernel Module pstore_zone...
    [    9.320657] systemd[1]: Starting Load Kernel Module ramoops...
    [    9.321148] systemd[1]: Condition check resulted in Store a System Token in an EFI Variable being skipped.
    [    9.321362] systemd[1]: Condition check resulted in Commit a transient machine-id on disk being skipped.
    [    9.322835] WCN: combin_img 0 marlin_firmware_write finish and successful
    [    9.323023] WCN: marlin_start_run read reset reg val:0x1
    [    9.323030] WCN: after do marlin_start_run reset reg val:0x0
    [    9.323208] WCN: s_marlin_bootup_time=9323207714
    [    9.327615] systemd[1]: modprobe@chromeos_pstore.service: Deactivated successfully.
    [    9.328858] WCN: clock mode: TSX
    [    9.329088] WCN: marlin_write_cali_data sync init_state:0x0
    [    9.332663] systemd[1]: Finished Load Kernel Module chromeos_pstore.
    [    9.334498] systemd[1]: modprobe@efi_pstore.service: Deactivated successfully.
    [    9.335481] systemd[1]: Finished Load Kernel Module efi_pstore.
    [    9.337245] systemd[1]: modprobe@pstore_blk.service: Deactivated successfully.
    [    9.338246] systemd[1]: Finished Load Kernel Module pstore_blk.
    [    9.356857] WCN: marlin_write_cali_data sync init_state:0x0
    [    9.359451] systemd[1]: modprobe@pstore_zone.service: Deactivated successfully.
    [    9.363189] systemd[1]: Finished Load Kernel Module pstore_zone.
    [    9.364672] systemd[1]: modprobe@ramoops.service: Deactivated successfully.
    [    9.365600] systemd[1]: Finished Load Kernel Module ramoops.
    [    9.372799] systemd[1]: Condition check resulted in Dispatch Password Requests to Console Directory Watch when bootsplash is active being skipped.
    [    9.373208] systemd[1]: Condition check resulted in Kernel Trace File System being skipped.
    [    9.384663] WCN: marlin_write_cali_data sync init_state:0xf0f0f0f1
    [    9.384687] WCN: sdio_config bt_wake_host trigger:[high]
    [    9.384690] WCN: sdio_config irq:[inband]
    [    9.384693] WCN: sdio_config wake_host_level_duration_time:[20ms]
    [    9.384698] WCN: sdio_config wake_host_data_separation:[bt/wifi reuse]
    [    9.384701] WCN: marlin_send_sdio_config_to_cp sdio_config:0x80f01 (enable config)
    [    9.385071] WCN: marlin_write_cali_data finish
    [    9.385357] WCN: check_cp_ready sync val:0xf0f0f0f2, prj_type val:0x0
    [    9.401038] systemd[1]: Starting Load Kernel Module chromeos_pstore...
    [    9.411651] systemd[1]: Starting Load Kernel Module efi_pstore...
    [    9.412677] WCN: check_cp_ready sync val:0xf0f0f0f2, prj_type val:0x0
    [    9.417276] systemd[1]: Starting Load Kernel Module pstore_blk...
    [    9.417729] systemd[1]: Condition check resulted in Store a System Token in an EFI Variable being skipped.
    [    9.417922] systemd[1]: Condition check resulted in Commit a transient machine-id on disk being skipped.
    [    9.420606] systemd[1]: modprobe@chromeos_pstore.service: Deactivated successfully.
    [    9.421574] systemd[1]: Finished Load Kernel Module chromeos_pstore.
    [    9.431017] systemd[1]: modprobe@efi_pstore.service: Deactivated successfully.
    [    9.434211] systemd[1]: Finished Load Kernel Module efi_pstore.
    [    9.435749] systemd[1]: modprobe@pstore_blk.service: Deactivated successfully.
    [    9.436761] systemd[1]: Finished Load Kernel Module pstore_blk.
    [    9.437597] systemd[1]: Condition check resulted in Platform Persistent Storage Archival being skipped.
    [    9.440708] WCN: check_cp_ready sync val:0xf0f0f0f2, prj_type val:0x0
    [    9.466786] zram1: detected capacity change from 0 to 102400
    [    9.468591] WCN: check_cp_ready sync val:0xf0f0f0f2, prj_type val:0x0
    [    9.496699] WCN: check_cp_ready sync val:0xf0f0f0ff, prj_type val:0x0
    [    9.496734] sdiohal:sdiohal_runtime_get entry
    [    9.496973] WCN: get_cp2_version entry!
    [    9.498488] WCN: WCND at cmd read:WCN_VER:Platform Version:MARLIN3_19B_W21.05.3~Project Version:sc2355_marlin3_lite_ott~12-15-2021 11:26:33~
    [    9.498511] WCN: switch_cp2_log - close entry!
    [    9.499981] WCN: WCND at cmd read:OK
    [    9.500043] WCN: then marlin download finished and run ok
    [    9.500053] WCN: start_loopcheck
    [    9.517829] WCN: get_board_ant_num [one_ant]
    [    9.517856] wifi ini path = /lib/firmware/wifi_2355b001_1ant.ini
    [    9.535363] systemd[1]: Finished Orange Pi ZRAM config.
    [    9.546431] sprdwl:sprdwl_get_fw_info length mismatch: len_count=83, r_len=89
    [    9.546456] sprdwl:sprdwl_get_fw_info, drv_version=1, fw_version=2, compat_ver=0
    [    9.546464] sprdwl:chip_model:0x2355, chip_ver:0x0
    [    9.546470] sprdwl:fw_ver:0, fw_std:0x7f, fw_capa:0x120f7f
    [    9.546477] sprdwl:mac_addr:c8:8a:d8:13:1b:1a
    [    9.546485] sprdwl:credit_capa:TX_WITH_CREDIT
    [    9.546490] sprdwl:ott support:0
    [    9.579192] unisoc_wifi unisoc_wifi wlan0: mixed HW and IP checksum settings.
    [    9.597357] systemd[1]: Starting Orange Pi memory supported logging...
    [    9.605701] systemd[1]: Starting Load/Save RF Kill Switch Status...
    [    9.607692] mtty_probe init device addr: 0x000000008cc99846
    [    9.607880] -->rfkill_bluetooth_init
    [    9.607990] bluetooth_set_power: start_block=1
    [    9.608001] WCN: marlin power state:4, subsys: [MARLIN_BLUETOOTH] power 0
    [    9.608009] WCN: can not power off, other module is on
    [    9.608015] bluetooth_set_power: end_block=1
    [    9.608032] <--rfkill_bluetooth_init
    [    9.613439] systemd[1]: Finished Load Kernel Modules.
    [    9.628044] systemd[1]: Starting Apply Kernel Variables...
    [    9.631786] bluetooth_set_power: start_block=0
    [    9.631815] WCN: start_marlin [MARLIN_BLUETOOTH]
    [    9.631824] WCN: marlin power state:4, subsys: [MARLIN_BLUETOOTH] power 1
    [    9.631830] WCN: marlin have open, GNSS is closed
    [    9.631835] bluetooth_set_power: end_block=0
    [    9.633234] systemd[1]: Started Load/Save RF Kill Switch Status.
    [    9.664109] systemd[1]: Finished Apply Kernel Variables.
    [    9.666290] EXT4-fs (zram1): mounted filesystem without journal. Quota mode: none.
    [    9.701255] systemd[1]: Starting Raise network interfaces...
    [   10.262626] systemd[1]: Finished Raise network interfaces.
    [   11.902322] systemd[1]: Finished Orange Pi memory supported logging.
    [   11.953379] systemd[1]: Starting Journal Service...
    [   12.089222] systemd[1]: Started Journal Service.
    [   12.159229] systemd-journald[639]: Received client request to flush runtime journal.
    [   12.261202] RPC: Registered named UNIX socket transport module.
    [   12.261220] RPC: Registered udp transport module.
    [   12.261224] RPC: Registered tcp transport module.
    [   12.261228] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [   13.498209] bluetooth_set_power: start_block=0
    [   13.498239] WCN: start_marlin [MARLIN_BLUETOOTH]
    [   13.498247] WCN: marlin power state:5, subsys: [MARLIN_BLUETOOTH] power 1
    [   13.498254] WCN: marlin have open, GNSS is closed
    [   13.498258] bluetooth_set_power: end_block=0
    [   13.529955] mtty_open device success!
    [   13.872043] Bluetooth: Core ver 2.22
    [   13.872238] NET: Registered PF_BLUETOOTH protocol family
    [   13.872244] Bluetooth: HCI device and connection manager initialized
    [   13.872268] Bluetooth: HCI socket layer initialized
    [   13.872277] Bluetooth: L2CAP socket layer initialized
    [   13.872295] Bluetooth: SCO socket layer initialized
    [   13.956020] Bluetooth: HCI UART driver ver 2.3
    [   13.956053] Bluetooth: HCI UART protocol H4 registered
    [   13.956058] Bluetooth: HCI UART protocol BCSP registered
    [   13.956164] Bluetooth: HCI UART protocol LL registered
    [   13.956169] Bluetooth: HCI UART protocol ATH3K registered
    [   13.956202] Bluetooth: HCI UART protocol Three-wire (H5) registered
    [   13.956483] Bluetooth: HCI UART protocol Intel registered
    [   13.956621] Bluetooth: HCI UART protocol Broadcom registered
    [   13.956657] Bluetooth: HCI UART protocol QCA registered
    [   13.956662] Bluetooth: HCI UART protocol AG6XX registered
    [   13.956696] Bluetooth: HCI UART protocol Marvell registered
    [   15.627974] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [   15.628001] Bluetooth: BNEP filters: protocol multicast
    [   15.628028] Bluetooth: BNEP socket layer initialized
    [   15.633113] Bluetooth: MGMT ver 1.22
    [   15.657090] NET: Registered PF_ALG protocol family
    [   16.797717] sunxi-gmac 5030000.ethernet eth0: eth0: Type(7) PHY ID 00441400 at 0 IRQ poll (5030000.ethernet-0:00)
    [   19.962049] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
    [  230.091872] semi_touch_driver: loading out-of-tree module taints kernel.
    [  230.092506] semi_touch_driver: module verification failed: signature and/or required key missing - tainting kernel
    [  230.111598] [CHSC] function = semi_touch_read_bytes         , line = 257 : err code = -6
    [  230.119982] [CHSC] function = semi_touch_read_bytes         , line = 257 : err code = -6
    [  230.128365] [CHSC] function = semi_touch_read_bytes         , line = 257 : err code = -6
    [  230.136597] [CHSC] function = semi_touch_init               , line = 354 : err code = -1
    [  230.144838] [CHSC] function = semi_touch_probe              , line = 486 : err code = -1
    [  230.153074] semi_touch: probe of 2-002e failed with error -1
  • 查看驱动原文件
    https://whycan.com/files/members/9467/chct_touch.zip

离线

楼主 #1 2024-03-10 01:02:56

Goku
会员
注册时间: 2022-05-31
已发帖子: 6
积分: 16

Re: H616 orangepi zero 2w touch_driver 移植过程设备树设置问题请教

链接硬件测试:
%E9%80%BB%E8%BE%91%E5%88%86%E6%9E%90%E4%BB%AA_ctp%E9%A9%B1%E5%8A%A8%E5%8A%A0%E8%BD%BD.jpeg
符合软件条件,需要检查硬件:
%E9%A9%B1%E5%8A%A8%E5%8A%A0%E8%BD%BD%E8%BD%AF%E4%BB%B6%E6%89%A7%E8%A1%8C%E9%80%BB%E8%BE%91.jpeg

离线

楼主 #2 2024-03-11 16:58:34

Goku
会员
注册时间: 2022-05-31
已发帖子: 6
积分: 16

Re: H616 orangepi zero 2w touch_driver 移植过程设备树设置问题请教

硬件连接后使用 i2cdetect 来进行确认硬件连接是正常的
i2cdetect%E7%BB%93%E6%9E%9C.jpeg

离线

#3 2024-03-13 10:46:24

memory
会员
注册时间: 2021-08-11
已发帖子: 483
积分: 459

Re: H616 orangepi zero 2w touch_driver 移植过程设备树设置问题请教

这个驱动是你自己做的吗?还是厂家提供的?

离线

#4 2024-03-13 10:47:36

memory
会员
注册时间: 2021-08-11
已发帖子: 483
积分: 459

Re: H616 orangepi zero 2w touch_driver 移植过程设备树设置问题请教

能不能在驱动里面使用这个 i2c 读写寄存器?

离线

楼主 #5 2024-03-13 14:10:09

Goku
会员
注册时间: 2022-05-31
已发帖子: 6
积分: 16

Re: H616 orangepi zero 2w touch_driver 移植过程设备树设置问题请教

memory 说:

这个驱动是你自己做的吗?还是厂家提供的?

  驱动是ic厂的,目前可以正常通过驱动接口进行iic操作了

离线

页脚

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

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