导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    T113 I2S 音频输出至 Lontium 芯片 / T113 I2S Audio Output to Lontium chip

    其它全志芯片讨论区
    4
    8
    1840
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • D
      dazb3 LV 5 最后由 编辑

      嗨。我正在尝试配置我的 T113,以将 I2S 音频输出到 Lontium LT9611UXC MIPI 到 HDMI 芯片。我已将我的 DTS 配置为输出 I2S。但是查看 dmesg 我发现我的 DOUT 引脚未正确初始化:

      [    1.881261] sun8iw20-pinctrl pio: unsupported function i2s2 on pin PB4
      

      有什么帮助或想法吗?最后是我的 dts:

      Hi. I'm trying to configure my T113 to output I2S audio to a Lontium LT9611UXC MIPI to HDMI chip. I've configured my DTS to output I2S. However looking at dmesg I see that my DOUT pin isn't properly initialised:

      [    1.881261] sun8iw20-pinctrl pio: unsupported function i2s2 on pin PB4
      

      Any help or ideas? Below is my dts:

      /*
       * Allwinner Technology CO., Ltd.
       */
      
      /dts-v1/;
      
      /* optee used 7MB: SHM 2M: OS: 1M: TA:4M*/
      /*/memreserve/ 0x41900000 0x00100000;*/
      /* DSP used 1MB */
      /* /memreserve/ 0x42000000 0x00100000; */
      
      #include "sun8iw20p1.dtsi"
      
      /{
      	model = "sun8iw20";
      	compatible = "allwinner,r528", "arm,sun8iw20p1";
      
      	reg_vdd_cpu: vdd-cpu {
      		compatible = "pwm-regulator";
      		pwms = <&pwm 3 5000 0>;
      		regulator-name = "vdd_cpu";
      		regulator-min-microvolt = <810000>;
      		regulator-max-microvolt = <1160000>;
      		regulator-settling-time-us = <4000>;
      		regulator-always-on;
      		regulator-boot-on;
      		status = "okay";
      	};
      
      	reg_usb1_vbus: usb1-vbus {
      		compatible = "regulator-fixed";
      		regulator-name = "usb1-vbus";
      		regulator-min-microvolt = <5000000>;
      		regulator-max-microvolt = <5000000>;
      		regulator-enable-ramp-delay = <1000>;
      		enable-active-high;
      	};
      
      	reg_vdd_3v3: vdd_3v3 {
      		compatible = "regulator-fixed";
      		regulator-name = "vdd-3v3";
      		regulator-min-microvolt = <3300000>;
      		regulator-max-microvolt = <3300000>;
      		enable-active-high;
      	};
      
      	can0: can@0x0 {
      		#address-cells = <1>;
      		#size-cells = <0>;
      		compatible = "allwinner,sun8i-can";
      		device_type = "can0";
      		id = <0>;
      		status = "disabled";
      	};
      
      	can1: can@0x1 {
      		#address-cells = <1>;
      		#size-cells = <0>;
      		compatible = "allwinner,sun8i-can";
      		device_type = "can1";
      		id = <1>;
      		status = "disabled";
      	};
      
      	gpio-keys {
      		compatible = "gpio-keys";
      		status = "okay";
      		vol-down-key {
      			gpios = <&pio PE 1 GPIO_ACTIVE_LOW>;
      			linux,code = <114>;
      			label = "user key";
      			debounce-interval = <10>;
      			wakeup-source = <0x1>;
      		};
      	};
      
      	gpio-leds {
      		compatible = "gpio-leds";
      		status = "okay";
      
      		led-blue {	
      			label = "led-blue";
      			gpios = <&pio PE 2 GPIO_ACTIVE_HIGH>;
      			linux,default-trigger = "heartbeat";
      			defaults-state = "on";
      		};
      	};
      
      };
      
      &cpu0 {
      	cpu-supply = <&reg_vdd_cpu>;
      };
      
      &pio {
      	sdc0_pins_a: sdc0@0 {
      		allwinner,pins = "PF0", "PF1", "PF2",
      				 "PF3", "PF4", "PF5";
      		allwinner,function = "sdc0";
      		allwinner,muxsel = <2>;
      		allwinner,drive = <3>;
      		allwinner,pull = <1>;
      		pins = "PF0", "PF1", "PF2",
      		       "PF3", "PF4", "PF5";
      		function = "sdc0";
      		drive-strength = <30>;
      		bias-pull-up;
      		power-source = <3300>;
      	};
      
      
      	sdc0_pins_b: sdc0@1 {
      		pins = "PF0", "PF1", "PF2",
      		       "PF3", "PF4", "PF5";
      		function = "sdc0";
      		drive-strength = <30>;
      		bias-pull-up;
      		power-source = <1800>;
      	};
      
      	sdc0_pins_c: sdc0@2 {
      		pins = "PF0", "PF1", "PF2",
      			"PF3", "PF4", "PF5";
      		function = "gpio_in";
      	};
      
      	/* TODO: add jtag pin */
      	sdc0_pins_d: sdc0@3 {
      		pins = "PF2", "PF4";
      		function = "uart0";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	sdc0_pins_e: sdc0@4 {
      		pins = "PF0", "PF1", "PF3",
      			"PF5";
      		function = "jtag";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      
      	sdc1_pins_a: sdc1@0 {
      		pins = "PG0", "PG1", "PG2",
      		       "PG3", "PG4", "PG5";
      		function = "sdc1";
      		drive-strength = <30>;
      		bias-pull-up;
      	};
      
      	sdc1_pins_b: sdc1@1 {
      		pins = "PG0", "PG1", "PG2",
      		       "PG3", "PG4", "PG5";
      			function = "sdc1";
      	};
      
      	sdc2_pins_a: sdc2@0 {
      		allwinner,pins = "PC2", "PC3", "PC4",
      				 "PC5", "PC6", "PC7";
      		allwinner,function = "sdc2";
      		allwinner,muxsel = <3>;
      		allwinner,drive = <3>;
      		allwinner,pull = <1>;
      		pins = "PC2", "PC3", "PC4",
      			"PC5", "PC6", "PC7";
      		function = "sdc2";
      		drive-strength = <30>;
      		bias-pull-up;
      	};
      
      	sdc2_pins_b: sdc2@1 {
      		pins = "PC2", "PC3", "PC4",
      		       "PC5", "PC6", "PC7";
      		function = "gpio_in";
      	};
      
      	wlan_pins_a:wlan@0 {
      		pins = "PG11";
      		function = "clk_fanout1";
      	};
      
      	uart0_pins_a: uart0_pins@0 {  /* For EVB1 board */
      	pins = "PF2", "PF4";
      	function = "uart0";
      	drive-strength = <10>;
      	bias-pull-up;
      	};
      
      	uart0_pins_b: uart0_pins@1 {  /* For EVB1 board */
      	pins = "PF2", "PF4";
      	function = "gpio_in";
      	};
      
      	uart1_pins_a: uart1_pins@0 {  /* For EVB1 board */
      		pins = "PG6", "PG7", "PG8", "PG9";
      		function = "uart1";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	uart1_pins_b: uart1_pins {  /* For EVB1 board */
      		pins = "PG6", "PG7", "PG8", "PG9";
      		function = "gpio_in";
      	};
      
      	uart2_pins_a: uart2_pins@0 {  /* For EVB1 board */
      		pins = "PC0", "PC1";
      		function = "uart2";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	uart2_pins_b: uart2_pins@1 {  /* For EVB1 board */
      		pins = "PC0", "PC1";
      		function = "gpio_in";
      	};
      
      	uart3_pins_a: uart3_pins@0 {  /* For t113_evb */
      		pins = "PG8", "PG9";
      		function = "uart3";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	uart4_pins_a: uart4_pins@0 {
      		pins = "PE4", "PE5";
      		function = "uart4";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	uart4_pins_b: uart4_pins@1 {
      		pins = "PE4", "PE5";
      		function = "gpio_in";
      	};
      
      	uart5_pins_a: uart5_pins@0 {
      		pins = "PE6", "PE7";
      		function = "uart5";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	uart5_pins_b: uart5_pins@1 {
      		pins = "PE6", "PE7";
      		function = "gpio_in";
      	};
      
      	twi1_pins_a: twi1@0 {
      		pins = "PE14", "PE15";
      		function = "twi1";
      		drive-strength = <10>;
      	};
      
      	twi1_pins_b: twi1@1 {
      		pins = "PE14", "PE15";
      		function = "gpio_in";
      	};
      
      	twi2_pins_a: twi2@0 {
      		pins = "PE12", "PE13";
      		function = "twi2";
      		drive-strength = <10>;
      	};
      
      	twi2_pins_b: twi2@1 {
      		pins = "PE12", "PE13";
      		function = "gpio_in";
      	};
      
      	twi3_pins_a: twi3@0 {
      		pins = "PB6", "PB7";
      		function = "twi3";
      		drive-strength = <10>;
      	};
      
      	twi3_pins_b: twi3@1 {
      		pins = "PB6", "PB7";
      		function = "gpio_in";
      	};
      
      	s_cir0_pins_a: s_cir0@0 {
      		pins = "PB1";
      		function = "ir";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	s_cir0_pins_b: s_cir0@1 {
      		pins = "PB1";
      		function = "gpio_in";
      	};
      
      	ir1_pins_a: ir1@0 {
      		pins = "PB0";
      		function = "ir";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	ir1_pins_b: ir1@1 {
      		pins = "PB0";
      		function = "gpio_in";
      	};
      
      	dmic_pins_a: dmic@0 {
      		/* DMIC_PIN: CLK, DATA0, DATA1, DATA2, DATA3*/
      		pins = "PB12", "PB11", "PB10", "PE14", "PB8";
      		function = "dmic";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      	dmic_pins_b: dmic@1 {
      		pins = "PB12", "PB11", "PB10", "PE14", "PB8";
      		allwinner,function = "io_disabled";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      	daudio0_pins_a: daudio0@0 {
      		pins = "PB7", "PB5", "PB6", "PB4";
      		function = "i2s2";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      	daudio0_pins_b: daudio0_sleep@0 {
      		pins = "PB7", "PB5", "PB6", "PB4";
      		function = "io_disabled";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      
      	daudio2_pins_a: daudio2@0 {
      		pins = "PB7", "PB5", "PB6", "PB4";
      		function = "i2s2";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      	daudio2_pins_b: daudio2_sleep@0 {
      		pins = "PB7", "PB5", "PB6", "PB4";
      		function = "io_disabled";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      	spdif_pins_a: spdif@0 {
      		/* SPDIF_PIN: SPDIF_OUT */
      		pins = "PG18";
      		function = "spdif";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      	spdif_pins_b: spdif_sleep@0 {
      		pins = "PG18";
      		function = "io_disabled";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      	gmac0_pins_a: gmac@0 {
      		allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4",
      				 "PG5", "PG12", "PG13", "PG14", "PG15";
      		allwinner,function = "gmac0";
      		allwinner,muxsel = <4>;
      		allwinner,drive = <1>;
      		allwinner,pull = <0>;
      	};
      
      	gmac0_pins_b: gmac@1 {
      		allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4",
      				 "PG5", "PG12", "PG13", "PG14", "PG15";
      		allwinner,function = "gpio_in";
      		allwinner,muxsel = <0>;
      		allwinner,drive = <1>;
      		allwinner,pull = <0>;
      	};
      
      	spi0_pins_a: spi0@0 {
      		pins = "PC2", "PC4", "PC5","PC7", "PC6"; /*clk mosi miso hold wp*/
      		function = "spi0";
      		drive-strength = <10>;
      	};
      
      	spi0_pins_b: spi0@1 {
      		pins = "PC3";
      		function = "spi0";
      		drive-strength = <10>;
      		bias-pull-up;   /* only CS should be pulled up */
      	};
      
      	spi0_pins_c: spi0@2 {
      		pins = "PC2", "PC3", "PC4", "PC5","PC6", "PC7";
      		function = "gpio_in";
      		drive-strength = <10>;
      	};
      
      	spi1_pins_a: spi1@0 {
      		pins = "PB11", "PB10", "PB9","PB8", "PB0"; /*clk mosi miso hold wp*/
      		function = "spi1";
      		drive-strength = <10>;
      	};
      
      	spi1_pins_b: spi1@1 {
      		pins = "PB12";
      		function = "spi1";
      		drive-strength = <10>;
      		bias-pull-up;   // only CS should be pulled up
      	};
      
      	spi1_pins_c: spi1@2 {
      		allwinner,pins = "PB0", "PB8", "PB9", "PB10","PB11", "PB12";
      		allwinner,function = "gpio_in";
      		allwinner,muxsel = <0>;
      		drive-strength = <10>;
      	};
      
      	pwm2_pin_a: pwm2@0 {
      		pins = "PE8";
      		function = "pwm2";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	pwm2_pin_b: pwm2@1 {
      		pins = "PE8";
      		function = "gpio_in";
      	};
      
      	pwm3_pin_a: pwm3@0 {
      		pins = "PB0";
      		function = "pwm3";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	pwm3_pin_b: pwm3@1 {
      		pins = "PB0";
      		function = "gpio_in";
      	};
      
      	pwm5_pin_a: pwm5@0 {
      		pins = "PE13";
      		function = "pwm5";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	pwm5_pin_b: pwm5@1 {
      		pins = "PE13";
      		function = "gpio_in";
      	};
      
      
      	dsi4lane_pins_a: dsi4lane@0 {
      		allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9";
      		allwinner,pname = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9";
      		allwinner,function = "dsi4lane";
      		allwinner,muxsel = <4>;
      		allwinner,drive = <3>;
      		allwinner,pull = <0>;
      	};
      
      	dsi4lane_pins_b: dsi4lane@1 {
      		allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9";
      		allwinner,pname = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9";
      		allwinner,function = "dsi4lane_suspend";
      		allwinner,muxsel = <7>;
      		allwinner,drive = <1>;
      		allwinner,pull = <0>;
      	};
      };
      
      
      &uart0 {
      	status = "disabled";
      };
      
      &uart1 {
      	status = "disabled";
      };
      
      &uart2 {
      	status = "disabled";
      };
      
      &uart3 {
      	status = "disabled";
      };
      
      &uart4 {
      	pinctrl-names = "default", "sleep";
      	pinctrl-0 = <&uart4_pins_a>;
      	pinctrl-1 = <&uart4_pins_b>;
      	status = "okay";
      };
      
      &uart5 {
      	pinctrl-names = "default", "sleep";
      	pinctrl-0 = <&uart5_pins_a>;
      	pinctrl-1 = <&uart5_pins_b>;
      	status = "okay";
      };
      
      &sdc2 {
      	non-removable;
      	bus-width = <4>;
      	mmc-ddr-1_8v;
      	mmc-hs200-1_8v;
      	no-sdio;
      	no-sd;
      	ctl-spec-caps = <0x308>;
      	cap-mmc-highspeed;
      	sunxi-power-save-mode;
      	sunxi-dis-signal-vol-sw;
      	mmc-bootpart-noacc;
      	max-frequency = <150000000>;
      	/*vmmc-supply = <&reg_dcdc1>;*/
      	/*emmc io vol 3.3v*/
      	/*vqmmc-supply = <&reg_aldo1>;*/
      	/*emmc io vol 1.8v*/
      	/*vqmmc-supply = <&reg_eldo1>;*/
      	status = "disabled";
      };
      
      &sdc0 {
      	bus-width = <4>;
      	cd-gpios = <&pio PF 6 (GPIO_ACTIVE_LOW | GPIO_PULL_DOWN)>;
      	/*non-removable;*/
      	broken-cd;
      	/*cd-inverted*/
      	/*data3-detect;*/
      	/*card-pwr-gpios = <&pio PH 14 1 1 2 0xffffffff>;*/
      	/*cd-used-24M;*/
      	cap-sd-highspeed;
      	/*sd-uhs-sdr50;*/
      	/*sd-uhs-ddr50;*/
      	/*sd-uhs-sdr104;*/
      	no-sdio;
      	no-mmc;
      	sunxi-power-save-mode;
      	/*sunxi-dis-signal-vol-sw;*/
      	max-frequency = <150000000>;
      	ctl-spec-caps = <0x8>;
      	/*vmmc-supply = <&reg_dcdc1>;*/
      	/*vqmmc33sw-supply = <&reg_dcdc1>;*/
      	/*vdmmc33sw-supply = <&reg_dcdc1>;*/
      	/*vqmmc18sw-supply = <&reg_eldo1>;*/
      	/*vdmmc18sw-supply = <&reg_eldo1>;*/
      	status = "okay";
      };
      
      &sdc1 {
      	bus-width = <4>;
      	no-mmc;
      	no-sd;
      	cap-sd-highspeed;
      	/*sd-uhs-sdr12*/
      	/*sd-uhs-sdr25;*/
      	/*sd-uhs-sdr50;*/
      	/*sd-uhs-ddr50;*/
      	/*sd-uhs-sdr104;*/
      	/*sunxi-power-save-mode;*/
      	/*sunxi-dis-signal-vol-sw;*/
      	cap-sdio-irq;
      	keep-power-in-suspend;
      	ignore-pm-notify;
      	max-frequency = <150000000>;
      	ctl-spec-caps = <0x8>;
      	status = "disabled";
      };
      
      &rtc {
      	status = "disabled";
      };
      
      &twi0 {
      	status = "disabled";
      };
      
      &twi1 {
      	clock-frequency = <400000>;
      	pinctrl-0 = <&twi1_pins_a>;
      	pinctrl-1 = <&twi1_pins_b>;
      	pinctrl-names = "default", "sleep";
      	// twi_drv_used = <1>;
      	// dmas = <&dma 45>, <&dma 45>;
      	// dma-names = "tx", "rx";
      	status = "okay";
      	rtc@32 {
      		compatible = "epson,rx8025t";
      		reg = <0x32>;
      		status = "okay";
          };
      
      	edt-ft5x06@38 {
      		compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
      		reg = <0x38>;
      		interrupt-parent = <&pio>;
      		interrupts = <PE 10 IRQ_TYPE_EDGE_FALLING>; //IRQ_TYPE_LEVEL_LOW
      		// reset-gpios = <&pio PD 23 1 0xffffffff 0xffffffff 1>;
      		// gpio-controller;
      		touchscreen-size-x=<1024>;                                                                                          
              	touchscreen-size-y=<600>; 
      		status = "okay";
      	};
      
      	ctp {
      		device_type = "ctp";
      		status = "okay";
      		ctp_twi_id = <0x1>;
      		ctp_twi_addr = <0x38>;
      		ctp_screen_max_x = <0x400>;
      		ctp_screen_max_y = <0x258>;
      		ctp_revert_x_flag = <0x0>;
      		ctp_revert_y_flag = <0x1>;
      		ctp_exchange_x_y_flag = <0x1>;
      		ctp_int_port = <&pio PE 10 GPIO_ACTIVE_HIGH>;
      		// ctp_wakeup = <&pio PB 7 GPIO_ACTIVE_HIGH>;
      		ctp-supply = <&reg_vdd_3v3>;
      		ctp_power_ldo_vol = <3300>;
      	};
      };
      
      &twi2 {
      	status = "disabled";
      };
      
      &spi0 {
      	status = "disabled";
      };
      
      &spi1 {
      	status = "disabled";
      };
      
      &ledc {
      	status	= "disabled";
      };
      
      &s_cir0 {
      	pinctrl-names = "default";
      	pinctrl-0 = <&s_cir0_pins_a>;
      	status = "okay";
      };
      
      &ir1 {
      	pinctrl-names = "default";
      	pinctrl-0 = <&ir1_pins_a>;
      	status = "disabled";
      };
      
      &gmac0 {
      	pinctrl-0 = <&gmac0_pins_a>;
      	pinctrl-1 = <&gmac0_pins_b>;
      	pinctrl-names = "default", "sleep";
      	phy-mode = "rmii";
      	use_ephy25m = <0>;//1
      	tx-delay = <7>;//7
      	rx-delay = <31>;//31
      	phy-rst = <&pio PG 6 GPIO_ACTIVE_HIGH>;
      	status = "okay";
      };
      
      &soc {
      	platform@45000004 {
      		reg = <0x0 0x45000004 0x0 0x0>;
      		eraseflag   = <1>;
      		next_work   = <3>;
      		debug_mode  = <8>;
      	};
      
      	target@45000008 {
      		reg = <0x0 0x45000008 0x0 0x0>;
      		boot_clock = <1008>;	/*CPU boot frequency, Unit: MHz*/
      		storage_type = <0xffffffff>; /*boot medium, 0-nand, 1-card0, 2-card2, -1(defualt)auto scan*/
      		burn_key = <0>;		/*1:support burn key; 0:not support burn key*/
      		dragonboard_test = <0>;	/*1:support card boot dragonboard; 0:not support card boot dragonboard*/
      	};
      
      	card0_boot_para@2 {
      		/*
      		 * Avoid dtc compiling warnings.
      		 * @TODO: Developer should modify this to the actual value
      		 */
      		reg = <0x0 0x2 0x0 0x0>;
      		device_type = "card0_boot_para";
      		card_ctrl = <0x0>;
      		card_high_speed = <0x1>;
      		card_line = <0x4>;
      		pinctrl-0 = <&sdc0_pins_a>;
      	};
      
      	card2_boot_para@3 {
      		/*
      		 * Avoid dtc compiling warnings.
      		 * @TODO: Developer should modify this to the actual value
      		 */
      		reg = <0x0 0x3 0x0 0x0>;
      		device_type = "card2_boot_para";
      		card_ctrl = <0x2>;
      		card_high_speed = <0x1>;
      		card_line = <0x4>;
      		pinctrl-0 = <&sdc2_pins_a>;
      		/*pinctrl-0 = <&sdc0_pins_a>;*/
      		/*sdc_ex_dly_used = <0x2>;*/
      		sdc_io_1v8 = <0x1>;
      		/*sdc_type = "tm4";*/
      		sdc_tm4_hs200_max_freq = <150>;
      		sdc_tm4_hs400_max_freq = <100>;
      		sdc_ex_dly_used = <2>;
      		/*sdc_tm4_win_th = <8>;*/
      		/*sdc_dis_host_caps = <0x180>;*/
      	};
      
      	rfkill: rfkill@0 {
      		status        = "disabled";
      	};
      
      	btlpm: btlpm@0 {
      		status      = "disabled";
      	};
      
      	car_reverse:car-reverse {
      		status      = "disabled";
      	};
      };
      
      &vind0 {
      	csi_top = <378000000>;
      	csi_isp = <327000000>;
      	status = "disabled"; /* enable twi and ver1 spi-nand max freq 30M */
      };
      
      /*----------------------------------------------------------------------------------
      ;tv configuration
      ;interface          (interface type,1<->cvbs,2<->YPBPR,4<->SVIDEO)
      ;dac_type           (0<->composite,1<->luma,2<->chroma,3<->reserved,4<->y/green,
      ;                    5<->u/pb/blue,6<->v/pr/red)
      ;dac_src            (dac no,support dac_src0~dac_src3,dac num max is 4)
      ;NOTE:              tv0,tv1 can not use the same dac_src.
      ;---------------------------------------------------------------------------------*/
      &tv0 {
      	interface       = <1>;
      	dac_type0       = <0>;
      	dac_src0        = <0>;
      
      	status =  "okay";
      };
      
      /*
      tvd configuration
      used                   (create device, 0: do not create device, 1: create device)
      agc_auto_enable        (0: agc manual mode,agc_manual_value is valid; 1: agc auto mode)
      agc_manual_value       (agc manual value, default value is 64)
      cagc_enable            (cagc        0: disable, 1: enable)
      fliter_used            (3d fliter   0: disable, 1: enable)
      support two PMU power  (tvd_power0, tvd_power1)
      support two GPIO power (tvd_gpio0, tvd_gpio1)
      NOTICE: If tvd need pmu power or gpio power,params need be configured under [tvd]
      tvd_sw                 (the switch of all tvd driver.)
      tvd_interface          (0: cvbs, 1: ypbpr,)
      tvd_format             (0:TVD_PL_YUV420 , 1: MB_YUV420, 2: TVD_PL_YUV422)
      tvd_system             (0:ntsc, 1:pal)
      tvd_row                (total row number in multi channel mode 1-2)
      tvd_column             (total column number in multi channel mode 1-2)
      tvd_channelx_en        (0:disable, 1~4:position in multi channel mode,In single channel
                             mode,mean enable)
      tvd_row*tvd_column is the total tvd channel number to be used in multichannel mode
      +--------------------+--------------------+
      |                    |                    |
      |                    |                    |
      |         1          |         2          |
      |                    |                    |
      |                    |                    |
      +--------------------+--------------------+
      |                    |                    |
      |                    |                    |
      |         3          |         4          |
      |                    |                    |
      |                    |                    |
      +--------------------+--------------------+
      */
      
      &tvd {
      	tvd_sw          = <1>;
      	tvd_interface   = <0>;
      	tvd_format      = <0>;
      	tvd_system      = <1>;
      	tvd_row         = <1>;
      	tvd_column      = <1>;
      	tvd_channel0_en = <1>;
      	tvd_channel1_en = <0>;
      	tvd_channel2_en = <0>;
      	tvd_channel3_en = <0>;
      	/*tvd_gpio0 = <&pio PD 22 GPIO_ACTIVE_HIGH>;*/
      	/*tvd_gpio1 = <&pio PD 23 GPIO_ACTIVE_HIGH>;*/
      	/*tvd_gpio2 = <&pio PD 24 GPIO_ACTIVE_HIGH>;*/
      	/*	dc1sw-supply = <&reg_dc1sw>;*/
      	/*	eldo3-supply = <&reg_eldo3>;*/
      	/*tvd_power0      = "dc1sw"*/
      	/*tvd_power1      = "eldo3"*/
      };
      
      &tvd0 {
      	used                    = <1>;
      	agc_auto_enable         = <1>;
      	agc_manual_value        = <64>;
      	cagc_enable             = <1>;
      	fliter_used             = <1>;
      };
      
      &hdmi {
      	status = "disabled";
      };
      
      /* Audio Driver modules */
      &codec {
      	/* MIC and headphone gain setting */
      	mic1gain 		= <0x1F>;
      	mic2gain 		= <0x1F>;
      	mic3gain 		= <0x1F>;
      	/* ADC/DAC DRC/HPF func enabled */
      	/* 0x1:DAP_HP_EN; 0x2:DAP_SPK_EN; 0x3:DAP_HPSPK_EN */
      	adcdrc_cfg		= <0x0>;
      	adchpf_cfg		= <0x1>;
      	dacdrc_cfg		= <0x0>;
      	dachpf_cfg		= <0x0>;
      	/* Volume about */
      	digital_vol 	= <0x00>;
      	lineout_vol 	= <0x1a>;
      	headphonegain	= <0x03>;
      	/* Pa enabled about */
      	pa_level 		= <0x01>;
      	pa_pwr_level 	= <0x01>;
      	pa_msleep_time 	= <0x78>;
      	/* gpio-spk	= <&pio PE 11 GPIO_ACTIVE_LOW>; */
      	/* CMA config about */
      	playback_cma	= <128>;
      	capture_cma	= <256>;
      	/* regulator about */
      	/* avcc-supply	= <&reg_aldo1>; */
      	/* hpvcc-supply	= <&reg_eldo1>; */
      	status = "okay";
      };
      
      &sndcodec {
      	hp_detect_case	= <0x00>;
      	jack_enable		= <0x01>;
      	status = "okay";
      };
      
      &dummy_cpudai {
      	playback_cma	= <128>;
      	capture_cma		= <256>;
      	status			= "okay";
      };
      
      &dmic {
      	pinctrl-names   = "default","sleep";
      	pinctrl-0       = <&dmic_pins_a>;
      	pinctrl-1       = <&dmic_pins_b>;
      	status = "okay";
      };
      
      &dmic_codec {
      	status = "okay";
      };
      
      &sounddmic {
      	status = "okay";
      };
      
      /*-----------------------------------------------------------------------------
       * pcm_lrck_period	16/32/64/128/256
       *			(set 0x20 for HDMI audio out)
       * slot_width_select	16bits/20bits/24bits/32bits
       *			(set 0x20 for HDMI audio out)
       * frametype		0 --> short frame = 1 clock width;
       *			1 --> long frame = 2 clock width;
       * tdm_config		0 --> pcm
       *			1 --> i2s
       *			(set 0x01 for HDMI audio out)
       * mclk_div		0 --> not output
       *			1/2/4/6/8/12/16/24/32/48/64/96/128/176/192
       *			(set mclk as external codec clk source, freq is pll_audio/mclk_div)
       * pinctrl_used		0 --> I2S/PCM use for internal (e.g. HDMI)
       *			1 --> I2S/PCM use for external audio
       * daudio_type:		0 --> external audio type
       *			1 --> HDMI audio type
       *---------------------------------------------------------------------------*/
      
      &daudio0 {
      	mclk_div 	= <0x01>;
      	frametype 	= <0x00>;
      	tdm_config 	= <0x01>;
      	sign_extend 	= <0x00>;
      	msb_lsb_first 	= <0x00>;
      	pcm_lrck_period = <0x80>;
      	slot_width_select = <0x20>;
      	pinctrl-names   = "default", "sleep";
      	pinctrl-0       = <&daudio0_pins_a>;
      	pinctrl-1       = <&daudio0_pins_b>;
      	pinctrl_used	= <0x0>;
      	status = "disabled";
      };
      
      /*-----------------------------------------------------------------------------
       * simple-audio-card,name	name of sound card, e.g.
       *				"snddaudio0" --> use for external audio
       *				"sndhdmi" --> use for HDMI audio
       * sound-dai			"snd-soc-dummy" --> use for I2S
       *				"hdmiaudio" --> use for HDMI audio
       *				"ac108" --> use for external audio of ac108
       *---------------------------------------------------------------------------*/
      &sounddaudio0 {
      	status = "disabled";
      	daudio0_master: simple-audio-card,codec {
      		/* sound-dai = <&ac108>; */
      	};
      };
      
      
      &daudio1 {
      	status = "disabled";
      };
      
      &sounddaudio1 {
      	status = "disabled";
      	daudio1_master: simple-audio-card,codec {
      		/* sound-dai = <&ac108>; */
      	};
      };
      
      &daudio2 {
      	mclk_div = <0x00>;
      	frametype = <0x00>;
      	tdm_config = <0x01>;
      	sign_extend = <0x00>;
      	tx_data_mode = <0x00>;
      	rx_data_mode = <0x00>;
      	msb_lsb_first = <0x00>;
      	pcm_lrck_period = <0x20>;
      	slot_width_select = <0x20>;
      	asrc_function_en = <0x00>;
      	pinctrl-names   = "default", "sleep";
      	pinctrl-0       = <&daudio2_pins_a>;
      	pinctrl-1       = <&daudio2_pins_b>;
      	pinctrl_used	= <0x0>;
      	daudio_type = <0x1>;
      	status = "okay";
      };
      
      /* if HDMI audio is used, daudio2 should be enable. */
      &hdmiaudio {
      	status = "okay";
      };
      
      &sounddaudio2 {
      	status = "okay";
      	simple-audio-card,name = "sndhdmi";
      	daudio2_master: simple-audio-card,codec {
      		sound-dai = <&hdmiaudio>;
      	};
      };
      
      &spdif {
      	status = "okay";
      };
      
      &soundspdif {
      	status = "okay";
      };
      
      /*
       *usb_port_type: usb mode. 0-device, 1-host, 2-otg.
       *usb_detect_type: usb hotplug detect mode. 0-none, 1-vbus/id detect, 2-id/dpdm detect.
       *usb_detect_mode: 0-thread scan, 1-id gpio interrupt.
       *usb_id_gpio: gpio for id detect.
       *usb_det_vbus_gpio: gpio for id detect. gpio or "axp_ctrl";
       *usb_wakeup_suspend:0-SUPER_STANDBY, 1-USB_STANDBY.
       */
      &usbc0 {
      	device_type = "usbc0";
      	usb_port_type = <0x01>;
      	usb_detect_type = <0x1>;
      	usb_regulator_io = "nocare";
      	usb_wakeup_suspend = <0>;
      	status = "okay";
      };
      
      &ehci0 {
      	drvvbus-supply = <&reg_usb1_vbus>;
      	status = "okay";
      };
      
      &ohci0 {
      	drvvbus-supply = <&reg_usb1_vbus>;
      	status = "okay";
      };
      
      &usbc1 {
      	device_type = "usbc1";
      	usb_port_type = <0x01>;
      	usb_detect_type = <0x1>;
      	usb_regulator_io = "nocare";
      	usb_wakeup_suspend = <0>;
      	status = "okay";
      };
      &ehci1 {
      	drvvbus-supply = <&reg_usb1_vbus>;
      	status = "okay";
      };
      
      &ohci1 {
      	drvvbus-supply = <&reg_usb1_vbus>;
      	status = "okay";
      };
      
      /*----------------------------------------------------------------------------------
      disp init configuration
      
      disp_mode             (0:screen0<screen0,fb0>)
      screenx_output_type   (0:none; 1:lcd; 2:tv; 3:hdmi;5:vdpo)
      screenx_output_mode   (used for hdmi output, 0:480i 1:576i 2:480p 3:576p 4:720p50)
                            (5:720p60 6:1080i50 7:1080i60 8:1080p24 9:1080p50 10:1080p60)
      screenx_output_format (for hdmi, 0:RGB 1:yuv444 2:yuv422 3:yuv420)
      screenx_output_bits   (for hdmi, 0:8bit 1:10bit 2:12bit 2:16bit)
      screenx_output_eotf   (for hdmi, 0:reserve 4:SDR 16:HDR10 18:HLG)
      screenx_output_cs     (for hdmi, 0:undefined  257:BT709 260:BT601  263:BT2020)
      screenx_output_dvi_hdmi (for hdmi, 0:undefined 1:dvi mode 2:hdmi mode)
      screen0_output_range   (for hdmi, 0:default 1:full 2:limited)
      screen0_output_scan    (for hdmi, 0:no data 1:overscan 2:underscan)
      screen0_output_aspect_ratio  (for hdmi, 8-same as original picture 9-4:3 10-16:9 11-14:9)
      fbx format            (4:RGB655 5:RGB565 6:RGB556 7:ARGB1555 8:RGBA5551 9:RGB888 10:ARGB8888 12:ARGB4444)
      fbx pixel sequence    (0:ARGB 1:BGRA 2:ABGR 3:RGBA)
      fb0_scaler_mode_enable(scaler mode enable, used FE)
      fbx_width,fbx_height  (framebuffer horizontal/vertical pixels, fix to output resolution while equal 0)
      lcdx_backlight        (lcd init backlight,the range:[0,256],default:197
      lcdx_yy               (lcd init screen bright/contrast/saturation/hue, value:0~100, default:50/50/57/50)
      lcd0_contrast         (LCD contrast, 0~100)
      lcd0_saturation       (LCD saturation, 0~100)
      lcd0_hue              (LCD hue, 0~100)
      framebuffer software rotation setting:
      disp_rotation_used:   (0:disable; 1:enable,you must set fbX_width to lcd_y,
      set fbX_height to lcd_x)
      degreeX:              (X:screen index; 0:0 degree; 1:90 degree; 3:270 degree)
      degreeX_Y:            (X:screen index; Y:layer index 0~15; 0:0 degree; 1:90 degree; 3:270 degree)
      devX_output_type : config output type in bootGUI framework in UBOOT-2018.
      				   (0:none; 1:lcd; 2:tv; 4:hdmi;)
      devX_output_mode : config output resolution(see include/video/sunxi_display2.h) of bootGUI framework in UBOOT-2018
      devX_screen_id   : config display index of bootGUI framework in UBOOT-2018
      devX_do_hpd      : whether do hpd detectation or not in UBOOT-2018
      chn_cfg_mode     : Hardware DE channel allocation config. 0:single display with 6
      				   channel, 1:dual display with 4 channel in main display and 2 channel in second
                         display, 2:dual display with 3 channel in main display and 3 channel in second
                         in display.
      ----------------------------------------------------------------------------------*/
      &disp {
      	disp_init_enable         = <1>;
      	disp_mode                = <0>;
      
      	screen0_output_type      = <1>;
      	screen0_output_mode      = <4>;
      
      	screen1_output_type      = <1>;
      	screen1_output_mode      = <4>;
      
      	screen1_output_format    = <0>;
      	screen1_output_bits      = <0>;
      	screen1_output_eotf      = <4>;
      	screen1_output_cs        = <257>;
      	screen1_output_dvi_hdmi  = <2>;
      	screen1_output_range     = <2>;
      	screen1_output_scan      = <0>;
      	screen1_output_aspect_ratio = <8>;
      
      	dev0_output_type         = <1>;
      	dev0_output_mode         = <4>;
      	dev0_screen_id           = <0>;
      	dev0_do_hpd              = <0>;
      
      	dev1_output_type         = <4>;
      	dev1_output_mode         = <10>;
      	dev1_screen_id           = <1>;
      	dev1_do_hpd              = <1>;
      
      	def_output_dev           = <0>;
      	hdmi_mode_check          = <1>;
      
      	fb0_format               = <0>;
      	fb0_width                = <0>;
      	fb0_height               = <0>;
      
      	fb1_format               = <0>;
      	fb1_width                = <0>;
      	fb1_height               = <0>;
      	chn_cfg_mode             = <1>;
      
      	disp_para_zone           = <1>;
      	/*VCC-LCD*/
      /*	dc1sw-supply = <&reg_dc1sw>;*/
      	/*VCC-DSI*/
      /*	eldo3-supply = <&reg_eldo3>;*/
      	/*VCC-PD*/
      /*	dcdc1-supply = <&reg_dcdc1>;*/
      };
      
      
      /*----------------------------------------------------------------------------------
      ;lcd0 configuration
      
      ;lcd_if:               0:hv(sync+de); 1:8080; 2:ttl; 3:lvds; 4:dsi; 5:edp; 6:extend dsi
      ;lcd_hv_if             0:Parallel RGB; 8:Serial RGB; 10:Dummy RGB; 11: RGB Dummy;12:CCIR656
      ;lcd_hv_clk_phase      0:0 degree;1:90 degree;2:180 degree;3:270 degree
      ;lcd_hv_sync_polarity  0:vs low,hs low; 1:vs high,hslow; 2:vs low,hs high; 3:vs high,hs high
      ;lcd_hv_syuv_seq       0:YUYV; 1:YVYU; 2:UYVY; 3:VYUY
      ;lcd_cpu_if            0:18bit/1 cycle parallel(RGB666); 4:16bit/1cycle parallel (RGB565)
      ;                      6:18bit/3 cycle parallel(RGB666); 7:16bit/2cycle parallel (RGB565)
      ;lcd_cpu_te            0:frame auto trigger; 1:frame triggered by te rising edge; 2:frame triggered by te falling edge;
      ;lcd_dsi_if            0:video mode; 1: Command mode; 2:video burst mode
      ;lcd_dsi_te            0:frame auto trigger; 1:frame triggered by te rising edge; 2:frame triggered by te falling edge;
      ;lcd_x:                lcd horizontal resolution
      ;lcd_y:                lcd vertical resolution
      ;lcd_width:            width of lcd in mm
      ;lcd_height:           height of lcd in mm
      ;lcd_dclk_freq:        in MHZ unit
      ;lcd_pwm_freq:         in HZ unit
      ;lcd_pwm_pol:          lcd backlight PWM polarity
      ;lcd_pwm_max_limit     lcd backlight PWM max limit(<=255)
      ;lcd_hbp:              hsync back porch(pixel) + hsync plus width(pixel);
      ;lcd_ht:               hsync total cycle(pixel)
      ;lcd_vbp:              vsync back porch(line) + vysnc plus width(line)
      ;lcd_vt:               vysnc total cycle(line)
      ;lcd_hspw:             hsync plus width(pixel)
      ;lcd_vspw:             vysnc plus width(pixel)
      ;lcd_lvds_if:          0:single link;  1:dual link
      ;lcd_lvds_colordepth:  0:8bit; 1:6bit
      ;lcd_lvds_mode:        0:NS mode; 1:JEIDA mode
      ;lcd_frm:              0:disable; 1:enable rgb666 dither; 2:enable rgb656 dither
      ;lcd_io_phase:         0:noraml; 1:intert phase(0~3bit: vsync phase; 4~7bit:hsync phase;
      ;                      8~11bit:dclk phase; 12~15bit:de phase)
      ;lcd_gamma_en          lcd gamma correction enable
      ;lcd_bright_curve_en   lcd bright curve correction enable
      ;lcd_cmap_en           lcd color map function enable
      ;deu_mode              0:smoll lcd screen; 1:large lcd screen(larger than 10inch)
      ;lcdgamma4iep:         Smart Backlight parameter, lcd gamma vale * 10;
      ;                      decrease it while lcd is not bright enough; increase while lcd is too bright
      ;smart_color           90:normal lcd screen 65:retina lcd screen(9.7inch)
      ;Pin setting for special function ie.LVDS, RGB data or vsync
      ;   name(donot care) = port:PD12<pin function><pull up or pull down><drive ability><output level>
      ;Pin setting for gpio:
      ;   lcd_gpio_X     = port:PD12<pin function><pull up or pull down><drive ability><output level>
      ;Pin setting for backlight enable pin
      ;   lcd_bl_en     = port:PD12<pin function><pull up or pull down><drive ability><output level>
      ;fsync setting, pulse to csi
      ;lcd_fsync_en          (0:disable fsync,1:enable)
      ;lcd_fsync_act_time    (active time of fsync, unit:pixel)
      ;lcd_fsync_dis_time    (disactive time of fsync, unit:pixel)
      ;lcd_fsync_pol         (0:positive;1:negative)
      ;gpio config: <&pio for cpu or &r_pio for cpus, port, port num, pio function,
      pull up or pull down(default 0), driver level(default 1), data>
      ;For dual link lvds: use lvds2link_pins_a  and lvds2link_pins_b instead
      ;For rgb24: use rgb24_pins_a  and rgb24_pins_b instead
      ;For lvds1: use lvds1_pins_a  and lvds1_pins_b instead
      ;For lvds0: use lvds0_pins_a  and lvds0_pins_b instead
      ;----------------------------------------------------------------------------------*/
      &lcd0 {
      	lcd_used            = <1>;
      
      	lcd_driver_name     = "he0801a068";
      	lcd_backlight       = <50>;
      	lcd_if              = <4>;
      
      	lcd_x               = <1920>;    // Horizontal Active
      	lcd_y               = <1080>;    // Vertical Active
      	lcd_width           = <150>;
      	lcd_height          = <94>;
      	lcd_dclk_freq       = <149>;     // Dot clock in MHz
      
      	lcd_pwm_used        = <1>;
      	lcd_pwm_ch          = <7>;
      	lcd_pwm_freq        = <50000>;
      	lcd_pwm_pol         = <1>;
      	lcd_pwm_max_limit   = <255>;
      
      	lcd_hbp             = <148>;     // Horizontal Back Porch
      	lcd_ht              = <2200>;    // Horizontal Total
      	lcd_hspw            = <44>;      // Horizontal Sync Pulse Width
      	lcd_vbp             = <36>;      // Vertical Back Porch
      	lcd_vt              = <1125>;    // Vertical Total
      	lcd_vspw            = <5>;       // Vertical Sync Pulse Width
      
      	lcd_dsi_lane        = <4>;
      	lcd_dsi_if          = <0>;
      	lcd_dsi_format      = <0>;
      	lcd_dsi_te          = <0>;
      	lcd_frm             = <0>;
      	lcd_io_phase        = <0>;
      	lcd_gamma_en        = <0>;
      	lcd_bright_curve_en = <0>;
      	lcd_cmap_en         = <0>;
      
      	deu_mode            = <0>;
      	lcdgamma4iep        = <22>;
      	smart_color         = <90>;
      
      	lcd_gpio_0 = <&pio PG 13 GPIO_ACTIVE_HIGH>;
      	pinctrl-0 = <&dsi4lane_pins_a>;
      	pinctrl-1 = <&dsi4lane_pins_b>;
      };
      
      
      &pwm2 {
      	pinctrl-names = "active", "sleep";
      	pinctrl-0 = <&pwm2_pin_a>;
      	pinctrl-1 = <&pwm2_pin_b>;
      	status = "okay";
      };
      
      &pwm3 {
      	pinctrl-names = "active", "sleep";
      	pinctrl-0 = <&pwm3_pin_a>;
      	pinctrl-1 = <&pwm3_pin_b>;
      	status = "okay";
      };
      
      &pwm5 {
      	pinctrl-names = "active", "sleep";
      	pinctrl-0 = <&pwm5_pin_a>;
      	pinctrl-1 = <&pwm5_pin_b>;
      	status = "okay";
      };
      
      &pwm7 {
      	status = "disabled";
      };
      
      &gpadc {
      	channel_num = <1>;
      	channel_select = <0x1>;
      	channel_data_select = <0>;
      	channel_compare_select = <0x1>;
      	channel_cld_select = <0x1>;
      	channel_chd_select = <0>;
      	channel0_compare_lowdata = <1700000>;
      	channel0_compare_higdata = <1200000>;
      	channel1_compare_lowdata = <460000>;
      	channel1_compare_higdata = <1200000>;
      	key_cnt = <5>;
      	key0_vol = <210>;
      	key0_val = <115>;
      	key1_vol = <410>;
      	key1_val = <114>;
      	key2_vol = <590>;
      	key2_val = <119>;
      	key3_vol = <750>;
      	key3_val = <373>;
      	key4_vol = <880>;
      	key4_val = <28>;
      	status = "okay";
      };
      
      &tpadc {
      	key_cnt = <4>;
      	key1 = <210 115>;
      	key2 = <410 114>;
      	key3 = <590 119>;
      	key4 = <750 373>;
      	status = "okay";
      };
      
      
      W 2 条回复 最后回复 回复 引用 分享 0
      • W
        whycanservice2 LV 8 @dazb3 最后由 whycanservice2 编辑

        @dazb3 在 T113 I2S 音频输出至 Lontium 芯片 / T113 I2S Audio Output to Lontium chip 中说:

        > &daudio2 {
        > 	mclk_div = <0x00>;
        > 	frametype = <0x00>;
        > 	tdm_config = <0x01>;
        > 	sign_extend = <0x00>;
        > 	tx_data_mode = <0x00>;
        > 	rx_data_mode = <0x00>;
        > 	msb_lsb_first = <0x00>;
        > 	pcm_lrck_period = <0x20>;
        > 	slot_width_select = <0x20>;
        > 	asrc_function_en = <0x00>;
        > 	pinctrl-names   = "default", "sleep";
        > 	pinctrl-0       = <&daudio2_pins_a  &daudio2_pins_b>;
        > 	pinctrl-1       = <&daudio2_pins_c>;
        > 	pinctrl_used	= <0x0>;
        > 	daudio_type = <0x1>;
        > 	status = "okay";
        > };
        
        1 条回复 最后回复 回复 引用 分享 1
        • W
          whycanservice2 LV 8 @dazb3 最后由 whycanservice2 编辑

          @dazb3

          修改如下:

          	daudio2_pins_a: daudio2@0 {
          		/* I2S_PIN: MCLK, BCLK, LRCK */
          		pins = "PB7", "PB5", "PB6";
          		function = "i2s2";
          		drive-strength = <20>;
          		bias-disable;
          	};
          
          	daudio2_pins_b: daudio2@1 {
          		/* I2S_PIN: DOUT0 */
          		pins = "PB4";
          		function = "i2s2_dout";
          		drive-strength = <20>;
          		bias-disable;
          	};
          
          	daudio2_pins_c: daudio2@2 {
          		/* I2S_PIN: DIN0 */
          		pins = “PB7", "PB5", "PB6", "PB4";
          		function = "io_disabled";
          		drive-strength = <20>;
          		bias-disable;
          	};
          
          D 1 条回复 最后回复 回复 引用 分享 2
          • D
            dazb3 LV 5 @whycanservice2 最后由 dazb3 编辑

            @whycanservice2 感谢您的回复。这似乎已经修复了错误。我不再收到错误,我可以使用“cat /sys/kernel/debug/pinctrl/pio/pinmux-pins”来查看引脚是否已分配给 I2S。

            但是我仍然无法通过 I2S 播放音频。我正在使用 tplayerdemo 播放带音频的视频。我会继续调查,但有什么想法吗?

            此外,是否有资源或文档可以让我稍后自己查找此信息?我查看了 Tina SDK 手册,但似乎找不到此信息。

            非常感谢您的帮助!

            W Z 2 条回复 最后回复 回复 引用 分享 2
            • W
              whycanservice2 LV 8 @dazb3 最后由 编辑

              @dazb3 需要切换声卡才可以使用i2s播放。给你一份文件吧。D1_Linux_AUDIOCODEC_开发指南.pdf

              1 条回复 最后回复 回复 引用 分享 1
              • H
                huafv LV 2 最后由 编辑

                666大佬yyds

                1 条回复 最后回复 回复 引用 分享 0
                • Z
                  zoengjay LV 5 @dazb3 最后由 编辑

                  @dazb3 there's a i2s doc on 100ask.net https://forums.100ask.net/uploads/short-url/3Da0tOrvGPKeV7Be36UVkzivSE6.pdf

                  to test i2s, why not try aplay or tinyplay?

                  D 1 条回复 最后回复 回复 引用 分享 1
                  • D
                    dazb3 LV 5 @zoenggit 最后由 编辑

                    @whycanservice2 @zoenggit

                    谢谢你们的帮助。附件中的文档和链接非常有用。

                    我用示波器检查了引脚,可以看到 I2S 正在输出。在咨询了 Lontium 后,我终于能够将正确的 I2S 格式输入芯片中。

                    作为参考,该芯片是 Lontium LT9611UXC。

                    以下是我的完整 dts:

                    /*
                     * Allwinner Technology CO., Ltd.
                     */
                    
                    /dts-v1/;
                    
                    /* optee used 7MB: SHM 2M: OS: 1M: TA:4M*/
                    /*/memreserve/ 0x41900000 0x00100000;*/
                    /* DSP used 1MB */
                    /* /memreserve/ 0x42000000 0x00100000; */
                    
                    #include "sun8iw20p1.dtsi"
                    
                    /{
                    	model = "sun8iw20";
                    	compatible = "allwinner,r528", "arm,sun8iw20p1";
                    
                    	reg_vdd_cpu: vdd-cpu {
                    		compatible = "pwm-regulator";
                    		pwms = <&pwm 3 5000 0>;
                    		regulator-name = "vdd_cpu";
                    		regulator-min-microvolt = <810000>;
                    		regulator-max-microvolt = <1160000>;
                    		regulator-settling-time-us = <4000>;
                    		regulator-always-on;
                    		regulator-boot-on;
                    		status = "okay";
                    	};
                    
                    	reg_usb1_vbus: usb1-vbus {
                    		compatible = "regulator-fixed";
                    		regulator-name = "usb1-vbus";
                    		regulator-min-microvolt = <5000000>;
                    		regulator-max-microvolt = <5000000>;
                    		regulator-enable-ramp-delay = <1000>;
                    		enable-active-high;
                    	};
                    
                    	reg_vdd_3v3: vdd_3v3 {
                    		compatible = "regulator-fixed";
                    		regulator-name = "vdd-3v3";
                    		regulator-min-microvolt = <3300000>;
                    		regulator-max-microvolt = <3300000>;
                    		enable-active-high;
                    	};
                    
                    	can0: can@0x0 {
                    		#address-cells = <1>;
                    		#size-cells = <0>;
                    		compatible = "allwinner,sun8i-can";
                    		device_type = "can0";
                    		id = <0>;
                    		status = "disabled";
                    	};
                    
                    	can1: can@0x1 {
                    		#address-cells = <1>;
                    		#size-cells = <0>;
                    		compatible = "allwinner,sun8i-can";
                    		device_type = "can1";
                    		id = <1>;
                    		status = "disabled";
                    	};
                    
                    	gpio-keys {
                    		compatible = "gpio-keys";
                    		status = "okay";
                    		vol-down-key {
                    			gpios = <&pio PE 1 GPIO_ACTIVE_LOW>;
                    			linux,code = <114>;
                    			label = "user key";
                    			debounce-interval = <10>;
                    			wakeup-source = <0x1>;
                    		};
                    	};
                    };
                    
                    &cpu0 {
                    	cpu-supply = <&reg_vdd_cpu>;
                    };
                    
                    &pio {
                    	sdc0_pins_a: sdc0@0 {
                    		allwinner,pins = "PF0", "PF1", "PF2",
                    				 "PF3", "PF4", "PF5";
                    		allwinner,function = "sdc0";
                    		allwinner,muxsel = <2>;
                    		allwinner,drive = <3>;
                    		allwinner,pull = <1>;
                    		pins = "PF0", "PF1", "PF2",
                    		       "PF3", "PF4", "PF5";
                    		function = "sdc0";
                    		drive-strength = <30>;
                    		bias-pull-up;
                    		power-source = <3300>;
                    	};
                    
                    
                    	sdc0_pins_b: sdc0@1 {
                    		pins = "PF0", "PF1", "PF2",
                    		       "PF3", "PF4", "PF5";
                    		function = "sdc0";
                    		drive-strength = <30>;
                    		bias-pull-up;
                    		power-source = <1800>;
                    	};
                    
                    	sdc0_pins_c: sdc0@2 {
                    		pins = "PF0", "PF1", "PF2",
                    			"PF3", "PF4", "PF5";
                    		function = "gpio_in";
                    	};
                    
                    	/* TODO: add jtag pin */
                    	sdc0_pins_d: sdc0@3 {
                    		pins = "PF2", "PF4";
                    		function = "uart0";
                    		drive-strength = <10>;
                    		bias-pull-up;
                    	};
                    
                    	sdc0_pins_e: sdc0@4 {
                    		pins = "PF0", "PF1", "PF3",
                    			"PF5";
                    		function = "jtag";
                    		drive-strength = <10>;
                    		bias-pull-up;
                    	};
                    
                    
                    	sdc1_pins_a: sdc1@0 {
                    		pins = "PG0", "PG1", "PG2",
                    		       "PG3", "PG4", "PG5";
                    		function = "sdc1";
                    		drive-strength = <30>;
                    		bias-pull-up;
                    	};
                    
                    	sdc1_pins_b: sdc1@1 {
                    		pins = "PG0", "PG1", "PG2",
                    		       "PG3", "PG4", "PG5";
                    			function = "sdc1";
                    	};
                    
                    	sdc2_pins_a: sdc2@0 {
                    		allwinner,pins = "PC2", "PC3", "PC4",
                    				 "PC5", "PC6", "PC7";
                    		allwinner,function = "sdc2";
                    		allwinner,muxsel = <3>;
                    		allwinner,drive = <3>;
                    		allwinner,pull = <1>;
                    		pins = "PC2", "PC3", "PC4",
                    			"PC5", "PC6", "PC7";
                    		function = "sdc2";
                    		drive-strength = <30>;
                    		bias-pull-up;
                    	};
                    
                    	sdc2_pins_b: sdc2@1 {
                    		pins = "PC2", "PC3", "PC4",
                    		       "PC5", "PC6", "PC7";
                    		function = "gpio_in";
                    	};
                    
                    	wlan_pins_a:wlan@0 {
                    		pins = "PG11";
                    		function = "clk_fanout1";
                    	};
                    
                    	uart0_pins_a: uart0_pins@0 {  /* For EVB1 board */
                    	pins = "PF2", "PF4";
                    	function = "uart0";
                    	drive-strength = <10>;
                    	bias-pull-up;
                    	};
                    
                    	uart0_pins_b: uart0_pins@1 {  /* For EVB1 board */
                    	pins = "PF2", "PF4";
                    	function = "gpio_in";
                    	};
                    
                    	uart1_pins_a: uart1_pins@0 {  /* For EVB1 board */
                    		pins = "PG6", "PG7", "PG8", "PG9";
                    		function = "uart1";
                    		drive-strength = <10>;
                    		bias-pull-up;
                    	};
                    
                    	uart1_pins_b: uart1_pins {  /* For EVB1 board */
                    		pins = "PG6", "PG7", "PG8", "PG9";
                    		function = "gpio_in";
                    	};
                    
                    	uart2_pins_a: uart2_pins@0 {  /* For EVB1 board */
                    		pins = "PC0", "PC1";
                    		function = "uart2";
                    		drive-strength = <10>;
                    		bias-pull-up;
                    	};
                    
                    	uart2_pins_b: uart2_pins@1 {  /* For EVB1 board */
                    		pins = "PC0", "PC1";
                    		function = "gpio_in";
                    	};
                    
                    	uart3_pins_a: uart3_pins@0 {  /* For t113_evb */
                    		pins = "PG8", "PG9";
                    		function = "uart3";
                    		drive-strength = <10>;
                    		bias-pull-up;
                    	};
                    
                    	uart4_pins_a: uart4_pins@0 {
                    		pins = "PE4", "PE5";
                    		function = "uart4";
                    		drive-strength = <10>;
                    		bias-pull-up;
                    	};
                    
                    	uart4_pins_b: uart4_pins@1 {
                    		pins = "PE4", "PE5";
                    		function = "gpio_in";
                    	};
                    
                    	uart5_pins_a: uart5_pins@0 {
                    		pins = "PE6", "PE7";
                    		function = "uart5";
                    		drive-strength = <10>;
                    		bias-pull-up;
                    	};
                    
                    	uart5_pins_b: uart5_pins@1 {
                    		pins = "PE6", "PE7";
                    		function = "gpio_in";
                    	};
                    
                    	twi1_pins_a: twi1@0 {
                    		pins = "PE14", "PE15";
                    		function = "twi1";
                    		drive-strength = <10>;
                    	};
                    
                    	twi1_pins_b: twi1@1 {
                    		pins = "PE14", "PE15";
                    		function = "gpio_in";
                    	};
                    
                    	twi2_pins_a: twi2@0 {
                    		pins = "PE12", "PE13";
                    		function = "twi2";
                    		drive-strength = <10>;
                    	};
                    
                    	twi2_pins_b: twi2@1 {
                    		pins = "PE12", "PE13";
                    		function = "gpio_in";
                    	};
                    
                    	twi3_pins_a: twi3@0 {
                    		pins = "PB6", "PB7";
                    		function = "twi3";
                    		drive-strength = <10>;
                    	};
                    
                    	twi3_pins_b: twi3@1 {
                    		pins = "PB6", "PB7";
                    		function = "gpio_in";
                    	};
                    
                    	s_cir0_pins_a: s_cir0@0 {
                    		pins = "PB1";
                    		function = "ir";
                    		drive-strength = <10>;
                    		bias-pull-up;
                    	};
                    
                    	s_cir0_pins_b: s_cir0@1 {
                    		pins = "PB1";
                    		function = "gpio_in";
                    	};
                    
                    	ir1_pins_a: ir1@0 {
                    		pins = "PB0";
                    		function = "ir";
                    		drive-strength = <10>;
                    		bias-pull-up;
                    	};
                    
                    	ir1_pins_b: ir1@1 {
                    		pins = "PB0";
                    		function = "gpio_in";
                    	};
                    
                    	dmic_pins_a: dmic@0 {
                    		/* DMIC_PIN: CLK, DATA0, DATA1, DATA2, DATA3*/
                    		pins = "PB12", "PB11", "PB10", "PE14", "PB8";
                    		function = "dmic";
                    		drive-strength = <20>;
                    		bias-disable;
                    	};
                    
                    	dmic_pins_b: dmic@1 {
                    		pins = "PB12", "PB11", "PB10", "PE14", "PB8";
                    		allwinner,function = "io_disabled";
                    		drive-strength = <20>;
                    		bias-disable;
                    	};
                    
                    	daudio0_pins_a: daudio0@0 {
                    		pins = "PB7", "PB5", "PB6", "PB4";
                    		allwinner,muxsel = <3>;
                    		function = "i2s2";
                    		drive-strength = <20>;
                    		bias-disable;
                    	};
                    
                    	daudio0_pins_b: daudio0_sleep@0 {
                    		pins = "PB7", "PB6", "PB5", "PB4";
                    		allwinner,muxsel = <3>;
                    		function = "io_disabled";
                    		drive-strength = <20>;
                    		bias-disable;
                    	};
                    
                    
                    	daudio2_pins_a: daudio2@0 {
                    		/* I2S_PIN: MCLK, BCLK, LRCK */
                    		pins = "PB7", "PB5", "PB6";
                    		function = "i2s2";
                    		drive-strength = <20>;
                    		bias-disable;
                    	};
                    
                    	daudio2_pins_b: daudio2@1 {
                    		/* I2S_PIN: DOUT0 */
                    		pins = "PB4";
                    		function = "i2s2_dout";
                    		drive-strength = <20>;
                    		bias-disable;
                    	};
                    
                    	daudio2_pins_c: daudio2@2 {
                    		/* I2S_PIN: DIN0 */
                    		pins = "PB7", "PB5", "PB6", "PB4";
                    		function = "io_disabled";
                    		drive-strength = <20>;
                    		bias-disable;
                    	};
                    
                    	spdif_pins_a: spdif@0 {
                    		/* SPDIF_PIN: SPDIF_OUT */
                    		pins = "PG18";
                    		function = "spdif";
                    		drive-strength = <20>;
                    		bias-disable;
                    	};
                    
                    	spdif_pins_b: spdif_sleep@0 {
                    		pins = "PG18";
                    		function = "io_disabled";
                    		drive-strength = <20>;
                    		bias-disable;
                    	};
                    
                    	gmac0_pins_a: gmac@0 {
                    		allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4",
                    				 "PG5", "PG12", "PG13", "PG14", "PG15";
                    		allwinner,function = "gmac0";
                    		allwinner,muxsel = <4>;
                    		allwinner,drive = <1>;
                    		allwinner,pull = <0>;
                    	};
                    
                    	gmac0_pins_b: gmac@1 {
                    		allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4",
                    				 "PG5", "PG12", "PG13", "PG14", "PG15";
                    		allwinner,function = "gpio_in";
                    		allwinner,muxsel = <0>;
                    		allwinner,drive = <1>;
                    		allwinner,pull = <0>;
                    	};
                    
                    	spi0_pins_a: spi0@0 {
                    		pins = "PC2", "PC4", "PC5","PC7", "PC6"; /*clk mosi miso hold wp*/
                    		function = "spi0";
                    		drive-strength = <10>;
                    	};
                    
                    	spi0_pins_b: spi0@1 {
                    		pins = "PC3";
                    		function = "spi0";
                    		drive-strength = <10>;
                    		bias-pull-up;   /* only CS should be pulled up */
                    	};
                    
                    	spi0_pins_c: spi0@2 {
                    		pins = "PC2", "PC3", "PC4", "PC5","PC6", "PC7";
                    		function = "gpio_in";
                    		drive-strength = <10>;
                    	};
                    
                    	spi1_pins_a: spi1@0 {
                    		pins = "PB11", "PB10", "PB9","PB8", "PB0"; /*clk mosi miso hold wp*/
                    		function = "spi1";
                    		drive-strength = <10>;
                    	};
                    
                    	spi1_pins_b: spi1@1 {
                    		pins = "PB12";
                    		function = "spi1";
                    		drive-strength = <10>;
                    		bias-pull-up;   // only CS should be pulled up
                    	};
                    
                    	spi1_pins_c: spi1@2 {
                    		allwinner,pins = "PB0", "PB8", "PB9", "PB10","PB11", "PB12";
                    		allwinner,function = "gpio_in";
                    		allwinner,muxsel = <0>;
                    		drive-strength = <10>;
                    	};
                    
                    	pwm2_pin_a: pwm2@0 {
                    		pins = "PE8";
                    		function = "pwm2";
                    		drive-strength = <10>;
                    		bias-pull-up;
                    	};
                    
                    	pwm2_pin_b: pwm2@1 {
                    		pins = "PE8";
                    		function = "gpio_in";
                    	};
                    
                    	pwm3_pin_a: pwm3@0 {
                    		pins = "PB0";
                    		function = "pwm3";
                    		drive-strength = <10>;
                    		bias-pull-up;
                    	};
                    
                    	pwm3_pin_b: pwm3@1 {
                    		pins = "PB0";
                    		function = "gpio_in";
                    	};
                    
                    	dsi4lane_pins_a: dsi4lane@0 {
                    		allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9";
                    		allwinner,pname = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9";
                    		allwinner,function = "dsi4lane";
                    		allwinner,muxsel = <4>;
                    		allwinner,drive = <3>;
                    		allwinner,pull = <0>;
                    	};
                    
                    	dsi4lane_pins_b: dsi4lane@1 {
                    		allwinner,pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9";
                    		allwinner,pname = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9";
                    		allwinner,function = "dsi4lane_suspend";
                    		allwinner,muxsel = <7>;
                    		allwinner,drive = <1>;
                    		allwinner,pull = <0>;
                    	};
                    };
                    
                    
                    &uart0 {
                    	status = "disabled";
                    };
                    
                    &uart1 {
                    	status = "disabled";
                    };
                    
                    &uart2 {
                    	status = "disabled";
                    };
                    
                    &uart3 {
                    	status = "disabled";
                    };
                    
                    &uart4 {
                    	pinctrl-names = "default", "sleep";
                    	pinctrl-0 = <&uart4_pins_a>;
                    	pinctrl-1 = <&uart4_pins_b>;
                    	status = "okay";
                    };
                    
                    &uart5 {
                    	pinctrl-names = "default", "sleep";
                    	pinctrl-0 = <&uart5_pins_a>;
                    	pinctrl-1 = <&uart5_pins_b>;
                    	status = "okay";
                    };
                    
                    &sdc2 {
                    	non-removable;
                    	bus-width = <4>;
                    	mmc-ddr-1_8v;
                    	mmc-hs200-1_8v;
                    	no-sdio;
                    	no-sd;
                    	ctl-spec-caps = <0x308>;
                    	cap-mmc-highspeed;
                    	sunxi-power-save-mode;
                    	sunxi-dis-signal-vol-sw;
                    	mmc-bootpart-noacc;
                    	max-frequency = <150000000>;
                    	/*vmmc-supply = <&reg_dcdc1>;*/
                    	/*emmc io vol 3.3v*/
                    	/*vqmmc-supply = <&reg_aldo1>;*/
                    	/*emmc io vol 1.8v*/
                    	/*vqmmc-supply = <&reg_eldo1>;*/
                    	status = "disabled";
                    };
                    
                    &sdc0 {
                    	bus-width = <4>;
                    	cd-gpios = <&pio PF 6 (GPIO_ACTIVE_LOW | GPIO_PULL_DOWN)>;
                    	/*non-removable;*/
                    	broken-cd;
                    	/*cd-inverted*/
                    	/*data3-detect;*/
                    	/*card-pwr-gpios = <&pio PH 14 1 1 2 0xffffffff>;*/
                    	/*cd-used-24M;*/
                    	cap-sd-highspeed;
                    	/*sd-uhs-sdr50;*/
                    	/*sd-uhs-ddr50;*/
                    	/*sd-uhs-sdr104;*/
                    	no-sdio;
                    	no-mmc;
                    	sunxi-power-save-mode;
                    	/*sunxi-dis-signal-vol-sw;*/
                    	max-frequency = <150000000>;
                    	ctl-spec-caps = <0x8>;
                    	/*vmmc-supply = <&reg_dcdc1>;*/
                    	/*vqmmc33sw-supply = <&reg_dcdc1>;*/
                    	/*vdmmc33sw-supply = <&reg_dcdc1>;*/
                    	/*vqmmc18sw-supply = <&reg_eldo1>;*/
                    	/*vdmmc18sw-supply = <&reg_eldo1>;*/
                    	status = "okay";
                    };
                    
                    &sdc1 {
                    	bus-width = <4>;
                    	no-mmc;
                    	no-sd;
                    	cap-sd-highspeed;
                    	/*sd-uhs-sdr12*/
                    	/*sd-uhs-sdr25;*/
                    	/*sd-uhs-sdr50;*/
                    	/*sd-uhs-ddr50;*/
                    	/*sd-uhs-sdr104;*/
                    	/*sunxi-power-save-mode;*/
                    	/*sunxi-dis-signal-vol-sw;*/
                    	cap-sdio-irq;
                    	keep-power-in-suspend;
                    	ignore-pm-notify;
                    	max-frequency = <150000000>;
                    	ctl-spec-caps = <0x8>;
                    	status = "disabled";
                    };
                    
                    &rtc {
                    	status = "disabled";
                    };
                    
                    &twi0 {
                    	status = "disabled";
                    };
                    
                    &twi1 {
                    	clock-frequency = <400000>;
                    	pinctrl-0 = <&twi1_pins_a>;
                    	pinctrl-1 = <&twi1_pins_b>;
                    	pinctrl-names = "default", "sleep";
                    	// twi_drv_used = <1>;
                    	// dmas = <&dma 45>, <&dma 45>;
                    	// dma-names = "tx", "rx";
                    	status = "okay";
                    	rtc@32 {
                    		compatible = "epson,rx8025t";
                    		reg = <0x32>;
                    		status = "okay";
                        };
                    
                    	edt-ft5x06@38 {
                    		compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
                    		reg = <0x38>;
                    		interrupt-parent = <&pio>;
                    		interrupts = <PE 10 IRQ_TYPE_EDGE_FALLING>; //IRQ_TYPE_LEVEL_LOW
                    		// reset-gpios = <&pio PD 23 1 0xffffffff 0xffffffff 1>;
                    		// gpio-controller;
                    		touchscreen-size-x=<1024>;                                                                                          
                            	touchscreen-size-y=<600>; 
                    		status = "okay";
                    	};
                    
                    	ctp {
                    		device_type = "ctp";
                    		status = "okay";
                    		ctp_twi_id = <0x1>;
                    		ctp_twi_addr = <0x38>;
                    		ctp_screen_max_x = <0x400>;
                    		ctp_screen_max_y = <0x258>;
                    		ctp_revert_x_flag = <0x0>;
                    		ctp_revert_y_flag = <0x1>;
                    		ctp_exchange_x_y_flag = <0x1>;
                    		ctp_int_port = <&pio PE 10 GPIO_ACTIVE_HIGH>;
                    		// ctp_wakeup = <&pio PB 7 GPIO_ACTIVE_HIGH>;
                    		ctp-supply = <&reg_vdd_3v3>;
                    		ctp_power_ldo_vol = <3300>;
                    	};
                    };
                    
                    &twi2 {
                    	status = "disabled";
                    };
                    
                    &spi0 {
                    	status = "disabled";
                    };
                    
                    &spi1 {
                    	status = "disabled";
                    };
                    
                    &ledc {
                    	status	= "disabled";
                    };
                    
                    &s_cir0 {
                    	pinctrl-names = "default";
                    	pinctrl-0 = <&s_cir0_pins_a>;
                    	status = "okay";
                    };
                    
                    &ir1 {
                    	pinctrl-names = "default";
                    	pinctrl-0 = <&ir1_pins_a>;
                    	status = "disabled";
                    };
                    
                    &gmac0 {
                    	pinctrl-0 = <&gmac0_pins_a>;
                    	pinctrl-1 = <&gmac0_pins_b>;
                    	pinctrl-names = "default", "sleep";
                    	phy-mode = "rmii";
                    	use_ephy25m = <0>;//1
                    	tx-delay = <7>;//7
                    	rx-delay = <31>;//31
                    	phy-rst = <&pio PG 6 GPIO_ACTIVE_HIGH>;
                    	status = "okay";
                    };
                    
                    &soc {
                    	platform@45000004 {
                    		reg = <0x0 0x45000004 0x0 0x0>;
                    		eraseflag   = <1>;
                    		next_work   = <3>;
                    		debug_mode  = <8>;
                    	};
                    
                    	target@45000008 {
                    		reg = <0x0 0x45000008 0x0 0x0>;
                    		boot_clock = <1008>;	/*CPU boot frequency, Unit: MHz*/
                    		storage_type = <0xffffffff>; /*boot medium, 0-nand, 1-card0, 2-card2, -1(defualt)auto scan*/
                    		burn_key = <0>;		/*1:support burn key; 0:not support burn key*/
                    		dragonboard_test = <0>;	/*1:support card boot dragonboard; 0:not support card boot dragonboard*/
                    	};
                    
                    	card0_boot_para@2 {
                    		/*
                    		 * Avoid dtc compiling warnings.
                    		 * @TODO: Developer should modify this to the actual value
                    		 */
                    		reg = <0x0 0x2 0x0 0x0>;
                    		device_type = "card0_boot_para";
                    		card_ctrl = <0x0>;
                    		card_high_speed = <0x1>;
                    		card_line = <0x4>;
                    		pinctrl-0 = <&sdc0_pins_a>;
                    	};
                    
                    	card2_boot_para@3 {
                    		/*
                    		 * Avoid dtc compiling warnings.
                    		 * @TODO: Developer should modify this to the actual value
                    		 */
                    		reg = <0x0 0x3 0x0 0x0>;
                    		device_type = "card2_boot_para";
                    		card_ctrl = <0x2>;
                    		card_high_speed = <0x1>;
                    		card_line = <0x4>;
                    		pinctrl-0 = <&sdc2_pins_a>;
                    		/*pinctrl-0 = <&sdc0_pins_a>;*/
                    		/*sdc_ex_dly_used = <0x2>;*/
                    		sdc_io_1v8 = <0x1>;
                    		/*sdc_type = "tm4";*/
                    		sdc_tm4_hs200_max_freq = <150>;
                    		sdc_tm4_hs400_max_freq = <100>;
                    		sdc_ex_dly_used = <2>;
                    		/*sdc_tm4_win_th = <8>;*/
                    		/*sdc_dis_host_caps = <0x180>;*/
                    	};
                    
                    	rfkill: rfkill@0 {
                    		status        = "disabled";
                    	};
                    
                    	btlpm: btlpm@0 {
                    		status      = "disabled";
                    	};
                    
                    	car_reverse:car-reverse {
                    		status      = "disabled";
                    	};
                    };
                    
                    &vind0 {
                    	csi_top = <378000000>;
                    	csi_isp = <327000000>;
                    	status = "disabled"; /* enable twi and ver1 spi-nand max freq 30M */
                    };
                    
                    /*----------------------------------------------------------------------------------
                    ;tv configuration
                    ;interface          (interface type,1<->cvbs,2<->YPBPR,4<->SVIDEO)
                    ;dac_type           (0<->composite,1<->luma,2<->chroma,3<->reserved,4<->y/green,
                    ;                    5<->u/pb/blue,6<->v/pr/red)
                    ;dac_src            (dac no,support dac_src0~dac_src3,dac num max is 4)
                    ;NOTE:              tv0,tv1 can not use the same dac_src.
                    ;---------------------------------------------------------------------------------*/
                    &tv0 {
                    	interface       = <1>;
                    	dac_type0       = <0>;
                    	dac_src0        = <0>;
                    
                    	status =  "okay";
                    };
                    
                    /*
                    tvd configuration
                    used                   (create device, 0: do not create device, 1: create device)
                    agc_auto_enable        (0: agc manual mode,agc_manual_value is valid; 1: agc auto mode)
                    agc_manual_value       (agc manual value, default value is 64)
                    cagc_enable            (cagc        0: disable, 1: enable)
                    fliter_used            (3d fliter   0: disable, 1: enable)
                    support two PMU power  (tvd_power0, tvd_power1)
                    support two GPIO power (tvd_gpio0, tvd_gpio1)
                    NOTICE: If tvd need pmu power or gpio power,params need be configured under [tvd]
                    tvd_sw                 (the switch of all tvd driver.)
                    tvd_interface          (0: cvbs, 1: ypbpr,)
                    tvd_format             (0:TVD_PL_YUV420 , 1: MB_YUV420, 2: TVD_PL_YUV422)
                    tvd_system             (0:ntsc, 1:pal)
                    tvd_row                (total row number in multi channel mode 1-2)
                    tvd_column             (total column number in multi channel mode 1-2)
                    tvd_channelx_en        (0:disable, 1~4:position in multi channel mode,In single channel
                                           mode,mean enable)
                    tvd_row*tvd_column is the total tvd channel number to be used in multichannel mode
                    +--------------------+--------------------+
                    |                    |                    |
                    |                    |                    |
                    |         1          |         2          |
                    |                    |                    |
                    |                    |                    |
                    +--------------------+--------------------+
                    |                    |                    |
                    |                    |                    |
                    |         3          |         4          |
                    |                    |                    |
                    |                    |                    |
                    +--------------------+--------------------+
                    */
                    
                    &tvd {
                    	tvd_sw          = <1>;
                    	tvd_interface   = <0>;
                    	tvd_format      = <0>;
                    	tvd_system      = <1>;
                    	tvd_row         = <1>;
                    	tvd_column      = <1>;
                    	tvd_channel0_en = <1>;
                    	tvd_channel1_en = <0>;
                    	tvd_channel2_en = <0>;
                    	tvd_channel3_en = <0>;
                    	/*tvd_gpio0 = <&pio PD 22 GPIO_ACTIVE_HIGH>;*/
                    	/*tvd_gpio1 = <&pio PD 23 GPIO_ACTIVE_HIGH>;*/
                    	/*tvd_gpio2 = <&pio PD 24 GPIO_ACTIVE_HIGH>;*/
                    	/*	dc1sw-supply = <&reg_dc1sw>;*/
                    	/*	eldo3-supply = <&reg_eldo3>;*/
                    	/*tvd_power0      = "dc1sw"*/
                    	/*tvd_power1      = "eldo3"*/
                    };
                    
                    &tvd0 {
                    	used                    = <1>;
                    	agc_auto_enable         = <1>;
                    	agc_manual_value        = <64>;
                    	cagc_enable             = <1>;
                    	fliter_used             = <1>;
                    };
                    
                    &hdmi {
                    	status = "disabled";
                    };
                    
                    /* Audio Driver modules */
                    &codec {
                    	/* MIC and headphone gain setting */
                    	mic1gain 		= <0x1F>;
                    	mic2gain 		= <0x1F>;
                    	mic3gain 		= <0x1F>;
                    	/* ADC/DAC DRC/HPF func enabled */
                    	/* 0x1:DAP_HP_EN; 0x2:DAP_SPK_EN; 0x3:DAP_HPSPK_EN */
                    	adcdrc_cfg		= <0x0>;
                    	adchpf_cfg		= <0x1>;
                    	dacdrc_cfg		= <0x0>;
                    	dachpf_cfg		= <0x0>;
                    	/* Volume about */
                    	digital_vol 	= <0x00>;
                    	lineout_vol 	= <0x1a>;
                    	headphonegain	= <0x03>;
                    	/* Pa enabled about */
                    	pa_level 		= <0x01>;
                    	pa_pwr_level 	= <0x01>;
                    	pa_msleep_time 	= <0x78>;
                    	/* gpio-spk	= <&pio PE 11 GPIO_ACTIVE_LOW>; */
                    	/* CMA config about */
                    	playback_cma	= <128>;
                    	capture_cma	= <256>;
                    	/* regulator about */
                    	/* avcc-supply	= <&reg_aldo1>; */
                    	/* hpvcc-supply	= <&reg_eldo1>; */
                    	status = "okay";
                    };
                    
                    &sndcodec {
                    	hp_detect_case	= <0x00>;
                    	jack_enable		= <0x01>;
                    	status = "okay";
                    };
                    
                    &dummy_cpudai {
                    	playback_cma	= <128>;
                    	capture_cma		= <256>;
                    	status			= "okay";
                    };
                    
                    &dmic {
                    	pinctrl-names   = "default","sleep";
                    	pinctrl-0       = <&dmic_pins_a>;
                    	pinctrl-1       = <&dmic_pins_b>;
                    	status = "okay";
                    };
                    
                    &dmic_codec {
                    	status = "okay";
                    };
                    
                    &sounddmic {
                    	status = "okay";
                    };
                    
                    /*-----------------------------------------------------------------------------
                     * pcm_lrck_period	16/32/64/128/256
                     *			(set 0x20 for HDMI audio out)
                     * slot_width_select	16bits/20bits/24bits/32bits
                     *			(set 0x20 for HDMI audio out)
                     * frametype		0 --> short frame = 1 clock width;
                     *			1 --> long frame = 2 clock width;
                     * tdm_config		0 --> pcm
                     *			1 --> i2s
                     *			(set 0x01 for HDMI audio out)
                     * mclk_div		0 --> not output
                     *			1/2/4/6/8/12/16/24/32/48/64/96/128/176/192
                     *			(set mclk as external codec clk source, freq is pll_audio/mclk_div)
                     * pinctrl_used		0 --> I2S/PCM use for internal (e.g. HDMI)
                     *			1 --> I2S/PCM use for external audio
                     * daudio_type:		0 --> external audio type
                     *			1 --> HDMI audio type
                     *---------------------------------------------------------------------------*/
                    
                    &daudio0 {
                    	mclk_div 	= <0x01>;
                    	frametype 	= <0x00>;
                    	tdm_config 	= <0x01>;
                    	sign_extend 	= <0x00>;
                    	msb_lsb_first 	= <0x00>;
                    	pcm_lrck_period = <0x80>;
                    	slot_width_select = <0x20>;
                    	pinctrl-names   = "default", "sleep";
                    	pinctrl-0       = <&daudio0_pins_a>;
                    	pinctrl-1       = <&daudio0_pins_b>;
                    	pinctrl_used	= <0x0>;
                    	status = "disabled";
                    };
                    
                    /*-----------------------------------------------------------------------------
                     * simple-audio-card,name	name of sound card, e.g.
                     *				"snddaudio0" --> use for external audio
                     *				"sndhdmi" --> use for HDMI audio
                     * sound-dai			"snd-soc-dummy" --> use for I2S
                     *				"hdmiaudio" --> use for HDMI audio
                     *				"ac108" --> use for external audio of ac108
                     *---------------------------------------------------------------------------*/
                    &sounddaudio0 {
                    	status = "disabled";
                    	daudio0_master: simple-audio-card,codec {
                    		/* sound-dai = <&ac108>; */
                    	};
                    };
                    
                    
                    &daudio1 {
                    	status = "disabled";
                    };
                    
                    &sounddaudio1 {
                    	status = "disabled";
                    	daudio1_master: simple-audio-card,codec {
                    		/* sound-dai = <&ac108>; */
                    	};
                    };
                    
                    /*-----------------------------------------------------------------------------
                     * pcm_lrck_period	16/32/64/128/256
                     *			(set 0x20 for HDMI audio out)
                     * slot_width_select	16bits/20bits/24bits/32bits
                     *			(set 0x20 for HDMI audio out)
                     * frametype		0 --> short frame = 1 clock width;
                     *			1 --> long frame = 2 clock width;
                     * tdm_config		0 --> pcm
                     *			1 --> i2s
                     *			(set 0x01 for HDMI audio out)
                     * mclk_div		0 --> not output
                     *			1/2/4/6/8/12/16/24/32/48/64/96/128/176/192
                     *			(set mclk as external codec clk source, freq is pll_audio/mclk_div)
                     * pinctrl_used		0 --> I2S/PCM use for internal (e.g. HDMI)
                     *			1 --> I2S/PCM use for external audio
                     * daudio_type:		0 --> external audio type
                     *			1 --> HDMI audio type
                     *---------------------------------------------------------------------------*/
                    
                    &daudio2 {
                    	mclk_div 	= <0x80>;
                    	frametype 	= <0x01>;
                    	tdm_config 	= <0x01>;
                    	sign_extend 	= <0x00>;
                    	msb_lsb_first 	= <0x00>;
                    	pcm_lrck_period = <0x20>;
                    	slot_width_select = <0x20>;
                    	pinctrl-names   = "default", "sleep";
                    	pinctrl-0       = <&daudio2_pins_a  &daudio2_pins_b>;
                    	pinctrl-1       = <&daudio2_pins_c>;
                    	pinctrl_used	= <0x1>;
                    	status = "okay";
                    };
                    
                    /* if HDMI audio is used, daudio2 should be enable. */
                    &hdmiaudio {
                    	status = "disabled";
                    };
                    
                    &sounddaudio2 {
                    	status = "okay";
                    	daudio2_master: simple-audio-card,codec {
                    		/* sound-dai = <&ac108>; */
                    	};
                    };
                    
                    &spdif {
                    	status = "okay";
                    };
                    
                    &soundspdif {
                    	status = "okay";
                    };
                    
                    /*
                     *usb_port_type: usb mode. 0-device, 1-host, 2-otg.
                     *usb_detect_type: usb hotplug detect mode. 0-none, 1-vbus/id detect, 2-id/dpdm detect.
                     *usb_detect_mode: 0-thread scan, 1-id gpio interrupt.
                     *usb_id_gpio: gpio for id detect.
                     *usb_det_vbus_gpio: gpio for id detect. gpio or "axp_ctrl";
                     *usb_wakeup_suspend:0-SUPER_STANDBY, 1-USB_STANDBY.
                     */
                    &usbc0 {
                    	device_type = "usbc0";
                    	usb_port_type = <0x01>;
                    	usb_detect_type = <0x1>;
                    	usb_regulator_io = "nocare";
                    	usb_wakeup_suspend = <0>;
                    	status = "okay";
                    };
                    
                    &ehci0 {
                    	drvvbus-supply = <&reg_usb1_vbus>;
                    	status = "okay";
                    };
                    
                    &ohci0 {
                    	drvvbus-supply = <&reg_usb1_vbus>;
                    	status = "okay";
                    };
                    
                    &usbc1 {
                    	device_type = "usbc1";
                    	usb_port_type = <0x01>;
                    	usb_detect_type = <0x1>;
                    	usb_regulator_io = "nocare";
                    	usb_wakeup_suspend = <0>;
                    	status = "okay";
                    };
                    &ehci1 {
                    	drvvbus-supply = <&reg_usb1_vbus>;
                    	status = "okay";
                    };
                    
                    &ohci1 {
                    	drvvbus-supply = <&reg_usb1_vbus>;
                    	status = "okay";
                    };
                    
                    /*----------------------------------------------------------------------------------
                    disp init configuration
                    
                    disp_mode             (0:screen0<screen0,fb0>)
                    screenx_output_type   (0:none; 1:lcd; 2:tv; 3:hdmi;5:vdpo)
                    screenx_output_mode   (used for hdmi output, 0:480i 1:576i 2:480p 3:576p 4:720p50)
                                          (5:720p60 6:1080i50 7:1080i60 8:1080p24 9:1080p50 10:1080p60)
                    screenx_output_format (for hdmi, 0:RGB 1:yuv444 2:yuv422 3:yuv420)
                    screenx_output_bits   (for hdmi, 0:8bit 1:10bit 2:12bit 2:16bit)
                    screenx_output_eotf   (for hdmi, 0:reserve 4:SDR 16:HDR10 18:HLG)
                    screenx_output_cs     (for hdmi, 0:undefined  257:BT709 260:BT601  263:BT2020)
                    screenx_output_dvi_hdmi (for hdmi, 0:undefined 1:dvi mode 2:hdmi mode)
                    screen0_output_range   (for hdmi, 0:default 1:full 2:limited)
                    screen0_output_scan    (for hdmi, 0:no data 1:overscan 2:underscan)
                    screen0_output_aspect_ratio  (for hdmi, 8-same as original picture 9-4:3 10-16:9 11-14:9)
                    fbx format            (4:RGB655 5:RGB565 6:RGB556 7:ARGB1555 8:RGBA5551 9:RGB888 10:ARGB8888 12:ARGB4444)
                    fbx pixel sequence    (0:ARGB 1:BGRA 2:ABGR 3:RGBA)
                    fb0_scaler_mode_enable(scaler mode enable, used FE)
                    fbx_width,fbx_height  (framebuffer horizontal/vertical pixels, fix to output resolution while equal 0)
                    lcdx_backlight        (lcd init backlight,the range:[0,256],default:197
                    lcdx_yy               (lcd init screen bright/contrast/saturation/hue, value:0~100, default:50/50/57/50)
                    lcd0_contrast         (LCD contrast, 0~100)
                    lcd0_saturation       (LCD saturation, 0~100)
                    lcd0_hue              (LCD hue, 0~100)
                    framebuffer software rotation setting:
                    disp_rotation_used:   (0:disable; 1:enable,you must set fbX_width to lcd_y,
                    set fbX_height to lcd_x)
                    degreeX:              (X:screen index; 0:0 degree; 1:90 degree; 3:270 degree)
                    degreeX_Y:            (X:screen index; Y:layer index 0~15; 0:0 degree; 1:90 degree; 3:270 degree)
                    devX_output_type : config output type in bootGUI framework in UBOOT-2018.
                    				   (0:none; 1:lcd; 2:tv; 4:hdmi;)
                    devX_output_mode : config output resolution(see include/video/sunxi_display2.h) of bootGUI framework in UBOOT-2018
                    devX_screen_id   : config display index of bootGUI framework in UBOOT-2018
                    devX_do_hpd      : whether do hpd detectation or not in UBOOT-2018
                    chn_cfg_mode     : Hardware DE channel allocation config. 0:single display with 6
                    				   channel, 1:dual display with 4 channel in main display and 2 channel in second
                                       display, 2:dual display with 3 channel in main display and 3 channel in second
                                       in display.
                    ----------------------------------------------------------------------------------*/
                    &disp {
                    	disp_init_enable         = <1>;
                    	disp_mode                = <0>;
                    
                    	screen0_output_type      = <1>;
                    	screen0_output_mode      = <4>;
                    
                    	screen1_output_type      = <1>;
                    	screen1_output_mode      = <4>;
                    
                    	screen1_output_format    = <0>;
                    	screen1_output_bits      = <0>;
                    	screen1_output_eotf      = <4>;
                    	screen1_output_cs        = <257>;
                    	screen1_output_dvi_hdmi  = <2>;
                    	screen1_output_range     = <2>;
                    	screen1_output_scan      = <0>;
                    	screen1_output_aspect_ratio = <8>;
                    
                    	dev0_output_type         = <1>;
                    	dev0_output_mode         = <4>;
                    	dev0_screen_id           = <0>;
                    	dev0_do_hpd              = <0>;
                    
                    	dev1_output_type         = <4>;
                    	dev1_output_mode         = <10>;
                    	dev1_screen_id           = <1>;
                    	dev1_do_hpd              = <1>;
                    
                    	def_output_dev           = <0>;
                    	hdmi_mode_check          = <1>;
                    
                    	fb0_format               = <0>;
                    	fb0_width                = <0>;
                    	fb0_height               = <0>;
                    
                    	fb1_format               = <0>;
                    	fb1_width                = <0>;
                    	fb1_height               = <0>;
                    	chn_cfg_mode             = <1>;
                    
                    	disp_para_zone           = <1>;
                    	/*VCC-LCD*/
                    /*	dc1sw-supply = <&reg_dc1sw>;*/
                    	/*VCC-DSI*/
                    /*	eldo3-supply = <&reg_eldo3>;*/
                    	/*VCC-PD*/
                    /*	dcdc1-supply = <&reg_dcdc1>;*/
                    };
                    
                    
                    /*----------------------------------------------------------------------------------
                    ;lcd0 configuration
                    
                    ;lcd_if:               0:hv(sync+de); 1:8080; 2:ttl; 3:lvds; 4:dsi; 5:edp; 6:extend dsi
                    ;lcd_hv_if             0:Parallel RGB; 8:Serial RGB; 10:Dummy RGB; 11: RGB Dummy;12:CCIR656
                    ;lcd_hv_clk_phase      0:0 degree;1:90 degree;2:180 degree;3:270 degree
                    ;lcd_hv_sync_polarity  0:vs low,hs low; 1:vs high,hslow; 2:vs low,hs high; 3:vs high,hs high
                    ;lcd_hv_syuv_seq       0:YUYV; 1:YVYU; 2:UYVY; 3:VYUY
                    ;lcd_cpu_if            0:18bit/1 cycle parallel(RGB666); 4:16bit/1cycle parallel (RGB565)
                    ;                      6:18bit/3 cycle parallel(RGB666); 7:16bit/2cycle parallel (RGB565)
                    ;lcd_cpu_te            0:frame auto trigger; 1:frame triggered by te rising edge; 2:frame triggered by te falling edge;
                    ;lcd_dsi_if            0:video mode; 1: Command mode; 2:video burst mode
                    ;lcd_dsi_te            0:frame auto trigger; 1:frame triggered by te rising edge; 2:frame triggered by te falling edge;
                    ;lcd_x:                lcd horizontal resolution
                    ;lcd_y:                lcd vertical resolution
                    ;lcd_width:            width of lcd in mm
                    ;lcd_height:           height of lcd in mm
                    ;lcd_dclk_freq:        in MHZ unit
                    ;lcd_pwm_freq:         in HZ unit
                    ;lcd_pwm_pol:          lcd backlight PWM polarity
                    ;lcd_pwm_max_limit     lcd backlight PWM max limit(<=255)
                    ;lcd_hbp:              hsync back porch(pixel) + hsync plus width(pixel);
                    ;lcd_ht:               hsync total cycle(pixel)
                    ;lcd_vbp:              vsync back porch(line) + vysnc plus width(line)
                    ;lcd_vt:               vysnc total cycle(line)
                    ;lcd_hspw:             hsync plus width(pixel)
                    ;lcd_vspw:             vysnc plus width(pixel)
                    ;lcd_lvds_if:          0:single link;  1:dual link
                    ;lcd_lvds_colordepth:  0:8bit; 1:6bit
                    ;lcd_lvds_mode:        0:NS mode; 1:JEIDA mode
                    ;lcd_frm:              0:disable; 1:enable rgb666 dither; 2:enable rgb656 dither
                    ;lcd_io_phase:         0:noraml; 1:intert phase(0~3bit: vsync phase; 4~7bit:hsync phase;
                    ;                      8~11bit:dclk phase; 12~15bit:de phase)
                    ;lcd_gamma_en          lcd gamma correction enable
                    ;lcd_bright_curve_en   lcd bright curve correction enable
                    ;lcd_cmap_en           lcd color map function enable
                    ;deu_mode              0:smoll lcd screen; 1:large lcd screen(larger than 10inch)
                    ;lcdgamma4iep:         Smart Backlight parameter, lcd gamma vale * 10;
                    ;                      decrease it while lcd is not bright enough; increase while lcd is too bright
                    ;smart_color           90:normal lcd screen 65:retina lcd screen(9.7inch)
                    ;Pin setting for special function ie.LVDS, RGB data or vsync
                    ;   name(donot care) = port:PD12<pin function><pull up or pull down><drive ability><output level>
                    ;Pin setting for gpio:
                    ;   lcd_gpio_X     = port:PD12<pin function><pull up or pull down><drive ability><output level>
                    ;Pin setting for backlight enable pin
                    ;   lcd_bl_en     = port:PD12<pin function><pull up or pull down><drive ability><output level>
                    ;fsync setting, pulse to csi
                    ;lcd_fsync_en          (0:disable fsync,1:enable)
                    ;lcd_fsync_act_time    (active time of fsync, unit:pixel)
                    ;lcd_fsync_dis_time    (disactive time of fsync, unit:pixel)
                    ;lcd_fsync_pol         (0:positive;1:negative)
                    ;gpio config: <&pio for cpu or &r_pio for cpus, port, port num, pio function,
                    pull up or pull down(default 0), driver level(default 1), data>
                    ;For dual link lvds: use lvds2link_pins_a  and lvds2link_pins_b instead
                    ;For rgb24: use rgb24_pins_a  and rgb24_pins_b instead
                    ;For lvds1: use lvds1_pins_a  and lvds1_pins_b instead
                    ;For lvds0: use lvds0_pins_a  and lvds0_pins_b instead
                    ;----------------------------------------------------------------------------------*/
                    &lcd0 {
                    	lcd_used            = <1>;
                    
                    	lcd_driver_name     = "he0801a068";
                    	lcd_backlight       = <50>;
                    	lcd_if              = <4>;
                    
                    	lcd_x               = <1920>;    // Horizontal Active
                    	lcd_y               = <1080>;    // Vertical Active
                    	lcd_width           = <150>;
                    	lcd_height          = <94>;
                    	lcd_dclk_freq       = <149>;     // Dot clock in MHz
                    
                    	lcd_pwm_used        = <1>;
                    	lcd_pwm_ch          = <7>;
                    	lcd_pwm_freq        = <50000>;
                    	lcd_pwm_pol         = <1>;
                    	lcd_pwm_max_limit   = <255>;
                    
                    	lcd_hbp             = <148>;     // Horizontal Back Porch
                    	lcd_ht              = <2200>;    // Horizontal Total
                    	lcd_hspw            = <44>;      // Horizontal Sync Pulse Width
                    	lcd_vbp             = <36>;      // Vertical Back Porch
                    	lcd_vt              = <1125>;    // Vertical Total
                    	lcd_vspw            = <5>;       // Vertical Sync Pulse Width
                    
                    	lcd_dsi_lane        = <4>;
                    	lcd_dsi_if          = <0>;
                    	lcd_dsi_format      = <0>;
                    	lcd_dsi_te          = <0>;
                    	lcd_frm             = <0>;
                    	lcd_io_phase        = <0>;
                    	lcd_gamma_en        = <0>;
                    	lcd_bright_curve_en = <0>;
                    	lcd_cmap_en         = <0>;
                    
                    	deu_mode            = <0>;
                    	lcdgamma4iep        = <22>;
                    	smart_color         = <90>;
                    
                    	lcd_gpio_0 = <&pio PG 13 GPIO_ACTIVE_HIGH>;
                    	pinctrl-0 = <&dsi4lane_pins_a>;
                    	pinctrl-1 = <&dsi4lane_pins_b>;
                    };
                    
                    
                    &pwm2 {
                    	pinctrl-names = "active", "sleep";
                    	pinctrl-0 = <&pwm2_pin_a>;
                    	pinctrl-1 = <&pwm2_pin_b>;
                    	status = "okay";
                    };
                    
                    &pwm3 {
                    	pinctrl-names = "active", "sleep";
                    	pinctrl-0 = <&pwm3_pin_a>;
                    	pinctrl-1 = <&pwm3_pin_b>;
                    	status = "okay";
                    };
                    
                    &pwm5 {
                    	status = "disabled";
                    };
                    
                    &pwm7 {
                    	status = "disabled";
                    };
                    
                    &gpadc {
                    	channel_num = <1>;
                    	channel_select = <0x1>;
                    	channel_data_select = <0>;
                    	channel_compare_select = <0x1>;
                    	channel_cld_select = <0x1>;
                    	channel_chd_select = <0>;
                    	channel0_compare_lowdata = <1700000>;
                    	channel0_compare_higdata = <1200000>;
                    	channel1_compare_lowdata = <460000>;
                    	channel1_compare_higdata = <1200000>;
                    	key_cnt = <5>;
                    	key0_vol = <210>;
                    	key0_val = <115>;
                    	key1_vol = <410>;
                    	key1_val = <114>;
                    	key2_vol = <590>;
                    	key2_val = <119>;
                    	key3_vol = <750>;
                    	key3_val = <373>;
                    	key4_vol = <880>;
                    	key4_val = <28>;
                    	status = "okay";
                    };
                    
                    &tpadc {
                    	key_cnt = <4>;
                    	key1 = <210 115>;
                    	key2 = <410 114>;
                    	key3 = <590 119>;
                    	key4 = <750 373>;
                    	status = "okay";
                    };
                    
                    

                    再次感谢!

                    1 条回复 最后回复 回复 引用 分享 0
                    • 1 / 1
                    • First post
                      Last post

                    Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

                    行为准则 | 用户协议 | 隐私权政策