MTK 平台修改或查看USB驱动能力有三种方法
MTK 平台修改或查看USB驱动能力有三种方法:
1、工模菜单
通过"*#*#3646633#*#*"进入工程模式,通过如下菜单可以查看修改USB驱动能力:
hardware testing-->USB-->USB PHY TUning-->USB_DRIVING_CAPABILITY;
2、USB节点
有ROOT权限image通过下面节点查看修改驱动能力:
/sys/kernel/debug/usb20_phy/USB_DRIVING_CAPABILITY
3、修改CODE:
方法1、修改set_usb_phy_mode()函数
有时候device的驱动能力调整好,但手机作为host确存在连接不上device的问题,这时就需要单独调节device和host的驱动能力,以6765为例,可在如下位置进行修改:
/kernel-4.9/drivers/misc/mediatek/usb20/mt6765/usb20_phy.c
void set_usb_phy_mode(int mode) {switch (mode) {case PHY_DEV_ACTIVE:/* VBUSVALID=1, AVALID=1, BVALID=1, SESSEND=0, IDDIG=1, IDPULLUP=1 */USBPHY_CLR32(0x6C, (0x10<<0));USBPHY_SET32(0x6C, (0x2F<<0));USBPHY_SET32(0x6C, (0x3F<<8));// device mode add here 其中u2_vrt_ref与u2_term_ref 最大为0x7,u2_enhance最大为0x3//
USBPHY_CLR32(OFFSET_RG_USB20_VRT_VREF_SEL,VAL_MAX_WIDTH_3 << SHFT_RG_USB20_VRT_VREF_SEL); USBPHY_SET32(OFFSET_RG_USB20_VRT_VREF_SEL,u2_vrt_ref << SHFT_RG_USB20_VRT_VREF_SEL); USBPHY_CLR32(OFFSET_RG_USB20_TERM_VREF_SEL,VAL_MAX_WIDTH_3 << SHFT_RG_USB20_TERM_VREF_SEL); USBPHY_SET32(OFFSET_RG_USB20_TERM_VREF_SEL,u2_term_ref << SHFT_RG_USB20_TERM_VREF_SEL); USBPHY_CLR32(OFFSET_RG_USB20_PHY_REV6,VAL_MAX_WIDTH_2 << SHFT_RG_USB20_PHY_REV6); USBPHY_SET32(OFFSET_RG_USB20_PHY_REV6,u2_enhance<<SHFT_RG_USB20_PHY_REV6); break;
case PHY_HOST_ACTIVE:/* VBUSVALID=1, AVALID=1, BVALID=1, SESSEND=0, IDDIG=0, IDPULLUP=1 */USBPHY_CLR32(0x6c, (0x12<<0));USBPHY_SET32(0x6c, (0x2d<<0));USBPHY_SET32(0x6c, (0x3f<<8));//host mode add here,与device mode相同,但需设定不同的us_vrt_ref/u2_term_ref/u2_enhance//
break;case PHY_IDLE_MODE:/* VBUSVALID=0, AVALID=0, BVALID=0, SESSEND=1, IDDIG=0, IDPULLUP=1 */USBPHY_SET32(0x6c, (0x11<<0));USBPHY_CLR32(0x6c, (0x2e<<0));USBPHY_SET32(0x6c, (0x3f<<8));break;default:DBG(0, "mode error %d\n", mode);}DBG(0, "force PHY to mode %d, 0x6c=%x\n", mode, USBPHY_READ32(0x6c)); }
方法2、直接修改usb_phy_tuning(void)函数,修改为:
void usb_phy_tuning(void) {printk("mtk_usb_phy_tuning is_host_mode:%d", mtk_musb->is_host_mode);if (mtk_musb->is_host_mode) {if (u2_vrt_ref != -1) {if (u2_vrt_ref <= VAL_MAX_WIDTH_3) {USBPHY_CLR32(OFFSET_RG_USB20_VRT_VREF_SEL,VAL_MAX_WIDTH_3 << SHFT_RG_USB20_VRT_VREF_SEL);USBPHY_SET32(OFFSET_RG_USB20_VRT_VREF_SEL,u2_vrt_ref << SHFT_RG_USB20_VRT_VREF_SEL);}}if (u2_term_ref != -1) {if (u2_term_ref <= VAL_MAX_WIDTH_3) {USBPHY_CLR32(OFFSET_RG_USB20_TERM_VREF_SEL,VAL_MAX_WIDTH_3 << SHFT_RG_USB20_TERM_VREF_SEL);USBPHY_SET32(OFFSET_RG_USB20_TERM_VREF_SEL,u2_term_ref << SHFT_RG_USB20_TERM_VREF_SEL);}}if (u2_enhance != -1) {if (u2_enhance <= VAL_MAX_WIDTH_2) {USBPHY_CLR32(OFFSET_RG_USB20_PHY_REV6,VAL_MAX_WIDTH_2 << SHFT_RG_USB20_PHY_REV6);USBPHY_SET32(OFFSET_RG_USB20_PHY_REV6,u2_enhance<<SHFT_RG_USB20_PHY_REV6);}} else {..........与host_modecode一致,只是需要设定不同的参数}
MTK 平台修改或查看USB驱动能力有三种方法相关推荐
- host速度 mtk usb_[MTK] 如何修改usb驱动能力
[MTK] 如何修改usb驱动能力 2020-03-5 阅读:2732 [DESCRIPTION] USB驱动能力调节方法: USB眼图测试fail处理方法: [SOLUTION] 1.USB眼图测试 ...
- MTK如何修改usb驱动能力
[DESCRIPTION] USB驱动能力调节方法: USB眼图测试fail处理方法: [SOLUTION] 1.USB眼图测试fail通常需要修改如下两个register调节USB驱动能力: RG_ ...
- Android 驱动(15)---如何修改USB驱动能力
如何修改USB驱动能力 修改或查看USB驱动能力有三种方法: 1.工模菜单 通过"*#*#3646633#*#*"进入工程模式,通过如下菜单可以查看修改USB驱动能力: hard ...
- 如何修改USB驱动能力
Android 驱动(15)---如何修改USB驱动能力 如何修改USB驱动能力 修改或查看USB驱动能力有三种方法: 1.工模菜单 通过"*#*#3646633#*#*"进入工 ...
- linux 查看usb驱动,linux查看硬件信息及驱动设备相关整理
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 联系我登录 首页 业界新闻 技术文章 资源分享 微语 linux查看硬件信息及驱动设备相关整理[转] 蓝猫 发布于:2014-5-30 17:48 分类: ...
- linux查看usb驱动版本号,linux查看硬件信息及驱动设备相关整理
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 联系我登录 首页 业界新闻 技术文章 资源分享 微语 linux查看硬件信息及驱动设备相关整理[转] 蓝猫 发布于:2014-5-30 17:48 分类: ...
- 一种提高单片机i/o口驱动能力的方法
一.简述问题 当你用单片驱动发光二极管的时,你还感觉不到P0.P1口的区别.(10-20mA之间,其中P0驱动能力最强,但对于驱动直流电机依然很弱,其结果就是电机不转).那么有什么办法提高驱动能力吗? ...
- csr8675高通qcc5125修改蓝牙的usb声卡的ID方法
csr8675和高通qcc5125修改蓝牙的usb声卡ID方法 分两种,csr和qcc,实际都是高通的了.简单区分来说,就是使用的烧录器不一样. spi烧录器:csr8670.8675-这些都适用 ① ...
- android万能USB驱动的安装方法.(针对开发人员 windows)
文章表明原创的,转载请注明出处 http://blog.csdn.net/geliang0120/article/details/9618075 国内软件管得太宽了.先吐槽qq 360,等流氓软件, ...
最新文章
- vi php,linux编辑文件命令vi有什么作用
- 2015 百度之星 1003 棋盘占领 dfs
- php性能优化和细节优化
- java解析xml的几种方式
- HCharts随笔之简单入门
- java 和javafx_Java,JavaFX的流利设计风格文本字段和密码字段
- 微软五月份安全补丁发布
- Faster R-CNN原理
- python两组数的差异_Python中两个日期之间的差异
- Spring 2 和 JPA 简介
- mongodb基础操作
- jsp el表达式无法正常显示解决方法
- Android Studio查看Android源码
- OPPO小布助手算法系统的探索、实践与思考
- 矩阵微分常用公式整理
- 【Android】期末选择题和判断题
- Xilinx MicroBlaze软核驱动DDR4
- 对话框AlertDialog的使用
- sql server查询不显示结果_仅凭网上查询结果显示邮件由行政机关签收,能证明行政机关一定收到了当事人的申请吗?...
- (python+cv2)做一个简单的摄像头人脸识别
热门文章
- linux虚拟机能通显卡吗,英伟达 GeForce 游戏显卡正式支持虚拟机传递功能,可以完全调用...
- python字典数据类型笔记_python笔记2-数据类型:元组、字典常用操作
- 【LeetCode】剑指 Offer 66. 构建乘积数组
- 【重难点】【Java集合 04】ArrayDeque 的使用场景、ArrayBlockingQueue
- Mysql之七种连接查询
- java并发初探ConcurrentSkipListMap
- 如何解压POSIX tar archive文件
- Codeforces #364 DIV2
- 多线程笔试题(linux)
- Computer - 电脑硬件知识