zoukankan      html  css  js  c++  java
  • otg device id pin 探討

    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

  • 相关阅读:
    P4342 [IOI1998]Polygon
    P1194 买礼物
    P1363 幻想迷宫
    Installing Wine 1.5: configure: error: Cannot build a 32-bit program, you need to install 32-bit development libraries(转载)
    Linux系统调用之open(), close() (转载)
    undefined reference to 'pthread_create'问题解决(转载)
    linux中的C里面使用pthread_mutex_t锁(转载)
    #if、#ifdef、#if defined之间的区别(转载)
    linux下解压tgz文件(转载)
    linux修改用户主目录的方法 (转载)
  • 原文地址:https://www.cnblogs.com/youchihwang/p/7327209.html
Copyright © 2011-2022 走看看