€•Œ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/pwrseq”Œ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/pwrseq”Œ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/pwrseq”Œ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/pwrseq”Œ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/pwrseq”Œ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/pwrseq”Œ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/pwrseq”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ%SPDX-License-Identifier: GPL-2.0-only”h]”hŒ%SPDX-License-Identifier: GPL-2.0-only”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³Œ?/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq.rst”h´Kubh¶)�”}”(hŒCopyright 2024 Linaro Ltd.”h]”hŒCopyright 2024 Linaro Ltd.”…”�”}”hhÈsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1hµhhh²hh³hÇh´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒPower Sequencing API”h]”hŒPower Sequencing API”…”�”}”(hhÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhhØh²hh³hÇh´KubhŒ field_list”“”)�”}”(hhh]”hŒfield”“”)�”}”(hhh]”(hŒ field_name”“”)�”}”(hŒAuthor”h]”hŒAuthor”…”�”}”(hh÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hõhhòh³hÇh´KubhŒ field_body”“”)�”}”(hŒBartosz Golaszewski ”h]”hŒ paragraph”“”)�”}”(hŒBartosz Golaszewski”h]”hŒBartosz Golaszewski”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhòubeh}”(h]”h ]”h"]”h$]”h&]”uh1hðh³hÇh´Khhíh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhhØh²hh³hÇh´Kubh×)�”}”(hhh]”(hÜ)�”}”(hŒ Introduction”h]”hŒ Introduction”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhj-h²hh³hÇh´K ubj )�”}”(hŒ‡This framework is designed to abstract complex power-up sequences that are shared between multiple logical devices in the Linux kernel.”h]”hŒ‡This framework is designed to abstract complex power-up sequences that are shared between multiple logical devices in the Linux kernel.”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K hj-h²hubj )�”}”(hX(The intention is to allow consumers to obtain a power sequencing handle exposed by the power sequence provider and delegate the actual requesting and control of the underlying resources as well as to allow the provider to mitigate any potential conflicts between multiple users behind the scenes.”h]”hX(The intention is to allow consumers to obtain a power sequencing handle exposed by the power sequence provider and delegate the actual requesting and control of the underlying resources as well as to allow the provider to mitigate any potential conflicts between multiple users behind the scenes.”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Khj-h²hubh×)�”}”(hhh]”(hÜ)�”}”(hŒGlossary”h]”hŒGlossary”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjZh²hh³hÇh´Kubj )�”}”(hŒJThe power sequencing API uses a number of terms specific to the subsystem:”h]”hŒJThe power sequencing API uses a number of terms specific to the subsystem:”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´KhjZh²hubj )�”}”(hŒUnit”h]”hŒUnit”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´KhjZh²hubhŒ block_quote”“”)�”}”(hŒñA unit is a discrete chunk of a power sequence. For instance one unit may enable a set of regulators, another may enable a specific GPIO. Units can define dependencies in the form of other units that must be enabled before it itself can be. ”h]”j )�”}”(hŒðA unit is a discrete chunk of a power sequence. For instance one unit may enable a set of regulators, another may enable a specific GPIO. Units can define dependencies in the form of other units that must be enabled before it itself can be.”h]”hŒðA unit is a discrete chunk of a power sequence. For instance one unit may enable a set of regulators, another may enable a specific GPIO. Units can define dependencies in the form of other units that must be enabled before it itself can be.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Khj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡h³hÇh´KhjZh²hubj )�”}”(hŒTarget”h]”hŒTarget”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K!hjZh²hubjˆ)�”}”(hX#A target is a set of units (composed of the "final" unit and its dependencies) that a consumer selects by its name when requesting a handle to the power sequencer. Via the dependency system, multiple targets may share the same parts of a power sequence but ignore parts that are irrelevant. ”h]”j )�”}”(hX"A target is a set of units (composed of the "final" unit and its dependencies) that a consumer selects by its name when requesting a handle to the power sequencer. Via the dependency system, multiple targets may share the same parts of a power sequence but ignore parts that are irrelevant.”h]”hX&A target is a set of units (composed of the “finalâ€� unit and its dependencies) that a consumer selects by its name when requesting a handle to the power sequencer. Via the dependency system, multiple targets may share the same parts of a power sequence but ignore parts that are irrelevant.”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K#hj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡h³hÇh´K#hjZh²hubj )�”}”(hŒ Descriptor”h]”hŒ Descriptor”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K)hjZh²hubjˆ)�”}”(hŒÁA handle passed by the pwrseq core to every consumer that serves as the entry point to the provider layer. It ensures coherence between different users and keeps reference counting consistent. ”h]”j )�”}”(hŒÀA handle passed by the pwrseq core to every consumer that serves as the entry point to the provider layer. It ensures coherence between different users and keeps reference counting consistent.”h]”hŒÀA handle passed by the pwrseq core to every consumer that serves as the entry point to the provider layer. It ensures coherence between different users and keeps reference counting consistent.”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K+hjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1j‡h³hÇh´K+hjZh²hubeh}”(h]”Œglossary”ah ]”h"]”Œglossary”ah$]”h&]”uh1hÖhj-h²hh³hÇh´Kubeh}”(h]”Œ introduction”ah ]”h"]”Œ introduction”ah$]”h&]”uh1hÖhhØh²hh³hÇh´K ubh×)�”}”(hhh]”(hÜ)�”}”(hŒConsumer interface”h]”hŒConsumer interface”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjýh²hh³hÇh´K0ubj )�”}”(hX%The consumer API is aimed to be as simple as possible. The driver interested in getting a descriptor from the power sequencer should call pwrseq_get() and specify the name of the target it wants to reach in the sequence after calling pwrseq_enable(). The descriptor can be released by calling pwrseq_put() and the consumer can request the powering down of its target with pwrseq_disable(). Note that there is no guarantee that pwrseq_disable() will have any effect as there may be multiple users of the underlying resources who may keep them active.”h]”hX%The consumer API is aimed to be as simple as possible. The driver interested in getting a descriptor from the power sequencer should call pwrseq_get() and specify the name of the target it wants to reach in the sequence after calling pwrseq_enable(). The descriptor can be released by calling pwrseq_put() and the consumer can request the powering down of its target with pwrseq_disable(). Note that there is no guarantee that pwrseq_disable() will have any effect as there may be multiple users of the underlying resources who may keep them active.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K2hjýh²hubeh}”(h]”Œconsumer-interface”ah ]”h"]”Œconsumer interface”ah$]”h&]”uh1hÖhhØh²hh³hÇh´K0ubh×)�”}”(hhh]”(hÜ)�”}”(hŒProvider interface”h]”hŒProvider interface”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhj$h²hh³hÇh´Khj$h²hubj )�”}”(hŒéEach provider can logically split the power-up sequence into discrete chunks (units) and define their dependencies. They can then expose named targets that consumers may use as the final point in the sequence that they wish to reach.”h]”hŒéEach provider can logically split the power-up sequence into discrete chunks (units) and define their dependencies. They can then expose named targets that consumers may use as the final point in the sequence that they wish to reach.”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´KAhj$h²hubj )�”}”(hŒ�To that end the providers fill out a set of configuration structures and register with the pwrseq subsystem by calling pwrseq_device_register().”h]”hŒ�To that end the providers fill out a set of configuration structures and register with the pwrseq subsystem by calling pwrseq_device_register().”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´KEhj$h²hubh×)�”}”(hhh]”(hÜ)�”}”(hŒDynamic consumer matching”h]”hŒDynamic consumer matching”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhj_h²hh³hÇh´KIubj )�”}”(hXThe main difference between pwrseq and other Linux kernel providers is the mechanism for dynamic matching of consumers and providers. Every power sequence provider driver must implement the `match()` callback and pass it to the pwrseq core when registering with the subsystems.”h]”(hŒ¾The main difference between pwrseq and other Linux kernel providers is the mechanism for dynamic matching of consumers and providers. Every power sequence provider driver must implement the ”…”�”}”(hjph²hh³Nh´NubhŒtitle_reference”“”)�”}”(hŒ `match()`”h]”hŒmatch()”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jxhjpubhŒN callback and pass it to the pwrseq core when registering with the subsystems.”…”�”}”(hjph²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´KKhj_h²hubj )�”}”(hXîWhen a client requests a sequencer handle, the core will call this callback for every registered provider and let it flexibly figure out whether the proposed client device is indeed its consumer. For example: if the provider binds to the device-tree node representing a power management unit of a chipset and the consumer driver controls one of its modules, the provider driver may parse the relevant regulator supply properties in device tree and see if they lead from the PMU to the consumer.”h]”hXîWhen a client requests a sequencer handle, the core will call this callback for every registered provider and let it flexibly figure out whether the proposed client device is indeed its consumer. For example: if the provider binds to the device-tree node representing a power management unit of a chipset and the consumer driver controls one of its modules, the provider driver may parse the relevant regulator supply properties in device tree and see if they lead from the PMU to the consumer.”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´KPhj_h²hubeh}”(h]”Œdynamic-consumer-matching”ah ]”h"]”Œdynamic consumer matching”ah$]”h&]”uh1hÖhj$h²hh³hÇh´KIubeh}”(h]”Œprovider-interface”ah ]”h"]”Œprovider interface”ah$]”h&]”uh1hÖhhØh²hh³hÇh´KhjÐh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hj†h²hh³jžh´K;ubeh}”(h]”h ]”(jUŒstruct”eh"]”h$]”h&]”jZjUj[jëj\jëj]‰j^‰j_‰uh1jÒh²hhj°h³Nh´Nubja)�”}”(hX **Definition**:: struct pwrseq_config { struct device *parent; struct module *owner; void *drvdata; pwrseq_match_func match; const struct pwrseq_target_data **targets; }; **Members** ``parent`` Parent device for the sequencer. Must be set. ``owner`` Module providing this device. ``drvdata`` Private driver data. ``match`` Provider callback used to match the consumer device to the sequencer. ``targets`` Array of targets for this power sequencer. Must be NULL-terminated.”h]”(j )�”}”(hŒ**Definition**::”h]”(jk)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjóubhŒ:”…”�”}”(hjóh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:91: ./include/linux/pwrseq/provider.h”h´KBhjïubj†)�”}”(hŒ­struct pwrseq_config { struct device *parent; struct module *owner; void *drvdata; pwrseq_match_func match; const struct pwrseq_target_data **targets; };”h]”hŒ­struct pwrseq_config { struct device *parent; struct module *owner; void *drvdata; pwrseq_match_func match; const struct pwrseq_target_data **targets; };”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j…h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:91: ./include/linux/pwrseq/provider.h”h´KDhjïubj )�”}”(hŒ **Members**”h]”jk)�”}”(hj!h]”hŒMembers”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:91: ./include/linux/pwrseq/provider.h”h´KLhjïubj¯)�”}”(hhh]”(j´)�”}”(hŒ9``parent`` Parent device for the sequencer. Must be set. ”h]”(jº)�”}”(hŒ ``parent``”h]”jÀ)�”}”(hj@h]”hŒparent”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:91: ./include/linux/pwrseq/provider.h”h´K@hj:ubjÖ)�”}”(hhh]”j )�”}”(hŒ-Parent device for the sequencer. Must be set.”h]”hŒ-Parent device for the sequencer. Must be set.”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jUh´K@hjVubah}”(h]”h ]”h"]”h$]”h&]”uh1jÕhj:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j³h³jUh´K@hj7ubj´)�”}”(hŒ(``owner`` Module providing this device. ”h]”(jº)�”}”(hŒ ``owner``”h]”jÀ)�”}”(hjyh]”hŒowner”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hjwubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:91: ./include/linux/pwrseq/provider.h”h´KAhjsubjÖ)�”}”(hhh]”j )�”}”(hŒModule providing this device.”h]”hŒModule providing this device.”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jŽh´KAhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÕhjsubeh}”(h]”h ]”h"]”h$]”h&]”uh1j³h³jŽh´KAhj7ubj´)�”}”(hŒ!``drvdata`` Private driver data. ”h]”(jº)�”}”(hŒ ``drvdata``”h]”jÀ)�”}”(hj²h]”hŒdrvdata”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:91: ./include/linux/pwrseq/provider.h”h´KBhj¬ubjÖ)�”}”(hhh]”j )�”}”(hŒPrivate driver data.”h]”hŒPrivate driver data.”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÇh´KBhjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jÕhj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j³h³jÇh´KBhj7ubj´)�”}”(hŒP``match`` Provider callback used to match the consumer device to the sequencer. ”h]”(jº)�”}”(hŒ ``match``”h]”jÀ)�”}”(hjëh]”hŒmatch”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hjéubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:91: ./include/linux/pwrseq/provider.h”h´KChjåubjÖ)�”}”(hhh]”j )�”}”(hŒEProvider callback used to match the consumer device to the sequencer.”h]”hŒEProvider callback used to match the consumer device to the sequencer.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jh´KChjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÕhjåubeh}”(h]”h ]”h"]”h$]”h&]”uh1j³h³jh´KChj7ubj´)�”}”(hŒO``targets`` Array of targets for this power sequencer. Must be NULL-terminated.”h]”(jº)�”}”(hŒ ``targets``”h]”jÀ)�”}”(hj$h]”hŒtargets”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:91: ./include/linux/pwrseq/provider.h”h´KChjubjÖ)�”}”(hhh]”j )�”}”(hŒCArray of targets for this power sequencer. Must be NULL-terminated.”h]”hŒCArray of targets for this power sequencer. Must be NULL-terminated.”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:91: ./include/linux/pwrseq/provider.h”h´KDhj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÕhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j³h³j9h´KChj7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j®hjïubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j`hj°h²hh³Nh´NubjÂ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÎŒ#pwrseq_device_register (C function)”Œc.pwrseq_device_register”hNt”auh1jÁhj°h²hh³Nh´NubjÓ)�”}”(hhh]”(jØ)�”}”(hŒRstruct pwrseq_device * pwrseq_device_register (const struct pwrseq_config *config)”h]”jÞ)�”}”(hŒPstruct pwrseq_device *pwrseq_device_register(const struct pwrseq_config *config)”h]”(jä)�”}”(hjçh]”hŒstruct”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”jðah"]”h$]”h&]”uh1jãhjzh²hh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÔubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjzh²hh³j‹h´MÔubh)�”}”(hhh]”j )�”}”(hŒ pwrseq_device”h]”hŒ pwrseq_device”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjšubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jUŒreftype”Œ identifier”Œ reftarget”jŸŒmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”j¸Œ ASTIdentifier”“”)�”}”j³Œpwrseq_device_register”sbŒc.pwrseq_device_register”†”asbuh1hhjzh²hh³j‹h´MÔubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjzh²hh³j‹h´MÔubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jÔhjzh²hh³j‹h´MÔubj)�”}”(hŒpwrseq_device_register”h]”j )�”}”(hjÃh]”hŒpwrseq_device_register”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjåubah}”(h]”h ]”(jj eh"]”h$]”h&]”hÅhÆuh1jhjzh²hh³j‹h´MÔubhŒdesc_parameterlist”“”)�”}”(hŒ$(const struct pwrseq_config *config)”h]”hŒdesc_parameter”“”)�”}”(hŒ"const struct pwrseq_config *config”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 ]”jah"]”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Œ ”…”�”}”(hj1 h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj ubh)�”}”(hhh]”j )�”}”(hŒ pwrseq_config”h]”hŒ pwrseq_config”…”�”}”(hjB h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj? ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jUŒreftype”j³Œ reftarget”jD Œmodname”NŒ classname”Nj·jº)�”}”j½]”jÁŒc.pwrseq_device_register”†”asbuh1hhj ubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj` h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj ubjÕ)�”}”(hjØh]”hŒ*”…”�”}”(hjn h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj ubj )�”}”(hŒconfig”h]”hŒconfig”…”�”}”(hj{ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j hjþubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühjzh²hh³j‹h´MÔubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj*ˆuh1jÝj+j,hjvh²hh³j‹h´MÔubah}”(h]”jqah ]”(j0j1eh"]”h$]”h&]”j5ˆj6)j7huh1j×h³j‹h´MÔhjsh²hubj9)�”}”(hhh]”j )�”}”(hŒRegister a new power sequencer.”h]”hŒRegister a new power sequencer.”…”�”}”(hj¥ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÔhj¢ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hjsh²hh³j‹h´MÔubeh}”(h]”h ]”(jUŒfunction”eh"]”h$]”h&]”jZjUj[j½ j\j½ j]‰j^‰j_‰uh1jÒh²hhj°h³Nh´Nubja)�”}”(hXž**Parameters** ``const struct pwrseq_config *config`` Configuration of the new power sequencing device. **Description** The config structure is only used during the call and can be freed after the function returns. The config structure *must* have the parent device as well as the match() callback and at least one target set. **Return** Returns the address of the new pwrseq device or ERR_PTR() on failure.”h]”(j )�”}”(hŒ**Parameters**”h]”jk)�”}”(hjÇ h]”hŒ Parameters”…”�”}”(hjÉ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjÅ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MØhjÁ ubj¯)�”}”(hhh]”j´)�”}”(hŒY``const struct pwrseq_config *config`` Configuration of the new power sequencing device. ”h]”(jº)�”}”(hŒ&``const struct pwrseq_config *config``”h]”jÀ)�”}”(hjæ h]”hŒ"const struct pwrseq_config *config”…”�”}”(hjè h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hjä ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÕhjà ubjÖ)�”}”(hhh]”j )�”}”(hŒ1Configuration of the new power sequencing device.”h]”hŒ1Configuration of the new power sequencing device.”…”�”}”(hjÿ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j 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Á ubj )�”}”(hŒ**Description**”h]”jk)�”}”(hj! h]”hŒ Description”…”�”}”(hj# h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´M×hjÁ ubj )�”}”(hŒÎThe config structure is only used during the call and can be freed after the function returns. The config structure *must* have the parent device as well as the match() callback and at least one target set.”h]”(hŒtThe config structure is only used during the call and can be freed after the function returns. The config structure ”…”�”}”(hj7 h²hh³Nh´Nubj )�”}”(hŒ*must*”h]”hŒmust”…”�”}”(hj? h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj7 ubhŒT have the parent device as well as the match() callback and at least one target set.”…”�”}”(hj7 h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÖhjÁ ubj )�”}”(hŒ **Return**”h]”jk)�”}”(hjZ h]”hŒReturn”…”�”}”(hj\ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjX ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÚhjÁ ubj )�”}”(hŒEReturns the address of the new pwrseq device or ERR_PTR() on failure.”h]”hŒEReturns the address of the new pwrseq device or ERR_PTR() on failure.”…”�”}”(hjp h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.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ÎŒ%pwrseq_device_unregister (C function)”Œc.pwrseq_device_unregister”hNt”auh1jÁhj°h²hh³Nh´NubjÓ)�”}”(hhh]”(jØ)�”}”(hŒ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjã ubjÕ)�”}”(hjØh]”hŒ*”…”�”}”(hjL h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjã ubj )�”}”(hŒconfig”h]”hŒconfig”…”�”}”(hjY h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjã ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j hjo ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühjù h²hh³j h´MBubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj*ˆuh1jÝj+j,hjõ h²hh³j h´MBubah}”(h]”jð ah ]”(j0j1eh"]”h$]”h&]”j5ˆj6)j7huh1j×h³j h´MBhjò h²hubj9)�”}”(hhh]”j )�”}”(hŒ,Managed variant of pwrseq_device_register().”h]”hŒ,Managed variant of pwrseq_device_register().”…”�”}”(hjƒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MBhj€ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hjò h²hh³j h´MBubeh}”(h]”h ]”(jUŒfunction”eh"]”h$]”h&]”jZjUj[j› j\j› j]‰j^‰j_‰uh1jÒh²hhj°h³Nh´Nubja)�”}”(hŒè**Parameters** ``struct device *dev`` Managing device. ``const struct pwrseq_config *config`` Configuration of the new power sequencing device. **Return** Returns the address of the new pwrseq device or ERR_PTR() on failure.”h]”(j )�”}”(hŒ**Parameters**”h]”jk)�”}”(hj¥ h]”hŒ Parameters”…”�”}”(hj§ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhj£ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MFhjŸ ubj¯)�”}”(hhh]”(j´)�”}”(hŒ(``struct device *dev`` Managing device. ”h]”(jº)�”}”(hŒ``struct device *dev``”h]”jÀ)�”}”(hjÄ h]”hŒstruct device *dev”…”�”}”(hjÆ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MChj¾ ubjÖ)�”}”(hhh]”j )�”}”(hŒManaging device.”h]”hŒManaging device.”…”�”}”(hjÝ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jÙ h´MChjÚ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÕhj¾ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j³h³jÙ h´MChj» ubj´)�”}”(hŒY``const struct pwrseq_config *config`` Configuration of the new power sequencing device. ”h]”(jº)�”}”(hŒ&``const struct pwrseq_config *config``”h]”jÀ)�”}”(hjý h]”hŒ"const struct pwrseq_config *config”…”�”}”(hjÿ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hjû ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MDhj÷ ubjÖ)�”}”(hhh]”j )�”}”(hŒ1Configuration of the new power sequencing device.”h]”hŒ1Configuration of the new power sequencing device.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³jh´MDhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÕhj÷ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j³h³jh´MDhj» ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j®hjŸ ubj )�”}”(hŒ **Return**”h]”jk)�”}”(hj8h]”hŒReturn”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MFhjŸ ubj )�”}”(hŒEReturns the address of the new pwrseq device or ERR_PTR() on failure.”h]”hŒEReturns the address of the new pwrseq device or ERR_PTR() on failure.”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MFhjŸ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j`hj°h²hh³Nh´NubjÂ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÎŒ&pwrseq_device_get_drvdata (C function)”Œc.pwrseq_device_get_drvdata”hNt”auh1jÁhj°h²hh³Nh´NubjÓ)�”}”(hhh]”(jØ)�”}”(hŒ?void * pwrseq_device_get_drvdata (struct pwrseq_device *pwrseq)”h]”jÞ)�”}”(hŒ=void *pwrseq_device_get_drvdata(struct pwrseq_device *pwrseq)”h]”(j  )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”j¬ ah"]”h$]”h&]”uh1jŸ hjyh²hh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´M^ubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjyh²hh³j‹h´M^ubjÕ)�”}”(hjØh]”hŒ*”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjyh²hh³j‹h´M^ubj)�”}”(hŒpwrseq_device_get_drvdata”h]”j )�”}”(hŒpwrseq_device_get_drvdata”h]”hŒpwrseq_device_get_drvdata”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj§ubah}”(h]”h ]”(jj eh"]”h$]”h&]”hÅhÆuh1jhjyh²hh³j‹h´M^ubjý)�”}”(hŒ(struct pwrseq_device *pwrseq)”h]”j )�”}”(hŒstruct pwrseq_device *pwrseq”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 ]”jah"]”h$]”h&]”uh1jõhjÃubh)�”}”(hhh]”j )�”}”(hŒ pwrseq_device”h]”hŒ pwrseq_device”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjâubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jUŒreftype”j³Œ reftarget”jçŒmodname”NŒ classname”Nj·jº)�”}”j½]”jÀ)�”}”j³j­sbŒc.pwrseq_device_get_drvdata”†”asbuh1hhjÃubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjÃubjÕ)�”}”(hjØh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÃubj )�”}”(hŒpwrseq”h]”hŒpwrseq”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÃubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j hj¿ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühjyh²hh³j‹h´M^ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj*ˆuh1jÝj+j,hjuh²hh³j‹h´M^ubah}”(h]”jpah ]”(j0j1eh"]”h$]”h&]”j5ˆj6)j7huh1j×h³j‹h´M^hjrh²hubj9)�”}”(hhh]”j )�”}”(hŒ;Get the driver private data associated with this sequencer.”h]”hŒ;Get the driver private data associated with this sequencer.”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´M^hjGh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hjrh²hh³j‹h´M^ubeh}”(h]”h ]”(jUŒfunction”eh"]”h$]”h&]”jZjUj[jbj\jbj]‰j^‰j_‰uh1jÒh²hhj°h³Nh´Nubja)�”}”(hŒ{**Parameters** ``struct pwrseq_device *pwrseq`` Power sequencer object. **Return** Address of the private driver data.”h]”(j )�”}”(hŒ**Parameters**”h]”jk)�”}”(hjlh]”hŒ Parameters”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjjubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Mbhjfubj¯)�”}”(hhh]”j´)�”}”(hŒ9``struct pwrseq_device *pwrseq`` Power sequencer object. ”h]”(jº)�”}”(hŒ ``struct pwrseq_device *pwrseq``”h]”jÀ)�”}”(hj‹h]”hŒstruct pwrseq_device *pwrseq”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´M`hj…ubjÖ)�”}”(hhh]”j )�”}”(hŒPower sequencer object.”h]”hŒPower sequencer object.”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j 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®hjfubj )�”}”(hŒ **Return**”h]”jk)�”}”(hjÆh]”hŒReturn”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjÄubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Mbhjfubj )�”}”(hŒ#Address of the private driver data.”h]”hŒ#Address of the private driver data.”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Mbhjfubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j`hj°h²hh³Nh´NubjÂ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÎŒpwrseq_get (C function)”Œ c.pwrseq_get”hNt”auh1jÁhj°h²hh³Nh´NubjÓ)�”}”(hhh]”(jØ)�”}”(hŒHstruct pwrseq_desc * pwrseq_get (struct device *dev, const char *target)”h]”jÞ)�”}”(hŒFstruct pwrseq_desc *pwrseq_get(struct device *dev, const char *target)”h]”(jä)�”}”(hjçh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jðah"]”h$]”h&]”uh1jãhjh²hh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Mšubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjh²hh³jh´Mšubh)�”}”(hhh]”j )�”}”(hŒ pwrseq_desc”h]”hŒ pwrseq_desc”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jUŒreftype”j³Œ reftarget”j,Œmodname”NŒ classname”Nj·jº)�”}”j½]”jÀ)�”}”j³Œ pwrseq_get”sbŒ c.pwrseq_get”†”asbuh1hhjh²hh³jh´Mšubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjh²hh³jh´MšubjÕ)�”}”(hjØh]”hŒ*”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjh²hh³jh´Mšubj)�”}”(hŒ pwrseq_get”h]”j )�”}”(hjHh]”hŒ pwrseq_get”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjfubah}”(h]”h ]”(jj eh"]”h$]”h&]”hÅhÆuh1jhjh²hh³jh´Mšubjý)�”}”(hŒ((struct device *dev, const char *target)”h]”(j )�”}”(hŒstruct device *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 ]”jah"]”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”jUŒreftype”j³Œ reftarget”j¥Œmodname”NŒ classname”Nj·jº)�”}”j½]”jFŒ c.pwrseq_get”†”asbuh1hhj�ubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj�ubjÕ)�”}”(hjØh]”hŒ*”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj�ubj )�”}”(hŒdev”h]”hŒdev”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j hj}ubj )�”}”(hŒconst char *target”h]”(jä)�”}”(hj h]”hŒconst”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”jðah"]”h$]”h&]”uh1jãhjñubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjñubj  )�”}”(hŒchar”h]”hŒchar”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j¬ ah"]”h$]”h&]”uh1jŸ hjñubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjñubjÕ)�”}”(hjØh]”hŒ*”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjñubj )�”}”(hŒtarget”h]”hŒtarget”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjñubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j hj}ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühjh²hh³jh´Mšubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj*ˆuh1jÝj+j,hjh²hh³jh´Mšubah}”(h]”jþah ]”(j0j1eh"]”h$]”h&]”j5ˆj6)j7huh1j×h³jh´Mšhjh²hubj9)�”}”(hhh]”j )�”}”(hŒ4Get the power sequencer associated with this device.”h]”hŒ4Get the power sequencer associated with this device.”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Mšhj`h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hjh²hh³jh´Mšubeh}”(h]”h ]”(jUŒfunction”eh"]”h$]”h&]”jZjUj[j{j\j{j]‰j^‰j_‰uh1jÒh²hhj°h³Nh´Nubja)�”}”(hX**Parameters** ``struct device *dev`` Device for which to get the sequencer. ``const char *target`` Name of the target exposed by the sequencer this device wants to reach. **Return** New power sequencer descriptor for use by the consumer driver or ERR_PTR() on failure.”h]”(j )�”}”(hŒ**Parameters**”h]”jk)�”}”(hj…h]”hŒ Parameters”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Mžhjubj¯)�”}”(hhh]”(j´)�”}”(hŒ>``struct device *dev`` Device for which to get the sequencer. ”h]”(jº)�”}”(hŒ``struct device *dev``”h]”jÀ)�”}”(hj¤h]”hŒstruct device *dev”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´M›hjžubjÖ)�”}”(hhh]”j )�”}”(hŒ&Device for which to get the sequencer.”h]”hŒ&Device for which to get the sequencer.”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j 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 char *target`` Name of the target exposed by the sequencer this device wants to reach. ”h]”(jº)�”}”(hŒ``const char *target``”h]”jÀ)�”}”(hjÝh]”hŒconst char *target”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hjÛubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´M�hj×ubjÖ)�”}”(hhh]”j )�”}”(hŒGName of the target exposed by the sequencer this device wants to reach.”h]”hŒGName of the target exposed by the sequencer this device wants to reach.”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”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®hjubj )�”}”(hŒ **Return**”h]”jk)�”}”(hjh]”hŒReturn”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MŸhjubj )�”}”(hŒVNew power sequencer descriptor for use by the consumer driver or ERR_PTR() on failure.”h]”hŒVNew power sequencer descriptor for use by the consumer driver or ERR_PTR() on failure.”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MŸhjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j`hj°h²hh³Nh´NubjÂ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÎŒpwrseq_put (C function)”Œ c.pwrseq_put”hNt”auh1jÁhj°h²hh³Nh´NubjÓ)�”}”(hhh]”(jØ)�”}”(hŒ*void pwrseq_put (struct pwrseq_desc *desc)”h]”jÞ)�”}”(hŒ)void pwrseq_put(struct pwrseq_desc *desc)”h]”(j  )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”j¬ ah"]”h$]”h&]”uh1jŸ hjZh²hh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´M¿ubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjZh²hh³jlh´M¿ubj)�”}”(hŒ pwrseq_put”h]”j )�”}”(hŒ pwrseq_put”h]”hŒ pwrseq_put”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj{ubah}”(h]”h ]”(jj eh"]”h$]”h&]”hÅhÆuh1jhjZh²hh³jlh´M¿ubjý)�”}”(hŒ(struct pwrseq_desc *desc)”h]”j )�”}”(hŒstruct pwrseq_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Œ ”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj—ubh)�”}”(hhh]”j )�”}”(hŒ pwrseq_desc”h]”hŒ pwrseq_desc”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¶ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jUŒreftype”j³Œ reftarget”j»Œmodname”NŒ classname”Nj·jº)�”}”j½]”jÀ)�”}”j³j�sbŒ c.pwrseq_put”†”asbuh1h•™’hj—ubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj—ubjÕ)�”}”(hjØh]”hŒ*”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj—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”ˆhÅhÆuh1j hj“ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühjZh²hh³jlh´M¿ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj*ˆuh1jÝj+j,hjVh²hh³jlh´M¿ubah}”(h]”jQah ]”(j0j1eh"]”h$]”h&]”j5ˆj6)j7huh1j×h³jlh´M¿hjSh²hubj9)�”}”(hhh]”j )�”}”(hŒ'Release the power sequencer descriptor.”h]”hŒ'Release the power sequencer descriptor.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´M¿hjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hjSh²hh³jlh´M¿ubeh}”(h]”h ]”(jUŒfunction”eh"]”h$]”h&]”jZjUj[j6j\j6j]‰j^‰j_‰uh1jÒh²hhj°h³Nh´Nubja)�”}”(hŒE**Parameters** ``struct pwrseq_desc *desc`` Descriptor to release.”h]”(j )�”}”(hŒ**Parameters**”h]”jk)�”}”(hj@h]”hŒ Parameters”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÃhj:ubj¯)�”}”(hhh]”j´)�”}”(hŒ3``struct pwrseq_desc *desc`` Descriptor to release.”h]”(jº)�”}”(hŒ``struct pwrseq_desc *desc``”h]”jÀ)�”}”(hj_h]”hŒstruct pwrseq_desc *desc”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÅhjYubjÖ)�”}”(hhh]”j )�”}”(hŒDescriptor to release.”h]”hŒDescriptor to release.”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÀhjuubah}”(h]”h ]”h"]”h$]”h&]”uh1jÕhjYubeh}”(h]”h ]”h"]”h$]”h&]”uh1j³h³jth´MÅhjVubah}”(h]”h ]”h"]”h$]”h&]”uh1j®hj:ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j`hj°h²hh³Nh´NubjÂ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÎŒdevm_pwrseq_get (C function)”Œc.devm_pwrseq_get”hNt”auh1jÁhj°h²hh³Nh´NubjÓ)�”}”(hhh]”(jØ)�”}”(hŒMstruct pwrseq_desc * devm_pwrseq_get (struct device *dev, const char *target)”h]”jÞ)�”}”(hŒKstruct pwrseq_desc *devm_pwrseq_get(struct device *dev, const char *target)”h]”(jä)�”}”(hjçh]”hŒstruct”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”jðah"]”h$]”h&]”uh1jãhjµh²hh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÜubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjµh²hh³jÆh´MÜubh)�”}”(hhh]”j )�”}”(hŒ pwrseq_desc”h]”hŒ pwrseq_desc”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÕubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jUŒreftype”j³Œ reftarget”jÚŒmodname”NŒ classname”Nj·jº)�”}”j½]”jÀ)�”}”j³Œdevm_pwrseq_get”sbŒc.devm_pwrseq_get”†”asbuh1hhjµh²hh³jÆh´MÜubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjµh²hh³jÆh´MÜubjÕ)�”}”(hjØh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjµh²hh³jÆh´MÜubj)�”}”(hŒdevm_pwrseq_get”h]”j )�”}”(hjöh]”hŒdevm_pwrseq_get”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjubah}”(h]”h ]”(jj eh"]”h$]”h&]”hÅhÆuh1jhjµh²hh³jÆh´MÜubjý)�”}”(hŒ((struct device *dev, const char *target)”h]”(j )�”}”(hŒstruct device *dev”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 ]”jah"]”h$]”h&]”uh1jõhj/ubh)�”}”(hhh]”j )�”}”(hŒdevice”h]”hŒdevice”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjNubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jUŒreftype”j³Œ reftarget”jSŒmodname”NŒ classname”Nj·jº)�”}”j½]”jôŒc.devm_pwrseq_get”†”asbuh1hhj/ubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj/ubjÕ)�”}”(hjØh]”hŒ*”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj/ubj )�”}”(hŒdev”h]”hŒdev”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj/ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j hj+ubj )�”}”(hŒconst char *target”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 ]”jah"]”h$]”h&]”uh1jõhjŸubj  )�”}”(hŒchar”h]”hŒchar”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”j¬ ah"]”h$]”h&]”uh1jŸ hjŸubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjŸubjÕ)�”}”(hjØh]”hŒ*”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjŸubj )�”}”(hŒtarget”h]”hŒtarget”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjŸubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j hj+ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühjµh²hh³jÆh´MÜubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj*ˆuh1jÝj+j,hj±h²hh³jÆh´MÜubah}”(h]”j¬ah ]”(j0j1eh"]”h$]”h&]”j5ˆj6)j7huh1j×h³jÆh´MÜhj®h²hubj9)�”}”(hhh]”j )�”}”(hŒ Managed variant of pwrseq_get().”h]”hŒ Managed variant of pwrseq_get().”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÜhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hj®h²hh³jÆh´MÜubeh}”(h]”h ]”(jUŒfunction”eh"]”h$]”h&]”jZjUj[j)j\j)j]‰j^‰j_‰uh1jÒh²hhj°h³Nh´Nubja)�”}”(hX=**Parameters** ``struct device *dev`` Device for which to get the sequencer and which also manages its lifetime. ``const char *target`` Name of the target exposed by the sequencer this device wants to reach. **Return** New power sequencer descriptor for use by the consumer driver or ERR_PTR() on failure.”h]”(j )�”}”(hŒ**Parameters**”h]”jk)�”}”(hj3h]”hŒ Parameters”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Màhj-ubj¯)�”}”(hhh]”(j´)�”}”(hŒb``struct device *dev`` Device for which to get the sequencer and which also manages its lifetime. ”h]”(jº)�”}”(hŒ``struct device *dev``”h]”jÀ)�”}”(hjRh]”hŒstruct device *dev”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hjPubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÞhjLubjÖ)�”}”(hhh]”j )�”}”(hŒJDevice for which to get the sequencer and which also manages its lifetime.”h]”hŒJDevice for which to get the sequencer and which also manages its lifetime.”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÝhjhubah}”(h]”h ]”h"]”h$]”h&]”uh1jÕhjLubeh}”(h]”h ]”h"]”h$]”h&]”uh1j³h³jgh´MÞhjIubj´)�”}”(hŒ_``const char *target`` Name of the target exposed by the sequencer this device wants to reach. ”h]”(jº)�”}”(hŒ``const char *target``”h]”jÀ)�”}”(hjŒh]”hŒconst char *target”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Màhj†ubjÖ)�”}”(hhh]”j )�”}”(hŒGName of the target exposed by the sequencer this device wants to reach.”h]”hŒGName of the target exposed by the sequencer this device wants to reach.”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Mßhj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÕhj†ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j³h³j¡h´MàhjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1j®hj-ubj )�”}”(hŒ **Return**”h]”jk)�”}”(hjÈh]”hŒReturn”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Mâhj-ubj )�”}”(hŒVNew power sequencer descriptor for use by the consumer driver or ERR_PTR() on failure.”h]”hŒVNew power sequencer descriptor for use by the consumer driver or ERR_PTR() on failure.”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.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ÎŒpwrseq_enable (C function)”Œc.pwrseq_enable”hNt”auh1jÁhj°h²hh³Nh´NubjÓ)�”}”(hhh]”(jØ)�”}”(hŒ,int pwrseq_enable (struct pwrseq_desc *desc)”h]”jÞ)�”}”(hŒ+int pwrseq_enable(struct pwrseq_desc *desc)”h]”(j  )�”}”(hŒint”h]”hŒint”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j¬ ah"]”h$]”h&]”uh1jŸ hj h²hh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Mrubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj h²hh³jh´Mrubj)�”}”(hŒ pwrseq_enable”h]”j )�”}”(hŒ pwrseq_enable”h]”hŒ pwrseq_enable”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj*ubah}”(h]”h ]”(jj eh"]”h$]”h&]”hÅhÆuh1jhj h²hh³jh´Mrubjý)�”}”(hŒ(struct pwrseq_desc *desc)”h]”j )�”}”(hŒstruct pwrseq_desc *desc”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 ]”jah"]”h$]”h&]”uh1jõhjFubh)�”}”(hhh]”j )�”}”(hŒ pwrseq_desc”h]”hŒ pwrseq_desc”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjeubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jUŒreftype”j³Œ reftarget”jjŒmodname”NŒ classname”Nj·jº)�”}”j½]”jÀ)�”}”j³j0sbŒc.pwrseq_enable”†”asbuh1hhjFubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjFubjÕ)�”}”(hjØh]”hŒ*”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjFubj )�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjFubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j hjBubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühj h²hh³jh´Mrubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj*ˆuh1jÝj+j,hjh²hh³jh´Mrubah}”(h]”jah ]”(j0j1eh"]”h$]”h&]”j5ˆj6)j7huh1j×h³jh´Mrhjh²hubj9)�”}”(hhh]”j )�”}”(hŒ:Issue a power-on request on behalf of the consumer device.”h]”hŒ:Issue a power-on request on behalf of the consumer device.”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MrhjÊh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hjh²hh³jh´Mrubeh}”(h]”h ]”(jUŒfunction”eh"]”h$]”h&]”jZjUj[jåj\jåj]‰j^‰j_‰uh1jÒh²hhj°h³Nh´Nubja)�”}”(hXú**Parameters** ``struct pwrseq_desc *desc`` Descriptor referencing the power sequencer. **Description** This function tells the power sequencer that the consumer wants to be powered-up. The sequencer may already have powered-up the device in which case the function returns 0. If the power-up sequence is already in progress, the function will block until it's done and return 0. If this is the first request, the device will be powered up. **Return** 0 on success, negative error number on failure.”h]”(j )�”}”(hŒ**Parameters**”h]”jk)�”}”(hjïh]”hŒ Parameters”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjíubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Mvhjéubj¯)�”}”(hhh]”j´)�”}”(hŒI``struct pwrseq_desc *desc`` Descriptor referencing the power sequencer. ”h]”(jº)�”}”(hŒ``struct pwrseq_desc *desc``”h]”jÀ)�”}”(hjh]”hŒstruct pwrseq_desc *desc”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MthjubjÖ)�”}”(hhh]”j )�”}”(hŒ+Descriptor referencing the power sequencer.”h]”hŒ+Descriptor referencing the power sequencer.”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j#h´Mthj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÕhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j³h³j#h´Mthjubah}”(h]”h ]”h"]”h$]”h&]”uh1j®hjéubj )�”}”(hŒ**Description**”h]”jk)�”}”(hjIh]”hŒ Description”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Mvhjéubj )�”}”(hXPThis function tells the power sequencer that the consumer wants to be powered-up. The sequencer may already have powered-up the device in which case the function returns 0. If the power-up sequence is already in progress, the function will block until it's done and return 0. If this is the first request, the device will be powered up.”h]”hXRThis function tells the power sequencer that the consumer wants to be powered-up. The sequencer may already have powered-up the device in which case the function returns 0. If the power-up sequence is already in progress, the function will block until it’s done and return 0. If this is the first request, the device will be powered up.”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Muhjéubj )�”}”(hŒ **Return**”h]”jk)�”}”(hjph]”hŒReturn”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjnubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´M{hjéubj )�”}”(hŒ/0 on success, negative error number on failure.”h]”hŒ/0 on success, negative error number on failure.”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.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ÎŒpwrseq_disable (C function)”Œc.pwrseq_disable”hNt”auh1jÁhj°h²hh³Nh´NubjÓ)�”}”(hhh]”(jØ)�”}”(hŒ-int pwrseq_disable (struct pwrseq_desc *desc)”h]”jÞ)�”}”(hŒ,int pwrseq_disable(struct pwrseq_desc *desc)”h]”(j  )�”}”(hŒint”h]”hŒint”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”j¬ ah"]”h$]”h&]”uh1jŸ hj±h²hh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Mªubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj±h²hh³jÃh´Mªubj)�”}”(hŒpwrseq_disable”h]”j )�”}”(hŒpwrseq_disable”h]”hŒpwrseq_disable”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÒubah}”(h]”h ]”(jj eh"]”h$]”h&]”hÅhÆuh1jhj±h²hh³jÃh´Mªubjý)�”}”(hŒ(struct pwrseq_desc *desc)”h]”j )�”}”(hŒstruct pwrseq_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Œ ”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjîubh)�”}”(hhh]”j )�”}”(hŒ pwrseq_desc”h]”hŒ pwrseq_desc”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jUŒreftype”j³Œ reftarget”jŒmodname”NŒ classname”Nj·jº)�”}”j½]”jÀ)�”}”j³jØsbŒc.pwrseq_disable”†”asbuh1hhjîubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjîubjÕ)�”}”(hjØh]”hŒ*”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjîubj )�”}”(hŒdesc”h]”hŒdesc”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjîubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j hjêubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühj±h²hh³jÃh´Mªubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj*ˆuh1jÝj+j,hj­h²hh³jÃh´Mªubah}”(h]”j¨ah ]”(j0j1eh"]”h$]”h&]”j5ˆj6)j7huh1j×h³jÃh´Mªhjªh²hubj9)�”}”(hhh]”j )�”}”(hŒ;Issue a power-off request on behalf of the consumer device.”h]”hŒ;Issue a power-off request on behalf of the consumer device.”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Mªhjrh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hjªh²hh³jÃh´Mªubeh}”(h]”h ]”(jUŒfunction”eh"]”h$]”h&]”jZjUj[j�j\j�j]‰j^‰j_‰uh1jÒh²hhj°h³Nh´Nubja)�”}”(hX´**Parameters** ``struct pwrseq_desc *desc`` Descriptor referencing the power sequencer. **Description** This undoes the effects of pwrseq_enable(). It issues a power-off request on behalf of the consumer and when the last remaining user does so, the power-down sequence will be started. If one is in progress, the function will block until it's complete and then return. **Return** 0 on success, negative error number on failure.”h]”(j )�”}”(hŒ**Parameters**”h]”jk)�”}”(hj—h]”hŒ Parameters”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´M®hj‘ubj¯)�”}”(hhh]”j´)�”}”(hŒI``struct pwrseq_desc *desc`` Descriptor referencing the power sequencer. ”h]”(jº)�”}”(hŒ``struct pwrseq_desc *desc``”h]”jÀ)�”}”(hj¶h]”hŒstruct pwrseq_desc *desc”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´M¬hj°ubjÖ)�”}”(hhh]”j )�”}”(hŒ+Descriptor referencing the power sequencer.”h]”hŒ+Descriptor referencing the power sequencer.”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j 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‘ubj )�”}”(hŒ**Description**”h]”jk)�”}”(hjñh]”hŒ Description”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjïubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´M®hj‘ubj )�”}”(hX This undoes the effects of pwrseq_enable(). It issues a power-off request on behalf of the consumer and when the last remaining user does so, the power-down sequence will be started. If one is in progress, the function will block until it's complete and then return.”h]”hX This undoes the effects of pwrseq_enable(). It issues a power-off request on behalf of the consumer and when the last remaining user does so, the power-down sequence will be started. If one is in progress, the function will block until it’s complete and then return.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´M­hj‘ubj )�”}”(hŒ **Return**”h]”jk)�”}”(hjh]”hŒReturn”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´M²hj‘ubj )�”}”(hŒ/0 on success, negative error number on failure.”h]”hŒ/0 on success, negative error number on failure.”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.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ÎŒpwrseq_to_device (C function)”Œc.pwrseq_to_device”hNt”auh1jÁhj°h²hh³Nh´NubjÓ)�”}”(hhh]”(jØ)�”}”(hŒ;struct device * pwrseq_to_device (struct pwrseq_desc *desc)”h]”jÞ)�”}”(hŒ9struct device *pwrseq_to_device(struct pwrseq_desc *desc)”h]”(jä)�”}”(hjçh]”hŒstruct”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”jðah"]”h$]”h&]”uh1jãhjYh²hh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÓubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjYh²hh³jjh´MÓubh)�”}”(hhh]”j )�”}”(hŒdevice”h]”hŒdevice”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjyubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jUŒreftype”j³Œ reftarget”j~Œmodname”NŒ classname”Nj·jº)�”}”j½]”jÀ)�”}”j³Œpwrseq_to_device”sbŒc.pwrseq_to_device”†”asbuh1hhjYh²hh³jjh´MÓubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjYh²hh³jjh´MÓubjÕ)�”}”(hjØh]”hŒ*”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjYh²hh³jjh´MÓubj)�”}”(hŒpwrseq_to_device”h]”j )�”}”(hjšh]”hŒpwrseq_to_device”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¸ubah}”(h]”h ]”(jj eh"]”h$]”h&]”hÅhÆuh1jhjYh²hh³jjh´MÓubjý)�”}”(hŒ(struct pwrseq_desc *desc)”h]”j )�”}”(hŒstruct pwrseq_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Œ ”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjÓubh)�”}”(hhh]”j )�”}”(hŒ pwrseq_desc”h]”hŒ pwrseq_desc”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjòubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jUŒreftype”j³Œ reftarget”j÷Œmodname”NŒ classname”Nj·jº)�”}”j½]”j˜Œc.pwrseq_to_device”†”asbuh1hhjÓubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjÓubjÕ)�”}”(hjØh]”hŒ*”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÓ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”ˆhÅhÆuh1j hjÏubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühjYh²hh³jjh´MÓubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj*ˆuh1jÝj+j,hjUh²hh³jjh´MÓubah}”(h]”jPah ]”(j0j1eh"]”h$]”h&]”j5ˆj6)j7huh1j×h³jjh´MÓhjRh²hubj9)�”}”(hhh]”j )�”}”(hŒ0Get the pwrseq device pointer from a descriptor.”h]”hŒ0Get the pwrseq device pointer from a descriptor.”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÓhjUh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hjRh²hh³jjh´MÓubeh}”(h]”h ]”(jUŒfunction”eh"]”h$]”h&]”jZjUj[jpj\jpj]‰j^‰j_‰uh1jÒh²hhj°h³Nh´Nubja)�”}”(hX**Parameters** ``struct pwrseq_desc *desc`` Descriptor referencing the power sequencer. **Description** Return the 'dev' pointer of the power sequencer device associated with **desc**. Consumer drivers can use this to query the pwrseq provider's device tree node, for example to check for the existence of specific properties. Since pwrseq_get() already takes a reference to the pwrseq device, this function does not take an additional reference. **Return** Pointer to the pwrseq struct device, or NULL if **desc** is NULL.”h]”(j )�”}”(hŒ**Parameters**”h]”jk)�”}”(hjzh]”hŒ Parameters”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjxubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´M×hjtubj¯)�”}”(hhh]”j´)�”}”(hŒI``struct pwrseq_desc *desc`` Descriptor referencing the power sequencer. ”h]”(jº)�”}”(hŒ``struct pwrseq_desc *desc``”h]”jÀ)�”}”(hj™h]”hŒstruct pwrseq_desc *desc”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÔhj“ubjÖ)�”}”(hhh]”j )�”}”(hŒ+Descriptor referencing the power sequencer.”h]”hŒ+Descriptor referencing the power sequencer.”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j 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®hjtubj )�”}”(hŒ**Description**”h]”jk)�”}”(hjÔh]”hŒ Description”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÖhjtubj )�”}”(hŒÞReturn the 'dev' pointer of the power sequencer device associated with **desc**. Consumer drivers can use this to query the pwrseq provider's device tree node, for example to check for the existence of specific properties.”h]”(hŒKReturn the ‘dev’ pointer of the power sequencer device associated with ”…”�”}”(hjêh²hh³Nh´Nubjk)�”}”(hŒ**desc**”h]”hŒdesc”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjêubhŒ‘. Consumer drivers can use this to query the pwrseq provider’s device tree node, for example to check for the existence of specific properties.”…”�”}”(hjêh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÕhjtubj )�”}”(hŒwSince pwrseq_get() already takes a reference to the pwrseq device, this function does not take an additional reference.”h]”hŒwSince pwrseq_get() already takes a reference to the pwrseq device, this function does not take an additional reference.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÙhjtubj )�”}”(hŒ **Return**”h]”jk)�”}”(hjh]”hŒReturn”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MÜhjtubj )�”}”(hŒAPointer to the pwrseq struct device, or NULL if **desc** is NULL.”h]”(hŒ0Pointer to the pwrseq struct device, or NULL if ”…”�”}”(hj2h²hh³Nh´Nubjk)�”}”(hŒ**desc**”h]”hŒdesc”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhj2ubhŒ is NULL.”…”�”}”(hj2h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.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ÎŒ#pwrseq_is_controllable (C function)”Œc.pwrseq_is_controllable”hNt”auh1jÁhj°h²hh³Nh´NubjÓ)�”}”(hhh]”(jØ)�”}”(hŒ6bool pwrseq_is_controllable (struct pwrseq_desc *desc)”h]”jÞ)�”}”(hŒ5bool pwrseq_is_controllable(struct pwrseq_desc *desc)”h]”(j  )�”}”(hŒbool”h]”hŒbool”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”j¬ ah"]”h$]”h&]”uh1jŸ hjoh²hh³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Mêubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhjoh²hh³j�h´Mêubj)�”}”(hŒpwrseq_is_controllable”h]”j )�”}”(hŒpwrseq_is_controllable”h]”hŒpwrseq_is_controllable”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj�ubah}”(h]”h ]”(jj eh"]”h$]”h&]”hÅhÆuh1jhjoh²hh³j�h´Mêubjý)�”}”(hŒ(struct pwrseq_desc *desc)”h]”j )�”}”(hŒstruct pwrseq_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Œ ”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj¬ubh)�”}”(hhh]”j )�”}”(hŒ pwrseq_desc”h]”hŒ pwrseq_desc”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjËubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jUŒreftype”j³Œ reftarget”jÐŒmodname”NŒ classname”Nj·jº)�”}”j½]”jÀ)�”}”j³j–sbŒc.pwrseq_is_controllable”†”asbuh1hhj¬ubjö)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jõhj¬ubjÕ)�”}”(hjØh]”hŒ*”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj¬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”ˆhÅhÆuh1j hj¨ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühjoh²hh³j�h´Mêubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj*ˆuh1jÝj+j,hjkh²hh³j�h´Mêubah}”(h]”jfah ]”(j0j1eh"]”h$]”h&]”j5ˆj6)j7huh1j×h³j�h´Mêhjhh²hubj9)�”}”(hhh]”j )�”}”(hŒECheck whether the target provides a host-controllable power actuator.”h]”hŒECheck whether the target provides a host-controllable power actuator.”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´Mêhj0h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hjhh²hh³j�h´Mêubeh}”(h]”h ]”(jUŒfunction”eh"]”h$]”h&]”jZjUj[jKj\jKj]‰j^‰j_‰uh1jÒh²hhj°h³Nh´Nubja)�”}”(hXx**Parameters** ``struct pwrseq_desc *desc`` Descriptor referencing the power sequencer. **Description** Some power sequencing targets provide no host-controllable enable for their function on a given board, for instance when the enable line is not wired up and is instead hardwired to an always-on level. For such targets a call to pwrseq_power_off() is still allowed, so that the consumer can drop its vote on the (possibly shared) resources, but the host cannot gate the function on its own. **Return** True if the target provides a host-controllable power actuator, false otherwise. Also returns false if **desc** is NULL.”h]”(j )�”}”(hŒ**Parameters**”h]”jk)�”}”(hjUh]”hŒ Parameters”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MîhjOubj¯)�”}”(hhh]”j´)�”}”(hŒI``struct pwrseq_desc *desc`` Descriptor referencing the power sequencer. ”h]”(jº)�”}”(hŒ``struct pwrseq_desc *desc``”h]”jÀ)�”}”(hjth]”hŒstruct pwrseq_desc *desc”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿hjrubah}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MìhjnubjÖ)�”}”(hhh]”j )�”}”(hŒ+Descriptor referencing the power sequencer.”h]”hŒ+Descriptor referencing the power sequencer.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³j‰h´MìhjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1jÕhjnubeh}”(h]”h ]”h"]”h$]”h&]”uh1j³h³j‰h´Mìhjkubah}”(h]”h ]”h"]”h$]”h&]”uh1j®hjOubj )�”}”(hŒ**Description**”h]”jk)�”}”(hj¯h]”hŒ Description”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MîhjOubj )�”}”(hX…Some power sequencing targets provide no host-controllable enable for their function on a given board, for instance when the enable line is not wired up and is instead hardwired to an always-on level. For such targets a call to pwrseq_power_off() is still allowed, so that the consumer can drop its vote on the (possibly shared) resources, but the host cannot gate the function on its own.”h]”hX…Some power sequencing targets provide no host-controllable enable for their function on a given board, for instance when the enable line is not wired up and is instead hardwired to an always-on level. For such targets a call to pwrseq_power_off() is still allowed, so that the consumer can drop its vote on the (possibly shared) resources, but the host cannot gate the function on its own.”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MíhjOubj )�”}”(hŒ **Return**”h]”jk)�”}”(hjÖh]”hŒReturn”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MôhjOubj )�”}”(hŒxTrue if the target provides a host-controllable power actuator, false otherwise. Also returns false if **desc** is NULL.”h]”(hŒgTrue if the target provides a host-controllable power actuator, false otherwise. Also returns false if ”…”�”}”(hjìh²hh³Nh´Nubjk)�”}”(hŒ**desc**”h]”hŒdesc”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjìubhŒ is NULL.”…”�”}”(hjìh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³Œa/var/lib/git/docbuild/linux/Documentation/driver-api/pwrseq:94: ./drivers/power/sequencing/core.c”h´MõhjOubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j`hj°h²hh³Nh´Nubeh}”(h]”Œ api-reference”ah ]”h"]”Œ api reference”ah$]”h&]”uh1hÖhhØh²hh³hÇh´KYubeh}”(h]”Œpower-sequencing-api”ah ]”h"]”Œpower sequencing api”ah$]”h&]”uh1hÖhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hÛNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jGŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j!jjúj÷jòjïj!jj­jªj¥j¢jjuŒ nametypes”}”(j!‰jú‰jò‰j!‰j­‰j¥‰j‰uh}”(jhØj÷j-jïjZjjýjªj$j¢j_jj°jÐjÙjºj¿j„j‰jqjvj’ j— jð jõ jpjujþjjQjVj¬j±jjj¨j­jPjUjfjkuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.