About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / usb / chipidea.txt




Custom Search

Based on kernel version 3.16. Page generated on 2014-08-06 21:41 EST.

1	1. How to test OTG FSM(HNP and SRP)
2	-----------------------------------
3	To show how to demo OTG HNP and SRP functions via sys input files
4	with 2 Freescale i.MX6Q sabre SD boards.
5	
6	1.1 How to enable OTG FSM in menuconfig
7	---------------------------------------
8	Select CONFIG_USB_OTG_FSM, rebuild kernel Image and modules.
9	If you want to check some internal variables for otg fsm,
10	select CONFIG_USB_CHIPIDEA_DEBUG, there are 2 files which
11	can show otg fsm variables and some controller registers value:
12	cat /sys/kernel/debug/ci_hdrc.0/otg
13	cat /sys/kernel/debug/ci_hdrc.0/registers
14	
15	1.2 Test operations
16	-------------------
17	1) Power up 2 Freescale i.MX6Q sabre SD boards with gadget class driver loaded
18	   (e.g. g_mass_storage).
19	
20	2) Connect 2 boards with usb cable with one end is micro A plug, the other end
21	   is micro B plug.
22	
23	   The A-device(with micro A plug inserted) should enumrate B-device.
24	
25	3) Role switch
26	   On B-device:
27	   echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req
28	
29	   if HNP polling is not supported, also need:
30	   On A-device:
31	   echo 0 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_req
32	
33	   B-device should take host role and enumrate A-device.
34	
35	4) A-device switch back to host.
36	   On B-device:
37	   echo 0 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req
38	
39	   A-device should switch back to host and enumrate B-device.
40	
41	5) Remove B-device(unplug micro B plug) and insert again in 10 seconds,
42	   A-device should enumrate B-device again.
43	
44	6) Remove B-device(unplug micro B plug) and insert again after 10 seconds,
45	   A-device should NOT enumrate B-device.
46	
47	   if A-device wants to use bus:
48	   On A-device:
49	   echo 0 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_drop
50	   echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_req
51	
52	   if B-device wants to use bus:
53	   On B-device:
54	   echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req
55	
56	7) A-device power down the bus.
57	   On A-device:
58	   echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_drop
59	
60	   A-device should disconnect with B-device and power down the bus.
61	
62	8) B-device does data pulse for SRP.
63	   On B-device:
64	   echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req
65	
66	   A-device should resume usb bus and enumrate B-device.
67	
68	1.3 Reference document
69	----------------------
70	"On-The-Go and Embedded Host Supplement to the USB Revision 2.0 Specification
71	July 27, 2012 Revision 2.0 version 1.1a"
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.