$sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget(/translations/zh_CN/driver-api/regulatormodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/zh_TW/driver-api/regulatormodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/it_IT/driver-api/regulatormodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/ja_JP/driver-api/regulatormodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/ko_KR/driver-api/regulatormodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/sp_SP/driver-api/regulatormodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h,Copyright 2007-2008 Wolfson Microelectronicsh]h,Copyright 2007-2008 Wolfson Microelectronics}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhB/var/lib/git/docbuild/linux/Documentation/driver-api/regulator.rsthKubh)}(h9This documentation is free software; you can redistributeh]h9This documentation is free software; you can redistribute}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhhhhKubh)}(h=it and/or modify it under the terms of the GNU General Publich]h=it and/or modify it under the terms of the GNU General Public}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhhhhKubh)}(h?License version 2 as published by the Free Software Foundation.h]h?License version 2 as published by the Free Software Foundation.}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhhhhKubhsection)}(hhh](htitle)}(h!Voltage and current regulator APIh]h!Voltage and current regulator API}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hAuthorh]hAuthor}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(h Liam Girdwoodh]h paragraph)}(hjh]h Liam Girdwood}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK hjubah}(h]h ]h"]h$]h&]uh1j hhubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hhh](h)}(hAuthorh]hAuthor}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj.hhhKubj)}(h Mark Brown h]j)}(h Mark Brownh]h Mark Brown}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK hj?ubah}(h]h ]h"]h$]h&]uh1j hj.ubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(h Introductionh]h Introduction}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchhhhhKubj)}(hlThis framework is designed to provide a standard kernel interface to control voltage and current regulators.h]hlThis framework is designed to provide a standard kernel interface to control voltage and current regulators.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjchhubj)}(hXThe intention is to allow systems to dynamically control regulator power output in order to save power and prolong battery life. This applies to both voltage regulators (where voltage output is controllable) and current sinks (where current limit is controllable).h]hXThe intention is to allow systems to dynamically control regulator power output in order to save power and prolong battery life. This applies to both voltage regulators (where voltage output is controllable) and current sinks (where current limit is controllable).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjchhubj)}(hNote that additional (and currently more complete) documentation is available in the Linux kernel source under ``Documentation/power/regulator``.h](hoNote that additional (and currently more complete) documentation is available in the Linux kernel source under }(hjhhhNhNubhliteral)}(h!``Documentation/power/regulator``h]hDocumentation/power/regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhKhjchhubh)}(hhh](h)}(hGlossaryh]hGlossary}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj)}(hCThe regulator API uses a number of terms which may not be familiar:h]hCThe regulator API uses a number of terms which may not be familiar:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK hjhhubj)}(h Regulatorh]h Regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK"hjhhubh block_quote)}(hElectronic device that supplies power to other devices. Most regulators can enable and disable their output and some can also control their output voltage or current. h]j)}(hElectronic device that supplies power to other devices. Most regulators can enable and disable their output and some can also control their output voltage or current.h]hElectronic device that supplies power to other devices. Most regulators can enable and disable their output and some can also control their output voltage or current.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK$hjubah}(h]h ]h"]h$]h&]uh1jhhhK$hjhhubj)}(hConsumerh]hConsumer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK(hjhhubj)}(hElectronic device which consumes power provided by a regulator. These may either be static, requiring only a fixed supply, or dynamic, requiring active management of the regulator at runtime. h]j)}(hElectronic device which consumes power provided by a regulator. These may either be static, requiring only a fixed supply, or dynamic, requiring active management of the regulator at runtime.h]hElectronic device which consumes power provided by a regulator. These may either be static, requiring only a fixed supply, or dynamic, requiring active management of the regulator at runtime.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK*hjubah}(h]h ]h"]h$]h&]uh1jhhhK*hjhhubj)}(h Power Domainh]h Power Domain}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK.hjhhubj)}(hThe electronic circuit supplied by a given regulator, including the regulator and all consumer devices. The configuration of the regulator is shared between all the components in the circuit. h]j)}(hThe electronic circuit supplied by a given regulator, including the regulator and all consumer devices. The configuration of the regulator is shared between all the components in the circuit.h]hThe electronic circuit supplied by a given regulator, including the regulator and all consumer devices. The configuration of the regulator is shared between all the components in the circuit.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK0hj-ubah}(h]h ]h"]h$]h&]uh1jhhhK0hjhhubj)}(h*Power Management Integrated Circuit (PMIC)h]h*Power Management Integrated Circuit (PMIC)}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK4hjhhubj)}(hAn IC which contains numerous regulators and often also other subsystems. In an embedded system the primary PMIC is often equivalent to a combination of the PSU and southbridge in a desktop system. h]j)}(hAn IC which contains numerous regulators and often also other subsystems. In an embedded system the primary PMIC is often equivalent to a combination of the PSU and southbridge in a desktop system.h]hAn IC which contains numerous regulators and often also other subsystems. In an embedded system the primary PMIC is often equivalent to a combination of the PSU and southbridge in a desktop system.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK6hjSubah}(h]h ]h"]h$]h&]uh1jhhhK6hjhhubeh}(h]glossaryah ]h"]glossaryah$]h&]uh1hhjchhhhhKubeh}(h] introductionah ]h"] introductionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hConsumer driver interfaceh]hConsumer driver interface}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hhhhhK;ubj)}(hXiThis offers a similar API to the kernel clock framework. Consumer drivers use `get <#API-regulator-get>`__ and `put <#API-regulator-put>`__ operations to acquire and release regulators. Functions are provided to `enable <#API-regulator-enable>`__ and `disable <#API-regulator-disable>`__ the regulator and to get and set the runtime parameters of the regulator.h](hNThis offers a similar API to the kernel clock framework. Consumer drivers use }(hjhhhNhNubh reference)}(h`get <#API-regulator-get>`__h]hget}(hjhhhNhNubah}(h]h ]h"]h$]h&]namegetrefuri#API-regulator-getuh1jhjubh and }(hjhhhNhNubj)}(h`put <#API-regulator-put>`__h]hput}(hjhhhNhNubah}(h]h ]h"]h$]h&]nameputj#API-regulator-putuh1jhjubhI operations to acquire and release regulators. Functions are provided to }(hjhhhNhNubj)}(h"`enable <#API-regulator-enable>`__h]henable}(hjhhhNhNubah}(h]h ]h"]h$]h&]nameenablej#API-regulator-enableuh1jhjubh and }(hjhhhNhNubj)}(h$`disable <#API-regulator-disable>`__h]hdisable}(hjhhhNhNubah}(h]h ]h"]h$]h&]namedisablej#API-regulator-disableuh1jhjubhJ the regulator and to get and set the runtime parameters of the regulator.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhK=hj{hhubj)}(hWhen requesting regulators consumers use symbolic names for their supplies, such as "Vcc", which are mapped into actual regulator devices by the machine interface.h]hWhen requesting regulators consumers use symbolic names for their supplies, such as “Vcc”, which are mapped into actual regulator devices by the machine interface.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKDhj{hhubj)}(h~A stub version of this API is provided when the regulator framework is not in use in order to minimise the need to use ifdefs.h]h~A stub version of this API is provided when the regulator framework is not in use in order to minimise the need to use ifdefs.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKHhj{hhubh)}(hhh](h)}(hEnabling and disablingh]hEnabling and disabling}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKLubj)}(hXThe regulator API provides reference counted enabling and disabling of regulators. Consumer devices use the :c:func:`regulator_enable()` and :c:func:`regulator_disable()` functions to enable and disable regulators. Calls to the two functions must be balanced.h](hlThe regulator API provides reference counted enabling and disabling of regulators. Consumer devices use the }(hjhhhNhNubh)}(h:c:func:`regulator_enable()`h]j)}(hj(h]hregulator_enable()}(hj*hhhNhNubah}(h]h ](xrefcc-funceh"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]refdocdriver-api/regulator refdomainj5reftypefunc refexplicitrefwarn reftargetregulator_enableuh1hhhhKNhjubh and }(hjhhhNhNubh)}(h:c:func:`regulator_disable()`h]j)}(hjOh]hregulator_disable()}(hjQhhhNhNubah}(h]h ](j4j5c-funceh"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]refdocjA refdomainj5reftypefunc refexplicitrefwarnjGregulator_disableuh1hhhhKNhjubhY functions to enable and disable regulators. Calls to the two functions must be balanced.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhKNhj hhubj)}(hXWNote that since multiple consumers may be using a regulator and machine constraints may not allow the regulator to be disabled there is no guarantee that calling :c:func:`regulator_disable()` will actually cause the supply provided by the regulator to be disabled. Consumer drivers should assume that the regulator may be enabled at all times.h](hNote that since multiple consumers may be using a regulator and machine constraints may not allow the regulator to be disabled there is no guarantee that calling }(hjvhhhNhNubh)}(h:c:func:`regulator_disable()`h]j)}(hjh]hregulator_disable()}(hjhhhNhNubah}(h]h ](j4j5c-funceh"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]refdocjA refdomainj5reftypefunc refexplicitrefwarnjGregulator_disableuh1hhhhKShjvubh will actually cause the supply provided by the regulator to be disabled. Consumer drivers should assume that the regulator may be enabled at all times.}(hjvhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhKShj hhubeh}(h]enabling-and-disablingah ]h"]enabling and disablingah$]h&]uh1hhj{hhhhhKLubh)}(hhh](h)}(h Configurationh]h Configuration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKZubj)}(hSome consumer devices may need to be able to dynamically configure their supplies. For example, MMC drivers may need to select the correct operating voltage for their cards. This may be done while the regulator is enabled or disabled.h]hSome consumer devices may need to be able to dynamically configure their supplies. For example, MMC drivers may need to select the correct operating voltage for their cards. This may be done while the regulator is enabled or disabled.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK\hjhhubj)}(hXThe :c:func:`regulator_set_voltage()` and :c:func:`regulator_set_current_limit()` functions provide the primary interface for this. Both take ranges of voltages and currents, supporting drivers that do not require a specific value (eg, CPU frequency scaling normally permits the CPU to use a wider range of supply voltages at lower frequencies but does not require that the supply voltage be lowered). Where an exact value is required both minimum and maximum values should be identical.h](hThe }(hjhhhNhNubh)}(h!:c:func:`regulator_set_voltage()`h]j)}(hjh]hregulator_set_voltage()}(hjhhhNhNubah}(h]h ](j4j5c-funceh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjA refdomainj5reftypefunc refexplicitrefwarnjGregulator_set_voltageuh1hhhhKahjubh and }(hjhhhNhNubh)}(h':c:func:`regulator_set_current_limit()`h]j)}(hjh]hregulator_set_current_limit()}(hjhhhNhNubah}(h]h ](j4j5c-funceh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjA refdomainj5reftypefunc refexplicitrefwarnjGregulator_set_current_limituh1hhhhKahjubhX functions provide the primary interface for this. Both take ranges of voltages and currents, supporting drivers that do not require a specific value (eg, CPU frequency scaling normally permits the CPU to use a wider range of supply voltages at lower frequencies but does not require that the supply voltage be lowered). Where an exact value is required both minimum and maximum values should be identical.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhKahjhhubeh}(h] configurationah ]h"] configurationah$]h&]uh1hhj{hhhhhKZubh)}(hhh](h)}(h Callbacksh]h Callbacks}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hhhhhKkubj)}(hHCallbacks may also be registered for events such as regulation failures.h]hHCallbacks may also be registered for events such as regulation failures.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKmhj*hhubeh}(h] callbacksah ]h"] callbacksah$]h&]uh1hhj{hhhhhKkubeh}(h]consumer-driver-interfaceah ]h"]consumer driver interfaceah$]h&]uh1hhhhhhhhK;ubh)}(hhh](h)}(hRegulator driver interfaceh]hRegulator driver interface}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhhhhhKpubj)}(hDrivers for regulator chips register the regulators with the regulator core, providing operations structures to the core. A notifier interface allows error conditions to be reported to the core.h]hDrivers for regulator chips register the regulators with the regulator core, providing operations structures to the core. A notifier interface allows error conditions to be reported to the core.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKrhjYhhubj)}(hRegistration should be triggered by explicit setup done by the platform, supplying a struct regulator_init_data for the regulator containing constraint and supply information.h]hRegistration should be triggered by explicit setup done by the platform, supplying a struct regulator_init_data for the regulator containing constraint and supply information.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKvhjYhhubeh}(h]regulator-driver-interfaceah ]h"]regulator driver interfaceah$]h&]uh1hhhhhhhhKpubh)}(hhh](h)}(hMachine interfaceh]hMachine interface}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK{ubj)}(hThis interface provides a way to define how regulators are connected to consumers on a given system and what the valid operating parameters are for the system.h]hThis interface provides a way to define how regulators are connected to consumers on a given system and what the valid operating parameters are for the system.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK}hjhhubh)}(hhh](h)}(hSuppliesh]hSupplies}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj)}(hRegulator supplies are specified using struct :c:type:`regulator_consumer_supply`. This is done at driver registration time as part of the machine constraints.h](h.Regulator supplies are specified using struct }(hjhhhNhNubh)}(h#:c:type:`regulator_consumer_supply`h]j)}(hjh]hregulator_consumer_supply}(hjhhhNhNubah}(h]h ](j4j5c-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjA refdomainj5reftypetype refexplicitrefwarnjGregulator_consumer_supplyuh1hhhhKhjubhN. This is done at driver registration time as part of the machine constraints.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhhhKhjhhubeh}(h]suppliesah ]h"]suppliesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(h Constraintsh]h Constraints}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj)}(hX|As well as defining the connections the machine interface also provides constraints defining the operations that clients are allowed to perform and the parameters that may be set. This is required since generally regulator devices will offer more flexibility than it is safe to use on a given system, for example supporting higher supply voltages than the consumers are rated for.h]hX|As well as defining the connections the machine interface also provides constraints defining the operations that clients are allowed to perform and the parameters that may be set. This is required since generally regulator devices will offer more flexibility than it is safe to use on a given system, for example supporting higher supply voltages than the consumers are rated for.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjhhubj)}(hWThis is done at driver registration time` by providing a struct regulation_constraints.h]hWThis is done at driver registration time` by providing a struct regulation_constraints.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjhhubj)}(hThe constraints may also specify an initial configuration for the regulator in the constraints, which is particularly useful for use with static consumers.h]hThe constraints may also specify an initial configuration for the regulator in the constraints, which is particularly useful for use with static consumers.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjhhubeh}(h] constraintsah ]h"] constraintsah$]h&]uh1hhjhhhhhKubeh}(h]machine-interfaceah ]h"]machine interfaceah$]h&]uh1hhhhhhhhK{ubh)}(hhh](h)}(h API referenceh]h API reference}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhhhhhKubj)}(hDue to limitations of the kernel documentation framework and the existing layout of the source code the entire regulator API is documented here.h]hDue to limitations of the kernel documentation framework and the existing layout of the source code the entire regulator API is documented here.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjBhhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single"pre_voltage_change_data (C struct)c.pre_voltage_change_datahNtauh1jahjBhhhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhNubhdesc)}(hhh](hdesc_signature)}(hpre_voltage_change_datah]hdesc_signature_line)}(hstruct pre_voltage_change_datah](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjhhhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhKubh desc_name)}(hpre_voltage_change_datah]h desc_sig_name)}(hj|h]hpre_voltage_change_data}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1j~sphinx_line_type declaratorhjzhhhjhKubah}(h]jpah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jxhjhKhjuhhubh desc_content)}(hhh]j)}(h'Data sent with PRE_VOLTAGE_CHANGE eventh]h'Data sent with PRE_VOLTAGE_CHANGE event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKphjhhubah}(h]h ]h"]h$]h&]uh1jhjuhhhjhKubeh}(h]h ](j5structeh"]h$]h&]domainj5objtypejdesctypejnoindex noindexentrynocontentsentryuh1jshhhjBhjrhNubh container)}(hX**Definition**:: struct pre_voltage_change_data { unsigned long old_uV; unsigned long min_uV; unsigned long max_uV; }; **Members** ``old_uV`` Current voltage before change. ``min_uV`` Min voltage we'll change to. ``max_uV`` Max voltage we'll change to.h](j)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKthjubh literal_block)}(hqstruct pre_voltage_change_data { unsigned long old_uV; unsigned long min_uV; unsigned long max_uV; };h]hqstruct pre_voltage_change_data { unsigned long old_uV; unsigned long min_uV; unsigned long max_uV; };}hj'sbah}(h]h ]h"]h$]h&]hhuh1j%hh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKvhjubj)}(h **Members**h]j )}(hj8h]hMembers}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj6ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhK|hjubhdefinition_list)}(hhh](hdefinition_list_item)}(h*``old_uV`` Current voltage before change. h](hterm)}(h ``old_uV``h]j)}(hj]h]hold_uV}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jYhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKshjUubh definition)}(hhh]j)}(hCurrent voltage before change.h]hCurrent voltage before change.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrhKshjuubah}(h]h ]h"]h$]h&]uh1jshjUubeh}(h]h ]h"]h$]h&]uh1jShjrhKshjPubjT)}(h(``min_uV`` Min voltage we'll change to. h](jZ)}(h ``min_uV``h]j)}(hjh]hmin_uV}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKthjubjt)}(hhh]j)}(hMin voltage we'll change to.h]hMin voltage we’ll change to.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKthjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKthjPubjT)}(h'``max_uV`` Max voltage we'll change to.h](jZ)}(h ``max_uV``h]j)}(hjh]hmax_uV}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKthjubjt)}(hhh]j)}(hMax voltage we'll change to.h]hMax voltage we’ll change to.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKuhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKthjPubeh}(h]h ]h"]h$]h&]uh1jNhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhjrhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnregulator_bulk_data (C struct)c.regulator_bulk_datahNtauh1jahjBhhhjrhNubjt)}(hhh](jy)}(hregulator_bulk_datah]j)}(hstruct regulator_bulk_datah](j)}(hjh]hstruct}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'hhhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhK{ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'hhhj8hK{ubj)}(hregulator_bulk_datah]j)}(hj%h]hregulator_bulk_data}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubah}(h]h ](jjeh"]h$]h&]hhuh1jhj'hhhj8hK{ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj#hhhj8hK{ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jxhj8hK{hj hhubj)}(hhh]j)}(h(Data used for bulk regulator operations.h]h(Data used for bulk regulator operations.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjjhhubah}(h]h ]h"]h$]h&]uh1jhj hhhj8hK{ubeh}(h]h ](j5structeh"]h$]h&]jj5jjjjjjjuh1jshhhjBhjrhNubj)}(hX**Definition**:: struct regulator_bulk_data { const char *supply; struct regulator *consumer; int init_load_uA; }; **Members** ``supply`` The name of the supply. Initialised by the user before using the bulk regulator APIs. ``consumer`` The regulator consumer for the supply. This will be managed by the bulk API. ``init_load_uA`` After getting the regulator, regulator_set_load() will be called with this load. Initialised by the user before using the bulk regulator APIs.h](j)}(h**Definition**::h](j )}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjubj&)}(hmstruct regulator_bulk_data { const char *supply; struct regulator *consumer; int init_load_uA; };h]hmstruct regulator_bulk_data { const char *supply; struct regulator *consumer; int init_load_uA; };}hjsbah}(h]h ]h"]h$]h&]hhuh1j%hh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjubj)}(h **Members**h]j )}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjubjO)}(hhh](jT)}(hb``supply`` The name of the supply. Initialised by the user before using the bulk regulator APIs. h](jZ)}(h ``supply``h]j)}(hjh]hsupply}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjubjt)}(hhh]j)}(hVThe name of the supply. Initialised by the user before using the bulk regulator APIs.h]hVThe name of the supply. Initialised by the user before using the bulk regulator APIs.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKhjubjT)}(h[``consumer`` The regulator consumer for the supply. This will be managed by the bulk API. h](jZ)}(h ``consumer``h]j)}(hjh]hconsumer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjubjt)}(hhh]j)}(hMThe regulator consumer for the supply. This will be managed by the bulk API.h]hMThe regulator consumer for the supply. This will be managed by the bulk API.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhj*ubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShj)hKhjubjT)}(h``init_load_uA`` After getting the regulator, regulator_set_load() will be called with this load. Initialised by the user before using the bulk regulator APIs.h](jZ)}(h``init_load_uA``h]j)}(hjNh]h init_load_uA}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jYhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjHubjt)}(hhh]j)}(hAfter getting the regulator, regulator_set_load() will be called with this load. Initialised by the user before using the bulk regulator APIs.h]hAfter getting the regulator, regulator_set_load() will be called with this load. Initialised by the user before using the bulk regulator APIs.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjdubah}(h]h ]h"]h$]h&]uh1jshjHubeh}(h]h ]h"]h$]h&]uh1jShjchKhjubeh}(h]h ]h"]h$]h&]uh1jNhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhjrhNubj)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjBhhubj)}(hThe regulator APIs provide a series of regulator_bulk_() API calls as a convenience to consumers which require multiple supplies. This structure is used to manage data for these calls.h]hThe regulator APIs provide a series of regulator_bulk_() API calls as a convenience to consumers which require multiple supplies. This structure is used to manage data for these calls.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjBhhubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnregulator_state (C struct)c.regulator_statehNtauh1jahjBhhhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhNubjt)}(hhh](jy)}(hregulator_stateh]j)}(hstruct regulator_stateh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(hregulator_stateh]j)}(hjh]hregulator_state}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jxhjhKhjhhubj)}(hhh]j)}(h.regulator state during low power system statesh]h.regulator state during low power system states}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKChj hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](j5structeh"]h$]h&]jj5jj* jj* jjjuh1jshhhjBhjhNubj)}(hX^**Definition**:: struct regulator_state { int uV; int min_uV; int max_uV; unsigned int mode; int enabled; bool changeable; }; **Members** ``uV`` Default operating voltage during suspend, it can be adjusted among . ``min_uV`` Minimum suspend voltage may be set. ``max_uV`` Maximum suspend voltage may be set. ``mode`` Operating mode during suspend. ``enabled`` operations during suspend. - DO_NOTHING_IN_SUSPEND - DISABLE_IN_SUSPEND - ENABLE_IN_SUSPEND ``changeable`` Is this state can be switched between enabled/disabled,h](j)}(h**Definition**::h](j )}(h**Definition**h]h Definition}(hj6 hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj2 ubh:}(hj2 hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKGhj. ubj&)}(hstruct regulator_state { int uV; int min_uV; int max_uV; unsigned int mode; int enabled; bool changeable; };h]hstruct regulator_state { int uV; int min_uV; int max_uV; unsigned int mode; int enabled; bool changeable; };}hjO sbah}(h]h ]h"]h$]h&]hhuh1j%hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKIhj. ubj)}(h **Members**h]j )}(hj` h]hMembers}(hjb hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj^ ubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKRhj. ubjO)}(hhh](jT)}(h\``uV`` Default operating voltage during suspend, it can be adjusted among . h](jZ)}(h``uV``h]j)}(hj h]huV}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj} ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKKhjy ubjt)}(hhh]j)}(hTDefault operating voltage during suspend, it can be adjusted among .h]hTDefault operating voltage during suspend, it can be adjusted among .}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKJhj ubah}(h]h ]h"]h$]h&]uh1jshjy ubeh}(h]h ]h"]h$]h&]uh1jShj hKKhjv ubjT)}(h/``min_uV`` Minimum suspend voltage may be set. h](jZ)}(h ``min_uV``h]j)}(hj h]hmin_uV}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKLhj ubjt)}(hhh]j)}(h#Minimum suspend voltage may be set.h]h#Minimum suspend voltage may be set.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hKLhj ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj hKLhjv ubjT)}(h/``max_uV`` Maximum suspend voltage may be set. h](jZ)}(h ``max_uV``h]j)}(hj h]hmax_uV}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKMhj ubjt)}(hhh]j)}(h#Maximum suspend voltage may be set.h]h#Maximum suspend voltage may be set.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hKMhj ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj hKMhjv ubjT)}(h(``mode`` Operating mode during suspend. h](jZ)}(h``mode``h]j)}(hj+ h]hmode}(hj- hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj) ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKNhj% ubjt)}(hhh]j)}(hOperating mode during suspend.h]hOperating mode during suspend.}(hjD hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ hKNhjA ubah}(h]h ]h"]h$]h&]uh1jshj% ubeh}(h]h ]h"]h$]h&]uh1jShj@ hKNhjv ubjT)}(hh``enabled`` operations during suspend. - DO_NOTHING_IN_SUSPEND - DISABLE_IN_SUSPEND - ENABLE_IN_SUSPEND h](jZ)}(h ``enabled``h]j)}(hjd h]henabled}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKRhj^ ubjt)}(hhh]j)}(h[operations during suspend. - DO_NOTHING_IN_SUSPEND - DISABLE_IN_SUSPEND - ENABLE_IN_SUSPENDh]h[operations during suspend. - DO_NOTHING_IN_SUSPEND - DISABLE_IN_SUSPEND - ENABLE_IN_SUSPEND}(hj} hhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKOhjz ubah}(h]h ]h"]h$]h&]uh1jshj^ ubeh}(h]h ]h"]h$]h&]uh1jShjy hKRhjv ubjT)}(hF``changeable`` Is this state can be switched between enabled/disabled,h](jZ)}(h``changeable``h]j)}(hj h]h changeable}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKRhj ubjt)}(hhh]j)}(h7Is this state can be switched between enabled/disabled,h]h7Is this state can be switched between enabled/disabled,}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKShj ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj hKRhjv ubeh}(h]h ]h"]h$]h&]uh1jNhj. ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhjhNubj)}(h**Description**h]j )}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKVhjBhhubj)}(hThis describes a regulators state during a system wide low power state. One of enabled or disabled must be set for the configuration to be applied.h]hThis describes a regulators state during a system wide low power state. One of enabled or disabled must be set for the configuration to be applied.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKDhjBhhubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn!regulation_constraints (C struct)c.regulation_constraintshNtauh1jahjBhhhjhNubjt)}(hhh](jy)}(hregulation_constraintsh]j)}(hstruct regulation_constraintsh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKKubj)}(h h]h }(hj- hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj, hKKubj)}(hregulation_constraintsh]j)}(hj h]hregulation_constraints}(hj? hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj; ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj hhhj, hKKubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj hhhj, hKKubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jxhj, hKKhj hhubj)}(hhh]j)}(h regulator operating constraints.h]h regulator operating constraints.}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKfhj^ hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj, hKKubeh}(h]h ](j5structeh"]h$]h&]jj5jjy jjy jjjuh1jshhhjBhjhNubj)}(hX**Definition**:: struct regulation_constraints { const char *name; int min_uV; int max_uV; int uV_offset; int min_uA; int max_uA; int ilim_uA; int pw_budget_mW; int system_load; u32 *max_spread; int max_uV_step; unsigned int valid_modes_mask; unsigned int valid_ops_mask; int input_uV; struct regulator_state state_disk; struct regulator_state state_mem; struct regulator_state state_standby; struct notification_limit over_curr_limits; struct notification_limit over_voltage_limits; struct notification_limit under_voltage_limits; struct notification_limit temp_limits; suspend_state_t initial_state; unsigned int initial_mode; unsigned int ramp_delay; unsigned int settling_time; unsigned int settling_time_up; unsigned int settling_time_down; unsigned int enable_time; unsigned int uv_less_critical_window_ms; unsigned int active_discharge; unsigned always_on:1; unsigned boot_on:1; unsigned apply_uV:1; unsigned ramp_disable:1; unsigned soft_start:1; unsigned pull_down:1; unsigned system_critical:1; unsigned over_current_protection:1; unsigned over_current_detection:1; unsigned over_voltage_detection:1; unsigned under_voltage_detection:1; unsigned over_temp_detection:1; }; **Members** ``name`` Descriptive name for the constraints, used for display purposes. ``min_uV`` Smallest voltage consumers may set. ``max_uV`` Largest voltage consumers may set. ``uV_offset`` Offset applied to voltages from consumer to compensate for voltage drops. ``min_uA`` Smallest current consumers may set. ``max_uA`` Largest current consumers may set. ``ilim_uA`` Maximum input current. ``pw_budget_mW`` Power budget for the regulator in mW. ``system_load`` Load that isn't captured by any consumer requests. ``max_spread`` Max possible spread between coupled regulators ``max_uV_step`` Max possible step change in voltage ``valid_modes_mask`` Mask of modes which may be configured by consumers. ``valid_ops_mask`` Operations which may be performed by consumers. ``input_uV`` Input voltage for regulator when supplied by another regulator. ``state_disk`` State for regulator when system is suspended in disk mode. ``state_mem`` State for regulator when system is suspended in mem mode. ``state_standby`` State for regulator when system is suspended in standby mode. ``over_curr_limits`` Limits for acting on over current. ``over_voltage_limits`` Limits for acting on over voltage. ``under_voltage_limits`` Limits for acting on under voltage. ``temp_limits`` Limits for acting on over temperature. ``initial_state`` Suspend state to set by default. ``initial_mode`` Mode to set at startup. ``ramp_delay`` Time to settle down after voltage change (unit: uV/us) ``settling_time`` Time to settle down after voltage change when voltage change is non-linear (unit: microseconds). ``settling_time_up`` Time to settle down after voltage increase when voltage change is non-linear (unit: microseconds). ``settling_time_down`` Time to settle down after voltage decrease when voltage change is non-linear (unit: microseconds). ``enable_time`` Turn-on time of the rails (unit: microseconds) ``uv_less_critical_window_ms`` Specifies the time window (in milliseconds) following a critical under-voltage (UV) event during which less critical actions can be safely carried out by the system (for example logging). After this time window more critical actions should be done (for example prevent HW damage). ``active_discharge`` Enable/disable active discharge. The enum regulator_active_discharge values are used for initialisation. ``always_on`` Set if the regulator should never be disabled. ``boot_on`` Set if the regulator is enabled when the system is initially started. If the regulator is not enabled by the hardware or bootloader then it will be enabled when the constraints are applied. ``apply_uV`` Apply the voltage constraint when initialising. ``ramp_disable`` Disable ramp delay when initialising or when setting voltage. ``soft_start`` Enable soft start so that voltage ramps slowly. ``pull_down`` Enable pull down when regulator is disabled. ``system_critical`` Set if the regulator is critical to system stability or functionality. ``over_current_protection`` Auto disable on over current event. ``over_current_detection`` Configure over current limits. ``over_voltage_detection`` Configure over voltage limits. ``under_voltage_detection`` Configure under voltage limits. ``over_temp_detection`` Configure over temperature limits.h](j)}(h**Definition**::h](j )}(h**Definition**h]h Definition}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubh:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKjhj} ubj&)}(hX4struct regulation_constraints { const char *name; int min_uV; int max_uV; int uV_offset; int min_uA; int max_uA; int ilim_uA; int pw_budget_mW; int system_load; u32 *max_spread; int max_uV_step; unsigned int valid_modes_mask; unsigned int valid_ops_mask; int input_uV; struct regulator_state state_disk; struct regulator_state state_mem; struct regulator_state state_standby; struct notification_limit over_curr_limits; struct notification_limit over_voltage_limits; struct notification_limit under_voltage_limits; struct notification_limit temp_limits; suspend_state_t initial_state; unsigned int initial_mode; unsigned int ramp_delay; unsigned int settling_time; unsigned int settling_time_up; unsigned int settling_time_down; unsigned int enable_time; unsigned int uv_less_critical_window_ms; unsigned int active_discharge; unsigned always_on:1; unsigned boot_on:1; unsigned apply_uV:1; unsigned ramp_disable:1; unsigned soft_start:1; unsigned pull_down:1; unsigned system_critical:1; unsigned over_current_protection:1; unsigned over_current_detection:1; unsigned over_voltage_detection:1; unsigned under_voltage_detection:1; unsigned over_temp_detection:1; };h]hX4struct regulation_constraints { const char *name; int min_uV; int max_uV; int uV_offset; int min_uA; int max_uA; int ilim_uA; int pw_budget_mW; int system_load; u32 *max_spread; int max_uV_step; unsigned int valid_modes_mask; unsigned int valid_ops_mask; int input_uV; struct regulator_state state_disk; struct regulator_state state_mem; struct regulator_state state_standby; struct notification_limit over_curr_limits; struct notification_limit over_voltage_limits; struct notification_limit under_voltage_limits; struct notification_limit temp_limits; suspend_state_t initial_state; unsigned int initial_mode; unsigned int ramp_delay; unsigned int settling_time; unsigned int settling_time_up; unsigned int settling_time_down; unsigned int enable_time; unsigned int uv_less_critical_window_ms; unsigned int active_discharge; unsigned always_on:1; unsigned boot_on:1; unsigned apply_uV:1; unsigned ramp_disable:1; unsigned soft_start:1; unsigned pull_down:1; unsigned system_critical:1; unsigned over_current_protection:1; unsigned over_current_detection:1; unsigned over_voltage_detection:1; unsigned under_voltage_detection:1; unsigned over_temp_detection:1; };}hj sbah}(h]h ]h"]h$]h&]hhuh1j%hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKlhj} ubj)}(h **Members**h]j )}(hj h]hMembers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj} ubjO)}(hhh](jT)}(hJ``name`` Descriptive name for the constraints, used for display purposes. h](jZ)}(h``name``h]j)}(hj h]hname}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKkhj ubjt)}(hhh]j)}(h@Descriptive name for the constraints, used for display purposes.h]h@Descriptive name for the constraints, used for display purposes.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hKkhj ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj hKkhj ubjT)}(h/``min_uV`` Smallest voltage consumers may set. h](jZ)}(h ``min_uV``h]j)}(hj h]hmin_uV}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKmhj ubjt)}(hhh]j)}(h#Smallest voltage consumers may set.h]h#Smallest voltage consumers may set.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hKmhj ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj hKmhj ubjT)}(h.``max_uV`` Largest voltage consumers may set. h](jZ)}(h ``max_uV``h]j)}(hj@ h]hmax_uV}(hjB hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj> ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKnhj: ubjt)}(hhh]j)}(h"Largest voltage consumers may set.h]h"Largest voltage consumers may set.}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjU hKnhjV ubah}(h]h ]h"]h$]h&]uh1jshj: ubeh}(h]h ]h"]h$]h&]uh1jShjU hKnhj ubjT)}(hX``uV_offset`` Offset applied to voltages from consumer to compensate for voltage drops. h](jZ)}(h ``uV_offset``h]j)}(hjy h]h uV_offset}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKphjs ubjt)}(hhh]j)}(hIOffset applied to voltages from consumer to compensate for voltage drops.h]hIOffset applied to voltages from consumer to compensate for voltage drops.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKohj ubah}(h]h ]h"]h$]h&]uh1jshjs ubeh}(h]h ]h"]h$]h&]uh1jShj hKphj ubjT)}(h/``min_uA`` Smallest current consumers may set. h](jZ)}(h ``min_uA``h]j)}(hj h]hmin_uA}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKrhj ubjt)}(hhh]j)}(h#Smallest current consumers may set.h]h#Smallest current consumers may set.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hKrhj ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj hKrhj ubjT)}(h.``max_uA`` Largest current consumers may set. h](jZ)}(h ``max_uA``h]j)}(hj h]hmax_uA}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKshj ubjt)}(hhh]j)}(h"Largest current consumers may set.h]h"Largest current consumers may set.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hKshj ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj hKshj ubjT)}(h#``ilim_uA`` Maximum input current. h](jZ)}(h ``ilim_uA``h]j)}(hj% h]hilim_uA}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj# ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKthj ubjt)}(hhh]j)}(hMaximum input current.h]hMaximum input current.}(hj> hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj: hKthj; ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj: hKthj ubjT)}(h7``pw_budget_mW`` Power budget for the regulator in mW. h](jZ)}(h``pw_budget_mW``h]j)}(hj^ h]h pw_budget_mW}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKuhjX ubjt)}(hhh]j)}(h%Power budget for the regulator in mW.h]h%Power budget for the regulator in mW.}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs hKuhjt ubah}(h]h ]h"]h$]h&]uh1jshjX ubeh}(h]h ]h"]h$]h&]uh1jShjs hKuhj ubjT)}(hC``system_load`` Load that isn't captured by any consumer requests. h](jZ)}(h``system_load``h]j)}(hj h]h system_load}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKvhj ubjt)}(hhh]j)}(h2Load that isn't captured by any consumer requests.h]h4Load that isn’t captured by any consumer requests.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hKvhj ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj hKvhj ubjT)}(h>``max_spread`` Max possible spread between coupled regulators h](jZ)}(h``max_spread``h]j)}(hj h]h max_spread}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhK}hj ubjt)}(hhh]j)}(h.Max possible spread between coupled regulatorsh]h.Max possible spread between coupled regulators}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hK}hj ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj hK}hj ubjT)}(h4``max_uV_step`` Max possible step change in voltage h](jZ)}(h``max_uV_step``h]j)}(hj h]h max_uV_step}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhK~hjubjt)}(hhh]j)}(h#Max possible step change in voltageh]h#Max possible step change in voltage}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhK~hjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhK~hj ubjT)}(hI``valid_modes_mask`` Mask of modes which may be configured by consumers. h](jZ)}(h``valid_modes_mask``h]j)}(hjBh]hvalid_modes_mask}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj<ubjt)}(hhh]j)}(h3Mask of modes which may be configured by consumers.h]h3Mask of modes which may be configured by consumers.}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWhKhjXubah}(h]h ]h"]h$]h&]uh1jshj<ubeh}(h]h ]h"]h$]h&]uh1jShjWhKhj ubjT)}(hC``valid_ops_mask`` Operations which may be performed by consumers. h](jZ)}(h``valid_ops_mask``h]j)}(hj{h]hvalid_ops_mask}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjuubjt)}(hhh]j)}(h/Operations which may be performed by consumers.h]h/Operations which may be performed by consumers.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jshjuubeh}(h]h ]h"]h$]h&]uh1jShjhKhj ubjT)}(hM``input_uV`` Input voltage for regulator when supplied by another regulator. h](jZ)}(h ``input_uV``h]j)}(hjh]hinput_uV}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubjt)}(hhh]j)}(h?Input voltage for regulator when supplied by another regulator.h]h?Input voltage for regulator when supplied by another regulator.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKhj ubjT)}(hJ``state_disk`` State for regulator when system is suspended in disk mode. h](jZ)}(h``state_disk``h]j)}(hjh]h state_disk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubjt)}(hhh]j)}(h:State for regulator when system is suspended in disk mode.h]h:State for regulator when system is suspended in disk mode.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKhj ubjT)}(hH``state_mem`` State for regulator when system is suspended in mem mode. h](jZ)}(h ``state_mem``h]j)}(hj&h]h state_mem}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj ubjt)}(hhh]j)}(h9State for regulator when system is suspended in mem mode.h]h9State for regulator when system is suspended in mem mode.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;hKhj<ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj;hKhj ubjT)}(hP``state_standby`` State for regulator when system is suspended in standby mode. h](jZ)}(h``state_standby``h]j)}(hj_h]h state_standby}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjYubjt)}(hhh]j)}(h=State for regulator when system is suspended in standby mode.h]h=State for regulator when system is suspended in standby mode.I}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjuubah}(h]h ]h"]h$]h&]uh1jshjYubeh}(h]h ]h"]h$]h&]uh1jShjthKhj ubjT)}(h8``over_curr_limits`` Limits for acting on over current. h](jZ)}(h``over_curr_limits``h]j)}(hjh]hover_curr_limits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKxhjubjt)}(hhh]j)}(h"Limits for acting on over current.h]h"Limits for acting on over current.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKxhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKxhj ubjT)}(h;``over_voltage_limits`` Limits for acting on over voltage. h](jZ)}(h``over_voltage_limits``h]j)}(hjh]hover_voltage_limits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKyhjubjt)}(hhh]j)}(h"Limits for acting on over voltage.h]h"Limits for acting on over voltage.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKyhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKyhj ubjT)}(h=``under_voltage_limits`` Limits for acting on under voltage. h](jZ)}(h``under_voltage_limits``h]j)}(hj h]hunder_voltage_limits}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKzhjubjt)}(hhh]j)}(h#Limits for acting on under voltage.h]h#Limits for acting on under voltage.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hKzhj!ubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShj hKzhj ubjT)}(h7``temp_limits`` Limits for acting on over temperature. h](jZ)}(h``temp_limits``h]j)}(hjDh]h temp_limits}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhK{hj>ubjt)}(hhh]j)}(h&Limits for acting on over temperature.h]h&Limits for acting on over temperature.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYhK{hjZubah}(h]h ]h"]h$]h&]uh1jshj>ubeh}(h]h ]h"]h$]h&]uh1jShjYhK{hj ubjT)}(h3``initial_state`` Suspend state to set by default. h](jZ)}(h``initial_state``h]j)}(hj}h]h initial_state}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjwubjt)}(hhh]j)}(h Suspend state to set by default.h]h Suspend state to set by default.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jshjwubeh}(h]h ]h"]h$]h&]uh1jShjhKhj ubjT)}(h)``initial_mode`` Mode to set at startup. h](jZ)}(h``initial_mode``h]j)}(hjh]h initial_mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubjt)}(hhh]j)}(hMode to set at startup.h]hMode to set at startup.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKhj ubjT)}(hF``ramp_delay`` Time to settle down after voltage change (unit: uV/us) h](jZ)}(h``ramp_delay``h]j)}(hjh]h ramp_delay}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubjt)}(hhh]j)}(h6Time to settle down after voltage change (unit: uV/us)h]h6Time to settle down after voltage change (unit: uV/us)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKhj ubjT)}(hs``settling_time`` Time to settle down after voltage change when voltage change is non-linear (unit: microseconds). h](jZ)}(h``settling_time``h]j)}(hj(h]h settling_time}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj"ubjt)}(hhh]j)}(h`Time to settle down after voltage change when voltage change is non-linear (unit: microseconds).h]h`Time to settle down after voltage change when voltage change is non-linear (unit: microseconds).}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj>ubah}(h]h ]h"]h$]h&]uh1jshj"ubeh}(h]h ]h"]h$]h&]uh1jShj=hKhj ubjT)}(hx``settling_time_up`` Time to settle down after voltage increase when voltage change is non-linear (unit: microseconds). h](jZ)}(h``settling_time_up``h]j)}(hjbh]hsettling_time_up}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj\ubjt)}(hhh]j)}(hbTime to settle down after voltage increase when voltage change is non-linear (unit: microseconds).h]hbTime to settle down after voltage increase when voltage change is non-linear (unit: microseconds).}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjxubah}(h]h ]h"]h$]h&]uh1jshj\ubeh}(h]h ]h"]h$]h&]uh1jShjwhKhj ubjT)}(hz``settling_time_down`` Time to settle down after voltage decrease when voltage change is non-linear (unit: microseconds). h](jZ)}(h``settling_time_down``h]j)}(hjh]hsettling_time_down}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubjt)}(hhh]j)}(hbTime to settle down after voltage decrease when voltage change is non-linear (unit: microseconds).h]hbTime to settle down after voltage decrease when voltage change is non-linear (unit: microseconds).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKhj ubjT)}(h?``enable_time`` Turn-on time of the rails (unit: microseconds) h](jZ)}(h``enable_time``h]j)}(hjh]h enable_time}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubjt)}(hhh]j)}(h.Turn-on time of the rails (unit: microseconds)h]h.Turn-on time of the rails (unit: microseconds)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKhj ubjT)}(hX8``uv_less_critical_window_ms`` Specifies the time window (in milliseconds) following a critical under-voltage (UV) event during which less critical actions can be safely carried out by the system (for example logging). After this time window more critical actions should be done (for example prevent HW damage). h](jZ)}(h``uv_less_critical_window_ms``h]j)}(hjh]huv_less_critical_window_ms}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj ubjt)}(hhh]j)}(hXSpecifies the time window (in milliseconds) following a critical under-voltage (UV) event during which less critical actions can be safely carried out by the system (for example logging). After this time window more critical actions should be done (for example prevent HW damage).h]hXSpecifies the time window (in milliseconds) following a critical under-voltage (UV) event during which less critical actions can be safely carried out by the system (for example logging). After this time window more critical actions should be done (for example prevent HW damage).}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj%ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj$hKhj ubjT)}(h~``active_discharge`` Enable/disable active discharge. The enum regulator_active_discharge values are used for initialisation. h](jZ)}(h``active_discharge``h]j)}(hjIh]hactive_discharge}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjCubjt)}(hhh]j)}(hhEnable/disable active discharge. The enum regulator_active_discharge values are used for initialisation.h]hhEnable/disable active discharge. The enum regulator_active_discharge values are used for initialisation.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj_ubah}(h]h ]h"]h$]h&]uh1jshjCubeh}(h]h ]h"]h$]h&]uh1jShj^hKhj ubjT)}(h=``always_on`` Set if the regulator should never be disabled. h](jZ)}(h ``always_on``h]j)}(hjh]h always_on}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj}ubjt)}(hhh]j)}(h.Set if the regulator should never be disabled.h]h.Set if the regulator should never be disabled.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jshj}ubeh}(h]h ]h"]h$]h&]uh1jShjhKhj ubjT)}(h``boot_on`` Set if the regulator is enabled when the system is initially started. If the regulator is not enabled by the hardware or bootloader then it will be enabled when the constraints are applied. h](jZ)}(h ``boot_on``h]j)}(hjh]hboot_on}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubjt)}(hhh]j)}(hSet if the regulator is enabled when the system is initially started. If the regulator is not enabled by the hardware or bootloader then it will be enabled when the constraints are applied.h]hSet if the regulator is enabled when the system is initially started. If the regulator is not enabled by the hardware or bootloader then it will be enabled when the constraints are applied.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKhj ubjT)}(h=``apply_uV`` Apply the voltage constraint when initialising. h](jZ)}(h ``apply_uV``h]j)}(hjh]happly_uV}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubjt)}(hhh]j)}(h/Apply the voltage constraint when initialising.h]h/Apply the voltage constraint when initialising.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hKhj ubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShj hKhj ubjT)}(hO``ramp_disable`` Disable ramp delay when initialising or when setting voltage. h](jZ)}(h``ramp_disable``h]j)}(hj/h]h ramp_disable}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj)ubjt)}(hhh]j)}(h=Disable ramp delay when initialising or when setting voltage.h]h=Disable ramp delay when initialising or when setting voltage.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDhKhjEubah}(h]h ]h"]h$]h&]uh1jshj)ubeh}(h]h ]h"]h$]h&]uh1jShjDhKhj ubjT)}(h?``soft_start`` Enable soft start so that voltage ramps slowly. h](jZ)}(h``soft_start``h]j)}(hjhh]h soft_start}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjbubjt)}(hhh]j)}(h/Enable soft start so that voltage ramps slowly.h]h/Enable soft start so that voltage ramps slowly.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}hKhj~ubah}(h]h ]h"]h$]h&]uh1jshjbubeh}(h]h ]h"]h$]h&]uh1jShj}hKhj ubjT)}(h;``pull_down`` Enable pull down when regulator is disabled. h](jZ)}(h ``pull_down``h]j)}(hjh]h pull_down}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubjt)}(hhh]j)}(h,Enable pull down when regulator is disabled.h]h,Enable pull down when regulator is disabled.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKhj ubjT)}(h[``system_critical`` Set if the regulator is critical to system stability or functionality. h](jZ)}(h``system_critical``h]j)}(hjh]hsystem_critical}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubjt)}(hhh]j)}(hFSet if the regulator is critical to system stability or functionality.h]hFSet if the regulator is critical to system stability or functionality.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKhj ubjT)}(h@``over_current_protection`` Auto disable on over current event. h](jZ)}(h``over_current_protection``h]j)}(hjh]hover_current_protection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubjt)}(hhh]j)}(h#Auto disable on over current event.h]h#Auto disable on over current event.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)hKhj*ubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShj)hKhj ubjT)}(h:``over_current_detection`` Configure over current limits. h](jZ)}(h``over_current_detection``h]j)}(hjMh]hover_current_detection}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjGubjt)}(hhh]j)}(hConfigure over current limits.h]hConfigure over current limits.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbhKhjcubah}(h]h ]h"]h$]h&]uh1jshjGubeh}(h]h ]h"]h$]h&]uh1jShjbhKhj ubjT)}(h:``over_voltage_detection`` Configure over voltage limits. h](jZ)}(h``over_voltage_detection``h]j)}(hjh]hover_voltage_detection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubjt)}(hhh]j)}(hConfigure over voltage limits.h]hConfigure over voltage limits.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKhj ubjT)}(h<``under_voltage_detection`` Configure under voltage limits. h](jZ)}(h``under_voltage_detection``h]j)}(hjh]hunder_voltage_detection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubjt)}(hhh]j)}(hConfigure under voltage limits.h]hConfigure under voltage limits.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKhj ubjT)}(h:``over_temp_detection`` Configure over temperature limits.h](jZ)}(h``over_temp_detection``h]j)}(hjh]hover_temp_detection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubjt)}(hhh]j)}(h"Configure over temperature limits.h]h"Configure over temperature limits.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShj hKhj ubeh}(h]h ]h"]h$]h&]uh1jNhj} ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhjhNubj)}(h**Description**h]j )}(hj;h]h Description}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9ubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjBhhubj)}(hGThis struct describes regulator and board/machine specific constraints.h]hGThis struct describes regulator and board/machine specific constraints.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKghjBhhubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn$regulator_consumer_supply (C struct)c.regulator_consumer_supplyhNtauh1jahjBhhhjhNubjt)}(hhh](jy)}(hregulator_consumer_supplyh]j)}(h struct regulator_consumer_supplyh](j)}(hjh]hstruct}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuhhhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKlubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuhhhjhKlubj)}(hregulator_consumer_supplyh]j)}(hjsh]hregulator_consumer_supply}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjuhhhjhKlubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjqhhhjhKlubah}(h]jlah ](jjeh"]h$]h&]jj)jhuh1jxhjhKlhjnhhubj)}(hhh]j)}(hsupply -> device mappingh]hsupply -> device mapping}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjnhhhjhKlubeh}(h]h ](j5structeh"]h$]h&]jj5jjjjjjjuh1jshhhjBhjhNubj)}(h**Definition**:: struct regulator_consumer_supply { const char *dev_name; const char *supply; }; **Members** ``dev_name`` Result of dev_name() for the consumer. ``supply`` Name for the supply.h](j)}(h**Definition**::h](j )}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj&)}(hWstruct regulator_consumer_supply { const char *dev_name; const char *supply; };h]hWstruct regulator_consumer_supply { const char *dev_name; const char *supply; };}hjsbah}(h]h ]h"]h$]h&]hhuh1j%hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(h **Members**h]j )}(hj h]hMembers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjubjO)}(hhh](jT)}(h4``dev_name`` Result of dev_name() for the consumer. h](jZ)}(h ``dev_name``h]j)}(hj(h]hdev_name}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj"ubjt)}(hhh]j)}(h&Result of dev_name() for the consumer.h]h&Result of dev_name() for the consumer.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=hKhj>ubah}(h]h ]h"]h$]h&]uh1jshj"ubeh}(h]h ]h"]h$]h&]uh1jShj=hKhjubjT)}(h``supply`` Name for the supply.h](jZ)}(h ``supply``h]j)}(hjah]hsupply}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj[ubjt)}(hhh]j)}(hName for the supply.h]hName for the supply.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjwubah}(h]h ]h"]h$]h&]uh1jshj[ubeh}(h]h ]h"]h$]h&]uh1jShjvhKhjubeh}(h]h ]h"]h$]h&]uh1jNhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhjhNubj)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjBhhubj)}(hThis maps a supply name to a device. Use of dev_name allows support for buses which make struct device available late such as I2C.h]hThis maps a supply name to a device. Use of dev_name allows support for buses which make struct device available late such as I2C.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjBhhubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnregulator_init_data (C struct)c.regulator_init_datahNtauh1jahjBhhhjhNubjt)}(hhh](jy)}(hregulator_init_datah]j)}(hstruct regulator_init_datah](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(hregulator_init_datah]j)}(hjh]hregulator_init_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jxhjhKhjhhubj)}(hhh]j)}(h'regulator platform initialisation data.h]h'regulator platform initialisation data.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhM hj!hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](j5structeh"]h$]h&]jj5jj<jj<jjjuh1jshhhjBhjhNubj)}(hX**Definition**:: struct regulator_init_data { const char *supply_regulator; struct regulation_constraints constraints; int num_consumer_supplies; struct regulator_consumer_supply *consumer_supplies; void *driver_data; }; **Members** ``supply_regulator`` Parent regulator. Specified using the regulator name as it appears in the name field in sysfs, which can be explicitly set using the constraints field 'name'. ``constraints`` Constraints. These must be specified for the regulator to be usable. ``num_consumer_supplies`` Number of consumer device supplies. ``consumer_supplies`` Consumer device supply configuration. ``driver_data`` Data passed to regulator_init.h](j)}(h**Definition**::h](j )}(h**Definition**h]h Definition}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjDubh:}(hjDhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhj@ubj&)}(hstruct regulator_init_data { const char *supply_regulator; struct regulation_constraints constraints; int num_consumer_supplies; struct regulator_consumer_supply *consumer_supplies; void *driver_data; };h]hstruct regulator_init_data { const char *supply_regulator; struct regulation_constraints constraints; int num_consumer_supplies; struct regulator_consumer_supply *consumer_supplies; void *driver_data; };}hjasbah}(h]h ]h"]h$]h&]hhuh1j%hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhj@ubj)}(h **Members**h]j )}(hjrh]hMembers}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1j hjpubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhj@ubjO)}(hhh](jT)}(h``supply_regulator`` Parent regulator. Specified using the regulator name as it appears in the name field in sysfs, which can be explicitly set using the constraints field 'name'. h](jZ)}(h``supply_regulator``h]j)}(hjh]hsupply_regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjubjt)}(hhh]j)}(hParent regulator. Specified using the regulator name as it appears in the name field in sysfs, which can be explicitly set using the constraints field 'name'.h]hParent regulator. Specified using the regulator name as it appears in the name field in sysfs, which can be explicitly set using the constraints field ‘name’.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhMhjubjT)}(hV``constraints`` Constraints. These must be specified for the regulator to be usable. h](jZ)}(h``constraints``h]j)}(hjh]h constraints}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjubjt)}(hhh]j)}(hEConstraints. These must be specified for the regulator to be usable.h]hEConstraints. These must be specified for the regulator to be usable.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhMhjubjT)}(h>``num_consumer_supplies`` Number of consumer device supplies. h](jZ)}(h``num_consumer_supplies``h]j)}(hjh]hnum_consumer_supplies}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjubjt)}(hhh]j)}(h#Number of consumer device supplies.h]h#Number of consumer device supplies.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhMhjubjT)}(h<``consumer_supplies`` Consumer device supply configuration. h](jZ)}(h``consumer_supplies``h]j)}(hj>h]hconsumer_supplies}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhj8ubjt)}(hhh]j)}(h%Consumer device supply configuration.h]h%Consumer device supply configuration.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjShMhjTubah}(h]h ]h"]h$]h&]uh1jshj8ubeh}(h]h ]h"]h$]h&]uh1jShjShMhjubjT)}(h.``driver_data`` Data passed to regulator_init.h](jZ)}(h``driver_data``h]j)}(hjwh]h driver_data}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jYhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjqubjt)}(hhh]j)}(hData passed to regulator_init.h]hData passed to regulator_init.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjubah}(h]h ]h"]h$]h&]uh1jshjqubeh}(h]h ]h"]h$]h&]uh1jShjhMhjubeh}(h]h ]h"]h$]h&]uh1jNhj@ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhjhNubj)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjBhhubj)}(h>Initialisation constraints, our supply and consumers supplies.h]h>Initialisation constraints, our supply and consumers supplies.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhM hjBhhubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnregulator_ops (C struct)c.regulator_opshNtauh1jahjBhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhNubjt)}(hhh](jy)}(h regulator_opsh]j)}(hstruct regulator_opsh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(h regulator_opsh]j)}(hjh]h regulator_ops}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jxhjhKhjhhubj)}(hhh]j)}(hregulator operations.h]hregulator operations.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK9hj8hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](j5structeh"]h$]h&]jj5jjSjjSjjjuh1jshhhjBhjhNubj)}(hX**Definition**:: struct regulator_ops { int (*list_voltage) (struct regulator_dev *, unsigned selector); int (*set_voltage) (struct regulator_dev *, int min_uV, int max_uV, unsigned *selector); int (*map_voltage)(struct regulator_dev *, int min_uV, int max_uV); int (*set_voltage_sel) (struct regulator_dev *, unsigned selector); int (*get_voltage) (struct regulator_dev *); int (*get_voltage_sel) (struct regulator_dev *); int (*set_current_limit) (struct regulator_dev *, int min_uA, int max_uA); int (*get_current_limit) (struct regulator_dev *); int (*set_input_current_limit) (struct regulator_dev *, int lim_uA); int (*set_over_current_protection)(struct regulator_dev *, int lim_uA, int severity, bool enable); int (*set_over_voltage_protection)(struct regulator_dev *, int lim_uV, int severity, bool enable); int (*set_under_voltage_protection)(struct regulator_dev *, int lim_uV, int severity, bool enable); int (*set_thermal_protection)(struct regulator_dev *, int lim, int severity, bool enable); int (*set_active_discharge)(struct regulator_dev *, bool enable); int (*enable) (struct regulator_dev *); int (*disable) (struct regulator_dev *); int (*is_enabled) (struct regulator_dev *); int (*set_mode) (struct regulator_dev *, unsigned int mode); unsigned int (*get_mode) (struct regulator_dev *); int (*get_error_flags)(struct regulator_dev *, unsigned int *flags); int (*enable_time) (struct regulator_dev *); int (*set_ramp_delay) (struct regulator_dev *, int ramp_delay); int (*set_voltage_time) (struct regulator_dev *, int old_uV, int new_uV); int (*set_voltage_time_sel) (struct regulator_dev *,unsigned int old_selector, unsigned int new_selector); int (*set_soft_start) (struct regulator_dev *); int (*get_status)(struct regulator_dev *); unsigned int (*get_optimum_mode) (struct regulator_dev *, int input_uV, int output_uV, int load_uA); int (*set_load)(struct regulator_dev *, int load_uA); int (*set_bypass)(struct regulator_dev *dev, bool enable); int (*get_bypass)(struct regulator_dev *dev, bool *enable); int (*set_suspend_voltage) (struct regulator_dev *, int uV); int (*set_suspend_enable) (struct regulator_dev *); int (*set_suspend_disable) (struct regulator_dev *); int (*set_suspend_mode) (struct regulator_dev *, unsigned int mode); int (*resume)(struct regulator_dev *rdev); int (*set_pull_down) (struct regulator_dev *); }; **Members** ``list_voltage`` Return one of the supported voltages, in microvolts; zero if the selector indicates a voltage that is unusable on this system; or negative errno. Selectors range from zero to one less than regulator_desc.n_voltages. Voltages may be reported in any order. ``set_voltage`` Set the voltage for the regulator within the range specified. The driver should select the voltage closest to min_uV. ``map_voltage`` Convert a voltage into a selector ``set_voltage_sel`` Set the voltage for the regulator using the specified selector. ``get_voltage`` Return the currently configured voltage for the regulator; return -ENOTRECOVERABLE if regulator can't be read at bootup and hasn't been set yet. ``get_voltage_sel`` Return the currently configured voltage selector for the regulator; return -ENOTRECOVERABLE if regulator can't be read at bootup and hasn't been set yet. ``set_current_limit`` Configure a limit for a current-limited regulator. The driver should select the current closest to max_uA. ``get_current_limit`` Get the configured limit for a current-limited regulator. ``set_input_current_limit`` Configure an input limit. ``set_over_current_protection`` Support enabling of and setting limits for over current situation detection. Detection can be configured for three levels of severity. - REGULATOR_SEVERITY_PROT should automatically shut down the regulator(s). - REGULATOR_SEVERITY_ERR should indicate that over-current situation is caused by an unrecoverable error but HW does not perform automatic shut down. - REGULATOR_SEVERITY_WARN should indicate situation where hardware is still believed to not be damaged but that a board sepcific recovery action is needed. If lim_uA is 0 the limit should not be changed but the detection should just be enabled/disabled as is requested. ``set_over_voltage_protection`` Support enabling of and setting limits for over voltage situation detection. Detection can be configured for same severities as over current protection. Units of uV. ``set_under_voltage_protection`` Support enabling of and setting limits for under voltage situation detection. Detection can be configured for same severities as over current protection. Units of uV. ``set_thermal_protection`` Support enabling of and setting limits for over temperature situation detection.Detection can be configured for same severities as over current protection. Units of degree Kelvin. ``set_active_discharge`` Set active discharge enable/disable of regulators. ``enable`` Configure the regulator as enabled. ``disable`` Configure the regulator as disabled. ``is_enabled`` Return 1 if the regulator is enabled, 0 if not. May also return negative errno. ``set_mode`` Set the configured operating mode for the regulator. ``get_mode`` Get the configured operating mode for the regulator. ``get_error_flags`` Get the current error(s) for the regulator. ``enable_time`` Time taken for the regulator voltage output voltage to stabilise after being enabled, in microseconds. ``set_ramp_delay`` Set the ramp delay for the regulator. The driver should select ramp delay equal to or less than(closest) ramp_delay. ``set_voltage_time`` Time taken for the regulator voltage output voltage to stabilise after being set to a new value, in microseconds. The function receives the from and to voltage as input, it should return the worst case. ``set_voltage_time_sel`` Time taken for the regulator voltage output voltage to stabilise after being set to a new value, in microseconds. The function receives the from and to voltage selector as input, it should return the worst case. ``set_soft_start`` Enable soft start for the regulator. ``get_status`` Return actual (not as-configured) status of regulator, as a REGULATOR_STATUS value (or negative errno) ``get_optimum_mode`` Get the most efficient operating mode for the regulator when running with the specified parameters. ``set_load`` Set the load for the regulator. ``set_bypass`` Set the regulator in bypass mode. ``get_bypass`` Get the regulator bypass mode state. ``set_suspend_voltage`` Set the voltage for the regulator when the system is suspended. ``set_suspend_enable`` Mark the regulator as enabled when the system is suspended. ``set_suspend_disable`` Mark the regulator as disabled when the system is suspended. ``set_suspend_mode`` Set the operating mode for the regulator when the system is suspended. ``resume`` Resume operation of suspended regulator. ``set_pull_down`` Configure the regulator to pull down when the regulator is disabled.h](j)}(h**Definition**::h](j )}(h**Definition**h]h Definition}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj[ubh:}(hj[hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK=hjWubj&)}(hX struct regulator_ops { int (*list_voltage) (struct regulator_dev *, unsigned selector); int (*set_voltage) (struct regulator_dev *, int min_uV, int max_uV, unsigned *selector); int (*map_voltage)(struct regulator_dev *, int min_uV, int max_uV); int (*set_voltage_sel) (struct regulator_dev *, unsigned selector); int (*get_voltage) (struct regulator_dev *); int (*get_voltage_sel) (struct regulator_dev *); int (*set_current_limit) (struct regulator_dev *, int min_uA, int max_uA); int (*get_current_limit) (struct regulator_dev *); int (*set_input_current_limit) (struct regulator_dev *, int lim_uA); int (*set_over_current_protection)(struct regulator_dev *, int lim_uA, int severity, bool enable); int (*set_over_voltage_protection)(struct regulator_dev *, int lim_uV, int severity, bool enable); int (*set_under_voltage_protection)(struct regulator_dev *, int lim_uV, int severity, bool enable); int (*set_thermal_protection)(struct regulator_dev *, int lim, int severity, bool enable); int (*set_active_discharge)(struct regulator_dev *, bool enable); int (*enable) (struct regulator_dev *); int (*disable) (struct regulator_dev *); int (*is_enabled) (struct regulator_dev *); int (*set_mode) (struct regulator_dev *, unsigned int mode); unsigned int (*get_mode) (struct regulator_dev *); int (*get_error_flags)(struct regulator_dev *, unsigned int *flags); int (*enable_time) (struct regulator_dev *); int (*set_ramp_delay) (struct regulator_dev *, int ramp_delay); int (*set_voltage_time) (struct regulator_dev *, int old_uV, int new_uV); int (*set_voltage_time_sel) (struct regulator_dev *,unsigned int old_selector, unsigned int new_selector); int (*set_soft_start) (struct regulator_dev *); int (*get_status)(struct regulator_dev *); unsigned int (*get_optimum_mode) (struct regulator_dev *, int input_uV, int output_uV, int load_uA); int (*set_load)(struct regulator_dev *, int load_uA); int (*set_bypass)(struct regulator_dev *dev, bool enable); int (*get_bypass)(struct regulator_dev *dev, bool *enable); int (*set_suspend_voltage) (struct regulator_dev *, int uV); int (*set_suspend_enable) (struct regulator_dev *); int (*set_suspend_disable) (struct regulator_dev *); int (*set_suspend_mode) (struct regulator_dev *, unsigned int mode); int (*resume)(struct regulator_dev *rdev); int (*set_pull_down) (struct regulator_dev *); };h]hX struct regulator_ops { int (*list_voltage) (struct regulator_dev *, unsigned selector); int (*set_voltage) (struct regulator_dev *, int min_uV, int max_uV, unsigned *selector); int (*map_voltage)(struct regulator_dev *, int min_uV, int max_uV); int (*set_voltage_sel) (struct regulator_dev *, unsigned selector); int (*get_voltage) (struct regulator_dev *); int (*get_voltage_sel) (struct regulator_dev *); int (*set_current_limit) (struct regulator_dev *, int min_uA, int max_uA); int (*get_current_limit) (struct regulator_dev *); int (*set_input_current_limit) (struct regulator_dev *, int lim_uA); int (*set_over_current_protection)(struct regulator_dev *, int lim_uA, int severity, bool enable); int (*set_over_voltage_protection)(struct regulator_dev *, int lim_uV, int severity, bool enable); int (*set_under_voltage_protection)(struct regulator_dev *, int lim_uV, int severity, bool enable); int (*set_thermal_protection)(struct regulator_dev *, int lim, int severity, bool enable); int (*set_active_discharge)(struct regulator_dev *, bool enable); int (*enable) (struct regulator_dev *); int (*disable) (struct regulator_dev *); int (*is_enabled) (struct regulator_dev *); int (*set_mode) (struct regulator_dev *, unsigned int mode); unsigned int (*get_mode) (struct regulator_dev *); int (*get_error_flags)(struct regulator_dev *, unsigned int *flags); int (*enable_time) (struct regulator_dev *); int (*set_ramp_delay) (struct regulator_dev *, int ramp_delay); int (*set_voltage_time) (struct regulator_dev *, int old_uV, int new_uV); int (*set_voltage_time_sel) (struct regulator_dev *,unsigned int old_selector, unsigned int new_selector); int (*set_soft_start) (struct regulator_dev *); int (*get_status)(struct regulator_dev *); unsigned int (*get_optimum_mode) (struct regulator_dev *, int input_uV, int output_uV, int load_uA); int (*set_load)(struct regulator_dev *, int load_uA); int (*set_bypass)(struct regulator_dev *dev, bool enable); int (*get_bypass)(struct regulator_dev *dev, bool *enable); int (*set_suspend_voltage) (struct regulator_dev *, int uV); int (*set_suspend_enable) (struct regulator_dev *); int (*set_suspend_disable) (struct regulator_dev *); int (*set_suspend_mode) (struct regulator_dev *, unsigned int mode); int (*resume)(struct regulator_dev *rdev); int (*set_pull_down) (struct regulator_dev *); };}hjxsbah}(h]h ]h"]h$]h&]hhuh1j%hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK?hjWubj)}(h **Members**h]j )}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKfhjWubjO)}(hhh](jT)}(hX``list_voltage`` Return one of the supported voltages, in microvolts; zero if the selector indicates a voltage that is unusable on this system; or negative errno. Selectors range from zero to one less than regulator_desc.n_voltages. Voltages may be reported in any order. h](jZ)}(h``list_voltage``h]j)}(hjh]h list_voltage}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKOhjubjt)}(hhh]j)}(hXReturn one of the supported voltages, in microvolts; zero if the selector indicates a voltage that is unusable on this system; or negative errno. Selectors range from zero to one less than regulator_desc.n_voltages. Voltages may be reported in any order.h]hXReturn one of the supported voltages, in microvolts; zero if the selector indicates a voltage that is unusable on this system; or negative errno. Selectors range from zero to one less than regulator_desc.n_voltages. Voltages may be reported in any order.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKLhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKOhjubjT)}(h``set_voltage`` Set the voltage for the regulator within the range specified. The driver should select the voltage closest to min_uV. h](jZ)}(h``set_voltage``h]j)}(hjh]h set_voltage}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKBhjubjt)}(hhh]j)}(huSet the voltage for the regulator within the range specified. The driver should select the voltage closest to min_uV.h]huSet the voltage for the regulator within the range specified. The driver should select the voltage closest to min_uV.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKAhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKBhjubjT)}(h2``map_voltage`` Convert a voltage into a selector h](jZ)}(h``map_voltage``h]j)}(hjh]h map_voltage}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKEhjubjt)}(hhh]j)}(h!Convert a voltage into a selectorh]h!Convert a voltage into a selector}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1hKEhj2ubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShj1hKEhjubjT)}(hT``set_voltage_sel`` Set the voltage for the regulator using the specified selector. h](jZ)}(h``set_voltage_sel``h]j)}(hjUh]hset_voltage_sel}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKDhjOubjt)}(hhh]j)}(h?Set the voltage for the regulator using the specified selector.h]h?Set the voltage for the regulator using the specified selector.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKChjkubah}(h]h ]h"]h$]h&]uh1jshjOubeh}(h]h ]h"]h$]h&]uh1jShjjhKDhjubjT)}(h``get_voltage`` Return the currently configured voltage for the regulator; return -ENOTRECOVERABLE if regulator can't be read at bootup and hasn't been set yet. h](jZ)}(h``get_voltage``h]j)}(hjh]h get_voltage}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKHhjubjt)}(hhh]j)}(hReturn the currently configured voltage for the regulator; return -ENOTRECOVERABLE if regulator can't be read at bootup and hasn't been set yet.h]hReturn the currently configured voltage for the regulator; return -ENOTRECOVERABLE if regulator can’t be read at bootup and hasn’t been set yet.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKFhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKHhjubjT)}(h``get_voltage_sel`` Return the currently configured voltage selector for the regulator; return -ENOTRECOVERABLE if regulator can't be read at bootup and hasn't been set yet. h](jZ)}(h``get_voltage_sel``h]j)}(hjh]hget_voltage_sel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKKhjubjt)}(hhh]j)}(hReturn the currently configured voltage selector for the regulator; return -ENOTRECOVERABLE if regulator can't be read at bootup and hasn't been set yet.h]hReturn the currently configured voltage selector for the regulator; return -ENOTRECOVERABLE if regulator can’t be read at bootup and hasn’t been set yet.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKIhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKKhjubjT)}(h``set_current_limit`` Configure a limit for a current-limited regulator. The driver should select the current closest to max_uA. h](jZ)}(h``set_current_limit``h]j)}(hjh]hset_current_limit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKRhjubjt)}(hhh]j)}(hjConfigure a limit for a current-limited regulator. The driver should select the current closest to max_uA.h]hjConfigure a limit for a current-limited regulator. The driver should select the current closest to max_uA.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKQhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKRhjubjT)}(hP``get_current_limit`` Get the configured limit for a current-limited regulator. h](jZ)}(h``get_current_limit``h]j)}(hj=h]hget_current_limit}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKShj7ubjt)}(hhh]j)}(h9Get the configured limit for a current-limited regulator.h]h9Get the configured limit for a current-limited regulator.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRhKShjSubah}(h]h ]h"]h$]h&]uh1jshj7ubeh}(h]h ]h"]h$]h&]uh1jShjRhKShjubjT)}(h6``set_input_current_limit`` Configure an input limit. h](jZ)}(h``set_input_current_limit``h]j)}(hjvh]hset_input_current_limit}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKThjpubjt)}(hhh]j)}(hConfigure an input limit.h]hConfigure an input limit.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKThjubah}(h]h ]h"]h$]h&]uh1jshjpubeh}(h]h ]h"]h$]h&]uh1jShjhKThjubjT)}(hX``set_over_current_protection`` Support enabling of and setting limits for over current situation detection. Detection can be configured for three levels of severity. - REGULATOR_SEVERITY_PROT should automatically shut down the regulator(s). - REGULATOR_SEVERITY_ERR should indicate that over-current situation is caused by an unrecoverable error but HW does not perform automatic shut down. - REGULATOR_SEVERITY_WARN should indicate situation where hardware is still believed to not be damaged but that a board sepcific recovery action is needed. If lim_uA is 0 the limit should not be changed but the detection should just be enabled/disabled as is requested. h](jZ)}(h``set_over_current_protection``h]j)}(hjh]hset_over_current_protection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKdhjubjt)}(hhh](j)}(hSupport enabling of and setting limits for over current situation detection. Detection can be configured for three levels of severity.h]hSupport enabling of and setting limits for over current situation detection. Detection can be configured for three levels of severity.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKVhjubh bullet_list)}(hhh](h list_item)}(hIREGULATOR_SEVERITY_PROT should automatically shut down the regulator(s). h]j)}(hHREGULATOR_SEVERITY_PROT should automatically shut down the regulator(s).h]hHREGULATOR_SEVERITY_PROT should automatically shut down the regulator(s).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKZhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hREGULATOR_SEVERITY_ERR should indicate that over-current situation is caused by an unrecoverable error but HW does not perform automatic shut down. h]jO)}(hhh]jT)}(hREGULATOR_SEVERITY_ERR should indicate that over-current situation is caused by an unrecoverable error but HW does not perform automatic shut down. h](jZ)}(hEREGULATOR_SEVERITY_ERR should indicate that over-current situation ish]hEREGULATOR_SEVERITY_ERR should indicate that over-current situation is}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK^hjubjt)}(hhh]j)}(hMcaused by an unrecoverable error but HW does not perform automatic shut down.h]hMcaused by an unrecoverable error but HW does not perform automatic shut down.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK]hjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhK^hjubah}(h]h ]h"]h$]h&]uh1jNhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hX,REGULATOR_SEVERITY_WARN should indicate situation where hardware is still believed to not be damaged but that a board sepcific recovery action is needed. If lim_uA is 0 the limit should not be changed but the detection should just be enabled/disabled as is requested. h]jO)}(hhh]jT)}(hX REGULATOR_SEVERITY_WARN should indicate situation where hardware is still believed to not be damaged but that a board sepcific recovery action is needed. If lim_uA is 0 the limit should not be changed but the detection should just be enabled/disabled as is requested. h](jZ)}(hCREGULATOR_SEVERITY_WARN should indicate situation where hardware ish]hCREGULATOR_SEVERITY_WARN should indicate situation where hardware is}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhKdhjBubjt)}(hhh]j)}(hstill believed to not be damaged but that a board sepcific recovery action is needed. If lim_uA is 0 the limit should not be changed but the detection should just be enabled/disabled as is requested.h]hstill believed to not be damaged but that a board sepcific recovery action is needed. If lim_uA is 0 the limit should not be changed but the detection should just be enabled/disabled as is requested.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKahjTubah}(h]h ]h"]h$]h&]uh1jshjBubeh}(h]h ]h"]h$]h&]uh1jShjhKdhj?ubah}(h]h ]h"]h$]h&]uh1jNhj;ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]bullet-uh1jhjhKZhjubeh}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKdhjubjT)}(h``set_over_voltage_protection`` Support enabling of and setting limits for over voltage situation detection. Detection can be configured for same severities as over current protection. Units of uV. h](jZ)}(h``set_over_voltage_protection``h]j)}(hjh]hset_over_voltage_protection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhhjubjt)}(hhh]j)}(hSupport enabling of and setting limits for over voltage situation detection. Detection can be configured for same severities as over current protection. Units of uV.h]hSupport enabling of and setting limits for over voltage situation detection. Detection can be configured for same severities as over current protection. Units of uV.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKfhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKhhjubjT)}(h``set_under_voltage_protection`` Support enabling of and setting limits for under voltage situation detection. Detection can be configured for same severities as over current protection. Units of uV. h](jZ)}(h ``set_under_voltage_protection``h]j)}(hjh]hset_under_voltage_protection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKkhjubjt)}(hhh]j)}(hSupport enabling of and setting limits for under voltage situation detection. Detection can be configured for same severities as over current protection. Units of uV.h]hSupport enabling of and setting limits for under voltage situation detection. Detection can be configured for same severities as over current protection. Units of uV.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKihjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKkhjubjT)}(h``set_thermal_protection`` Support enabling of and setting limits for over temperature situation detection.Detection can be configured for same severities as over current protection. Units of degree Kelvin. :h](jZ)}(h``set_thermal_protection``h]j)}(hj h]hset_thermal_protection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKnhjubjt)}(hhh]j)}(hSupport enabling of and setting limits for over temperature situation detection.Detection can be configured for same severities as over current protection. Units of degree Kelvin.h]hSupport enabling of and setting limits for over temperature situation detection.Detection can be configured for same severities as over current protection. Units of degree Kelvin.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKlhj"ubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShj!hKnhjubjT)}(hL``set_active_discharge`` Set active discharge enable/disable of regulators. h](jZ)}(h``set_active_discharge``h]j)}(hjFh]hset_active_discharge}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKphj@ubjt)}(hhh]j)}(h2Set active discharge enable/disable of regulators.h]h2Set active discharge enable/disable of regulators.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[hKphj\ubah}(h]h ]h"]h$]h&]uh1jshj@ubeh}(h]h ]h"]h$]h&]uh1jShj[hKphjubjT)}(h/``enable`` Configure the regulator as enabled. h](jZ)}(h ``enable``h]j)}(hjh]henable}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhK?hjubjT)}(hB``set_mode`` Set the configured operating mode for the regulator. h](jZ)}(h ``set_mode``h]j)}(hj+h]hset_mode}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKrhj%ubjt)}(hhh]j)}(h4Set the configured operating mode for the regulator.h]h4Set the configured operating mode for the regulator.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@hKrhjAubah}(h]h ]h"]h$]h&]uh1jshj%ubeh}(h]h ]h"]h$]h&]uh1jShj@hKrhjubjT)}(hB``get_mode`` Get the configured operating mode for the regulator. h](jZ)}(h ``get_mode``h]j)}(hjdh]hget_mode}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKshj^ubjt)}(hhh]j)}(h4Get the configured operating mode for the regulator.h]h4Get the configured operating mode for the regulator.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyhKshjzubah}(h]h ]h"]h$]h&]uh1jshj^ubeh}(h]h ]h"]h$]h&]uh1jShjyhKshjubjT)}(h@``get_error_flags`` Get the current error(s) for the regulator. h](jZ)}(h``get_error_flags``h]j)}(hjh]hget_error_flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKthjubjt)}(hhh]j)}(h+Get the current error(s) for the regulator.h]h+Get the current error(s) for the regulator.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKthjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKthjubjT)}(hw``enable_time`` Time taken for the regulator voltage output voltage to stabilise after being enabled, in microseconds. h](jZ)}(h``enable_time``h]j)}(hjh]h enable_time}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjubjt)}(hhh]j)}(hfTime taken for the regulator voltage output voltage to stabilise after being enabled, in microseconds.h]hfTime taken for the regulator voltage output voltage to stabilise after being enabled, in microseconds.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK~hjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKhjubjT)}(h``set_ramp_delay`` Set the ramp delay for the regulator. The driver should select ramp delay equal to or less than(closest) ramp_delay. h](jZ)}(h``set_ramp_delay``h]j)}(hjh]hset_ramp_delay}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj ubjt)}(hhh]j)}(htSet the ramp delay for the regulator. The driver should select ramp delay equal to or less than(closest) ramp_delay.h]htSet the ramp delay for the regulator. The driver should select ramp delay equal to or less than(closest) ramp_delay.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj&ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj%hKhjubjT)}(h``set_voltage_time`` Time taken for the regulator voltage output voltage to stabilise after being set to a new value, in microseconds. The function receives the from and to voltage as input, it should return the worst case. h](jZ)}(h``set_voltage_time``h]j)}(hjJh]hset_voltage_time}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjDubjt)}(hhh]j)}(hTime taken for the regulator voltage output voltage to stabilise after being set to a new value, in microseconds. The function receives the from and to voltage as input, it should return the worst case.h]hTime taken for the regulator voltage output voltage to stabilise after being set to a new value, in microseconds. The function receives the from and to voltage as input, it should return the worst case.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj`ubah}(h]h ]h"]h$]h&]uh1jshjDubeh}(h]h ]h"]h$]h&]uh1jShj_hKhjubjT)}(h``set_voltage_time_sel`` Time taken for the regulator voltage output voltage to stabilise after being set to a new value, in microseconds. The function receives the from and to voltage selector as input, it should return the worst case. h](jZ)}(h``set_voltage_time_sel``h]j)}(hjh]hset_voltage_time_sel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj~ubjt)}(hhh]j)}(hTime taken for the regulator voltage output voltage to stabilise after being set to a new value, in microseconds. The function receives the from and to voltage selector as input, it should return the worst case.h]hTime taken for the regulator voltage output voltage to stabilise after being set to a new value, in microseconds. The function receives the from and to voltage selector as input, it should return the worst case.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjubah}(h]h ]h"]h$]h&]uh1jshj~ubeh}(h]h ]h"]h$]h&]uh1jShjhKhjubjT)}(h8``set_soft_start`` Enable soft start for the regulator. h](jZ)}(h``set_soft_start``h]j)}(hjh]hset_soft_start}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjubjt)}(hhh]j)}(h$Enable soft start for the regulator.h]h$Enable soft start for the regulator.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKhjubjT)}(hv``get_status`` Return actual (not as-configured) status of regulator, as a REGULATOR_STATUS value (or negative errno) h](jZ)}(h``get_status``h]j)}(hjh]h get_status}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKvhjubjt)}(hhh]j)}(hfReturn actual (not as-configured) status of regulator, as a REGULATOR_STATUS value (or negative errno)h]hfReturn actual (not as-configured) status of regulator, as a REGULATOR_STATUS value (or negative errno)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKuhj ubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShj hKvhjubjT)}(hy``get_optimum_mode`` Get the most efficient operating mode for the regulator when running with the specified parameters. h](jZ)}(h``get_optimum_mode``h]j)}(hj1 h]hget_optimum_mode}(hj3 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKxhj+ ubjt)}(hhh]j)}(hcGet the most efficient operating mode for the regulator when running with the specified parameters.h]hcGet the most efficient operating mode for the regulator when running with the specified parameters.}(hjJ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKwhjG ubah}(h]h ]h"]h$]h&]uh1jshj+ ubeh}(h]h ]h"]h$]h&]uh1jShjF hKxhjubjT)}(h-``set_load`` Set the load for the regulator. h](jZ)}(h ``set_load``h]j)}(hjk h]hset_load}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKyhje ubjt)}(hhh]j)}(hSet the load for the regulator.h]hSet the load for the regulator.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hKyhj ubah}(h]h ]h"]h$]h&]uh1jshje ubeh}(h]h ]h"]h$]h&]uh1jShj hKyhjubjT)}(h1``set_bypass`` Set the regulator in bypass mode. h](jZ)}(h``set_bypass``h]j)}(hj h]h set_bypass}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK{hj ubjt)}(hhh]j)}(h!Set the regulator in bypass mode.h]h!Set the regulator in bypass mode.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hK{hj ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj hK{hjubjT)}(h4``get_bypass`` Get the regulator bypass mode state. h](jZ)}(h``get_bypass``h]j)}(hj h]h get_bypass}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK|hj ubjt)}(hhh]j)}(h$Get the regulator bypass mode state.h]h$Get the regulator bypass mode state.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hK|hj ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj hK|hjubjT)}(hX``set_suspend_voltage`` Set the voltage for the regulator when the system is suspended. h](jZ)}(h``set_suspend_voltage``h]j)}(hj!h]hset_suspend_voltage}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj!ubjt)}(hhh]j)}(h?Set the voltage for the regulator when the system is suspended.h]h?Set the voltage for the regulator when the system is suspended.}(hj/!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj,!ubah}(h]h ]h"]h$]h&]uh1jshj!ubeh}(h]h ]h"]h$]h&]uh1jShj+!hKhjubjT)}(hS``set_suspend_enable`` Mark the regulator as enabled when the system is suspended. h](jZ)}(h``set_suspend_enable``h]j)}(hjP!h]hset_suspend_enable}(hjR!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN!ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjJ!ubjt)}(hhh]j)}(h;Mark the regulator as enabled when the system is suspended.h]h;Mark the regulator as enabled when the system is suspended.}(hji!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjf!ubah}(h]h ]h"]h$]h&]uh1jshjJ!ubeh}(h]h ]h"]h$]h&]uh1jShje!hKhjubjT)}(hU``set_suspend_disable`` Mark the regulator as disabled when the system is suspended. h](jZ)}(h``set_suspend_disable``h]j)}(hj!h]hset_suspend_disable}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj!ubjt)}(hhh]j)}(h0 then the regulator API will ramp the voltage up/down gradually each time increasing/decreasing the selector by the specified step value. ``csel_reg`` Register for current limit selector using regmap set_current_limit ``csel_mask`` Mask for register bitfield used for current limit selector ``apply_reg`` Register for initiate voltage change on the output when using regulator_set_voltage_sel_regmap ``apply_bit`` Register bitfield used for initiate voltage change on the output when using regulator_set_voltage_sel_regmap ``enable_reg`` Register for control when using regmap enable/disable ops ``enable_mask`` Mask for control when using regmap enable/disable ops ``enable_val`` Enabling value for control when using regmap enable/disable ops ``disable_val`` Disabling value for control when using regmap enable/disable ops ``enable_is_inverted`` A flag to indicate set enable_mask bits to disable when using regulator_enable_regmap and friends APIs. ``bypass_reg`` Register for control when using regmap set_bypass ``bypass_mask`` Mask for control when using regmap set_bypass ``bypass_val_on`` Enabling value for control when using regmap set_bypass ``bypass_val_off`` Disabling value for control when using regmap set_bypass ``active_discharge_on`` Disabling value for control when using regmap set_active_discharge ``active_discharge_off`` Enabling value for control when using regmap set_active_discharge ``active_discharge_mask`` Mask for control when using regmap set_active_discharge ``active_discharge_reg`` Register for control when using regmap set_active_discharge ``soft_start_reg`` Register for control when using regmap set_soft_start ``soft_start_mask`` Mask for control when using regmap set_soft_start ``soft_start_val_on`` Enabling value for control when using regmap set_soft_start ``pull_down_reg`` Register for control when using regmap set_pull_down ``pull_down_mask`` Mask for control when using regmap set_pull_down ``pull_down_val_on`` Enabling value for control when using regmap set_pull_down ``ramp_reg`` Register for controlling the regulator ramp-rate. ``ramp_mask`` Bitmask for the ramp-rate control register. ``ramp_delay_table`` Table for mapping the regulator ramp-rate values. Values should be given in units of V/S (uV/uS). See the regulator_set_ramp_delay_regmap(). ``n_ramp_values`` number of elements at **ramp_delay_table**. ``enable_time`` Time taken for initial enable of regulator (in uS). ``off_on_delay`` guard time (in uS), before re-enabling a regulator ``poll_enabled_time`` The polling interval (in uS) to use while checking that the regulator was actually enabled. Max upto enable_time. ``of_map_mode`` Maps a hardware mode defined in a DeviceTree to a standard modeh](j)}(h**Definition**::h](j )}(h**Definition**h]h Definition}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj#ubh:}(hj#hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj#ubj&)}(hXFstruct regulator_desc { const char *name; const char *supply_name; const char *of_match; bool of_match_full_name; const char *regulators_node; int (*of_parse_cb)(struct device_node *,const struct regulator_desc *, struct regulator_config *); int (*init_cb)(struct regulator_dev *, struct regulator_config *); int id; unsigned int continuous_voltage_range:1; unsigned n_voltages; unsigned int n_current_limits; const struct regulator_ops *ops; int irq; enum regulator_type type; struct module *owner; unsigned int min_uV; unsigned int uV_step; unsigned int linear_min_sel; int fixed_uV; unsigned int ramp_delay; int min_dropout_uV; const struct linear_range *linear_ranges; const unsigned int *linear_range_selectors_bitfield; int n_linear_ranges; const unsigned int *volt_table; const unsigned int *curr_table; unsigned int vsel_range_reg; unsigned int vsel_range_mask; bool range_applied_by_vsel; unsigned int vsel_reg; unsigned int vsel_mask; unsigned int vsel_step; unsigned int csel_reg; unsigned int csel_mask; unsigned int apply_reg; unsigned int apply_bit; unsigned int enable_reg; unsigned int enable_mask; unsigned int enable_val; unsigned int disable_val; bool enable_is_inverted; unsigned int bypass_reg; unsigned int bypass_mask; unsigned int bypass_val_on; unsigned int bypass_val_off; unsigned int active_discharge_on; unsigned int active_discharge_off; unsigned int active_discharge_mask; unsigned int active_discharge_reg; unsigned int soft_start_reg; unsigned int soft_start_mask; unsigned int soft_start_val_on; unsigned int pull_down_reg; unsigned int pull_down_mask; unsigned int pull_down_val_on; unsigned int ramp_reg; unsigned int ramp_mask; const unsigned int *ramp_delay_table; unsigned int n_ramp_values; unsigned int enable_time; unsigned int off_on_delay; unsigned int poll_enabled_time; unsigned int (*of_map_mode)(unsigned int mode); };h]hXFstruct regulator_desc { const char *name; const char *supply_name; const char *of_match; bool of_match_full_name; const char *regulators_node; int (*of_parse_cb)(struct device_node *,const struct regulator_desc *, struct regulator_config *); int (*init_cb)(struct regulator_dev *, struct regulator_config *); int id; unsigned int continuous_voltage_range:1; unsigned n_voltages; unsigned int n_current_limits; const struct regulator_ops *ops; int irq; enum regulator_type type; struct module *owner; unsigned int min_uV; unsigned int uV_step; unsigned int linear_min_sel; int fixed_uV; unsigned int ramp_delay; int min_dropout_uV; const struct linear_range *linear_ranges; const unsigned int *linear_range_selectors_bitfield; int n_linear_ranges; const unsigned int *volt_table; const unsigned int *curr_table; unsigned int vsel_range_reg; unsigned int vsel_range_mask; bool range_applied_by_vsel; unsigned int vsel_reg; unsigned int vsel_mask; unsigned int vsel_step; unsigned int csel_reg; unsigned int csel_mask; unsigned int apply_reg; unsigned int apply_bit; unsigned int enable_reg; unsigned int enable_mask; unsigned int enable_val; unsigned int disable_val; bool enable_is_inverted; unsigned int bypass_reg; unsigned int bypass_mask; unsigned int bypass_val_on; unsigned int bypass_val_off; unsigned int active_discharge_on; unsigned int active_discharge_off; unsigned int active_discharge_mask; unsigned int active_discharge_reg; unsigned int soft_start_reg; unsigned int soft_start_mask; unsigned int soft_start_val_on; unsigned int pull_down_reg; unsigned int pull_down_mask; unsigned int pull_down_val_on; unsigned int ramp_reg; unsigned int ramp_mask; const unsigned int *ramp_delay_table; unsigned int n_ramp_values; unsigned int enable_time; unsigned int off_on_delay; unsigned int poll_enabled_time; unsigned int (*of_map_mode)(unsigned int mode); };}hj6#sbah}(h]h ]h"]h$]h&]hhuh1j%hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj#ubj)}(h **Members**h]j )}(hjG#h]hMembers}(hjI#hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjE#ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMBhj#ubjO)}(hhh](jT)}(h-``name`` Identifying name for the regulator. h](jZ)}(h``name``h]j)}(hjf#h]hname}(hjh#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd#ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj`#ubjt)}(hhh]j)}(h#Identifying name for the regulator.h]h#Identifying name for the regulator.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{#hMhj|#ubah}(h]h ]h"]h$]h&]uh1jshj`#ubeh}(h]h ]h"]h$]h&]uh1jShj{#hMhj]#ubjT)}(h1``supply_name`` Identifying the regulator supply h](jZ)}(h``supply_name``h]j)}(hj#h]h supply_name}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj#ubjt)}(hhh]j)}(h Identifying the regulator supplyh]h Identifying the regulator supply}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#hMhj#ubah}(h]h ]h"]h$]h&]uh1jshj#ubeh}(h]h ]h"]h$]h&]uh1jShj#hMhj]#ubjT)}(h4``of_match`` Name used to identify regulator in DT. h](jZ)}(h ``of_match``h]j)}(hj#h]hof_match}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj#ubjt)}(hhh]j)}(h&Name used to identify regulator in DT.h]h&Name used to identify regulator in DT.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#hMhj#ubah}(h]h ]h"]h$]h&]uh1jshj#ubeh}(h]h ]h"]h$]h&]uh1jShj#hMhj]#ubjT)}(h~``of_match_full_name`` A flag to indicate that the of_match string, if present, should be matched against the node full_name. h](jZ)}(h``of_match_full_name``h]j)}(hj$h]hof_match_full_name}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj $ubjt)}(hhh]j)}(hfA flag to indicate that the of_match string, if present, should be matched against the node full_name.h]hfA flag to indicate that the of_match string, if present, should be matched against the node full_name.}(hj*$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj'$ubah}(h]h ]h"]h$]h&]uh1jshj $ubeh}(h]h ]h"]h$]h&]uh1jShj&$hMhj]#ubjT)}(hI``regulators_node`` Name of node containing regulator definitions in DT. h](jZ)}(h``regulators_node``h]j)}(hjK$h]hregulators_node}(hjM$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI$ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjE$ubjt)}(hhh]j)}(h4Name of node containing regulator definitions in DT.h]h4Name of node containing regulator definitions in DT.}(hjd$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`$hMhja$ubah}(h]h ]h"]h$]h&]uh1jshjE$ubeh}(h]h ]h"]h$]h&]uh1jShj`$hMhj]#ubjT)}(hX``of_parse_cb`` Optional callback called only if of_match is present. Will be called for each regulator parsed from DT, during init_data parsing. The regulator_config passed as argument to the callback will be a copy of config passed to regulator_register, valid only for this particular call. Callback may freely change the config but it cannot store it for later usage. Callback should return 0 on success or negative ERRNO indicating failure. h](jZ)}(h``of_parse_cb``h]j)}(hj$h]h of_parse_cb}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj~$ubjt)}(hhh]j)}(hXOptional callback called only if of_match is present. Will be called for each regulator parsed from DT, during init_data parsing. The regulator_config passed as argument to the callback will be a copy of config passed to regulator_register, valid only for this particular call. Callback may freely change the config but it cannot store it for later usage. Callback should return 0 on success or negative ERRNO indicating failure.h]hXOptional callback called only if of_match is present. Will be called for each regulator parsed from DT, during init_data parsing. The regulator_config passed as argument to the callback will be a copy of config passed to regulator_register, valid only for this particular call. Callback may freely change the config but it cannot store it for later usage. Callback should return 0 on success or negative ERRNO indicating failure.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj$ubah}(h]h ]h"]h$]h&]uh1jshj~$ubeh}(h]h ]h"]h$]h&]uh1jShj$hMhj]#ubjT)}(hX``init_cb`` Optional callback called after the parsing of init_data. Allows the regulator to perform runtime init if necessary, such as synching the regulator and the parsed constraints. Callback should return 0 on success or negative ERRNO indicating failure. h](jZ)}(h ``init_cb``h]j)}(hj$h]hinit_cb}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj$ubjt)}(hhh]j)}(hOptional callback called after the parsing of init_data. Allows the regulator to perform runtime init if necessary, such as synching the regulator and the parsed constraints. Callback should return 0 on success or negative ERRNO indicating failure.h]hOptional callback called after the parsing of init_data. Allows the regulator to perform runtime init if necessary, such as synching the regulator and the parsed constraints. Callback should return 0 on success or negative ERRNO indicating failure.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj$ubah}(h]h ]h"]h$]h&]uh1jshj$ubeh}(h]h ]h"]h$]h&]uh1jShj$hMhj]#ubjT)}(h/``id`` Numerical identifier for the regulator. h](jZ)}(h``id``h]j)}(hj$h]hid}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj$ubjt)}(hhh]j)}(h'Numerical identifier for the regulator.h]h'Numerical identifier for the regulator.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj %hMhj%ubah}(h]h ]h"]h$]h&]uh1jshj$ubeh}(h]h ]h"]h$]h&]uh1jShj %hMhj]#ubjT)}(he``continuous_voltage_range`` Indicates if the regulator can set any voltage within constrains range. h](jZ)}(h``continuous_voltage_range``h]j)}(hj1%h]hcontinuous_voltage_range}(hj3%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/%ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj+%ubjt)}(hhh]j)}(hGIndicates if the regulator can set any voltage within constrains range.h]hGIndicates if the regulator can set any voltage within constrains range.}(hjJ%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjG%ubah}(h]h ]h"]h$]h&]uh1jshj+%ubeh}(h]h ]h"]h$]h&]uh1jShjF%hMhj]#ubjT)}(hE``n_voltages`` Number of selectors available for ops.list_voltage(). h](jZ)}(h``n_voltages``h]j)}(hjk%h]h n_voltages}(hjm%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji%ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhje%ubjt)}(hhh]j)}(h5Number of selectors available for ops.list_voltage().h]h5Number of selectors available for ops.list_voltage().}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%hMhj%ubah}(h]h ]h"]h$]h&]uh1jshje%ubeh}(h]h ]h"]h$]h&]uh1jShj%hMhj]#ubjT)}(hF``n_current_limits`` Number of selectors available for current limits h](jZ)}(h``n_current_limits``h]j)}(hj%h]hn_current_limits}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj%ubjt)}(hhh]j)}(h0Number of selectors available for current limitsh]h0Number of selectors available for current limits}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%hMhj%ubah}(h]h ]h"]h$]h&]uh1jshj%ubeh}(h]h ]h"]h$]h&]uh1jShj%hMhj]#ubjT)}(h$``ops`` Regulator operations table. h](jZ)}(h``ops``h]j)}(hj%h]hops}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj%ubjt)}(hhh]j)}(hRegulator operations table.h]hRegulator operations table.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%hMhj%ubah}(h]h ]h"]h$]h&]uh1jshj%ubeh}(h]h ]h"]h$]h&]uh1jShj%hMhj]#ubjT)}(h,``irq`` Interrupt number for the regulator. h](jZ)}(h``irq``h]j)}(hj&h]hirq}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj&ubjt)}(hhh]j)}(h#Interrupt number for the regulator.h]h#Interrupt number for the regulator.}(hj/&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+&hMhj,&ubah}(h]h ]h"]h$]h&]uh1jshj&ubeh}(h]h ]h"]h$]h&]uh1jShj+&hMhj]#ubjT)}(hG``type`` Indicates if the regulator is a voltage or current regulator. h](jZ)}(h``type``h]j)}(hjO&h]htype}(hjQ&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjM&ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjI&ubjt)}(hhh]j)}(h=Indicates if the regulator is a voltage or current regulator.h]h=Indicates if the regulator is a voltage or current regulator.}(hjh&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd&hMhje&ubah}(h]h ]h"]h$]h&]uh1jshjI&ubeh}(h]h ]h"]h$]h&]uh1jShjd&hMhj]#ubjT)}(h@``owner`` Module providing the regulator, used for refcounting. h](jZ)}(h ``owner``h]j)}(hj&h]howner}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj&ubjt)}(hhh]j)}(h5Module providing the regulator, used for refcounting.h]h5Module providing the regulator, used for refcounting.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&hMhj&ubah}(h]h ]h"]h$]h&]uh1jshj&ubeh}(h]h ]h"]h$]h&]uh1jShj&hMhj]#ubjT)}(hD``min_uV`` Voltage given by the lowest selector (if linear mapping) h](jZ)}(h ``min_uV``h]j)}(hj&h]hmin_uV}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM!hj&ubjt)}(hhh]j)}(h8Voltage given by the lowest selector (if linear mapping)h]h8Voltage given by the lowest selector (if linear mapping)}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&hM!hj&ubah}(h]h ]h"]h$]h&]uh1jshj&ubeh}(h]h ]h"]h$]h&]uh1jShj&hM!hj]#ubjT)}(hD``uV_step`` Voltage increase with each selector (if linear mapping) h](jZ)}(h ``uV_step``h]j)}(hj&h]huV_step}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM"hj&ubjt)}(hhh]j)}(h7Voltage increase with each selector (if linear mapping)h]h7Voltage increase with each selector (if linear mapping)}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'hM"hj'ubah}(h]h ]h"]h$]h&]uh1jshj&ubeh}(h]h ]h"]h$]h&]uh1jShj'hM"hj]#ubjT)}(h@``linear_min_sel`` Minimal selector for starting linear mapping h](jZ)}(h``linear_min_sel``h]j)}(hj3'h]hlinear_min_sel}(hj5'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1'ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM#hj-'ubjt)}(hhh]j)}(h,Minimal selector for starting linear mappingh]h,Minimal selector for starting linear mapping}(hjL'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH'hM#hjI'ubah}(h]h ]h"]h$]h&]uh1jshj-'ubeh}(h]h ]h"]h$]h&]uh1jShjH'hM#hj]#ubjT)}(h%``fixed_uV`` Fixed voltage of rails. h](jZ)}(h ``fixed_uV``h]j)}(hjl'h]hfixed_uV}(hjn'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjj'ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM$hjf'ubjt)}(hhh]j)}(hFixed voltage of rails.h]hFixed voltage of rails.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'hM$hj'ubah}(h]h ]h"]h$]h&]uh1jshjf'ubeh}(h]h ]h"]h$]h&]uh1jShj'hM$hj]#ubjT)}(hF``ramp_delay`` Time to settle down after voltage change (unit: uV/us) h](jZ)}(h``ramp_delay``h]j)}(hj'h]h ramp_delay}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM%hj'ubjt)}(hhh]j)}(h6Time to settle down after voltage change (unit: uV/us)h]h6Time to settle down after voltage change (unit: uV/us)}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'hM%hj'ubah}(h]h ]h"]h$]h&]uh1jshj'ubeh}(h]h ]h"]h$]h&]uh1jShj'hM%hj]#ubjT)}(hI``min_dropout_uV`` The minimum dropout voltage this regulator can handle h](jZ)}(h``min_dropout_uV``h]j)}(hj'h]hmin_dropout_uV}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM&hj'ubjt)}(hhh]j)}(h5The minimum dropout voltage this regulator can handleh]h5The minimum dropout voltage this regulator can handle}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'hM&hj'ubah}(h]h ]h"]h$]h&]uh1jshj'ubeh}(h]h ]h"]h$]h&]uh1jShj'hM&hj]#ubjT)}(h?``linear_ranges`` A constant table of possible voltage ranges. h](jZ)}(h``linear_ranges``h]j)}(hj(h]h linear_ranges}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM'hj(ubjt)}(hhh]j)}(h,A constant table of possible voltage ranges.h]h,A constant table of possible voltage ranges.}(hj0(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,(hM'hj-(ubah}(h]h ]h"]h$]h&]uh1jshj(ubeh}(h]h ]h"]h$]h&]uh1jShj,(hM'hj]#ubjT)}(h``linear_range_selectors_bitfield`` A constant table of voltage range selectors as bitfield values. If pickable ranges are used each range must have corresponding selector here. h](jZ)}(h#``linear_range_selectors_bitfield``h]j)}(hjP(h]hlinear_range_selectors_bitfield}(hjR(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN(ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM+hjJ(ubjt)}(hhh]j)}(hA constant table of voltage range selectors as bitfield values. If pickable ranges are used each range must have corresponding selector here.h]hA constant table of voltage range selectors as bitfield values. If pickable ranges are used each range must have corresponding selector here.}(hji(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM(hjf(ubah}(h]h ]h"]h$]h&]uh1jshjJ(ubeh}(h]h ]h"]h$]h&]uh1jShje(hM+hj]#ubjT)}(hz``n_linear_ranges`` Number of entries in the **linear_ranges** (and in linear_range_selectors_bitfield if used) table(s). h](jZ)}(h``n_linear_ranges``h]j)}(hj(h]hn_linear_ranges}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM-hj(ubjt)}(hhh]j)}(heNumber of entries in the **linear_ranges** (and in linear_range_selectors_bitfield if used) table(s).h](hNumber of entries in the }(hj(hhhNhNubj )}(h**linear_ranges**h]h linear_ranges}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj(ubh; (and in linear_range_selectors_bitfield if used) table(s).}(hj(hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM,hj(ubah}(h]h ]h"]h$]h&]uh1jshj(ubeh}(h]h ]h"]h$]h&]uh1jShj(hM-hj]#ubjT)}(h>``volt_table`` Voltage mapping table (if table based mapping) h](jZ)}(h``volt_table``h]j)}(hj(h]h volt_table}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM.hj(ubjt)}(hhh]j)}(h.Voltage mapping table (if table based mapping)h]h.Voltage mapping table (if table based mapping)}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(hM.hj(ubah}(h]h ]h"]h$]h&]uh1jshj(ubeh}(h]h ]h"]h$]h&]uh1jShj(hM.hj]#ubjT)}(hD``curr_table`` Current limit mapping table (if table based mapping) h](jZ)}(h``curr_table``h]j)}(hj)h]h curr_table}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj )ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM/hj )ubjt)}(hhh]j)}(h4Current limit mapping table (if table based mapping)h]h4Current limit mapping table (if table based mapping)}(hj()hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$)hM/hj%)ubah}(h]h ]h"]h$]h&]uh1jshj )ubeh}(h]h ]h"]h$]h&]uh1jShj$)hM/hj]#ubjT)}(h``vsel_range_reg`` Register for range selector when using pickable ranges and ``regulator_map_*_voltage_*_pickable`` functions. h](jZ)}(h``vsel_range_reg``h]j)}(hjH)h]hvsel_range_reg}(hjJ)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF)ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM2hjB)ubjt)}(hhh]j)}(hlRegister for range selector when using pickable ranges and ``regulator_map_*_voltage_*_pickable`` functions.h](h;Register for range selector when using pickable ranges and }(hja)hhhNhNubj)}(h&``regulator_map_*_voltage_*_pickable``h]h"regulator_map_*_voltage_*_pickable}(hji)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja)ubh functions.}(hja)hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM1hj^)ubah}(h]h ]h"]h$]h&]uh1jshjB)ubeh}(h]h ]h"]h$]h&]uh1jShj])hM2hj]#ubjT)}(hG``vsel_range_mask`` Mask for register bitfield used for range selector h](jZ)}(h``vsel_range_mask``h]j)}(hj)h]hvsel_range_mask}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM3hj)ubjt)}(hhh]j)}(h2Mask for register bitfield used for range selectorh]h2Mask for register bitfield used for range selector}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)hM3hj)ubah}(h]h ]h"]h$]h&]uh1jshj)ubeh}(h]h ]h"]h$]h&]uh1jShj)hM3hj]#ubjT)}(hy``range_applied_by_vsel`` A flag to indicate that changes to vsel_range_reg are only effective after vsel_reg is written h](jZ)}(h``range_applied_by_vsel``h]j)}(hj)h]hrange_applied_by_vsel}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM5hj)ubjt)}(hhh]j)}(h^A flag to indicate that changes to vsel_range_reg are only effective after vsel_reg is writtenh]h^A flag to indicate that changes to vsel_range_reg are only effective after vsel_reg is written}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM4hj)ubah}(h]h ]h"]h$]h&]uh1jshj)ubeh}(h]h ]h"]h$]h&]uh1jShj)hM5hj]#ubjT)}(hL``vsel_reg`` Register for selector when using ``regulator_map_*_voltage_*`` h](jZ)}(h ``vsel_reg``h]j)}(hj*h]hvsel_reg}(hj *hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM6hj*ubjt)}(hhh]j)}(h>Register for selector when using ``regulator_map_*_voltage_*``h](h!Register for selector when using }(hj *hhhNhNubj)}(h``regulator_map_*_voltage_*``h]hregulator_map_*_voltage_*}(hj(*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj *ubeh}(h]h ]h"]h$]h&]uh1jhj*hM6hj*ubah}(h]h ]h"]h$]h&]uh1jshj*ubeh}(h]h ]h"]h$]h&]uh1jShj*hM6hj]#ubjT)}(h;``vsel_mask`` Mask for register bitfield used for selector h](jZ)}(h ``vsel_mask``h]j)}(hjN*h]h vsel_mask}(hjP*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjL*ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM7hjH*ubjt)}(hhh]j)}(h,Mask for register bitfield used for selectorh]h,Mask for register bitfield used for selector}(hjg*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjc*hM7hjd*ubah}(h]h ]h"]h$]h&]uh1jshjH*ubeh}(h]h ]h"]h$]h&]uh1jShjc*hM7hj]#ubjT)}(hX$``vsel_step`` Specify the resolution of selector stepping when setting voltage. If 0, then no stepping is done (requested selector is set directly), if >0 then the regulator API will ramp the voltage up/down gradually each time increasing/decreasing the selector by the specified step value. h](jZ)}(h ``vsel_step``h]j)}(hj*h]h vsel_step}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM<hj*ubjt)}(hhh]j)}(hXSpecify the resolution of selector stepping when setting voltage. If 0, then no stepping is done (requested selector is set directly), if >0 then the regulator API will ramp the voltage up/down gradually each time increasing/decreasing the selector by the specified step value.h]hXSpecify the resolution of selector stepping when setting voltage. If 0, then no stepping is done (requested selector is set directly), if >0 then the regulator API will ramp the voltage up/down gradually each time increasing/decreasing the selector by the specified step value.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM8hj*ubah}(h]h ]h"]h$]h&]uh1jshj*ubeh}(h]h ]h"]h$]h&]uh1jShj*hM<hj]#ubjT)}(hP``csel_reg`` Register for current limit selector using regmap set_current_limit h](jZ)}(h ``csel_reg``h]j)}(hj*h]hcsel_reg}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM=hj*ubjt)}(hhh]j)}(hBRegister for current limit selector using regmap set_current_limith]hBRegister for current limit selector using regmap set_current_limit}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*hM=hj*ubah}(h]h ]h"]h$]h&]uh1jshj*ubeh}(h]h ]h"]h$]h&]uh1jShj*hM=hj]#ubjT)}(hI``csel_mask`` Mask for register bitfield used for current limit selector h](jZ)}(h ``csel_mask``h]j)}(hj*h]h csel_mask}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM>hj*ubjt)}(hhh]j)}(h:Mask for register bitfield used for current limit selectorh]h:Mask for register bitfield used for current limit selector}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+hM>hj+ubah}(h]h ]h"]h$]h&]uh1jshj*ubeh}(h]h ]h"]h$]h&]uh1jShj+hM>hj]#ubjT)}(hm``apply_reg`` Register for initiate voltage change on the output when using regulator_set_voltage_sel_regmap h](jZ)}(h ``apply_reg``h]j)}(hj3+h]h apply_reg}(hj5+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1+ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM@hj-+ubjt)}(hhh]j)}(h^Register for initiate voltage change on the output when using regulator_set_voltage_sel_regmaph]h^Register for initiate voltage change on the output when using regulator_set_voltage_sel_regmap}(hjL+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM?hjI+ubah}(h]h ]h"]h$]h&]uh1jshj-+ubeh}(h]h ]h"]h$]h&]uh1jShjH+hM@hj]#ubjT)}(h{``apply_bit`` Register bitfield used for initiate voltage change on the output when using regulator_set_voltage_sel_regmap h](jZ)}(h ``apply_bit``h]j)}(hjm+h]h apply_bit}(hjo+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk+ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMBhjg+ubjt)}(hhh]j)}(hlRegister bitfield used for initiate voltage change on the output when using regulator_set_voltage_sel_regmaph]hlRegister bitfield used for initiate voltage change on the output when using regulator_set_voltage_sel_regmap}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMAhj+ubah}(h]h ]h"]h$]h&]uh1jshjg+ubeh}(h]h ]h"]h$]h&]uh1jShj+hMBhj]#ubjT)}(hI``enable_reg`` Register for control when using regmap enable/disable ops h](jZ)}(h``enable_reg``h]j)}(hj+h]h enable_reg}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMChj+ubjt)}(hhh]j)}(h9Register for control when using regmap enable/disable opsh]h9Register for control when using regmap enable/disable ops}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+hMChj+ubah}(h]h ]h"]h$]h&]uh1jshj+ubeh}(h]h ]h"]h$]h&]uh1jShj+hMChj]#ubjT)}(hF``enable_mask`` Mask for control when using regmap enable/disable ops h](jZ)}(h``enable_mask``h]j)}(hj+h]h enable_mask}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMDhj+ubjt)}(hhh]j)}(h5Mask for control when using regmap enable/disable opsh]h5Mask for control when using regmap enable/disable ops}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+hMDhj+ubah}(h]h ]h"]h$]h&]uh1jshj+ubeh}(h]h ]h"]h$]h&]uh1jShj+hMDhj]#ubjT)}(hO``enable_val`` Enabling value for control when using regmap enable/disable ops h](jZ)}(h``enable_val``h]j)}(hj,h]h enable_val}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMEhj,ubjt)}(hhh]j)}(h?Enabling value for control when using regmap enable/disable opsh]h?Enabling value for control when using regmap enable/disable ops}(hj2,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.,hMEhj/,ubah}(h]h ]h"]h$]h&]uh1jshj,ubeh}(h]h ]h"]h$]h&]uh1jShj.,hMEhj]#ubjT)}(hQ``disable_val`` Disabling value for control when using regmap enable/disable ops h](jZ)}(h``disable_val``h]j)}(hjR,h]h disable_val}(hjT,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP,ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMFhjL,ubjt)}(hhh]j)}(h@Disabling value for control when using regmap enable/disable opsh]h@Disabling value for control when using regmap enable/disable ops}(hjk,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjg,hMFhjh,ubah}(h]h ]h"]h$]h&]uh1jshjL,ubeh}(h]h ]h"]h$]h&]uh1jShjg,hMFhj]#ubjT)}(h``enable_is_inverted`` A flag to indicate set enable_mask bits to disable when using regulator_enable_regmap and friends APIs. h](jZ)}(h``enable_is_inverted``h]j)}(hj,h]henable_is_inverted}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMHhj,ubjt)}(hhh]j)}(hgA flag to indicate set enable_mask bits to disable when using regulator_enable_regmap and friends APIs.h]hgA flag to indicate set enable_mask bits to disable when using regulator_enable_regmap and friends APIs.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMGhj,ubah}(h]h ]h"]h$]h&]uh1jshj,ubeh}(h]h ]h"]h$]h&]uh1jShj,hMHhj]#ubjT)}(hA``bypass_reg`` Register for control when using regmap set_bypass h](jZ)}(h``bypass_reg``h]j)}(hj,h]h bypass_reg}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMIhj,ubjt)}(hhh]j)}(h1Register for control when using regmap set_bypassh]h1Register for control when using regmap set_bypass}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,hMIhj,ubah}(h]h ]h"]h$]h&]uh1jshj,ubeh}(h]h ]h"]h$]h&]uh1jShj,hMIhj]#ubjT)}(h>``bypass_mask`` Mask for control when using regmap set_bypass h](jZ)}(h``bypass_mask``h]j)}(hj,h]h bypass_mask}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMJhj,ubjt)}(hhh]j)}(h-Mask for control when using regmap set_bypassh]h-Mask for control when using regmap set_bypass}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-hMJhj-ubah}(h]h ]h"]h$]h&]uh1jshj,ubeh}(h]h ]h"]h$]h&]uh1jShj-hMJhj]#ubjT)}(hJ``bypass_val_on`` Enabling value for control when using regmap set_bypass h](jZ)}(h``bypass_val_on``h]j)}(hj7-h]h bypass_val_on}(hj9-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5-ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMKhj1-ubjt)}(hhh]j)}(h7Enabling value for control when using regmap set_bypassh]h7Enabling value for control when using regmap set_bypass}(hjP-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjL-hMKhjM-ubah}(h]h ]h"]h$]h&]uh1jshj1-ubeh}(h]h ]h"]h$]h&]uh1jShjL-hMKhj]#ubjT)}(hL``bypass_val_off`` Disabling value for control when using regmap set_bypass h](jZ)}(h``bypass_val_off``h]j)}(hjp-h]hbypass_val_off}(hjr-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjn-ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMLhjj-ubjt)}(hhh]j)}(h8Disabling value for control when using regmap set_bypassh]h8Disabling value for control when using regmap set_bypass}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-hMLhj-ubah}(h]h ]h"]h$]h&]uh1jshjj-ubeh}(h]h ]h"]h$]h&]uh1jShj-hMLhj]#ubjT)}(h[``active_discharge_on`` Disabling value for control when using regmap set_active_discharge h](jZ)}(h``active_discharge_on``h]j)}(hj-h]hactive_discharge_on}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMPhj-ubjt)}(hhh]j)}(hBDisabling value for control when using regmap set_active_dischargeh]hBDisabling value for control when using regmap set_active_discharge}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMOhj-ubah}(h]h ]h"]h$]h&]uh1jshj-ubeh}(h]h ]h"]h$]h&]uh1jShj-hMPhj]#ubjT)}(h[``active_discharge_off`` Enabling value for control when using regmap set_active_discharge h](jZ)}(h``active_discharge_off``h]j)}(hj-h]hactive_discharge_off}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMNhj-ubjt)}(hhh]j)}(hAEnabling value for control when using regmap set_active_dischargeh]hAEnabling value for control when using regmap set_active_discharge}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMMhj-ubah}(h]h ]h"]h$]h&]uh1jshj-ubeh}(h]h ]h"]h$]h&]uh1jShj-hMNhj]#ubjT)}(hR``active_discharge_mask`` Mask for control when using regmap set_active_discharge h](jZ)}(h``active_discharge_mask``h]j)}(hj.h]hactive_discharge_mask}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMRhj.ubjt)}(hhh]j)}(h7Mask for control when using regmap set_active_dischargeh]h7Mask for control when using regmap set_active_discharge}(hj6.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMQhj3.ubah}(h]h ]h"]h$]h&]uh1jshj.ubeh}(h]h ]h"]h$]h&]uh1jShj2.hMRhj]#ubjT)}(hU``active_discharge_reg`` Register for control when using regmap set_active_discharge h](jZ)}(h``active_discharge_reg``h]j)}(hjW.h]hactive_discharge_reg}(hjY.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjU.ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMThjQ.ubjt)}(hhh]j)}(h;Register for control when using regmap set_active_dischargeh]h;Register for control when using regmap set_active_discharge}(hjp.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMShjm.ubah}(h]h ]h"]h$]h&]uh1jshjQ.ubeh}(h]h ]h"]h$]h&]uh1jShjl.hMThj]#ubjT)}(hI``soft_start_reg`` Register for control when using regmap set_soft_start h](jZ)}(h``soft_start_reg``h]j)}(hj.h]hsoft_start_reg}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMUhj.ubjt)}(hhh]j)}(h5Register for control when using regmap set_soft_starth]h5Register for control when using regmap set_soft_start}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.hMUhj.ubah}(h]h ]h"]h$]h&]uh1jshj.ubeh}(h]h ]h"]h$]h&]uh1jShj.hMUhj]#ubjT)}(hF``soft_start_mask`` Mask for control when using regmap set_soft_start h](jZ)}(h``soft_start_mask``h]j)}(hj.h]hsoft_start_mask}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMVhj.ubjt)}(hhh]j)}(h1Mask for control when using regmap set_soft_starth]h1Mask for control when using regmap set_soft_start}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.hMVhj.ubah}(h]h ]h"]h$]h&]uh1jshj.ubeh}(h]h ]h"]h$]h&]uh1jShj.hMVhj]#ubjT)}(hR``soft_start_val_on`` Enabling value for control when using regmap set_soft_start h](jZ)}(h``soft_start_val_on``h]j)}(hj/h]hsoft_start_val_on}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMXhj.ubjt)}(hhh]j)}(h;Enabling value for control when using regmap set_soft_starth]h;Enabling value for control when using regmap set_soft_start}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMWhj/ubah}(h]h ]h"]h$]h&]uh1jshj.ubeh}(h]h ]h"]h$]h&]uh1jShj/hMXhj]#ubjT)}(hG``pull_down_reg`` Register for control when using regmap set_pull_down h](jZ)}(h``pull_down_reg``h]j)}(hj=/h]h pull_down_reg}(hj?/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;/ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMYhj7/ubjt)}(hhh]j)}(h4Register for control when using regmap set_pull_downh]h4Register for control when using regmap set_pull_down}(hjV/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR/hMYhjS/ubah}(h]h ]h"]h$]h&]uh1jshj7/ubeh}(h]h ]h"]h$]h&]uh1jShjR/hMYhj]#ubjT)}(hD``pull_down_mask`` Mask for control when using regmap set_pull_down h](jZ)}(h``pull_down_mask``h]j)}(hjv/h]hpull_down_mask}(hjx/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt/ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMZhjp/ubjt)}(hhh]j)}(h0Mask for control when using regmap set_pull_downh]h0Mask for control when using regmap set_pull_down}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/hMZhj/ubah}(h]h ]h"]h$]h&]uh1jshjp/ubeh}(h]h ]h"]h$]h&]uh1jShj/hMZhj]#ubjT)}(hP``pull_down_val_on`` Enabling value for control when using regmap set_pull_down h](jZ)}(h``pull_down_val_on``h]j)}(hj/h]hpull_down_val_on}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM\hj/ubjt)}(hhh]j)}(h:Enabling value for control when using regmap set_pull_downh]h:Enabling value for control when using regmap set_pull_down}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM[hj/ubah}(h]h ]h"]h$]h&]uh1jshj/ubeh}(h]h ]h"]h$]h&]uh1jShj/hM\hj]#ubjT)}(h?``ramp_reg`` Register for controlling the regulator ramp-rate. h](jZ)}(h ``ramp_reg``h]j)}(hj/h]hramp_reg}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM^hj/ubjt)}(hhh]j)}(h1Register for controlling the regulator ramp-rate.h]h1Register for controlling the regulator ramp-rate.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/hM^hj/ubah}(h]h ]h"]h$]h&]uh1jshj/ubeh}(h]h ]h"]h$]h&]uh1jShj/hM^hj]#ubjT)}(h:``ramp_mask`` Bitmask for the ramp-rate control register. h](jZ)}(h ``ramp_mask``h]j)}(hj"0h]h ramp_mask}(hj$0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 0ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM_hj0ubjt)}(hhh]j)}(h+Bitmask for the ramp-rate control register.h]h+Bitmask for the ramp-rate control register.}(hj;0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj70hM_hj80ubah}(h]h ]h"]h$]h&]uh1jshj0ubeh}(h]h ]h"]h$]h&]uh1jShj70hM_hj]#ubjT)}(h``ramp_delay_table`` Table for mapping the regulator ramp-rate values. Values should be given in units of V/S (uV/uS). See the regulator_set_ramp_delay_regmap(). h](jZ)}(h``ramp_delay_table``h]j)}(hj[0h]hramp_delay_table}(hj]0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjY0ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMbhjU0ubjt)}(hhh]j)}(hTable for mapping the regulator ramp-rate values. Values should be given in units of V/S (uV/uS). See the regulator_set_ramp_delay_regmap().h]hTable for mapping the regulator ramp-rate values. Values should be given in units of V/S (uV/uS). See the regulator_set_ramp_delay_regmap().}(hjt0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM`hjq0ubah}(h]h ]h"]h$]h&]uh1jshjU0ubeh}(h]h ]h"]h$]h&]uh1jShjp0hMbhj]#ubjT)}(h>``n_ramp_values`` number of elements at **ramp_delay_table**. h](jZ)}(h``n_ramp_values``h]j)}(hj0h]h n_ramp_values}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMchj0ubjt)}(hhh]j)}(h+number of elements at **ramp_delay_table**.h](hnumber of elements at }(hj0hhhNhNubj )}(h**ramp_delay_table**h]hramp_delay_table}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj0ubh.}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhj0hMchj0ubah}(h]h ]h"]h$]h&]uh1jshj0ubeh}(h]h ]h"]h$]h&]uh1jShj0hMchj]#ubjT)}(hD``enable_time`` Time taken for initial enable of regulator (in uS). h](jZ)}(h``enable_time``h]j)}(hj0h]h enable_time}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMehj0ubjt)}(hhh]j)}(h3Time taken for initial enable of regulator (in uS).h]h3Time taken for initial enable of regulator (in uS).}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0hMehj0ubah}(h]h ]h"]h$]h&]uh1jshj0ubeh}(h]h ]h"]h$]h&]uh1jShj0hMehj]#ubjT)}(hD``off_on_delay`` guard time (in uS), before re-enabling a regulator h](jZ)}(h``off_on_delay``h]j)}(hj1h]h off_on_delay}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMfhj1ubjt)}(hhh]j)}(h2guard time (in uS), before re-enabling a regulatorh]h2guard time (in uS), before re-enabling a regulator}(hj21hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.1hMfhj/1ubah}(h]h ]h"]h$]h&]uh1jshj1ubeh}(h]h ]h"]h$]h&]uh1jShj.1hMfhj]#ubjT)}(h``poll_enabled_time`` The polling interval (in uS) to use while checking that the regulator was actually enabled. Max upto enable_time. h](jZ)}(h``poll_enabled_time``h]j)}(hjR1h]hpoll_enabled_time}(hjT1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP1ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMihjL1ubjt)}(hhh]j)}(hqThe polling interval (in uS) to use while checking that the regulator was actually enabled. Max upto enable_time.h]hqThe polling interval (in uS) to use while checking that the regulator was actually enabled. Max upto enable_time.}(hjk1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhhjh1ubah}(h]h ]h"]h$]h&]uh1jshjL1ubeh}(h]h ]h"]h$]h&]uh1jShjg1hMihj]#ubjT)}(hO``of_map_mode`` Maps a hardware mode defined in a DeviceTree to a standard modeh](jZ)}(h``of_map_mode``h]j)}(hj1h]h of_map_mode}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMjhj1ubjt)}(hhh]j)}(h?Maps a hardware mode defined in a DeviceTree to a standard modeh]h?Maps a hardware mode defined in a DeviceTree to a standard mode}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMkhj1ubah}(h]h ]h"]h$]h&]uh1jshj1ubeh}(h]h ]h"]h$]h&]uh1jShj1hMjhj]#ubeh}(h]h ]h"]h$]h&]uh1jNhj#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhjhNubj)}(h**Description**h]j )}(hj1h]h Description}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj1ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMnhjBhhubj)}(hEach regulator registered with the core is described with a structure of this type and a struct regulator_config. This structure contains the non-varying parts of the regulator description.h]hEach regulator registered with the core is described with a structure of this type and a struct regulator_config. This structure contains the non-varying parts of the regulator description.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjBhhubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnregulator_config (C struct)c.regulator_confighNtauh1jahjBhhhjhNubjt)}(hhh](jy)}(hregulator_configh]j)}(hstruct regulator_configh](j)}(hjh]hstruct}(hj 2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 2hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 2hhhj2hMubj)}(hregulator_configh]j)}(hj2h]hregulator_config}(hj-2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)2ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj 2hhhj2hMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj2hhhj2hMubah}(h]j2ah ](jjeh"]h$]h&]jj)jhuh1jxhj2hMhj2hhubj)}(hhh]j)}(hDynamic regulator descriptorh]hDynamic regulator descriptor}(hjO2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjL2hhubah}(h]h ]h"]h$]h&]uh1jhj2hhhj2hMubeh}(h]h ](j5structeh"]h$]h&]jj5jjg2jjg2jjjuh1jshhhjBhjhNubj)}(hX**Definition**:: struct regulator_config { struct device *dev; const struct regulator_init_data *init_data; void *driver_data; struct device_node *of_node; struct regmap *regmap; struct gpio_desc *ena_gpiod; }; **Members** ``dev`` struct device for the regulator ``init_data`` platform provided init data, passed through by driver ``driver_data`` private regulator data ``of_node`` OpenFirmware node to parse for device tree bindings (may be NULL). ``regmap`` regmap to use for core regmap helpers if dev_get_regmap() is insufficient. ``ena_gpiod`` GPIO controlling regulator enable.h](j)}(h**Definition**::h](j )}(h**Definition**h]h Definition}(hjs2hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjo2ubh:}(hjo2hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjk2ubj&)}(hstruct regulator_config { struct device *dev; const struct regulator_init_data *init_data; void *driver_data; struct device_node *of_node; struct regmap *regmap; struct gpio_desc *ena_gpiod; };h]hstruct regulator_config { struct device *dev; const struct regulator_init_data *init_data; void *driver_data; struct device_node *of_node; struct regmap *regmap; struct gpio_desc *ena_gpiod; };}hj2sbah}(h]h ]h"]h$]h&]hhuh1j%hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjk2ubj)}(h **Members**h]j )}(hj2h]hMembers}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj2ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjk2ubjO)}(hhh](jT)}(h(``dev`` struct device for the regulator h](jZ)}(h``dev``h]j)}(hj2h]hdev}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj2ubjt)}(hhh]j)}(hstruct device for the regulatorh]hstruct device for the regulator}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2hMhj2ubah}(h]h ]h"]h$]h&]uh1jshj2ubeh}(h]h ]h"]h$]h&]uh1jShj2hMhj2ubjT)}(hD``init_data`` platform provided init data, passed through by driver h](jZ)}(h ``init_data``h]j)}(hj2h]h init_data}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj2ubjt)}(hhh]j)}(h5platform provided init data, passed through by driverh]h5platform provided init data, passed through by driver}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 3hMhj 3ubah}(h]h ]h"]h$]h&]uh1jshj2ubeh}(h]h ]h"]h$]h&]uh1jShj 3hMhj2ubjT)}(h'``driver_data`` private regulator data h](jZ)}(h``driver_data``h]j)}(hj.3h]h driver_data}(hj03hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,3ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj(3ubjt)}(hhh]j)}(hprivate regulator datah]hprivate regulator data}(hjG3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjC3hMhjD3ubah}(h]h ]h"]h$]h&]uh1jshj(3ubeh}(h]h ]h"]h$]h&]uh1jShjC3hMhj2ubjT)}(hO``of_node`` OpenFirmware node to parse for device tree bindings (may be NULL). h](jZ)}(h ``of_node``h]j)}(hjg3h]hof_node}(hji3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje3ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhja3ubjt)}(hhh]j)}(hBOpenFirmware node to parse for device tree bindings (may be NULL).h]hBOpenFirmware node to parse for device tree bindings (may be NULL).}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj}3ubah}(h]h ]h"]h$]h&]uh1jshja3ubeh}(h]h ]h"]h$]h&]uh1jShj|3hMhj2ubjT)}(hV``regmap`` regmap to use for core regmap helpers if dev_get_regmap() is insufficient. h](jZ)}(h ``regmap``h]j)}(hj3h]hregmap}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj3ubjt)}(hhh]j)}(hJregmap to use for core regmap helpers if dev_get_regmap() is insufficient.h]hJregmap to use for core regmap helpers if dev_get_regmap() is insufficient.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj3ubah}(h]h ]h"]h$]h&]uh1jshj3ubeh}(h]h ]h"]h$]h&]uh1jShj3hMhj2ubjT)}(h0``ena_gpiod`` GPIO controlling regulator enable.h](jZ)}(h ``ena_gpiod``h]j)}(hj3h]h ena_gpiod}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj3ubjt)}(hhh]j)}(h"GPIO controlling regulator enable.h]h"GPIO controlling regulator enable.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj3ubah}(h]h ]h"]h$]h&]uh1jshj3ubeh}(h]h ]h"]h$]h&]uh1jShj3hMhj2ubeh}(h]h ]h"]h$]h&]uh1jNhjk2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhjhNubj)}(h**Description**h]j )}(hj4h]h Description}(hj 4hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj4ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjBhhubj)}(hEach regulator registered with the core is described with a structure of this type and a struct regulator_desc. This structure contains the runtime variable parts of the regulator description.h]hEach regulator registered with the core is described with a structure of this type and a struct regulator_desc. This structure contains the runtime variable parts of the regulator description.}(hj44hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjBhhubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnregulator_err_state (C struct)c.regulator_err_statehNtauh1jahjBhhhjhNubjt)}(hhh](jy)}(hregulator_err_stateh]j)}(hstruct regulator_err_stateh](j)}(hjh]hstruct}(hj\4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjX4hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMubj)}(h h]h }(hjj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjX4hhhji4hMubj)}(hregulator_err_stateh]j)}(hjV4h]hregulator_err_state}(hj|4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjx4ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjX4hhhji4hMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjT4hhhji4hMubah}(h]jO4ah ](jjeh"]h$]h&]jj)jhuh1jxhji4hMhjQ4hhubj)}(hhh]j)}(h#regulator error/notification statush]h#regulator error/notification status}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj4hhubah}(h]h ]h"]h$]h&]uh1jhjQ4hhhji4hMubeh}(h]h ](j5structeh"]h$]h&]jj5jj4jj4jjjuh1jshhhjBhjhNubj)}(hX**Definition**:: struct regulator_err_state { struct regulator_dev *rdev; unsigned long notifs; unsigned long errors; int possible_errs; }; **Members** ``rdev`` Regulator which status the struct indicates. ``notifs`` Events which have occurred on the regulator. ``errors`` Errors which are active on the regulator. ``possible_errs`` Errors which can be signaled (by given IRQ).h](j)}(h**Definition**::h](j )}(h**Definition**h]h Definition}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj4ubh:}(hj4hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj4ubj&)}(hstruct regulator_err_state { struct regulator_dev *rdev; unsigned long notifs; unsigned long errors; int possible_errs; };h]hstruct regulator_err_state { struct regulator_dev *rdev; unsigned long notifs; unsigned long errors; int possible_errs; };}hj4sbah}(h]h ]h"]h$]h&]hhuh1j%hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj4ubj)}(h **Members**h]j )}(hj4h]hMembers}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj4ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj4ubjO)}(hhh](jT)}(h6``rdev`` Regulator which status the struct indicates. h](jZ)}(h``rdev``h]j)}(hj 5h]hrdev}(hj 5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 5ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj5ubjt)}(hhh]j)}(h,Regulator which status the struct indicates.h]h,Regulator which status the struct indicates.}(hj$5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 5hMhj!5ubah}(h]h ]h"]h$]h&]uh1jshj5ubeh}(h]h ]h"]h$]h&]uh1jShj 5hMhj5ubjT)}(h8``notifs`` Events which have occurred on the regulator. h](jZ)}(h ``notifs``h]j)}(hjD5h]hnotifs}(hjF5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB5ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj>5ubjt)}(hhh]j)}(h,Events which have occurred on the regulator.h]h,Events which have occurred on the regulator.}(hj]5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjY5hMhjZ5ubah}(h]h ]h"]h$]h&]uh1jshj>5ubeh}(h]h ]h"]h$]h&]uh1jShjY5hMhj5ubjT)}(h5``errors`` Errors which are active on the regulator. h](jZ)}(h ``errors``h]j)}(hj}5h]herrors}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{5ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjw5ubjt)}(hhh]j)}(h)Errors which are active on the regulator.h]h)Errors which are active on the regulator.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5hMhj5ubah}(h]h ]h"]h$]h&]uh1jshjw5ubeh}(h]h ]h"]h$]h&]uh1jShj5hMhj5ubjT)}(h>``possible_errs`` Errors which can be signaled (by given IRQ).h](jZ)}(h``possible_errs``h]j)}(hj5h]h possible_errs}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj5ubjt)}(hhh]j)}(h,Errors which can be signaled (by given IRQ).h]h,Errors which can be signaled (by given IRQ).}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj5ubah}(h]h ]h"]h$]h&]uh1jshj5ubeh}(h]h ]h"]h$]h&]uh1jShj5hMhj5ubeh}(h]h ]h"]h$]h&]uh1jNhj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhjhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnregulator_irq_data (C struct)c.regulator_irq_datahNtauh1jahjBhhhjhNubjt)}(hhh](jy)}(hregulator_irq_datah]j)}(hstruct regulator_irq_datah](j)}(hjh]hstruct}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 6hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 6hhhj6hMubj)}(hregulator_irq_datah]j)}(hj 6h]hregulator_irq_data}(hj06hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,6ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj 6hhhj6hMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj6hhhj6hMubah}(h]j6ah ](jjeh"]h$]h&]jj)jhuh1jxhj6hMhj6hhubj)}(hhh]j)}(h(regulator error/notification status datah]h(regulator error/notification status data}(hjR6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjO6hhubah}(h]h ]h"]h$]h&]uh1jhj6hhhj6hMubeh}(h]h ](j5structeh"]h$]h&]jj5jjj6jjj6jjjuh1jshhhjBhjhNubj)}(hX**Definition**:: struct regulator_irq_data { struct regulator_err_state *states; int num_states; void *data; long opaque; }; **Members** ``states`` Status structs for each of the associated regulators. ``num_states`` Amount of associated regulators. ``data`` Driver data pointer given at regulator_irq_desc. ``opaque`` Value storage for IC driver. Core does not update this. ICs may want to store status register value here at map_event and compare contents at 'renable' callback to see if new problems have been added to status. If that is the case it may be desirable to return REGULATOR_ERROR_CLEARED and not REGULATOR_ERROR_ON to allow IRQ fire again and to generate notifications also for the new issues.h](j)}(h**Definition**::h](j )}(h**Definition**h]h Definition}(hjv6hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjr6ubh:}(hjr6hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjn6ubj&)}(h{struct regulator_irq_data { struct regulator_err_state *states; int num_states; void *data; long opaque; };h]h{struct regulator_irq_data { struct regulator_err_state *states; int num_states; void *data; long opaque; };}hj6sbah}(h]h ]h"]h$]h&]hhuh1j%hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjn6ubj)}(h **Members**h]j )}(hj6h]hMembers}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj6ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjn6ubjO)}(hhh](jT)}(hA``states`` Status structs for each of the associated regulators. h](jZ)}(h ``states``h]j)}(hj6h]hstates}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj6ubjt)}(hhh]j)}(h5Status structs for each of the associated regulators.h]h5Status structs for each of the associated regulators.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1jshj6ubeh}(h]h ]h"]h$]h&]uh1jShj6hMhj6ubjT)}(h0``num_states`` Amount of associated regulators. h](jZ)}(h``num_states``h]j)}(hj6h]h num_states}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj6ubjt)}(hhh]j)}(h Amount of associated regulators.h]h Amount of associated regulators.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 7hMhj7ubah}(h]h ]h"]h$]h&]uh1jshj6ubeh}(h]h ]h"]h$]h&]uh1jShj 7hMhj6ubjT)}(h:``data`` Driver data pointer given at regulator_irq_desc. h](jZ)}(h``data``h]j)}(hj17h]hdata}(hj37hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/7ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj+7ubjt)}(hhh]j)}(h0Driver data pointer given at regulator_irq_desc.h]h0Driver data pointer given at regulator_irq_desc.}(hjJ7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF7hMhjG7ubah}(h]h ]h"]h$]h&]uh1jshj+7ubeh}(h]h ]h"]h$]h&]uh1jShjF7hMhj6ubjT)}(hX``opaque`` Value storage for IC driver. Core does not update this. ICs may want to store status register value here at map_event and compare contents at 'renable' callback to see if new problems have been added to status. If that is the case it may be desirable to return REGULATOR_ERROR_CLEARED and not REGULATOR_ERROR_ON to allow IRQ fire again and to generate notifications also for the new issues.h](jZ)}(h ``opaque``h]j)}(hjj7h]hopaque}(hjl7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjh7ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjd7ubjt)}(hhh]j)}(hXValue storage for IC driver. Core does not update this. ICs may want to store status register value here at map_event and compare contents at 'renable' callback to see if new problems have been added to status. If that is the case it may be desirable to return REGULATOR_ERROR_CLEARED and not REGULATOR_ERROR_ON to allow IRQ fire again and to generate notifications also for the new issues.h]hXValue storage for IC driver. Core does not update this. ICs may want to store status register value here at map_event and compare contents at ‘renable’ callback to see if new problems have been added to status. If that is the case it may be desirable to return REGULATOR_ERROR_CLEARED and not REGULATOR_ERROR_ON to allow IRQ fire again and to generate notifications also for the new issues.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj7ubah}(h]h ]h"]h$]h&]uh1jshjd7ubeh}(h]h ]h"]h$]h&]uh1jShj7hMhj6ubeh}(h]h ]h"]h$]h&]uh1jNhjn6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhjhNubj)}(h**Description**h]j )}(hj7h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj7ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjBhhubj)}(hgThis structure is passed to 'map_event' and 'renable' callbacks for reporting regulator status to core.h]hoThis structure is passed to ‘map_event’ and ‘renable’ callbacks for reporting regulator status to core.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjBhhubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnregulator_irq_desc (C struct)c.regulator_irq_deschNtauh1jahjBhhhjhNubjt)}(hhh](jy)}(hregulator_irq_desch]j)}(hstruct regulator_irq_desch](j)}(hjh]hstruct}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7hhhj7hMubj)}(hregulator_irq_desch]j)}(hj7h]hregulator_irq_desc}(hj 8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj7hhhj7hMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj7hhhj7hMubah}(h]j7ah ](jjeh"]h$]h&]jj)jhuh1jxhj7hMhj7hhubj)}(hhh]j)}(h)notification sender for IRQ based events.h]h)notification sender for IRQ based events.}(hj-8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj*8hhubah}(h]h ]h"]h$]h&]uh1jhj7hhhj7hMubeh}(h]h ](j5structeh"]h$]h&]jj5jjE8jjE8jjjuh1jshhhjBhjhNubj)}(hXV**Definition**:: struct regulator_irq_desc { const char *name; int fatal_cnt; int reread_ms; int irq_off_ms; bool skip_off; bool high_prio; void *data; int (*die)(struct regulator_irq_data *rid); int (*map_event)(int irq, struct regulator_irq_data *rid, unsigned long *dev_mask); int (*renable)(struct regulator_irq_data *rid); }; **Members** ``name`` The visible name for the IRQ ``fatal_cnt`` If this IRQ is used to signal HW damaging condition it may be best to shut-down regulator(s) or reboot the SOC if error handling is repeatedly failing. If fatal_cnt is given the IRQ handling is aborted if it fails for fatal_cnt times and die() callback (if populated) is called. If die() is not populated poweroff for the system is attempted in order to prevent any further damage. ``reread_ms`` The time which is waited before attempting to re-read status at the worker if IC reading fails. Immediate re-read is done if time is not specified. ``irq_off_ms`` The time which IRQ is kept disabled before re-evaluating the status for devices which keep IRQ disabled for duration of the error. If this is not given the IRQ is left enabled and renable is not called. ``skip_off`` If set to true the IRQ handler will attempt to check if any of the associated regulators are enabled prior to taking other actions. If no regulators are enabled and this is set to true a spurious IRQ is assumed and IRQ_NONE is returned. ``high_prio`` Boolean to indicate that high priority WQ should be used. ``data`` Driver private data pointer which will be passed as such to the renable, map_event and die callbacks in regulator_irq_data. ``die`` Protection callback. If IC status reading or recovery actions fail fatal_cnt times this callback is called or system is powered off. This callback should implement a final protection attempt like disabling the regulator. If protection succeeded die() may return 0. If anything else is returned the core assumes final protection failed and attempts to perform a poweroff as a last resort. ``map_event`` Driver callback to map IRQ status into regulator devices with events / errors. NOTE: callback MUST initialize both the errors and notifs for all rdevs which it signals having active events as core does not clean the map data. REGULATOR_FAILED_RETRY can be returned to indicate that the status reading from IC failed. If this is repeated for fatal_cnt times the core will call die() callback or power-off the system as a last resort to protect the HW. ``renable`` Optional callback to check status (if HW supports that) before re-enabling IRQ. If implemented this should clear the error flags so that errors fetched by regulator_get_error_flags() are updated. If callback is not implemented then errors are assumed to be cleared and IRQ is re-enabled. REGULATOR_FAILED_RETRY can be returned to indicate that the status reading from IC failed. If this is repeated for 'fatal_cnt' times the core will call die() callback or if die() is not populated then attempt to power-off the system as a last resort to protect the HW. Returning zero indicates that the problem in HW has been solved and IRQ will be re-enabled. Returning REGULATOR_ERROR_ON indicates the error condition is still active and keeps IRQ disabled. Please note that returning REGULATOR_ERROR_ON does not retrigger evaluating what events are active or resending notifications. If this is needed you probably want to return zero and allow IRQ to retrigger causing events to be re-evaluated and re-sent.h](j)}(h**Definition**::h](j )}(h**Definition**h]h Definition}(hjQ8hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjM8ubh:}(hjM8hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjI8ubj&)}(hXastruct regulator_irq_desc { const char *name; int fatal_cnt; int reread_ms; int irq_off_ms; bool skip_off; bool high_prio; void *data; int (*die)(struct regulator_irq_data *rid); int (*map_event)(int irq, struct regulator_irq_data *rid, unsigned long *dev_mask); int (*renable)(struct regulator_irq_data *rid); };h]hXastruct regulator_irq_desc { const char *name; int fatal_cnt; int reread_ms; int irq_off_ms; bool skip_off; bool high_prio; void *data; int (*die)(struct regulator_irq_data *rid); int (*map_event)(int irq, struct regulator_irq_data *rid, unsigned long *dev_mask); int (*renable)(struct regulator_irq_data *rid); };}hjj8sbah}(h]h ]h"]h$]h&]hhuh1j%hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjI8ubj)}(h **Members**h]j )}(hj{8h]hMembers}(hj}8hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjy8ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjI8ubjO)}(hhh](jT)}(h&``name`` The visible name for the IRQ h](jZ)}(h``name``h]j)}(hj8h]hname}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj8ubjt)}(hhh]j)}(hThe visible name for the IRQh]hThe visible name for the IRQ}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jshj8ubeh}(h]h ]h"]h$]h&]uh1jShj8hMhj8ubjT)}(hX``fatal_cnt`` If this IRQ is used to signal HW damaging condition it may be best to shut-down regulator(s) or reboot the SOC if error handling is repeatedly failing. If fatal_cnt is given the IRQ handling is aborted if it fails for fatal_cnt times and die() callback (if populated) is called. If die() is not populated poweroff for the system is attempted in order to prevent any further damage. h](jZ)}(h ``fatal_cnt``h]j)}(hj8h]h fatal_cnt}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj8ubjt)}(hhh]j)}(hX}If this IRQ is used to signal HW damaging condition it may be best to shut-down regulator(s) or reboot the SOC if error handling is repeatedly failing. If fatal_cnt is given the IRQ handling is aborted if it fails for fatal_cnt times and die() callback (if populated) is called. If die() is not populated poweroff for the system is attempted in order to prevent any further damage.h]hX}If this IRQ is used to signal HW damaging condition it may be best to shut-down regulator(s) or reboot the SOC if error handling is repeatedly failing. If fatal_cnt is given the IRQ handling is aborted if it fails for fatal_cnt times and die() callback (if populated) is called. If die() is not populated poweroff for the system is attempted in order to prevent any further damage.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj8ubah}(h]h ]h"]h$]h&]uh1jshj8ubeh}(h]h ]h"]h$]h&]uh1jShj8hMhj8ubjT)}(h``reread_ms`` The time which is waited before attempting to re-read status at the worker if IC reading fails. Immediate re-read is done if time is not specified. h](jZ)}(h ``reread_ms``h]j)}(hj 9h]h reread_ms}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 9ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM hj9ubjt)}(hhh]j)}(hThe time which is waited before attempting to re-read status at the worker if IC reading fails. Immediate re-read is done if time is not specified.h]hThe time which is waited before attempting to re-read status at the worker if IC reading fails. Immediate re-read is done if time is not specified.}(hj&9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj#9ubah}(h]h ]h"]h$]h&]uh1jshj9ubeh}(h]h ]h"]h$]h&]uh1jShj"9hM hj8ubjT)}(h``irq_off_ms`` The time which IRQ is kept disabled before re-evaluating the status for devices which keep IRQ disabled for duration of the error. If this is not given the IRQ is left enabled and renable is not called. h](jZ)}(h``irq_off_ms``h]j)}(hjG9h]h irq_off_ms}(hjI9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE9ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM hjA9ubjt)}(hhh]j)}(hThe time which IRQ is kept disabled before re-evaluating the status for devices which keep IRQ disabled for duration of the error. If this is not given the IRQ is left enabled and renable is not called.h]hThe time which IRQ is kept disabled before re-evaluating the status for devices which keep IRQ disabled for duration of the error. If this is not given the IRQ is left enabled and renable is not called.}(hj`9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM hj]9ubah}(h]h ]h"]h$]h&]uh1jshjA9ubeh}(h]h ]h"]h$]h&]uh1jShj\9hM hj8ubjT)}(h``skip_off`` If set to true the IRQ handler will attempt to check if any of the associated regulators are enabled prior to taking other actions. If no regulators are enabled and this is set to true a spurious IRQ is assumed and IRQ_NONE is returned. h](jZ)}(h ``skip_off``h]j)}(hj9h]hskip_off}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj{9ubjt)}(hhh]j)}(hIf set to true the IRQ handler will attempt to check if any of the associated regulators are enabled prior to taking other actions. If no regulators are enabled and this is set to true a spurious IRQ is assumed and IRQ_NONE is returned.h]hIf set to true the IRQ handler will attempt to check if any of the associated regulators are enabled prior to taking other actions. If no regulators are enabled and this is set to true a spurious IRQ is assumed and IRQ_NONE is returned.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj9ubah}(h]h ]h"]h$]h&]uh1jshj{9ubeh}(h]h ]h"]h$]h&]uh1jShj9hMhj8ubjT)}(hH``high_prio`` Boolean to indicate that high priority WQ should be used. h](jZ)}(h ``high_prio``h]j)}(hj9h]h high_prio}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj9ubjt)}(hhh]j)}(h9Boolean to indicate that high priority WQ should be used.h]h9Boolean to indicate that high priority WQ should be used.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jshj9ubeh}(h]h ]h"]h$]h&]uh1jShj9hMhj8ubjT)}(h``data`` Driver private data pointer which will be passed as such to the renable, map_event and die callbacks in regulator_irq_data. h](jZ)}(h``data``h]j)}(hj9h]hdata}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj9ubjt)}(hhh]j)}(h{Driver private data pointer which will be passed as such to the renable, map_event and die callbacks in regulator_irq_data.h]h{Driver private data pointer which will be passed as such to the renable, map_event and die callbacks in regulator_irq_data.}(hj :hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj :ubah}(h]h ]h"]h$]h&]uh1jshj9ubeh}(h]h ]h"]h$]h&]uh1jShj :hMhj8ubjT)}(hX``die`` Protection callback. If IC status reading or recovery actions fail fatal_cnt times this callback is called or system is powered off. This callback should implement a final protection attempt like disabling the regulator. If protection succeeded die() may return 0. If anything else is returned the core assumes final protection failed and attempts to perform a poweroff as a last resort. h](jZ)}(h``die``h]j)}(hj.:h]hdie}(hj0:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,:ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj(:ubjt)}(hhh]j)}(hXProtection callback. If IC status reading or recovery actions fail fatal_cnt times this callback is called or system is powered off. This callback should implement a final protection attempt like disabling the regulator. If protection succeeded die() may return 0. If anything else is returned the core assumes final protection failed and attempts to perform a poweroff as a last resort.h]hXProtection callback. If IC status reading or recovery actions fail fatal_cnt times this callback is called or system is powered off. This callback should implement a final protection attempt like disabling the regulator. If protection succeeded die() may return 0. If anything else is returned the core assumes final protection failed and attempts to perform a poweroff as a last resort.}(hjG:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjD:ubah}(h]h ]h"]h$]h&]uh1jshj(:ubeh}(h]h ]h"]h$]h&]uh1jShjC:hMhj8ubjT)}(hX``map_event`` Driver callback to map IRQ status into regulator devices with events / errors. NOTE: callback MUST initialize both the errors and notifs for all rdevs which it signals having active events as core does not clean the map data. REGULATOR_FAILED_RETRY can be returned to indicate that the status reading from IC failed. If this is repeated for fatal_cnt times the core will call die() callback or power-off the system as a last resort to protect the HW. h](jZ)}(h ``map_event``h]j)}(hjh:h]h map_event}(hjj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf:ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM#hjb:ubjt)}(hhh]j)}(hXDriver callback to map IRQ status into regulator devices with events / errors. NOTE: callback MUST initialize both the errors and notifs for all rdevs which it signals having active events as core does not clean the map data. REGULATOR_FAILED_RETRY can be returned to indicate that the status reading from IC failed. If this is repeated for fatal_cnt times the core will call die() callback or power-off the system as a last resort to protect the HW.h]hXDriver callback to map IRQ status into regulator devices with events / errors. NOTE: callback MUST initialize both the errors and notifs for all rdevs which it signals having active events as core does not clean the map data. REGULATOR_FAILED_RETRY can be returned to indicate that the status reading from IC failed. If this is repeated for fatal_cnt times the core will call die() callback or power-off the system as a last resort to protect the HW.}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj~:ubah}(h]h ]h"]h$]h&]uh1jshjb:ubeh}(h]h ]h"]h$]h&]uh1jShj}:hM#hj8ubjT)}(hX``renable`` Optional callback to check status (if HW supports that) before re-enabling IRQ. If implemented this should clear the error flags so that errors fetched by regulator_get_error_flags() are updated. If callback is not implemented then errors are assumed to be cleared and IRQ is re-enabled. REGULATOR_FAILED_RETRY can be returned to indicate that the status reading from IC failed. If this is repeated for 'fatal_cnt' times the core will call die() callback or if die() is not populated then attempt to power-off the system as a last resort to protect the HW. Returning zero indicates that the problem in HW has been solved and IRQ will be re-enabled. Returning REGULATOR_ERROR_ON indicates the error condition is still active and keeps IRQ disabled. Please note that returning REGULATOR_ERROR_ON does not retrigger evaluating what events are active or resending notifications. If this is needed you probably want to return zero and allow IRQ to retrigger causing events to be re-evaluated and re-sent.h](jZ)}(h ``renable``h]j)}(hj:h]hrenable}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jYhNf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM4hj:ubjt)}(hhh]j)}(hXOptional callback to check status (if HW supports that) before re-enabling IRQ. If implemented this should clear the error flags so that errors fetched by regulator_get_error_flags() are updated. If callback is not implemented then errors are assumed to be cleared and IRQ is re-enabled. REGULATOR_FAILED_RETRY can be returned to indicate that the status reading from IC failed. If this is repeated for 'fatal_cnt' times the core will call die() callback or if die() is not populated then attempt to power-off the system as a last resort to protect the HW. Returning zero indicates that the problem in HW has been solved and IRQ will be re-enabled. Returning REGULATOR_ERROR_ON indicates the error condition is still active and keeps IRQ disabled. Please note that returning REGULATOR_ERROR_ON does not retrigger evaluating what events are active or resending notifications. If this is needed you probably want to return zero and allow IRQ to retrigger causing events to be re-evaluated and re-sent.h]hXOptional callback to check status (if HW supports that) before re-enabling IRQ. If implemented this should clear the error flags so that errors fetched by regulator_get_error_flags() are updated. If callback is not implemented then errors are assumed to be cleared and IRQ is re-enabled. REGULATOR_FAILED_RETRY can be returned to indicate that the status reading from IC failed. If this is repeated for ‘fatal_cnt’ times the core will call die() callback or if die() is not populated then attempt to power-off the system as a last resort to protect the HW. Returning zero indicates that the problem in HW has been solved and IRQ will be re-enabled. Returning REGULATOR_ERROR_ON indicates the error condition is still active and keeps IRQ disabled. Please note that returning REGULATOR_ERROR_ON does not retrigger evaluating what events are active or resending notifications. If this is needed you probably want to return zero and allow IRQ to retrigger causing events to be re-evaluated and re-sent.}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM$hj:ubah}(h]h ]h"]h$]h&]uh1jshj:ubeh}(h]h ]h"]h$]h&]uh1jShj:hM4hj8ubeh}(h]h ]h"]h$]h&]uh1jNhjI8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhjhNubj)}(h**Description**h]j )}(hj:h]h Description}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj:ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM8hjBhhubj)}(hIThis structure is used for registering regulator IRQ notification helper.h]hIThis structure is used for registering regulator IRQ notification helper.}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM6hjBhhubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnregulator_get (C function)c.regulator_gethNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hEstruct regulator * regulator_get (struct device *dev, const char *id)h]j)}(hCstruct regulator *regulator_get(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hj#;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM2 ubj)}(h h]h }(hj1;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;hhhj0;hM2 ubh)}(hhh]j)}(h regulatorh]h regulator}(hjB;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?;ubah}(h]h ]h"]h$]h&] refdomainj5reftype identifier reftargetjD;modnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j]; ASTIdentifier)}jX; regulator_getsbc.regulator_getasbuh1hhj;hhhj0;hM2 ubj)}(h h]h }(hjk;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;hhhj0;hM2 ubhdesc_sig_punctuation)}(h*h]h*}(hj{;hhhNhNubah}(h]h ]pah"]h$]h&]uh1jy;hj;hhhj0;hM2 ubj)}(h regulator_geth]j)}(hjh;h]h regulator_get}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj;hhhj0;hM2 ubhdesc_parameterlist)}(h$(struct device *dev, const char *id)h](hdesc_parameter)}(hstruct device *devh](j)}(hjh]hstruct}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubh)}(hhh]j)}(hdeviceh]hdevice}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetj;modnameN classnameNj\;j_;)}jb;]jf;c.regulator_getasbuh1hhj;ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubjz;)}(hj};h]h*}(hj;hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj;ubj)}(hdevh]hdev}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj;ubj;)}(hconst char *idh](j)}(hconsth]hconst}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj)}(h h]h }(hj+<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubhdesc_sig_keyword_type)}(hcharh]hchar}(hj;<hhhNhNubah}(h]h ]ktah"]h$]h&]uh1j9<hj<ubj)}(h h]h }(hjJ<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubjz;)}(hj};h]h*}(hjX<hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj<ubj)}(hidh]hid}(hje<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj;ubeh}(h]h ]h"]h$]h&]hhuh1j;hj;hhhj0;hM2 ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj;hhhj0;hM2 ubah}(h]j;ah ](jjeh"]h$]h&]jj)jhuh1jxhj0;hM2 hj;hhubj)}(hhh]j)}(h-lookup and obtain a reference to a regulator.h]h-lookup and obtain a reference to a regulator.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM& hj<hhubah}(h]h ]h"]h$]h&]uh1jhj;hhhj0;hM2 ubeh}(h]h ](j5functioneh"]h$]h&]jj5jj<jj<jjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct device *dev`` device for regulator "consumer" ``const char *id`` Supply name or regulator ID. **Description** Use of supply names configured via set_consumer_device_supply() is strongly encouraged. It is recommended that the supply name used should match the name used for the supply and/or the relevant device pins in the datasheet. **Return** Pointer to a :c:type:`struct regulator ` corresponding to the regulator producer, or an ERR_PTR() encoded negative error number.h](j)}(h**Parameters**h]j )}(hj<h]h Parameters}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj<ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM* hj<ubjO)}(hhh](jT)}(h7``struct device *dev`` device for regulator "consumer" h](jZ)}(h``struct device *dev``h]j)}(hj<h]hstruct device *dev}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM' hj<ubjt)}(hhh]j)}(hdevice for regulator "consumer"h]h#device for regulator “consumer”}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<hM' hj<ubah}(h]h ]h"]h$]h&]uh1jshj<ubeh}(h]h ]h"]h$]h&]uh1jShj<hM' hj<ubjT)}(h0``const char *id`` Supply name or regulator ID. h](jZ)}(h``const char *id``h]j)}(hj =h]hconst char *id}(hj =hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM( hj=ubjt)}(hhh]j)}(hSupply name or regulator ID.h]hSupply name or regulator ID.}(hj"=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=hM( hj=ubah}(h]h ]h"]h$]h&]uh1jshj=ubeh}(h]h ]h"]h$]h&]uh1jShj=hM( hj<ubeh}(h]h ]h"]h$]h&]uh1jNhj<ubj)}(h**Description**h]j )}(hjD=h]h Description}(hjF=hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjB=ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM* hj<ubj)}(hUse of supply names configured via set_consumer_device_supply() is strongly encouraged. It is recommended that the supply name used should match the name used for the supply and/or the relevant device pins in the datasheet.h]hUse of supply names configured via set_consumer_device_supply() is strongly encouraged. It is recommended that the supply name used should match the name used for the supply and/or the relevant device pins in the datasheet.}(hjZ=hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM* hj<ubj)}(h **Return**h]j )}(hjk=h]hReturn}(hjm=hhhNhNubah}(h]h ]h"]h$]h&]uh1j hji=ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM/ hj<ubjO)}(hhh]jT)}(hPointer to a :c:type:`struct regulator ` corresponding to the regulator producer, or an ERR_PTR() encoded negative error number.h](jZ)}(hRPointer to a :c:type:`struct regulator ` corresponding to the regulatorh](h Pointer to a }(hj=hhhNhNubh)}(h&:c:type:`struct regulator `h]j)}(hj=h]hstruct regulator}(hj=hhhNhNubah}(h]h ](j4j5c-typeeh"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]refdocjA refdomainj5reftypetype refexplicitrefwarnj\;j_;)}jb;]sbjG regulatoruh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM/ hj=ubh corresponding to the regulator}(hj=hhhNhNubeh}(h]h ]h"]h$]h&]uh1jYhj=hM/ hj=ubjt)}(hhh]j)}(h8producer, or an ERR_PTR() encoded negative error number.h]h8producer, or an ERR_PTR() encoded negative error number.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM0 hj=ubah}(h]h ]h"]h$]h&]uh1jshj=ubeh}(h]h ]h"]h$]h&]uh1jShj=hM/ hj=ubah}(h]h ]h"]h$]h&]uh1jNhj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn$regulator_get_exclusive (C function)c.regulator_get_exclusivehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hOstruct regulator * regulator_get_exclusive (struct device *dev, const char *id)h]j)}(hMstruct regulator *regulator_get_exclusive(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMN ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhj>hMN ubh)}(hhh]j)}(h regulatorh]h regulator}(hj >hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetj">modnameN classnameNj\;j_;)}jb;]je;)}jX;regulator_get_exclusivesbc.regulator_get_exclusiveasbuh1hhj=hhhj>hMN ubj)}(h h]h }(hjA>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhj>hMN ubjz;)}(hj};h]h*}(hjO>hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj=hhhj>hMN ubj)}(hregulator_get_exclusiveh]j)}(hj>>h]hregulator_get_exclusive}(hj`>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\>ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj=hhhj>hMN ubj;)}(h$(struct device *dev, const char *id)h](j;)}(hstruct device *devh](j)}(hjh]hstruct}(hj{>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw>ubh)}(hhh]j)}(hdeviceh]hdevice}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetj>modnameN classnameNj\;j_;)}jb;]j<>c.regulator_get_exclusiveasbuh1hhjw>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw>ubjz;)}(hj};h]h*}(hj>hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjw>ubj)}(hdevh]hdev}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw>ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjs>ubj;)}(hconst char *idh](j)}(hj<h]hconst}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj:<)}(hcharh]hchar}(hj?hhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj>ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubjz;)}(hj};h]h*}(hj"?hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj>ubj)}(hidh]hid}(hj/?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjs>ubeh}(h]h ]h"]h$]h&]hhuh1j;hj=hhhj>hMN ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj=hhhj>hMN ubah}(h]j=ah ](jjeh"]h$]h&]jj)jhuh1jxhj>hMN hj=hhubj)}(hhh]j)}(h'obtain exclusive access to a regulator.h]h'obtain exclusive access to a regulator.}(hjY?hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM9 hjV?hhubah}(h]h ]h"]h$]h&]uh1jhj=hhhj>hMN ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjq?jjq?jjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct device *dev`` device for regulator "consumer" ``const char *id`` Supply name or regulator ID. **Description** Other consumers will be unable to obtain this regulator while this reference is held and the use count for the regulator will be initialised to reflect the current state of the regulator. This is intended for use by consumers which cannot tolerate shared use of the regulator such as those which need to force the regulator off for correct operation of the hardware they are controlling. Use of supply names configured via set_consumer_device_supply() is strongly encouraged. It is recommended that the supply name used should match the name used for the supply and/or the relevant device pins in the datasheet. **Return** Pointer to a :c:type:`struct regulator ` corresponding to the regulator producer, or an ERR_PTR() encoded negative error number.h](j)}(h**Parameters**h]j )}(hj{?h]h Parameters}(hj}?hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjy?ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM= hju?ubjO)}(hhh](jT)}(h7``struct device *dev`` device for regulator "consumer" h](jZ)}(h``struct device *dev``h]j)}(hj?h]hstruct device *dev}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM: hj?ubjt)}(hhh]j)}(hdevice for regulator "consumer"h]h#device for regulator “consumer”}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?hM: hj?ubah}(h]h ]h"]h$]h&]uh1jshj?ubeh}(h]h ]h"]h$]h&]uh1jShj?hM: hj?ubjT)}(h0``const char *id`` Supply name or regulator ID. h](jZ)}(h``const char *id``h]j)}(hj?h]hconst char *id}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM; hj?ubjt)}(hhh]j)}(hSupply name or regulator ID.h]hSupply name or regulator ID.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?hM; hj?ubah}(h]h ]h"]h$]h&]uh1jshj?ubeh}(h]h ]h"]h$]h&]uh1jShj?hM; hj?ubeh}(h]h ]h"]h$]h&]uh1jNhju?ubj)}(h**Description**h]j )}(hj@h]h Description}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj @ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM= hju?ubj)}(hOther consumers will be unable to obtain this regulator while this reference is held and the use count for the regulator will be initialised to reflect the current state of the regulator.h]hOther consumers will be unable to obtain this regulator while this reference is held and the use count for the regulator will be initialised to reflect the current state of the regulator.}(hj$@hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM= hju?ubj)}(hThis is intended for use by consumers which cannot tolerate shared use of the regulator such as those which need to force the regulator off for correct operation of the hardware they are controlling.h]hThis is intended for use by consumers which cannot tolerate shared use of the regulator such as those which need to force the regulator off for correct operation of the hardware they are controlling.}(hj3@hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMA hju?ubj)}(hUse of supply names configured via set_consumer_device_supply() is strongly encouraged. It is recommended that the supply name used should match the name used for the supply and/or the relevant device pins in the datasheet.h]hUse of supply names configured via set_consumer_device_supply() is strongly encouraged. It is recommended that the supply name used should match the name used for the supply and/or the relevant device pins in the datasheet.}(hjB@hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMF hju?ubj)}(h **Return**h]j )}(hjS@h]hReturn}(hjU@hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjQ@ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMK hju?ubjO)}(hhh]jT)}(hPointer to a :c:type:`struct regulator ` corresponding to the regulator producer, or an ERR_PTR() encoded negative error number.h](jZ)}(hRPointer to a :c:type:`struct regulator ` corresponding to the regulatorh](h Pointer to a }(hjp@hhhNhNubh)}(h&:c:type:`struct regulator `h]j)}(hjz@h]hstruct regulator}(hj|@hhhNhNubah}(h]h ](j4j5c-typeeh"]h$]h&]uh1jhjx@ubah}(h]h ]h"]h$]h&]refdocjA refdomainj5reftypetype refexplicitrefwarnj\;j=jG regulatoruh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMK hjp@ubh corresponding to the regulator}(hjp@hhhNhNubeh}(h]h ]h"]h$]h&]uh1jYhj@hMK hjl@ubjt)}(hhh]j)}(h8producer, or an ERR_PTR() encoded negative error number.h]h8producer, or an ERR_PTR() encoded negative error number.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chML hj@ubah}(h]h ]h"]h$]h&]uh1jshjl@ubeh}(h]h ]h"]h$]h&]uh1jShj@hMK hji@ubah}(h]h ]h"]h$]h&]uh1jNhju?ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn#regulator_get_optional (C function)c.regulator_get_optionalhNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hNstruct regulator * regulator_get_optional (struct device *dev, const char *id)h]j)}(hLstruct regulator *regulator_get_optional(struct device *dev, const char *id)h](j)}(hjh]hstruct}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMh ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhhj@hMh ubh)}(hhh]j)}(h regulatorh]h regulator}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjAmodnameN classnameNj\;j_;)}jb;]je;)}jX;regulator_get_optionalsbc.regulator_get_optionalasbuh1hhj@hhhj@hMh ubj)}(h h]h }(hj&AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhhj@hMh ubjz;)}(hj};h]h*}(hj4AhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj@hhhj@hMh ubj)}(hregulator_get_optionalh]j)}(hj#Ah]hregulator_get_optional}(hjEAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAAubah}(h]h ](jjeh"]h$]h&]hhuh1jhj@hhhj@hMh ubj;)}(h$(struct device *dev, const char *id)h](j;)}(hstruct device *devh](j)}(hjh]hstruct}(hj`AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\Aubj)}(h h]h }(hjmAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\Aubh)}(hhh]j)}(hdeviceh]hdevice}(hj~AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{Aubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjAmodnameN classnameNj\;j_;)}jb;]j!Ac.regulator_get_optionalasbuh1hhj\Aubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\Aubjz;)}(hj};h]h*}(hjAhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj\Aubj)}(hdevh]hdev}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\Aubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjXAubj;)}(hconst char *idh](j)}(hj<h]hconst}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj:<)}(hcharh]hchar}(hjAhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubjz;)}(hj};h]h*}(hjBhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjAubj)}(hidh]hid}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjXAubeh}(h]h ]h"]h$]h&]hhuh1j;hj@hhhj@hMh ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj@hhhj@hMh ubah}(h]j@ah ](jjeh"]h$]h&]jj)jhuh1jxhj@hMh hj@hhubj)}(hhh]j)}(h&obtain optional access to a regulator.h]h&obtain optional access to a regulator.}(hj>BhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMU hj;Bhhubah}(h]h ]h"]h$]h&]uh1jhj@hhhj@hMh ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjVBjjVBjjjuh1jshhhjBhNhNubj)}(hXZ**Parameters** ``struct device *dev`` device for regulator "consumer" ``const char *id`` Supply name or regulator ID. **Description** This is intended for use by consumers for devices which can have some supplies unconnected in normal use, such as some MMC devices. It can allow the regulator core to provide stub supplies for other supplies requested using normal regulator_get() calls without disrupting the operation of drivers that can handle absent supplies. Use of supply names configured via set_consumer_device_supply() is strongly encouraged. It is recommended that the supply name used should match the name used for the supply and/or the relevant device pins in the datasheet. **Return** Pointer to a :c:type:`struct regulator ` corresponding to the regulator producer, or an ERR_PTR() encoded negative error number.h](j)}(h**Parameters**h]j )}(hj`Bh]h Parameters}(hjbBhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj^Bubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMY hjZBubjO)}(hhh](jT)}(h7``struct device *dev`` device for regulator "consumer" h](jZ)}(h``struct device *dev``h]j)}(hjBh]hstruct device *dev}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}Bubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMV hjyBubjt)}(hhh]j)}(hdevice for regulator "consumer"h]h#device for regulator “consumer”}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBhMV hjBubah}(h]h ]h"]h$]h&]uh1jshjyBubeh}(h]h ]h"]h$]h&]uh1jShjBhMV hjvBubjT)}(h0``const char *id`` Supply name or regulator ID. h](jZ)}(h``const char *id``h]j)}(hjBh]hconst char *id}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMW hjBubjt)}(hhh]j)}(hSupply name or regulator ID.h]hSupply name or regulator ID.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBhMW hjBubah}(h]h ]h"]h$]h&]uh1jshjBubeh}(h]h ]h"]h$]h&]uh1jShjBhMW hjvBubeh}(h]h ]h"]h$]h&]uh1jNhjZBubj)}(h**Description**h]j )}(hjBh]h Description}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjBubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMY hjZBubj)}(hXIThis is intended for use by consumers for devices which can have some supplies unconnected in normal use, such as some MMC devices. It can allow the regulator core to provide stub supplies for other supplies requested using normal regulator_get() calls without disrupting the operation of drivers that can handle absent supplies.h]hXIThis is intended for use by consumers for devices which can have some supplies unconnected in normal use, such as some MMC devices. It can allow the regulator core to provide stub supplies for other supplies requested using normal regulator_get() calls without disrupting the operation of drivers that can handle absent supplies.}(hj ChhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMY hjZBubj)}(hUse of supply names configured via set_consumer_device_supply() is strongly encouraged. It is recommended that the supply name used should match the name used for the supply and/or the relevant device pins in the datasheet.h]hUse of supply names configured via set_consumer_device_supply() is strongly encouraged. It is recommended that the supply name used should match the name used for the supply and/or the relevant device pins in the datasheet.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM` hjZBubj)}(h **Return**h]j )}(hj)Ch]hReturn}(hj+ChhhNhNubah}(h]h ]h"]h$]h&]uh1j hj'Cubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMe hjZBubjO)}(hhh]jT)}(hPointer to a :c:type:`struct regulator ` corresponding to the regulator producer, or an ERR_PTR() encoded negative error number.h](jZ)}(hRPointer to a :c:type:`struct regulator ` corresponding to the regulatorh](h Pointer to a }(hjFChhhNhNubh)}(h&:c:type:`struct regulator `h]j)}(hjPCh]hstruct regulator}(hjRChhhNhNubah}(h]h ](j4j5c-typeeh"]h$]h&]uh1jhjNCubah}(h]h ]h"]h$]h&]refdocjA refdomainj5reftypetype refexplicitrefwarnj\;j=jG regulatoruh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMe hjFCubh corresponding to the regulator}(hjFChhhNhNubeh}(h]h ]h"]h$]h&]uh1jYhjmChMe hjBCubjt)}(hhh]j)}(h8producer, or an ERR_PTR() encoded negative error number.h]h8producer, or an ERR_PTR() encoded negative error number.}(hj{ChhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMf hjxCubah}(h]h ]h"]h$]h&]uh1jshjBCubeh}(h]h ]h"]h$]h&]uh1jShjmChMe hj?Cubah}(h]h ]h"]h$]h&]uh1jNhjZBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnregulator_put (C function)c.regulator_puthNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h0void regulator_put (struct regulator *regulator)h]j)}(h/void regulator_put(struct regulator *regulator)h](j:<)}(hvoidh]hvoid}(hjChhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjChhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjChhhjChM ubj)}(h regulator_puth]j)}(h regulator_puth]h regulator_put}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubah}(h]h ](jjeh"]h$]h&]hhuh1jhjChhhjChM ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubh)}(hhh]j)}(h regulatorh]h regulator}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjDmodnameN classnameNj\;j_;)}jb;]je;)}jX;jCsbc.regulator_putasbuh1hhjCubj)}(h h]h }(hj7DhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubjz;)}(hj};h]h*}(hjEDhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjCubj)}(h regulatorh]h regulator}(hjRDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjCubah}(h]h ]h"]h$]h&]hhuh1j;hjChhhjChM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjChhhjChM ubah}(h]jCah ](jjeh"]h$]h&]jj)jhuh1jxhjChM hjChhubj)}(hhh]j)}(h"free" the regulator sourceh]h“free” the regulator source}(hj|DhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjyDhhubah}(h]h ]h"]h$]h&]uh1jhjChhhjChM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjDjjDjjjuh1jshhhjBhNhNubj)}(h**Parameters** ``struct regulator *regulator`` regulator source **Note** drivers must ensure that all regulator_enable calls made on this regulator source are balanced by regulator_disable calls prior to calling this function.h](j)}(h**Parameters**h]j )}(hjDh]h Parameters}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjDubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjDubjO)}(hhh]jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjDh]hstruct regulator *regulator}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjDubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDhM hjDubah}(h]h ]h"]h$]h&]uh1jshjDubeh}(h]h ]h"]h$]h&]uh1jShjDhM hjDubah}(h]h ]h"]h$]h&]uh1jNhjDubj)}(h**Note**h]j )}(hjDh]hNote}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjDubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjDubj)}(hdrivers must ensure that all regulator_enable calls made on this regulator source are balanced by regulator_disable calls prior to calling this function.h]hdrivers must ensure that all regulator_enable calls made on this regulator source are balanced by regulator_disable calls prior to calling this function.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjDubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn,regulator_register_supply_alias (C function)!c.regulator_register_supply_aliashNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hxint regulator_register_supply_alias (struct device *dev, const char *id, struct device *alias_dev, const char *alias_id)h]j)}(hwint regulator_register_supply_alias(struct device *dev, const char *id, struct device *alias_dev, const char *alias_id)h](j:<)}(hinth]hint}(hj=EhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj9Ehhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjLEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9EhhhjKEhM ubj)}(hregulator_register_supply_aliash]j)}(hregulator_register_supply_aliash]hregulator_register_supply_alias}(hj^EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZEubah}(h]h ](jjeh"]h$]h&]hhuh1jhj9EhhhjKEhM ubj;)}(hT(struct device *dev, const char *id, struct device *alias_dev, const char *alias_id)h](j;)}(hstruct device *devh](j)}(hjh]hstruct}(hjzEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvEubh)}(hhh]j)}(hdeviceh]hdevice}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjEmodnameN classnameNj\;j_;)}jb;]je;)}jX;j`Esb!c.regulator_register_supply_aliasasbuh1hhjvEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvEubjz;)}(hj};h]h*}(hjEhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjvEubj)}(hdevh]hdev}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvEubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjrEubj;)}(hconst char *idh](j)}(hj<h]hconst}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj:<)}(hcharh]hchar}(hjFhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjEubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubjz;)}(hj};h]h*}(hj#FhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjEubj)}(hidh]hid}(hj0FhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjrEubj;)}(hstruct device *alias_devh](j)}(hjh]hstruct}(hjIFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEFubj)}(h h]h }(hjVFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEFubh)}(hhh]j)}(hdeviceh]hdevice}(hjgFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdFubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjiFmodnameN classnameNj\;j_;)}jb;]jE!c.regulator_register_supply_aliasasbuh1hhjEFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEFubjz;)}(hj};h]h*}(hjFhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjEFubj)}(h alias_devh]h alias_dev}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEFubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjrEubj;)}(hconst char *alias_idh](j)}(hj<h]hconst}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj:<)}(hcharh]hchar}(hjFhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubjz;)}(hj};h]h*}(hjFhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjFubj)}(halias_idh]halias_id}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjrEubeh}(h]h ]h"]h$]h&]hhuh1j;hj9EhhhjKEhM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj5EhhhjKEhM ubah}(h]j0Eah ](jjeh"]h$]h&]jj)jhuh1jxhjKEhM hj2Ehhubj)}(hhh]j)}(h&Provide device alias for supply lookuph]h&Provide device alias for supply lookup}(hj'GhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj$Ghhubah}(h]h ]h"]h$]h&]uh1jhj2EhhhjKEhM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jj?Gjj?Gjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct device *dev`` device that will be given as the regulator "consumer" ``const char *id`` Supply name or regulator ID ``struct device *alias_dev`` device that should be used to lookup the supply ``const char *alias_id`` Supply name or regulator ID that should be used to lookup the supply **Description** All lookups for id on dev will instead be conducted for alias_id on alias_dev. **Return** 0 on success or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hjIGh]h Parameters}(hjKGhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjGGubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjCGubjO)}(hhh](jT)}(hM``struct device *dev`` device that will be given as the regulator "consumer" h](jZ)}(h``struct device *dev``h]j)}(hjhGh]hstruct device *dev}(hjjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfGubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjbGubjt)}(hhh]j)}(h5device that will be given as the regulator "consumer"h]h9device that will be given as the regulator “consumer”}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}GhM hj~Gubah}(h]h ]h"]h$]h&]uh1jshjbGubeh}(h]h ]h"]h$]h&]uh1jShj}GhM hj_GubjT)}(h/``const char *id`` Supply name or regulator ID h](jZ)}(h``const char *id``h]j)}(hjGh]hconst char *id}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjGubjt)}(hhh]j)}(hSupply name or regulator IDh]hSupply name or regulator ID}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGhM hjGubah}(h]h ]h"]h$]h&]uh1jshjGubeh}(h]h ]h"]h$]h&]uh1jShjGhM hj_GubjT)}(hM``struct device *alias_dev`` device that should be used to lookup the supply h](jZ)}(h``struct device *alias_dev``h]j)}(hjGh]hstruct device *alias_dev}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjGubjt)}(hhh]j)}(h/device that should be used to lookup the supplyh]h/device that should be used to lookup the supply}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGhM hjGubah}(h]h ]h"]h$]h&]uh1jshjGubeh}(h]h ]h"]h$]h&]uh1jShjGhM hj_GubjT)}(h^``const char *alias_id`` Supply name or regulator ID that should be used to lookup the supply h](jZ)}(h``const char *alias_id``h]j)}(hjHh]hconst char *alias_id}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj Hubjt)}(hhh]j)}(hDSupply name or regulator ID that should be used to lookup the supplyh]hDSupply name or regulator ID that should be used to lookup the supply}(hj,HhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj)Hubah}(h]h ]h"]h$]h&]uh1jshj Hubeh}(h]h ]h"]h$]h&]uh1jShj(HhM hj_Gubeh}(h]h ]h"]h$]h&]uh1jNhjCGubj)}(h**Description**h]j )}(hjOHh]h Description}(hjQHhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjMHubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjCGubj)}(hNAll lookups for id on dev will instead be conducted for alias_id on alias_dev.h]hNAll lookups for id on dev will instead be conducted for alias_id on alias_dev.}(hjeHhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjCGubj)}(h **Return**h]j )}(hjvHh]hReturn}(hjxHhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjtHubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjCGubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjCGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn.regulator_unregister_supply_alias (C function)#c.regulator_unregister_supply_aliashNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hKvoid regulator_unregister_supply_alias (struct device *dev, const char *id)h]j)}(hJvoid regulator_unregister_supply_alias(struct device *dev, const char *id)h](j:<)}(hvoidh]hvoid}(hjHhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjHhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHhhhjHhM ubj)}(h!regulator_unregister_supply_aliash]j)}(h!regulator_unregister_supply_aliash]h!regulator_unregister_supply_alias}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubah}(h]h ](jjeh"]h$]h&]hhuh1jhjHhhhjHhM ubj;)}(h$(struct device *dev, const char *id)h](j;)}(hstruct device *devh](j)}(hjh]hstruct}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubh)}(hhh]j)}(hdeviceh]hdevice}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjImodnameN classnameNj\;j_;)}jb;]je;)}jX;jHsb#c.regulator_unregister_supply_aliasasbuh1hhjHubj)}(h h]h }(hj6IhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubjz;)}(hj};h]h*}(hjDIhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjHubj)}(hdevh]hdev}(hjQIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjHubj;)}(hconst char *idh](j)}(hj<h]hconst}(hjjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfIubj)}(h h]h }(hjwIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfIubj:<)}(hcharh]hchar}(hjIhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjfIubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfIubjz;)}(hj};h]h*}(hjIhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjfIubj)}(hidh]hid}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfIubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjHubeh}(h]h ]h"]h$]h&]hhuh1j;hjHhhhjHhM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjHhhhjHhM ubah}(h]jHah ](jjeh"]h$]h&]jj)jhuh1jxhjHhM hjHhhubj)}(hhh]j)}(hRemove device aliash]hRemove device alias}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjIhhubah}(h]h ]h"]h$]h&]uh1jhjHhhhjHhM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjIjjIjjjuh1jshhhjBhNhNubj)}(h**Parameters** ``struct device *dev`` device that will be given as the regulator "consumer" ``const char *id`` Supply name or regulator ID **Description** Remove a lookup alias if one exists for id on dev.h](j)}(h**Parameters**h]j )}(hjIh]h Parameters}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjIubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjIubjO)}(hhh](jT)}(hM``struct device *dev`` device that will be given as the regulator "consumer" h](jZ)}(h``struct device *dev``h]j)}(hjJh]hstruct device *dev}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjJubjt)}(hhh]j)}(h5device that will be given as the regulator "consumer"h]h9device that will be given as the regulator “consumer”}(hj2JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.JhM hj/Jubah}(h]h ]h"]h$]h&]uh1jshjJubeh}(h]h ]h"]h$]h&]uh1jShj.JhM hjJubjT)}(h/``const char *id`` Supply name or regulator ID h](jZ)}(h``const char *id``h]j)}(hjRJh]hconst char *id}(hjTJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPJubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjLJubjt)}(hhh]j)}(hSupply name or regulator IDh]hSupply name or regulator ID}(hjkJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgJhM hjhJubah}(h]h ]h"]h$]h&]uh1jshjLJubeh}(h]h ]h"]h$]h&]uh1jShjgJhM hjJubeh}(h]h ]h"]h$]h&]uh1jNhjIubj)}(h**Description**h]j )}(hjJh]h Description}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjJubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjIubj)}(h2Remove a lookup alias if one exists for id on dev.h]h2Remove a lookup alias if one exists for id on dev.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjIubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn1regulator_bulk_register_supply_alias (C function)&c.regulator_bulk_register_supply_aliashNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hint regulator_bulk_register_supply_alias (struct device *dev, const char *const *id, struct device *alias_dev, const char *const *alias_id, int num_id)h]j)}(hint regulator_bulk_register_supply_alias(struct device *dev, const char *const *id, struct device *alias_dev, const char *const *alias_id, int num_id)h](j:<)}(hinth]hint}(hjJhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjJhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJhhhjJhM ubj)}(h$regulator_bulk_register_supply_aliash]j)}(h$regulator_bulk_register_supply_aliash]h$regulator_bulk_register_supply_alias}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubah}(h]h ](jjeh"]h$]h&]hhuh1jhjJhhhjJhM ubj;)}(hn(struct device *dev, const char *const *id, struct device *alias_dev, const char *const *alias_id, int num_id)h](j;)}(hstruct device *devh](j)}(hjh]hstruct}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Kubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Kubh)}(hhh]j)}(hdeviceh]hdevice}(hj-KhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*Kubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetj/KmodnameN classnameNj\;j_;)}jb;]je;)}jX;jJsb&c.regulator_bulk_register_supply_aliasasbuh1hhj Kubj)}(h h]h }(hjMKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Kubjz;)}(hj};h]h*}(hj[KhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj Kubj)}(hdevh]hdev}(hjhKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Kubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjKubj;)}(hconst char *const *idh](j)}(hj<h]hconst}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}Kubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}Kubj:<)}(hcharh]hchar}(hjKhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj}Kubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}Kubjz;)}(hj};h]h*}(hjKhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj}Kubj)}(hj<h]hconst}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}Kubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}Kubjz;)}(hj};h]h*}(hjKhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj}Kubj)}(hidh]hid}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}Kubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjKubj;)}(hstruct device *alias_devh](j)}(hjh]hstruct}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubh)}(hhh]j)}(hdeviceh]hdevice}(hj$LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!Lubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetj&LmodnameN classnameNj\;j_;)}jb;]jIK&c.regulator_bulk_register_supply_aliasasbuh1hhjLubj)}(h h]h }(hjBLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubjz;)}(hj};h]h*}(hjPLhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjLubj)}(h alias_devh]h alias_dev}(hj]LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjKubj;)}(hconst char *const *alias_idh](j)}(hj<h]hconst}(hjvLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrLubj:<)}(hcharh]hchar}(hjLhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjrLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrLubjz;)}(hj};h]h*}(hjLhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjrLubj)}(hj<h]hconst}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrLubjz;)}(hj};h]h*}(hjLhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjrLubj)}(halias_idh]halias_id}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrLubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjKubj;)}(h int num_idh](j:<)}(hinth]hint}(hjLhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjLubj)}(h h]h }(hj MhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(hnum_idh]hnum_id}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjKubeh}(h]h ]h"]h$]h&]hhuh1j;hjJhhhjJhM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjJhhhjJhM ubah}(h]jJah ](jjeh"]h$]h&]jj)jhuh1jxhjJhM hjJhhubj)}(hhh]j)}(hregister multiple aliasesh]hregister multiple aliases}(hjAMhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj>Mhhubah}(h]h ]h"]h$]h&]uh1jhjJhhhjJhM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjYMjjYMjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct device *dev`` device that will be given as the regulator "consumer" ``const char *const *id`` List of supply names or regulator IDs ``struct device *alias_dev`` device that should be used to lookup the supply ``const char *const *alias_id`` List of supply names or regulator IDs that should be used to lookup the supply ``int num_id`` Number of aliases to register **Description** This helper function allows drivers to register several supply aliases in one operation. If any of the aliases cannot be registered any aliases that were registered will be removed before returning to the caller. **Return** 0 on success or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hjcMh]h Parameters}(hjeMhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjaMubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj]MubjO)}(hhh](jT)}(hM``struct device *dev`` device that will be given as the regulator "consumer" h](jZ)}(h``struct device *dev``h]j)}(hjMh]hstruct device *dev}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj|Mubjt)}(hhh]j)}(h5device that will be given as the regulator "consumer"h]h9device that will be given as the regulator “consumer”}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMhM hjMubah}(h]h ]h"]h$]h&]uh1jshj|Mubeh}(h]h ]h"]h$]h&]uh1jShjMhM hjyMubjT)}(h@``const char *const *id`` List of supply names or regulator IDs h](jZ)}(h``const char *const *id``h]j)}(hjMh]hconst char *const *id}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjMubjt)}(hhh]j)}(h%List of supply names or regulator IDsh]h%List of supply names or regulator IDs}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMhM hjMubah}(h]h ]h"]h$]h&]uh1jshjMubeh}(h]h ]h"]h$]h&]uh1jShjMhM hjyMubjT)}(hM``struct device *alias_dev`` device that should be used to lookup the supply h](jZ)}(h``struct device *alias_dev``h]j)}(hjMh]hstruct device *alias_dev}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjMubjt)}(hhh]j)}(h/device that should be used to lookup the supplyh]h/device that should be used to lookup the supply}(hj NhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj NhM hj Nubah}(h]h ]h"]h$]h&]uh1jshjMubeh}(h]h ]h"]h$]h&]uh1jShj NhM hjyMubjT)}(ho``const char *const *alias_id`` List of supply names or regulator IDs that should be used to lookup the supply h](jZ)}(h``const char *const *alias_id``h]j)}(hj-Nh]hconst char *const *alias_id}(hj/NhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+Nubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj'Nubjt)}(hhh]j)}(hNList of supply names or regulator IDs that should be used to lookup the supplyh]hNList of supply names or regulator IDs that should be used to lookup the supply}(hjFNhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjCNubah}(h]h ]h"]h$]h&]uh1jshj'Nubeh}(h]h ]h"]h$]h&]uh1jShjBNhM hjyMubjT)}(h-``int num_id`` Number of aliases to register h](jZ)}(h``int num_id``h]j)}(hjgNh]h int num_id}(hjiNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeNubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjaNubjt)}(hhh]j)}(hNumber of aliases to registerh]hNumber of aliases to register}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|NhM hj}Nubah}(h]h ]h"]h$]h&]uh1jshjaNubeh}(h]h ]h"]h$]h&]uh1jShj|NhM hjyMubeh}(h]h ]h"]h$]h&]uh1jNhj]Mubj)}(h**Description**h]j )}(hjNh]h Description}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj]Mubj)}(hThis helper function allows drivers to register several supply aliases in one operation. If any of the aliases cannot be registered any aliases that were registered will be removed before returning to the caller.h]hThis helper function allows drivers to register several supply aliases in one operation. If any of the aliases cannot be registered any aliases that were registered will be removed before returning to the caller.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.c hM hj]Mubj)}(h **Return**h]j )}(hjNh]hReturn}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj]Mubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj]Mubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn3regulator_bulk_unregister_supply_alias (C function)(c.regulator_bulk_unregister_supply_aliashNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hcvoid regulator_bulk_unregister_supply_alias (struct device *dev, const char *const *id, int num_id)h]j)}(hbvoid regulator_bulk_unregister_supply_alias(struct device *dev, const char *const *id, int num_id)h](j:<)}(hvoidh]hvoid}(hjOhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj Ohhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM# ubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj OhhhjOhM# ubj)}(h®ulator_bulk_unregister_supply_aliash]j)}(h®ulator_bulk_unregister_supply_aliash]h®ulator_bulk_unregister_supply_alias}(hj/OhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+Oubah}(h]h ](jjeh"]h$]h&]hhuh1jhj OhhhjOhM# ubj;)}(h7(struct device *dev, const char *const *id, int num_id)h](j;)}(hstruct device *devh](j)}(hjh]hstruct}(hjKOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGOubj)}(h h]h }(hjXOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGOubh)}(hhh]j)}(hdeviceh]hdevice}(hjiOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfOubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjkOmodnameN classnameNj\;j_;)}jb;]je;)}jX;j1Osb(c.regulator_bulk_unregister_supply_aliasasbuh1hhjGOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGOubjz;)}(hj};h]h*}(hjOhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjGOubj)}(hdevh]hdev}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGOubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjCOubj;)}(hconst char *const *idh](j)}(hj<h]hconst}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj:<)}(hcharh]hchar}(hjOhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubjz;)}(hj};h]h*}(hjOhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjOubj)}(hj<h]hconst}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubjz;)}(hj};h]h*}(hjPhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjOubj)}(hidh]hid}(hj)PhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjCOubj;)}(h int num_idh](j:<)}(hinth]hint}(hjBPhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj>Pubj)}(h h]h }(hjPPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>Pubj)}(hnum_idh]hnum_id}(hj^PhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>Pubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjCOubeh}(h]h ]h"]h$]h&]hhuh1j;hj OhhhjOhM# ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjOhhhjOhM# ubah}(h]jOah ](jjeh"]h$]h&]jj)jhuh1jxhjOhM# hjOhhubj)}(hhh]j)}(hunregister multiple aliasesh]hunregister multiple aliases}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjPhhubah}(h]h ]h"]h$]h&]uh1jhjOhhhjOhM# ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjPjjPjjjuh1jshhhjBhNhNubj)}(hX@**Parameters** ``struct device *dev`` device that will be given as the regulator "consumer" ``const char *const *id`` List of supply names or regulator IDs ``int num_id`` Number of aliases to unregister **Description** This helper function allows drivers to unregister several supply aliases in one operation.h](j)}(h**Parameters**h]j )}(hjPh]h Parameters}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjPubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjPubjO)}(hhh](jT)}(hM``struct device *dev`` device that will be given as the regulator "consumer" h](jZ)}(h``struct device *dev``h]j)}(hjPh]hstruct device *dev}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjPubjt)}(hhh]j)}(h5device that will be given as the regulator "consumer"h]h9device that will be given as the regulator “consumer”}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPhM hjPubah}(h]h ]h"]h$]h&]uh1jshjPubeh}(h]h ]h"]h$]h&]uh1jShjPhM hjPubjT)}(h@``const char *const *id`` List of supply names or regulator IDs h](jZ)}(h``const char *const *id``h]j)}(hjQh]hconst char *const *id}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjPubjt)}(hhh]j)}(h%List of supply names or regulator IDsh]h%List of supply names or regulator IDs}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQhM hjQubah}(h]h ]h"]h$]h&]uh1jshjPubeh}(h]h ]h"]h$]h&]uh1jShjQhM hjPubjT)}(h/``int num_id`` Number of aliases to unregister h](jZ)}(h``int num_id``h]j)}(hj;Qh]h int num_id}(hj=QhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9Qubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj5Qubjt)}(hhh]j)}(hNumber of aliases to unregisterh]hNumber of aliases to unregister}(hjTQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPQhM hjQQubah}(h]h ]h"]h$]h&]uh1jshj5Qubeh}(h]h ]h"]h$]h&]uh1jShjPQhM hjPubeh}(h]h ]h"]h$]h&]uh1jNhjPubj)}(h**Description**h]j )}(hjvQh]h Description}(hjxQhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjtQubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjPubj)}(hZThis helper function allows drivers to unregister several supply aliases in one operation.h]hZThis helper function allows drivers to unregister several supply aliases in one operation.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjPubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnregulator_enable (C function)c.regulator_enablehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h2int regulator_enable (struct regulator *regulator)h]j)}(h1int regulator_enable(struct regulator *regulator)h](j:<)}(hinth]hint}(hjQhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjQhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQhhhjQhM ubj)}(hregulator_enableh]j)}(hregulator_enableh]hregulator_enable}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubah}(h]h ](jjeh"]h$]h&]hhuh1jhjQhhhjQhM ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubh)}(hhh]j)}(h regulatorh]h regulator}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjRmodnameN classnameNj\;j_;)}jb;]je;)}jX;jQsbc.regulator_enableasbuh1hhjQubj)}(h h]h }(hj6RhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubjz;)}(hj};h]h*}(hjDRhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjQubj)}(h regulatorh]h regulator}(hjQRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjQubah}(h]h ]h"]h$]h&]hhuh1j;hjQhhhjQhM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjQhhhjQhM ubah}(h]jQah ](jjeh"]h$]h&]jj)jhuh1jxhjQhM hjQhhubj)}(hhh]j)}(henable regulator outputh]henable regulator output}(hj{RhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjxRhhubah}(h]h ]h"]h$]h&]uh1jhjQhhhjQhM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjRjjRjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct regulator *regulator`` regulator source **Description** Request that the regulator be enabled with the regulator output at the predefined voltage or current value. Calls to regulator_enable() must be balanced with calls to regulator_disable(). **NOTE** the output value can be set by other drivers, boot loader or may be hardwired in the regulator. **Return** 0 on success or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hjRh]h Parameters}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjRubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjRubjO)}(hhh]jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjRh]hstruct regulator *regulator}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjRubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRhM hjRubah}(h]h ]h"]h$]h&]uh1jshjRubeh}(h]h ]h"]h$]h&]uh1jShjRhM hjRubah}(h]h ]h"]h$]h&]uh1jNhjRubj)}(h**Description**h]j )}(hjRh]h Description}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjRubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjRubj)}(hRequest that the regulator be enabled with the regulator output at the predefined voltage or current value. Calls to regulator_enable() must be balanced with calls to regulator_disable().h]hRequest that the regulator be enabled with the regulator output at the predefined voltage or current value. Calls to regulator_enable() must be balanced with calls to regulator_disable().}(hj ShhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjRubj)}(h**NOTE**h]j )}(hjSh]hNOTE}(hj ShhhNhNubah}(h]h ]h"]h$]h&]uh1j hjSubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjRubj)}(h_the output value can be set by other drivers, boot loader or may be hardwired in the regulator.h]h_the output value can be set by other drivers, boot loader or may be hardwired in the regulator.}(hj4ShhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjRubj)}(h **Return**h]j )}(hjESh]hReturn}(hjGShhhNhNubah}(h]h ]h"]h$]h&]uh1j hjCSubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjRubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hj[ShhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjRubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnregulator_disable (C function)c.regulator_disablehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h3int regulator_disable (struct regulator *regulator)h]j)}(h2int regulator_disable(struct regulator *regulator)h](j:<)}(hinth]hint}(hjShhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjShhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhhjShM ubj)}(hregulator_disableh]j)}(hregulator_disableh]hregulator_disable}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubah}(h]h ](jjeh"]h$]h&]hhuh1jhjShhhjShM ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubh)}(hhh]j)}(h regulatorh]h regulator}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjSmodnameN classnameNj\;j_;)}jb;]je;)}jX;jSsbc.regulator_disableasbuh1hhjSubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubjz;)}(hj};h]h*}(hjThhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjSubj)}(h regulatorh]h regulator}(hj ThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjSubah}(h]h ]h"]h$]h&]hhuh1j;hjShhhjShM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjShhhjShM ubah}(h]j}Sah ](jjeh"]h$]h&]jj)jhuh1jxhjShM hjShhubj)}(hhh]j)}(hdisable regulator outputh]hdisable regulator output}(hjJThhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjGThhubah}(h]h ]h"]h$]h&]uh1jhjShhhjShM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjbTjjbTjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct regulator *regulator`` regulator source **Description** Disable the regulator output voltage or current. Calls to regulator_enable() must be balanced with calls to regulator_disable(). **NOTE** this will only disable the regulator output if no other consumer devices have it enabled, the regulator device supports disabling and machine constraints permit this operation. **Return** 0 on success or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hjlTh]h Parameters}(hjnThhhNhNubah}(h]h ]h"]h$]h&]uh1j hjjTubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjfTubjO)}(hhh]jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjTh]hstruct regulator *regulator}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjTubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjThM hjTubah}(h]h ]h"]h$]h&]uh1jshjTubeh}(h]h ]h"]h$]h&]uh1jShjThM hjTubah}(h]h ]h"]h$]h&]uh1jNhjfTubj)}(h**Description**h]j )}(hjTh]h Description}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1j hjTubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjfTubj)}(hDisable the regulator output voltage or current. Calls to regulator_enable() must be balanced with calls to regulator_disable().h]hDisable the regulator output voltage or current. Calls to regulator_enable() must be balanced with calls to regulator_disable().}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjfTubj)}(h**NOTE**h]j )}(hjTh]hNOTE}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1j hjTubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjfTubj)}(hthis will only disable the regulator output if no other consumer devices have it enabled, the regulator device supports disabling and machine constraints permit this operation.h]hthis will only disable the regulator output if no other consumer devices have it enabled, the regulator device supports disabling and machine constraints permit this operation.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjfTubj)}(h **Return**h]j )}(hjUh]hReturn}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjUubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjfTubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hj*UhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjfTubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn$regulator_force_disable (C function)c.regulator_force_disablehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h9int regulator_force_disable (struct regulator *regulator)h]j)}(h8int regulator_force_disable(struct regulator *regulator)h](j:<)}(hinth]hint}(hjYUhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjUUhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM9 ubj)}(h h]h }(hjhUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUUhhhjgUhM9 ubj)}(hregulator_force_disableh]j)}(hregulator_force_disableh]hregulator_force_disable}(hjzUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvUubah}(h]h ](jjeh"]h$]h&]hhuh1jhjUUhhhjgUhM9 ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubh)}(hhh]j)}(h regulatorh]h regulator}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjUmodnameN classnameNj\;j_;)}jb;]je;)}jX;j|Usbc.regulator_force_disableasbuh1hhjUubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubjz;)}(hj};h]h*}(hjUhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjUubj)}(h regulatorh]h regulator}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjUubah}(h]h ]h"]h$]h&]hhuh1j;hjUUhhhjgUhM9 ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjQUhhhjgUhM9 ubah}(h]jLUah ](jjeh"]h$]h&]jj)jhuh1jxhjgUhM9 hjNUhhubj)}(hhh]j)}(hforce disable regulator outputh]hforce disable regulator output}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM/ hjVhhubah}(h]h ]h"]h$]h&]uh1jhjNUhhhjgUhM9 ubeh}(h]h ](j5functioneh"]h$]h&]jj5jj1Vjj1Vjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct regulator *regulator`` regulator source **Description** Forcibly disable the regulator output voltage or current. **NOTE** this *will* disable the regulator output even if other consumer devices have it enabled. This should be used for situations when device damage will likely occur if the regulator is not disabled (e.g. over temp). **Return** 0 on success or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hj;Vh]h Parameters}(hj=VhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj9Vubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM3 hj5VubjO)}(hhh]jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjZVh]hstruct regulator *regulator}(hj\VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXVubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM0 hjTVubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjsVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoVhM0 hjpVubah}(h]h ]h"]h$]h&]uh1jshjTVubeh}(h]h ]h"]h$]h&]uh1jShjoVhM0 hjQVubah}(h]h ]h"]h$]h&]uh1jNhj5Vubj)}(h**Description**h]j )}(hjVh]h Description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjVubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM2 hj5Vubj)}(h9Forcibly disable the regulator output voltage or current.h]h9Forcibly disable the regulator output voltage or current.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM2 hj5Vubj)}(h**NOTE**h]j )}(hjVh]hNOTE}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjVubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM4 hj5Vubj)}(hthis *will* disable the regulator output even if other consumer devices have it enabled. This should be used for situations when device damage will likely occur if the regulator is not disabled (e.g. over temp).h](hthis }(hjVhhhNhNubhemphasis)}(h*will*h]hwill}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjVubh disable the regulator output even if other consumer devices have it enabled. This should be used for situations when device damage will likely occur if the regulator is not disabled (e.g. over temp).}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM3 hj5Vubj)}(h **Return**h]j )}(hjVh]hReturn}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjVubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM7 hj5Vubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hj WhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM7 hj5Vubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn'regulator_disable_deferred (C function)c.regulator_disable_deferredhNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hDint regulator_disable_deferred (struct regulator *regulator, int ms)h]j)}(hCint regulator_disable_deferred(struct regulator *regulator, int ms)h](j:<)}(hinth]hint}(hj[ah ](jjeh"]h$]h&]jj)jhuh1jxhjY[hM hj@[hhubj)}(hhh]j)}(h(count regulator_list_voltage() selectorsh]h(count regulator_list_voltage() selectors}(hj \hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj\hhubah}(h]h ]h"]h$]h&]uh1jhj@[hhhjY[hM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jj#\jj#\jjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct regulator *regulator`` regulator source **Return** Number of selectors for **regulator**, or negative error number. **Description** Selectors are numbered starting at zero, and typically correspond to bitfields in hardware registers.h](j)}(h**Parameters**h]j )}(hj-\h]h Parameters}(hj/\hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj+\ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj'\ubjO)}(hhh]jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjL\h]hstruct regulator *regulator}(hjN\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ\ubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjF\ubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hje\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja\hM hjb\ubah}(h]h ]h"]h$]h&]uh1jshjF\ubeh}(h]h ]h"]h$]h&]uh1jShja\hM hjC\ubah}(h]h ]h"]h$]h&]uh1jNhj'\ubj)}(h **Return**h]j )}(hj\h]hReturn}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj\ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj'\ubj)}(h@Number of selectors for **regulator**, or negative error number.h](hNumber of selectors for }(hj\hhhNhNubj )}(h **regulator**h]h regulator}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj\ubh, or negative error number.}(hj\hhhNhNubeh}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj'\ubj)}(h**Description**h]j )}(hj\h]h Description}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj\ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj'\ubj)}(heSelectors are numbered starting at zero, and typically correspond to bitfields in hardware registers.h]heSelectors are numbered starting at zero, and typically correspond to bitfields in hardware registers.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj'\ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn#regulator_list_voltage (C function)c.regulator_list_voltagehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hKint regulator_list_voltage (struct regulator *regulator, unsigned selector)h]j)}(hJint regulator_list_voltage(struct regulator *regulator, unsigned selector)h](j:<)}(hinth]hint}(hj]hhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj]hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]hhhj]hM ubj)}(hregulator_list_voltageh]j)}(hregulator_list_voltageh]hregulator_list_voltage}(hj&]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"]ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj]hhhj]hM ubj;)}(h0(struct regulator *regulator, unsigned selector)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjB]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>]ubj)}(h h]h }(hjO]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>]ubh)}(hhh]j)}(h regulatorh]h regulator}(hj`]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]]ubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjb]modnameN classnameNj\;j_;)}jb;]je;)}jX;j(]sbc.regulator_list_voltageasbuh1hhj>]ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>]ubjz;)}(hj};h]h*}(hj]hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj>]ubj)}(h regulatorh]h regulator}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>]ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj:]ubj;)}(hunsigned selectorh](j:<)}(hunsignedh]hunsigned}(hj]hhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj]ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj)}(hselectorh]hselector}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj:]ubeh}(h]h ]h"]h$]h&]hhuh1j;hj]hhhj]hM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj\hhhj]hM ubah}(h]j\ah ](jjeh"]h$]h&]jj)jhuh1jxhj]hM hj\hhubj)}(hhh]j)}(henumerate supported voltagesh]henumerate supported voltages}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj]hhubah}(h]h ]h"]h$]h&]uh1jhj\hhhj]hM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jj^jj^jjjuh1jshhhjBhNhNubj)}(hXH**Parameters** ``struct regulator *regulator`` regulator source ``unsigned selector`` identify voltage to list **Context** can sleep **Return** Voltage for **selector** that can be passed to regulator_set_voltage(), 0 if **selector** can't be used on this system, or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hj^h]h Parameters}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj^ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj^ubjO)}(hhh](jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hj;^h]hstruct regulator *regulator}(hj=^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9^ubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj5^ubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjT^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP^hM hjQ^ubah}(h]h ]h"]h$]h&]uh1jshj5^ubeh}(h]h ]h"]h$]h&]uh1jShjP^hM hj2^ubjT)}(h/``unsigned selector`` identify voltage to list h](jZ)}(h``unsigned selector``h]j)}(hjt^h]hunsigned selector}(hjv^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr^ubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjn^ubjt)}(hhh]j)}(hidentify voltage to listh]hidentify voltage to list}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^hM hj^ubah}(h]h ]h"]h$]h&]uh1jshjn^ubeh}(h]h ]h"]h$]h&]uh1jShj^hM hj2^ubeh}(h]h ]h"]h$]h&]uh1jNhj^ubj)}(h **Context**h]j )}(hj^h]hContext}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj^ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj^ubj)}(h can sleeph]h can sleep}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj^ubj)}(h **Return**h]j )}(hj^h]hReturn}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj^ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj^ubjO)}(hhh]jT)}(hVoltage for **selector** that can be passed to regulator_set_voltage(), 0 if **selector** can't be used on this system, or a negative error number on failure.h](jZ)}(hGVoltage for **selector** that can be passed to regulator_set_voltage(),h](h Voltage for }(hj^hhhNhNubj )}(h **selector**h]hselector}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj^ubh/ that can be passed to regulator_set_voltage(),}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj^ubjt)}(hhh]j)}(hV0 if **selector** can't be used on this system, or a negative error number on failure.h](h0 if }(hj_hhhNhNubj )}(h **selector**h]hselector}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj_ubhG can’t be used on this system, or a negative error number on failure.}(hj_hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhj_hM hj_ubah}(h]h ]h"]h$]h&]uh1jshj^ubeh}(h]h ]h"]h$]h&]uh1jShj_hM hj^ubah}(h]h ]h"]h$]h&]uh1jNhj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn!regulator_get_regmap (C function)c.regulator_get_regmaphNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hBstruct regmap * regulator_get_regmap (struct regulator *regulator)h]j)}(h@struct regmap *regulator_get_regmap(struct regulator *regulator)h](j)}(hjh]hstruct}(hji_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje_hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjw_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje_hhhjv_hM ubh)}(hhh]j)}(hregmaph]hregmap}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetj_modnameN classnameNj\;j_;)}jb;]je;)}jX;regulator_get_regmapsbc.regulator_get_regmapasbuh1hhje_hhhjv_hM ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje_hhhjv_hM ubjz;)}(hj};h]h*}(hj_hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hje_hhhjv_hM ubj)}(hregulator_get_regmaph]j)}(hj_h]hregulator_get_regmap}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubah}(h]h ](jjeh"]h$]h&]hhuh1jhje_hhhjv_hM ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubh)}(hhh]j)}(h regulatorh]h regulator}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetj`modnameN classnameNj\;j_;)}jb;]j_c.regulator_get_regmapasbuh1hhj_ubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubjz;)}(hj};h]h*}(hj-`hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj_ubj)}(h regulatorh]h regulator}(hj:`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj_ubah}(h]h ]h"]h$]h&]hhuh1j;hje_hhhjv_hM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhja_hhhjv_hM ubah}(h]j\_ah ](jjeh"]h$]h&]jj)jhuh1jxhjv_hM hj^_hhubj)}(hhh]j)}(h get the regulator's register maph]h"get the regulator’s register map}(hjd`hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hja`hhubah}(h]h ]h"]h$]h&]uh1jhj^_hhhjv_hM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jj|`jj|`jjjuh1jshhhjBhNhNubj)}(h**Parameters** ``struct regulator *regulator`` regulator source **Return** Pointer to the :c:type:`struct regmap ` for **regulator**, or ERR_PTR() encoded -``EOPNOTSUPP`` if **regulator** doesn't use regmap.h](j)}(h**Parameters**h]j )}(hj`h]h Parameters}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj`ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj`ubjO)}(hhh]jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hj`h]hstruct regulator *regulator}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj`ubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`hM hj`ubah}(h]h ]h"]h$]h&]uh1jshj`ubeh}(h]h ]h"]h$]h&]uh1jShj`hM hj`ubah}(h]h ]h"]h$]h&]uh1jNhj`ubj)}(h **Return**h]j )}(hj`h]hReturn}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj`ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj`ubjO)}(hhh]jT)}(hPointer to the :c:type:`struct regmap ` for **regulator**, or ERR_PTR() encoded -``EOPNOTSUPP`` if **regulator** doesn't use regmap.h](jZ)}(hOPointer to the :c:type:`struct regmap ` for **regulator**, or ERR_PTR()h](hPointer to the }(hj`hhhNhNubh)}(h :c:type:`struct regmap `h]j)}(hjah]h struct regmap}(hj ahhhNhNubah}(h]h ](j4j5c-typeeh"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]refdocjA refdomainj5reftypetype refexplicitrefwarnj\;j=jGregmapuh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj`ubh for }(hj`hhhNhNubj )}(h **regulator**h]h regulator}(hj)ahhhNhNubah}(h]h ]h"]h$]h&]uh1j hj`ubh, or ERR_PTR()}(hj`hhhNhNubeh}(h]h ]h"]h$]h&]uh1jYhj$ahM hj`ubjt)}(hhh]j)}(hhubjO)}(hhh](jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjchh]hstruct regulator *regulator}(hjehhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjahubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMb hj]hubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hj|hhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxhhMb hjyhubah}(h]h ]h"]h$]h&]uh1jshj]hubeh}(h]h ]h"]h$]h&]uh1jShjxhhMb hjZhubjT)}(h3``bool enable`` true for enable, false for disable h](jZ)}(h``bool enable``h]j)}(hjhh]h bool enable}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMc hjhubjt)}(hhh]j)}(h"true for enable, false for disableh]h"true for enable, false for disable}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhMc hjhubah}(h]h ]h"]h$]h&]uh1jshjhubeh}(h]h ]h"]h$]h&]uh1jShjhhMc hjZhubeh}(h]h ]h"]h$]h&]uh1jNhj>hubj)}(h**Description**h]j )}(hjhh]h Description}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMe hj>hubj)}(htRequest that the regulator be enabled/disabled with the regulator output at the predefined voltage or current value.h]htRequest that the regulator be enabled/disabled with the regulator output at the predefined voltage or current value.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMe hj>hubj)}(h **Return**h]j )}(hjhh]hReturn}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMh hj>hubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMh hj>hubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn®ulator_get_linear_step (C function)c.regulator_get_linear_stephNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hDunsigned int regulator_get_linear_step (struct regulator *regulator)h]j)}(hCunsigned int regulator_get_linear_step(struct regulator *regulator)h](j:<)}(hunsignedh]hunsigned}(hjCihhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj?ihhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjRihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ihhhjQihM ubj:<)}(hinth]hint}(hj`ihhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj?ihhhjQihM ubj)}(h h]h }(hjnihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ihhhjQihM ubj)}(hregulator_get_linear_steph]j)}(hregulator_get_linear_steph]hregulator_get_linear_step}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|iubah}(h]h ](jjeh"]h$]h&]hhuh1jhj?ihhhjQihM ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubh)}(hhh]j)}(h regulatorh]h regulator}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjimodnameN classnameNj\;j_;)}jb;]je;)}jX;jisbc.regulator_get_linear_stepasbuh1hhjiubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubjz;)}(hj};h]h*}(hjihhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjiubj)}(h regulatorh]h regulator}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjiubah}(h]h ]h"]h$]h&]hhuh1j;hj?ihhhjQihM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj;ihhhjQihM ubah}(h]j6iah ](jjeh"]h$]h&]jj)jhuh1jxhjQihM hj8ihhubj)}(hhh]j)}(h0return the voltage step size between VSEL valuesh]h0return the voltage step size between VSEL values}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM} hjjhhubah}(h]h ]h"]h$]h&]uh1jhj8ihhhjQihM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jj7jjj7jjjjuh1jshhhjBhNhNubj)}(h**Parameters** ``struct regulator *regulator`` regulator source **Return** The voltage step size between VSEL values for linear regulators, or 0 if the regulator isn't a linear regulator.h](j)}(h**Parameters**h]j )}(hjAjh]h Parameters}(hjCjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj?jubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj;jubjO)}(hhh]jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hj`jh]hstruct regulator *regulator}(hjbjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^jubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM~ hjZjubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjyjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjujhM~ hjvjubah}(h]h ]h"]h$]h&]uh1jshjZjubeh}(h]h ]h"]h$]h&]uh1jShjujhM~ hjWjubah}(h]h ]h"]h$]h&]uh1jNhj;jubj)}(h **Return**h]j )}(hjjh]hReturn}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj;jubjO)}(hhh]jT)}(hpThe voltage step size between VSEL values for linear regulators, or 0 if the regulator isn't a linear regulator.h](jZ)}(h@The voltage step size between VSEL values for linear regulators,h]h@The voltage step size between VSEL values for linear regulators,}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjjubjt)}(hhh]j)}(h/or 0 if the regulator isn't a linear regulator.h]h1or 0 if the regulator isn’t a linear regulator.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjjubah}(h]h ]h"]h$]h&]uh1jshjjubeh}(h]h ]h"]h$]h&]uh1jShjjhM hjjubah}(h]h ]h"]h$]h&]uh1jNhj;jubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn+regulator_is_supported_voltage (C function) c.regulator_is_supported_voltagehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hXint regulator_is_supported_voltage (struct regulator *regulator, int min_uV, int max_uV)h]j)}(hWint regulator_is_supported_voltage(struct regulator *regulator, int min_uV, int max_uV)h](j:<)}(hinth]hint}(hj khhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjkhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkhhhjkhM ubj)}(hregulator_is_supported_voltageh]j)}(hregulator_is_supported_voltageh]hregulator_is_supported_voltage}(hj,khhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(kubah}(h]h ](jjeh"]h$]h&]hhuh1jhjkhhhjkhM ubj;)}(h5(struct regulator *regulator, int min_uV, int max_uV)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjHkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDkubj)}(h h]h }(hjUkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDkubh)}(hhh]j)}(h regulatorh]h regulator}(hjfkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjckubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjhkmodnameN classnameNj\;j_;)}jb;]je;)}jX;j.ksb c.regulator_is_supported_voltageasbuh1hhjDkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDkubjz;)}(hj};h]h*}(hjkhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjDkubj)}(h regulatorh]h regulator}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDkubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj@kubj;)}(h int min_uVh](j:<)}(hinth]hint}(hjkhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj)}(hmin_uVh]hmin_uV}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj@kubj;)}(h int max_uVh](j:<)}(hinth]hint}(hjkhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj)}(hmax_uVh]hmax_uV}(hj lhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj@kubeh}(h]h ]h"]h$]h&]hhuh1j;hjkhhhjkhM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjkhhhjkhM ubah}(h]jjah ](jjeh"]h$]h&]jj)jhuh1jxhjkhM hjkhhubj)}(hhh]j)}(h)check if a voltage range can be supportedh]h)check if a voltage range can be supported}(hj5lhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj2lhhubah}(h]h ]h"]h$]h&]uh1jhjkhhhjkhM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjMljjMljjjuh1jshhhjBhNhNubj)}(hXY**Parameters** ``struct regulator *regulator`` Regulator to check. ``int min_uV`` Minimum required voltage in uV. ``int max_uV`` Maximum required voltage in uV. **Return** 1 if the voltage range is supported, 0 if not, or a negative error number if **regulator**'s voltage can't be changed and voltage readback failed.h](j)}(h**Parameters**h]j )}(hjWlh]h Parameters}(hjYlhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjUlubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjQlubjO)}(hhh](jT)}(h4``struct regulator *regulator`` Regulator to check. h](jZ)}(h``struct regulator *regulator``h]j)}(hjvlh]hstruct regulator *regulator}(hjxlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtlubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjplubjt)}(hhh]j)}(hRegulator to check.h]hRegulator to check.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlhM hjlubah}(h]h ]h"]h$]h&]uh1jshjplubeh}(h]h ]h"]h$]h&]uh1jShjlhM hjmlubjT)}(h/``int min_uV`` Minimum required voltage in uV. h](jZ)}(h``int min_uV``h]j)}(hjlh]h int min_uV}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjlubjt)}(hhh]j)}(hMinimum required voltage in uV.h]hMinimum required voltage in uV.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlhM hjlubah}(h]h ]h"]h$]h&]uh1jshjlubeh}(h]h ]h"]h$]h&]uh1jShjlhM hjmlubjT)}(h/``int max_uV`` Maximum required voltage in uV. h](jZ)}(h``int max_uV``h]j)}(hjlh]h int max_uV}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjlubjt)}(hhh]j)}(hMaximum required voltage in uV.h]hMaximum required voltage in uV.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlhM hjlubah}(h]h ]h"]h$]h&]uh1jshjlubeh}(h]h ]h"]h$]h&]uh1jShjlhM hjmlubeh}(h]h ]h"]h$]h&]uh1jNhjQlubj)}(h **Return**h]j )}(hj#mh]hReturn}(hj%mhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj!mubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjQlubjO)}(hhh]jT)}(h1 if the voltage range is supported, 0 if not, or a negative error number if **regulator**'s voltage can't be changed and voltage readback failed.h](jZ)}(hB1 if the voltage range is supported, 0 if not, or a negative errorh]hB1 if the voltage range is supported, 0 if not, or a negative error}(hj@mhhhNhNubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjqubj)}(h h]h }(hjPqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>qubj)}(hnew_uVh]hnew_uV}(hj^qhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>qubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjpubeh}(h]h ]h"]h$]h&]hhuh1j;hjZphhhjlphMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjVphhhjlphMubah}(h]jQpah ](jjeh"]h$]h&]jj)jhuh1jxhjlphMhjSphhubj)}(hhh]j)}(hget raise/fall timeh]hget raise/fall time}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjqhhubah}(h]h ]h"]h$]h&]uh1jhjSphhhjlphMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjqjjqjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct regulator *regulator`` regulator source ``int old_uV`` starting voltage in microvolts ``int new_uV`` target voltage in microvolts **Description** Provided with the starting and ending voltage, this function attempts to calculate the time in microseconds required to rise or fall to this new voltage. **Return** ramp time in microseconds, or a negative error number if calculation failed.h](j)}(h**Parameters**h]j )}(hjqh]h Parameters}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjqubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjqubjO)}(hhh](jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjqh]hstruct regulator *regulator}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjqubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqhMhjqubah}(h]h ]h"]h$]h&]uh1jshjqubeh}(h]h ]h"]h$]h&]uh1jShjqhMhjqubjT)}(h.``int old_uV`` starting voltage in microvolts h](jZ)}(h``int old_uV``h]j)}(hjrh]h int old_uV}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjqubjt)}(hhh]j)}(hstarting voltage in microvoltsh]hstarting voltage in microvolts}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrhMhjrubah}(h]h ]h"]h$]h&]uh1jshjqubeh}(h]h ]h"]h$]h&]uh1jShjrhMhjqubjT)}(h,``int new_uV`` target voltage in microvolts h](jZ)}(h``int new_uV``h]j)}(hj;rh]h int new_uV}(hj=rhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9rubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj5rubjt)}(hhh]j)}(htarget voltage in microvoltsh]htarget voltage in microvolts}(hjTrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPrhMhjQrubah}(h]h ]h"]h$]h&]uh1jshj5rubeh}(h]h ]h"]h$]h&]uh1jShjPrhMhjqubeh}(h]h ]h"]h$]h&]uh1jNhjqubj)}(h**Description**h]j )}(hjvrh]h Description}(hjxrhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjtrubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjqubj)}(hProvided with the starting and ending voltage, this function attempts to calculate the time in microseconds required to rise or fall to this new voltage.h]hProvided with the starting and ending voltage, this function attempts to calculate the time in microseconds required to rise or fall to this new voltage.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjqubj)}(h **Return**h]j )}(hjrh]hReturn}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjrubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjqubj)}(hLramp time in microseconds, or a negative error number if calculation failed.h]hLramp time in microseconds, or a negative error number if calculation failed.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjqubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn+regulator_set_voltage_time_sel (C function) c.regulator_set_voltage_time_selhNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(huint regulator_set_voltage_time_sel (struct regulator_dev *rdev, unsigned int old_selector, unsigned int new_selector)h]j)}(htint regulator_set_voltage_time_sel(struct regulator_dev *rdev, unsigned int old_selector, unsigned int new_selector)h](j:<)}(hinth]hint}(hjrhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjrhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM2ubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrhhhjrhM2ubj)}(hregulator_set_voltage_time_selh]j)}(hregulator_set_voltage_time_selh]hregulator_set_voltage_time_sel}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubah}(h]h ](jjeh"]h$]h&]hhuh1jhjrhhhjrhM2ubj;)}(hR(struct regulator_dev *rdev, unsigned int old_selector, unsigned int new_selector)h](j;)}(hstruct regulator_dev *rdevh](j)}(hjh]hstruct}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj)}(h h]h }(hj,shhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubh)}(hhh]j)}(h regulator_devh]h regulator_dev}(hj=shhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:subah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetj?smodnameN classnameNj\;j_;)}jb;]je;)}jX;jssb c.regulator_set_voltage_time_selasbuh1hhjsubj)}(h h]h }(hj]shhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubjz;)}(hj};h]h*}(hjkshhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjsubj)}(hrdevh]hrdev}(hjxshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjsubj;)}(hunsigned int old_selectorh](j:<)}(hunsignedh]hunsigned}(hjshhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjsubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj:<)}(hinth]hint}(hjshhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjsubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj)}(h old_selectorh]h old_selector}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjsubj;)}(hunsigned int new_selectorh](j:<)}(hunsignedh]hunsigned}(hjshhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjsubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj:<)}(hinth]hint}(hjshhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjsubj)}(h h]h }(hj thhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj)}(h new_selectorh]h new_selector}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjsubeh}(h]h ]h"]h$]h&]hhuh1j;hjrhhhjrhM2ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjrhhhjrhM2ubah}(h]jrah ](jjeh"]h$]h&]jj)jhuh1jxhjrhM2hjrhhubj)}(hhh]j)}(hget raise/fall timeh]hget raise/fall time}(hjDthhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM%hjAthhubah}(h]h ]h"]h$]h&]uh1jhjrhhhjrhM2ubeh}(h]h ](j5functioneh"]h$]h&]jj5jj\tjj\tjjjuh1jshhhjBhNhNubj)}(hX1**Parameters** ``struct regulator_dev *rdev`` regulator source device ``unsigned int old_selector`` selector for starting voltage ``unsigned int new_selector`` selector for target voltage **Description** Provided with the starting and target voltage selectors, this function returns time in microseconds required to rise or fall to this new voltage Drivers providing ramp_delay in regulation_constraints can use this as their set_voltage_time_sel() operation. **Return** ramp time in microseconds, or a negative error number if calculation failed.h](j)}(h**Parameters**h]j )}(hjfth]h Parameters}(hjhthhhNhNubah}(h]h ]h"]h$]h&]uh1j hjdtubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM)hj`tubjO)}(hhh](jT)}(h7``struct regulator_dev *rdev`` regulator source device h](jZ)}(h``struct regulator_dev *rdev``h]j)}(hjth]hstruct regulator_dev *rdev}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM&hjtubjt)}(hhh]j)}(hregulator source deviceh]hregulator source device}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjthM&hjtubah}(h]h ]h"]h$]h&]uh1jshjtubeh}(h]h ]h"]h$]h&]uh1jShjthM&hj|tubjT)}(h<``unsigned int old_selector`` selector for starting voltage h](jZ)}(h``unsigned int old_selector``h]j)}(hjth]hunsigned int old_selector}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM'hjtubjt)}(hhh]j)}(hselector for starting voltageh]hselector for starting voltage}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjthM'hjtubah}(h]h ]h"]h$]h&]uh1jshjtubeh}(h]h ]h"]h$]h&]uh1jShjthM'hj|tubjT)}(h:``unsigned int new_selector`` selector for target voltage h](jZ)}(h``unsigned int new_selector``h]j)}(hjth]hunsigned int new_selector}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM(hjtubjt)}(hhh]j)}(hselector for target voltageh]hselector for target voltage}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj uhM(hj uubah}(h]h ]h"]h$]h&]uh1jshjtubeh}(h]h ]h"]h$]h&]uh1jShj uhM(hj|tubeh}(h]h ]h"]h$]h&]uh1jNhj`tubj)}(h**Description**h]j )}(hj2uh]h Description}(hj4uhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj0uubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM*hj`tubj)}(hProvided with the starting and target voltage selectors, this function returns time in microseconds required to rise or fall to this new voltageh]hProvided with the starting and target voltage selectors, this function returns time in microseconds required to rise or fall to this new voltage}(hjHuhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM*hj`tubj)}(hnDrivers providing ramp_delay in regulation_constraints can use this as their set_voltage_time_sel() operation.h]hnDrivers providing ramp_delay in regulation_constraints can use this as their set_voltage_time_sel() operation.}(hjWuhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM-hj`tubj)}(h **Return**h]j )}(hjhuh]hReturn}(hjjuhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjfuubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM0hj`tubj)}(hLramp time in microseconds, or a negative error number if calculation failed.h]hLramp time in microseconds, or a negative error number if calculation failed.}(hj~uhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM0hj`tubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn#regulator_sync_voltage (C function)c.regulator_sync_voltagehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h8int regulator_sync_voltage (struct regulator *regulator)h]j)}(h7int regulator_sync_voltage(struct regulator *regulator)h](j:<)}(hinth]hint}(hjuhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjuhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuhhhjuhMhubj)}(hregulator_sync_voltageh]j)}(hregulator_sync_voltageh]hregulator_sync_voltage}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubah}(h]h ](jjeh"]h$]h&]hhuh1jhjuhhhjuhMhubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubh)}(hhh]j)}(h regulatorh]h regulator}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetj vmodnameN classnameNj\;j_;)}jb;]je;)}jX;jusbc.regulator_sync_voltageasbuh1hhjuubj)}(h h]h }(hj(vhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubjz;)}(hj};h]h*}(hj6vhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjuubj)}(h regulatorh]h regulator}(hjCvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjuubah}(h]h ]h"]h$]h&]hhuh1j;hjuhhhjuhMhubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjuhhhjuhMhubah}(h]juah ](jjeh"]h$]h&]jj)jhuh1jxhjuhMhhjuhhubj)}(hhh]j)}(h&re-apply last regulator output voltageh]h&re-apply last regulator output voltage}(hjmvhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM_hjjvhhubah}(h]h ]h"]h$]h&]uh1jhjuhhhjuhMhubeh}(h]h ](j5functioneh"]h$]h&]jj5jjvjjvjjjuh1jshhhjBhNhNubj)}(hXI**Parameters** ``struct regulator *regulator`` regulator source **Description** Re-apply the last configured voltage. This is intended to be used where some external control source the consumer is cooperating with has caused the configured voltage to change. **Return** 0 on success or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hjvh]h Parameters}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjvubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMchjvubjO)}(hhh]jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjvh]hstruct regulator *regulator}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM`hjvubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvhM`hjvubah}(h]h ]h"]h$]h&]uh1jshjvubeh}(h]h ]h"]h$]h&]uh1jShjvhM`hjvubah}(h]h ]h"]h$]h&]uh1jNhjvubj)}(h**Description**h]j )}(hjvh]h Description}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjvubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMbhjvubj)}(hRe-apply the last configured voltage. This is intended to be used where some external control source the consumer is cooperating with has caused the configured voltage to change.h]hRe-apply the last configured voltage. This is intended to be used where some external control source the consumer is cooperating with has caused the configured voltage to change.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMbhjvubj)}(h **Return**h]j )}(hjwh]hReturn}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjwubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMfhjvubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hj&whhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMfhjvubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn"regulator_get_voltage (C function)c.regulator_get_voltagehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h7int regulator_get_voltage (struct regulator *regulator)h]j)}(h6int regulator_get_voltage(struct regulator *regulator)h](j:<)}(hinth]hint}(hjUwhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjQwhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjdwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQwhhhjcwhMubj)}(hregulator_get_voltageh]j)}(hregulator_get_voltageh]hregulator_get_voltage}(hjvwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrwubah}(h]h ](jjeh"]h$]h&]hhuh1jhjQwhhhjcwhMubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubh)}(hhh]j)}(h regulatorh3]h regulator}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjwmodnameN classnameNj\;j_;)}jb;]je;)}jX;jxwsbc.regulator_get_voltageasbuh1hhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubjz;)}(hj};h]h*}(hjwhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjwubj)}(h regulatorh]h regulator}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjwubah}(h]h ]h"]h$]h&]hhuh1j;hjQwhhhjcwhMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjMwhhhjcwhMubah}(h]jHwah ](jjeh"]h$]h&]jj)jhuh1jxhjcwhMhjJwhhubj)}(hhh]j)}(hget regulator output voltageh]hget regulator output voltage}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjxhhubah}(h]h ]h"]h$]h&]uh1jhjJwhhhjcwhMubeh}(h]h ](j5functioneh"]h$]h&]jj5jj-xjj-xjjjuh1jshhhjBhNhNubj)}(hX **Parameters** ``struct regulator *regulator`` regulator source **Return** Current regulator voltage in uV, or a negative error number on failure. **NOTE** If the regulator is disabled it will return the voltage value. This function should not be used to determine regulator state.h](j)}(h**Parameters**h]j )}(hj7xh]h Parameters}(hj9xhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj5xubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj1xubjO)}(hhh]jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjVxh]hstruct regulator *regulator}(hjXxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTxubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjPxubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjoxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkxhMhjlxubah}(h]h ]h"]h$]h&]uh1jshjPxubeh}(h]h ]h"]h$]h&]uh1jShjkxhMhjMxubah}(h]h ]h"]h$]h&]uh1jNhj1xubj)}(h **Return**h]j )}(hjxh]hReturn}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjxubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj1xubj)}(hGCurrent regulator voltage in uV, or a negative error number on failure.h]hGCurrent regulator voltage in uV, or a negative error number on failure.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj1xubj)}(h**NOTE**h]j )}(hjxh]hNOTE}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjxubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj1xubj)}(h}If the regulator is disabled it will return the voltage value. This function should not be used to determine regulator state.h]h}If the regulator is disabled it will return the voltage value. This function should not be used to determine regulator state.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj1xubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn(regulator_set_current_limit (C function)c.regulator_set_current_limithNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hUint regulator_set_current_limit (struct regulator *regulator, int min_uA, int max_uA)h]j)}(hTint regulator_set_current_limit(struct regulator *regulator, int min_uA, int max_uA)h](j:<)}(hinth]hint}(hjxhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjxhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hj yhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxhhhj yhMubj)}(hregulator_set_current_limith]j)}(hregulator_set_current_limith]hregulator_set_current_limit}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubah}(h]h ](jjeh"]h$]h&]hhuh1jhjxhhhj yhMubj;)}(h5(struct regulator *regulator, int min_uA, int max_uA)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hj:yhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6yubj)}(h h]h }(hjGyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6yubh)}(hhh]j)}(h regulatorh]h regulator}(hjXyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUyubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjZymodnameN classnameNj\;j_;)}jb;]je;)}jX;j ysbc.regulator_set_current_limitasbuh1hhj6yubj)}(h h]h }(hjxyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6yubjz;)}(hj};h]h*}(hjyhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj6yubj)}(h regulatorh]h regulator}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6yubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj2yubj;)}(h int min_uAh](j:<)}(hinth]hint}(hjyhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjyubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj)}(hmin_uAh]hmin_uA}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj2yubj;)}(h int max_uAh](j:<)}(hinth]hint}(hjyhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjyubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj)}(hmax_uAh]hmax_uA}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj2yubeh}(h]h ]h"]h$]h&]hhuh1j;hjxhhhj yhMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjxhhhj yhMubah}(h]jxah ](jjeh"]h$]h&]jj)jhuh1jxhj yhMhjxhhubj)}(hhh]j)}(h"set regulator output current limith]h"set regulator output current limit}(hj'zhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj$zhhubah}(h]h ]h"]h$]h&]uh1jhjxhhhj yhMubeh}(h]h ](j5functioneh"]h$]h&]jj5jj?zjj?zjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct regulator *regulator`` regulator source ``int min_uA`` Minimum supported current in uA ``int max_uA`` Maximum supported current in uA **Description** Sets current sink to the desired output current. This can be set during any regulator state. IOW, regulator can be disabled or enabled. If the regulator is enabled then the current will change to the new value immediately otherwise if the regulator is disabled the regulator will output at the new current when enabled. **NOTE** Regulator system constraints must be set for this regulator before calling this function otherwise this call will fail. **Return** 0 on success or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hjIzh]h Parameters}(hjKzhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjGzubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjCzubjO)}(hhh](jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjhzh]hstruct regulator *regulator}(hjjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfzubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjbzubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}zhMhj~zubah}(h]h ]h"]h$]h&]uh1jshjbzubeh}(h]h ]h"]h$]h&]uh1jShj}zhMhj_zubjT)}(h/``int min_uA`` Minimum supported current in uA h](jZ)}(h``int min_uA``h]j)}(hjzh]h int min_uA}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjzubjt)}(hhh]j)}(hMinimum supported current in uAh]hMinimum supported current in uA}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzhMhjzubah}(h]h ]h"]h$]h&]uh1jshjzubeh}(h]h ]h"]h$]h&]uh1jShjzhMhj_zubjT)}(h/``int max_uA`` Maximum supported current in uA h](jZ)}(h``int max_uA``h]j)}(hjzh]h int max_uA}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjzubjt)}(hhh]j)}(hMaximum supported current in uAh]hMaximum supported current in uA}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzhMhjzubah}(h]h ]h"]h$]h&]uh1jshjzubeh}(h]h ]h"]h$]h&]uh1jShjzhMhj_zubeh}(h]h ]h"]h$]h&]uh1jNhjCzubj)}(h**Description**h]j )}(hj{h]h Description}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj{ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjCzubj)}(hSets current sink to the desired output current. This can be set during any regulator state. IOW, regulator can be disabled or enabled.h]hSets current sink to the desired output current. This can be set during any regulator state. IOW, regulator can be disabled or enabled.}(hj+{hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjCzubj)}(hIf the regulator is enabled then the current will change to the new value immediately otherwise if the regulator is disabled the regulator will output at the new current when enabled.h]hIf the regulator is enabled then the current will change to the new value immediately otherwise if the regulator is disabled the regulator will output at the new current when enabled.}(hj:{hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjCzubj)}(h**NOTE**h]j )}(hjK{h]hNOTE}(hjM{hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjI{ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjCzubj)}(hwRegulator system constraints must be set for this regulator before calling this function otherwise this call will fail.h]hwRegulator system constraints must be set for this regulator before calling this function otherwise this call will fail.}(hja{hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjCzubj)}(h **Return**h]j )}(hjr{h]hReturn}(hjt{hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjp{ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjCzubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjCzubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn(regulator_get_current_limit (C function)c.regulator_get_current_limithNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h=int regulator_get_current_limit (struct regulator *regulator)h]j)}(hjj>jjjuh1jshhhjBhNhNubj)}(h**Parameters** ``struct regulator *regulator`` regulator source ``unsigned int pw`` Power to be released. **Return** Power budget of the regulator in mW.h](j)}(h**Parameters**h]j )}(hjHh]h Parameters}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjFubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMdhjBubjO)}(hhh](jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjgh]hstruct regulator *regulator}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMahjaubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|hMahj}ubah}(h]h ]h"]h$]h&]uh1jshjaubeh}(h]h ]h"]h$]h&]uh1jShj|hMahj^ubjT)}(h*``unsigned int pw`` Power to be released. h](jZ)}(h``unsigned int pw``h]j)}(hjh]hunsigned int pw}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMbhjubjt)}(hhh]j)}(hPower to be released.h]hPower to be released.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMbhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhMbhj^ubeh}(h]h ]h"]h$]h&]uh1jNhjBubj)}(h **Return**h]j )}(hjۂh]hReturn}(hj݂hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjقubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMdhjBubj)}(h$Power budget of the regulator in mW.h]h$Power budget of the regulator in mW.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMdhjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnregulator_set_mode (C function)c.regulator_set_modehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hGint regulator_set_mode (struct regulator *regulator, unsigned int mode)h]j)}(hFint regulator_set_mode(struct regulator *regulator, unsigned int mode)h](j:<)}(hinth]hint}(hj hhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj.hMubj)}(hregulator_set_modeh]j)}(hregulator_set_modeh]hregulator_set_mode}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhj.hMubj;)}(h0(struct regulator *regulator, unsigned int mode)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubh)}(hhh]j)}(h regulatorh]h regulator}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetj}modnameN classnameNj\;j_;)}jb;]je;)}jX;jCsbc.regulator_set_modeasbuh1hhjYubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubjz;)}(hj};h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjYubj)}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjUubj;)}(hunsigned int modeh](j:<)}(hunsignedh]hunsigned}(hjσhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj˃ubj)}(h h]h }(hj݃hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj˃ubj:<)}(hinth]hint}(hjhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj˃ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj˃ubj)}(hmodeh]hmode}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj˃ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjUubeh}(h]h ]h"]h$]h&]hhuh1j;hjhhhj.hMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhj.hMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jxhj.hMhjhhubj)}(hhh]j)}(hset regulator operating modeh]hset regulator operating mode}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM}hj.hhubah}(h]h ]h"]h$]h&]uh1jhjhhhj.hMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjIjjIjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct regulator *regulator`` regulator source ``unsigned int mode`` operating mode - one of the REGULATOR_MODE constants **Description** Set regulator operating mode to increase regulator efficiency or improve regulation performance. **NOTE** Regulator system constraints must be set for this regulator before calling this function otherwise this call will fail. **Return** 0 on success or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hjSh]h Parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjQubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjMubjO)}(hhh](jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjrh]hstruct regulator *regulator}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM~hjlubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhM~hjubah}(h]h ]h"]h$]h&]uh1jshjlubeh}(h]h ]h"]h$]h&]uh1jShjhM~hjiubjT)}(hK``unsigned int mode`` operating mode - one of the REGULATOR_MODE constants h](jZ)}(h``unsigned int mode``h]j)}(hjh]hunsigned int mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubjt)}(hhh]j)}(h4operating mode - one of the REGULATOR_MODE constantsh]h4operating mode - one of the REGULATOR_MODE constants}(hjĄhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhMhjiubeh}(h]h ]h"]h$]h&]uh1jNhjMubj)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjMubj)}(h`Set regulator operating mode to increase regulator efficiency or improve regulation performance.h]h`Set regulator operating mode to increase regulator efficiency or improve regulation performance.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjMubj)}(h**NOTE**h]j )}(hj h]hNOTE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjMubj)}(hwRegulator system constraints must be set for this regulator before calling this function otherwise this call will fail.h]hwRegulator system constraints must be set for this regulator before calling this function otherwise this call will fail.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjMubj)}(h **Return**h]j )}(hj4h]hReturn}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj2ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjMubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjMubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnregulator_get_mode (C function)c.regulator_get_modehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h=unsigned int regulator_get_mode (struct regulator *regulator)h]j)}(hubah}(h]h ]h"]h$]h&]uh1jshj"ubeh}(h]h ]h"]h$]h&]uh1jShj=hMhjubeh}(h]h ]h"]h$]h&]uh1jNhjʊubj)}(h**Description**h]j )}(hjch]h Description}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1j hjaubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjʊubj)}(hNotifies the regulator core of a new device load. This is then used by DRMS (if enabled by constraints) to set the most efficient regulator operating mode for the new regulator loading.h]hNotifies the regulator core of a new device load. This is then used by DRMS (if enabled by constraints) to set the most efficient regulator operating mode for the new regulator loading.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjʊubj)}(hX$Consumer devices notify their supply regulator of the maximum power they will require (can be taken from device datasheet in the power consumption tables) when they change operational status and hence power state. Examples of operational state changes that can affect power consumption are :-h]hX$Consumer devices notify their supply regulator of the maximum power they will require (can be taken from device datasheet in the power consumption tables) when they change operational status and hence power state. Examples of operational state changes that can affect power consumption are :-}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjʊubj)}(hvo Device is opened / closed. o Device I/O is about to begin or has just finished. o Device is idling in between work. h]j)}(huo Device is opened / closed. o Device I/O is about to begin or has just finished. o Device is idling in between work.h]huo Device is opened / closed. o Device I/O is about to begin or has just finished. o Device is idling in between work.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubah}(h]h ]h"]h$]h&]uh1jhjhMhjʊubj)}(h9This information is also exported via sysfs to userspace.h]h9This information is also exported via sysfs to userspace.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjʊubj)}(hDRMS will sum the total requested load on the regulator and change to the most efficient operating mode if platform constraints allow.h]hDRMS will sum the total requested load on the regulator and change to the most efficient operating mode if platform constraints allow.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjʊubj)}(hIf a regulator is an always-on regulator then an individual consumer's load will still be removed if that consumer is fully disabled.h]hIf a regulator is an always-on regulator then an individual consumer’s load will still be removed if that consumer is fully disabled.}(hj΋hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjʊubj)}(h**NOTE**h]j )}(hjߋh]hNOTE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj݋ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjʊubj)}(hwhen a regulator consumer requests to have a regulator disabled then any load that consumer requested no longer counts toward the total requested load. If the regulator is re-enabled then the previously requested load will start counting again.h]hwhen a regulator consumer requests to have a regulator disabled then any load that consumer requested no longer counts toward the total requested load. If the regulator is re-enabled then the previously requested load will start counting again.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjʊubj)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjʊubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjʊubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn#regulator_allow_bypass (C function)c.regulator_allow_bypasshNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hEint regulator_allow_bypass (struct regulator *regulator, bool enable)h]j)}(hDint regulator_allow_bypass(struct regulator *regulator, bool enable)h](j:<)}(hinth]hint}(hjKhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjGhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMDubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhhhjYhMDubj)}(hregulator_allow_bypassh]j)}(hregulator_allow_bypassh]hregulator_allow_bypass}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubah}(h]h ](jjeh"]h$]h&]hhuh1jhjGhhhjYhMDubj;)}(h*(struct regulator *regulator, bool enable)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjmodnameN classnameNj\;j_;)}jb;]je;)}jX;jnsbc.regulator_allow_bypassasbuh1hhjubj)}(h h]h }(hjƌhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjz;)}(hj};h]h*}(hjԌhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjubj)}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubj;)}(h bool enableh](j:<)}(hjgh]hbool}(hjhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(henableh]henable}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubeh}(h]h ]h"]h$]h&]hhuh1j;hjGhhhjYhMDubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjChhhjYhMDubah}(h]j>ah ](jjeh"]h$]h&]jj)jhuh1jxhjYhMDhj@hhubj)}(hhh]j)}(h*allow the regulator to go into bypass modeh]h*allow the regulator to go into bypass mode}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM7hj<hhubah}(h]h ]h"]h$]h&]uh1jhj@hhhjYhMDubeh}(h]h ](j5functioneh"]h$]h&]jj5jjWjjWjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct regulator *regulator`` Regulator to configure ``bool enable`` enable or disable bypass mode **Description** Allow the regulator to go into bypass mode if all other consumers for the regulator also enable bypass mode and the machine constraints allow this. Bypass mode means that the regulator is simply passing the input directly to the output with no regulation. **Return** 0 on success or if changing bypass is not possible, or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hjah]h Parameters}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1j hj_ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM;hj[ubjO)}(hhh](jT)}(h7``struct regulator *regulator`` Regulator to configure h](jZ)}(h``struct regulator *regulator``h]j)}(hjh]hstruct regulator *regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM9hjzubjt)}(hhh]j)}(hRegulator to configureh]hRegulator to configure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhM9hjubah}(h]h ]h"]h$]h&]uh1jshjzubeh}(h]h ]h"]h$]h&]uh1jShjhM9hjwubjT)}(h.``bool enable`` enable or disable bypass mode h](jZ)}(h``bool enable``h]j)}(hjh]h bool enable}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM:hjubjt)}(hhh]j)}(henable or disable bypass modeh]henable or disable bypass mode}(hjҍhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj΍hM:hjύubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShj΍hM:hjwubeh}(h]h ]h"]h$]h&]uh1jNhj[ubj)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM<hj[ubj)}(hXAllow the regulator to go into bypass mode if all other consumers for the regulator also enable bypass mode and the machine constraints allow this. Bypass mode means that the regulator is simply passing the input directly to the output with no regulation.h]hXAllow the regulator to go into bypass mode if all other consumers for the regulator also enable bypass mode and the machine constraints allow this. Bypass mode means that the regulator is simply passing the input directly to the output with no regulation.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM<hj[ubj)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMAhj[ubjO)}(hhh]jT)}(hZ0 on success or if changing bypass is not possible, or a negative error number on failure.h](jZ)}(h60 on success or if changing bypass is not possible, orh]h60 on success or if changing bypass is not possible, or}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMAhj4ubjt)}(hhh]j)}(h#a negative error number on failure.h]h#a negative error number on failure.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMBhjGubah}(h]h ]h"]h$]h&]uh1jshj4ubeh}(h]h ]h"]h$]h&]uh1jShjFhMAhj1ubah}(h]h ]h"]h$]h&]uh1jNhj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn(regulator_register_notifier (C function)c.regulator_register_notifierhNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hXint regulator_register_notifier (struct regulator *regulator, struct notifier_block *nb)h]j)}(hWint regulator_register_notifier(struct regulator *regulator, struct notifier_block *nb)h](j:<)}(hinth]hint}(hjhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(hregulator_register_notifierh]j)}(hregulator_register_notifierh]hregulator_register_notifier}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMubj;)}(h8(struct regulator *regulator, struct notifier_block *nb)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjȎhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjĎubj)}(h h]h }(hjՎhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjĎubh)}(hhh]j)}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjmodnameN classnameNj\;j_;)}jb;]je;)}jX;jsbc.regulator_register_notifierasbuh1hhjĎubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjĎubjz;)}(hj};h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjĎubj)}(h regulatorh]h regulator}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjĎubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubj;)}(hstruct notifier_block *nbh](j)}(hjh]hstruct}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubh)}(hhh]j)}(hnotifier_blockh]hnotifier_block}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjZmodnameN classnameNj\;j_;)}jb;]jc.regulator_register_notifierasbuh1hhj6ubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubjz;)}(hj};h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj6ubj)}(hnbh]hnb}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubeh}(h]h ]h"]h$]h&]hhuh1j;hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhjhMubah}(h]j~ah ](jjeh"]h$]h&]jj)jhuh1jxhjhMhjhhubj)}(hhh]j)}(h!register regulator event notifierh]h!register regulator event notifier}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMwhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjӏjjӏjjjuh1jshhhjBhNhNubj)}(h**Parameters** ``struct regulator *regulator`` regulator source ``struct notifier_block *nb`` notifier block **Description** Register notifier block to receive regulator events. **Return** 0 on success or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hjݏh]h Parameters}(hjߏhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjۏubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM{hj׏ubjO)}(hhh](jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjh]hstruct regulator *regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMxhjubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMxhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhMxhjubjT)}(h-``struct notifier_block *nb`` notifier block h](jZ)}(h``struct notifier_block *nb``h]j)}(hj5h]hstruct notifier_block *nb}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMyhj/ubjt)}(hhh]j)}(hnotifier blockh]hnotifier block}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJhMyhjKubah}(h]h ]h"]h$]h&]uh1jshj/ubeh}(h]h ]h"]h$]h&]uh1jShjJhMyhjubeh}(h]h ]h"]h$]h&]uh1jNhj׏ubj)}(h**Description**h]j )}(hjph]h Description}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjnubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM{hj׏ubj)}(h4Register notifier block to receive regulator events.h]h4Register notifier block to receive regulator events.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM{hj׏ubj)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM}hj׏ubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM}hj׏ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn*regulator_unregister_notifier (C function)c.regulator_unregister_notifierhNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hZint regulator_unregister_notifier (struct regulator *regulator, struct notifier_block *nb)h]j)}(hYint regulator_unregister_notifier(struct regulator *regulator, struct notifier_block *nb)h](j:<)}(hinth]hint}(hjܐhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjؐhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjؐhhhjhMubj)}(hregulator_unregister_notifierh]j)}(hregulator_unregister_notifierh]hregulator_unregister_notifier}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjؐhhhjhMubj;)}(h8(struct regulator *regulator, struct notifier_block *nb)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h regulatorh]h regulator}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetj9modnameN classnameNj\;j_;)}jb;]je;)}jX;jsbc.regulator_unregister_notifierasbuh1hhjubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjz;)}(hj};h]h*}(hjehhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjubj)}(h regulatorh]h regulator}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubj;)}(hstruct notifier_block *nbh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hnotifier_blockh]hnotifier_block}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjmodnameN classnameNj\;j_;)}jb;]jSc.regulator_unregister_notifierasbuh1hhjubj)}(h h]h }(hjǑhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjz;)}(hj};h]h*}(hjՑhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjubj)}(hnbh]hnb}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubeh}(h]h ]h"]h$]h&]hhuh1j;hjؐhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjԐhhhjhMubah}(h]jϐah ](jjeh"]h$]h&]jj)jhuh1jxhjhMhjѐhhubj)}(hhh]j)}(h#unregister regulator event notifierh]h#unregister regulator event notifier}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj hhubah}(h]h ]h"]h$]h&]uh1jhjѐhhhjhMubeh}(h]h ](j5functioneh"]h$]h&]jj5jj$jj$jjjuh1jshhhjBhNhNubj)}(h**Parameters** ``struct regulator *regulator`` regulator source ``struct notifier_block *nb`` notifier block **Description** Unregister regulator event notifier block. **Return** 0 on success or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hj.h]h Parameters}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj,ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj(ubjO)}(hhh](jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjMh]hstruct regulator *regulator}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjGubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbhMhjcubah}(h]h ]h"]h$]h&]uh1jshjGubeh}(h]h ]h"]h$]h&]uh1jShjbhMhjDubjT)}(h-``struct notifier_block *nb`` notifier block h](jZ)}(h``struct notifier_block *nb``h]j)}(hjh]hstruct notifier_block *nb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubjt)}(hhh]j)}(hnotifier blockh]hnotifier block}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhMhjDubeh}(h]h ]h"]h$]h&]uh1jNhj(ubj)}(h**Description**h]j )}(hjh]h Description}(hjÒhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj(ubj)}(h*Unregister regulator event notifier block.h]h*Unregister regulator event notifier block.}(hjגhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj(ubj)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj(ubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj(ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnregulator_bulk_get (C function)c.regulator_bulk_gethNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(heint regulator_bulk_get (struct device *dev, int num_consumers, struct regulator_bulk_data *consumers)h]j)}(hdint regulator_bulk_get(struct device *dev, int num_consumers, struct regulator_bulk_data *consumers)h](j:<)}(hinth]hint}(hj-hhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj)hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhhj;hMubj)}(hregulator_bulk_geth]j)}(hregulator_bulk_geth]hregulator_bulk_get}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubah}(h]h ](jjeh"]h$]h&]hhuh1jhj)hhhj;hMubj;)}(hN(struct device *dev, int num_consumers, struct regulator_bulk_data *consumers)h](j;)}(hstruct device *devh](j)}(hjh]hstruct}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjmodnameN classnameNj\;j_;)}jb;]je;)}jX;jPsbc.regulator_bulk_getasbuh1hhjfubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubjz;)}(hj};h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjfubj)}(hdevh]hdev}(hjÓhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjbubj;)}(hint num_consumersh](j:<)}(hinth]hint}(hjܓhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjؓubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjؓubj)}(h num_consumersh]h num_consumers}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjؓubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjbubj;)}(h%struct regulator_bulk_data *consumersh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(hregulator_bulk_datah]hregulator_bulk_data}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetj1modnameN classnameNj\;j_;)}jb;]jc.regulator_bulk_getasbuh1hhj ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjz;)}(hj};h]h*}(hj[hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj ubj)}(h consumersh]h consumers}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjbubeh}(h]h ]h"]h$]h&]hhuh1j;hj)hhhj;hMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj%hhhj;hMubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jxhj;hMhj"hhubj)}(hhh]j)}(h get multiple regulator consumersh]h get multiple regulator consumers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj"hhhj;hMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjjjjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct device *dev`` Device to supply ``int num_consumers`` Number of consumers to register ``struct regulator_bulk_data *consumers`` Configuration of consumers; clients are stored here. **Description** This helper function allows drivers to get several regulator consumers in one operation. If any of the regulators cannot be acquired then any regulators that were allocated will be freed before returning to the caller. **Return** 0 on success or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubjO)}(hhh](jT)}(h(``struct device *dev`` Device to supply h](jZ)}(h``struct device *dev``h]j)}(hjӔh]hstruct device *dev}(hjՔhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjєubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj͔ubjt)}(hhh]j)}(hDevice to supplyh]hDevice to supply}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jshj͔ubeh}(h]h ]h"]h$]h&]uh1jShjhMhjʔubjT)}(h6``int num_consumers`` Number of consumers to register h](jZ)}(h``int num_consumers``h]j)}(hj h]hint num_consumers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubjt)}(hhh]j)}(hNumber of consumers to registerh]hNumber of consumers to register}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!hMhj"ubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShj!hMhjʔubjT)}(h_``struct regulator_bulk_data *consumers`` Configuration of consumers; clients are stored here. h](jZ)}(h)``struct regulator_bulk_data *consumers``h]j)}(hjEh]h%struct regulator_bulk_data *consumers}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj?ubjt)}(hhh]j)}(h4Configuration of consumers; clients are stored here.h]h4Configuration of consumers; clients are stored here.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZhMhj[ubah}(h]h ]h"]h$]h&]uh1jshj?ubeh}(h]h ]h"]h$]h&]uh1jShjZhMhjʔubeh}(h]h ]h"]h$]h&]uh1jNhjubj)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj~ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(hThis helper function allows drivers to get several regulator consumers in one operation. If any of the regulators cannot be acquired then any regulators that were allocated will be freed before returning to the caller.h]hThis helper function allows drivers to get several regulator consumers in one operation. If any of the regulators cannot be acquired then any regulators that were allocated will be freed before returning to the caller.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn"regulator_bulk_enable (C function)c.regulator_bulk_enablehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hTint regulator_bulk_enable (int num_consumers, struct regulator_bulk_data *consumers)h]j)}(hSint regulator_bulk_enable(int num_consumers, struct regulator_bulk_data *consumers)h](j:<)}(hinth]hint}(hjhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(hregulator_bulk_enableh]j)}(hregulator_bulk_enableh]hregulator_bulk_enable}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMubj;)}(h:(int num_consumers, struct regulator_bulk_data *consumers)h](j;)}(hint num_consumersh](j:<)}(hinth]hint}(hj)hhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj%ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(h num_consumersh]h num_consumers}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj!ubj;)}(h%struct regulator_bulk_data *consumersh](j)}(hjh]hstruct}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubh)}(hhh]j)}(hregulator_bulk_datah]hregulator_bulk_data}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetj~modnameN classnameNj\;j_;)}jb;]je;)}jX;jsbc.regulator_bulk_enableasbuh1hhjZubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubjz;)}(hj};h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjZubj)}(h consumersh]h consumers}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj!ubeh}(h]h ]h"]h$]h&]hhuh1j;hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhjhMubah}(h]jߕah ](jjeh"]h$]h&]jj)jhuh1jxhjhMhjhhubj)}(hhh]j)}(h#enable multiple regulator consumersh]h#enable multiple regulator consumers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjޖhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjjjjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``int num_consumers`` Number of consumers ``struct regulator_bulk_data *consumers`` Consumer data; clients are stored here. **Description** This convenience API allows consumers to enable multiple regulator clients in a single API call. If any consumers cannot be enabled then any others that were enabled will be disabled again prior to return. **Return** 0 on success or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubjO)}(hhh](jT)}(h*``int num_consumers`` Number of consumers h](jZ)}(h``int num_consumers``h]j)}(hj"h]hint num_consumers}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubjt)}(hhh]j)}(hNumber of consumersh]hNumber of consumers}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7hMhj8ubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShj7hMhjubjT)}(hR``struct regulator_bulk_data *consumers`` Consumer data; clients are stored here. h](jZ)}(h)``struct regulator_bulk_data *consumers``h]j)}(hj[h]h%struct regulator_bulk_data *consumers}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjUubjt)}(hhh]j)}(h'Consumer data; clients are stored here.h]h'Consumer data; clients are stored here.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjphMhjqubah}(h]h ]h"]h$]h&]uh1jshjUubeh}(h]h ]h"]h$]h&]uh1jShjphMhjubeh}(h]h ]h"]h$]h&]uh1jNhjubj)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(hThis convenience API allows consumers to enable multiple regulator clients in a single API call. If any consumers cannot be enabled then any others that were enabled will be disabled again prior to return.h]hThis convenience API allows consumers to enable multiple regulator clients in a single API call. If any consumers cannot be enabled then any others that were enabled will be disabled again prior to return.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjӗhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn#regulator_bulk_disable (C function)c.regulator_bulk_disablehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hUint regulator_bulk_disable (int num_consumers, struct regulator_bulk_data *consumers)h]j)}(hTint regulator_bulk_disable(int num_consumers, struct regulator_bulk_data *consumers)h](j:<)}(hinth]hint}(hjhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM4ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM4ubj)}(hregulator_bulk_disableh]j)}(hregulator_bulk_disableh]hregulator_bulk_disable}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhM4ubj;)}(h:(int num_consumers, struct regulator_bulk_data *consumers)h](j;)}(hint num_consumersh](j:<)}(hinth]hint}(hj?hhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj;ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj)}(h num_consumersh]h num_consumers}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj7ubj;)}(h%struct regulator_bulk_data *consumersh](j)}(hjh]hstruct}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubh)}(hhh]j)}(hregulator_bulk_datah]hregulator_bulk_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjmodnameN classnameNj\;j_;)}jb;]je;)}jX;j%sbc.regulator_bulk_disableasbuh1hhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubjz;)}(hj};h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjpubj)}(h consumersh]h consumers}(hj͘hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj7ubeh}(h]h ]h"]h$]h&]hhuh1j;hjhhhjhM4ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhjhM4ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jxhjhM4hjhhubj)}(hhh]j)}(h$disable multiple regulator consumersh]h$disable multiple regulator consumers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM(hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM4ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjjjjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``int num_consumers`` Number of consumers ``struct regulator_bulk_data *consumers`` Consumer data; clients are stored here. **Description** This convenience API allows consumers to disable multiple regulator clients in a single API call. If any consumers cannot be disabled then any others that were disabled will be enabled again prior to return. **Return** 0 on success or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM,hjubjO)}(hhh](jT)}(h*``int num_consumers`` Number of consumers h](jZ)}(h``int num_consumers``h]j)}(hj8h]hint num_consumers}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM*hj2ubjt)}(hhh]j)}(hNumber of consumersh]hNumber of consumers}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMhM*hjNubah}(h]h ]h"]h$]h&]uh1jshj2ubeh}(h]h ]h"]h$]h&]uh1jShjMhM*hj/ubjT)}(hR``struct regulator_bulk_data *consumers`` Consumer data; clients are stored here. h](jZ)}(h)``struct regulator_bulk_data *consumers``h]j)}(hjqh]h%struct regulator_bulk_data *consumers}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM+hjkubjt)}(hhh]j)}(h'Consumer data; clients are stored here.h]h'Consumer data; clients are stored here.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhM+hjubah}(h]h ]h"]h$]h&]uh1jshjkubeh}(h]h ]h"]h$]h&]uh1jShjhM+hj/ubeh}(h]h ]h"]h$]h&]uh1jNhjubj)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM-hjubj)}(hThis convenience API allows consumers to disable multiple regulator clients in a single API call. If any consumers cannot be disabled then any others that were disabled will be enabled again prior to return.h]hThis convenience API allows consumers to disable multiple regulator clients in a single API call. If any consumers cannot be disabled then any others that were disabled will be enabled again prior to return.}(hj™hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM-hjubj)}(h **Return**h]j )}(hjәh]hReturn}(hjՙhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjљubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM2hjubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM2hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn)regulator_bulk_force_disable (C function)c.regulator_bulk_force_disablehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h[int regulator_bulk_force_disable (int num_consumers, struct regulator_bulk_data *consumers)h]j)}(hZint regulator_bulk_force_disable(int num_consumers, struct regulator_bulk_data *consumers)h](j:<)}(hinth]hint}(hjhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM^ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj&hM^ubj)}(hregulator_bulk_force_disableh]j)}(hregulator_bulk_force_disableh]hregulator_bulk_force_disable}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhj&hM^ubj;)}(h:(int num_consumers, struct regulator_bulk_data *consumers)h](j;)}(hint num_consumersh](j:<)}(hinth]hint}(hjUhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjQubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj)}(h num_consumersh]h num_consumers}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjMubj;)}(h%struct regulator_bulk_data *consumersh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hregulator_bulk_datah]hregulator_bulk_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjmodnameN classnameNj\;j_;)}jb;]je;)}jX;j;sbc.regulator_bulk_force_disableasbuh1hhjubj)}(h h]h }(hjȚhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjz;)}(hj};h]h*}(hj֚hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjubj)}(h consumersh]h consumers}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjMubeh}(h]h ]h"]h$]h&]hhuh1j;hjhhhj&hM^ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhj&hM^ubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jxhj&hM^hj hhubj)}(hhh]j)}(h*force disable multiple regulator consumersh]h*force disable multiple regulator consumers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMPhj hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj&hM^ubeh}(h]h ](j5functioneh"]h$]h&]jj5jj%jj%jjjuh1jshhhjBhNhNubj)}(hX\**Parameters** ``int num_consumers`` Number of consumers ``struct regulator_bulk_data *consumers`` Consumer data; clients are stored here. **Description** This convenience API allows consumers to forcibly disable multiple regulator clients in a single API call. **NOTE** This should be used for situations when device damage will likely occur if the regulators are not disabled (e.g. over temp). Although regulator_force_disable function call for some consumers can return error numbers, the function is called for all consumers. **Return** 0 on success or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hj/h]h Parameters}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj-ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMThj)ubjO)}(hhh](jT)}(h*``int num_consumers`` Number of consumers h](jZ)}(h``int num_consumers``h]j)}(hjNh]hint num_consumers}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMRhjHubjt)}(hhh]j)}(hNumber of consumersh]hNumber of consumers}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjchMRhjdubah}(h]h ]h"]h$]h&]uh1jshjHubeh}(h]h ]h"]h$]h&]uh1jShjchMRhjEubjT)}(hR``struct regulator_bulk_data *consumers`` Consumer data; clients are stored here. h](jZ)}(h)``struct regulator_bulk_data *consumers``h]j)}(hjh]h%struct regulator_bulk_data *consumers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMShjubjt)}(hhh]j)}(h'Consumer data; clients are stored here.h]h'Consumer data; clients are stored here.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMShjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhMShjEubeh}(h]h ]h"]h$]h&]uh1jNhj)ubj)}(h**Description**h]j )}(hj›h]h Description}(hjěhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMUhj)ubj)}(hjThis convenience API allows consumers to forcibly disable multiple regulator clients in a single API call.h]hjThis convenience API allows consumers to forcibly disable multiple regulator clients in a single API call.}(hj؛hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMUhj)ubj)}(h**NOTE**h]j )}(hjh]hNOTE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMXhj)ubj)}(hXThis should be used for situations when device damage will likely occur if the regulators are not disabled (e.g. over temp). Although regulator_force_disable function call for some consumers can return error numbers, the function is called for all consumers.h]hXThis should be used for situations when device damage will likely occur if the regulators are not disabled (e.g. over temp). Although regulator_force_disable function call for some consumers can return error numbers, the function is called for all consumers.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMWhj)ubj)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM\hj)ubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM\hj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn regulator_bulk_free (C function)c.regulator_bulk_freehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hSvoid regulator_bulk_free (int num_consumers, struct regulator_bulk_data *consumers)h]j)}(hRvoid regulator_bulk_free(int num_consumers, struct regulator_bulk_data *consumers)h](j:<)}(hvoidh]hvoid}(hjUhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjQhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMzubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQhhhjchMzubj)}(hregulator_bulk_freeh]j)}(hregulator_bulk_freeh]hregulator_bulk_free}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubah}(h]h ](jjeh"]h$]h&]hhuh1jhjQhhhjchMzubj;)}(h:(int num_consumers, struct regulator_bulk_data *consumers)h](j;)}(hint num_consumersh](j:<)}(hinth]hint}(hjhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h num_consumersh]h num_consumers}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubj;)}(h%struct regulator_bulk_data *consumersh](j)}(hjh]hstruct}(hjǜhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjÜubj)}(h h]h }(hjԜhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjÜubh)}(hhh]j)}(hregulator_bulk_datah]hregulator_bulk_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjmodnameN classnameNj\;j_;)}jb;]je;)}jX;jxsbc.regulator_bulk_freeasbuh1hhjÜubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjÜubjz;)}(hj};h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjÜubj)}(h consumersh]h consumers}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjÜubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubeh}(h]h ]h"]h$]h&]hhuh1j;hjQhhhjchMzubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjMhhhjchMzubah}(h]jHah ](jjeh"]h$]h&]jj)jhuh1jxhjchMzhjJhhubj)}(hhh]j)}(h!free multiple regulator consumersh]h!free multiple regulator consumers}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMrhjGhhubah}(h]h ]h"]h$]h&]uh1jhjJhhhjchMzubeh}(h]h ](j5functioneh"]h$]h&]jj5jjbjjbjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``int num_consumers`` Number of consumers ``struct regulator_bulk_data *consumers`` Consumer data; clients are stored here. **Description** This convenience API allows consumers to free multiple regulator clients in a single API call.h](j)}(h**Parameters**h]j )}(hjlh]h Parameters}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMvhjfubjO)}(hhh](jT)}(h*``int num_consumers`` Number of consumers h](jZ)}(h``int num_consumers``h]j)}(hjh]hint num_consumers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMthjubjt)}(hhh]j)}(hNumber of consumersh]hNumber of consumers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMthjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhMthjubjT)}(hR``struct regulator_bulk_data *consumers`` Consumer data; clients are stored here. h](jZ)}(h)``struct regulator_bulk_data *consumers``h]j)}(hjĝh]h%struct regulator_bulk_data *consumers}(hjƝhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMuhjubjt)}(hhh]j)}(h'Consumer data; clients are stored here.h]h'Consumer data; clients are stored here.}(hjݝhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjٝhMuhjڝubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjٝhMuhjubeh}(h]h ]h"]h$]h&]uh1jNhjfubj)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMwhjfubj)}(h^This convenience API allows consumers to free multiple regulator clients in a single API call.h]h^This convenience API allows consumers to free multiple regulator clients in a single API call.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMwhjfubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn*regulator_notifier_call_chain (C function)c.regulator_notifier_call_chainhNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h_int regulator_notifier_call_chain (struct regulator_dev *rdev, unsigned long event, void *data)h]j)}(h^int regulator_notifier_call_chain(struct regulator_dev *rdev, unsigned long event, void *data)h](j:<)}(hinth]hint}(hjDhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj@hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhhjRhMubj)}(hregulator_notifier_call_chainh]j)}(hregulator_notifier_call_chainh]hregulator_notifier_call_chain}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubah}(h]h ](jjeh"]h$]h&]hhuh1jhj@hhhjRhMubj;)}(h=(struct regulator_dev *rdev, unsigned long event, void *data)h](j;)}(hstruct regulator_dev *rdevh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubh)}(hhh]j)}(h regulator_devh]h regulator_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjmodnameN classnameNj\;j_;)}jb;]je;)}jX;jgsbc.regulator_notifier_call_chainasbuh1hhj}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubjz;)}(hj};h]h*}(hj͞hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj}ubj)}(hrdevh]hrdev}(hjڞhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjyubj;)}(hunsigned long eventh](j:<)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj:<)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(heventh]hevent}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjyubj;)}(h void *datah](j:<)}(hvoidh]hvoid}(hjDhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj@ubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubjz;)}(hj};h]h*}(hj`hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj@ubj)}(hdatah]hdata}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjyubeh}(h]h ]h"]h$]h&]hhuh1j;hj@hhhjRhMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj<hhhjRhMubah}(h]j7ah ](jjeh"]h$]h&]jj)jhuh1jxhjRhMhj9hhubj)}(hhh]j)}(hcall regulator event notifierh]hcall regulator event notifier}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj9hhhjRhMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjjjjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct regulator_dev *rdev`` regulator source ``unsigned long event`` notifier block ``void *data`` callback-specific data. **Description** Called by regulator drivers to notify clients a regulator event has occurred. **Return** ``NOTIFY_DONE``.h](j)}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubjO)}(hhh](jT)}(h0``struct regulator_dev *rdev`` regulator source h](jZ)}(h``struct regulator_dev *rdev``h]j)}(hj؟h]hstruct regulator_dev *rdev}(hjڟhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj֟ubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjҟubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jshjҟubeh}(h]h ]h"]h$]h&]uh1jShjhMhjϟubjT)}(h'``unsigned long event`` notifier block h](jZ)}(h``unsigned long event``h]j)}(hjh]hunsigned long event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj ubjt)}(hhh]j)}(hnotifier blockh]hnotifier block}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&hMhj'ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj&hMhjϟubjT)}(h'``void *data`` callback-specific data. h](jZ)}(h``void *data``h]j)}(hjJh]h void *data}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjDubjt)}(hhh]j)}(hcallback-specific data.h]hcallback-specific data.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_hMhj`ubah}(h]h ]h"]h$]h&]uh1jshjDubeh}(h]h ]h"]h$]h&]uh1jShj_hMhjϟubeh}(h]h ]h"]h$]h&]uh1jNhjubj)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(hMCalled by regulator drivers to notify clients a regulator event has occurred.h]hMCalled by regulator drivers to notify clients a regulator event has occurred.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(h``NOTIFY_DONE``.h](j)}(h``NOTIFY_DONE``h]h NOTIFY_DONE}(hjƠhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn%regulator_mode_to_status (C function)c.regulator_mode_to_statushNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h0int regulator_mode_to_status (unsigned int mode)h]j)}(h/int regulator_mode_to_status(unsigned int mode)h](j:<)}(hinth]hint}(hjhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj hMubj)}(hregulator_mode_to_statush]j)}(hregulator_mode_to_statush]hregulator_mode_to_status}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhj hMubj;)}(h(unsigned int mode)h]j;)}(hunsigned int modeh](j:<)}(hunsignedh]hunsigned}(hj<hhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj8ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj:<)}(hinth]hint}(hjXhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hj8ubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj)}(hmodeh]hmode}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj4ubah}(h]h ]h"]h$]h&]hhuh1j;hjhhhj hMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhj hMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jxhj hMhjhhubj)}(hhh]j)}(h&convert a regulator mode into a statush]h&convert a regulator mode into a status}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj hMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjjjjjjuh1jshhhjBhNhNubj)}(h**Parameters** ``unsigned int mode`` Mode to convert **Description** Convert a regulator mode into a status. **Return** ``REGULATOR_STATUS_*`` value corresponding to given mode.h](j)}(h**Parameters**h]j )}(hjh]h Parameters}(hj¡hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubjO)}(hhh]jT)}(h&``unsigned int mode`` Mode to convert h](jZ)}(h``unsigned int mode``h]j)}(hjߡh]hunsigned int mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjݡubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj١ubjt)}(hhh]j)}(hMode to converth]hMode to convert}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jshj١ubeh}(h]h ]h"]h$]h&]uh1jShjhMhj֡ubah}(h]h ]h"]h$]h&]uh1jNhjubj)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(h'Convert a regulator mode into a status.h]h'Convert a regulator mode into a status.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(h **Return**h]j )}(hjAh]hReturn}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1j hj?ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(h9``REGULATOR_STATUS_*`` value corresponding to given mode.h](j)}(h``REGULATOR_STATUS_*``h]hREGULATOR_STATUS_*}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubh# value corresponding to given mode.}(hjWhhhNhNubeh}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnregulator_register (C function)c.regulator_registerhNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hstruct regulator_dev * regulator_register (struct device *dev, const struct regulator_desc *regulator_desc, const struct regulator_config *cfg)h]j)}(hstruct regulator_dev *regulator_register(struct device *dev, const struct regulator_desc *regulator_desc, const struct regulator_config *cfg)h](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM[ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM[ubh)}(hhh]j)}(h regulator_devh]h regulator_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjmodnameN classnameNj\;j_;)}jb;]je;)}jX;regulator_registersbc.regulator_registerasbuh1hhjhhhjhM[ubj)}(h h]h }(hjԢhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM[ubjz;)}(hj};h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjhhhjhM[ubj)}(hregulator_registerh]j)}(hjѢh]hregulator_register}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhM[ubj;)}(he(struct device *dev, const struct regulator_desc *regulator_desc, const struct regulator_config *cfg)h](j;)}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(hdeviceh]hdevice}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetj.modnameN classnameNj\;j_;)}jb;]jϢc.regulator_registerasbuh1hhj ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjz;)}(hj};h]h*}(hjXhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj ubj)}(hdevh]hdev}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubj;)}(h+const struct regulator_desc *regulator_desch](j)}(hj<h]hconst}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubh)}(hhh]j)}(hregulator_desch]hregulator_desc}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjmodnameN classnameNj\;j_;)}jb;]jϢc.regulator_registerasbuh1hhjzubj)}(h h]h }(hjգhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubjz;)}(hj};h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjzubj)}(hregulator_desch]hregulator_desc}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubj;)}(h"const struct regulator_config *cfgh](j)}(hj<h]hconst}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]hstruct}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hregulator_configh]hregulator_config}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjDmodnameN classnameNj\;j_;)}jb;]jϢc.regulator_registerasbuh1hhjubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjz;)}(hj};h]h*}(hjnhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjubj)}(hcfgh]hcfg}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubeh}(h]h ]h"]h$]h&]hhuh1j;hjhhhjhM[ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhjhM[ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jxhjhM[hjhhubj)}(hhh]j)}(hregister regulatorh]hregister regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMQhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM[ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjjjjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct device *dev`` the device that drive the regulator ``const struct regulator_desc *regulator_desc`` regulator to register ``const struct regulator_config *cfg`` runtime configuration for regulator **Description** Called by regulator drivers to register a regulator. **Return** Pointer to a valid :c:type:`struct regulator_dev ` on success or an ERR_PTR() encoded negative error number on failure.h](j)}(h**Parameters**h]j )}(hjǤh]h Parameters}(hjɤhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjŤubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMUhjubjO)}(hhh](jT)}(h;``struct device *dev`` the device that drive the regulator h](jZ)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMRhjubjt)}(hhh]j)}(h#the device that drive the regulatorh]h#the device that drive the regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMRhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhMRhjݤubjT)}(hF``const struct regulator_desc *regulator_desc`` regulator to register h](jZ)}(h/``const struct regulator_desc *regulator_desc``h]j)}(hjh]h+const struct regulator_desc *regulator_desc}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMShjubjt)}(hhh]j)}(hregulator to registerh]hregulator to register}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4hMShj5ubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShj4hMShjݤubjT)}(hK``const struct regulator_config *cfg`` runtime configuration for regulator h](jZ)}(h&``const struct regulator_config *cfg``h]j)}(hjXh]h"const struct regulator_config *cfg}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMThjRubjt)}(hhh]j)}(h#runtime configuration for regulatorh]h#runtime configuration for regulator}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmhMThjnubah}(h]h ]h"]h$]h&]uh1jshjRubeh}(h]h ]h"]h$]h&]uh1jShjmhMThjݤubeh}(h]h ]h"]h$]h&]uh1jNhjubj)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMVhjubj)}(h4Called by regulator drivers to register a regulator.h]h4Called by regulator drivers to register a regulator.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMVhjubj)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMXhjubjO)}(hhh]jT)}(hPointer to a valid :c:type:`struct regulator_dev ` on success or an ERR_PTR() encoded negative error number on failure.h](jZ)}(hOPointer to a valid :c:type:`struct regulator_dev ` on success orh](hPointer to a valid }(hjץhhhNhNubh)}(h.:c:type:`struct regulator_dev `h]j)}(hjh]hstruct regulator_dev}(hjhhhNhNubah}(h]h ](j4j5c-typeeh"]h$]h&]uh1jhjߥubah}(h]h ]h"]h$]h&]refdocjA refdomainj5reftypetype refexplicitrefwarnj\;j=jG regulator_devuh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMXhjץubh on success or}(hjץhhhNhNubeh}(h]h ]h"]h$]h&]uh1jYhjhMXhjӥubjt)}(hhh]j)}(h6an ERR_PTR() encoded negative error number on failure.h]h6an ERR_PTR() encoded negative error number on failure.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMYhj ubah}(h]h ]h"]h$]h&]uh1jshjӥubeh}(h]h ]h"]h$]h&]uh1jShjhMXhjХubah}(h]h ]h"]h$]h&]uh1jNhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn!regulator_unregister (C function)c.regulator_unregisterhNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h6void regulator_unregister (struct regulator_dev *rdev)h]j)}(h5void regulator_unregister(struct regulator_dev *rdev)h](j:<)}(hvoidh]hvoid}(hjMhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjIhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMbubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIhhhj[hMbubj)}(hregulator_unregisterh]j)}(hregulator_unregisterh]hregulator_unregister}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjIhhhj[hMbubj;)}(h(struct regulator_dev *rdev)h]j;)}(hstruct regulator_dev *rdevh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h regulator_devh]h regulator_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjmodnameN classnameNj\;j_;)}jb;]je;)}jX;jpsbc.regulator_unregisterasbuh1hhjubj)}(h h]h }(hjȦhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjz;)}(hj};h]h*}(hj֦hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjubj)}(hrdevh]hrdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubah}(h]h ]h"]h$]h&]hhuh1j;hjIhhhj[hMbubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjEhhhj[hMbubah}(h]j@ah ](jjeh"]h$]h&]jj)jhuh1jxhj[hMbhjBhhubj)}(hhh]j)}(hunregister regulatorh]hunregister regulator}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM]hj hhubah}(h]h ]h"]h$]h&]uh1jhjBhhhj[hMbubeh}(h]h ](j5functioneh"]h$]h&]jj5jj%jj%jjjuh1jshhhjBhNhNubj)}(h**Parameters** ``struct regulator_dev *rdev`` regulator to unregister **Description** Called by regulator drivers to unregister a regulator.h](j)}(h**Parameters**h]j )}(hj/h]h Parameters}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj-ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMahj)ubjO)}(hhh]jT)}(h7``struct regulator_dev *rdev`` regulator to unregister h](jZ)}(h``struct regulator_dev *rdev``h]j)}(hjNh]hstruct regulator_dev *rdev}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM^hjHubjt)}(hhh]j)}(hregulator to unregisterh]hregulator to unregister}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjchM^hjdubah}(h]h ]h"]h$]h&]uh1jshjHubeh}(h]h ]h"]h$]h&]uh1jShjchM^hjEubah}(h]h ]h"]h$]h&]uh1jNhj)ubj)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM`hj)ubj)}(h6Called by regulator drivers to unregister a regulator.h]h6Called by regulator drivers to unregister a regulator.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM`hj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn+regulator_has_full_constraints (C function) c.regulator_has_full_constraintshNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h*void regulator_has_full_constraints (void)h]j)}(h)void regulator_has_full_constraints(void)h](j:<)}(hvoidh]hvoid}(hjΧhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjʧhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjݧhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjʧhhhjܧhMubj)}(hregulator_has_full_constraintsh]j)}(hregulator_has_full_constraintsh]hregulator_has_full_constraints}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjʧhhhjܧhMubj;)}(h(void)h]j;)}(hvoidh]j:<)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjubah}(h]h ]h"]h$]h&]noemphhhuh1j;hjubah}(h]h ]h"]h$]h&]hhuh1j;hjʧhhhjܧhMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjƧhhhjܧhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jxhjܧhMhjçhhubj)}(hhh]j)}(h*the system has fully specified constraintsh]h*the system has fully specified constraints}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj2hhubah}(h]h ]h"]h$]h&]uh1jhjçhhhjܧhMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjMjjMjjjuh1jshhhjBhNhNubj)}(hXh**Parameters** ``void`` no arguments **Description** Calling this function will cause the regulator API to disable all regulators which have a zero use count and don't have an always_on constraint in a late_initcall. The intention is that this will become the default behaviour in a future kernel release so users are encouraged to use this facility now.h](j)}(h**Parameters**h]j )}(hjWh]h Parameters}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjUubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjQubjO)}(hhh]jT)}(h``void`` no arguments h](jZ)}(h``void``h]j)}(hjvh]hvoid}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjpubjt)}(hhh]j)}(h no argumentsh]h no arguments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jshjpubeh}(h]h ]h"]h$]h&]uh1jShjhMhjmubah}(h]h ]h"]h$]h&]uh1jNhjQubj)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjQubj)}(hCalling this function will cause the regulator API to disable all regulators which have a zero use count and don't have an always_on constraint in a late_initcall.h]hCalling this function will cause the regulator API to disable all regulators which have a zero use count and don’t have an always_on constraint in a late_initcall.}(hjǨhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjQubj)}(hThe intention is that this will become the default behaviour in a future kernel release so users are encouraged to use this facility now.h]hThe intention is that this will become the default behaviour in a future kernel release so users are encouraged to use this facility now.}(hj֨hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjQubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnrdev_get_drvdata (C function)c.rdev_get_drvdatahNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h4void * rdev_get_drvdata (struct regulator_dev *rdev)h]j)}(h2void *rdev_get_drvdata(struct regulator_dev *rdev)h](j:<)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubjz;)}(hj};h]h*}(hj"hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjhhhjhMubj)}(hrdev_get_drvdatah]j)}(hrdev_get_drvdatah]hrdev_get_drvdata}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMubj;)}(h(struct regulator_dev *rdev)h]j;)}(hstruct regulator_dev *rdevh](j)}(hjh]hstruct}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubh)}(hhh]j)}(h regulator_devh]h regulator_dev}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjomodnameN classnameNj\;j_;)}jb;]je;)}jX;j5sbc.rdev_get_drvdataasbuh1hhjKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubjz;)}(hj};h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjKubj)}(hrdevh]hrdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjGubah}(h]h ]h"]h$]h&]hhuh1j;hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jxhjhMhjhhubj)}(hhh]j)}(hget rdev regulator driver datah]hget rdev regulator driver data}(hjҩhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjϩhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjjjjjjuh1jshhhjBhNhNubj)}(h**Parameters** ``struct regulator_dev *rdev`` regulator **Description** Get rdev regulator driver private data. This call can be used in the regulator driver context. **Return** Pointer to regulator driver private data.h](j)}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubjO)}(hhh]jT)}(h)``struct regulator_dev *rdev`` regulator h](jZ)}(h``struct regulator_dev *rdev``h]j)}(hjh]hstruct regulator_dev *rdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj ubjt)}(hhh]j)}(h regulatorh]h regulator}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(hMhj)ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj(hMhj ubah}(h]h ]h"]h$]h&]uh1jNhjubj)}(h**Description**h]j )}(hjNh]h Description}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjLubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(h^Get rdev regulator driver private data. This call can be used in the regulator driver context.h]h^Get rdev regulator driver private data. This call can be used in the regulator driver context.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(h **Return**h]j )}(hjuh]hReturn}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjsubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(h)Pointer to regulator driver private data.h]h)Pointer to regulator driver private data.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn"regulator_get_drvdata (C function)c.regulator_get_drvdatahNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h:void * regulator_get_drvdata (struct regulator *regulator)h]j)}(h8void *regulator_get_drvdata(struct regulator *regulator)h](j:<)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjɪhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjȪhMubjz;)}(hj};h]h*}(hjתhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjhhhjȪhMubj)}(hregulator_get_drvdatah]j)}(hregulator_get_drvdatah]hregulator_get_drvdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjȪhMubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h regulatorh]h regulator}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetj$modnameN classnameNj\;j_;)}jb;]je;)}jX;jsbc.regulator_get_drvdataasbuh1hhjubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjz;)}(hj};h]h*}(hjPhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjubj)}(h regulatorh]h regulator}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubah}(h]h ]h"]h$]h&]hhuh1j;hjhhhjȪhMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhjȪhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jxhjȪhMhjhhubj)}(hhh]j)}(hget regulator driver datah]hget regulator driver data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjȪhMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjjjjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct regulator *regulator`` regulator **Description** Get regulator driver private data. This call can be used in the consumer driver context when non API regulator specific functions need to be called. **Return** Pointer to regulator driver private data.h](j)}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubjO)}(hhh]jT)}(h*``struct regulator *regulator`` regulator h](jZ)}(h``struct regulator *regulator``h]j)}(hjȫh]hstruct regulator *regulator}(hjʫhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjƫubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj«ubjt)}(hhh]j)}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjݫhMhjޫubah}(h]h ]h"]h$]h&]uh1jshj«ubeh}(h]h ]h"]h$]h&]uh1jShjݫhMhjubah}(h]h ]h"]h$]h&]uh1jNhjubj)}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(hGet regulator driver private data. This call can be used in the consumer driver context when non API regulator specific functions need to be called.h]hGet regulator driver private data. This call can be used in the consumer driver context when non API regulator specific functions need to be called.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(h **Return**h]j )}(hj*h]hReturn}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj(ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(h)Pointer to regulator driver private data.h]h)Pointer to regulator driver private data.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn"regulator_set_drvdata (C function)c.regulator_set_drvdatahNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hDvoid regulator_set_drvdata (struct regulator *regulator, void *data)h]j)}(hCvoid regulator_set_drvdata(struct regulator *regulator, void *data)h](j:<)}(hvoidh]hvoid}(hjohhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjkhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkhhhj}hMubj)}(hregulator_set_drvdatah]j)}(hregulator_set_drvdatah]hregulator_set_drvdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjkhhhj}hMubj;)}(h)(struct regulator *regulator, void *data)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h regulatorh]h regulator}(hjʬhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjǬubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetj̬modnameN classnameNj\;j_;)}jb;]je;)}jX;jsbc.regulator_set_drvdataasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjz;)}(hj};h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjubj)}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubj;)}(h void *datah](j:<)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjz;)}(hj};h]h*}(hj:hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hjubj)}(hdatah]hdata}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubeh}(h]h ]h"]h$]h&]hhuh1j;hjkhhhj}hMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjghhhj}hMubah}(h]jbah ](jjeh"]h$]h&]jj)jhuh1jxhj}hMhjdhhubj)}(hhh]j)}(hset regulator driver datah]hset regulator driver data}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjnhhubah}(h]h ]h"]h$]h&]uh1jhjdhhhj}hMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjjjjjjuh1jshhhjBhNhNubj)}(hR**Parameters** ``struct regulator *regulator`` regulator ``void *data`` datah](j)}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubjO)}(hhh](jT)}(h*``struct regulator *regulator`` regulator h](jZ)}(h``struct regulator *regulator``h]j)}(hjh]hstruct regulator *regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubjt)}(hhh]j)}(h regulatorh]h regulator}(hj˭hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjǭhMhjȭubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjǭhMhjubjT)}(h``void *data`` datah](jZ)}(h``void *data``h]j)}(hjh]h void *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubjt)}(hhh]j)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhMhjubeh}(h]h ]h"]h$]h&]uh1jNhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jnrdev_get_id (C function) c.rdev_get_idhNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h,int rdev_get_id (struct regulator_dev *rdev)h]j)}(h+int rdev_get_id(struct regulator_dev *rdev)h](j:<)}(hinth]hint}(hjEhhhNhNubah}(h]h ]jF<ah"]h$]h&]uh1j9<hjAhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAhhhjShMubj)}(h rdev_get_idh]j)}(h rdev_get_idh]h rdev_get_id}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubah}(h]h ](jjeh"]h$]h&]hhuh1jhjAhhhjShMubj;)}(h(struct regulator_dev *rdev)h]j;)}(hstruct regulator_dev *rdevh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubh)}(hhh]j)}(h regulator_devh]h regulator_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj5reftypejX; reftargetjmodnameN classnameNj\;j_;)}jb;]je;)}jX;jhsb c.rdev_get_idasbuh1hhj~ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubjz;)}(hj};h]h*}(hjήhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1jy;hj~ubj)}(hrdevh]hrdev}(hjۮhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjzubah}(h]h ]h"]h$]h&]hhuh1j;hjAhhhjShMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj=hhhjShMubah}(h]j8ah ](jjeh"]h$]h&]jj)jhuh1jxhjShMhj:hhubj)}(hhh]j)}(hget regulator IDh]hget regulator ID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj:hhhjShMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjjjjjjuh1jshhhjBhNhNubj)}(hb**Parameters** ``struct regulator_dev *rdev`` regulator **Return** Regulator ID for **rdev**.h](j)}(h**Parameters**h]j )}(hj'h]h Parameters}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj%ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj!ubjO)}(hhh]jT)}(h)``struct regulator_dev *rdev`` regulator h](jZ)}(h``struct regulator_dev *rdev``h]j)}(hjFh]hstruct regulator_dev *rdev}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj@ubjt)}(hhh]j)}(h regulatorh]h regulator}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[hMhj\ubah}(h]h ]h"]h$]h&]uh1jshj@ubeh}(h]h ]h"]h$]h&]uh1jShj[hMhj=ubah}(h]h ]h"]h$]h&]uh1jNhj!ubj)}(h **Return**h]j )}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj!ubj)}(hRegulator ID for **rdev**.h](hRegulator ID for }(hjhhhNhNubj )}(h**rdev**h]hrdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj!ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubeh}(h] api-referenceah ]h"] api referenceah$]h&]uh1hhhhhhhhKubeh}(h]!voltage-and-current-regulator-apiah ]h"]!voltage and current regulator apiah$]h&]uh1hhhhhhhhK ubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j̯jɯjxjujpjmjVjSjjj'j$jNjKjjj?j<jjj7j4jįju nametypes}(j̯jxjpjVjj'jNjj?jj7jįuh}(jɯhjujcjmjjSj{jj j$jjKj*jjYj<jjjj4jjjBjpjzjj#jjj j jljqjjjjj"j"j2j2jO4jT4j6j6j7j7j;j;j=j=j@j@jCjCj0Ej5EjHjHjJjJjOjOjQjQj}SjSjLUjQUj/Wj4WjlYjqYj>[jC[j\j\j\_ja_jajajdjdj gj%gj6ij;ijjjkjmjmjQpjVpjrjrjujujHwjMwjxjxj{j{j|}j}j~jjj jjjljqjmjrjjj>jCj~jjϐjԐj j%jߕjjjj jjHjMj7j<jjjjj@jEjjƧjjjjjbjgj8j=u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.