Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页
    1. Home
    2. dazb3
    D
    • Profile
    • Following 0
    • Followers 0
    • my integral 1021
    • Topics 8
    • Posts 21
    • Best 4
    • Groups 0

    dazb3LV 5

    @dazb3

    1021
    integral
    5
    Reputation
    11
    Profile views
    21
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    dazb3 Unfollow Follow

    Best posts made by dazb3

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

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

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

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

      非常感谢您的帮助!

      posted in 其它全志芯片讨论区
      D
      dazb3
    • Reply: T113 Tina上面增加配置了gstreamer之后,编译会报下面的错误

      我找到了解决方案:

      在 gst1-omx Makefile(位于 t113-sdk/package/multimedia/gst1-omx)中,您需要将 t113 添加到 TARGET_BOARD_PLATFORM

      之前:
      ifeq ($(TARGET_BOARD_PLATFORM),$(filter $(TARGET_BOARD_PLATFORM), r16 r311 r58 r40 g102 r11 r7 r528))
      OMX_COMPILE_TOOL_CHAIN = arm-openwrt-linux
      endif

      之后:
      ifeq ($(TARGET_BOARD_PLATFORM),$(filter $(TARGET_BOARD_PLATFORM), r16 r311 r58 r40 g102 r11 r7 r528 t113))
      OMX_COMPILE_TOOL_CHAIN = arm-openwrt-linux
      endif

      posted in 编译和烧写问题专区
      D
      dazb3
    • [付费] T113-S3 视频播放系统

      我们正在寻求开发一款 1080p 60hz 视频/媒体播放设备。我们需要一个视频播放系统,允许在播放另一个视频时以不可见的方式预加载一个视频,然后在这些视频之间无缝切换。

      我们还需要视频无缝循环。

      应用程序的大部分高级逻辑已经实现。然而,我们在视频播放的上述方面遇到了困难。

      使用 Tina Linux SDK,我尝试改造 tplayer 库以实现上述目标,但没有成功。

      我们愿意聘请某人开发或修改 T113-S3 芯片上的视频播放系统。

      谢谢,
      Daz

      posted in 其它全志芯片讨论区
      D
      dazb3
    • Reply: T113: Python 3.5 Package Cross-Compile

      @zoenggit Many thanks for your suggestion and link. Using it, I was able to figure out how to edit the makefile to get spidev to correct build.

      I created folder tina-d1-h/package/lang/python3-spidev, and in it I create Makefile. Below is the Makefile:

      # Copyright (C) 2017 Onion Corporation
      #
      # Author: Lazar Demin  <lazar@onion.io>
      #
      # This is free software, licensed under the GNU General Public License v2.
      # See /LICENSE for more information.
      #
      
      include $(TOPDIR)/rules.mk
      PKG_NAME:=python-spidev
      PKG_VERSION:=4.0.1
      PKG_RELEASE:=2
      
      
      PKG_SOURCE_PROTO:=git
      PKG_SOURCE_VERSION:=HEAD
      PKG_SOURCE_URL:=https://github.com/OnionIoT/python-spidev.git
      PKG_SOURCE_SUBDIR:=$(PKG_NAME)
      PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE).tar.gz
      PKG_BUILD_DIR:=$(COMPILE_DIR)/$(PKG_NAME)
      
      include $(BUILD_DIR)/package.mk
      
      # python module package
      define Package/python3-spidev
      	SECTION:=lang
      	CATEGORY:=Languages
      	SUBMENU:=Python
      	TITLE:=Python3 module with object that implements SPI transactions
      	DEPENDS:=+python3
      endef
      
      define Package/python3-spidev/description
      Python3 module with object that implements SPI transactions
      endef
      
      
      TARGET_CFLAGS += $(FPIC)
      TARGET_LIBS += -l m
      
      PYTHON3_VERSION = 3.5
      TARGET_PYTHON3_INC += "-I$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION)/"
      
      define Build/Compile	
      	$(MAKE) -C $(PKG_BUILD_DIR) wipe
      	
      	$(MAKE) -C $(PKG_BUILD_DIR) \
      	CC="$(TARGET_CC)" \
      	CFLAGS="$(TARGET_CFLAGS)" \
      	LDFLAGS="$(TARGET_LDFLAGS)" \
      	LIB="$(TARGET_LIBS)" \
      	PYTHON_VERSION="$(PYTHON3_VERSION)" \
      	PYINC="$(TARGET_PYTHON3_INC)"
      endef
      
      define Package/python3-spidev/install
      	# install the python module
      	$(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON3_VERSION)
      	$(CP)   $(PKG_BUILD_DIR)/lib/python$(PYTHON3_VERSION)/spidev.so $(1)/usr/lib/python$(PYTHON3_VERSION)
      endef
      
      $(eval $(call BuildPackage,python3-spidev))
      

      I then included the package in "make menuconfig". Then I did make, and it seems that I do now have the spidev package!

      Many thanks for your assistance!

      posted in 其它全志芯片讨论区
      D
      dazb3

    Latest posts made by dazb3

    • Reply: T113: Python 3.5 Package Cross-Compile

      @zoenggit Many thanks for your suggestion and link. Using it, I was able to figure out how to edit the makefile to get spidev to correct build.

      I created folder tina-d1-h/package/lang/python3-spidev, and in it I create Makefile. Below is the Makefile:

      # Copyright (C) 2017 Onion Corporation
      #
      # Author: Lazar Demin  <lazar@onion.io>
      #
      # This is free software, licensed under the GNU General Public License v2.
      # See /LICENSE for more information.
      #
      
      include $(TOPDIR)/rules.mk
      PKG_NAME:=python-spidev
      PKG_VERSION:=4.0.1
      PKG_RELEASE:=2
      
      
      PKG_SOURCE_PROTO:=git
      PKG_SOURCE_VERSION:=HEAD
      PKG_SOURCE_URL:=https://github.com/OnionIoT/python-spidev.git
      PKG_SOURCE_SUBDIR:=$(PKG_NAME)
      PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE).tar.gz
      PKG_BUILD_DIR:=$(COMPILE_DIR)/$(PKG_NAME)
      
      include $(BUILD_DIR)/package.mk
      
      # python module package
      define Package/python3-spidev
      	SECTION:=lang
      	CATEGORY:=Languages
      	SUBMENU:=Python
      	TITLE:=Python3 module with object that implements SPI transactions
      	DEPENDS:=+python3
      endef
      
      define Package/python3-spidev/description
      Python3 module with object that implements SPI transactions
      endef
      
      
      TARGET_CFLAGS += $(FPIC)
      TARGET_LIBS += -l m
      
      PYTHON3_VERSION = 3.5
      TARGET_PYTHON3_INC += "-I$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION)/"
      
      define Build/Compile	
      	$(MAKE) -C $(PKG_BUILD_DIR) wipe
      	
      	$(MAKE) -C $(PKG_BUILD_DIR) \
      	CC="$(TARGET_CC)" \
      	CFLAGS="$(TARGET_CFLAGS)" \
      	LDFLAGS="$(TARGET_LDFLAGS)" \
      	LIB="$(TARGET_LIBS)" \
      	PYTHON_VERSION="$(PYTHON3_VERSION)" \
      	PYINC="$(TARGET_PYTHON3_INC)"
      endef
      
      define Package/python3-spidev/install
      	# install the python module
      	$(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON3_VERSION)
      	$(CP)   $(PKG_BUILD_DIR)/lib/python$(PYTHON3_VERSION)/spidev.so $(1)/usr/lib/python$(PYTHON3_VERSION)
      endef
      
      $(eval $(call BuildPackage,python3-spidev))
      

      I then included the package in "make menuconfig". Then I did make, and it seems that I do now have the spidev package!

      Many thanks for your assistance!

      posted in 其它全志芯片讨论区
      D
      dazb3
    • Reply: T113: Python 3.5 Package Cross-Compile

      @zoenggit appreciate the response and link. I'm using the Tina Linux 2.0 SDK, which is based on OpenWRT. I'm using the Tina Linux build downloaded from this forum.

      I believe the packaging system is a bit different to buildroot. I did attempt to include the spidev package in the build system, but couldn't figure how to make it work.

      Do you have any experience or advice in how to get it to work?

      posted in 其它全志芯片讨论区
      D
      dazb3
    • T113: Python 3.5 Package Cross-Compile

      大家好,
      在 Tina Linux 中,我尝试安装适用于 Python 3.5 的 spidev Python 包。它不包含在 SDK make menuconfig 中
      我一直在尝试交叉编译,但到目前为止还没有成功。
      有人可以提供有关如何安装 Python 包的建议或说明吗?
      谢谢!

      Hi all,
      In Tina Linux, I'm trying to install the spidev Python package for Python 3.5. It's not included in the SDK make menuconfig
      I've been trying to cross compile, but so far I've had no success.
      Can anyone provide advice or instructions on how to install a Python package.
      Thank you!

      posted in 其它全志芯片讨论区
      D
      dazb3
    • Reply: T113 I2S 音频输出至 Lontium 芯片 / T113 I2S Audio Output to Lontium chip

      @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";
      };
      
      

      再次感谢!

      posted in 其它全志芯片讨论区
      D
      dazb3
    • Reply: T113 I2S 音频输出至 Lontium 芯片 / T113 I2S Audio Output to Lontium chip

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

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

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

      非常感谢您的帮助!

      posted in 其它全志芯片讨论区
      D
      dazb3
    • T113 I2S 音频输出至 Lontium 芯片 / T113 I2S Audio Output to Lontium chip

      嗨。我正在尝试配置我的 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";
      };
      
      
      posted in 其它全志芯片讨论区
      D
      dazb3
    • Reply: Export GPIO in device tree

      @lecndav Did you solve this? I have the same question

      posted in MR Series
      D
      dazb3
    • T113: GPIO 输入上拉 (Input pull-up)

      我想将 GPIO 输入设置为上拉。我见过各种驱动程序将 GPIO 配置为 LED 或按键输入:
      https://bbs.aw-ol.com/topic/1421/mq_pro-tina-gpio驱动
      https://whycan.com/t_6900.html#p66192

      但是我只想将引脚设置为 GPIO 输入上拉,然后在我的应用程序中通过以下方式访问:/sys/class/gpio

      有什么建议吗?非常感谢。

      posted in 其它全志芯片讨论区
      D
      dazb3
    • Reply: sunxi图层之间的显示切换

      @laocai 我也想做类似的事情。你找到解决方案了吗?

      posted in 其它全志芯片讨论区
      D
      dazb3
    • [付费] T113-S3 视频播放系统

      我们正在寻求开发一款 1080p 60hz 视频/媒体播放设备。我们需要一个视频播放系统,允许在播放另一个视频时以不可见的方式预加载一个视频,然后在这些视频之间无缝切换。

      我们还需要视频无缝循环。

      应用程序的大部分高级逻辑已经实现。然而,我们在视频播放的上述方面遇到了困难。

      使用 Tina Linux SDK,我尝试改造 tplayer 库以实现上述目标,但没有成功。

      我们愿意聘请某人开发或修改 T113-S3 芯片上的视频播放系统。

      谢谢,
      Daz

      posted in 其它全志芯片讨论区
      D
      dazb3