otg device id pin 探討
Platform : Qualcomm MSM8937
PMIC : Qualcomm PMI8940
OTG base on USB2.0,增加
- device 可當 host 也可當 peripheral。
- 增加 HNP 用來交換 host peripheral 的 protocol.
- 增加 SRP, 當 A-device 關掉 Vbus,B-device 用來向 A-device 請求 打開 Vbus.
OTG spec 定義 device 有兩種 roles,
- OTG A-device,id pin 接地, 是 power supplier,供 5V。
- 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 探討的更多相关文章
- USB OTG原理+ ID 检测原理
OTG 检测的原理是: USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG).USB OTG技术可实现没有主机时 ...
- [心得] SQL Server Partition(表分區) 資料分佈探討
最近在群裡有個朋友問了個問題是這樣的 用户表有一千多万行,主键是用户ID,我做了分区.但经常查询时,其它的表根据用户ID来关联,这样跨区查询,reads非常高.有什么好的处理办法?不分区的话,索引维护 ...
- Device ID
参考文章 一.CFUUID (Deprecated) 二.UDID (Deprecated) 三.NSUUID (ios6.0 and later) NSString *uuid = [[NSUUID ...
- Android Unique Device ID
There are several occasions when the unique identifier of a device is required. For instance you nee ...
- Alternative to iPhone device ID (UDID)
Alternative to iPhone device ID (UDID) [duplicate] up vote10down votefavorite 3 Possible Duplicate:U ...
- android device ID获取
Android Device ID是Android用户在Google认证过手机的设备唯一标识,当然国内很多Android手机没有经过Google认证,所以一般没有Google官方Android de ...
- STM32唯一ID(Unique Device ID)的读取方法
每一个STM32微控制器都自带一个96位的唯一ID,也就是Unique Device ID或称为UID,这个唯一ID在任何情况下都是唯一的且不允许修改. 在开发过程中,可能需要用到这个UID,比 ...
- Big Data應用:以"玩家意見"之數據分析來探討何謂"健康型線上遊戲"(上)
首先,所有資料都可以從網路上找到,只是我做了一些分析與整理而已.純粹分享心得~~ 最近再做研究的時候我跟我的同事K先生在某次偶然的討論中發現了一件有趣的事情. [疑~~~~~~~新楓之谷的玩家人氣指數 ...
- 什么是Device ID?
Android ID用于唯一识别一部设备的一次刷机行为,虽然不能完全确定该设备的唯一性(真的唯一性是用IMEI号的),但是可以很大程度上过滤重复设备.这是移动互联网广告行业的基础,尤其是CPI广告,设 ...
随机推荐
- 【bzoj3427】Poi2013 Bytecomputer dp
题目描述 A sequence of N integers I1,I2…In from the set {-1,0,1} is given. The bytecomputer is a device ...
- NAT穿透(UDP打洞)
1.NAT(Network Address Translator)介绍 NAT有两大类,基本NAT和NAPT. 1.1.基本NAT 静态NAT:一个公网IP对应一个内部IP,一对一转换 动态NAT:N ...
- pascal语言中学版整理
P1:主菜单File中的Command shell选项,可以暂时退出Pascal,进入DOS提示符状态,但Pascal仍然驻留在内存中.输入命令exit即可返回Pascal. P3:Edit菜单中Un ...
- BZOJ4589:Hard Nim——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4589 Claris和NanoApe在玩石子游戏,他们有n堆石子,规则如下: 1. Claris和N ...
- BZOJ2178:圆的面积并——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=2178 给出N个圆,求其面积并. simpson,将圆劈成两半,假设上面的叫上壳,下面的叫下壳,对这 ...
- CF97B:Superset——题解
http://codeforces.com/problemset/problem/97/B 题目大意:给n个点,添加一些点,使得任意两个点: 1.在同一条线上 2.以它们为顶点构成的矩形上有其他点. ...
- UVA.725 Division (暴力)
UVA.725 Division (暴力) 题意分析 找出abcdefghij分别是0-9(不得有重复),使得式子abcde/fghij = n. 如果分别枚举每个数字,就会有10^10,肯定爆炸,由 ...
- bzoj2326:[HNOI2011]数学作业(分段矩阵乘法)
题目大意:输入n(n<=10^18)和m,将1~n的整数连起来模m输出,比如n=13则输出12345678910111213模m的数. 设f[i]为1~i整数连起来模m的数,i的位数为k,则有f ...
- Linux之socket套接字编程20160704
介绍套接字之前,我们先看一下传输层的协议TCP与UDP: TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UD ...
- 一种高效的寻路算法 - B*寻路算法
在此把这个算法称作B* 寻路算法(Branch Star 分支寻路算法,且与A*对应),本算法适用于游戏中怪物的自动寻路,其效率远远超过A*算法,经过测试,效率是普通A*算法的几十上百倍. 通过引入该 ...