Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v4.1 92 lines 3.2 kB view raw
11. How to test OTG FSM(HNP and SRP) 2----------------------------------- 3To show how to demo OTG HNP and SRP functions via sys input files 4with 2 Freescale i.MX6Q sabre SD boards. 5 61.1 How to enable OTG FSM in menuconfig 7--------------------------------------- 8Select CONFIG_USB_OTG_FSM, rebuild kernel Image and modules. 9If you want to check some internal variables for otg fsm, 10select CONFIG_USB_CHIPIDEA_DEBUG, there are 2 files which 11can show otg fsm variables and some controller registers value: 12cat /sys/kernel/debug/ci_hdrc.0/otg 13cat /sys/kernel/debug/ci_hdrc.0/registers 14 151.2 Test operations 16------------------- 171) Power up 2 Freescale i.MX6Q sabre SD boards with gadget class driver loaded 18 (e.g. g_mass_storage). 19 202) 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 253) 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 354) 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 415) Remove B-device(unplug micro B plug) and insert again in 10 seconds, 42 A-device should enumrate B-device again. 43 446) 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 567) 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 628) 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 681.3 Reference document 69---------------------- 70"On-The-Go and Embedded Host Supplement to the USB Revision 2.0 Specification 71July 27, 2012 Revision 2.0 version 1.1a" 72 732. How to enable USB as system wakeup source 74----------------------------------- 75Below is the example for how to enable USB as system wakeup source 76at imx6 platform. 77 782.1 Enable core's wakeup 79echo enabled > /sys/bus/platform/devices/ci_hdrc.0/power/wakeup 802.2 Enable glue layer's wakeup 81echo enabled > /sys/bus/platform/devices/2184000.usb/power/wakeup 822.3 Enable PHY's wakeup (optional) 83echo enabled > /sys/bus/platform/devices/20c9000.usbphy/power/wakeup 842.4 Enable roothub's wakeup 85echo enabled > /sys/bus/usb/devices/usb1/power/wakeup 862.5 Enable related device's wakeup 87echo enabled > /sys/bus/usb/devices/1-1/power/wakeup 88 89If the system has only one usb port, and you want usb wakeup at this port, you 90can use below script to enable usb wakeup. 91for i in $(find /sys -name wakeup | grep usb);do echo enabled > $i;done; 92