[RK3399][Android7.1] 调试笔记 --- USB type-c插入后无法识别到

news/2024/10/9 11:16:34/

Platform: RK3399
OS: Android 7.1
Kernel: v4.4.83

现象:

用update.img制作了一个升级包之后可以升级,但是无法识别到type-c。


Log:

插上usb后提示:

[   35.192416] rk818-charger: pmic: plug in
[   35.679779] phy phy-ff770000.syscon:usb2-phy@e450.1: charger = USB_FLOATING_CHARGER
[   35.688995] rk818-charger: receive type-c notifier event: AC...
[   35.700366] rk818-charger: ac=1 usb=0 dc=0 otg=0 v=4350 chrg=3000 input=3000 virt=0
[   35.702589] healthd: battery l=46 v=3825 t=18.8 h=2 st=2 c=-30 chg=a
[   35.727454] healthd: battery l=46 v=3825 t=18.8 h=2 st=2 c=-30 chg=a

能检测到,但是状态不对。


原因:

fusb302这颗IC的其中一个电源没有接通。

正常Log:

[ 3479.628913] fusb302 4-0022: CC connected in 0 as UFP
[ 3479.635870] cdn-dp fec00000.dp: [drm:cdn_dp_pd_event_work] Not connected. Disabling cdn
[ 3479.728151] rk818-charger: pmic: plug in
[ 3479.797379] phy phy-ff770000.syscon:usb2-phy@e450.1: charger = USB_SDP_CHARGER
[ 3479.799540] rockchip-dwc3 usb@fe800000: USB peripheral connected
[ 3479.805475] rk818-charger: receive type-c notifier event: USB...
[ 3479.807465] rk818-charger: ac=0 usb=1 dc=0 otg=0 v=4350 chrg=3000 input=450 virt=0
[ 3479.819669] healthd: battery l=45 v=3801 t=18.8 h=2 st=2 c=-4 chg=u
[ 3479.834338] healthd: battery l=45 v=3801 t=18.8 h=2 st=2 c=-4 chg=u
[ 3479.993106] type=1400 audit(1358504472.310:17): avc: denied { read } for pid=313 comm="AudioOut_D" name="audioformat" dev="sysfs" ino=19061 scontext=u:r:audioserver:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
[ 3479.993605] type=1400 audit(1358504472.310:18): avc: denied { open } for pid=313 comm="AudioOut_D" path="/sys/devices/platform/display-subsystem/drm/card0/card0-HDMI-A-1/audioformat" dev="sysfs" ino=19061 scontext=u:r:audioserver:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
[ 3479.993759] type=1400 audit(1358504472.310:19): avc: denied { getattr } for pid=313 comm="AudioOut_D" path="/sys/devices/platform/display-subsystem/drm/card0/card0-HDMI-A-1/audioformat" dev="sysfs" ino=19061 scontext=u:r:audioserver:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
[ 3480.096724] android_work: sent uevent USB_STATE=CONNECTED

知识点:

由于usb 3.0的type-c接口需要支持不同电压的外设(5V, 12V等),如果不做控制,那么设置12V接5V的外设将会出问题。
fusb302可以实现此控制,根据不同的外设电压来调整电流。
框图:
这里写图片描述

应用电路:
这里写图片描述

其中要注意的是INT_N引脚,此pin会接到processor端的gpio,当有usb插拔时,INT_N pin会被拉低,以通知cpu通过I2C去读取USB状态信息,如果dts中gpio配置得不对,usb也将无法被识别。

调试的时候可以看下/proc/interrupts中有没有fusb302的中断信息,或者直接在驱动(drivers/mfd/fusb302.c)中加Log。

