dmaengine: idxd: add configuration for concurrent batch descriptor processing
[linux-block.git] / Documentation / usb / chipidea.rst
CommitLineData
d80b5005
MCC
1==============================================
2ChipIdea Highspeed Dual Role Controller Driver
3==============================================
4
9159e049
LJ
51. How to test OTG FSM(HNP and SRP)
6-----------------------------------
d80b5005 7
9159e049
LJ
8To show how to demo OTG HNP and SRP functions via sys input files
9with 2 Freescale i.MX6Q sabre SD boards.
10
764763f0 111.1 How to enable OTG FSM
d80b5005
MCC
12-------------------------
13
764763f0 141.1.1 Select CONFIG_USB_OTG_FSM in menuconfig, rebuild kernel
d80b5005
MCC
15^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16
764763f0
PC
17Image and modules. If you want to check some internal
18variables for otg fsm, mount debugfs, there are 2 files
d80b5005
MCC
19which can show otg fsm variables and some controller registers value::
20
21 cat /sys/kernel/debug/ci_hdrc.0/otg
22 cat /sys/kernel/debug/ci_hdrc.0/registers
23
764763f0 241.1.2 Add below entries in your dts file for your controller node
d80b5005
MCC
25^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
26
27::
28
764763f0
PC
29 otg-rev = <0x0200>;
30 adp-disable;
9159e049
LJ
31
321.2 Test operations
33-------------------
d80b5005 34
9159e049
LJ
351) Power up 2 Freescale i.MX6Q sabre SD boards with gadget class driver loaded
36 (e.g. g_mass_storage).
37
382) Connect 2 boards with usb cable with one end is micro A plug, the other end
39 is micro B plug.
40
aa73f28e 41 The A-device(with micro A plug inserted) should enumerate B-device.
9159e049
LJ
42
433) Role switch
d80b5005
MCC
44
45 On B-device::
46
47 echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req
9159e049 48
aa73f28e 49 B-device should take host role and enumerate A-device.
9159e049
LJ
50
514) A-device switch back to host.
d80b5005
MCC
52
53 On B-device::
54
55 echo 0 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req
9159e049 56
dfbae330
LJ
57 or, by introducing HNP polling, B-Host can know when A-peripheral wish
58 to be host role, so this role switch also can be trigged in A-peripheral
d80b5005
MCC
59 side by answering the polling from B-Host, this can be done on A-device::
60
61 echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_req
dfbae330 62
aa73f28e 63 A-device should switch back to host and enumerate B-device.
9159e049
LJ
64
655) Remove B-device(unplug micro B plug) and insert again in 10 seconds,
aa73f28e 66 A-device should enumerate B-device again.
9159e049
LJ
67
686) Remove B-device(unplug micro B plug) and insert again after 10 seconds,
aa73f28e 69 A-device should NOT enumerate B-device.
9159e049
LJ
70
71 if A-device wants to use bus:
d80b5005
MCC
72
73 On A-device::
74
75 echo 0 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_drop
76 echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_req
9159e049
LJ
77
78 if B-device wants to use bus:
d80b5005
MCC
79
80 On B-device::
81
82 echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req
9159e049
LJ
83
847) A-device power down the bus.
d80b5005
MCC
85
86 On A-device::
87
88 echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_drop
9159e049
LJ
89
90 A-device should disconnect with B-device and power down the bus.
91
928) B-device does data pulse for SRP.
d80b5005
MCC
93
94 On B-device::
95
96 echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req
9159e049 97
aa73f28e 98 A-device should resume usb bus and enumerate B-device.
9159e049
LJ
99
1001.3 Reference document
101----------------------
102"On-The-Go and Embedded Host Supplement to the USB Revision 2.0 Specification
103July 27, 2012 Revision 2.0 version 1.1a"
01e3ad86
PC
104
1052. How to enable USB as system wakeup source
d80b5005 106--------------------------------------------
01e3ad86
PC
107Below is the example for how to enable USB as system wakeup source
108at imx6 platform.
109
d80b5005
MCC
1102.1 Enable core's wakeup::
111
112 echo enabled > /sys/bus/platform/devices/ci_hdrc.0/power/wakeup
113
1142.2 Enable glue layer's wakeup::
115
116 echo enabled > /sys/bus/platform/devices/2184000.usb/power/wakeup
117
1182.3 Enable PHY's wakeup (optional)::
119
120 echo enabled > /sys/bus/platform/devices/20c9000.usbphy/power/wakeup
121
1222.4 Enable roothub's wakeup::
123
124 echo enabled > /sys/bus/usb/devices/usb1/power/wakeup
125
1262.5 Enable related device's wakeup::
127
128 echo enabled > /sys/bus/usb/devices/1-1/power/wakeup
01e3ad86
PC
129
130If the system has only one usb port, and you want usb wakeup at this port, you
d80b5005 131can use below script to enable usb wakeup::
01e3ad86 132
d80b5005 133 for i in $(find /sys -name wakeup | grep usb);do echo enabled > $i;done;