您好,登錄后才能下訂單哦!
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問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。