€•Œ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/driver-api/usb/typec”Œ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/driver-api/usb/typec”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/it_IT/driver-api/usb/typec”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/ja_JP/driver-api/usb/typec”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/ko_KR/driver-api/usb/typec”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/pt_BR/driver-api/usb/typec”Œ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/driver-api/usb/typec”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒtarget”“”)�”}”(hŒ .. _typec:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œtypec”uh1hµh´Khhh²hh³ŒB/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec.rst”ubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒUSB Type-C connector class”h]”hŒUSB Type-C connector class”…”�”}”(hhËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhhÆh²hh³hÃh´KubhÅ)�”}”(hhh]”(hÊ)�”}”(hŒ Introduction”h]”hŒ Introduction”…”�”}”(hhÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhhÙh²hh³hÃh´KubhŒ paragraph”“”)�”}”(hX The typec class is meant for describing the USB Type-C ports in a system to the user space in unified fashion. The class is designed to provide nothing else except the user space interface implementation in hope that it can be utilized on as many platforms as possible.”h]”hX The typec class is meant for describing the USB Type-C ports in a system to the user space in unified fashion. The class is designed to provide nothing else except the user space interface implementation in hope that it can be utilized on as many platforms as possible.”…”�”}”(hhìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´K hhÙh²hubhë)�”}”(hX”The platforms are expected to register every USB Type-C port they have with the class. In a normal case the registration will be done by a USB Type-C or PD PHY driver, but it may be a driver for firmware interface such as UCSI, driver for USB PD controller or even driver for Thunderbolt3 controller. This document considers the component registering the USB Type-C ports with the class as "port driver".”h]”hX˜The platforms are expected to register every USB Type-C port they have with the class. In a normal case the registration will be done by a USB Type-C or PD PHY driver, but it may be a driver for firmware interface such as UCSI, driver for USB PD controller or even driver for Thunderbolt3 controller. This document considers the component registering the USB Type-C ports with the class as “port driverâ€�.”…”�”}”(hhúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´KhhÙh²hubhë)�”}”(hŒÏOn top of showing the capabilities, the class also offer user space control over the roles and alternate modes of ports, partners and cable plugs when the port driver is capable of supporting those features.”h]”hŒÏOn top of showing the capabilities, the class also offer user space control over the roles and alternate modes of ports, partners and cable plugs when the port driver is capable of supporting those features.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´KhhÙh²hubhë)�”}”(hŒ—The class provides an API for the port drivers described in this document. The attributes are described in Documentation/ABI/testing/sysfs-class-typec.”h]”hŒ—The class provides an API for the port drivers described in this document. The attributes are described in Documentation/ABI/testing/sysfs-class-typec.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´KhhÙh²hubeh}”(h]”Œ introduction”ah ]”h"]”Œ introduction”ah$]”h&]”uh1hÄhhÆh²hh³hÃh´KubhÅ)�”}”(hhh]”(hÊ)�”}”(hŒUser space interface”h]”hŒUser space interface”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhj,h²hh³hÃh´Kubhë)�”}”(hŒ‹Every port will be presented as its own device under /sys/class/typec/. The first port will be named "port0", the second "port1" and so on.”h]”hŒ“Every port will be presented as its own device under /sys/class/typec/. The first port will be named “port0â€�, the second “port1â€� and so on.”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´Khj,h²hubhë)�”}”(hX5When connected, the partner will be presented also as its own device under /sys/class/typec/. The parent of the partner device will always be the port it is attached to. The partner attached to port "port0" will be named "port0-partner". Full path to the device would be /sys/class/typec/port0/port0-partner/.”h]”hX=When connected, the partner will be presented also as its own device under /sys/class/typec/. The parent of the partner device will always be the port it is attached to. The partner attached to port “port0â€� will be named “port0-partnerâ€�. Full path to the device would be /sys/class/typec/port0/port0-partner/.”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´K!hj,h²hubhë)�”}”(hX½The cable and the two plugs on it may also be optionally presented as their own devices under /sys/class/typec/. The cable attached to the port "port0" port will be named port0-cable and the plug on the SOP Prime end (see USB Power Delivery Specification ch. 2.4) will be named "port0-plug0" and on the SOP Double Prime end "port0-plug1". The parent of a cable will always be the port, and the parent of the cable plugs will always be the cable.”h]”hXÉThe cable and the two plugs on it may also be optionally presented as their own devices under /sys/class/typec/. The cable attached to the port “port0â€� port will be named port0-cable and the plug on the SOP Prime end (see USB Power Delivery Specification ch. 2.4) will be named “port0-plug0â€� and on the SOP Double Prime end “port0-plug1â€�. The parent of a cable will always be the port, and the parent of the cable plugs will always be the cable.”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´K'hj,h²hubhë)�”}”(hX‘If the port, partner or cable plug supports Alternate Modes, every supported Alternate Mode SVID will have their own device describing them. Note that the Alternate Mode devices will not be attached to the typec class. The parent of an alternate mode will be the device that supports it, so for example an alternate mode of port0-partner will be presented under /sys/class/typec/port0-partner/. Every mode that is supported will have its own group under the Alternate Mode device named "mode", for example /sys/class/typec/port0//mode1/. The requests for entering/exiting a mode can be done with "active" attribute file in that group.”h]”hX™If the port, partner or cable plug supports Alternate Modes, every supported Alternate Mode SVID will have their own device describing them. Note that the Alternate Mode devices will not be attached to the typec class. The parent of an alternate mode will be the device that supports it, so for example an alternate mode of port0-partner will be presented under /sys/class/typec/port0-partner/. Every mode that is supported will have its own group under the Alternate Mode device named “modeâ€�, for example /sys/class/typec/port0//mode1/. The requests for entering/exiting a mode can be done with “activeâ€� attribute file in that group.”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´K.hj,h²hubeh}”(h]”Œuser-space-interface”ah ]”h"]”Œuser space interface”ah$]”h&]”uh1hÄhhÆh²hh³hÃh´KubhÅ)�”}”(hhh]”(hÊ)�”}”(hŒ Driver API”h]”hŒ Driver API”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhj}h²hh³hÃh´K9ubhÅ)�”}”(hhh]”(hÊ)�”}”(hŒRegistering the ports”h]”hŒRegistering the ports”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhjŽh²hh³hÃh´KhjŽh²hubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œ typec_register_port (C function)”Œc.typec_register_port”hNt”auh1j­hjŽh²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒcstruct typec_port * typec_register_port (struct device *parent, const struct typec_capability *cap)”h]”hŒdesc_signature_line”“”)�”}”(hŒastruct typec_port *typec_register_port(struct device *parent, const struct typec_capability *cap)”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jÏhjËh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:65: ./drivers/usb/typec/class.c”h´MÇ ubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1jáhjËh²hh³jàh´MÇ ubh)�”}”(hhh]”hŒ desc_sig_name”“”)�”}”(hŒ typec_port”h]”hŒ typec_port”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jõhjòubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”Œc”Œreftype”Œ identifier”Œ reftarget”jùŒmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”jŒ ASTIdentifier”“”)�”}”jŒtypec_register_port”sbŒc.typec_register_port”†”asbuh1hhjËh²hh³jàh´MÇ ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjËh²hh³jàh´MÇ ubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1j0hjËh²hh³jàh´MÇ ubhŒ desc_name”“”)�”}”(hŒtypec_register_port”h]”jö)�”}”(hjh]”hŒtypec_register_port”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjCubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jAhjËh²hh³jàh´MÇ ubhŒdesc_parameterlist”“”)�”}”(hŒ;(struct device *parent, const struct typec_capability *cap)”h]”(hŒdesc_parameter”“”)�”}”(hŒstruct device *parent”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjfubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjfubh)�”}”(hhh]”jö)�”}”(hŒdevice”h]”hŒdevice”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj…ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jŠŒmodname”NŒ classname”Njj)�”}”j]”jŒc.typec_register_port”†”asbuh1hhjfubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjfubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjfubjö)�”}”(hŒparent”h]”hŒparent”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjfubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj`ubje)�”}”(hŒ"const struct typec_capability *cap”h]”(jÐ)�”}”(hŒconst”h]”hŒconst”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjÖubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÖubjÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjÖubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÖubh)�”}”(hhh]”jö)�”}”(hŒtypec_capability”h]”hŒtypec_capability”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jŒmodname”NŒ classname”Njj)�”}”j]”jŒc.typec_register_port”†”asbuh1hhjÖubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÖubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjÖubjö)�”}”(hŒcap”h]”hŒcap”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjÖubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj`ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hjËh²hh³jàh´MÇ ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]Œ add_permalink”ˆuh1jÉŒsphinx_line_type”Œ declarator”hjÅh²hh³jàh´MÇ ubah}”(h]”j¼ah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jÃh³jàh´MÇ hjÀh²hubhŒ desc_content”“”)�”}”(hhh]”hë)�”}”(hŒRegister a USB Type-C Port”h]”hŒRegister a USB Type-C Port”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ^/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:65: ./drivers/usb/typec/class.c”h´MÇ hj~h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hjÀh²hh³jàh´MÇ ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”Œdomain”j Œobjtype”j™Œdesctype”j™Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1j¾h²hhjŽh³Nh´NubhŒ container”“”)�”}”(hX**Parameters** ``struct device *parent`` Parent device ``const struct typec_capability *cap`` Description of the port **Description** Registers a device for USB Type-C Port described in **cap**. Returns handle to the port on success or ERR_PTR on failure.”h]”(hë)�”}”(hŒ**Parameters**”h]”hŒstrong”“”)�”}”(hj«h]”hŒ Parameters”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ^/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:65: ./drivers/usb/typec/class.c”h´MË hj¥ubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ(``struct device *parent`` Parent device ”h]”(hŒterm”“”)�”}”(hŒ``struct device *parent``”h]”hŒliteral”“”)�”}”(hjÒh]”hŒstruct device *parent”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjÐubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ^/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:65: ./drivers/usb/typec/class.c”h´MÈ hjÊubhŒ definition”“”)�”}”(hhh]”hë)�”}”(hŒ Parent device”h]”hŒ Parent device”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³jéh´MÈ hjìubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjÊubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³jéh´MÈ hjÅubjÉ)�”}”(hŒ?``const struct typec_capability *cap`` Description of the port ”h]”(jÏ)�”}”(hŒ&``const struct typec_capability *cap``”h]”jÕ)�”}”(hjh]”hŒ"const struct typec_capability *cap”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ^/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:65: ./drivers/usb/typec/class.c”h´MÉ hj ubjë)�”}”(hhh]”hë)�”}”(hŒDescription of the port”h]”hŒDescription of the port”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j$h´MÉ hj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j$h´MÉ hjÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhj¥ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hjJh]”hŒ Description”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjHubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ^/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:65: ./drivers/usb/typec/class.c”h´MË hj¥ubhë)�”}”(hŒint typec_partner_set_identity (struct typec_partner *partner)”h]”jÊ)�”}”(hŒ=int typec_partner_set_identity(struct typec_partner *partner)”h]”(j±)�”}”(hŒint”h]”hŒint”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjˆ h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:96: ./drivers/usb/typec/class.c”h´M”ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj› h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjˆ h²hh³jš h´M”ubjB)�”}”(hŒtypec_partner_set_identity”h]”jö)�”}”(hŒtypec_partner_set_identity”h]”hŒtypec_partner_set_identity”…”�”}”(hj­ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj© ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhjˆ h²hh³jš h´M”ubj_)�”}”(hŒ(struct typec_partner *partner)”h]”je)�”}”(hŒstruct typec_partner *partner”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjÉ h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjÅ ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖ h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÅ ubh)�”}”(hhh]”jö)�”}”(hŒ typec_partner”h]”hŒ typec_partner”…”�”}”(hjç h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjä ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jé Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”jj¯ sbŒc.typec_partner_set_identity”†”asbuh1hhjÅ ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÅ ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjÅ ubjö)�”}”(hŒpartner”h]”hŒpartner”…”�”}”(hj" h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjÅ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhjÁ ubah}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hjˆ h²hh³jš h´M”ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphj„ h²hh³jš h´M”ubah}”(h]”j ah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³jš h´M”hj� h²hubj})�”}”(hhh]”hë)�”}”(hŒ,Report result from Discover Identity command”h]”hŒ,Report result from Discover Identity command”…”�”}”(hjL h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ^/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:96: ./drivers/usb/typec/class.c”h´M”hjI h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj� h²hh³jš h´M”ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžjd jŸjd j ‰j¡‰j¢‰uh1j¾h²hhj1h³Nh´Nubj¤)�”}”(hŒÞ**Parameters** ``struct typec_partner *partner`` The partner updated identity values **Description** This routine is used to report that the result of Discover Identity USB power delivery command has become available.”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hjn h]”hŒ Parameters”…”�”}”(hjp h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjl ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ^/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:96: ./drivers/usb/typec/class.c”h´M˜hjh ubjÄ)�”}”(hhh]”jÉ)�”}”(hŒF``struct typec_partner *partner`` The partner updated identity values ”h]”(jÏ)�”}”(hŒ!``struct typec_partner *partner``”h]”jÕ)�”}”(hj� h]”hŒstruct typec_partner *partner”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj‹ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ^/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:96: ./drivers/usb/typec/class.c”h´M•hj‡ ubjë)�”}”(hhh]”hë)�”}”(hŒ#The partner updated identity values”h]”hŒ#The partner updated identity values”…”�”}”(hj¦ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j¢ h´M•hj£ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj‡ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j¢ h´M•hj„ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjh ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hjÈ h]”hŒ Description”…”�”}”(hjÊ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjÆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ^/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:96: ./drivers/usb/typec/class.c”h´M—hjh ubhë)�”}”(hŒtThis routine is used to report that the result of Discover Identity USB power delivery command has become available.”h]”hŒtThis routine is used to report that the result of Discover Identity USB power delivery command has become available.”…”�”}”(hjÞ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ^/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:96: ./drivers/usb/typec/class.c”h´M–hjh ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hj1h²hh³Nh´Nubeh}”(h]”Œregistering-partners”ah ]”h"]”Œregistering partners”ah$]”h&]”uh1hÄhj}h²hh³hÃh´KLubhÅ)�”}”(hhh]”(hÊ)�”}”(hŒRegistering Cables”h]”hŒRegistering Cables”…”�”}”(hjÿ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhjü h²hh³hÃh´Kdubhë)�”}”(hXõAfter successful connection of a cable that supports USB Power Delivery Structured VDM "Discover Identity", the port driver needs to register the cable and one or two plugs, depending if there is CC Double Prime controller present in the cable or not. So a cable capable of SOP Prime communication, but not SOP Double Prime communication, should only have one plug registered. For more information about SOP communication, please read chapter about it from the latest USB Power Delivery specification.”h]”hXùAfter successful connection of a cable that supports USB Power Delivery Structured VDM “Discover Identityâ€�, the port driver needs to register the cable and one or two plugs, depending if there is CC Double Prime controller present in the cable or not. So a cable capable of SOP Prime communication, but not SOP Double Prime communication, should only have one plug registered. For more information about SOP communication, please read chapter about it from the latest USB Power Delivery specification.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´Kfhjü h²hubhë)�”}”(hX­The plugs are represented as their own devices. The cable is registered first, followed by registration of the cable plugs. The cable will be the parent device for the plugs. Details about the cable need to be described in struct typec_cable_desc and about a plug in struct typec_plug_desc. The class copies the details during registration. The class offers the following API for registering/unregistering cables and their plugs:”h]”hX­The plugs are represented as their own devices. The cable is registered first, followed by registration of the cable plugs. The cable will be the parent device for the plugs. Details about the cable need to be described in struct typec_cable_desc and about a plug in struct typec_plug_desc. The class copies the details during registration. The class offers the following API for registering/unregistering cables and their plugs:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´Knhjü h²hubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ typec_register_plug (C function)”Œc.typec_register_plug”hNt”auh1j­hjü h²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒastruct typec_plug * typec_register_plug (struct typec_cable *cable, struct typec_plug_desc *desc)”h]”jÊ)�”}”(hŒ_struct typec_plug *typec_register_plug(struct typec_cable *cable, struct typec_plug_desc *desc)”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjB h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj> h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´Mubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjP h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj> h²hh³jO h´Mubh)�”}”(hhh]”jö)�”}”(hŒ typec_plug”h]”hŒ typec_plug”…”�”}”(hja h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj^ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jc Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”jŒtypec_register_plug”sbŒc.typec_register_plug”†”asbuh1hhj> h²hh³jO h´Mubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚ h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj> h²hh³jO h´Mubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj> h²hh³jO h´MubjB)�”}”(hŒtypec_register_plug”h]”jö)�”}”(hj h]”hŒtypec_register_plug”…”�”}”(hj¡ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj� ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhj> h²hh³jO h´Mubj_)�”}”(hŒ9(struct typec_cable *cable, struct typec_plug_desc *desc)”h]”(je)�”}”(hŒstruct typec_cable *cable”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hj¼ h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj¸ ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉ h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj¸ ubh)�”}”(hhh]”jö)�”}”(hŒ typec_cable”h]”hŒ typec_cable”…”�”}”(hjÚ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj× ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jÜ Œmodname”NŒ classname”Njj)�”}”j]”j} Œc.typec_register_plug”†”asbuh1hhj¸ ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjø h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj¸ ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj¸ ubjö)�”}”(hŒcable”h]”hŒcable”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj¸ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj´ ubje)�”}”(hŒstruct typec_plug_desc *desc”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hj, h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj( ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9 h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj( ubh)�”}”(hhh]”jö)�”}”(hŒtypec_plug_desc”h]”hŒtypec_plug_desc”…”�”}”(hjJ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjG ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jL Œmodname”NŒ classname”Njj)�”}”j]”j} Œc.typec_register_plug”†”asbuh1hhj( ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj( ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hjv h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj( ubjö)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hjƒ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj( ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj´ ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hj> h²hh³jO h´Mubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphj: h²hh³jO h´Mubah}”(h]”j5 ah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³jO h´Mhj7 h²hubj})�”}”(hhh]”hë)�”}”(hŒ Register a USB Type-C Cable Plug”h]”hŒ Register a USB Type-C Cable Plug”…”�”}”(hj­ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´Mhjª h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj7 h²hh³jO h´Mubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžjÅ jŸjÅ j ‰j¡‰j¢‰uh1j¾h²hhjü h³Nh´Nubj¤)�”}”(hX»**Parameters** ``struct typec_cable *cable`` USB Type-C Cable with the plug ``struct typec_plug_desc *desc`` Description of the cable plug **Description** Registers a device for USB Type-C Cable Plug described in **desc**. A USB Type-C Cable Plug represents a plug with electronics in it that can response to USB Power Delivery SOP Prime or SOP Double Prime packages. Returns handle to the cable plug on success or ERR_PTR on failure.”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hjÏ h]”hŒ Parameters”…”�”}”(hjÑ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjÍ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´MhjÉ ubjÄ)�”}”(hhh]”(jÉ)�”}”(hŒ=``struct typec_cable *cable`` USB Type-C Cable with the plug ”h]”(jÏ)�”}”(hŒ``struct typec_cable *cable``”h]”jÕ)�”}”(hjî h]”hŒstruct typec_cable *cable”…”�”}”(hjð h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjì ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´Mhjè ubjë)�”}”(hhh]”hë)�”}”(hŒUSB Type-C Cable with the plug”h]”hŒUSB Type-C Cable with the plug”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³jh´Mhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjè ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³jh´Mhjå ubjÉ)�”}”(hŒ?``struct typec_plug_desc *desc`` Description of the cable plug ”h]”(jÏ)�”}”(hŒ ``struct typec_plug_desc *desc``”h]”jÕ)�”}”(hj'h]”hŒstruct typec_plug_desc *desc”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´Mhj!ubjë)�”}”(hhh]”hë)�”}”(hŒDescription of the cable plug”h]”hŒDescription of the cable plug”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j<h´Mhj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j<h´Mhjå ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjÉ ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hjbh]”hŒ Description”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´MhjÉ ubhë)�”}”(hŒÔRegisters a device for USB Type-C Cable Plug described in **desc**. A USB Type-C Cable Plug represents a plug with electronics in it that can response to USB Power Delivery SOP Prime or SOP Double Prime packages.”h]”(hŒ:Registers a device for USB Type-C Cable Plug described in ”…”�”}”(hjxh²hh³Nh´Nubj®)�”}”(hŒ**desc**”h]”hŒdesc”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjxubhŒ’. A USB Type-C Cable Plug represents a plug with electronics in it that can response to USB Power Delivery SOP Prime or SOP Double Prime packages.”…”�”}”(hjxh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´MhjÉ ubhë)�”}”(hŒBReturns handle to the cable plug on success or ERR_PTR on failure.”h]”hŒBReturns handle to the cable plug on success or ERR_PTR on failure.”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´MhjÉ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjü h²hh³Nh´Nubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ"typec_unregister_plug (C function)”Œc.typec_unregister_plug”hNt”auh1j­hjü h²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒ4void typec_unregister_plug (struct typec_plug *plug)”h]”jÊ)�”}”(hŒ3void typec_unregister_plug(struct typec_plug *plug)”h]”(j±)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjÄh²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´M:ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÄh²hh³jÖh´M:ubjB)�”}”(hŒtypec_unregister_plug”h]”jö)�”}”(hŒtypec_unregister_plug”h]”hŒtypec_unregister_plug”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjåubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhjÄh²hh³jÖh´M:ubj_)�”}”(hŒ(struct typec_plug *plug)”h]”je)�”}”(hŒstruct typec_plug *plug”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjubh)�”}”(hhh]”jö)�”}”(hŒ typec_plug”h]”hŒ typec_plug”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”j%Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”jjësbŒc.typec_unregister_plug”†”asbuh1hhjubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjubj1)�”}”(hj4h]”hŒ*”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjubjö)�”}”(hŒplug”h]”hŒplug”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhjýubah}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hjÄh²hh³jÖh´M:ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphjÀh²hh³jÖh´M:ubah}”(h]”j»ah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³jÖh´M:hj½h²hubj})�”}”(hhh]”hë)�”}”(hŒ"Unregister a USB Type-C Cable Plug”h]”hŒ"Unregister a USB Type-C Cable Plug”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´M:hj…h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj½h²hh³jÖh´M:ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžj jŸj j ‰j¡‰j¢‰uh1j¾h²hhjü h³Nh´Nubj¤)�”}”(hŒ—**Parameters** ``struct typec_plug *plug`` The cable plug to be unregistered **Description** Unregister device created with typec_register_plug().”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hjªh]”hŒ Parameters”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´M>hj¤ubjÄ)�”}”(hhh]”jÉ)�”}”(hŒ>``struct typec_plug *plug`` The cable plug to be unregistered ”h]”(jÏ)�”}”(hŒ``struct typec_plug *plug``”h]”jÕ)�”}”(hjÉh]”hŒstruct typec_plug *plug”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´M;hjÃubjë)�”}”(hhh]”hë)�”}”(hŒ!The cable plug to be unregistered”h]”hŒ!The cable plug to be unregistered”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³jÞh´M;hjßubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjÃubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³jÞh´M;hjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1jÃhj¤ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hjh]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´M=hj¤ubhë)�”}”(hŒ5Unregister device created with typec_register_plug().”h]”hŒ5Unregister device created with typec_register_plug().”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´M<hj¤ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjü h²hh³Nh´Nubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ!typec_register_cable (C function)”Œc.typec_register_cable”hNt”auh1j­hjü h²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒbstruct typec_cable * typec_register_cable (struct typec_port *port, struct typec_cable_desc *desc)”h]”jÊ)�”}”(hŒ`struct typec_cable *typec_register_cable(struct typec_port *port, struct typec_cable_desc *desc)”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjEh²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´Mñubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjEh²hh³jVh´Mñubh)�”}”(hhh]”jö)�”}”(hŒ typec_cable”h]”hŒ typec_cable”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjeubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jjŒmodname”NŒ classname”Njj)�”}”j]”j)�”}”jŒtypec_register_cable”sbŒc.typec_register_cable”†”asbuh1hhjEh²hh³jVh´Mñubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjEh²hh³jVh´Mñubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjEh²hh³jVh´MñubjB)�”}”(hŒtypec_register_cable”h]”jö)�”}”(hj†h]”hŒtypec_register_cable”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj¤ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhjEh²hh³jVh´Mñubj_)�”}”(hŒ8(struct typec_port *port, struct typec_cable_desc *desc)”h]”(je)�”}”(hŒstruct typec_port *port”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj¿ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj¿ubh)�”}”(hhh]”jö)�”}”(hŒ typec_port”h]”hŒ typec_port”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjÞubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jãŒmodname”NŒ classname”Njj)�”}”j]”j„Œc.typec_register_cable”†”asbuh1hhj¿ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj¿ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj¿ubjö)�”}”(hŒport”h]”hŒport”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj¿ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj»ubje)�”}”(hŒstruct typec_cable_desc *desc”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj/ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj/ubh)�”}”(hhh]”jö)�”}”(hŒtypec_cable_desc”h]”hŒtypec_cable_desc”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjNubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jSŒmodname”NŒ classname”Njj)�”}”j]”j„Œc.typec_register_cable”†”asbuh1hhj/ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj/ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj/ubjö)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj/ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj»ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hjEh²hh³jVh´Mñubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphjAh²hh³jVh´Mñubah}”(h]”j<ah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³jVh´Mñhj>h²hubj})�”}”(hhh]”hë)�”}”(hŒRegister a USB Type-C Cable”h]”hŒRegister a USB Type-C Cable”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´Mñhj±h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj>h²hh³jVh´Mñubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžjÌjŸjÌj ‰j¡‰j¢‰uh1j¾h²hhjü h³Nh´Nubj¤)�”}”(hXg**Parameters** ``struct typec_port *port`` The USB Type-C Port the cable is connected to ``struct typec_cable_desc *desc`` Description of the cable **Description** Registers a device for USB Type-C Cable described in **desc**. The cable will be parent for the optional cable plug devises. Returns handle to the cable on success or ERR_PTR on failure.”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hjÖh]”hŒ Parameters”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´MõhjÐubjÄ)�”}”(hhh]”(jÉ)�”}”(hŒJ``struct typec_port *port`` The USB Type-C Port the cable is connected to ”h]”(jÏ)�”}”(hŒ``struct typec_port *port``”h]”jÕ)�”}”(hjõh]”hŒstruct typec_port *port”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjóubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´Mòhjïubjë)�”}”(hhh]”hë)�”}”(hŒ-The USB Type-C Port the cable is connected to”h]”hŒ-The USB Type-C Port the cable is connected to”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j h´Mòhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjïubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j h´MòhjìubjÉ)�”}”(hŒ;``struct typec_cable_desc *desc`` Description of the cable ”h]”(jÏ)�”}”(hŒ!``struct typec_cable_desc *desc``”h]”jÕ)�”}”(hj.h]”hŒstruct typec_cable_desc *desc”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´Móhj(ubjë)�”}”(hhh]”hë)�”}”(hŒDescription of the cable”h]”hŒDescription of the cable”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³jCh´MóhjDubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³jCh´Móhjìubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjÐubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hjih]”hŒ Description”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjgubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´MõhjÐubhë)�”}”(hŒ|Registers a device for USB Type-C Cable described in **desc**. The cable will be parent for the optional cable plug devises.”h]”(hŒ5Registers a device for USB Type-C Cable described in ”…”�”}”(hjh²hh³Nh´Nubj®)�”}”(hŒ**desc**”h]”hŒdesc”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjubhŒ?. The cable will be parent for the optional cable plug devises.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´MôhjÐubhë)�”}”(hŒ=Returns handle to the cable on success or ERR_PTR on failure.”h]”hŒ=Returns handle to the cable on success or ERR_PTR on failure.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´M÷hjÐubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjü h²hh³Nh´Nubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ#typec_unregister_cable (C function)”Œc.typec_unregister_cable”hNt”auh1j­hjü h²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒ7void typec_unregister_cable (struct typec_cable *cable)”h]”jÊ)�”}”(hŒ6void typec_unregister_cable(struct typec_cable *cable)”h]”(j±)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjËh²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´M"ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjËh²hh³jÝh´M"ubjB)�”}”(hŒtypec_unregister_cable”h]”jö)�”}”(hŒtypec_unregister_cable”h]”hŒtypec_unregister_cable”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjìubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhjËh²hh³jÝh´M"ubj_)�”}”(hŒ(struct typec_cable *cable)”h]”je)�”}”(hŒstruct typec_cable *cable”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjubh)�”}”(hhh]”jö)�”}”(hŒ typec_cable”h]”hŒ typec_cable”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”j,Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”jjòsbŒc.typec_unregister_cable”†”asbuh1hhjubjâ)�”}”(hŒ ”h]”• hŒ ”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjubj1)�”}”(hj4h]”hŒ*”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjubjö)�”}”(hŒcable”h]”hŒcable”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhjubah}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hjËh²hh³jÝh´M"ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphjÇh²hh³jÝh´M"ubah}”(h]”jÂah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³jÝh´M"hjÄh²hubj})�”}”(hhh]”hë)�”}”(hŒUnregister a USB Type-C Cable”h]”hŒUnregister a USB Type-C Cable”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´M"hjŒh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hjÄh²hh³jÝh´M"ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžj§jŸj§j ‰j¡‰j¢‰uh1j¾h²hhjü h³Nh´Nubj¤)�”}”(hŒ•**Parameters** ``struct typec_cable *cable`` The cable to be unregistered **Description** Unregister device created with typec_register_cable().”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hj±h]”hŒ Parameters”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´M&hj«ubjÄ)�”}”(hhh]”jÉ)�”}”(hŒ;``struct typec_cable *cable`` The cable to be unregistered ”h]”(jÏ)�”}”(hŒ``struct typec_cable *cable``”h]”jÕ)�”}”(hjÐh]”hŒstruct typec_cable *cable”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´M#hjÊubjë)�”}”(hhh]”hë)�”}”(hŒThe cable to be unregistered”h]”hŒThe cable to be unregistered”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³jåh´M#hjæubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjÊubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³jåh´M#hjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1jÃhj«ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hj h]”hŒ Description”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´M%hj«ubhë)�”}”(hŒ6Unregister device created with typec_register_cable().”h]”hŒ6Unregister device created with typec_register_cable().”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:117: ./drivers/usb/typec/class.c”h´M$hj«ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjü h²hh³Nh´Nubhë)�”}”(hŒƒThe class will provide a handle to struct typec_cable and struct typec_plug if the registration is successful, or NULL if it isn't.”h]”hŒ…The class will provide a handle to struct typec_cable and struct typec_plug if the registration is successful, or NULL if it isn’t.”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´Kxhjü h²hubhë)�”}”(hX|If the cable is USB Power Delivery capable, and the port driver is able to show the result of Discover Identity command, the cable descriptor structure should include handle to struct usb_pd_identity instance. The class will then create a sysfs directory for the identity under the cable device. The result of Discover Identity command can then be reported with the following API:”h]”hX|If the cable is USB Power Delivery capable, and the port driver is able to show the result of Discover Identity command, the cable descriptor structure should include handle to struct usb_pd_identity instance. The class will then create a sysfs directory for the identity under the cable device. The result of Discover Identity command can then be reported with the following API:”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´K{hjü h²hubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ%typec_cable_set_identity (C function)”Œc.typec_cable_set_identity”hNt”auh1j­hjü h²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒ8int typec_cable_set_identity (struct typec_cable *cable)”h]”jÊ)�”}”(hŒ7int typec_cable_set_identity(struct typec_cable *cable)”h]”(j±)�”}”(hŒint”h]”hŒint”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjhh²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:129: ./drivers/usb/typec/class.c”h´Màubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjhh²hh³jzh´MàubjB)�”}”(hŒtypec_cable_set_identity”h]”jö)�”}”(hŒtypec_cable_set_identity”h]”hŒtypec_cable_set_identity”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj‰ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhjhh²hh³jzh´Màubj_)�”}”(hŒ(struct typec_cable *cable)”h]”je)�”}”(hŒstruct typec_cable *cable”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj¥ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj¥ubh)�”}”(hhh]”jö)�”}”(hŒ typec_cable”h]”hŒ typec_cable”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjÄubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jÉŒmodname”NŒ classname”Njj)�”}”j]”j)�”}”jj�sbŒc.typec_cable_set_identity”†”asbuh1hhj¥ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj¥ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj¥ubjö)�”}”(hŒcable”h]”hŒcable”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj¥ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj¡ubah}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hjhh²hh³jzh´Màubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphjdh²hh³jzh´Màubah}”(h]”j_ah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³jzh´Màhjah²hubj})�”}”(hhh]”hë)�”}”(hŒ,Report result from Discover Identity command”h]”hŒ,Report result from Discover Identity command”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:129: ./drivers/usb/typec/class.c”h´Màhj)h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hjah²hh³jzh´Màubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžjDjŸjDj ‰j¡‰j¢‰uh1j¾h²hhjü h³Nh´Nubj¤)�”}”(hŒØ**Parameters** ``struct typec_cable *cable`` The cable updated identity values **Description** This routine is used to report that the result of Discover Identity USB power delivery command has become available.”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hjNh]”hŒ Parameters”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjLubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:129: ./drivers/usb/typec/class.c”h´MähjHubjÄ)�”}”(hhh]”jÉ)�”}”(hŒ@``struct typec_cable *cable`` The cable updated identity values ”h]”(jÏ)�”}”(hŒ``struct typec_cable *cable``”h]”jÕ)�”}”(hjmh]”hŒstruct typec_cable *cable”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjkubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:129: ./drivers/usb/typec/class.c”h´Máhjgubjë)�”}”(hhh]”hë)�”}”(hŒ!The cable updated identity values”h]”hŒ!The cable updated identity values”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j‚h´Máhjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjgubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j‚h´Máhjdubah}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjHubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hj¨h]”hŒ Description”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:129: ./drivers/usb/typec/class.c”h´MãhjHubhë)�”}”(hŒtThis routine is used to report that the result of Discover Identity USB power delivery command has become available.”h]”hŒtThis routine is used to report that the result of Discover Identity USB power delivery command has become available.”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:129: ./drivers/usb/typec/class.c”h´MâhjHubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjü h²hh³Nh´Nubeh}”(h]”Œregistering-cables”ah ]”h"]”Œregistering cables”ah$]”h&]”uh1hÄhj}h²hh³hÃh´KdubhÅ)�”}”(hhh]”(hÊ)�”}”(hŒ Notifications”h]”hŒ Notifications”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhjÜh²hh³hÃh´K…ubhë)�”}”(hŒ½When the partner has executed a role change, or when the default roles change during connection of a partner or cable, the port driver must use the following APIs to report it to the class:”h]”hŒ½When the partner has executed a role change, or when the default roles change during connection of a partner or cable, the port driver must use the following APIs to report it to the class:”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´K‡hjÜh²hubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ typec_set_data_role (C function)”Œc.typec_set_data_role”hNt”auh1j­hjÜh²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒMvoid typec_set_data_role (struct typec_port *port, enum typec_data_role role)”h]”jÊ)�”}”(hŒLvoid typec_set_data_role(struct typec_port *port, enum typec_data_role role)”h]”(j±)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjh²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´MÕubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjh²hh³j"h´MÕubjB)�”}”(hŒtypec_set_data_role”h]”jö)�”}”(hŒtypec_set_data_role”h]”hŒtypec_set_data_role”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj1ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhjh²hh³j"h´MÕubj_)�”}”(hŒ4(struct typec_port *port, enum typec_data_role role)”h]”(je)�”}”(hŒstruct typec_port *port”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjMubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjMubh)�”}”(hhh]”jö)�”}”(hŒ typec_port”h]”hŒ typec_port”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjlubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jqŒmodname”NŒ classname”Njj)�”}”j]”j)�”}”jj7sbŒc.typec_set_data_role”†”asbuh1hhjMubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjMubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjMubjö)�”}”(hŒport”h]”hŒport”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjMubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhjIubje)�”}”(hŒenum typec_data_role role”h]”(jÐ)�”}”(hŒenum”h]”hŒenum”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj¿ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj¿ubh)�”}”(hhh]”jö)�”}”(hŒtypec_data_role”h]”hŒtypec_data_role”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjßubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jäŒmodname”NŒ classname”Njj)�”}”j]”j‹Œc.typec_set_data_role”†”asbuh1hhj¿ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj¿ubjö)�”}”(hŒrole”h]”hŒrole”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj¿ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhjIubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hjh²hh³j"h´MÕubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphj h²hh³j"h´MÕubah}”(h]”jah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³j"h´MÕhj h²hubj})�”}”(hhh]”hë)�”}”(hŒReport data role change”h]”hŒReport data role change”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´MÕhj5h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj h²hh³j"h´MÕubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžjPjŸjPj ‰j¡‰j¢‰uh1j¾h²hhjÜh³Nh´Nubj¤)�”}”(hŒç**Parameters** ``struct typec_port *port`` The USB Type-C Port where the role was changed ``enum typec_data_role role`` The new data role **Description** This routine is used by the port drivers to report data role changes.”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hjZh]”hŒ Parameters”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjXubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´MÙhjTubjÄ)�”}”(hhh]”(jÉ)�”}”(hŒK``struct typec_port *port`` The USB Type-C Port where the role was changed ”h]”(jÏ)�”}”(hŒ``struct typec_port *port``”h]”jÕ)�”}”(hjyh]”hŒstruct typec_port *port”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjwubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´MÖhjsubjë)�”}”(hhh]”hë)�”}”(hŒ.The USB Type-C Port where the role was changed”h]”hŒ.The USB Type-C Port where the role was changed”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³jŽh´MÖhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjsubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³jŽh´MÖhjpubjÉ)�”}”(hŒ0``enum typec_data_role role`` The new data role ”h]”(jÏ)�”}”(hŒ``enum typec_data_role role``”h]”jÕ)�”}”(hj²h]”hŒenum typec_data_role role”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M×hj¬ubjë)�”}”(hhh]”hë)�”}”(hŒThe new data role”h]”hŒThe new data role”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³jÇh´M×hjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³jÇh´M×hjpubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjTubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hjíh]”hŒ Description”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjëubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´MÙhjTubhë)�”}”(hŒEThis routine is used by the port drivers to report data role changes.”h]”hŒEThis routine is used by the port drivers to report data role changes.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´MØhjTubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjÜh²hh³Nh´Nubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒtypec_set_pwr_role (C function)”Œc.typec_set_pwr_role”hNt”auh1j­hjÜh²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒGvoid typec_set_pwr_role (struct typec_port *port, enum typec_role role)”h]”jÊ)�”}”(hŒFvoid typec_set_pwr_role(struct typec_port *port, enum typec_role role)”h]”(j±)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj.h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´Mÿubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj.h²hh³j@h´MÿubjB)�”}”(hŒtypec_set_pwr_role”h]”jö)�”}”(hŒtypec_set_pwr_role”h]”hŒtypec_set_pwr_role”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjOubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhj.h²hh³j@h´Mÿubj_)�”}”(hŒ/(struct typec_port *port, enum typec_role role)”h]”(je)�”}”(hŒstruct typec_port *port”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjkubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjkubh)�”}”(hhh]”jö)�”}”(hŒ typec_port”h]”hŒ typec_port”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjŠubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”j�Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”jjUsbŒc.typec_set_pwr_role”†”asbuh1hhjkubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjkubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjkubjö)�”}”(hŒport”h]”hŒport”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjkubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhjgubje)�”}”(hŒenum typec_role role”h]”(jÐ)�”}”(hjÅh]”hŒenum”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjÝubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÝubh)�”}”(hhh]”jö)�”}”(hŒ typec_role”h]”hŒ typec_role”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjüubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jŒmodname”NŒ classname”Njj)�”}”j]”j©Œc.typec_set_pwr_role”†”asbuh1hhjÝubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÝubjö)�”}”(hŒrole”h]”hŒrole”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjÝubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhjgubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hj.h²hh³j@h´Mÿubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphj*h²hh³j@h´Mÿubah}”(h]”j%ah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³j@h´Mÿhj'h²hubj})�”}”(hhh]”hë)�”}”(hŒReport power role change”h]”hŒReport power role change”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´MÿhjRh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj'h²hh³j@h´Mÿubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžjmjŸjmj ‰j¡‰j¢‰uh1j¾h²hhjÜh³Nh´Nubj¤)�”}”(hŒã**Parameters** ``struct typec_port *port`` The USB Type-C Port where the role was changed ``enum typec_role role`` The new data role **Description** This routine is used by the port drivers to report power role changes.”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hjwh]”hŒ Parameters”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjuubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M hjqubjÄ)�”}”(hhh]”(jÉ)�”}”(hŒK``struct typec_port *port`` The USB Type-C Port where the role was changed ”h]”(jÏ)�”}”(hŒ``struct typec_port *port``”h]”jÕ)�”}”(hj–h]”hŒstruct typec_port *port”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M hj�ubjë)�”}”(hhh]”hë)�”}”(hŒ.The USB Type-C Port where the role was changed”h]”hŒ.The USB Type-C Port where the role was changed”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j«h´M hj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j«h´M hj�ubjÉ)�”}”(hŒ+``enum typec_role role`` The new data role ”h]”(jÏ)�”}”(hŒ``enum typec_role role``”h]”jÕ)�”}”(hjÏh]”hŒenum typec_role role”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M hjÉubjë)�”}”(hhh]”hë)�”}”(hŒThe new data role”h]”hŒThe new data role”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³jäh´M hjåubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjÉubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³jäh´M hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjqubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hj h]”hŒ Description”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M hjqubhë)�”}”(hŒFThis routine is used by the port drivers to report power role changes.”h]”hŒFThis routine is used by the port drivers to report power role changes.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M hjqubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjÜh²hh³Nh´Nubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ!typec_set_vconn_role (C function)”Œc.typec_set_vconn_role”hNt”auh1j­hjÜh²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒIvoid typec_set_vconn_role (struct typec_port *port, enum typec_role role)”h]”jÊ)�”}”(hŒHvoid typec_set_vconn_role(struct typec_port *port, enum typec_role role)”h]”(j±)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjKh²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjKh²hh³j]h´M ubjB)�”}”(hŒtypec_set_vconn_role”h]”jö)�”}”(hŒtypec_set_vconn_role”h]”hŒtypec_set_vconn_role”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjlubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhjKh²hh³j]h´M ubj_)�”}”(hŒ/(struct typec_port *port, enum typec_role role)”h]”(je)�”}”(hŒstruct typec_port *port”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjˆubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjˆubh)�”}”(hhh]”jö)�”}”(hŒ typec_port”h]”hŒ typec_port”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj§ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”j¬Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”jjrsbŒc.typec_set_vconn_role”†”asbuh1hhjˆubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjˆubj1)�”}”(hj4h]”hŒ*”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjˆubjö)�”}”(hŒport”h]”hŒport”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjˆubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj„ubje)�”}”(hŒenum typec_role role”h]”(jÐ)�”}”(hjÅh]”hŒenum”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjúubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjúubh)�”}”(hhh]”jö)�”}”(hŒ typec_role”h]”hŒ typec_role”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jŒmodname”NŒ classname”Njj)�”}”j]”jÆŒc.typec_set_vconn_role”†”asbuh1hhjúubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjúubjö)�”}”(hŒrole”h]”hŒrole”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjúubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj„ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hjKh²hh³j]h´M ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphjGh²hh³j]h´M ubah}”(h]”jBah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³j]h´M hjDh²hubj})�”}”(hhh]”hë)�”}”(hŒReport VCONN source change”h]”hŒReport VCONN source change”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M hjoh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hjDh²hh³j]h´M ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžjŠjŸjŠj ‰j¡‰j¢‰uh1j¾h²hhjÜh³Nh´Nubj¤)�”}”(hX**Parameters** ``struct typec_port *port`` The USB Type-C Port which VCONN role changed ``enum typec_role role`` Source when **port** is sourcing VCONN, or Sink when it's not **Description** This routine is used by the port drivers to report if the VCONN source is changes.”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hj”h]”hŒ Parameters”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M hjŽubjÄ)�”}”(hhh]”(jÉ)�”}”(hŒI``struct typec_port *port`` The USB Type-C Port which VCONN role changed ”h]”(jÏ)�”}”(hŒ``struct typec_port *port``”h]”jÕ)�”}”(hj³h]”hŒstruct typec_port *port”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M hj­ubjë)�”}”(hhh]”hë)�”}”(hŒ,The USB Type-C Port which VCONN role changed”h]”hŒ,The USB Type-C Port which VCONN role changed”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³jÈh´M hjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³jÈh´M hjªubjÉ)�”}”(hŒW``enum typec_role role`` Source when **port** is sourcing VCONN, or Sink when it's not ”h]”(jÏ)�”}”(hŒ``enum typec_role role``”h]”jÕ)�”}”(hjìh]”hŒenum typec_role role”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjêubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M hjæubjë)�”}”(hhh]”hë)�”}”(hŒ=Source when **port** is sourcing VCONN, or Sink when it's not”h]”(hŒ Source when ”…”�”}”(hjh²hh³Nh´Nubj®)�”}”(hŒ**port**”h]”hŒport”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjubhŒ+ is sourcing VCONN, or Sink when it’s not”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hêh³jh´M hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjæubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³jh´M hjªubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjŽubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hj9h]”hŒ Description”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M hjŽubhë)�”}”(hŒRThis routine is used by the port drivers to report if the VCONN source is changes.”h]”hŒRThis routine is used by the port drivers to report if the VCONN source is changes.”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M hjŽubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjÜh²hh³Nh´Nubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ!typec_set_pwr_opmode (C function)”Œc.typec_set_pwr_opmode”hNt”auh1j­hjÜh²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒQvoid typec_set_pwr_opmode (struct typec_port *port, enum typec_pwr_opmode opmode)”h]”jÊ)�”}”(hŒPvoid typec_set_pwr_opmode(struct typec_port *port, enum typec_pwr_opmode opmode)”h]”(j±)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjzh²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M$ ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjzh²hh³jŒh´M$ ubjB)�”}”(hŒtypec_set_pwr_opmode”h]”jö)�”}”(hŒtypec_set_pwr_opmode”h]”hŒtypec_set_pwr_opmode”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj›ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhjzh²hh³jŒh´M$ ubj_)�”}”(hŒ7(struct typec_port *port, enum typec_pwr_opmode opmode)”h]”(je)�”}”(hŒstruct typec_port *port”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj·ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj·ubh)�”}”(hhh]”jö)�”}”(hŒ typec_port”h]”hŒ typec_port”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjÖubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jÛŒmodname”NŒ classname”Njj)�”}”j]”j)�”}”jj¡sbŒc.typec_set_pwr_opmode”†”asbuh1hhj·ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj·ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj·ubjö)�”}”(hŒport”h]”hŒport”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj·ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj³ubje)�”}”(hŒenum typec_pwr_opmode opmode”h]”(jÐ)�”}”(hjÅh]”hŒenum”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj)ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj)ubh)�”}”(hhh]”jö)�”}”(hŒtypec_pwr_opmode”h]”hŒtypec_pwr_opmode”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjHubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jMŒmodname”NŒ classname”Njj)�”}”j]”jõŒc.typec_set_pwr_opmode”†”asbuh1hhj)ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj)ubjö)�”}”(hŒopmode”h]”hŒopmode”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj³ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hjzh²hh³jŒh´M$ ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphjvh²hh³jŒh´M$ ubah}”(h]”jqah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³jŒh´M$ hjsh²hubj})�”}”(hhh]”hë)�”}”(hŒ#Report changed power operation mode”h]”hŒ#Report changed power operation mode”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M$ hjžh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hjsh²hh³jŒh´M$ ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžj¹jŸj¹j ‰j¡‰j¢‰uh1j¾h²hhjÜh³Nh´Nubj¤)�”}”(hXÐ**Parameters** ``struct typec_port *port`` The USB Type-C Port where the mode was changed ``enum typec_pwr_opmode opmode`` New power operation mode **Description** This routine is used by the port drivers to report changed power operation mode in **port**. The modes are USB (default), 1.5A, 3.0A as defined in USB Type-C specification, and "USB Power Delivery" when the power levels are negotiated with methods defined in USB Power Delivery specification.”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hjÃh]”hŒ Parameters”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M( hj½ubjÄ)�”}”(hhh]”(jÉ)�”}”(hŒK``struct typec_port *port`` The USB Type-C Port where the mode was changed ”h]”(jÏ)�”}”(hŒ``struct typec_port *port``”h]”jÕ)�”}”(hjâh]”hŒstruct typec_port *port”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjàubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M% hjÜubjë)�”}”(hhh]”hë)�”}”(hŒ.The USB Type-C Port where the mode was changed”h]”hŒ.The USB Type-C Port where the mode was changed”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j÷h´M% hjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjÜubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j÷h´M% hjÙubjÉ)�”}”(hŒ:``enum typec_pwr_opmode opmode`` New power operation mode ”h]”(jÏ)�”}”(hŒ ``enum typec_pwr_opmode opmode``”h]”jÕ)�”}”(hjh]”hŒenum typec_pwr_opmode opmode”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M& hjubjë)�”}”(hhh]”hë)�”}”(hŒNew power operation mode”h]”hŒNew power operation mode”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j0h´M& hj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j0h´M& hjÙubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhj½ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hjVh]”hŒ Description”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjTubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M( hj½ubhë)�”}”(hX$This routine is used by the port drivers to report changed power operation mode in **port**. The modes are USB (default), 1.5A, 3.0A as defined in USB Type-C specification, and "USB Power Delivery" when the power levels are negotiated with methods defined in USB Power Delivery specification.”h]”(hŒSThis routine is used by the port drivers to report changed power operation mode in ”…”�”}”(hjlh²hh³Nh´Nubj®)�”}”(hŒ**port**”h]”hŒport”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjlubhŒÍ. The modes are USB (default), 1.5A, 3.0A as defined in USB Type-C specification, and “USB Power Deliveryâ€� when the power levels are negotiated with methods defined in USB Power Delivery specification.”…”�”}”(hjlh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:139: ./drivers/usb/typec/class.c”h´M' hj½ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjÜh²hh³Nh´Nubeh}”(h]”Œ notifications”ah ]”h"]”Œ notifications”ah$]”h&]”uh1hÄhj}h²hh³hÃh´K…ubhÅ)�”}”(hhh]”(hÊ)�”}”(hŒAlternate Modes”h]”hŒAlternate Modes”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhjœh²hh³hÃh´K�ubhë)�”}”(hX‹USB Type-C ports, partners and cable plugs may support Alternate Modes. Each Alternate Mode will have identifier called SVID, which is either a Standard ID given by USB-IF or vendor ID, and each supported SVID can have 1 - 6 modes. The class provides struct typec_mode_desc for describing individual mode of a SVID, and struct typec_altmode_desc which is a container for all the supported modes.”h]”hX‹USB Type-C ports, partners and cable plugs may support Alternate Modes. Each Alternate Mode will have identifier called SVID, which is either a Standard ID given by USB-IF or vendor ID, and each supported SVID can have 1 - 6 modes. The class provides struct typec_mode_desc for describing individual mode of a SVID, and struct typec_altmode_desc which is a container for all the supported modes.”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´K‘hjœh²hubhë)�”}”(hŒbPorts that support Alternate Modes need to register each SVID they support with the following API:”h]”hŒbPorts that support Alternate Modes need to register each SVID they support with the following API:”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´K—hjœh²hubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ(typec_port_register_altmode (C function)”Œc.typec_port_register_altmode”hNt”auh1j­hjœh²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒsstruct typec_altmode * typec_port_register_altmode (struct typec_port *port, const struct typec_altmode_desc *desc)”h]”jÊ)�”}”(hŒqstruct typec_altmode *typec_port_register_altmode(struct typec_port *port, const struct typec_altmode_desc *desc)”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjÞh²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:154: ./drivers/usb/typec/class.c”h´MK ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÞh²hh³jïh´MK ubh)�”}”(hhh]”jö)�”}”(hŒ typec_altmode”h]”hŒ typec_altmode”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjþubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jŒmodname”NŒ classname”Njj)�”}”j]”j)�”}”jŒtypec_port_register_altmode”sbŒc.typec_port_register_altmode”†”asbuh1hhjÞh²hh³jïh´MK ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÞh²hh³jïh´MK ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjÞh²hh³jïh´MK ubjB)�”}”(hŒtypec_port_register_altmode”h]”jö)�”}”(hjh]”hŒtypec_port_register_altmode”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj=ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhjÞh²hh³jïh´MK ubj_)�”}”(hŒ@(struct typec_port *port, const struct typec_altmode_desc *desc)”h]”(je)�”}”(hŒstruct typec_port *port”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjXubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjXubh)�”}”(hhh]”jö)�”}”(hŒ typec_port”h]”hŒ typec_port”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjwubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”j|Œmodname”NŒ classname”Njj)�”}”j]”jŒc.typec_port_register_altmode”†”asbuh1hhjXubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjXubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjXubjö)�”}”(hŒport”h]”hŒport”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjXubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhjTubje)�”}”(hŒ%const struct typec_altmode_desc *desc”h]”(jÐ)�”}”(hjÜh]”hŒconst”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjÈubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÈubjÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjÈubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÈubh)�”}”(hhh]”jö)�”}”(hŒtypec_altmode_desc”h]”hŒtypec_altmode_desc”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”j Œmodname”NŒ classname”Njj)�”}”j]”jŒc.typec_port_register_altmode”†”asbuh1hhjÈubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj# h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÈubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj1 h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjÈubjö)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hj> h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjÈubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhjTubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hjÞh²hh³jïh´MK ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphjÚh²hh³jïh´MK ubah}”(h]”jÕah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³jïh´MK hj×h²hubj})�”}”(hhh]”hë)�”}”(hŒ'Register USB Type-C Port Alternate Mode”h]”hŒ'Register USB Type-C Port Alternate Mode”…”�”}”(hjh h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:154: ./drivers/usb/typec/class.c”h´MK hje h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj×h²hh³jïh´MK ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžj€ jŸj€ j ‰j¡‰j¢‰uh1j¾h²hhjœh³Nh´Nubj¤)�”}”(hXb**Parameters** ``struct typec_port *port`` USB Type-C Port that supports the alternate mode ``const struct typec_altmode_desc *desc`` Description of the alternate mode **Description** This routine is used to register an alternate mode that **port** is capable of supporting. Returns handle to the alternate mode on success or ERR_PTR on failure.”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hjŠ h]”hŒ Parameters”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjˆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:154: ./drivers/usb/typec/class.c”h´MO hj„ ubjÄ)�”}”(hhh]”(jÉ)�”}”(hŒM``struct typec_port *port`` USB Type-C Port that supports the alternate mode ”h]”(jÏ)�”}”(hŒ``struct typec_port *port``”h]”jÕ)�”}”(hj© h]”hŒstruct typec_port *port”…”�”}”(hj« h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj§ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:154: ./drivers/usb/typec/class.c”h´ML hj£ ubjë)�”}”(hhh]”hë)�”}”(hŒ0USB Type-C Port that supports the alternate mode”h]”hŒ0USB Type-C Port that supports the alternate mode”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j¾ h´ML hj¿ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj£ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j¾ h´ML hj  ubjÉ)�”}”(hŒL``const struct typec_altmode_desc *desc`` Description of the alternate mode ”h]”(jÏ)�”}”(hŒ)``const struct typec_altmode_desc *desc``”h]”jÕ)�”}”(hjâ h]”hŒ%const struct typec_altmode_desc *desc”…”�”}”(hjä h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjà ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:154: ./drivers/usb/typec/class.c”h´MM hjÜ ubjë)�”}”(hhh]”hë)�”}”(hŒ!Description of the alternate mode”h]”hŒ!Description of the alternate mode”…”�”}”(hjû h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j÷ h´MM hjø ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjÜ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j÷ h´MM hj  ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhj„ ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hj!h]”hŒ Description”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:154: ./drivers/usb/typec/class.c”h´MO hj„ ubhë)�”}”(hŒZThis routine is used to register an alternate mode that **port** is capable of supporting.”h]”(hŒ8This routine is used to register an alternate mode that ”…”�”}”(hj3!h²hh³Nh´Nubj®)�”}”(hŒ**port**”h]”hŒport”…”�”}”(hj;!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj3!ubhŒ is capable of supporting.”…”�”}”(hj3!h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:154: ./drivers/usb/typec/class.c”h´MN hj„ ubhë)�”}”(hŒFReturns handle to the alternate mode on success or ERR_PTR on failure.”h]”hŒFReturns handle to the alternate mode on success or ERR_PTR on failure.”…”�”}”(hjT!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:154: ./drivers/usb/typec/class.c”h´MQ hj„ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjœh²hh³Nh´Nubhë)�”}”(hŒžIf a partner or cable plug provides a list of SVIDs as response to USB Power Delivery Structured VDM Discover SVIDs message, each SVID needs to be registered.”h]”hŒžIf a partner or cable plug provides a list of SVIDs as response to USB Power Delivery Structured VDM Discover SVIDs message, each SVID needs to be registered.”…”�”}”(hjj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´K�hjœh²hubhë)�”}”(hŒAPI for the partners:”h]”hŒAPI for the partners:”…”�”}”(hjx!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´K¡hjœh²hubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ+typec_partner_register_altmode (C function)”Œ c.typec_partner_register_altmode”hNt”auh1j­hjœh²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒ|struct typec_altmode * typec_partner_register_altmode (struct typec_partner *partner, const struct typec_altmode_desc *desc)”h]”jÊ)�”}”(hŒzstruct typec_altmode *typec_partner_register_altmode(struct typec_partner *partner, const struct typec_altmode_desc *desc)”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjŸ!h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj›!h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:163: ./drivers/usb/typec/class.c”h´Mubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­!h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj›!h²hh³j¬!h´Mubh)�”}”(hhh]”jö)�”}”(hŒ typec_altmode”h]”hŒ typec_altmode”…”�”}”(hj¾!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj»!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jÀ!Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”jŒtypec_partner_register_altmode”sbŒ c.typec_partner_register_altmode”†”asbuh1hhj›!h²hh³j¬!h´Mubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjß!h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj›!h²hh³j¬!h´Mubj1)�”}”(hj4h]”hŒ*”…”�”}”(hjí!h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj›!h²hh³j¬!h´MubjB)�”}”(hŒtypec_partner_register_altmode”h]”jö)�”}”(hjÜ!h]”hŒtypec_partner_register_altmode”…”�”}”(hjþ!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjú!ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhj›!h²hh³j¬!h´Mubj_)�”}”(hŒF(struct typec_partner *partner, const struct typec_altmode_desc *desc)”h]”(je)�”}”(hŒstruct typec_partner *partner”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj"ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&"h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj"ubh)�”}”(hhh]”jö)�”}”(hŒ typec_partner”h]”hŒ typec_partner”…”�”}”(hj7"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj4"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”j9"Œmodname”NŒ classname”Njj)�”}”j]”jÚ!Œ c.typec_partner_register_altmode”†”asbuh1hhj"ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjU"h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj"ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hjc"h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj"ubjö)�”}”(hŒpartner”h]”hŒpartner”…”�”}”(hjp"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj"ubje)�”}”(hŒ%const struct typec_altmode_desc *desc”h]”(jÐ)�”}”(hjÜh]”hŒconst”…”�”}”(hj‰"h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj…"ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–"h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj…"ubjÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hj¤"h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj…"ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj±"h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj…"ubh)�”}”(hhh]”jö)�”}”(hŒtypec_altmode_desc”h]”hŒtypec_altmode_desc”…”�”}”(hjÂ"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj¿"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jÄ"Œmodname”NŒ classname”Njj)�”}”j]”jÚ!Œ c.typec_partner_register_altmode”†”asbuh1hhj…"ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjà"h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj…"ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hjî"h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj…"ubjö)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hjû"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj…"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj"ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hj›!h²hh³j¬!h´Mubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphj—!h²hh³j¬!h´Mubah}”(h]”j’!ah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³j¬!h´Mhj”!h²hubj})�”}”(hhh]”hë)�”}”(hŒ*Register USB Type-C Partner Alternate Mode”h]”hŒ*Register USB Type-C Partner Alternate Mode”…”�”}”(hj%#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:163: ./drivers/usb/typec/class.c”h´Mhj"#h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj”!h²hh³j¬!h´Mubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžj=#jŸj=#j ‰j¡‰j¢‰uh1j¾h²hhjœh³Nh´Nubj¤)�”}”(hX**Parameters** ``struct typec_partner *partner`` USB Type-C Partner that supports the alternate mode ``const struct typec_altmode_desc *desc`` Description of the alternate mode **Description** This routine is used to register each alternate mode individually that **partner** has listed in response to Discover SVIDs command. The modes for a SVID listed in response to Discover Modes command need to be listed in an array in **desc**. Returns handle to the alternate mode on success or ERR_PTR on failure.”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hjG#h]”hŒ Parameters”…”�”}”(hjI#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjE#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:163: ./drivers/usb/typec/class.c”h´MhjA#ubjÄ)�”}”(hhh]”(jÉ)�”}”(hŒV``struct typec_partner *partner`` USB Type-C Partner that supports the alternate mode ”h]”(jÏ)�”}”(hŒ!``struct typec_partner *partner``”h]”jÕ)�”}”(hjf#h]”hŒstruct typec_partner *partner”…”�”}”(hjh#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjd#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:163: ./drivers/usb/typec/class.c”h´Mhj`#ubjë)�”}”(hhh]”hë)�”}”(hŒ3USB Type-C Partner that supports the alternate mode”h]”hŒ3USB Type-C Partner that supports the alternate mode”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j{#h´Mhj|#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj`#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j{#h´Mhj]#ubjÉ)�”}”(hŒL``const struct typec_altmode_desc *desc`` Description of the alternate mode ”h]”(jÏ)�”}”(hŒ)``const struct typec_altmode_desc *desc``”h]”jÕ)�”}”(hjŸ#h]”hŒ%const struct typec_altmode_desc *desc”…”�”}”(hj¡#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj�#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:163: ./drivers/usb/typec/class.c”h´Mhj™#ubjë)�”}”(hhh]”hë)�”}”(hŒ!Description of the alternate mode”h]”hŒ!Description of the alternate mode”…”�”}”(hj¸#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j´#h´Mhjµ#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj™#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j´#h´Mhj]#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjA#ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hjÚ#h]”hŒ Description”…”�”}”(hjÜ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjØ#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:163: ./drivers/usb/typec/class.c”h´MhjA#ubhë)�”}”(hŒñThis routine is used to register each alternate mode individually that **partner** has listed in response to Discover SVIDs command. The modes for a SVID listed in response to Discover Modes command need to be listed in an array in **desc**.”h]”(hŒGThis routine is used to register each alternate mode individually that ”…”�”}”(hjð#h²hh³Nh´Nubj®)�”}”(hŒ **partner**”h]”hŒpartner”…”�”}”(hjø#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjð#ubhŒ– has listed in response to Discover SVIDs command. The modes for a SVID listed in response to Discover Modes command need to be listed in an array in ”…”�”}”(hjð#h²hh³Nh´Nubj®)�”}”(hŒ**desc**”h]”hŒdesc”…”�”}”(hj $h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjð#ubhŒ.”…”�”}”(hjð#h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:163: ./drivers/usb/typec/class.c”h´MhjA#ubhë)�”}”(hŒFReturns handle to the alternate mode on success or ERR_PTR on failure.”h]”hŒFReturns handle to the alternate mode on success or ERR_PTR on failure.”…”�”}”(hj#$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:163: ./drivers/usb/typec/class.c”h´MhjA#ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjœh²hh³Nh´Nubhë)�”}”(hŒAPI for the Cable Plugs:”h]”hŒAPI for the Cable Plugs:”…”�”}”(hj9$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´K¦hjœh²hubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ(typec_plug_register_altmode (C function)”Œc.typec_plug_register_altmode”hNt”auh1j­hjœh²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒsstruct typec_altmode * typec_plug_register_altmode (struct typec_plug *plug, const struct typec_altmode_desc *desc)”h]”jÊ)�”}”(hŒqstruct typec_altmode *typec_plug_register_altmode(struct typec_plug *plug, const struct typec_altmode_desc *desc)”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hj`$h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj\$h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:168: ./drivers/usb/typec/class.c”h´Mûubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjn$h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj\$h²hh³jm$h´Mûubh)�”}”(hhh]”jö)�”}”(hŒ typec_altmode”h]”hŒ typec_altmode”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj|$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”j�$Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”jŒtypec_plug_register_altmode”sbŒc.typec_plug_register_altmode”†”asbuh1hhj\$h²hh³jm$h´Mûubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj $h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj\$h²hh³jm$h´Mûubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj®$h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj\$h²hh³jm$h´MûubjB)�”}”(hŒtypec_plug_register_altmode”h]”jö)�”}”(hj�$h]”hŒtypec_plug_register_altmode”…”�”}”(hj¿$h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj»$ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhj\$h²hh³jm$h´Mûubj_)�”}”(hŒ@(struct typec_plug *plug, const struct typec_altmode_desc *desc)”h]”(je)�”}”(hŒstruct typec_plug *plug”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjÚ$h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjÖ$ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjç$h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÖ$ubh)�”}”(hhh]”jö)�”}”(hŒ typec_plug”h]”hŒ typec_plug”…”�”}”(hjø$h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjõ$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jú$Œmodname”NŒ classname”Njj)�”}”j]”j›$Œc.typec_plug_register_altmode”†”asbuh1hhjÖ$ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÖ$ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj$%h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjÖ$ubjö)�”}”(hŒplug”h]”hŒplug”…”�”}”(hj1%h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjÖ$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhjÒ$ubje)�”}”(hŒ%const struct typec_altmode_desc *desc”h]”(jÐ)�”}”(hjÜh]”hŒconst”…”�”}”(hjJ%h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjF%ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjW%h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjF%ubjÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hje%h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjF%ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjr%h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjF%ubh)�”}”(hhh]”jö)�”}”(hŒtypec_altmode_desc”h]”hŒtypec_altmode_desc”…”�”}”(hjƒ%h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj€%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”j…%Œmodname”NŒ classname”Njj)�”}”j]”j›$Œc.typec_plug_register_altmode”†”asbuh1hhjF%ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡%h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjF%ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj¯%h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjF%ubjö)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hj¼%h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjF%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhjÒ$ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hj\$h²hh³jm$h´Mûubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphjX$h²hh³jm$h´Mûubah}”(h]”jS$ah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³jm$h´MûhjU$h²hubj})�”}”(hhh]”hë)�”}”(hŒ-Register USB Type-C Cable Plug Alternate Mode”h]”hŒ-Register USB Type-C Cable Plug Alternate Mode”…”�”}”(hjæ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:168: ./drivers/usb/typec/class.c”h´Mûhjã%h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hjU$h²hh³jm$h´Mûubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžjþ%jŸjþ%j ‰j¡‰j¢‰uh1j¾h²hhjœh³Nh´Nubj¤)�”}”(hX **Parameters** ``struct typec_plug *plug`` USB Type-C Cable Plug that supports the alternate mode ``const struct typec_altmode_desc *desc`` Description of the alternate mode **Description** This routine is used to register each alternate mode individually that **plug** has listed in response to Discover SVIDs command. The modes for a SVID that the plug lists in response to Discover Modes command need to be listed in an array in **desc**. Returns handle to the alternate mode on success or ERR_PTR on failure.”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hj&h]”hŒ Parameters”…”�”}”(hj &h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:168: ./drivers/usb/typec/class.c”h´Mÿhj&ubjÄ)�”}”(hhh]”(jÉ)�”}”(hŒS``struct typec_plug *plug`` USB Type-C Cable Plug that supports the alternate mode ”h]”(jÏ)�”}”(hŒ``struct typec_plug *plug``”h]”jÕ)�”}”(hj'&h]”hŒstruct typec_plug *plug”…”�”}”(hj)&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj%&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:168: ./drivers/usb/typec/class.c”h´Mühj!&ubjë)�”}”(hhh]”hë)�”}”(hŒ6USB Type-C Cable Plug that supports the alternate mode”h]”hŒ6USB Type-C Cable Plug that supports the alternate mode”…”�”}”(hj@&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j<&h´Mühj=&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj!&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j<&h´Mühj&ubjÉ)�”}”(hŒL``const struct typec_altmode_desc *desc`` Description of the alternate mode ”h]”(jÏ)�”}”(hŒ)``const struct typec_altmode_desc *desc``”h]”jÕ)�”}”(hj`&h]”hŒ%const struct typec_altmode_desc *desc”…”�”}”(hjb&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj^&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:168: ./drivers/usb/typec/class.c”h´MýhjZ&ubjë)�”}”(hhh]”hë)�”}”(hŒ!Description of the alternate mode”h]”hŒ!Description of the alternate mode”…”�”}”(hjy&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³ju&h´Mýhjv&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjZ&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³ju&h´Mýhj&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhj&ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hj›&h]”hŒ Description”…”�”}”(hj�&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj™&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:168: ./drivers/usb/typec/class.c”h´Mÿhj&ubhë)�”}”(hŒûThis routine is used to register each alternate mode individually that **plug** has listed in response to Discover SVIDs command. The modes for a SVID that the plug lists in response to Discover Modes command need to be listed in an array in **desc**.”h]”(hŒGThis routine is used to register each alternate mode individually that ”…”�”}”(hj±&h²hh³Nh´Nubj®)�”}”(hŒ**plug**”h]”hŒplug”…”�”}”(hj¹&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj±&ubhŒ£ has listed in response to Discover SVIDs command. The modes for a SVID that the plug lists in response to Discover Modes command need to be listed in an array in ”…”�”}”(hj±&h²hh³Nh´Nubj®)�”}”(hŒ**desc**”h]”hŒdesc”…”�”}”(hjË&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj±&ubhŒ.”…”�”}”(hj±&h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:168: ./drivers/usb/typec/class.c”h´Mþhj&ubhë)�”}”(hŒFReturns handle to the alternate mode on success or ERR_PTR on failure.”h]”hŒFReturns handle to the alternate mode on success or ERR_PTR on failure.”…”�”}”(hjä&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:168: ./drivers/usb/typec/class.c”h´Mhj&ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjœh²hh³Nh´Nubhë)�”}”(hŒóSo ports, partners and cable plugs will register the alternate modes with their own functions, but the registration will always return a handle to struct typec_altmode on success, or NULL. The unregistration will happen with the same function:”h]”hŒóSo ports, partners and cable plugs will register the alternate modes with their own functions, but the registration will always return a handle to struct typec_altmode on success, or NULL. The unregistration will happen with the same function:”…”�”}”(hjú&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´K«hjœh²hubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ%typec_unregister_altmode (C function)”Œc.typec_unregister_altmode”hNt”auh1j­hjœh²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒ:void typec_unregister_altmode (struct typec_altmode *adev)”h]”jÊ)�”}”(hŒ9void typec_unregister_altmode(struct typec_altmode *adev)”h]”(j±)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj!'h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj'h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:176: ./drivers/usb/typec/class.c”h´M½ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0'h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj'h²hh³j/'h´M½ubjB)�”}”(hŒtypec_unregister_altmode”h]”jö)�”}”(hŒtypec_unregister_altmode”h]”hŒtypec_unregister_altmode”…”�”}”(hjB'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj>'ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhj'h²hh³j/'h´M½ubj_)�”}”(hŒ(struct typec_altmode *adev)”h]”je)�”}”(hŒstruct typec_altmode *adev”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hj^'h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjZ'ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjk'h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjZ'ubh)�”}”(hhh]”jö)�”}”(hŒ typec_altmode”h]”hŒ typec_altmode”…”�”}”(hj|'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjy'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”j~'Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”jjD'sbŒc.typec_unregister_altmode”†”asbuh1hhjZ'ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœ'h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjZ'ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hjª'h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjZ'ubjö)�”}”(hŒadev”h]”hŒadev”…”�”}”(hj·'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjZ'ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhjV'ubah}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hj'h²hh³j/'h´M½ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphj'h²hh³j/'h´M½ubah}”(h]”j'ah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³j/'h´M½hj'h²hubj})�”}”(hhh]”hë)�”}”(hŒUnregister Alternate Mode”•2Òh]”hŒUnregister Alternate Mode”…”�”}”(hjá'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:176: ./drivers/usb/typec/class.c”h´M½hjÞ'h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj'h²hh³j/'h´M½ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžjù'jŸjù'j ‰j¡‰j¢‰uh1j¾h²hhjœh³Nh´Nubj¤)�”}”(hŒé**Parameters** ``struct typec_altmode *adev`` The alternate mode to be unregistered **Description** Unregister device created with typec_partner_register_altmode(), typec_plug_register_altmode() or typec_port_register_altmode().”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hj(h]”hŒ Parameters”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:176: ./drivers/usb/typec/class.c”h´MÁhjý'ubjÄ)�”}”(hhh]”jÉ)�”}”(hŒE``struct typec_altmode *adev`` The alternate mode to be unregistered ”h]”(jÏ)�”}”(hŒ``struct typec_altmode *adev``”h]”jÕ)�”}”(hj"(h]”hŒstruct typec_altmode *adev”…”�”}”(hj$(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj (ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:176: ./drivers/usb/typec/class.c”h´M¾hj(ubjë)�”}”(hhh]”hë)�”}”(hŒ%The alternate mode to be unregistered”h]”hŒ%The alternate mode to be unregistered”…”�”}”(hj;(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j7(h´M¾hj8(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j7(h´M¾hj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjý'ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hj](h]”hŒ Description”…”�”}”(hj_(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj[(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:176: ./drivers/usb/typec/class.c”h´MÀhjý'ubhë)�”}”(hŒ€Unregister device created with typec_partner_register_altmode(), typec_plug_register_altmode() or typec_port_register_altmode().”h]”hŒ€Unregister device created with typec_partner_register_altmode(), typec_plug_register_altmode() or typec_port_register_altmode().”…”�”}”(hjs(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:176: ./drivers/usb/typec/class.c”h´M¿hjý'ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjœh²hh³Nh´Nubhë)�”}”(hŒtIf a partner or cable plug enters or exits a mode, the port driver needs to notify the class with the following API:”h]”hŒtIf a partner or cable plug enters or exits a mode, the port driver needs to notify the class with the following API:”…”�”}”(hj‰(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´K³hjœh²hubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ(typec_altmode_update_active (C function)”Œc.typec_altmode_update_active”hNt”auh1j­hjœh²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒJvoid typec_altmode_update_active (struct typec_altmode *adev, bool active)”h]”jÊ)�”}”(hŒIvoid typec_altmode_update_active(struct typec_altmode *adev, bool active)”h]”(j±)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj°(h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj¬(h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:182: ./drivers/usb/typec/class.c”h´M%ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¿(h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj¬(h²hh³j¾(h´M%ubjB)�”}”(hŒtypec_altmode_update_active”h]”jö)�”}”(hŒtypec_altmode_update_active”h]”hŒtypec_altmode_update_active”…”�”}”(hjÑ(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjÍ(ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhj¬(h²hh³j¾(h´M%ubj_)�”}”(hŒ)(struct typec_altmode *adev, bool active)”h]”(je)�”}”(hŒstruct typec_altmode *adev”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjí(h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjé(ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjú(h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjé(ubh)�”}”(hhh]”jö)�”}”(hŒ typec_altmode”h]”hŒ typec_altmode”…”�”}”(hj )h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”j )Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”jjÓ(sbŒc.typec_altmode_update_active”†”asbuh1hhjé(ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+)h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjé(ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj9)h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjé(ubjö)�”}”(hŒadev”h]”hŒadev”…”�”}”(hjF)h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjé(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhjå(ubje)�”}”(hŒ bool active”h]”(j±)�”}”(hŒbool”h]”hŒbool”…”�”}”(hj_)h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj[)ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjm)h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj[)ubjö)�”}”(hŒactive”h]”hŒactive”…”�”}”(hj{)h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj[)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhjå(ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hj¬(h²hh³j¾(h´M%ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphj¨(h²hh³j¾(h´M%ubah}”(h]”j£(ah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³j¾(h´M%hj¥(h²hubj})�”}”(hhh]”hë)�”}”(hŒReport Enter/Exit mode”h]”hŒReport Enter/Exit mode”…”�”}”(hj¥)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:182: ./drivers/usb/typec/class.c”h´M%hj¢)h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj¥(h²hh³j¾(h´M%ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžj½)jŸj½)j ‰j¡‰j¢‰uh1j¾h²hhjœh³Nh´Nubj¤)�”}”(hX&**Parameters** ``struct typec_altmode *adev`` Handle to the alternate mode ``bool active`` True when the mode has been entered **Description** If a partner or cable plug executes Enter/Exit Mode command successfully, the drivers use this routine to report the updated state of the mode.”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hjÇ)h]”hŒ Parameters”…”�”}”(hjÉ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjÅ)ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:182: ./drivers/usb/typec/class.c”h´M)hjÁ)ubjÄ)�”}”(hhh]”(jÉ)�”}”(hŒ<``struct typec_altmode *adev`` Handle to the alternate mode ”h]”(jÏ)�”}”(hŒ``struct typec_altmode *adev``”h]”jÕ)�”}”(hjæ)h]”hŒstruct typec_altmode *adev”…”�”}”(hjè)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjä)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:182: ./drivers/usb/typec/class.c”h´M&hjà)ubjë)�”}”(hhh]”hë)�”}”(hŒHandle to the alternate mode”h]”hŒHandle to the alternate mode”…”�”}”(hjÿ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³jû)h´M&hjü)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjà)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³jû)h´M&hjÝ)ubjÉ)�”}”(hŒ4``bool active`` True when the mode has been entered ”h]”(jÏ)�”}”(hŒ``bool active``”h]”jÕ)�”}”(hj*h]”hŒ bool active”…”�”}”(hj!*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:182: ./drivers/usb/typec/class.c”h´M'hj*ubjë)�”}”(hhh]”hë)�”}”(hŒ#True when the mode has been entered”h]”hŒ#True when the mode has been entered”…”�”}”(hj8*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j4*h´M'hj5*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j4*h´M'hjÝ)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjÁ)ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hjZ*h]”hŒ Description”…”�”}”(hj\*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjX*ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:182: ./drivers/usb/typec/class.c”h´M)hjÁ)ubhë)�”}”(hŒ�If a partner or cable plug executes Enter/Exit Mode command successfully, the drivers use this routine to report the updated state of the mode.”h]”hŒ�If a partner or cable plug executes Enter/Exit Mode command successfully, the drivers use this routine to report the updated state of the mode.”…”�”}”(hjp*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:182: ./drivers/usb/typec/class.c”h´M(hjÁ)ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjœh²hh³Nh´Nubeh}”(h]”Œalternate-modes”ah ]”h"]”Œalternate modes”ah$]”h&]”uh1hÄhj}h²hh³hÃh´K�ubhÅ)�”}”(hhh]”(hÊ)�”}”(hŒ"Multiplexer/DeMultiplexer Switches”h]”hŒ"Multiplexer/DeMultiplexer Switches”…”�”}”(hj‘*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhjŽ*h²hh³hÃh´Kºubhë)�”}”(hXÇUSB Type-C connectors may have one or more mux/demux switches behind them. Since the plugs can be inserted right-side-up or upside-down, a switch is needed to route the correct data pairs from the connector to the USB controllers. If Alternate or Accessory Modes are supported, another switch is needed that can route the pins on the connector to some other component besides USB. USB Type-C Connector Class supplies an API for registering those switches.”h]”hXÇUSB Type-C connectors may have one or more mux/demux switches behind them. Since the plugs can be inserted right-side-up or upside-down, a switch is needed to route the correct data pairs from the connector to the USB controllers. If Alternate or Accessory Modes are supported, another switch is needed that can route the pins on the connector to some other component besides USB. USB Type-C Connector Class supplies an API for registering those switches.”…”�”}”(hjŸ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´K¼hjŽ*h²hubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ"typec_switch_register (C function)”Œc.typec_switch_register”hNt”auh1j­hjŽ*h²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒmstruct typec_switch_dev * typec_switch_register (struct device *parent, const struct typec_switch_desc *desc)”h]”jÊ)�”}”(hŒkstruct typec_switch_dev *typec_switch_register(struct device *parent, const struct typec_switch_desc *desc)”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjÆ*h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjÂ*h²hh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´K§ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔ*h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÂ*h²hh³jÓ*h´K§ubh)�”}”(hhh]”jö)�”}”(hŒtypec_switch_dev”h]”hŒtypec_switch_dev”…”�”}”(hjå*h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjâ*ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jç*Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”jŒtypec_switch_register”sbŒc.typec_switch_register”†”asbuh1hhjÂ*h²hh³jÓ*h´K§ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÂ*h²hh³jÓ*h´K§ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjÂ*h²hh³jÓ*h´K§ubjB)�”}”(hŒtypec_switch_register”h]”jö)�”}”(hj+h]”hŒtypec_switch_register”…”�”}”(hj%+h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj!+ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhjÂ*h²hh³jÓ*h´K§ubj_)�”}”(hŒ=(struct device *parent, const struct typec_switch_desc *desc)”h]”(je)�”}”(hŒstruct device *parent”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hj@+h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj<+ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjM+h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj<+ubh)�”}”(hhh]”jö)�”}”(hŒdevice”h]”hŒdevice”…”�”}”(hj^+h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj[+ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”j`+Œmodname”NŒ classname”Njj)�”}”j]”j+Œc.typec_switch_register”†”asbuh1hhj<+ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|+h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj<+ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hjŠ+h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj<+ubjö)�”}”(hŒparent”h]”hŒparent”…”�”}”(hj—+h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj<+ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj8+ubje)�”}”(hŒ$const struct typec_switch_desc *desc”h]”(jÐ)�”}”(hjÜh]”hŒconst”…”�”}”(hj°+h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj¬+ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½+h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj¬+ubjÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjË+h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj¬+ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØ+h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj¬+ubh)�”}”(hhh]”jö)�”}”(hŒtypec_switch_desc”h]”hŒtypec_switch_desc”…”�”}”(hjé+h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjæ+ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jë+Œmodname”NŒ classname”Njj)�”}”j]”j+Œc.typec_switch_register”†”asbuh1hhj¬+ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj¬+ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj¬+ubjö)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hj",h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj¬+ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj8+ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hjÂ*h²hh³jÓ*h´K§ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphj¾*h²hh³jÓ*h´K§ubah}”(h]”j¹*ah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³jÓ*h´K§hj»*h²hubj})�”}”(hhh]”hë)�”}”(hŒ&Register USB Type-C orientation switch”h]”hŒ&Register USB Type-C orientation switch”…”�”}”(hjL,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´K§hjI,h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj»*h²hh³jÓ*h´K§ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžjd,jŸjd,j ‰j¡‰j¢‰uh1j¾h²hhjŽ*h³Nh´Nubj¤)�”}”(hXˆ**Parameters** ``struct device *parent`` Parent device ``const struct typec_switch_desc *desc`` Orientation switch description **Description** This function registers a switch that can be used for routing the correct data pairs depending on the cable plug orientation from the USB Type-C connector to the USB controllers. USB Type-C plugs can be inserted right-side-up or upside-down.”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hjn,h]”hŒ Parameters”…”�”}”(hjp,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjl,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´K«hjh,ubjÄ)�”}”(hhh]”(jÉ)�”}”(hŒ(``struct device *parent`` Parent device ”h]”(jÏ)�”}”(hŒ``struct device *parent``”h]”jÕ)�”}”(hj�,h]”hŒstruct device *parent”…”�”}”(hj�,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj‹,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´K¨hj‡,ubjë)�”}”(hhh]”hë)�”}”(hŒ Parent device”h]”hŒ Parent device”…”�”}”(hj¦,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j¢,h´K¨hj£,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj‡,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j¢,h´K¨hj„,ubjÉ)�”}”(hŒH``const struct typec_switch_desc *desc`` Orientation switch description ”h]”(jÏ)�”}”(hŒ(``const struct typec_switch_desc *desc``”h]”jÕ)�”}”(hjÆ,h]”hŒ$const struct typec_switch_desc *desc”…”�”}”(hjÈ,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjÄ,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´K©hjÀ,ubjë)�”}”(hhh]”hë)�”}”(hŒOrientation switch description”h]”hŒOrientation switch description”…”�”}”(hjß,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³jÛ,h´K©hjÜ,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjÀ,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³jÛ,h´K©hj„,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhjh,ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hj-h]”hŒ Description”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjÿ,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´K«hjh,ubhë)�”}”(hŒñThis function registers a switch that can be used for routing the correct data pairs depending on the cable plug orientation from the USB Type-C connector to the USB controllers. USB Type-C plugs can be inserted right-side-up or upside-down.”h]”hŒñThis function registers a switch that can be used for routing the correct data pairs depending on the cable plug orientation from the USB Type-C connector to the USB controllers. USB Type-C plugs can be inserted right-side-up or upside-down.”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´Kªhjh,ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjŽ*h²hh³Nh´Nubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ$typec_switch_unregister (C function)”Œc.typec_switch_unregister”hNt”auh1j­hjŽ*h²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒ>void typec_switch_unregister (struct typec_switch_dev *sw_dev)”h]”jÊ)�”}”(hŒ=void typec_switch_unregister(struct typec_switch_dev *sw_dev)”h]”(j±)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjF-h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjB-h²hh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´Kîubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjU-h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjB-h²hh³jT-h´KîubjB)�”}”(hŒtypec_switch_unregister”h]”jö)�”}”(hŒtypec_switch_unregister”h]”hŒtypec_switch_unregister”…”�”}”(hjg-h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjc-ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhjB-h²hh³jT-h´Kîubj_)�”}”(hŒ!(struct typec_switch_dev *sw_dev)”h]”je)�”}”(hŒstruct typec_switch_dev *sw_dev”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjƒ-h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj-ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�-h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj-ubh)�”}”(hhh]”jö)�”}”(hŒtypec_switch_dev”h]”hŒtypec_switch_dev”…”�”}”(hj¡-h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjž-ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”j£-Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”jji-sbŒc.typec_switch_unregister”†”asbuh1hhj-ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁ-h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj-ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hjÏ-h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj-ubjö)�”}”(hŒsw_dev”h]”hŒsw_dev”…”�”}”(hjÜ-h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj-ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj{-ubah}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hjB-h²hh³jT-h´Kîubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphj>-h²hh³jT-h´Kîubah}”(h]”j9-ah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³jT-h´Kîhj;-h²hubj})�”}”(hhh]”hë)�”}”(hŒ(Unregister USB Type-C orientation switch”h]”hŒ(Unregister USB Type-C orientation switch”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´Kîhj.h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj;-h²hh³jT-h´Kîubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžj.jŸj.j ‰j¡‰j¢‰uh1j¾h²hhjŽ*h³Nh´Nubj¤)�”}”(hŒ©**Parameters** ``struct typec_switch_dev *sw_dev`` USB Type-C orientation switch **Description** Unregister switch that was registered with typec_switch_register().”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hj(.h]”hŒ Parameters”…”�”}”(hj*.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj&.ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´Kòhj".ubjÄ)�”}”(hhh]”jÉ)�”}”(hŒB``struct typec_switch_dev *sw_dev`` USB Type-C orientation switch ”h]”(jÏ)�”}”(hŒ#``struct typec_switch_dev *sw_dev``”h]”jÕ)�”}”(hjG.h]”hŒstruct typec_switch_dev *sw_dev”…”�”}”(hjI.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjE.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´KïhjA.ubjë)�”}”(hhh]”hë)�”}”(hŒUSB Type-C orientation switch”h]”hŒUSB Type-C orientation switch”…”�”}”(hj`.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j\.h´Kïhj].ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjA.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j\.h´Kïhj>.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÃhj".ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hj‚.h]”hŒ Description”…”�”}”(hj„.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj€.ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´Kñhj".ubhë)�”}”(hŒCUnregister switch that was registered with typec_switch_register().”h]”hŒCUnregister switch that was registered with typec_switch_register().”…”�”}”(hj˜.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´Kðhj".ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjŽ*h²hh³Nh´Nubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒtypec_mux_register (C function)”Œc.typec_mux_register”hNt”auh1j­hjŽ*h²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒdstruct typec_mux_dev * typec_mux_register (struct device *parent, const struct typec_mux_desc *desc)”h]”jÊ)�”}”(hŒbstruct typec_mux_dev *typec_mux_register(struct device *parent, const struct typec_mux_desc *desc)”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjÇ.h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjÃ.h²hh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´M©ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÕ.h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÃ.h²hh³jÔ.h´M©ubh)�”}”(hhh]”jö)�”}”(hŒ typec_mux_dev”h]”hŒ typec_mux_dev”…”�”}”(hjæ.h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjã.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jè.Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”jŒtypec_mux_register”sbŒc.typec_mux_register”†”asbuh1hhjÃ.h²hh³jÔ.h´M©ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjÃ.h²hh³jÔ.h´M©ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjÃ.h²hh³jÔ.h´M©ubjB)�”}”(hŒtypec_mux_register”h]”jö)�”}”(hj/h]”hŒtypec_mux_register”…”�”}”(hj&/h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj"/ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhjÃ.h²hh³jÔ.h´M©ubj_)�”}”(hŒ:(struct device *parent, const struct typec_mux_desc *desc)”h]”(je)�”}”(hŒstruct device *parent”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjA/h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj=/ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjN/h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj=/ubh)�”}”(hhh]”jö)�”}”(hŒdevice”h]”hŒdevice”…”�”}”(hj_/h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj\/ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”ja/Œmodname”NŒ classname”Njj)�”}”j]”j/Œc.typec_mux_register”†”asbuh1hhj=/ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}/h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj=/ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj‹/h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj=/ubjö)�”}”(hŒparent”h]”hŒparent”…”�”}”(hj˜/h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj=/ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj9/ubje)�”}”(hŒ!const struct typec_mux_desc *desc”h]”(jÐ)�”}”(hjÜh]”hŒconst”…”�”}”(hj±/h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj­/ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¾/h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj­/ubjÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjÌ/h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj­/ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙ/h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj­/ubh)�”}”(hhh]”jö)�”}”(hŒtypec_mux_desc”h]”hŒtypec_mux_desc”…”�”}”(hjê/h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjç/ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jì/Œmodname”NŒ classname”Njj)�”}”j]”j/Œc.typec_mux_register”†”asbuh1hhj­/ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj­/ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj­/ubjö)�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hj#0h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj­/ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj9/ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hjÃ.h²hh³jÔ.h´M©ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphj¿.h²hh³jÔ.h´M©ubah}”(h]”jº.ah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³jÔ.h´M©hj¼.h²hubj})�”}”(hhh]”hë)�”}”(hŒ,Register Multiplexer routing USB Type-C pins”h]”hŒ,Register Multiplexer routing USB Type-C pins”…”�”}”(hjM0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´M©hjJ0h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj¼.h²hh³jÔ.h´M©ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžje0jŸje0j ‰j¡‰j¢‰uh1j¾h²hhjŽ*h³Nh´Nubj¤)�”}”(hX¦**Parameters** ``struct device *parent`` Parent device ``const struct typec_mux_desc *desc`` Multiplexer description **Description** USB Type-C connectors can be used for alternate modes of operation besides USB when Accessory/Alternate Modes are supported. With some of those modes, the pins on the connector need to be reconfigured. This function registers multiplexer switches routing the pins on the connector.”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hjo0h]”hŒ Parameters”…”�”}”(hjq0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjm0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´M­hji0ubjÄ)�”}”(hhh]”(jÉ)�”}”(hŒ(``struct device *parent`` Parent device ”h]”(jÏ)�”}”(hŒ``struct device *parent``”h]”jÕ)�”}”(hjŽ0h]”hŒstruct device *parent”…”�”}”(hj�0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjŒ0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´Mªhjˆ0ubjë)�”}”(hhh]”hë)�”}”(hŒ Parent device”h]”hŒ Parent device”…”�”}”(hj§0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j£0h´Mªhj¤0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjˆ0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j£0h´Mªhj…0ubjÉ)�”}”(hŒ>``const struct typec_mux_desc *desc`` Multiplexer description ”h]”(jÏ)�”}”(hŒ%``const struct typec_mux_desc *desc``”h]”jÕ)�”}”(hjÇ0h]”hŒ!const struct typec_mux_desc *desc”…”�”}”(hjÉ0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjÅ0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´M«hjÁ0ubjë)�”}”(hhh]”hë)�”}”(hŒMultiplexer description”h]”hŒMultiplexer description”…”�”}”(hjà0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³jÜ0h´M«hjÝ0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjÁ0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³jÜ0h´M«hj…0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhji0ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hj1h]”hŒ Description”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´M­hji0ubhë)�”}”(hXUSB Type-C connectors can be used for alternate modes of operation besides USB when Accessory/Alternate Modes are supported. With some of those modes, the pins on the connector need to be reconfigured. This function registers multiplexer switches routing the pins on the connector.”h]”hXUSB Type-C connectors can be used for alternate modes of operation besides USB when Accessory/Alternate Modes are supported. With some of those modes, the pins on the connector need to be reconfigured. This function registers multiplexer switches routing the pins on the connector.”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´M¬hji0ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjŽ*h²hh³Nh´Nubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ!typec_mux_unregister (C function)”Œc.typec_mux_unregister”hNt”auh1j­hjŽ*h²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒ9void typec_mux_unregister (struct typec_mux_dev *mux_dev)”h]”jÊ)�”}”(hŒ8void typec_mux_unregister(struct typec_mux_dev *mux_dev)”h]”(j±)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjG1h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjC1h²hh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´MÙubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjV1h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjC1h²hh³jU1h´MÙubjB)�”}”(hŒtypec_mux_unregister”h]”jö)�”}”(hŒtypec_mux_unregister”h]”hŒtypec_mux_unregister”…”�”}”(hjh1h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjd1ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhjC1h²hh³jU1h´MÙubj_)�”}”(hŒ(struct typec_mux_dev *mux_dev)”h]”je)�”}”(hŒstruct typec_mux_dev *mux_dev”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hj„1h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj€1ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘1h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj€1ubh)�”}”(hhh]”jö)�”}”(hŒ typec_mux_dev”h]”hŒ typec_mux_dev”…”�”}”(hj¢1h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjŸ1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”j¤1Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”jjj1sbŒc.typec_mux_unregister”†”asbuh1hhj€1ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÂ1h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj€1ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hjÐ1h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj€1ubjö)�”}”(hŒmux_dev”h]”hŒmux_dev”…”�”}”(hjÝ1h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj€1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj|1ubah}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hjC1h²hh³jU1h´MÙubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphj?1h²hh³jU1h´MÙubah}”(h]”j:1ah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³jU1h´MÙhj<1h²hubj})�”}”(hhh]”hë)�”}”(hŒUnregister Multiplexer Switch”h]”hŒUnregister Multiplexer Switch”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´MÙhj2h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj<1h²hh³jU1h´MÙubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžj2jŸj2j ‰j¡‰j¢‰uh1j¾h²hhjŽ*h³Nh´Nubj¤)�”}”(hŒ²**Parameters** ``struct typec_mux_dev *mux_dev`` USB Type-C Connector Multiplexer/DeMultiplexer **Description** Unregister mux that was registered with typec_mux_register().”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hj)2h]”hŒ Parameters”…”�”}”(hj+2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj'2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´MÝhj#2ubjÄ)�”}”(hhh]”jÉ)�”}”(hŒQ``struct typec_mux_dev *mux_dev`` USB Type-C Connector Multiplexer/DeMultiplexer ”h]”(jÏ)�”}”(hŒ!``struct typec_mux_dev *mux_dev``”h]”jÕ)�”}”(hjH2h]”hŒstruct typec_mux_dev *mux_dev”…”�”}”(hjJ2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjF2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´MÚhjB2ubjë)�”}”(hhh]”hë)�”}”(hŒ.USB Type-C Connector Multiplexer/DeMultiplexer”h]”hŒ.USB Type-C Connector Multiplexer/DeMultiplexer”…”�”}”(hja2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j]2h´MÚhj^2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjB2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j]2h´MÚhj?2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÃhj#2ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hjƒ2h]”hŒ Description”…”�”}”(hj…2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj�2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´MÜhj#2ubhë)�”}”(hŒ=Unregister mux that was registered with typec_mux_register().”h]”hŒ=Unregister mux that was registered with typec_mux_register().”…”�”}”(hj™2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ]/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:195: ./drivers/usb/typec/mux.c”h´MÛhj#2ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjŽ*h²hh³Nh´Nubhë)�”}”(hX6In most cases the same physical mux will handle both the orientation and mode. However, as the port drivers will be responsible for the orientation, and the alternate mode drivers for the mode, the two are always separated into their own logical components: "mux" for the mode and "switch" for the orientation.”h]”hX>In most cases the same physical mux will handle both the orientation and mode. However, as the port drivers will be responsible for the orientation, and the alternate mode drivers for the mode, the two are always separated into their own logical components: “muxâ€� for the mode and “switchâ€� for the orientation.”…”�”}”(hj¯2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´KÆhjŽ*h²hubhë)�”}”(hŒ©When a port is registered, USB Type-C Connector Class requests both the mux and the switch for the port. The drivers can then use the following API for controlling them:”h]”hŒ©When a port is registered, USB Type-C Connector Class requests both the mux and the switch for the port. The drivers can then use the following API for controlling them:”…”�”}”(hj½2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´KËhjŽ*h²hubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒ"typec_set_orientation (C function)”Œc.typec_set_orientation”hNt”auh1j­hjŽ*h²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒWint typec_set_orientation (struct typec_port *port, enum typec_orientation orientation)”h]”jÊ)�”}”(hŒVint typec_set_orientation(struct typec_port *port, enum typec_orientation orientation)”h]”(j±)�”}”(hŒint”h]”hŒint”…”�”}”(hjä2h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hjà2h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:207: ./drivers/usb/typec/class.c”h´M˜ ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjó2h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjà2h²hh³jò2h´M˜ ubjB)�”}”(hŒtypec_set_orientation”h]”jö)�”}”(hŒtypec_set_orientation”h]”hŒtypec_set_orientation”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj3ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhjà2h²hh³jò2h´M˜ ubj_)�”}”(hŒ=(struct typec_port *port, enum typec_orientation orientation)”h]”(je)�”}”(hŒstruct typec_port *port”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hj!3h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj3ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.3h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj3ubh)�”}”(hhh]”jö)�”}”(hŒ typec_port”h]”hŒ typec_port”…”�”}”(hj?3h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj<3ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jA3Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”jj3sbŒc.typec_set_orientation”†”asbuh1hhj3ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_3h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj3ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hjm3h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hj3ubjö)�”}”(hŒport”h]”hŒport”…”�”}”(hjz3h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj3ubje)�”}”(hŒ"enum typec_orientation orientation”h]”(jÐ)�”}”(hjÅh]”hŒenum”…”�”}”(hj“3h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhj�3ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj 3h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj�3ubh)�”}”(hhh]”jö)�”}”(hŒtypec_orientation”h]”hŒtypec_orientation”…”�”}”(hj±3h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj®3ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”j³3Œmodname”NŒ classname”Njj)�”}”j]”j[3Œc.typec_set_orientation”†”asbuh1hhj�3ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏ3h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj�3ubjö)�”}”(hŒ orientation”h]”hŒ orientation”…”�”}”(hjÝ3h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj�3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhj3ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hjà2h²hh³jò2h´M˜ ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphjÜ2h²hh³jò2h´M˜ ubah}”(h]”j×2ah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³jò2h´M˜ hjÙ2h²hubj})�”}”(hhh]”hë)�”}”(hŒ%Set USB Type-C cable plug orientation”h]”hŒ%Set USB Type-C cable plug orientation”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:207: ./drivers/usb/typec/class.c”h´M˜ hj4h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hjÙ2h²hh³jò2h´M˜ ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžj4jŸj4j ‰j¡‰j¢‰uh1j¾h²hhjŽ*h³Nh´Nubj¤)�”}”(hŒÄ**Parameters** ``struct typec_port *port`` USB Type-C Port ``enum typec_orientation orientation`` USB Type-C cable plug orientation **Description** Set cable plug orientation for **port**.”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hj)4h]”hŒ Parameters”…”�”}”(hj+4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj'4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:207: ./drivers/usb/typec/class.c”h´Mœ hj#4ubjÄ)�”}”(hhh]”(jÉ)�”}”(hŒ,``struct typec_port *port`` USB Type-C Port ”h]”(jÏ)�”}”(hŒ``struct typec_port *port``”h]”jÕ)�”}”(hjH4h]”hŒstruct typec_port *port”…”�”}”(hjJ4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjF4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:207: ./drivers/usb/typec/class.c”h´M™ hjB4ubjë)�”}”(hhh]”hë)�”}”(hŒUSB Type-C Port”h]”hŒUSB Type-C Port”…”�”}”(hja4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j]4h´M™ hj^4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjB4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j]4h´M™ hj?4ubjÉ)�”}”(hŒI``enum typec_orientation orientation`` USB Type-C cable plug orientation ”h]”(jÏ)�”}”(hŒ&``enum typec_orientation orientation``”h]”jÕ)�”}”(hj�4h]”hŒ"enum typec_orientation orientation”…”�”}”(hjƒ4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:207: ./drivers/usb/typec/class.c”h´Mš hj{4ubjë)�”}”(hhh]”hë)�”}”(hŒ!USB Type-C cable plug orientation”h]”hŒ!USB Type-C cable plug orientation”…”�”}”(hjš4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j–4h´Mš hj—4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj{4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j–4h´Mš hj?4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhj#4ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hj¼4h]”hŒ Description”…”�”}”(hj¾4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjº4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:207: ./drivers/usb/typec/class.c”h´Mœ hj#4ubhë)�”}”(hŒ(Set cable plug orientation for **port**.”h]”(hŒSet cable plug orientation for ”…”�”}”(hjÒ4h²hh³Nh´Nubj®)�”}”(hŒ**port**”h]”hŒport”…”�”}”(hjÚ4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjÒ4ubhŒ.”…”�”}”(hjÒ4h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:207: ./drivers/usb/typec/class.c”h´M› hj#4ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjŽ*h²hh³Nh´Nubj®)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jºŒtypec_set_mode (C function)”Œc.typec_set_mode”hNt”auh1j­hjŽ*h²hh³Nh´Nubj¿)�”}”(hhh]”(jÄ)�”}”(hŒ6int typec_set_mode (struct typec_port *port, int mode)”h]”jÊ)�”}”(hŒ5int typec_set_mode(struct typec_port *port, int mode)”h]”(j±)�”}”(hŒint”h]”hŒint”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj5h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:207: ./drivers/usb/typec/class.c”h´M¼ ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"5h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj5h²hh³j!5h´M¼ ubjB)�”}”(hŒtypec_set_mode”h]”jö)�”}”(hŒtypec_set_mode”h]”hŒtypec_set_mode”…”�”}”(hj45h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj05ubah}”(h]”h ]”(jWjXeh"]”h$]”h&]”j\j]uh1jAhj5h²hh³j!5h´M¼ ubj_)�”}”(hŒ#(struct typec_port *port, int mode)”h]”(je)�”}”(hŒstruct typec_port *port”h]”(jÐ)�”}”(hjÓh]”hŒstruct”…”�”}”(hjP5h²hh³Nh´Nubah}”(h]”h ]”jÜah"]”h$]”h&]”uh1jÏhjL5ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]5h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjL5ubh)�”}”(hhh]”jö)�”}”(hŒ typec_port”h]”hŒ typec_port”…”�”}”(hjn5h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjk5ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”jŒ reftarget”jp5Œmodname”NŒ classname”Njj)�”}”j]”j)�”}”jj65sbŒc.typec_set_mode”†”asbuh1hhjL5ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽ5h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhjL5ubj1)�”}”(hj4h]”hŒ*”…”�”}”(hjœ5h²hh³Nh´Nubah}”(h]”h ]”j=ah"]”h$]”h&]”uh1j0hjL5ubjö)�”}”(hŒport”h]”hŒport”…”�”}”(hj©5h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjL5ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhjH5ubje)�”}”(hŒint mode”h]”(j±)�”}”(hŒint”h]”hŒint”…”�”}”(hjÂ5h²hh³Nh´Nubah}”(h]”h ]”j½ah"]”h$]”h&]”uh1j°hj¾5ubjâ)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐ5h²hh³Nh´Nubah}”(h]”h ]”jîah"]”h$]”h&]”uh1jáhj¾5ubjö)�”}”(hŒmode”h]”hŒmode”…”�”}”(hjÞ5h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj¾5ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj\j]uh1jdhjH5ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j^hj5h²hh³j!5h´M¼ ubeh}”(h]”h ]”h"]”h$]”h&]”j\j]jnˆuh1jÉjojphj 5h²hh³j!5h´M¼ ubah}”(h]”j5ah ]”(jtjueh"]”h$]”h&]”jyˆjz)j{huh1jÃh³j!5h´M¼ hj5h²hubj})�”}”(hhh]”hë)�”}”(hŒ.Set mode of operation for USB Type-C connector”h]”hŒ.Set mode of operation for USB Type-C connector”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:207: ./drivers/usb/typec/class.c”h´M¼ hj6h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j|hj5h²hh³j!5h´M¼ ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”j�j jžj 6jŸj 6j ‰j¡‰j¢‰uh1j¾h²hhjŽ*h³Nh´Nubj¤)�”}”(hŒü**Parameters** ``struct typec_port *port`` USB Type-C connector ``int mode`` Accessory Mode, USB Operation or Safe State **Description** Configure **port** for Accessory Mode **mode**. This function will configure the muxes needed for **mode**.”h]”(hë)�”}”(hŒ**Parameters**”h]”j®)�”}”(hj*6h]”hŒ Parameters”…”�”}”(hj,6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj(6ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:207: ./drivers/usb/typec/class.c”h´MÀ hj$6ubjÄ)�”}”(hhh]”(jÉ)�”}”(hŒ1``struct typec_port *port`` USB Type-C connector ”h]”(jÏ)�”}”(hŒ``struct typec_port *port``”h]”jÕ)�”}”(hjI6h]”hŒstruct typec_port *port”…”�”}”(hjK6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhjG6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:207: ./drivers/usb/typec/class.c”h´M½ hjC6ubjë)�”}”(hhh]”hë)�”}”(hŒUSB Type-C connector”h]”hŒUSB Type-C connector”…”�”}”(hjb6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j^6h´M½ hj_6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhjC6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j^6h´M½ hj@6ubjÉ)�”}”(hŒ9``int mode`` Accessory Mode, USB Operation or Safe State ”h]”(jÏ)�”}”(hŒ ``int mode``”h]”jÕ)�”}”(hj‚6h]”hŒint mode”…”�”}”(hj„6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÔhj€6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÎh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:207: ./drivers/usb/typec/class.c”h´M¾ hj|6ubjë)�”}”(hhh]”hë)�”}”(hŒ+Accessory Mode, USB Operation or Safe State”h]”hŒ+Accessory Mode, USB Operation or Safe State”…”�”}”(hj›6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³j—6h´M¾ hj˜6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jêhj|6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÈh³j—6h´M¾ hj@6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÃhj$6ubhë)�”}”(hŒ**Description**”h]”j®)�”}”(hj½6h]”hŒ Description”…”�”}”(hj¿6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hj»6ubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:207: ./drivers/usb/typec/class.c”h´MÀ hj$6ubhë)�”}”(hŒkConfigure **port** for Accessory Mode **mode**. This function will configure the muxes needed for **mode**.”h]”(hŒ Configure ”…”�”}”(hjÓ6h²hh³Nh´Nubj®)�”}”(hŒ**port**”h]”hŒport”…”�”}”(hjÛ6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjÓ6ubhŒ for Accessory Mode ”…”�”}”(hjÓ6h²hh³Nh´Nubj®)�”}”(hŒ**mode**”h]”hŒmode”…”�”}”(hjí6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjÓ6ubhŒ4. This function will configure the muxes needed for ”…”�”}”(hjÓ6h²hh³Nh´Nubj®)�”}”(hŒ**mode**”h]”hŒmode”…”�”}”(hjÿ6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j­hjÓ6ubhŒ.”…”�”}”(hjÓ6h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hêh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/usb/typec:207: ./drivers/usb/typec/class.c”h´M¿ hj$6ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j£hjŽ*h²hh³Nh´Nubhë)�”}”(hŒÎIf the connector is dual-role capable, there may also be a switch for the data role. USB Type-C Connector Class does not supply separate API for them. The port drivers can use USB Role Class API with those.”h]”hŒÎIf the connector is dual-role capable, there may also be a switch for the data role. USB Type-C Connector Class does not supply separate API for them. The port drivers can use USB Role Class API with those.”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´KÒhjŽ*h²hubhë)�”}”(hŒNIllustration of the muxes behind a connector that supports an alternate mode::”h]”hŒMIllustration of the muxes behind a connector that supports an alternate mode:”…”�”}”(hj-7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hêh³hÃh´KÖhjŽ*h²hubhŒ literal_block”“”)�”}”(hXi ------------------------ | Connector | ------------------------ | | ------------------------ \ Orientation / -------------------- | -------------------- / Mode \ ------------------------ / \ ------------------------ -------------------- | Alt Mode | / USB Role \ ------------------------ ------------------------ / \ ------------------------ ------------------------ | USB Host | | USB Device | ------------------------ ------------------------”h]”hXi ------------------------ | Connector | ------------------------ | | ------------------------ \ Orientation / -------------------- | -------------------- / Mode \ ------------------------ / \ ------------------------ -------------------- | Alt Mode | / USB Role \ ------------------------ ------------------------ / \ ------------------------ ------------------------ | USB Host | | USB Device | ------------------------ ------------------------”…”�”}”hj=7sbah}”(h]”h ]”h"]”h$]”h&]”j\j]uh1j;7h³hÃh´KØhjŽ*h²hubeh}”(h]”Œ"multiplexer-demultiplexer-switches”ah ]”h"]”Œ"multiplexer/demultiplexer switches”ah$]”h&]”uh1hÄhj}h²hh³hÃh´Kºubeh}”(h]”Œ driver-api”ah ]”h"]”Œ driver api”ah$]”h&]”uh1hÄhhÆh²hh³hÃh´K9ubeh}”(h]”(Œusb-type-c-connector-class”hÂeh ]”h"]”(Œusb type-c connector class”Œtypec”eh$]”h&]”uh1hÄhhh²hh³hÃh´KŒexpect_referenced_by_name”}”ja7h·sŒexpect_referenced_by_id”}”hÂh·subeh}”(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‹7Œ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”}”hÂ]”h·asŒnameids”}”(ja7hÂj`7j]7j)j&jzjwjX7jU7j.j+jù jö jÙjÖj™j–j‹*jˆ*jP7jM7uŒ nametypes”}”(ja7ˆj`7‰j)‰jz‰jX7‰j.‰jù ‰jÙ‰j™‰j‹*‰jP7‰uh}”(hÂhÆj]7hÆj&hÙjwj,jU7j}j+jŽj¼jÅj£j¨jö j1j\jajâjçj j„ jÖjü j5 j: j»jÀj<jAjÂjÇj_jdj–jÜjj j%j*jBjGjqjvjˆ*jœjÕjÚj’!j—!jS$jX$j'j'j£(j¨(jM7jŽ*j¹*j¾*j9-j>-jº.j¿.j:1j?1j×2jÜ2j5j 5uŒ 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”]”hŒsystem_message”“”)�”}”(hhh]”hë)�”}”(hhh]”hŒ+Hyperlink target "typec" is not referenced.”…”�”}”hjõ7sbah}”(h]”h ]”h"]”h$]”h&]”uh1hêhjò7ubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”hÃŒline”Kuh1jð7ubaŒ transformer”NŒ include_log”]”Œ decoration”Nh²hub.