rk3399-mid-818-android.dts:

    fusb0: fusb30x@22 {compatible = "fairchild,fusb302";reg = <0x22>;pinctrl-names = "default";pinctrl-0 = <&fusb0_int>;int-n-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>; //我用的是gpio1 A1。status = "okay";};//这里也要一起修改fusb30x {fusb0_int: fusb0-int {rockchip,pins =<1 1 RK_FUNC_GPIO &pcfg_pull_up>;};};

对应原理图:
这里写图片描述

rk参考设计用的是gpio1 A2,我们做了修改。
这里写图片描述


参考:

FUSB302 pdf


http://www.ppmy.cn/news/293931.html

相关文章

电脑无线网络不显示网络列表应该如何解决

电脑获取外界信息联网是基本&#xff0c;部分网友在使用电脑时会遇到电脑无线网络不显示网络列表的情况&#xff0c;不能给电脑连接无线网络就会变得非常麻烦&#xff0c;这里就和大家聊聊该如何解决这个问题吧。 还有详细的一键重装系统方法 1、在电脑桌面上右键点击此电脑&a…

生活常用电器的功率测量

买了个功率计, 把生活中常用的电器功率大致都测一遍, 以下记录: Netgear WNDR3800路由器 工作稳定状态功率6.7瓦(无挂载U盘等) 极路由2(极贰)路由器 工作稳定状态功率2.9瓦(无挂载U盘等) 联想NeWIFI Y1路由器 工作稳定状态功率3.4~3.6瓦(无挂载U盘等) 联想NeWIFI D1路由器 工作…

联想E450,win10操作系统,vmware安装centos时报错 Intel VT-x 处于禁用状态

最近在学习Vmware时遇到一些问题&#xff0c;通过百度查找解决方案&#xff0c;经过多方偿试&#xff0c;有的方案很有效&#xff0c;有的方案不起作用&#xff0c;应该是作者是用户的环境不一致&#xff0c;所以不能有效的解决问题。今天把我的解决方案分享一为后来者做参考&a…

sun E450 加电一定要盖上盖子

sun E450 加电一定要盖上盖子&#xff0c;否则&#xff0c;扭钥匙没有反应。这次是在湖南电信遇到的。[more] 来自 “ ITPUB博客 ” &#xff0c;链接&#xff1a;http://blog.itpub.net/687883/viewspace-1026511/&#xff0c;如需转载&#xff0c;请注明出处&#xff0c;否则…

ThinkPHP5学生学术管理系统

有需要请私信或看评论链接哦 可远程调试 ThinkPHP5学生学术管理系统 一 介绍 此学生学术管理系统基于ThinkPHP5框架开发&#xff0c;数据库mysql&#xff0c;前端Amazeui。系统角色分为学生用户和管理员。学生可以对个人信息&#xff0c;发表论文&#xff0c;专利授权&#x…

ThinkPad E450 uefi模式下移动硬盘安装Ubuntu14.04(本机硬盘是win10)

thinkpad E450 希捷500G移动硬盘 写有unbuntu映像的u盘启动盘 本次ubuntu安装的主要问题有&#xff1a; 1、thinkpad E450 进入bios并设置bios&#xff0c;使能够从u盘启动 2、启动模式要设置成uefi&#xff0c;而不是leagcy 3、移动硬盘存在“分配到/的分区/dev/sdc1开始…

ThinkPAD e450 安装 win 7 系统 BIOS设置

开机多次按F1&#xff08;FnF1&#xff09;进入BIOS&#xff0c;选择Security—Secure Boot—Disabled&#xff0c;再进入Startup—UEFI/Legacy Boot选项&#xff0c;UEFI/Legacy Boot设置为Legacy only&#xff0c;最后再按F10&#xff08;FnF10&#xff09;选择YES保存退出。…

C# Task Parallel Library (TPL) 访问线程池

//在C#中&#xff0c;可以使用Task Parallel Library (TPL)来访问线程池。 //TPL是一个用于并行编程的框架&#xff0c;它提供了一种简单的方式来创建并行任务&#xff0c; //并自动利用线程池来执行这些任务。 //下面是一个使用TPL访问线程池的示例&#xff1a; //csharp u…