Platform : Qualcomm MSM8937

PMIC : Qualcomm PMI8940

OTG base on USB2.0,增加

  1. device 可當 host 也可當 peripheral。
  2. 增加 HNP 用來交換 host peripheral 的 protocol.
  3. 增加 SRP, 當 A-device 關掉 Vbus,B-device 用來向 A-device 請求 打開 Vbus.

OTG spec 定義 device 有兩種 roles,

  1. OTG A-device,id pin 接地, 是 power supplier,供 5V。
  2. OTG B-device,id pin floating,是 power consumer,消耗 5V。

    在初始化時,OTG A-device 會被預設為 host mode,OTG B-device 會被預設為 peripheral mode,

    之後可以在不重新插拔 cable 的狀況下,使用 HNP protocol 來調換 host 及 peripheral,但供電的角色 A-device B-device 是不變的,

    範例:

    印表機與數位相機,

    一條cable,id pin 接地的這端連到 printer,

    printer 為 OTG A-device,並初始化為 host mode,

    camera 為 OTG B-device,並初始化為 peripheral mode,

    但是 printer 不了解 camera 的 print job,所以發一個 HNP protocol,和 camera 交換 host 及 peripheral mode,

    交換後,printer 一樣是 OTG A-device power supplier,但為 peripheral mode,

    而 camera 一樣是 OTG B-device power consumer,但為 host mode,

    camera 就可以與 printer 溝通並印照片。

reference

https://en.wikipedia.org/wiki/USB_On-The-Go

battery charging spec (BC1.1 BC1.2) 有定義 id pin,

id pin 主要用來決定是否要供電給 otg device,及 启动usb主控制器,切換 host mode,

當 id pin 為 low 時,PMIC 需供電給 otg device,啟動 usb 主控制器,切換 host mode (手機插 otg device,手機切成 host mode),

id pin 並不影響 usb communication,

D+ D- 負責 protocol 溝通。

Micro-A plug (start Host mode)

Micro-B plug (start Peripheral mode)

Hardware

otg device id pin 可以接到 MSM8937的 USB_HS_ID ( usb phy ) pin,

也可以接到 PMI8940 的 USB_ID pin,

軟體需要做相對應的修改。

Software

kernel 需要做對應的修改

kernel/msm-3.18/Documentation/devicetree/bindings/usb/msm-hsusb.txt

 32 - qcom,hsusb-otg-otg-control: OTG control (VBUS and ID notifications)
33 can be one of
34 1 - PHY control
35 2 - PMIC control
36 3 - User control (via debugfs)

kernel/msm-3.18/arch/arm/boot/dts/qcom/msm8937.dtsi

1093         usb_otg: usb@78db000 {
1094 compatible = "qcom,hsusb-otg";
...
...
1112 qcom,hsusb-otg-otg-control = <2>; /* PMIC */

Reference

Qualcomm

MTK

otg device id pin 探討的更多相关文章

  1. USB OTG原理+ ID 检测原理

    OTG 检测的原理是: USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG).USB OTG技术可实现没有主机时 ...

  2. [心得] SQL Server Partition(表分區) 資料分佈探討

    最近在群裡有個朋友問了個問題是這樣的 用户表有一千多万行,主键是用户ID,我做了分区.但经常查询时,其它的表根据用户ID来关联,这样跨区查询,reads非常高.有什么好的处理办法?不分区的话,索引维护 ...

  3. Device ID

    参考文章 一.CFUUID (Deprecated) 二.UDID (Deprecated) 三.NSUUID (ios6.0 and later) NSString *uuid = [[NSUUID ...

  4. Android Unique Device ID

    There are several occasions when the unique identifier of a device is required. For instance you nee ...

  5. Alternative to iPhone device ID (UDID)

    Alternative to iPhone device ID (UDID) [duplicate] up vote10down votefavorite 3 Possible Duplicate:U ...

  6. android device ID获取

    Android  Device ID是Android用户在Google认证过手机的设备唯一标识,当然国内很多Android手机没有经过Google认证,所以一般没有Google官方Android de ...

  7. STM32唯一ID(Unique Device ID)的读取方法

    每一个STM32微控制器都自带一个96位的唯一ID,也就是Unique Device ID或称为UID,这个唯一ID在任何情况下都是唯一的且不允许修改.    在开发过程中,可能需要用到这个UID,比 ...

  8. Big Data應用:以"玩家意見"之數據分析來探討何謂"健康型線上遊戲"(上)

    首先,所有資料都可以從網路上找到,只是我做了一些分析與整理而已.純粹分享心得~~ 最近再做研究的時候我跟我的同事K先生在某次偶然的討論中發現了一件有趣的事情. [疑~~~~~~~新楓之谷的玩家人氣指數 ...

  9. 什么是Device ID?

    Android ID用于唯一识别一部设备的一次刷机行为,虽然不能完全确定该设备的唯一性(真的唯一性是用IMEI号的),但是可以很大程度上过滤重复设备.这是移动互联网广告行业的基础,尤其是CPI广告,设 ...

随机推荐

  1. 第30天:DOM对象操作

    JS包括三部分:ECMAscript.DOM(文档对象).BOM(浏览器对象) 一.DOM(文档对象)DOM树节点(元素.属性.标签.标记等都是节点) 二.访问节点 documment.getElem ...

  2. bzoj3998-弦论

    给定一个长度为\(n(n\le 5\times 10^5)\)的字符串,求它的第\(k\)小字串.有两种模式: \(Type=0\),不同位置的相同字串只算一个 \(Type=1\),不同位置相同字串 ...

  3. 【bzoj4580】[Usaco2016 Open]248 区间dp

    题目描述 Bessie likes downloading games to play on her cell phone, even though she does find the small t ...

  4. echart模块化单文件引入

    echart模块化单文件引入百度上面是推荐这样使用.今天看了一下,做了个Demo. 文件结构如下:

  5. [NOI2006]网络收费

    题面在这里 description 一棵\(2^n\)个叶节点的满二叉树,每个节点代表一个用户,有一个预先的收费方案\(A\)或\(B\); 对于任两个用户 \(i,j(1≤i<j≤2^n)i, ...

  6. BZOJ1030:[JSOI2007]文本生成器——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1030 Description JSOI交给队员ZYX一个任务,编制一个称之为“文本生成器”的电脑软件 ...

  7. UOJ228:基础数据结构练习题——题解

    http://uoj.ac/problem/228 参考:https://www.cnblogs.com/ljh2000-jump/p/6357583.html 考虑当整个区间的最大值开方==最小值开 ...

  8. ContestHunter暑假欢乐赛 SRM 06

    T1二分check...为什么这么显然的我没看出来TAT,还在想倒着加入并查集check什么的,题写太多思维定势啦QAQ T2是NOIP题的弱化版...当时没看出来,写了个DP.可以看出这一位比上一位 ...

  9. Tomcat启动web项目报Bad version number in .class file (unable to load class ...)错误的解决方法

    一.发现问题:启动 tomcat 控制台报该错误.   二.原因:tomcat 的 jdk 版本和编译.class的 jdk 版本不一致.   三.解决办法:   步骤一: 查看 MyEclipse ...

  10. 复习java数据库操作的总结

    以前学习java数据库操作,学得那叫糊里糊涂,各种JDBC常用的类和接口根本是傻傻分不清啥是干嘛的.只是套着用用吧. 不过这次好歹清楚些了,呜呜,学习有阶段性,多次重复才有好效果,多么痛的领悟. 工程 ...