€•ŽKŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ /translations/zh_CN/usb/chipidea”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ /translations/zh_TW/usb/chipidea”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ /translations/it_IT/usb/chipidea”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ /translations/ja_JP/usb/chipidea”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ /translations/ko_KR/usb/chipidea”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ /translations/sp_SP/usb/chipidea”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ.ChipIdea Highspeed Dual Role Controller Driver”h]”hŒ.ChipIdea Highspeed Dual Role Controller Driver”…””}”(hh¨hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hh£hžhhŸŒ:/var/lib/git/docbuild/linux/Documentation/usb/chipidea.rst”h Kubh¢)”}”(hhh]”(h§)”}”(hŒ#1. How to test OTG FSM(HNP and SRP)”h]”hŒ#1. How to test OTG FSM(HNP and SRP)”…””}”(hhºhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hh·hžhhŸh¶h KubhŒ paragraph”“”)”}”(hŒjTo show how to demo OTG HNP and SRP functions via sys input files with 2 Freescale i.MX6Q sabre SD boards.”h]”hŒjTo show how to demo OTG HNP and SRP functions via sys input files with 2 Freescale i.MX6Q sabre SD boards.”…””}”(hhÊhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h Khh·hžhubeh}”(h]”Œhow-to-test-otg-fsm-hnp-and-srp”ah ]”h"]”Œ#1. how to test otg fsm(hnp and srp)”ah$]”h&]”uh1h¡hh£hžhhŸh¶h Kubh¢)”}”(hhh]”(h§)”}”(hŒ1.1 How to enable OTG FSM”h]”hŒ1.1 How to enable OTG FSM”…””}”(hhãhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hhàhžhhŸh¶h K ubh¢)”}”(hhh]”(h§)”}”(hŒ=1.1.1 Select CONFIG_USB_OTG_FSM in menuconfig, rebuild kernel”h]”hŒ=1.1.1 Select CONFIG_USB_OTG_FSM in menuconfig, rebuild kernel”…””}”(hhôhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hhñhžhhŸh¶h KubhÉ)”}”(hŒ´Image and modules. If you want to check some internal variables for otg fsm, mount debugfs, there are 2 files which can show otg fsm variables and some controller registers value::”h]”hŒ³Image and modules. If you want to check some internal variables for otg fsm, mount debugfs, there are 2 files which can show otg fsm variables and some controller registers value:”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h KhhñhžhubhŒ literal_block”“”)”}”(hŒMcat /sys/kernel/debug/ci_hdrc.0/otg cat /sys/kernel/debug/ci_hdrc.0/registers”h]”hŒMcat /sys/kernel/debug/ci_hdrc.0/otg cat /sys/kernel/debug/ci_hdrc.0/registers”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jhŸh¶h Khhñhžhubeh}”(h]”Œ6select-config-usb-otg-fsm-in-menuconfig-rebuild-kernel”ah ]”h"]”Œ=1.1.1 select config_usb_otg_fsm in menuconfig, rebuild kernel”ah$]”h&]”uh1h¡hhàhžhhŸh¶h Kubh¢)”}”(hhh]”(h§)”}”(hŒA1.1.2 Add below entries in your dts file for your controller node”h]”hŒA1.1.2 Add below entries in your dts file for your controller node”…””}”(hj-hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hj*hžhhŸh¶h Kubj)”}”(hŒ otg-rev = <0x0200>; adp-disable;”h]”hŒ otg-rev = <0x0200>; adp-disable;”…””}”hj;sbah}”(h]”h ]”h"]”h$]”h&]”j j!uh1jhŸh¶h Khj*hžhubeh}”(h]”Œ;add-below-entries-in-your-dts-file-for-your-controller-node”ah ]”h"]”ŒA1.1.2 add below entries in your dts file for your controller node”ah$]”h&]”uh1h¡hhàhžhhŸh¶h Kubeh}”(h]”Œhow-to-enable-otg-fsm”ah ]”h"]”Œ1.1 how to enable otg fsm”ah$]”h&]”uh1h¡hh£hžhhŸh¶h K ubh¢)”}”(hhh]”(h§)”}”(hŒ1.2 Test operations”h]”hŒ1.2 Test operations”…””}”(hj\hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjYhžhhŸh¶h K!ubhŒenumerated_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒcPower up 2 Freescale i.MX6Q sabre SD boards with gadget class driver loaded (e.g. g_mass_storage). ”h]”hÉ)”}”(hŒbPower up 2 Freescale i.MX6Q sabre SD boards with gadget class driver loaded (e.g. g_mass_storage).”h]”hŒbPower up 2 Freescale i.MX6Q sabre SD boards with gadget class driver loaded (e.g. g_mass_storage).”…””}”(hjuhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K#hjqubah}”(h]”h ]”h"]”h$]”h&]”uh1johjlhžhhŸh¶h Nubjp)”}”(hŒŸConnect 2 boards with usb cable: one end is micro A plug, the other end is micro B plug. The A-device (with micro A plug inserted) should enumerate B-device. ”h]”(hÉ)”}”(hŒXConnect 2 boards with usb cable: one end is micro A plug, the other end is micro B plug.”h]”hŒXConnect 2 boards with usb cable: one end is micro A plug, the other end is micro B plug.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K&hj‰ubhÉ)”}”(hŒDThe A-device (with micro A plug inserted) should enumerate B-device.”h]”hŒDThe A-device (with micro A plug inserted) should enumerate B-device.”…””}”(hj›hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K)hj‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1johjlhžhhŸh¶h Nubjp)”}”(hŒ—Role switch On B-device:: echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req B-device should take host role and enumerate A-device. ”h]”(hÉ)”}”(hŒ Role switch”h]”hŒ Role switch”…””}”(hj³hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K+hj¯ubhÉ)”}”(hŒ On B-device::”h]”hŒ On B-device:”…””}”(hjÁhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K-hj¯ubj)”}”(hŒ=echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req”h]”hŒ=echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req”…””}”hjÏsbah}”(h]”h ]”h"]”h$]”h&]”j j!uh1jhŸh¶h K/hj¯ubhÉ)”}”(hŒ6B-device should take host role and enumerate A-device.”h]”hŒ6B-device should take host role and enumerate A-device.”…””}”(hjÝhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K1hj¯ubeh}”(h]”h ]”h"]”h$]”h&]”uh1johjlhžhhŸh¶h Nubjp)”}”(hXØA-device switch back to host. On B-device:: echo 0 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req or, by introducing HNP polling, B-Host can know when A-peripheral wishes to be in the host role, so this role switch also can be triggered in A-peripheral side by answering the polling from B-Host. This can be done on A-device:: echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_req A-device should switch back to host and enumerate B-device. ”h]”(hÉ)”}”(hŒA-device switch back to host.”h]”hŒA-device switch back to host.”…””}”(hjõhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K3hjñubhÉ)”}”(hŒ On B-device::”h]”hŒ On B-device:”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K5hjñubj)”}”(hŒ=echo 0 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req”h]”hŒ=echo 0 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”j j!uh1jhŸh¶h K7hjñubhÉ)”}”(hŒäor, by introducing HNP polling, B-Host can know when A-peripheral wishes to be in the host role, so this role switch also can be triggered in A-peripheral side by answering the polling from B-Host. This can be done on A-device::”h]”hŒãor, by introducing HNP polling, B-Host can know when A-peripheral wishes to be in the host role, so this role switch also can be triggered in A-peripheral side by answering the polling from B-Host. This can be done on A-device:”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K9hjñubj)”}”(hŒ=echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_req”h]”hŒ=echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_req”…””}”hj-sbah}”(h]”h ]”h"]”h$]”h&]”j j!uh1jhŸh¶h K>hjñubhÉ)”}”(hŒ;A-device should switch back to host and enumerate B-device.”h]”hŒ;A-device should switch back to host and enumerate B-device.”…””}”(hj;hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K@hjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1johjlhžhhŸh¶h Nubjp)”}”(hŒpRemove B-device (unplug micro B plug) and insert again in 10 seconds; A-device should enumerate B-device again. ”h]”hÉ)”}”(hŒoRemove B-device (unplug micro B plug) and insert again in 10 seconds; A-device should enumerate B-device again.”h]”hŒoRemove B-device (unplug micro B plug) and insert again in 10 seconds; A-device should enumerate B-device again.”…””}”(hjShžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h KBhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1johjlhžhhŸh¶h Nubjp)”}”(hX™Remove B-device (unplug micro B plug) and insert again after 10 seconds; A-device should NOT enumerate 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 ”h]”(hÉ)”}”(hŒpRemove B-device (unplug micro B plug) and insert again after 10 seconds; A-device should NOT enumerate B-device.”h]”hŒpRemove B-device (unplug micro B plug) and insert again after 10 seconds; A-device should NOT enumerate B-device.”…””}”(hjkhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h KEhjgubhÉ)”}”(hŒif A-device wants to use bus:”h]”hŒif A-device wants to use bus:”…””}”(hjyhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h KHhjgubhÉ)”}”(hŒ On A-device::”h]”hŒ On A-device:”…””}”(hj‡hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h KJhjgubj)”}”(hŒ|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”h]”hŒ|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”…””}”hj•sbah}”(h]”h ]”h"]”h$]”h&]”j j!uh1jhŸh¶h KLhjgubhÉ)”}”(hŒif B-device wants to use bus:”h]”hŒif B-device wants to use bus:”…””}”(hj£hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h KOhjgubhÉ)”}”(hŒ On B-device::”h]”hŒ On B-device:”…””}”(hj±hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h KQhjgubj)”}”(hŒ=echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req”h]”hŒ=echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req”…””}”hj¿sbah}”(h]”h ]”h"]”h$]”h&]”j j!uh1jhŸh¶h KShjgubeh}”(h]”h ]”h"]”h$]”h&]”uh1johjlhžhhŸh¶h Nubjp)”}”(hŒ³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. ”h]”(hÉ)”}”(hŒA-device power down the bus.”h]”hŒA-device power down the bus.”…””}”(hj×hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h KUhjÓubhÉ)”}”(hŒ On A-device::”h]”hŒ On A-device:”…””}”(hjåhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h KWhjÓubj)”}”(hŒ>echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_drop”h]”hŒ>echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_drop”…””}”hjósbah}”(h]”h ]”h"]”h$]”h&]”j j!uh1jhŸh¶h KYhjÓubhÉ)”}”(hŒ@A-device should disconnect with B-device and power down the bus.”h]”hŒ@A-device should disconnect with B-device and power down the bus.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K[hjÓubeh}”(h]”h ]”h"]”h$]”h&]”uh1johjlhžhhŸh¶h Nubjp)”}”(hŒ­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 enumerate B-device. ”h]”(hÉ)”}”(hŒ!B-device does data pulse for SRP.”h]”hŒ!B-device does data pulse for SRP.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K]hjubhÉ)”}”(hŒ On B-device::”h]”hŒ On B-device:”…””}”(hj'hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K_hjubj)”}”(hŒ=echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req”h]”hŒ=echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req”…””}”hj5sbah}”(h]”h ]”h"]”h$]”h&]”j j!uh1jhŸh¶h KahjubhÉ)”}”(hŒ6A-device should resume usb bus and enumerate B-device.”h]”hŒ6A-device should resume usb bus and enumerate B-device.”…””}”(hjChžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h Kchjubeh}”(h]”h ]”h"]”h$]”h&]”uh1johjlhžhhŸh¶h Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ)”uh1jjhjYhžhhŸh¶h K#ubeh}”(h]”Œtest-operations”ah ]”h"]”Œ1.2 test operations”ah$]”h&]”uh1h¡hh£hžhhŸh¶h K!ubh¢)”}”(hhh]”(h§)”}”(hŒ1.3 Reference document”h]”hŒ1.3 Reference document”…””}”(hjmhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjjhžhhŸh¶h KfubhÉ)”}”(hŒv"On-The-Go and Embedded Host Supplement to the USB Revision 2.0 Specification July 27, 2012 Revision 2.0 version 1.1a"”h]”hŒz“On-The-Go and Embedded Host Supplement to the USB Revision 2.0 Specification July 27, 2012 Revision 2.0 version 1.1a—…””}”(hj{hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h Kghjjhžhubeh}”(h]”Œreference-document”ah ]”h"]”Œ1.3 reference document”ah$]”h&]”uh1h¡hh£hžhhŸh¶h Kfubh¢)”}”(hhh]”(h§)”}”(hŒ,2. How to enable USB as system wakeup source”h]”hŒ,2. How to enable USB as system wakeup source”…””}”(hj”hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hj‘hžhhŸh¶h KkubhÉ)”}”(hŒWBelow is the example for how to enable USB as system wakeup source on an imx6 platform.”h]”hŒWBelow is the example for how to enable USB as system wakeup source on an imx6 platform.”…””}”(hj¢hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h Klhj‘hžhubhÉ)”}”(hŒ2.1 Enable core's wakeup::”h]”hŒ2.1 Enable core’s wakeup:”…””}”(hj°hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h Kohj‘hžhubj)”}”(hŒ?echo enabled > /sys/bus/platform/devices/ci_hdrc.0/power/wakeup”h]”hŒ?echo enabled > /sys/bus/platform/devices/ci_hdrc.0/power/wakeup”…””}”hj¾sbah}”(h]”h ]”h"]”h$]”h&]”j j!uh1jhŸh¶h Kqhj‘hžhubhÉ)”}”(hŒ 2.2 Enable glue layer's wakeup::”h]”hŒ!2.2 Enable glue layer’s wakeup:”…””}”(hjÌhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h Kshj‘hžhubj)”}”(hŒAecho enabled > /sys/bus/platform/devices/2184000.usb/power/wakeup”h]”hŒAecho enabled > /sys/bus/platform/devices/2184000.usb/power/wakeup”…””}”hjÚsbah}”(h]”h ]”h"]”h$]”h&]”j j!uh1jhŸh¶h Kuhj‘hžhubhÉ)”}”(hŒ$2.3 Enable PHY's wakeup (optional)::”h]”hŒ%2.3 Enable PHY’s wakeup (optional):”…””}”(hjèhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h Kwhj‘hžhubj)”}”(hŒDecho enabled > /sys/bus/platform/devices/20c9000.usbphy/power/wakeup”h]”hŒDecho enabled > /sys/bus/platform/devices/20c9000.usbphy/power/wakeup”…””}”hjösbah}”(h]”h ]”h"]”h$]”h&]”j j!uh1jhŸh¶h Kyhj‘hžhubhÉ)”}”(hŒ2.4 Enable roothub's wakeup::”h]”hŒ2.4 Enable roothub’s wakeup:”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K{hj‘hžhubj)”}”(hŒ5echo enabled > /sys/bus/usb/devices/usb1/power/wakeup”h]”hŒ5echo enabled > /sys/bus/usb/devices/usb1/power/wakeup”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”j j!uh1jhŸh¶h K}hj‘hžhubhÉ)”}”(hŒ$2.5 Enable related device's wakeup::”h]”hŒ%2.5 Enable related device’s wakeup:”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h Khj‘hžhubj)”}”(hŒ4echo enabled > /sys/bus/usb/devices/1-1/power/wakeup”h]”hŒ4echo enabled > /sys/bus/usb/devices/1-1/power/wakeup”…””}”hj.sbah}”(h]”h ]”h"]”h$]”h&]”j j!uh1jhŸh¶h Khj‘hžhubhÉ)”}”(hŒ~If the system has only one usb port, and you want usb wakeup at this port, you can use the below script to enable usb wakeup::”h]”hŒ}If the system has only one usb port, and you want usb wakeup at this port, you can use the below script to enable usb wakeup:”…””}”(hj<hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h Kƒhj‘hžhubj)”}”(hŒHfor i in $(find /sys -name wakeup | grep usb);do echo enabled > $i;done;”h]”hŒHfor i in $(find /sys -name wakeup | grep usb);do echo enabled > $i;done;”…””}”hjJsbah}”(h]”h ]”h"]”h$]”h&]”j j!uh1jhŸh¶h K†hj‘hžhubeh}”(h]”Œ)how-to-enable-usb-as-system-wakeup-source”ah ]”h"]”Œ,2. how to enable usb as system wakeup source”ah$]”h&]”uh1h¡hh£hžhhŸh¶h Kkubeh}”(h]”Œ.chipidea-highspeed-dual-role-controller-driver”ah ]”h"]”Œ.chipidea highspeed dual role controller driver”ah$]”h&]”uh1h¡hhhžhhŸh¶h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h¶uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¦NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j‹Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h¶Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jejbhÝhÚjVjSj'j$jNjKjgjdjŽj‹j]jZuŒ nametypes”}”(je‰h݉jV‰j'‰jN‰jg‰jމj]‰uh}”(jbh£hÚh·jShàj$hñjKj*jdjYj‹jjjZj‘uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.