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驱动能力有三种方法相关推荐

  1. host速度 mtk usb_[MTK] 如何修改usb驱动能力

    [MTK] 如何修改usb驱动能力 2020-03-5 阅读:2732 [DESCRIPTION] USB驱动能力调节方法: USB眼图测试fail处理方法: [SOLUTION] 1.USB眼图测试 ...

  2. MTK如何修改usb驱动能力

    [DESCRIPTION] USB驱动能力调节方法: USB眼图测试fail处理方法: [SOLUTION] 1.USB眼图测试fail通常需要修改如下两个register调节USB驱动能力: RG_ ...

  3. Android 驱动(15)---如何修改USB驱动能力

    如何修改USB驱动能力 修改或查看USB驱动能力有三种方法:  1.工模菜单 通过"*#*#3646633#*#*"进入工程模式,通过如下菜单可以查看修改USB驱动能力: hard ...

  4. 如何修改USB驱动能力

    Android 驱动(15)---如何修改USB驱动能力 如何修改USB驱动能力 修改或查看USB驱动能力有三种方法:  1.工模菜单 通过"*#*#3646633#*#*"进入工 ...

  5. linux 查看usb驱动,linux查看硬件信息及驱动设备相关整理

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 联系我登录 首页 业界新闻 技术文章 资源分享 微语 linux查看硬件信息及驱动设备相关整理[转] 蓝猫 发布于:2014-5-30 17:48 分类: ...

  6. linux查看usb驱动版本号,linux查看硬件信息及驱动设备相关整理

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 联系我登录 首页 业界新闻 技术文章 资源分享 微语 linux查看硬件信息及驱动设备相关整理[转] 蓝猫 发布于:2014-5-30 17:48 分类: ...

  7. 一种提高单片机i/o口驱动能力的方法

    一.简述问题 当你用单片驱动发光二极管的时,你还感觉不到P0.P1口的区别.(10-20mA之间,其中P0驱动能力最强,但对于驱动直流电机依然很弱,其结果就是电机不转).那么有什么办法提高驱动能力吗? ...

  8. csr8675高通qcc5125修改蓝牙的usb声卡的ID方法

    csr8675和高通qcc5125修改蓝牙的usb声卡ID方法 分两种,csr和qcc,实际都是高通的了.简单区分来说,就是使用的烧录器不一样. spi烧录器:csr8670.8675-这些都适用 ① ...

  9. android万能USB驱动的安装方法.(针对开发人员 windows)

    文章表明原创的,转载请注明出处 http://blog.csdn.net/geliang0120/article/details/9618075 国内软件管得太宽了.先吐槽qq 360,等流氓软件, ...

最新文章

  1. vi php,linux编辑文件命令vi有什么作用
  2. 2015 百度之星 1003 棋盘占领 dfs
  3. php性能优化和细节优化
  4. java解析xml的几种方式
  5. HCharts随笔之简单入门
  6. java 和javafx_Java,JavaFX的流利设计风格文本字段和密码字段
  7. 微软五月份安全补丁发布
  8. Faster R-CNN原理
  9. python两组数的差异_Python中两个日期之间的差异
  10. Spring 2 和 JPA 简介
  11. mongodb基础操作
  12. jsp el表达式无法正常显示解决方法
  13. Android Studio查看Android源码
  14. OPPO小布助手算法系统的探索、实践与思考
  15. 矩阵微分常用公式整理
  16. 【Android】期末选择题和判断题
  17. Xilinx MicroBlaze软核驱动DDR4
  18. 对话框AlertDialog的使用
  19. sql server查询不显示结果_仅凭网上查询结果显示邮件由行政机关签收,能证明行政机关一定收到了当事人的申请吗?...
  20. (python+cv2)做一个简单的摄像头人脸识别

热门文章

  1. linux虚拟机能通显卡吗,英伟达 GeForce 游戏显卡正式支持虚拟机传递功能,可以完全调用...
  2. python字典数据类型笔记_python笔记2-数据类型:元组、字典常用操作
  3. 【LeetCode】剑指 Offer 66. 构建乘积数组
  4. 【重难点】【Java集合 04】ArrayDeque 的使用场景、ArrayBlockingQueue
  5. Mysql之七种连接查询
  6. java并发初探ConcurrentSkipListMap
  7. 如何解压POSIX tar archive文件
  8. Codeforces #364 DIV2
  9. 多线程笔试题(linux)
  10. Computer - 电脑硬件知识