千家信息网

RK3399 Type-C如何改为MicroUSB

发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,RK3399 Type-C如何改为MicroUSB,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。CPU:RK3399系统:Andro
千家信息网最后更新 2025年02月07日RK3399 Type-C如何改为MicroUSB

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

};

关于RK3399 Type-C如何改为MicroUSB问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

0