zoukankan      html  css  js  c++  java
  • [RK3399] Type-C改为MicroUSB

    CPU:RK3399

    系统:Android 7.1.2

    为了降低成本,主板将 Type-C 改为 MicroUSB 接口,节省了 fusb302芯片

    参考 Rockchip 的官方文档第4部分:Micro USB2.0 OTG DTS配置

    RKDocs/common/usb/Rockchip-Developer-Guide-Linux4.4-RK3399-USB-DTS-CN.pdf

    &tcphy0 {
        status = "disabled";
    };
    
    &u2phy0 {
        status = "okay"; /* Micro USB2 PHY 删除了extcon属性 */
        otg-vbus-gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>; /* Vbus GPIO配置 */
        u2phy0_otg: otg-port { /* 文档中错误写成了u2phy1_otg */
            status = "okay";
        };
        ......
    };
    
    &usbdrd3_0 {
        extcon = <&u2phy0>; /* Micro USB3控制器的extcon属性引用u2phy0 */
        status = "okay";
    };
    
    &usbdrd_dwc3_0 {
        dr_mode = "otg"; /* Micro USB3控制器的dr_mode配置为otg */
        maximum-speed = "high-speed"; /* maximum-speed 属性配置为high-speed */
        phys = <&u2phy0_otg>; /* phys 属性只引用USB2 PHY节点 */
        phy-names = "usb2-phy";
        status = "okay";
    };

    按照文档中说明,修改这部分就可以了,但是编译内核部分烧录后,不能进安卓系统,串口一直循环打印如下:

    [    9.878630] init: Starting service 'surfaceflinger'...
    [   10.294620] init: Service 'surfaceflinger' (pid 532) killed by signal 6
    [   10.294664] init: Service 'surfaceflinger' (pid 532) killing any children in process group
    [   10.294709] init: Service 'zygote' is being killed...
    [   10.356365] init: Service 'zygote' (pid 254) killed by signal 9
    [   10.356441] init: Service 'zygote' (pid 254) killing any children in process group
    [   10.356634] init: write_file: Unable to open '/sys/android_power/request_state': No such file or directory
    [   10.356778] init: write_file: Unable to write to '/sys/power/state': Invalid argument
    [   10.356805] init: Service 'audioserver' is being killed...
    [   10.357239] init: Service 'cameraserver' is being killed...
    [   10.357327] init: Service 'media' is being killed...
    [   10.357454] init: Service 'netd' is being killed...
    [   10.358943] init: Starting service 'zygote'...
    [   10.364342] init: Service 'audioserver' (pid 299) killed by signal 9
    [   10.364427] init: Service 'audioserver' (pid 299) killing any children in process group
    [   10.365879] init: Starting service 'audioserver'...
    [   10.369573] init: Service 'netd' (pid 310) killed by signal 9
    [   10.369677] init: Service 'netd' (pid 310) killing any children in process group
    [   10.370582] init: Untracked pid 575 killed by signal 9
    [   10.374127] init: Service 'media' (pid 297) killed by signal 9
    [   10.374192] init: Service 'media' (pid 297) killing any children in process group
    [   10.375119] init: Service 'cameraserver' (pid 300) killed by signal 9
    [   10.375158] init: Service 'cameraserver' (pid 300) killing any children in process group
    [   10.376450] init: Starting service 'media'...
    [   10.378976] init: Starting service 'cameraserver'...
    [   10.382610] init: couldn't write 580 to /dev/cpuset/camera-daemon/tasks: No such file or directory
    [   12.079202] init: Starting service 'netd'...

    开始怀疑是因为没有全部编译的问题,但是全部编译烧录后,还是不能开机,一直提示找不到 drm device,串口一直循环打印如下:

    __bionic_open_tzdata: couldn't find any tzdata when looking for GMT!
    Starting recovery (pid 185) on Fri Jan 18 08:52:30 2013
    bootmode = emmc 
    recovery filesystem table
    =========================
      0 /mnt/internal_sd vfat /dev/block/platform/fe330000.sdhci/by-name/user 0
      1 /mnt/external_sd vfat /dev/block/mmcblk0p1 0
      2 /system ext4 /dev/block/platform/fe330000.sdhci/by-name/system 0
      3 /cache ext4 /dev/block/platform/fe330000.sdhci/by-name/cache 0
      4 /metadata ext4 /dev/block/platform/fe330000.sdhci/by-name/metadata 0
      5 /data ext4 /dev/block/platform/fe330000.sdhci/by-name/userdata 0
      6 /cust ext4 /dev/block/platform/fe330000.sdhci/by-name/cust 0
      7 /custom ext4 /dev/block/platform/fe330000.sdhci/by-name/custom 0
      8 /misc emmc /dev/block/platform/fe330000.sdhci/by-name/misc 0
      9 /uboot emmc /dev/block/platform/fe330000.sdhci/by-name/uboot 0
      10 /charge emmc /dev/block/platform/fe330000.sdhci/by-name/charge 0
      11 /resource emmc /dev/block/platform/fe330000.sdhci/by-name/resource 0
      12 /parameter emmc /dev/block/platform/fe330000.sdhci/by-name/parameter 0
      13 /boot emmc /dev/block/platform/fe330000.sdhci/by-name/boot 0
      14 /recovery emmc /dev/block/platform/fe330000.sdhci/by-name/recovery 0
      15 /backup emmc /dev/block/platform/fe330000.sdhci/by-name/backup 0
      16 /trust emmc /dev/block/platform/fe330000.sdhci/by-name/trust 0
      17 /baseparameter emmc /dev/block/platform/fe330000.sdhci/by-name/baseparameter 0
      18 /frp emmc /dev/block/platform/fe330000.sdhci/by-name/frp 0
      19 /tmp ramdisk ramdisk 0
    
    emmc_point is /dev/block/mmcblk1
    sd_point is (null)
    sd_point_2 is (null)
    I:InternalSD_ROOT: /mnt/internal_sd
    I:ExternalSD_ROOT: /mnt/external_sd
    read cmdline
    [    4.309235] fs_mgr: Warning: unknown flag resize
    I:Boot command: boot-recovery
    I:Got arguments from boot message
    [    4.311229] fs_mgr: Warning: unknown flag resize
    === start void dumpCmdArgs(int, char **):296 ===
    argv[0] =  recovery.
    argv[1] =  --wipe_all.
    locale is [en_US]
    stage is []
    reason is [(null)]
    cannot find/open a drm device: No such file or directory
    cannot open fb0: No such file or directory
    [    4.352842] init: Service 'recovery' (pid 185) killed by signal 11
    [    4.352952] init: Service 'recovery' (pid 185) killing any children in process group
    [    9.358734] init: Starting service 'recovery'...

    查看 dts 文件,里面还有一个地方 &cdn_dp 使用了 fusb0,屏蔽此处即可开机

    &cdn_dp {
        status = "disabled";
        extcon = <&fusb0>;
        phys = <&tcphy0_dp>;
    };

    最后建议把 i2c 中与 fusb302 通讯的部分也 disable 掉,此处不改也没有问题,只是 i2c 不通,但可以正常开机。

    fusb0: fusb30x@22 {
        compatible = "fairchild,fusb302";
        reg = <0x22>;
        pinctrl-names = "default";
        pinctrl-0 = <&fusb0_int>;
        int-n-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
        vbus-5v-gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>;
        status = "disabled";
    };
  • 相关阅读:
    BestCoder6 1002 Goffi and Squary Partition(hdu 4982) 解题报告
    codeforces 31C Schedule 解题报告
    codeforces 462C Appleman and Toastman 解题报告
    codeforces 460C. Present 解题报告
    BestCoder3 1002 BestCoder Sequence(hdu 4908) 解题报告
    BestCoder3 1001 Task schedule(hdu 4907) 解题报告
    poj 1195 Mobile phones 解题报告
    二维树状数组 探索进行中
    codeforces 460B Little Dima and Equation 解题报告
    通过Sql语句控制SQLite数据库增删改查
  • 原文地址:https://www.cnblogs.com/lialong1st/p/11556787.html
Copyright © 2011-2022 走看看