Skip to content

Commit

Permalink
Documentation: usb: add chipidea.txt for how to demo usb OTG HNP and SRP
Browse files Browse the repository at this point in the history
This patch adds a file chipidea.txt for how to demo chipidea usb OTG HNP and SRP
functions via sysfs input files, any other possible information should be
documented for chipidea usb driver in future can be added into this file.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Li Jun <b47624@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Li Jun authored and Greg Kroah-Hartman committed Apr 24, 2014
1 parent f99858e commit 9159e04
Showing 1 changed file with 71 additions and 0 deletions.
71 changes: 71 additions & 0 deletions Documentation/usb/chipidea.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
1. How to test OTG FSM(HNP and SRP)
-----------------------------------
To show how to demo OTG HNP and SRP functions via sys input files
with 2 Freescale i.MX6Q sabre SD boards.

1.1 How to enable OTG FSM in menuconfig
---------------------------------------
Select CONFIG_USB_OTG_FSM.
If you want to check some internal variables for otg fsm,
select CONFIG_USB_CHIPIDEA_DEBUG, there are 2 files which
can show otg fsm variables and some controller registers value:
cat /sys/kernel/debug/ci_hdrc.0/otg
cat /sys/kernel/debug/ci_hdrc.0/registers

1.2 Test operations
-------------------
1) Power up 2 Freescale i.MX6Q sabre SD boards with gadget class driver loaded
(e.g. g_mass_storage).

2) Connect 2 boards with usb cable with one end is micro A plug, the other end
is micro B plug.

The A-device(with micro A plug inserted) should enumrate B-device.

3) Role switch
On B-device:
echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req

if HNP polling is not supported, also need:
On A-device:
echo 0 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_req

B-device should take host role and enumrate A-device.

4) A-device switch back to host.
On B-device:
echo 0 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req

A-device should switch back to host and enumrate B-device.

5) Remove B-device(unplug micro B plug) and insert again in 10 seconds,
A-device should enumrate B-device again.

6) Remove B-device(unplug micro B plug) and insert again after 10 seconds,
A-device should NOT enumrate B-device.

if A-device wants to use bus:
On A-device:
echo 0 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_drop
echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_req

if B-device wants to use bus:
On B-device:
echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req

7) A-device power down the bus.
On A-device:
echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_drop

A-device should disconnect with B-device and power down the bus.

8) B-device does data pulse for SRP.
On B-device:
echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req

A-device should resume usb bus and enumrate B-device.

1.3 Reference document
----------------------
"On-The-Go and Embedded Host Supplement to the USB Revision 2.0 Specification
July 27, 2012 Revision 2.0 version 1.1a"

0 comments on commit 9159e04

Please sign in to comment.