On Sun, Mar 30, 2014 at 08:20:13PM +0800, Li Jun wrote: > From: Li Jun <b47624@xxxxxxxxxxxxx> > > 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: Li Jun <b47624@xxxxxxxxxxxxx> > --- > Documentation/usb/chipidea.txt | 70 ++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 70 insertions(+) > > diff --git a/Documentation/usb/chipidea.txt b/Documentation/usb/chipidea.txt > new file mode 100644 > index 0000000..54fb437 > --- /dev/null > +++ b/Documentation/usb/chipidea.txt > @@ -0,0 +1,70 @@ > +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/register %s/register/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 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" > -- > 1.7.9.5 > > -- Best Regards, Peter Chen -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html