导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. liefyuan
    L
    • 资料
    • 关注 1
    • 粉丝 0
    • 我的积分 322
    • 主题 3
    • 帖子 7
    • 最佳 0
    • 群组 0

    liefyuanLV 3

    @liefyuan

    322
    积分
    0
    声望
    6
    资料浏览
    7
    帖子
    0
    粉丝
    1
    关注
    注册时间 最后登录

    liefyuan 取消关注 关注

    liefyuan 发布的最新帖子

    • 回复: T113-s3使用PhoenixSuit的一键刷机功能USB更新EMMC固件400M,一个小时刷成功一次正常吗?

      @awwwwa 非常感谢您的解答,经过与板厂和硬件工程师沟通,有很大可能是layout的走线问题导致,板厂这边已经决定给我寄新版本的硬件板子。

      发布在 其它全志芯片讨论区
      L
      liefyuan
    • 回复: T113-s3使用PhoenixSuit的一键刷机功能USB更新EMMC固件400M,一个小时刷成功一次正常吗?

      @awwwwa 确认了一下8GB EMMC是妙存科技的 ARTMEM AT70B08G3

      1.使用了USB HUB和直接插机箱,都是一直卡在那里。
      2.EMMC型号是ARTMEM AT70B08G3。
      3.USB连接无法确认是不是不稳定。
      4.供电不足也无法确认。
      5.emmc布局走线这个也无法确认。

      您的PhoenixSuit V2.0可以分享一下下载链接吗?

      发布在 其它全志芯片讨论区
      L
      liefyuan
    • T113-s3使用PhoenixSuit的一键刷机功能USB更新EMMC固件400M,一个小时刷成功一次正常吗?

      我不知道我是不是个例(大怨种!),我确实使用PhoenixSuit的一键刷机功能USB更新EMMC固件,测试了一个小时约30几次,就TM成功了一次!一次啊!心态真的崩溃了(说实话想把板子扔了!)。

      特向大佬们求教。

      我在使用REVB-T113开发板,开发板配置是:

      • 芯片:T113-s3
      • ROM:8GB EMMC

      然后使用USB更新EMMC的固件(约400MB)

      e2bccc80ebff429287b7bb9e37d11e9c.png

      串口打印记录:

      [3493]fes begin commit:5224261
      [3495]set pll start
      [3497]fix vccio detect value:0xc0
      [3505]periph0 has been enabled
      [3508]set pll end
      [3509][pmu]: bus read error
      [3512]board init ok
      [3514]beign to init dram
      [3516]ZQ value = 0x2e
      [3518]get_pmu_exist() = -1
      [3521]ddr_efuse_type: 0xa
      [3523]mark_id: 0x60
      [3525]trefi:7.8ms
      [3528][AUTO DEBUG] single rank and full DQ!
      [3532]ddr_efuse_type: 0xa
      [3534]mark_id: 0x60
      [3536]trefi:7.8ms
      [3539][AUTO DEBUG] rank 0 row = 13
      [3542][AUTO DEBUG] rank 0 bank = 8
      [3545][AUTO DEBUG] rank 0 page size = 2 KB
      [3549]DRAM BOOT DRIVE INFO: V0.32
      [3553]DRAM CLK = 792 MHz
      [3555]DRAM Type = 3 (2:DDR2,3:DDR3)
      [3558]DRAMC read ODT  off.
      [3561]DRAM ODT value: 0x42.
      [3564]ddr_efuse_type: 0xa
      [3566]mark_id: 0x60
      [3569]DRAM SIZE =128 M
      [3571]PLL_DDR_CTRL_REG:0xf8004100
      [3574]DRAM_CLK_REG:0xc0000000
      [3577][TIMING DEBUG] MR2= 0x18
      [3581]DRAM simple test OK.
      [3583]rtc standby flag is 0x0, super standby flag is 0x0
      [3589]init dram ok
      
      
      U-Boot 2018.05-g2a24076 (Feb 22 2022 - 02:02:08 +0000) Allwinner Technology
      
      [05.186]CPU:   Allwinner Family
      [05.189]Model: sun8iw20
      [05.191]DRAM:  128 MiB
      [05.195]Relocation Offset is: 04ec5000
      [05.221]secure enable bit: 0
      [05.224]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=300Mhz
      [05.230]gic: normal mode
      [05.232]flash init start
      [05.235]workmode = 16,storage type = 0
      try card 2
      set card number 2
      get card number 2
      [05.242][mmc]: mmc driver ver uboot2018:2021-09-07 19:43:00
      [05.249][mmc]: Is not Boot mode!
      [05.252][mmc]: SUNXI SDMMC Controller Version:0x50310
      [05.263][mmc]: ************Try SD card 2************
      [05.268][mmc]: mmc 2 cmd timeout 100 status 100
      [05.272][mmc]: smc 2 err, cmd 8,  RTO
      [05.276][mmc]: mmc 2 close bus gating and reset
      [05.281][mmc]: mmc 2 cmd timeout 100 status 100
      [05.285][mmc]: smc 2 err, cmd 55,  RTO
      [05.288][mmc]: mmc 2 close bus gating and reset
      [05.293][mmc]: ************Try MMC card 2************
      [05.316][mmc]: mmc 2 cmd timeout 100 status 100
      [05.320][mmc]: smc 2 err, cmd 8,  RTO
      [05.323][mmc]: mmc 2 close bus gating and reset
      [05.329][mmc]: mmc 2 cmd timeout 100 status 100
      [05.333][mmc]: smc 2 err, cmd 55,  RTO
      [05.336][mmc]: mmc 2 close bus gating and reset
      [05.352][mmc]: gen_tuning_blk_bus8: total blk 10
      [05.356][mmc]: gen_tuning_blk_bus4: total blk 6
      [05.360][mmc]: Using 4 bit tuning now
      [05.364][mmc]: write_tuning_try_freq: write ok
      [05.369][mmc]: Pattern compare ok
      [05.372][mmc]: Write tuning pattern ok
      [05.375][mmc]: ================== HSSDR52_SDR25...
      [05.380][mmc]: skip freq 400000
      [05.383][mmc]: skip freq 25000000
      [05.386][mmc]: freq: 2-50000000-64-4
      [05.533][mmc]: [0-54|55]
      [05.536][mmc]: ================== HSDDR52_DDR50...
      [05.540][mmc]: skip freq 400000
      [05.543][mmc]: freq: 1-25000000-64-4
      [05.676][mmc]: freq: 2-50000000-64-4
      [05.749][mmc]: [0-48|49]
      [05.751][mmc]: [5-47|43]
      [05.754][mmc]: DS26/SDR12: 0xffffffff 0xffffffff
      [05.758][mmc]: HSSDR52/SDR25: 0xff1bffff 0xffffffff
      [05.762][mmc]: HSDDR52/DDR50: 0xff1a18ff 0xffffffff
      [05.767][mmc]: HS200/SDR104: 0xffffffff 0xffffffff
      [05.771][mmc]: HS400: 0xffffffff 0xffffffff
      [05.775][mmc]: HS400: 0xffffffff 0xffffffff
      [05.779][mmc]: Best spd md: 2-HSDDR52/DDR50, freq: 2-50000000, Bus width: 4
      [05.786]Loading Environment from SUNXI_FLASH... OK
      [05.791]try to burn key
      [05.793]out of usb burn from boot: not boot mode
      Hit any key to stop autoboot:  0
      sunxi work mode=0x10
      run usb efex
      buf queue page size = 65536
      delay time 2500
      weak:otg_phy_config
      usb init ok
      set address 0x25
      set address 0x25 ok
      set address 0x26
      set address 0x26 ok
      SUNXI_EFEX_ERASE_TAG
      erase_flag = 0x1
      origin_erase_flag = 0x1
      FEX_CMD_fes_verify_status
      FEX_CMD_fes_verify last err=0
      the 0 mbr table is ok
      the 1 mbr table is ok
      the 2 mbr table is ok
      the 3 mbr table is ok
      *************MBR DUMP***************
      total mbr part 8
      
      part[0] name      :boot-resource
      part[0] classname :DISK
      part[0] addrlo    :0x8000
      part[0] lenlo     :0x8686
      part[0] user_type :32768
      part[0] keydata   :0
      part[0] ro        :0
      
      part[1] name      :env
      part[1] classname :DISK
      part[1] addrlo    :0x10686
      part[1] lenlo     :0x800
      part[1] user_type :32768
      part[1] keydata   :0
      part[1] ro        :0
      
      part[2] name      :env-redund
      part[2] classname :DISK
      part[2] addrlo    :0x10e86
      part[2] lenlo     :0x800
      part[2] user_type :32768
      part[2] keydata   :0
      part[2] ro        :0
      
      part[3] name      :boot
      part[3] classname :DISK
      part[3] addrlo    :0x11686
      part[3] lenlo     :0x9c40
      part[3] user_type :32768
      part[3] keydata   :0
      part[3] ro        :0
      
      part[4] name      :rootfs
      part[4] classname :DISK
      part[4] addrlo    :0x1b2c6
      part[4] lenlo     :0x200000
      part[4] user_type :32768
      part[4] keydata   :0
      part[4] ro        :0
      
      part[5] name      :dsp0
      part[5] classname :DISK
      part[5] addrlo    :0x21b2c6
      part[5] lenlo     :0x800
      part[5] user_type :32768
      part[5] keydata   :0
      part[5] ro        :0
      
      part[6] name      :private
      part[6] classname :DISK
      part[6] addrlo    :0x21bac6
      part[6] lenlo     :0x8000
      part[6] user_type :32768
      part[6] keydata   :0
      part[6] ro        :0
      
      part[7] name      :UDISK
      part[7] classname :DISK
      part[7] addrlo    :0x223ac6
      part[7] lenlo     :0x0
      part[7] user_type :33024
      part[7] keydata   :0
      part[7] ro        :0
      
      total part: 9
      mbr 0, 8000, 8000
      boot-resource 1, 8686, 8000
      env 2, 800, 8000
      env-redund 3, 800, 8000
      boot 4, 9c40, 8000
      rootfs 5, 200000, 8000
      dsp0 6, 800, 8000
      private 7, 8000, 8000
      UDISK 8, 0, 8100
      [08.933]erase all part start
      need erase flash: 1
      private part exist
      GPT:boot-resource: 12000         1a685
      GPT:env         : 1a686         1ae85
      GPT:env-redund  : 1ae86         1b685
      GPT:boot        : 1b686         252c5
      GPT:rootfs      : 252c6         2252c5
      GPT:dsp0        : 2252c6        225ac5
      GPT:private     : 225ac6        22dac5
      GPT:UDISK       : 22dac6        e73fde
      begin to store data
      part 0 name boot-resource
      keydata = 0x0
      part 1 name env
      keydata = 0x0
      part 2 name env-redund
      keydata = 0x0
      part 3 name boot
      keydata = 0x0
      part 4 name rootfs
      keydata = 0x0
      part 5 name dsp0
      keydata = 0x0
      part 6 name private
      keydata = 0x0
      find keypart private
      keypart read start: 0x21bac6, sectors 0x8000
      keypart part private read  0x21bac6, sectors 0x8000
      part 7 name UDISK
      keydata = 0x0
      begin to erase
      [09.382]erase all part start
      card2 erase boot0
      erase env part
      [09.394][mmc]: erase from: 108544, to: 109567, cnt: 1024, erase_group: 1024
      [09.402][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0x2 ms
      [09.409][mmc]: mmc_mmc_erase: some sectors in emmc are ignored!
      [09.414][mmc]: --0: from108166  nr378
      [09.418][mmc]: --1: from109568  nr646
      erase env-redund part
      [09.437][mmc]: erase from: 110592, to: 111615, cnt: 1024, erase_group: 1024
      [09.445][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0x1 ms
      [09.452][mmc]: mmc_mmc_erase: some sectors in emmc are ignored!
      [09.457][mmc]: --0: from110214  nr378
      [09.461][mmc]: --1: from111616  nr646
      erase boot part
      [09.479][mmc]: erase from: 112640, to: 151551, cnt: 38912, erase_group: 1024
      [09.498][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0xc ms
      [09.504][mmc]: mmc_mmc_erase: some sectors in emmc are ignored!
      [09.510][mmc]: --0: from112262  nr378
      [09.513][mmc]: --1: from151552  nr710
      erase rootfs part
      [09.532][mmc]: erase from: 152576, to: 2248703, cnt: 2096128, erase_group: 1024
      [09.623][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0x54 ms
      [09.630][mmc]: mmc_mmc_erase: some sectors in emmc are ignored!
      [09.635][mmc]: --0: from152262  nr314
      [09.639][mmc]: --1: from2248704  nr710
      erase dsp0 part
      [09.658][mmc]: erase from: 2249728, to: 2250751, cnt: 1024, erase_group: 1024
      [09.666][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0x2 ms
      [09.673][mmc]: mmc_mmc_erase: some sectors in emmc are ignored!
      [09.678][mmc]: --0: from2249414  nr314
      [09.682][mmc]: --1: from2250752  nr710
      erase private part
      [09.700][mmc]: erase from: 2251776, to: 2283519, cnt: 31744, erase_group: 1024
      [09.718][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0xb ms
      [09.725][mmc]: mmc_mmc_erase: some sectors in emmc are ignored!
      [09.730][mmc]: --0: from2251462  nr314
      [09.734][mmc]: --1: from2283520  nr710
      erase UDISK part
      sunxi_sprite_mmc_phyerase: @nr is 0, erase from @from to end
      [09.758][mmc]: erase from: 2284544, to: 15154175, cnt: 12869632, erase_group: 1024
      [09.784][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0x13 ms
      [09.791][mmc]: mmc_mmc_erase: some sectors in emmc are ignored!
      [09.796][mmc]: --0: from2284230  nr314
      [09.800][mmc]: --1: from15154176  nr1023
      card erase all
      finish erase
      rewrite
      write primary GPT success
      write Backup GPT success
      [09.883]update partition map
      keypart write start: 0x21bac6, sectors 0x8000
      flash exit
      SUNXI_EFEX_MBR_TAG
      mbr size = 0x10000
      write primary GPT success
      write Backup GPT success
      [10.281]update partition map
      FEX_CMD_fes_verify_status
      FEX_CMD_fes_verify last err=0
      ******Has init
      FEX_CMD_fes_verify_value, start 0x8000, size high 0x0:low 0xdad400
      FEX_CMD_fes_verify_value 0xaa6ef260
      FEX_CMD_fes_verify_value, start 0x10686, size high 0x0:low 0x20000
      FEX_CMD_fes_verify_value 0x62389c75
      FEX_CMD_fes_verify_value, start 0x10e86, size high 0x0:low 0x20000
      FEX_CMD_fes_verify_value 0x62389c75
      FEX_CMD_fes_verify_value, start 0x11686, size high 0x0:low 0x118a000
      FEX_CMD_fes_verify_value 0xb7bfb965
      
      
      

      这是开发板上对应的更新固件的描述:
      企业微信截图_20230906095206.png
      企业微信截图_20230906095218.png

      发布在 其它全志芯片讨论区
      L
      liefyuan
    • 回复: T113驱动ov5640 报错

      @null037 大佬,我是使用的mangopi的MQ-R,现在是一直都识别不出来ov5640摄像头:

      
      [    3.489803] vin_csi 5801000.csi: Adding to iommu group 0
      [    3.496961] sunxi-vin-core 5809000.vinc: Adding to iommu group 0
      [    3.505032] [VIN_WARN]get csi isp clk fail
      [    3.509630] [VIN_WARN]get csi isp src clk fail
      [    3.514654] [VIN_WARN]get csi mipi clk fail
      [    3.519368] [VIN_WARN]get csi mipi src clk fail
      [    3.524528] [VIN_WARN]get csi isp clk fail
      [    3.529139] [VIN_WARN]Get isp reset control fail
      [    3.535348] ov5640 2-003c: endpoint node not found
      [    3.540781] ov5640: probe of 2-003c failed with error -22
      [    3.547061] [VIN_ERR]registering ov5640, No such device!
      [    3.553072] [VIN]vinc1 is null
      
      

      请问您这边是怎么解决这个问题的呢?

      发布在 其它全志芯片讨论区
      L
      liefyuan
    • 回复: 求救:Tina T113-s3(MQ-R) DVP摄像头(OV5640)无法生成/dev/video0设备

      修改了一下board.dts文件中摄像头设备树:

      &vind0 {
      	csi_top = <378000000>;
      	csi_isp = <327000000>;
      	status = "okay"; /* enable twi and ver1 spi-nand max freq 30M */
      
      	sensor0: sensor@5809470 {
      		reg = <0x0 0x05809470 0x0 0x10>;
      		device_type = "sensor0";
      		compatible = "allwinner,sunxi-sensor";
      		sensor0_mname = "ov5640";
      		sensor0_twi_cci_id = <2>;
      		sensor0_twi_addr = <0x78>;
      		sensor0_mclk_id = <0>;
      		sensor0_pos = "rear";
      		sensor0_isp_used = <0>;
      		sensor0_fmt = <0>;
      		sensor0_stby_mode = <0>;
      		sensor0_vflip = <0>;
      		sensor0_hflip = <0>;
      		sensor0_iovdd-supply = <>;
      		sensor0_iovdd_vol = <>;
      		sensor0_avdd-supply = <>;
      		sensor0_avdd_vol = <>;
      		sensor0_dvdd-supply = <>;
      		sensor0_dvdd_vol = <>;
      		sensor0_power_en = <>;
      		sensor0_reset = <&pio PB 5 GPIO_ACTIVE_LOW>;
              sensor0_pwdn = <&pio PB 4 GPIO_ACTIVE_LOW>;
      		flash_handle = <&flash0>;
      		act_handle = <&actuator0>;
      		sensor0_sm_vs = <>;
      		device_id = <0>;
      		status  = "okay";
      	};
      	vinc0: vinc@5809000 {
      		compatible = "allwinner,sunxi-vin-core";
      		device_type = "vinc0";
      		reg = <0x0 0x05809000 0x0 0x200>;
      		interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
      		vinc0_csi_sel = <0>;
      		vinc0_mipi_sel = <0xff>;
      		vinc0_isp_sel = <0>;
      		vinc0_tdm_rx_sel = <0xff>;
      		vinc0_rear_sensor_sel = <0>;
      		vinc0_front_sensor_sel = <0>;
      		vinc0_sensor_list = <0>;
      		device_id = <0>;
      		iommus = <&mmu_aw 1 1>;
      		status = "okay";
      	};
      };
      

      还是识别不出来:

      [    3.282172] get ctp_gesture_wakeup fail, no gesture wakeup
      [    3.288343] gt9xxnew_ts 2-0014: 2-0014 supply ctp not found, using dummy regulator
      [    3.481837] input: gt9xxnew_ts as /devices/virtual/input/input1
      [    3.489803] vin_csi 5801000.csi: Adding to iommu group 0
      [    3.496961] sunxi-vin-core 5809000.vinc: Adding to iommu group 0
      [    3.505032] [VIN_WARN]get csi isp clk fail
      [    3.509630] [VIN_WARN]get csi isp src clk fail
      [    3.514654] [VIN_WARN]get csi mipi clk fail
      [    3.519368] [VIN_WARN]get csi mipi src clk fail
      [    3.524528] [VIN_WARN]get csi isp clk fail
      [    3.529139] [VIN_WARN]Get isp reset control fail
      [    3.535348] ov5640 2-003c: endpoint node not found
      [    3.540781] ov5640: probe of 2-003c failed with error -22
      [    3.547061] [VIN_ERR]registering ov5640, No such device!
      [    3.553072] [VIN]vinc1 is null
      
      

      检测一下twi2:

      root@TinaLinux:/# i2cdetect -r -y 2
           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f[   54.824048] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x3)
      
      00:          [   54.836025] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x4)
      -- [   54.844682] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x5)
      -- [   54.852541] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x6)
      -- [   54.860239] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x7)
      -- [   54.868087] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x8)
      -- [   54.875834] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x9)
      -- [   54.883681] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0xa)
      -- [   54.891383] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0xb)
      -- [   54.899259] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0xc)
      -- [   54.906986] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0xd)
      -- [   54.914835] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0xe)
      -- [   54.922575] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0xf)
      -- [   54.930413] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x10)
      --
      10: [   54.938256] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x11)
      -- [   54.946718] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x12)
      -- [   54.954545] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x13)
      -- -- UU [   54.962535] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x15)
      -- [   54.970826] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x16)
      -- [   54.978822] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x17)
      -- [   54.986731] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x18)
      -- [   54.994696] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x19)
      -- [   55.002636] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x1a)
      -- [   55.010581] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x1b)
      -- [   55.018499] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x1c)
      -- [   55.026460] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x1d)
      -- [   55.034387] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x1e)
      -- [   55.042367] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x1f)
      -- [   55.050271] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x20)
      
      20: [   55.058255] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x21)
      -- [   55.066336] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x22)
      -- [   55.074257] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x23)
      -- [   55.082110] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x24)
      -- [   55.090020] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x25)
      -- [   55.097940] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x26)
      -- [   55.105815] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x27)
      -- [   55.113658] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x28)
      -- [   55.121588] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x29)
      -- [   55.129446] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x2a)
      -- [   55.137367] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x2b)
      -- [   55.145219] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x2c)
      -- [   55.153160] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x2d)
      -- [   55.160974] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x2e)
      -- [   55.168954] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x2f)
      -- [   55.176780] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x30)
      --
      30: [   55.184736] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x31)
      -- [   55.193067] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x32)
      -- [   55.200995] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x33)
      -- [   55.208838] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x34)
      -- [   55.216787] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x35)
      -- [   55.224659] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x36)
      -- [   55.232561] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x37)
      -- [   55.240402] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x38)
      -- -- [   55.249135] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x39)
      -- [   55.257044] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x3a)
      -- [   55.265065] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x3b)
      -- [   55.272997] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x3c)
      -- [   55.280979] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x3d)
      -- [   55.288888] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x3e)
      -- [   55.300106] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x3f)
      -- [   55.308076] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x40)
      
      40: [   55.316033] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x41)
      -- [   55.324132] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x42)
      -- [   55.332082] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x43)
      -- [   55.339879] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x44)
      -- -- [   55.352152] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x45)
      -- [   55.360282] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x46)
      -- [   55.368419] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x47)
      -- [   55.376354] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x48)
      -- [   55.384355] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x49)
      -- [   55.392276] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x4a)
      -- [   55.400230] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x4b)
      -- [   55.408181] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x4c)
      -- [   55.416142] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x4d)
      -- [   55.424060] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x4e)
      -- [   55.432039] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x4f)
      -- [   55.439945] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x50)
      
      50: [   55.447902] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x51)
      -- [   55.455990] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x52)
      -- -- [   55.463976] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x53)
      -- [   55.472029] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x54)
      -- [   55.479979] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x55)
      -- [   55.487938] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x56)
      -- [   55.495928] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x57)
      -- [   55.503856] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x58)
      -- [   55.511822] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x59)
      -- [   55.519709] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x5a)
      -- [   55.527702] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x5b)
      -- [   55.535611] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x5c)
      -- [   55.543571] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x5d)
      -- [   55.551468] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x5e)
      -- [   55.559440] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x5f)
      -- [   55.567404] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x60)
      
      60: [   55.575348] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x61)
      -- [   55.583464] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x62)
      -- [   55.591380] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x63)
      -- [   55.599221] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x64)
      -- [   55.607176] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x65)
      -- [   55.615037] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x66)
      -- [   55.622938] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x67)
      -- [   55.630767] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x68)
      -- [   55.638706] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x69)
      -- [   55.646597] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x6a)
      -- [   55.654491] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x6b)
      -- [   55.662334] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x6c)
      -- [   55.670262] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x6d)
      -- [   55.678121] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x6e)
      -- [   55.686038] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x6f)
      -- [   55.693914] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x70)
      --
      70: [   55.701841] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x71)
      -- [   55.710176] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x72)
      -- [   55.718109] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x73)
      -- [   55.725955] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x74)
      -- [   55.733927] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x75)
      -- [   55.741765] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x76)
      -- [   55.749673] sunxi-i2c sunxi-i2c2: engine-mode: xfer failed(dev addr:0x77)
      -- --
      
      
      发布在 Linux
      L
      liefyuan
    • 求救:Tina T113-s3(MQ-R) DVP摄像头(OV5640)无法生成/dev/video0设备

      改了默认串口为uart1,因为uart0占用了csi接口的引脚,显示的错误基本上都没有了,现在就是无法识别到ov5640,OV5640摄像头确认是好的,在正点原子板子上试过的。

      板子是mangopi的MQ-R T113-s3。

      触摸屏没有问题,都是挂载在twi2上面的:

      ea0e4eb2-24a3-418e-a2bd-376847b932c2-图片.png

      e50a953d-3ca1-4b18-a495-41eaa647d955-图片.png

      [    3.449598] vin_csi 5801000.csi: Adding to iommu group 0
      [    3.458434] sunxi-vin-core 5809000.vinc: Adding to iommu group 0
      [    3.466527] [VIN_WARN]get csi isp clk fail
      [    3.471127] [VIN_WARN]get csi isp src clk fail
      [    3.476151] [VIN_WARN]get csi mipi clk fail
      [    3.480842] [VIN_WARN]get csi mipi src clk fail
      [    3.485956] [VIN_WARN]get csi isp clk fail
      [    3.490560] [VIN_WARN]Get isp reset control fail
      [    3.496426] ov5640 2-003c: endpoint node not found
      [    3.501868] ov5640: probe of 2-003c failed with error -22
      [    3.508118] [VIN_ERR]registering ov5640, No such device!
      [    3.514136] [VIN]vinc1 is null
      
      
      

      上电打印信息:

      
      [    2.390009] [VIN_WARN]sensor_helper_probe: cannot get sensor0_cameravdd supply, setting it to NULL!
      [    2.400196] [VIN_WARN]sensor_helper_probe: cannot get sensor0_iovdd supply, setting it to NULL!
      [    2.409990] [VIN_WARN]sensor_helper_probe: cannot get sensor0_avdd supply, setting it to NULL!
      [    2.419666] [VIN_WARN]sensor_helper_probe: cannot get sensor0_dvdd supply, setting it to NULL!
      ...
      
      [    3.124069] sunxi-i2c sunxi-i2c2: sunxi-i2c2 supply twi not found, using dummy regulator
      [    3.133772] sunxi-i2c sunxi-i2c2: probe success
      [    3.140117] sun8iw20-pinctrl 2000000.pinctrl: 2000000.pinctrl supply vcc-pb not found, using dummy regulator
      [    3.152419] sunxi-audio-card 203605c.soundspdif: use dummy codec for simple card.
      [    3.160969] debugfs: Directory '2036000.spdif' with parent 'sndspdif' already present!
      [    3.170318] sunxi-audio-card 203605c.soundspdif: snd-soc-dummy-dai <-> 2036000.spdif mapping ok
      [    3.181085] get ehci0-controller wakeup-source is fail.
      [    3.187098] sunxi ehci0-controller don't init wakeup source
      [    3.193415] [sunxi-ehci0]: probe, pdev->name: 4101000.ehci0-controller, sunxi_ehci: 0xc0c6e1e0, 0x:c88c9000, irq_no:37
      [    3.205429] [sunxi-ehci0]: Not init ehci0
      [    3.210240] get ohci0-controller wakeup-source is fail.
      [    3.216239] sunxi ohci0-controller don't init wakeup source
      [    3.222513] [sunxi-ohci0]: probe, pdev->name: 4101400.ohci0-controller, sunxi_ohci: 0xc0c6e470
      [    3.232184] [sunxi-ohci0]: Not init ohci0
      [    3.238012] get usb_detect_mode is fail, -22
      [    3.242854] get det_vbus is fail, -84
      [    3.246959] get id is fail, -84
      [    3.251382] get ctp_power is fail, -22
      [    3.255654] get ctp_power_ldo_vol is fail, -22
      [    3.260649] sunxi_ctp_startup: ctp_power_io is invalid.
      [    3.266557] get ctp_gesture_wakeup fail, no gesture wakeup
      [    3.272740] gt9xxnew_ts 2-0014: 2-0014 supply ctp not found, using dummy regulator
      [    3.461823] input: gt9xxnew_ts as /devices/virtual/input/input1
      [    3.469793] vin_csi 5801000.csi: Adding to iommu group 0
      [    3.478700] sunxi-vin-core 5809000.vinc: Adding to iommu group 0
      [    3.486738] [VIN_WARN]get csi isp clk fail
      [    3.491338] [VIN_WARN]get csi isp src clk fail
      [    3.496359] [VIN_WARN]get csi mipi clk fail
      [    3.501071] [VIN_WARN]get csi mipi src clk fail
      [    3.506226] [VIN_WARN]get csi isp clk fail
      [    3.510836] [VIN_WARN]Get isp reset control fail
      [    3.517036] ov5640 2-003c: endpoint node not found
      [    3.522495] ov5640: probe of 2-003c failed with error -22
      [    3.528759] [VIN_ERR]registering ov5640, No such device!
      [    3.534777] [VIN]vinc1 is null
      
      

      这是vin相关的:

      &twi2 {
      	clock-frequency = <400000>;
      	pinctrl-0 = <&twi2_pins_a>;
      	pinctrl-1 = <&twi2_pins_b>;
      	pinctrl-names = "default", "sleep";
      	dmas = <&dma 45>, <&dma 45>;
      	dma-names = "tx", "rx";
      	status = "okay";
      
      	ctp@14 {
      		compatible = "allwinner,goodix";
      		device_type = "ctp";
      		reg = <0x14>;
      		status = "okay";
      		ctp_name = "gt9xxnew_ts";
      		ctp_twi_id = <0x2>;
      		ctp_twi_addr = <0x14>;
      		ctp_screen_max_x = <0x320>;
      		ctp_screen_max_y = <0x1e0>;
      		ctp_revert_x_flag = <0x0>;
      		ctp_revert_y_flag = <0x0>;
      		ctp_exchange_x_y_flag = <0x0>;
      		ctp_int_port = <&pio PB 3 GPIO_ACTIVE_HIGH>;
      		ctp_wakeup = <&pio PB 2 GPIO_ACTIVE_HIGH>;
      		/*ctp-supply = <&reg_aldo2>;*/
      		/*ctp_power_ldo = <&reg_aldo2>;*/
      		/*ctp_power_ldo_vol = <3300>;*/
      	};
      };
      
      &vind0 {
      	csi_top = <378000000>;
      	csi_isp = <327000000>;
      	status = "okay"; /* enable twi and ver1 spi-nand max freq 30M */
      
      	actuator0: actuator@5809450 {
      		device_type = "actuator0";
      		actuator0_name = "ad5820_act";
      		actuator0_slave = <0x18>;
      		actuator0_af_pwdn = <>;
      		actuator0_afvdd = "afvcc-csi";
      		actuator0_afvdd_vol = <2800000>;
      		status = "okay";
      	};
      	flash0: flash@5809460 {
      		device_type = "flash0";
      		flash0_type = <2>;
      		flash0_en = <>;
      		flash0_mode = <>;
      		flash0_flvdd = "";
      		flash0_flvdd_vol = <>;
      		device_id = <0>;
      		status = "okay";
      	};
      	sensor0: sensor@5809470 {
      		reg = <0x0 0x05809470 0x0 0x10>;
      		device_type = "sensor0";
      		compatible = "allwinner,sunxi-sensor";
      		sensor0_mname = "ov5640";
      		sensor0_twi_cci_id = <2>;
      		sensor0_twi_addr = <0x78>;
      		sensor0_mclk_id = <0>;
      		sensor0_pos = "rear";
      		sensor0_isp_used = <0>;
      		sensor0_fmt = <0>;
      		sensor0_stby_mode = <0>;
      		sensor0_vflip = <>;
      		sensor0_hflip = <>;
      
      		sensor0_iovdd-supply = <>;
      		sensor0_iovdd_vol = <2800000>;
      
      		sensor0_avdd-supply = <0>;
      		sensor0_avdd_vol = <2800000>;
      
      		sensor0_dvdd-supply = <>;
      		sensor0_dvdd_vol = <1200000>;
      
      		sensor0_power_en = <>;
      		sensor0_reset = <&pio PB 5 GPIO_ACTIVE_LOW>;
              sensor0_pwdn = <&pio PB 4 GPIO_ACTIVE_LOW>;
      		flash_handle = <&flash0>;
      		act_handle = <&actuator0>;
      		sensor0_sm_vs = <>;
      		device_id = <0>;
      		status  = "okay";
      	};
      	sensor1:sensor@5809480 {
      		device_type = "sensor1";
      		sensor1_mname = "ov5647";
      		sensor1_twi_cci_id = <3>;
      		sensor1_twi_addr = <0x6c>;
      		sensor1_mclk_id = <1>;
      		sensor1_pos = "front";
      		sensor1_isp_used = <0>;
      		sensor1_fmt = <0>;
      		sensor1_stby_mode = <0>;
      		sensor1_vflip = <0>;
      		sensor1_hflip = <0>;
      		sensor1_iovdd-supply = <>;
      		sensor1_iovdd_vol = <>;
      		sensor1_avdd-supply = <>;
      		sensor1_avdd_vol = <>;
      		sensor1_dvdd-supply = <>;
      		sensor1_dvdd_vol = <>;
      		sensor1_power_en = <>;
      		sensor1_reset = <&pio PE 7 GPIO_ACTIVE_LOW>;
      		sensor1_pwdn = <&pio PE 6 GPIO_ACTIVE_LOW>;
      		status	= "disabled";
      	};
      	vinc0:vinc@5809000 {
      		compatible = "allwinner,sunxi-vin-core";
                      device_type = "vinc0";
      		vinc0_csi_sel = <0>;
      		vinc0_mipi_sel = <0xff>;
      		vinc0_isp_sel = <0>;
      		vinc0_isp_tx_ch = <0>;
      		vinc0_tdm_rx_sel = <0xff>;
      		vinc0_rear_sensor_sel = <0>;
      		vinc0_front_sensor_sel = <1>;
      		vinc0_sensor_list = <0>;
      		status = "okay";
      	};
      	vinc1:vinc@5809200 {
      		vinc1_csi_sel = <0>;
      		vinc1_mipi_sel = <0xff>;
      		vinc1_isp_sel = <0>;
      		vinc1_isp_tx_ch = <1>;
      		vinc1_tdm_rx_sel = <0xff>;
      		vinc1_rear_sensor_sel = <0>;
      		vinc1_front_sensor_sel = <1>;
      		vinc1_sensor_list = <0>;
      		status = "disabled";
      	};
      };
      

      触摸已经调好了,没有问题。

      这是完整的board.dts

      /*
       * Allwinner Technology CO., Ltd.
       */
      
      /dts-v1/;
      
       /* optee used 7MB: SHM 2M: OS: 1M: TA:4M*/
      /memreserve/ 0x41B00000 0x00100000;
      /* DSP used 1MB */
      /*/memreserve/ 0x42000000 0x00100000;*/
      #include "sun8iw20p1.dtsi"
      
      /{
      	model = "sun8iw20";
      	compatible = "allwinner,r528", "arm,sun8iw20p1";
      
      	reg_vdd_cpu: vdd-cpu {
      		compatible = "sunxi-pwm-regulator";
      		pwms = <&pwm 3 5000 0>;
      		regulator-name = "vdd_cpu";
      		regulator-min-microvolt = <810000>;
      		regulator-max-microvolt = <1160000>;
      		regulator-ramp-delay = <25>;
      		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>;
      		gpio = <&pio PB 10 GPIO_ACTIVE_HIGH>;
      		enable-active-high;
      	};
      };
      
      &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 = "gpio_in";
      	};
      
      	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 mangopi board */
              //         pins = "PE2", "PE3";
              //         function = "uart0";
              //         drive-strength = <10>;
              //         bias-pull-up;
              // };
      
              // uart0_pins_b: uart0_pins@1 {  /* For mangopi board */
              //         pins = "PE2", "PE3";
              //         function = "gpio_in";
              // };
      
      	uart1_pins_a: uart1_pins@0 {  // For EVB1 board 
      		pins = "PG6", "PG7";
      		function = "uart1";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	uart1_pins_b: uart1_pins {  // For EVB1 board
      		pins = "PG6", "PG7";
      		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 EVB1 board */
      		pins = "PD10", "PD11";
      		function = "uart3";
      		muxsel = <5>;
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	twi0_pins_a: twi0@0 {
      		pins = "PB10", "PB11";	/*sck sda*/
      		function = "twi0";
      		drive-strength = <10>;
      	};
      
      	twi0_pins_b: twi0@1 {
      		pins = "PB10", "PB11";
      		function = "gpio_in";
      	};
      
      	twi1_pins_a: twi1@0 {
      		pins = "PB4", "PB5";
      		function = "twi1";
      		drive-strength = <10>;
      	};
      
      	twi1_pins_b: twi1@1 {
      		pins = "PB4", "PB5";
      		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 = "PE6", "PE7";
      		function = "twi3";
      		drive-strength = <10>;
      	};
      
      	twi3_pins_b: twi3@1 {
      		pins = "PE6", "PE7";
      		function = "gpio_in";
      	};
      /*
      	gmac_pins_a: gmac@0 {
      		pins = "PE0", "PE1", "PE2", "PE3",
      		       "PE4", "PE5", "PE6", "PE7",
      		       "PE8", "PE9", "PE10", "PE11",
      		       "PE12", "PE13", "PE14", "PE15";
      		function = "gmac0";
      		drive-strength = <10>;
      	};
      
      	gmac_pins_b: gmac@1 {
      		pins = "PE0", "PE1", "PE2", "PE3",
      		       "PE4", "PE5", "PE6", "PE7",
      		       "PE8", "PE9", "PE10", "PE11",
      		       "PE12", "PE13", "PE14", "PE15";
      		function = "gpio_in";
      	};
      */
      	dmic_pins_a: dmic@0 {
      		/* DMIC_PIN: CLK, DATA0, DATA1, DATA2, 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";
      		function = "io_disabled";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      	daudio0_pins_a: daudio0@0 {
      		pins = "PE17", "PE16", "PE15", "PE14", "PE13";
      		function = "i2s0";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      	daudio0_pins_b: daudio0_sleep@0 {
      		pins = "PE17", "PE16", "PE15", "PE14", "PE13";
      		function = "io_disabled";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      	daudio1_pins_a: daudio1@0 {
      		pins = "PG11", "PG12", "PG13", "PG14", "PG15";
      		function = "i2s1";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      	daudio1_pins_b: daudio1_sleep@0 {
      		pins = "PG11", "PG12", "PG13", "PG14", "PG15";
      		function = "io_disabled";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      	daudio2_pins_a: daudio2@0 {
      		/* I2S_PIN: MCLK, BCLK, LRCK */
      		pins = "PF6", "PF3", "PF5";
      		function = "i2s2";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      	daudio2_pins_b: daudio2@1 {
      		/* I2S_PIN: DOUT0 */
      		pins = "PF1";
      		function = "i2s2_dout";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      	daudio2_pins_c: daudio2@2 {
      		/* I2S_PIN: DIN0 */
      		pins = "PF0";
      		function = "i2s2_din";
      		drive-strength = <20>;
      		bias-disable;
      	};
      
      	daudio2_pins_d: daudio2_sleep@0 {
      		pins = "PF6", "PF3", "PF5", "PF1", "PF0";
      		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;
      	};
      
      	spi0_pins_a: spi0@0 {
      		pins = "PC2", "PC4", "PC5"; /* clk, mosi, miso */
      		function = "spi0";
      		muxsel = <2>;
      		drive-strength = <10>;
      	};
      
      	spi0_pins_b: spi0@1 {
      		pins = "PC3", "PC7", "PC6";
      		function = "spi0";
      		muxsel = <2>;
      		drive-strength = <10>;
      		bias-pull-up;   /* cs, hold, wp should be pulled up */
      	};
      
      	spi0_pins_c: spi0@2 {
      		pins = "PC2", "PC3", "PC4", "PC5","PC6", "PC7";
      		function = "gpio_in";
      		muxsel = <0>;
      		drive-strength = <10>;
      	};
      
      	spi1_pins_a: spi1@0 {
      		pins = "PD11", "PD12", "PD13"; /* clk, mosi, miso */
      		function = "spi1";
      		drive-strength = <10>;
      	};
      
      	spi1_pins_b: spi1@1 {
      		pins = "PD10", "PD14", "PD15";
      		function = "spi1";
      		drive-strength = <10>;
      		bias-pull-up;   /* cs, hold, wp should be pulled up */
      	};
      
      	spi1_pins_c: spi1@2 {
      		pins = "PD10", "PD11", "PD12", "PD13","PD14", "PD15";
      		function = "gpio_in";
      		drive-strength = <10>;
      	};
      
      	ledc_pins_a: ledc@0 {
      		pins = "PC0";
      		function = "ledc";
      		drive-strength = <10>;
      	};
      
      	ledc_pins_b: ledc@1 {
      		pins = "PC0";
      		function = "gpio_in";
      	};
      
      	pwm0_pin_a: pwm0@0 {
      		pins = "PD16";
      		function = "pwm0";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	pwm0_pin_b: pwm0@1 {
      		pins = "PD16";
      		function = "gpio_in";
      		bias-disable;
      	};
      
      	pwm2_pin_a: pwm2@0 {
      		pins = "PD18";
      		function = "pwm2";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	pwm2_pin_b: pwm2@1 {
      		pins = "PD18";
      		function = "gpio_out";
      	};
      
      	pwm7_pin_a: pwm7@0 {
      		pins = "PD22";
      		function = "pwm7";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	pwm7_pin_b: pwm7@1 {
      		pins = "PD22";
      		function = "gpio_in";
      	};
      
      
      	s_cir0_pins_a: s_cir@0 {
      		pins = "PB7";
      		function = "ir";
      		drive-strength = <10>;
      		bias-pull-up;
      	};
      
      	s_cir0_pins_b: s_cir@1 {
      		pins = "PB7";
      		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";
      	};
      };
      
      // &uart0 {
      // 	pinctrl-names = "default", "sleep";
      // 	pinctrl-0 = <&uart0_pins_a>;
      // 	pinctrl-1 = <&uart0_pins_b>;
      // 	status = "okay";
      // };
      
      &uart1 {
      	pinctrl-names = "default", "sleep";
      	pinctrl-0 = <&uart1_pins_a>;
      	pinctrl-1 = <&uart1_pins_b>;
      	status = "okay";
      };
      
      &uart2 {
      	pinctrl-names = "default", "sleep";
      	pinctrl-0 = <&uart2_pins_a>;
      	pinctrl-1 = <&uart2_pins_b>;
      	status = "disabled";
      };
      
      &uart3 {
      	compatible = "allwinner,sun20iw1-dsp-uart";
      	pinctrl-names = "default", "sleep";
      	pinctrl-0 = <&uart3_pins_a>;
      	pinctrl-1 = <&uart3_pins_a>;
      	status = "disabled";
      };
      
      &soc {
      	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 {
      		compatible    = "allwinner,sunxi-rfkill";
      		chip_en;
      		power_en;
      		pinctrl-0 = <&wlan_pins_a>;
      		pinctrl-names = "default";
      		status        = "okay";
      
      		wlan: wlan@0 {
      			compatible    = "allwinner,sunxi-wlan";
      			clock-names = "32k-fanout1";
      			clocks = <&ccu CLK_FANOUT1_OUT>;
      			wlan_busnum    = <0x1>;
      			wlan_regon    = <&pio PG 12 GPIO_ACTIVE_HIGH>;
      			wlan_hostwake  = <&pio PG 10 GPIO_ACTIVE_HIGH>;
      			/*wlan_power    = "VCC-3V3";*/
      			/*wlan_power_vol = <3300000>;*/
      			/*interrupt-parent = <&pio>;
      			interrupts = < PG 10 IRQ_TYPE_LEVEL_HIGH>;*/
      			wakeup-source;
      
      		};
      		
      		bt: bt@0 {
      			compatible    = "allwinner,sunxi-bt";
      			clock-names = "32k-fanout1";
      			clocks = <&ccu CLK_FANOUT1_OUT>;
      			/*bt_power_num = <0x01>;*/
      			/*bt_power      = "axp803-dldo1";*/
      			/*bt_io_regulator = "axp803-dldo1";*/
      			/*bt_io_vol = <3300000>;*/
      			/*bt_power_vol = <330000>;*/
      			bt_rst_n      = <&pio PG 15 GPIO_ACTIVE_LOW>;
      			status        = "disabled";
      		};
      	};
      
      	btlpm: btlpm@0 {
      		compatible  = "allwinner,sunxi-btlpm";
      		uart_index  = <0x1>;
      		bt_wake     = <&pio PG 14 GPIO_ACTIVE_HIGH>;
      		bt_hostwake = <&pio PG 13 GPIO_ACTIVE_HIGH>;
      		status      = "disabled";
      	};
      
      	addr_mgt: addr_mgt@0 {
      		compatible     = "allwinner,sunxi-addr_mgt";
      		type_addr_wifi = <0x0>;
      		type_addr_bt   = <0x0>;
      		type_addr_eth  = <0x0>;
      		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_UP)>; /* mangopi */
      	/*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 = "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>;
      };
      
      /* Audio Driver modules */
      &sunxi_rpaf_dsp0 {
      	status = "disabled";
      };
      
      /* if audiocodec is used, sdc0 and uart0 should be closed to enable PA. */
      &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 PF 2 GPIO_ACTIVE_HIGH>;*/
      	/* gpio-spk-pwr	= <&pio PF 4 GPIO_ACTIVE_HIGH>; */
      	/* 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 {
      	status = "okay";
      };
      
      &dmic {
      	pinctrl-names   = "default","sleep";
      	pinctrl-0       = <&dmic_pins_a>;
      	pinctrl-1       = <&dmic_pins_b>;
      	status = "disabled";
      };
      
      &dmic_codec {
      	status = "okay";
      };
      
      &sounddmic {
      	status = "okay";
      };
      
      /*-----------------------------------------------------------------------------
       * pcm_lrck_period	16/32/64/128/256
       * slot_width_select	16bits/20bits/24bits/32bits
       * frametype		0 --> short frame = 1 clock width;
       *			1 --> long frame = 2 clock width;
       * tdm_config		0 --> pcm
       *			1 --> i2s
       * 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
       *			1 --> I2S/PCM use for external audio
       * daudio_type:		0 --> external 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
       * sound-dai			"snd-soc-dummy" --> use for I2S
       *				"ac108" --> use for external audio of ac108
       *---------------------------------------------------------------------------*/
      &sounddaudio0 {
      	/* simple-audio-card,format = "i2s"; */
      	/* simple-audio-card,frame-master = <&daudio0_master>; */
      	/* simple-audio-card,bitclock-master = <&daudio0_master>; */
      	/* simple-audio-card,bitclock-inversion; */
      	/* simple-audio-card,frame-inversion; */
      	status = "disabled";
      	daudio0_master: simple-audio-card,codec {
      		/* sound-dai = <&ac108>; */
      	};
      };
      
      &daudio1 {
      	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       = <&daudio1_pins_a>;
      	pinctrl-1       = <&daudio1_pins_b>;
      	pinctrl_used	= <0x0>;
      	status = "disabled";
      };
      
      &sounddaudio1 {
      	status = "disabled";
      	daudio1_master: simple-audio-card,codec {
      		/* sound-dai = <&ac108>; */
      	};
      };
      
      &daudio2 {
      	mclk_div 	= <0x01>;
      	frametype 	= <0x00>;
      	tdm_config 	= <0x01>;
      	sign_extend 	= <0x00>;
      	tx_data_mode 	= <0x00>;
      	rx_data_mode 	= <0x00>;
      	msb_lsb_first 	= <0x00>;
      	pcm_lrck_period = <0x80>;
      	slot_width_select = <0x20>;
      	asrc_function_en  = <0x00>;
      	pinctrl-names   = "default", "sleep";
      	pinctrl-0       = <&daudio2_pins_a &daudio2_pins_b &daudio2_pins_c>;
      	pinctrl-1       = <&daudio2_pins_d>;
      	pinctrl_used	= <0x1>;
      	daudio_type	= <0x0>;
      	status = "disabled";
      };
      
      &sounddaudio2 {
      	status = "disabled"; /* mangopi */
      	daudio2_master: simple-audio-card,codec {
      		/* sound-dai = <&ac108>; */
      	};
      };
      
      &spdif {
      	pinctrl-names   = "default","sleep";
      	pinctrl-0       = <&spdif_pins_a>;
      	pinctrl-1       = <&spdif_pins_b>;
      	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 = <0x0>;
      	usb_detect_type = <0x0>;
      /*	usb_detect_mode = <0>;
      	usb_id_gpio = <&pio PB 8 GPIO_ACTIVE_HIGH>;
      	enable-active-high;
      	usb_det_vbus_gpio = <&pio PB 9 GPIO_ACTIVE_HIGH>; */
      	usb_wakeup_suspend = <0>;
      	usb_serial_unique = <0>;
      	usb_serial_number = "20080411";
      	rndis_wceis = <1>;
      	status = "okay";
      };
      
      &ehci0 {
      	drvvbus-supply = <&reg_usb1_vbus>;
      };
      
      &ohci0 {
      	drvvbus-supply = <&reg_usb1_vbus>;
      };
      
      &usbc1 {
      	device_type = "usbc1";
          usb_port_type = <0x01>;
          usb_detect_type = <0x1>;	
      	usb_regulator_io = "nocare";
      	usb_wakeup_suspend = <0>;
      	status = "okay";
      };
      
      &ehci1 {
      	status = "okay";
      };
      
      &ohci1 {
      	status = "okay";
      };
      
      &twi0 {
      	clock-frequency = <400000>;
      	pinctrl-0 = <&twi0_pins_a>;
      	pinctrl-1 = <&twi0_pins_b>;
      	pinctrl-names = "default", "sleep";
      	status = "disabled";
      
      	eeprom@50 {
      		compatible = "atmel,24c16";
      		reg = <0x50>;
      		status = "disabled";
      	};
      };
      
      &twi1 {
      	clock-frequency = <400000>;
      	pinctrl-0 = <&twi1_pins_a>;
      	pinctrl-1 = <&twi1_pins_b>;
      	pinctrl-names = "default", "sleep";
      	status = "disabled";
      };
      
      &twi2 {
      	clock-frequency = <400000>;
      	pinctrl-0 = <&twi2_pins_a>;
      	pinctrl-1 = <&twi2_pins_b>;
      	pinctrl-names = "default", "sleep";
      	dmas = <&dma 45>, <&dma 45>;
      	dma-names = "tx", "rx";
      	status = "okay";
      
      	/* pcf8574-usage:
      	 * only use gpio0~7, 0 means PP0.
      	 * pin set:
      	 * gpios = <&pcf8574 0 GPIO_ACTIVE_LOW>;
      	 * interrupt set:
      	 * interrupt-parent = <&pcf8574>;
      	 * interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
      	 */
      	/*pcf8574: gpio@38 {
      		compatible = "nxp,pcf8574";
      		reg = <0x38>;
      		gpio_base = <2020>;
      		gpio-controller;
      		#gpio-cells = <2>;
      		interrupt-controller;
      		#interrupt-cells = <2>;
      		interrupt-parent = <&pio>;
      		interrupts = <PB 2 IRQ_TYPE_EDGE_FALLING>;
      		status = "disabled";
      	};*/
      
      	ctp@14 {
      		compatible = "allwinner,goodix";
      		device_type = "ctp";
      		reg = <0x14>;
      		status = "okay";
      		ctp_name = "gt9xxnew_ts";
      		ctp_twi_id = <0x2>;
      		ctp_twi_addr = <0x14>;
      		ctp_screen_max_x = <0x320>;
      		ctp_screen_max_y = <0x1e0>;
      		ctp_revert_x_flag = <0x0>;
      		ctp_revert_y_flag = <0x0>;
      		ctp_exchange_x_y_flag = <0x0>;
      		ctp_int_port = <&pio PB 3 GPIO_ACTIVE_HIGH>;
      		ctp_wakeup = <&pio PB 2 GPIO_ACTIVE_HIGH>;
      		/*ctp-supply = <&reg_aldo2>;*/
      		/*ctp_power_ldo = <&reg_aldo2>;*/
      		/*ctp_power_ldo_vol = <3300>;*/
      	};
      
      	// ov5640@78 {
      	// 	compatible = "ovti,ov2640";
      	// 	reg = <0x78>;
      	// 	pinctrl-names = "default";
      	// 	pinctrl-0 = <>
      
      	// }
      };
      
      &twi3 {
      	clock-frequency = <400000>;
      	pinctrl-0 = <&twi3_pins_a>;
      	pinctrl-1 = <&twi3_pins_b>;
      	pinctrl-names = "default", "sleep";
      	status = "disabled";
      };
      /*
      &gmac0 {
      	phy-mode = "rgmii";
      	use_ephy25m = <1>;
      	pinctrl-0 = <&gmac_pins_a>;
      	pinctrl-1 = <&gmac_pins_b>;
      	pinctrl-names = "default", "sleep";
      	phy-rst = <&pio PE 16 GPIO_ACTIVE_HIGH>;
      	tx-delay = <3>; //2~4
      	rx-delay = <0>;
      	status = "disabled";
      };
      */
      
      &spi0 {
      	clock-frequency = <100000000>;
      	pinctrl-0 = <&spi0_pins_a &spi0_pins_b>;
      	pinctrl-1 = <&spi0_pins_c>;
      	pinctrl-names = "default", "sleep";
      	/*spi-supply = <&reg_dcdc1>;*/
      	spi_slave_mode = <0>;
      	spi0_cs_number = <1>;
          spi0_cs_bitmap = <1>;
      	status = "okay";
      
      	spi-nand@0 {
      		compatible = "spi-nand";
      		spi-max-frequency=<100000000>;
      		reg = <0x0>;
      		spi-rx-bus-width=<0x01>;
      		spi-tx-bus-width=<0x01>;
      		status="okay";
      	};
      
      	spi-nor@0 {
      		compatible = "jedec,spi-nor";
      		spi-max-frequency=<30000000>;
      		reg = <0x0>;
      		spi-rx-bus-width=<0x01>;
      		spi-tx-bus-width=<0x01>;
      		status="disabled";
      	};
      };
      
      &spi1 {
      	clock-frequency = <100000000>;
      	pinctrl-0 = <&spi1_pins_a &spi1_pins_b>;
      	pinctrl-1 = <&spi1_pins_c>;
      	pinctrl-names = "default", "sleep";
      	spi_slave_mode = <0>;
      	status = "disabled";
      
      	spi_board1@0 {
      		device_type = "spi_board1";
      		compatible = "rohm,dh2228fv";
      		spi-max-frequency = <0x5f5e100>;
      		reg = <0x0>;
      		spi-rx-bus-width = <0x4>;
      		spi-tx-bus-width = <0x4>;
      		status = "disabled";
      	};
      };
      
      &ledc {
      	pinctrl-names = "default", "sleep";
      	pinctrl-0 = <&ledc_pins_a>;
      	pinctrl-1 = <&ledc_pins_b>;
      	led_count = <12>;
      	output_mode = "GRB";
      	reset_ns = <84>;
      	t1h_ns = <800>;
      	t1l_ns = <320>;
      	t0h_ns = <300>;
      	t0l_ns = <800>;
      	wait_time0_ns = <84>;
      	wait_time1_ns = <84>;
      	wait_data_time_ns = <600000>;
      	status	= "disabled";
      };
      
      &keyboard0 {
      	key0 = <210 0x160>;
      	wakeup-source;
      	status = "disabled";
      };
      
      /*----------------------------------------------------------------------------------
      disp init configuration
      
      disp_mode             (0:screen0<screen0,fb0>)
      screenx_output_type   (0:none; 1:lcd; 2:tv; 5:vdpo)
      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;)
      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      = <3>;
      	screen1_output_mode      = <4>;
      	
      	screen1_output_format    = <0>;
      	screen1_output_bits      = <0>;
      	screen1_output_eotf      = <4>;
      	screen1_output_cs        = <257>;
      	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>;
      	disp_rotation_used		 = <1>;
      	degree0					 = <0>;
      	fb0_format               = <0>;
      	fb0_buffer_num           = <1>;	
      	/*fb0_width                = <800>;*/
      	/*fb0_height               = <480>;*/  /*read from lcd*/
      	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
      
      	lcd_driver_name     = "default_lcd";  // 使用 default_lcd 驱动
      	lcd_backlight       = <50>;
      	lcd_if              = <0>;            // 0:rgb 4:dsi
      
      	// Part 1
      	lcd_x               = <800>;          // 宽度
      	lcd_y               = <480>;		  // 高度
      	lcd_width           = <108>;          // 屏幕物理宽度,单位 mm
      	lcd_height          = <65>;           // 屏幕物理高度,单位 mm
      
      	// Part 2
      	lcd_pwm_used        = <1>;            // 启用背光 PWM
      	lcd_pwm_ch          = <7>;            // 使用 PWM 通道 7
      	lcd_pwm_freq        = <5000>;         // PWM 频率,单位 Hz
      	lcd_pwm_pol         = <0>;            // 背光 PWM 的极性
      	lcd_pwm_max_limit   = <255>;          // 背光 PWM 的最大值(<=255)
      
      	// Part 3 
      	lcd_dclk_freq       = <22>;           // 屏幕时钟,单位 MHz
      	lcd_ht              = <928>;          // hsync total cycle(pixel)
      	lcd_hbp             = <88>;           // hsync back porch(pixel) + hsync plus width(pixel);
      	lcd_hspw            = <48>;           // hsync plus width(pixel)
      	lcd_vt              = <525>;          // vsync total cycle(line)
      	lcd_vbp             = <32>;           // vsync back porch(line) + vysnc plus width(line)
      	lcd_vspw            = <1>;            // vsync plus width(pixel)
      
      	// Part 4
      	lcd_lvds_if         = <0>;
      	lcd_lvds_colordepth = <1>;
      	lcd_lvds_mode       = <0>;
      	lcd_frm             = <0>;            // 0:关闭; 1:启用rgb666抖动; 2:启用rgb656抖动
      	lcd_io_phase        = <0x0000>;
      	lcd_gamma_en        = <0>;
      	lcd_bright_curve_en = <0>;
      	lcd_cmap_en         = <0>;
      	deu_mode            = <0>;
      	lcdgamma4iep        = <22>;
      	smart_color         = <90>;
      
      	// Part 5
      	pinctrl-0 = <&rgb18_pins_a>;
      	pinctrl-1 = <&rgb18_pins_b>;
      };
      
      &pwm0 {
      	pinctrl-names = "active", "sleep";
      	pinctrl-0 = <&pwm0_pin_a>;
      	pinctrl-1 = <&pwm0_pin_b>;
      	status = "disabled";
      };
      
      &pwm2 {
      	pinctrl-names = "active", "sleep";
      	pinctrl-0 = <&pwm2_pin_a>;
      	pinctrl-1 = <&pwm2_pin_b>;
      	status = "disabled";
      };
      
      
      &pwm7 {
      	pinctrl-names = "active", "sleep";
      	pinctrl-0 = <&pwm7_pin_a>;
      	pinctrl-1 = <&pwm7_pin_b>;
      	status = "disabled";
      };
      
      &rtp {
      	allwinner,tp-sensitive-adjust = <0xf>;
      	allwinner,filter-type = <0x1>;
      	allwinner,ts-attached;
      	status = "disabled";
      };
      
      &tpadc {
      	key_cnt = <5>;
      	key1 = <420 115>;
      	key2 = <870 114>;
      	key3 = <1290 119>;
      	key4 = <1630 373>;
      	key5 = <1950 28>;
      	status = "disabled";
      };
      
      &gpadc {
      	channel_num = <1>;
      	channel_select = <0x01>;
      	channel_data_select = <0>;
      	channel_compare_select = <0x01>;
      	channel_cld_select = <0x01>;
      	channel_chd_select = <0>;
      	channel0_compare_lowdata = <1600000>;
      	channel0_compare_higdata = <1200000>;
      	channel1_compare_lowdata = <460000>;
      	channel1_compare_higdata = <1200000>;
      	key_cnt = <5>;
      	key0_vol = <210>;
      	key0_val = <0x19c>;
      	key1_vol = <410>;
      	key1_val = <0x197>;
      	key2_vol = <590>;
      	key2_val = <158>;
      	key3_vol = <750>;
      	key3_val = <28>;
      	key4_vol = <880>;
      	key4_val = <28>;
      	status = "okay";
      	wakeup-source;
      };
      
      &s_cir0 {
      	pinctrl-names = "default", "sleep";
      	pinctrl-0 = <&s_cir0_pins_a>;
      	pinctrl-1 = <&s_cir0_pins_b>;
      	ir_protocol_used		= <0>;
      	ir_addr_code0			= <0x0>;
      	status = "disabled";
      };
      
      &ir1 {
      	pinctrl-names = "default", "sleep";
      	pinctrl-0 = <&ir1_pins_a>;
      	pinctrl-1 = <&ir1_pins_b>;
      	status = "disabled";
      };
      
      &vind0 {
      	csi_top = <378000000>;
      	csi_isp = <327000000>;
      	status = "okay"; /* enable twi and ver1 spi-nand max freq 30M */
      
      	actuator0: actuator@5809450 {
      		device_type = "actuator0";
      		actuator0_name = "ad5820_act";
      		actuator0_slave = <0x18>;
      		actuator0_af_pwdn = <>;
      		actuator0_afvdd = "afvcc-csi";
      		actuator0_afvdd_vol = <2800000>;
      		status = "okay";
      	};
      	flash0: flash@5809460 {
      		device_type = "flash0";
      		flash0_type = <2>;
      		flash0_en = <>;
      		flash0_mode = <>;
      		flash0_flvdd = "";
      		flash0_flvdd_vol = <>;
      		device_id = <0>;
      		status = "okay";
      	};
      	sensor0: sensor@5809470 {
      		reg = <0x0 0x05809470 0x0 0x10>;
      		device_type = "sensor0";
      		compatible = "allwinner,sunxi-sensor";
      		sensor0_mname = "ov5640";
      		sensor0_twi_cci_id = <2>;
      		sensor0_twi_addr = <0x78>;
      		sensor0_mclk_id = <0>;
      		sensor0_pos = "rear";
      		sensor0_isp_used = <0>;
      		sensor0_fmt = <0>;
      		sensor0_stby_mode = <0>;
      		sensor0_vflip = <>;
      		sensor0_hflip = <>;
      
      		sensor0_iovdd-supply = <>;
      		sensor0_iovdd_vol = <2800000>;
      
      		sensor0_avdd-supply = <0>;
      		sensor0_avdd_vol = <2800000>;
      
      		sensor0_dvdd-supply = <>;
      		sensor0_dvdd_vol = <1200000>;
      
      		sensor0_power_en = <>;
      		sensor0_reset = <&pio PB 5 GPIO_ACTIVE_LOW>;
              sensor0_pwdn = <&pio PB 4 GPIO_ACTIVE_LOW>;
      		flash_handle = <&flash0>;
      		act_handle = <&actuator0>;
      		sensor0_sm_vs = <>;
      		device_id = <0>;
      		status  = "okay";
      	};
      	sensor1:sensor@5809480 {
      		device_type = "sensor1";
      		sensor1_mname = "ov5647";
      		sensor1_twi_cci_id = <3>;
      		sensor1_twi_addr = <0x6c>;
      		sensor1_mclk_id = <1>;
      		sensor1_pos = "front";
      		sensor1_isp_used = <0>;
      		sensor1_fmt = <0>;
      		sensor1_stby_mode = <0>;
      		sensor1_vflip = <0>;
      		sensor1_hflip = <0>;
      		sensor1_iovdd-supply = <>;
      		sensor1_iovdd_vol = <>;
      		sensor1_avdd-supply = <>;
      		sensor1_avdd_vol = <>;
      		sensor1_dvdd-supply = <>;
      		sensor1_dvdd_vol = <>;
      		sensor1_power_en = <>;
      		sensor1_reset = <&pio PE 7 GPIO_ACTIVE_LOW>;
      		sensor1_pwdn = <&pio PE 6 GPIO_ACTIVE_LOW>;
      		status	= "disabled";
      	};
      	vinc0:vinc@5809000 {
      		compatible = "allwinner,sunxi-vin-core";
                      device_type = "vinc0";
      		vinc0_csi_sel = <0>;
      		vinc0_mipi_sel = <0xff>;
      		vinc0_isp_sel = <0>;
      		vinc0_isp_tx_ch = <0>;
      		vinc0_tdm_rx_sel = <0xff>;
      		vinc0_rear_sensor_sel = <0>;
      		vinc0_front_sensor_sel = <1>;
      		vinc0_sensor_list = <0>;
      		status = "okay";
      	};
      	vinc1:vinc@5809200 {
      		vinc1_csi_sel = <0>;
      		vinc1_mipi_sel = <0xff>;
      		vinc1_isp_sel = <0>;
      		vinc1_isp_tx_ch = <1>;
      		vinc1_tdm_rx_sel = <0xff>;
      		vinc1_rear_sensor_sel = <0>;
      		vinc1_front_sensor_sel = <1>;
      		vinc1_sensor_list = <0>;
      		status = "disabled";
      	};
      };
      

      这是内核配置:

      #
      # Multimedia core support
      #
      CONFIG_MEDIA_CAMERA_SUPPORT=y
      # CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
      CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
      # CONFIG_MEDIA_RADIO_SUPPORT is not set
      # CONFIG_MEDIA_SDR_SUPPORT is not set
      # CONFIG_MEDIA_CEC_SUPPORT is not set
      CONFIG_MEDIA_CONTROLLER=y
      CONFIG_MEDIA_CONTROLLER_DVB=y
      CONFIG_VIDEO_DEV=y
      CONFIG_VIDEO_V4L2_SUBDEV_API=y
      CONFIG_VIDEO_V4L2=y
      CONFIG_VIDEO_V4L2_I2C=y
      CONFIG_VIDEO_ADV_DEBUG=y
      # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
      CONFIG_V4L2_MEM2MEM_DEV=y
      CONFIG_V4L2_FWNODE=y
      CONFIG_DVB_CORE=y
      # CONFIG_DVB_MMAP is not set
      CONFIG_DVB_NET=y
      CONFIG_DVB_MAX_ADAPTERS=16
      # CONFIG_DVB_DYNAMIC_MINORS is not set
      # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
      # CONFIG_DVB_ULE_DEBUG is not set
      
      
      
      
      #
      # Webcam, TV (analog/digital) USB devices
      #
      # CONFIG_VIDEO_EM28XX is not set
      CONFIG_V4L_PLATFORM_DRIVERS=y
      # CONFIG_VIDEO_CADENCE is not set
      # CONFIG_VIDEO_ASPEED is not set
      CONFIG_VIDEO_MUX=y
      # CONFIG_VIDEO_XILINX is not set
      # CONFIG_VIDEO_SUN4I_CSI is not set
      # CONFIG_VIDEO_SUN6I_CSI is not set
      CONFIG_VIDEO_SUNXI_TVD=y
      CONFIG_SUNXI_PLATFORM_DRIVERS=y
      CONFIG_VIDEO_SUNXI_VIN=y
      CONFIG_CSI_VIN=y
      CONFIG_ENABLE_SENSOR_FLIP_OPTION=y
      CONFIG_CSI_CCI=y
      # CONFIG_CCI is not set
      CONFIG_CCI_TO_TWI=y
      CONFIG_FLASH=y
      # CONFIG_ACTUATOR is not set
      # CONFIG_SENSOR_LIST is not set
      CONFIG_BUF_AUTO_UPDATE=y
      CONFIG_VIN_LOG=y
      # CONFIG_PIPELINE_RESET is not set
      # CONFIG_MULTI_FRAME is not set
      # CONFIG_SUPPORT_ISP_TDM is not set
      # CONFIG_DISPPLAY_SYNC is not set
      CONFIG_VIN_IOMMU=y
      # CONFIG_D3D is not set
      CONFIG_WDR=y
      CONFIG_WDR_COMPRESS_EN=y
      CONFIG_SAME_I2C=y
      # CONFIG_SENSOR_POWER is not set
      CONFIG_V4L_MEM2MEM_DRIVERS=y
      CONFIG_VIDEO_MEM2MEM_DEINTERLACE=y
      CONFIG_VIDEO_SH_VEU=y
      # CONFIG_V4L_TEST_DRIVERS is not set
      # CONFIG_DVB_PLATFORM_DRIVERS is not set
      
      
      
      
      #
      # Supported MMC/SDIO adapters
      #
      # CONFIG_SMS_SDIO_DRV is not set
      # CONFIG_CYPRESS_FIRMWARE is not set
      CONFIG_VIDEOBUF2_CORE=y
      CONFIG_VIDEOBUF2_V4L2=y
      CONFIG_VIDEOBUF2_MEMOPS=y
      CONFIG_VIDEOBUF2_DMA_CONTIG=y
      CONFIG_VIDEOBUF2_VMALLOC=y
      
      
      
      发布在 Linux
      L
      liefyuan