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

  • 相关阅读:
    HDU 2643 Rank:第二类Stirling数
    HDU 4372 Count the Buildings:第一类Stirling数
    HDU 3625 Examining the Rooms:第一类Stirling数
    HDU 3682 To Be an Dream Architect:查重【三维坐标系中点在实数上的映射】
    POJ 3311 Hie with the Pie:TSP(旅行商)【节点可多次经过】
    bzoj 1050 旅行comf
    luogu 3958 奶酪
    luogu 3952 时间复杂度
    luogu 3951 小凯的疑惑
    bzoj 1016 最小生成树计数
  • 原文地址:https://www.cnblogs.com/youchihwang/p/7327209.html
Copyright © 2011-2022 走看看