$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.}(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. ``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)}(h``set_over_current_protection`` Support enabling of and setting limits for over current situation detection. Detection can be configured for three levels of severity. 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.hhKXhjubjt)}(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.hhKVhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKXhjubjT)}(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)}(hj#h]hset_under_voltage_protection}(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.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.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKihj9ubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShj8hKkhjubjT)}(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}(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.hhKnhjWubjt)}(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.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKlhjsubah}(h]h ]h"]h$]h&]uh1jshjWubeh}(h]h ]h"]h$]h&]uh1jShjrhKnhjubjT)}(hL``set_active_discharge`` Set active discharge enable/disable of regulators. h](jZ)}(h``set_active_discharge``h]j)}(hjh]hset_active_discharge}(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.hhKphjubjt)}(hhh]j)}(h2Set active discharge enable/disable of regulators.h]h2Set active discharge enable/disable of regulators.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKphjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKphjubjT)}(h/``enable`` Configure the regulator as enabled. h](jZ)}(h ``enable``h]j)}(hjh]henable}(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.hhKhjXubah}(h]h ]h"]h$]h&]uh1jshj<ubeh}(h]h ]h"]h$]h&]uh1jShjWhK?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&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKrhjvubjt)}(hhh]j)}(h4Set the configured operating mode for the regulator.h]h4Set the configured operating mode for the regulator.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKrhjubah}(h]h ]h"]h$]h&]uh1jshjvubeh}(h]h ]h"]h$]h&]uh1jShjhKrhjubjT)}(hB``get_mode`` Get the configured operating mode for the regulator. h](jZ)}(h ``get_mode``h]j)}(hjh]hget_mode}(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.hhKshjubjt)}(hhh]j)}(h4Get the configured operating mode for the regulator.h]h4Get the configured operating mode for the regulator.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKshjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKshjubjT)}(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)}(hj'h]h enable_time}(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)}(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.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK~hj=ubah}(h]h ]h"]h$]h&]uh1jshj!ubeh}(h]h ]h"]h$]h&]uh1jShj<hKhjubjT)}(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)}(hjah]hset_ramp_delay}(hjchhhNhNubah}(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)}(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.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjwubah}(h]h ]h"]h$]h&]uh1jshj[ubeh}(h]h ]h"]h$]h&]uh1jShjvhKhjubjT)}(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)}(hjh]hset_voltage_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)}(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.}(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&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKhjubjT)}(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.hhKhjubjt)}(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&]uh1jshjubeh}(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&]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$Enable soft start for the regulator.h]h$Enable soft start for the regulator.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$hKhj%ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jShj$hKhjubjT)}(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)}(hjHh]h get_status}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKvhjBubjt)}(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)}(hjahhhNhNubah}(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&]uh1jshjBubeh}(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)}(hjh]hget_optimum_mode}(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.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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKwhjubah}(h]h ]h"]h$]h&]uh1jshj|ubeh}(h]h ]h"]h$]h&]uh1jShjhKxhjubjT)}(h-``set_load`` Set the load for the regulator. h](jZ)}(h ``set_load``h]j)}(hjh]hset_load}(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.hhKyhjubjt)}(hhh]j)}(hSet the load for the regulator.h]hSet the load for the regulator.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKyhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhKyhjubjT)}(h1``set_bypass`` Set the regulator in bypass mode. h](jZ)}(h``set_bypass``h]j)}(hjh]h set_bypass}(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.hhK{hjubjt)}(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&]uh1jshjubeh}(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}(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.hhK|hj( ubjt)}(hhh]j)}(h$Get the regulator bypass mode state.h]h$Get the regulator bypass mode state.}(hjG hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjC hK|hjD ubah}(h]h ]h"]h$]h&]uh1jshj( ubeh}(h]h ]h"]h$]h&]uh1jShjC 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)}(hjg h]hset_suspend_voltage}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhja 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&]uh1jshja 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)}(hj h]hset_suspend_enable}(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;Mark the regulator as enabled when the system is suspended.h]h;Mark the regulator as enabled 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)}(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&)}(hXGstruct 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]hXGstruct 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); };}hjA#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 )}(hjR#h]hMembers}(hjT#hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjP#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)}(hjq#h]hname}(hjs#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjo#ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjk#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&]uh1jshjk#ubeh}(h]h ]h"]h$]h&]uh1jShj#hMhjh#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#hMhjh#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#hMhjh#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.}(hj5$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj2$ubah}(h]h ]h"]h$]h&]uh1jshj$ubeh}(h]h ]h"]h$]h&]uh1jShj1$hMhjh#ubjT)}(hI``regulators_node`` Name of node containing regulator definitions in DT. h](jZ)}(h``regulators_node``h]j)}(hjV$h]hregulators_node}(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.hhMhjP$ubjt)}(hhh]j)}(h4Name of node containing regulator definitions in DT.h]h4Name of node containing regulator definitions in DT.}(hjo$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk$hMhjl$ubah}(h]h ]h"]h$]h&]uh1jshjP$ubeh}(h]h ]h"]h$]h&]uh1jShjk$hMhjh#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$hMhjh#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$hMhjh#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%hMhjh#ubjT)}(he``continuous_voltage_range`` Indicates if the regulator can set any voltage within constrains range. h](jZ)}(h``continuous_voltage_range``h]j)}(hj<%h]hcontinuous_voltage_range}(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.hhMhj6%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.}(hjU%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjR%ubah}(h]h ]h"]h$]h&]uh1jshj6%ubeh}(h]h ]h"]h$]h&]uh1jShjQ%hMhjh#ubjT)}(hE``n_voltages`` Number of selectors available for ops.list_voltage(). h](jZ)}(h``n_voltages``h]j)}(hjv%h]h n_voltages}(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.hhMhjp%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&]uh1jshjp%ubeh}(h]h ]h"]h$]h&]uh1jShj%hMhjh#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%hMhjh#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%hMhjh#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&]uh1jhj6&hMhj7&ubah}(h]h ]h"]h$]h&]uh1jshj&ubeh}(h]h ]h"]h$]h&]uh1jShj6&hMhjh#ubjT)}(hG``type`` Indicates if the regulator is a voltage or current regulator. h](jZ)}(h``type``h]j)}(hjZ&h]htype}(hj\&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjX&ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjT&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.}(hjs&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjo&hMhjp&ubah}(h]h ]h"]h$]h&]uh1jshjT&ubeh}(h]h ]h"]h$]h&]uh1jShjo&hMhjh#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&hMhjh#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!hjh#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"hjh#ubjT)}(h@``linear_min_sel`` Minimal selector for starting linear mapping h](jZ)}(h``linear_min_sel``h]j)}(hj>'h]hlinear_min_sel}(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#hj8'ubjt)}(hhh]j)}(h,Minimal selector for starting linear mappingh]h,Minimal selector for starting linear mapping}(hjW'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjS'hM#hjT'ubah}(h]h ]h"]h$]h&]uh1jshj8'ubeh}(h]h ]h"]h$]h&]uh1jShjS'hM#hjh#ubjT)}(h%``fixed_uV`` Fixed voltage of rails. h](jZ)}(h ``fixed_uV``h]j)}(hjw'h]hfixed_uV}(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.hhM$hjq'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&]uh1jshjq'ubeh}(h]h ]h"]h$]h&]uh1jShj'hM$hjh#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%hjh#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&hjh#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.}(hj;(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7(hM'hj8(ubah}(h]h ]h"]h$]h&]uh1jshj(ubeh}(h]h ]h"]h$]h&]uh1jShj7(hM'hjh#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)}(hj[(h]hlinear_range_selectors_bitfield}(hj](hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjY(ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM+hjU(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.}(hjt(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM(hjq(ubah}(h]h ]h"]h$]h&]uh1jshjU(ubeh}(h]h ]h"]h$]h&]uh1jShjp(hM+hjh#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-hjh#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.hjh#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)}(hj3)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/)hM/hj0)ubah}(h]h ]h"]h$]h&]uh1jshj)ubeh}(h]h ]h"]h$]h&]uh1jShj/)hM/hjh#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)}(hjS)h]hvsel_range_reg}(hjU)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQ)ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM2hjM)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 }(hjl)hhhNhNubj)}(h&``regulator_map_*_voltage_*_pickable``h]h"regulator_map_*_voltage_*_pickable}(hjt)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjl)ubh functions.}(hjl)hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM1hji)ubah}(h]h ]h"]h$]h&]uh1jshjM)ubeh}(h]h ]h"]h$]h&]uh1jShjh)hM2hjh#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)hM3hjh#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)hM5hjh#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_*}(hj3*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'*hM6hjh#ubjT)}(h;``vsel_mask`` Mask for register bitfield used for selector h](jZ)}(h ``vsel_mask``h]j)}(hjY*h]h vsel_mask}(hj[*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjW*ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM7hjS*ubjt)}(hhh]j)}(h,Mask for register bitfield used for selectorh]h,Mask for register bitfield used for selector}(hjr*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjn*hM7hjo*ubah}(h]h ]h"]h$]h&]uh1jshjS*ubeh}(h]h ]h"]h$]h&]uh1jShjn*hM7hjh#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<hjh#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=hjh#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>hjh#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)}(hj>+h]h apply_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@hj8+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}(hjW+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM?hjT+ubah}(h]h ]h"]h$]h&]uh1jshj8+ubeh}(h]h ]h"]h$]h&]uh1jShjS+hM@hjh#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)}(hjx+h]h apply_bit}(hjz+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjv+ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMBhjr+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_regmapn}(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&]uh1jshjr+ubeh}(h]h ]h"]h$]h&]uh1jShj+hMBhjh#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+hMChjh#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,hMDhjh#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}(hj=,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9,hMEhj:,ubah}(h]h ]h"]h$]h&]uh1jshj,ubeh}(h]h ]h"]h$]h&]uh1jShj9,hMEhjh#ubjT)}(hQ``disable_val`` Disabling value for control when using regmap enable/disable ops h](jZ)}(h``disable_val``h]j)}(hj],h]h disable_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.hhMFhjW,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}(hjv,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr,hMFhjs,ubah}(h]h ]h"]h$]h&]uh1jshjW,ubeh}(h]h ]h"]h$]h&]uh1jShjr,hMFhjh#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,hMHhjh#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,hMIhjh#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-hMJhjh#ubjT)}(hJ``bypass_val_on`` Enabling value for control when using regmap set_bypass h](jZ)}(h``bypass_val_on``h]j)}(hjB-h]h bypass_val_on}(hjD-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.hhMKhj<-ubjt)}(hhh]j)}(h7Enabling value for control when using regmap set_bypassh]h7Enabling value for control when using regmap set_bypass}(hj[-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjW-hMKhjX-ubah}(h]h ]h"]h$]h&]uh1jshj<-ubeh}(h]h ]h"]h$]h&]uh1jShjW-hMKhjh#ubjT)}(hL``bypass_val_off`` Disabling value for control when using regmap set_bypass h](jZ)}(h``bypass_val_off``h]j)}(hj{-h]hbypass_val_off}(hj}-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjy-ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMLhju-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&]uh1jshju-ubeh}(h]h ]h"]h$]h&]uh1jShj-hMLhjh#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-hMPhjh#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.hMNhjh#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}(hjA.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMQhj>.ubah}(h]h ]h"]h$]h&]uh1jshj".ubeh}(h]h ]h"]h$]h&]uh1jShj=.hMRhjh#ubjT)}(hU``active_discharge_reg`` Register for control when using regmap set_active_discharge h](jZ)}(h``active_discharge_reg``h]j)}(hjb.h]hactive_discharge_reg}(hjd.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.hhMThj\.ubjt)}(hhh]j)}(h;Register for control when using regmap set_active_dischargeh]h;Register 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.hhMShjx.ubah}(h]h ]h"]h$]h&]uh1jshj\.ubeh}(h]h ]h"]h$]h&]uh1jShjw.hMThjh#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.hMUhjh#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.hMVhjh#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#/hMXhjh#ubjT)}(hG``pull_down_reg`` Register for control when using regmap set_pull_down h](jZ)}(h``pull_down_reg``h]j)}(hjH/h]h pull_down_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.hhMYhjB/ubjt)}(hhh]j)}(h4Register for control when using regmap set_pull_downh]h4Register for control when using regmap set_pull_down}(hja/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]/hMYhj^/ubah}(h]h ]h"]h$]h&]uh1jshjB/ubeh}(h]h ]h"]h$]h&]uh1jShj]/hMYhjh#ubjT)}(hD``pull_down_mask`` Mask for control when using regmap set_pull_down h](jZ)}(h``pull_down_mask``h]j)}(hj/h]hpull_down_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.hhMZhj{/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&]uh1jshj{/ubeh}(h]h ]h"]h$]h&]uh1jShj/hMZhjh#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\hjh#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.}(hj 0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 0hM^hj 0ubah}(h]h ]h"]h$]h&]uh1jshj/ubeh}(h]h ]h"]h$]h&]uh1jShj 0hM^hjh#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_hj'0ubjt)}(hhh]j)}(h+Bitmask for the ramp-rate control register.h]h+Bitmask for the ramp-rate control register.}(hjF0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB0hM_hjC0ubah}(h]h ]h"]h$]h&]uh1jshj'0ubeh}(h]h ]h"]h$]h&]uh1jShjB0hM_hjh#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)}(hjf0h]hramp_delay_table}(hjh0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd0ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMbhj`0ubjt)}(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().}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM`hj|0ubah}(h]h ]h"]h$]h&]uh1jshj`0ubeh}(h]h ]h"]h$]h&]uh1jShj{0hMbhjh#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&]uh1jShj0hMchjh#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).}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1hMehj1ubah}(h]h ]h"]h$]h&]uh1jshj0ubeh}(h]h ]h"]h$]h&]uh1jShj1hMehjh#ubjT)}(hD``off_on_delay`` guard time (in uS), before re-enabling a regulator h](jZ)}(h``off_on_delay``h]j)}(hj$1h]h off_on_delay}(hj&1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"1ubah}(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}(hj=1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj91hMfhj:1ubah}(h]h ]h"]h$]h&]uh1jshj1ubeh}(h]h ]h"]h$]h&]uh1jShj91hMfhjh#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)}(hj]1h]hpoll_enabled_time}(hj_1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[1ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMihjW1ubjt)}(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.}(hjv1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhhjs1ubah}(h]h ]h"]h$]h&]uh1jshjW1ubeh}(h]h ]h"]h$]h&]uh1jShjr1hMihjh#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&]uh1jShj1hMjhjh#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}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMubj)}(h h]h }(hj&2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2hhhj%2hMubj)}(hregulator_configh]j)}(hj2h]hregulator_config}(hj82hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj42ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj2hhhj%2hMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj2hhhj%2hMubah}(h]j 2ah ](jjeh"]h$]h&]jj)jhuh1jxhj%2hMhj 2hhubj)}(hhh]j)}(hDynamic regulator descriptorh]hDynamic regulator descriptor}(hjZ2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjW2hhubah}(h]h ]h"]h$]h&]uh1jhj 2hhhj%2hMubeh}(h]h ](j5structeh"]h$]h&]jj5jjr2jjr2jjjuh1jshhhjBhjhNubj)}(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}(hj~2hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjz2ubh:}(hjz2hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjv2ubj&)}(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.hhMhjv2ubj)}(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.hhMhjv2ubjO)}(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)}(hj3h]h init_data}(hj3hhhNhNubah}(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&]uh1jhj3hMhj3ubah}(h]h ]h"]h$]h&]uh1jshj2ubeh}(h]h ]h"]h$]h&]uh1jShj3hMhj2ubjT)}(h'``driver_data`` private regulator data h](jZ)}(h``driver_data``h]j)}(hj93h]h driver_data}(hj;3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj73ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj33ubjt)}(hhh]j)}(hprivate regulator datah]hprivate regulator data}(hjR3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN3hMhjO3ubah}(h]h ]h"]h$]h&]uh1jshj33ubeh}(h]h ]h"]h$]h&]uh1jShjN3hMhj2ubjT)}(hO``of_node`` OpenFirmware node to parse for device tree bindings (may be NULL). h](jZ)}(h ``of_node``h]j)}(hjr3h]hof_node}(hjt3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjp3ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjl3ubjt)}(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.hhMhj3ubah}(h]h ]h"]h$]h&]uh1jshjl3ubeh}(h]h ]h"]h$]h&]uh1jShj3hMhj2ubjT)}(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&]uh1jNhjv2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhjhNubj)}(h**Description**h]j )}(hj)4h]h Description}(hj+4hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj'4ubah}(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.}(hj?4hhhNhNubah}(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}(hjg4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc4hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMubj)}(h h]h }(hju4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc4hhhjt4hMubj)}(hregulator_err_stateh]j)}(hja4h]hregulator_err_state}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjc4hhhjt4hMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj_4hhhjt4hMubah}(h]jZ4ah ](jjeh"]h$]h&]jj)jhuh1jxhjt4hMhj\4hhubj)}(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&]uh1jhj\4hhhjt4hMubeh}(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)}(hj5h]hrdev}(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,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+5hMhj 5ubjT)}(h8``notifs`` Events which have occurred on the regulator. h](jZ)}(h ``notifs``h]j)}(hjO5h]hnotifs}(hjQ5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjM5ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjI5ubjt)}(hhh]j)}(h,Events which have occurred on the regulator.h]h,Events which have occurred on the regulator.}(hjh5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd5hMhje5ubah}(h]h ]h"]h$]h&]uh1jshjI5ubeh}(h]h ]h"]h$]h&]uh1jShjd5hMhj 5ubjT)}(h5``errors`` Errors which are active on the regulator. h](jZ)}(h ``errors``h]j)}(hj5h]herrors}(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 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&]uh1jshj5ubeh}(h]h ]h"]h$]h&]uh1jShj5hMhj 5ubjT)}(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&]uh1jShj5hMhj 5ubeh}(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&]uh1jhj6hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMubj)}(h h]h }(hj)6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6hhhj(6hMubj)}(hregulator_irq_datah]j)}(hj6h]hregulator_irq_data}(hj;6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj76ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj6hhhj(6hMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj6hhhj(6hMubah}(h]j6ah ](jjeh"]h$]h&]jj)jhuh1jxhj(6hMhj6hhubj)}(hhh]j)}(h(regulator error/notification status datah]h(regulator error/notification status data}(hj]6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjZ6hhubah}(h]h ]h"]h$]h&]uh1jhj6hhhj(6hMubeh}(h]h ](j5structeh"]h$]h&]jj5jju6jju6jjjuh1jshhhjBhjhNubj)}(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}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj}6ubh:}(hj}6hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjy6ubj&)}(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.hhMhjy6ubj)}(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.hhMhjy6ubjO)}(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)}(hj7h]h num_states}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(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&]uh1jhj7hMhj7ubah}(h]h ]h"]h$]h&]uh1jshj6ubeh}(h]h ]h"]h$]h&]uh1jShj7hMhj6ubjT)}(h:``data`` Driver data pointer given at regulator_irq_desc. h](jZ)}(h``data``h]j)}(hj<7h]hdata}(hj>7hhhNhNubah}(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.hhMhj67ubjt)}(hhh]j)}(h0Driver data pointer given at regulator_irq_desc.h]h0Driver data pointer given at regulator_irq_desc.}(hjU7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQ7hMhjR7ubah}(h]h ]h"]h$]h&]uh1jshj67ubeh}(h]h ]h"]h$]h&]uh1jShjQ7hMhj6ubjT)}(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)}(hju7h]hopaque}(hjw7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs7ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjo7ubjt)}(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&]uh1jshjo7ubeh}(h]h ]h"]h$]h&]uh1jShj7hMhj6ubeh}(h]h ]h"]h$]h&]uh1jNhjy6ubeh}(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 }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7hhhj8hMubj)}(hregulator_irq_desch]j)}(hj7h]hregulator_irq_desc}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj7hhhj8hMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj7hhhj8hMubah}(h]j7ah ](jjeh"]h$]h&]jj)jhuh1jxhj8hMhj7hhubj)}(hhh]j)}(h)notification sender for IRQ based events.h]h)notification sender for IRQ based events.}(hj88hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj58hhubah}(h]h ]h"]h$]h&]uh1jhj7hhhj8hMubeh}(h]h ](j5structeh"]h$]h&]jj5jjP8jjP8jjjuh1jshhhjBhjhNubj)}(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}(hj\8hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjX8ubh:}(hjX8hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjT8ubj&)}(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); };}hju8sbah}(h]h ]h"]h$]h&]hhuh1j%hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjT8ubj)}(h **Members**h]j )}(hj8h]hMembers}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj8ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjT8ubjO)}(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)}(hj9h]h reread_ms}(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.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.}(hj19hhhNhNubah}(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)}(hjR9h]h irq_off_ms}(hjT9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP9ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM hjL9ubjt)}(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.}(hjk9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM hjh9ubah}(h]h ]h"]h$]h&]uh1jshjL9ubeh}(h]h ]h"]h$]h&]uh1jShjg9hM 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.hhMhj9ubjt)}(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&]uh1jshj9ubeh}(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}(hj:hhhNhNubah}(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)}(hj9:h]hdie}(hj;:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7:ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj3: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.}(hjR:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjO:ubah}(h]h ]h"]h$]h&]uh1jshj3:ubeh}(h]h ]h"]h$]h&]uh1jShjN: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)}(hjs:h]h map_event}(hju:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjq:ubah}(h]h ]h"]h$]h&]uh1jYhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM#hjm: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&]uh1jshjm: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&]uh1jYhf/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&]uh1jNhjT8ubeh}(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.hhM5hjBhhubjb)}(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.chM& ubj)}(h h]h }(hj<;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*;hhhj;;hM& ubh)}(hhh]j)}(h regulatorh]h regulator}(hjM;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ;ubah}(h]h ]h"]h$]h&] refdomainj5reftype identifier reftargetjO;modnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]jh; ASTIdentifier)}jc; regulator_getsbc.regulator_getasbuh1hhj*;hhhj;;hM& ubj)}(h h]h }(hjv;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*;hhhj;;hM& ubhdesc_sig_punctuation)}(h*h]h*}(hj;hhhNhNubah}(h]h ]pah"]h$]h&]uh1j;hj*;hhhj;;hM& ubj)}(h regulator_geth]j)}(hjs;h]h regulator_get}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj*;hhhj;;hM& 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&] refdomainj5reftypejc; reftargetj;modnameN classnameNjg;jj;)}jm;]jq;c.regulator_getasbuh1hhj;ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj;)}(hj;h]h*}(hj<hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;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 }(hj6<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$<ubhdesc_sig_keyword_type)}(hcharh]hchar}(hjF<hhhNhNubah}(h]h ]ktah"]h$]h&]uh1jD<hj$<ubj)}(h h]h }(hjU<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$<ubj;)}(hj;h]h*}(hjc<hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj$<ubj)}(hidh]hid}(hjp<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)}(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#;hhhj;;hM& 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 )}(hjO=h]h Description}(hjQ=hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjM=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.}(hje=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 )}(hjv=h]hReturn}(hjx=hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjt=ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM. hj<ubj)}(hPointer to a :c:type:`struct regulator ` corresponding to the regulator producer, or an ERR_PTR() encoded negative error number.h](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 refexplicitrefwarnjg;jj;)}jm;]sbjG regulatoruh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM/ hj=ubhX corresponding to the regulator producer, or an ERR_PTR() encoded negative error number.}(hj=hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhj=hM/ hj<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.chM9 ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhj=hM9 ubh)}(hhh]j)}(h regulatorh]h regulator}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetj>modnameN classnameNjg;jj;)}jm;]jp;)}jc;regulator_get_exclusivesbc.regulator_get_exclusiveasbuh1hhj=hhhj=hM9 ubj)}(h h]h }(hj!>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhj=hM9 ubj;)}(hj;h]h*}(hj/>hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj=hhhj=hM9 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=hM9 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 }(hjh>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjW>ubh)}(hhh]j)}(hdeviceh]hdevice}(hjy>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjv>ubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetj{>modnameN classnameNjg;jj;)}jm;]j>c.regulator_get_exclusiveasbuh1hhjW>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjW>ubj;)}(hj;h]h*}(hj>hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;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>ubjE<)}(hcharh]hchar}(hj>hhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hj>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj;)}(hj;h]h*}(hj?hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;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=hM9 ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj=hhhj=hM9 ubah}(h]j=ah ](jjeh"]h$]h&]jj)jhuh1jxhj=hM9 hj=hhubj)}(hhh]j)}(h'obtain exclusive access to a regulator.h]h'obtain exclusive access to a regulator.}(hj9?hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM9 hj6?hhubah}(h]h ]h"]h$]h&]uh1jhj=hhhj=hM9 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)}(hjz?h]hstruct device *dev}(hj|?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx?ubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM: hjt?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&]uh1jshjt?ubeh}(h]h ]h"]h$]h&]uh1jShj?hM: hjq?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; hjq?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.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM@ 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.}(hj"@hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chME hjU?ubj)}(h **Return**h]j )}(hj3@h]hReturn}(hj5@hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj1@ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMJ hjU?ubj)}(hPointer to a :c:type:`struct regulator ` corresponding to the regulator producer, or an ERR_PTR() encoded negative error number.h](h Pointer to a }(hjI@hhhNhNubh)}(h&:c:type:`struct regulator `h]j)}(hjS@h]hstruct regulator}(hjU@hhhNhNubah}(h]h ](j4j5c-typeeh"]h$]h&]uh1jhjQ@ubah}(h]h ]h"]h$]h&]refdocjA refdomainj5reftypetype refexplicitrefwarnjg;j=jG regulatoruh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMK hjI@ubhX corresponding to the regulator producer, or an ERR_PTR() encoded negative error number.}(hjI@hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjp@hMK hjU?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.chMU ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhhj@hMU ubh)}(hhh]j)}(h regulatorh]h regulator}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetj@modnameN classnameNjg;jj;)}jm;]jp;)}jc;regulator_get_optionalsbc.regulator_get_optionalasbuh1hhj@hhhj@hMU ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhhj@hMU ubj;)}(hj;h]h*}(hj@hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj@hhhj@hMU ubj)}(hregulator_get_optionalh]j)}(hj@h]hregulator_get_optional}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj@hhhj@hMU ubj;)}(h$(struct device *dev, const char *id)h](j;)}(hstruct device *devh](j)}(hjh]hstruct}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj)}(h h]h }(hj"AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubh)}(hhh]j)}(hdeviceh]hdevice}(hj3AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0Aubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetj5AmodnameN classnameNjg;jj;)}jm;]j@c.regulator_get_optionalasbuh1hhjAubj)}(h h]h }(hjQAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj;)}(hj;h]h*}(hj_AhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjAubj)}(hdevh]hdev}(hjlAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj Aubj;)}(hconst char *idh](j)}(hj*<h]hconst}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubjE<)}(hcharh]hchar}(hjAhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj;)}(hj;h]h*}(hjAhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjAubj)}(hidh]hid}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj Aubeh}(h]h ]h"]h$]h&]hhuh1j;hj@hhhj@hMU ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj@hhhj@hMU ubah}(h]j@ah ](jjeh"]h$]h&]jj)jhuh1jxhj@hMU hj@hhubj)}(hhh]j)}(h&obtain optional access to a regulator.h]h&obtain optional access to a regulator.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMU hjAhhubah}(h]h ]h"]h$]h&]uh1jhj@hhhj@hMU ubeh}(h]h ](j5functioneh"]h$]h&]jj5jj Bjj Bjjjuh1jshhhjBhNhNubj)}(hXR**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 )}(hjBh]h Parameters}(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 hjBubjO)}(hhh](jT)}(h7``struct device *dev`` device for regulator "consumer" h](jZ)}(h``struct device *dev``h]j)}(hj4Bh]hstruct device *dev}(hj6BhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2Bubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMV hj.Bubjt)}(hhh]j)}(hdevice for regulator "consumer"h]h#device for regulator “consumer”}(hjMBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIBhMV hjJBubah}(h]h ]h"]h$]h&]uh1jshj.Bubeh}(h]h ]h"]h$]h&]uh1jShjIBhMV hj+BubjT)}(h0``const char *id`` Supply name or regulator ID. h](jZ)}(h``const char *id``h]j)}(hjmBh]hconst char *id}(hjoBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkBubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMW hjgBubjt)}(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&]uh1jshjgBubeh}(h]h ]h"]h$]h&]uh1jShjBhMW hj+Bubeh}(h]h ]h"]h$]h&]uh1jNhjBubj)}(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 hjBubj)}(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.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMX hjBubj)}(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.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM_ hjBubj)}(h **Return**h]j )}(hjBh]hReturn}(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.chMd hjBubj)}(hPointer to a :c:type:`struct regulator ` corresponding to the regulator producer, or an ERR_PTR() encoded negative error number.h](h Pointer to a }(hjBhhhNhNubh)}(h&:c:type:`struct regulator `h]j)}(hjBh]hstruct regulator}(hjChhhNhNubah}(h]h ](j4j5c-typeeh"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]refdocjA refdomainj5reftypetype refexplicitrefwarnjg;j=jG regulatoruh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMe hjBubhX corresponding to the regulator producer, or an ERR_PTR() encoded negative error number.}(hjBhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjChMe hjBubeh}(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](jE<)}(hvoidh]hvoid}(hjFChhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjBChhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjUChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBChhhjTChM ubj)}(h regulator_puth]j)}(h regulator_puth]h regulator_put}(hjgChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcCubah}(h]h ](jjeh"]h$]h&]hhuh1jhjBChhhjTChM ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubh)}(hhh]j)}(h regulatorh]h regulator}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjCmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jiCsbc.regulator_putasbuh1hhjCubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj;)}(hj;h]h*}(hjChhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjCubj)}(h regulatorh]h regulator}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj{Cubah}(h]h ]h"]h$]h&]hhuh1j;hjBChhhjTChM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj>ChhhjTChM ubah}(h]j9Cah ](jjeh"]h$]h&]jj)jhuh1jxhjTChM hj;Chhubj)}(hhh]j)}(h"free" the regulator sourceh]h“free” the regulator source}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjDhhubah}(h]h ]h"]h$]h&]uh1jhj;ChhhjTChM 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 )}(hj(Dh]h Parameters}(hj*DhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj&Dubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj"DubjO)}(hhh]jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjGDh]hstruct regulator *regulator}(hjIDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEDubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjADubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hj`DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\DhM hj]Dubah}(h]h ]h"]h$]h&]uh1jshjADubeh}(h]h ]h"]h$]h&]uh1jShj\DhM hj>Dubah}(h]h ]h"]h$]h&]uh1jNhj"Dubj)}(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 hj"Dubj)}(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.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj"Dubeh}(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](jE<)}(hinth]hint}(hjDhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjDhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDhhhjDhM ubj)}(hregulator_register_supply_aliash]j)}(hregulator_register_supply_aliash]hregulator_register_supply_alias}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubah}(h]h ](jjeh"]h$]h&]hhuh1jhjDhhhjDhM ubj;)}(hT(struct device *dev, const char *id, struct device *alias_dev, const char *alias_id)h](j;)}(hstruct device *devh](j)}(hjh]hstruct}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubh)}(hhh]j)}(hdeviceh]hdevice}(hj"EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetj$EmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jDsb!c.regulator_register_supply_aliasasbuh1hhjEubj)}(h h]h }(hjBEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj;)}(hj;h]h*}(hjPEhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjEubj)}(hdevh]hdev}(hj]EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjDubj;)}(hconst char *idh](j)}(hj*<h]hconst}(hjvEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrEubjE<)}(hcharh]hchar}(hjEhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjrEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrEubj;)}(hj;h]h*}(hjEhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjrEubj)}(hidh]hid}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrEubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjDubj;)}(hstruct device *alias_devh](j)}(hjh]hstruct}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubh)}(hhh]j)}(hdeviceh]hdevice}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjEmodnameN classnameNjg;jj;)}jm;]j>E!c.regulator_register_supply_aliasasbuh1hhjEubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj;)}(hj;h]h*}(hjFhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjEubj)}(h alias_devh]h alias_dev}(hj*FhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjDubj;)}(hconst char *alias_idh](j)}(hj*<h]hconst}(hjCFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?Fubj)}(h h]h }(hjPFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?FubjE<)}(hcharh]hchar}(hj^FhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hj?Fubj)}(h h]h }(hjlFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?Fubj;)}(hj;h]h*}(hjzFhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj?Fubj)}(halias_idh]halias_id}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?Fubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjDubeh}(h]h ]h"]h$]h&]hhuh1j;hjDhhhjDhM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjDhhhjDhM ubah}(h]jDah ](jjeh"]h$]h&]jj)jhuh1jxhjDhM hjDhhubj)}(hhh]j)}(h&Provide device alias for supply lookuph]h&Provide device alias for supply lookup}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjFhhubah}(h]h ]h"]h$]h&]uh1jhjDhhhjDhM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjFjjFjjjuh1jshhhjBhNhNubj)}(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 )}(hjFh]h Parameters}(hjFhhhNhNubah}(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.chM hjFubjO)}(hhh](jT)}(hM``struct device *dev`` device that will be given as the regulator "consumer" h](jZ)}(h``struct device *dev``h]j)}(hjFh]hstruct device *dev}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjFubjt)}(hhh]j)}(h5device that will be given as the regulator "consumer"h]h9device that will be given as the regulator “consumer”}(hj GhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGhM hjGubah}(h]h ]h"]h$]h&]uh1jshjFubeh}(h]h ]h"]h$]h&]uh1jShjGhM hjFubjT)}(h/``const char *id`` Supply name or regulator ID h](jZ)}(h``const char *id``h]j)}(hj+Gh]hconst char *id}(hj-GhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)Gubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj%Gubjt)}(hhh]j)}(hSupply name or regulator IDh]hSupply name or regulator ID}(hjDGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@GhM hjAGubah}(h]h ]h"]h$]h&]uh1jshj%Gubeh}(h]h ]h"]h$]h&]uh1jShj@GhM hjFubjT)}(hM``struct device *alias_dev`` device that should be used to lookup the supply h](jZ)}(h``struct device *alias_dev``h]j)}(hjdGh]hstruct device *alias_dev}(hjfGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbGubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj^Gubjt)}(hhh]j)}(h/device that should be used to lookup the supplyh]h/device that should be used to lookup the supply}(hj}GhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyGhM hjzGubah}(h]h ]h"]h$]h&]uh1jshj^Gubeh}(h]h ]h"]h$]h&]uh1jShjyGhM hjFubjT)}(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)}(hjGh]hconst char *alias_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)}(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}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjGubah}(h]h ]h"]h$]h&]uh1jshjGubeh}(h]h ]h"]h$]h&]uh1jShjGhM hjFubeh}(h]h ]h"]h$]h&]uh1jNhjFubj)}(h**Description**h]j )}(hjGh]h Description}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjGubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjFubj)}(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.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjFubj)}(h **Return**h]j )}(hjHh]hReturn}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjGubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjFubj)}(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 hjFubeh}(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](jE<)}(hvoidh]hvoid}(hjEHhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjAHhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjTHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAHhhhjSHhM ubj)}(h!regulator_unregister_supply_aliash]j)}(h!regulator_unregister_supply_aliash]h!regulator_unregister_supply_alias}(hjfHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbHubah}(h]h ](jjeh"]h$]h&]hhuh1jhjAHhhhjSHhM ubj;)}(h$(struct device *dev, const char *id)h](j;)}(hstruct device *devh](j)}(hjh]hstruct}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~Hubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~Hubh)}(hhh]j)}(hdeviceh]hdevice}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjHmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jhHsb#c.regulator_unregister_supply_aliasasbuh1hhj~Hubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~Hubj;)}(hj;h]h*}(hjHhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj~Hubj)}(hdevh]hdev}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~Hubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjzHubj;)}(hconst char *idh](j)}(hj*<h]hconst}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubjE<)}(hcharh]hchar}(hjIhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjHubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj;)}(hj;h]h*}(hj+IhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjHubj)}(hidh]hid}(hj8IhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjzHubeh}(h]h ]h"]h$]h&]hhuh1j;hjAHhhhjSHhM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj=HhhhjSHhM ubah}(h]j8Hah ](jjeh"]h$]h&]jj)jhuh1jxhjSHhM hj:Hhhubj)}(hhh]j)}(hRemove device aliash]hRemove device alias}(hjbIhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj_Ihhubah}(h]h ]h"]h$]h&]uh1jhj:HhhhjSHhM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjzIjjzIjjjuh1jshhhjBhNhNubj)}(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 hj~IubjO)}(hhh](jT)}(hM``struct device *dev`` device that will be given as the regulator "consumer" h](jZ)}(h``struct device *dev``h]j)}(hjIh]hstruct device *dev}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjIubjt)}(hhh]j)}(h5device that will be given as the regulator "consumer"h]h9device that will be given as the regulator “consumer”}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIhM hjIubah}(h]h ]h"]h$]h&]uh1jshjIubeh}(h]h ]h"]h$]h&]uh1jShjIhM hjIubjT)}(h/``const char *id`` Supply name or regulator ID h](jZ)}(h``const char *id``h]j)}(hjIh]hconst char *id}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjIubjt)}(hhh]j)}(hSupply name or regulator IDh]hSupply name or regulator ID}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIhM hjIubah}(h]h ]h"]h$]h&]uh1jshjIubeh}(h]h ]h"]h$]h&]uh1jShjIhM hjIubeh}(h]h ]h"]h$]h&]uh1jNhj~Iubj)}(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 hj~Iubj)}(h2Remove a lookup alias if one exists for id on dev.h]h2Remove a lookup alias if one exists for id on dev.}(hj-JhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj~Iubeh}(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](jE<)}(hinth]hint}(hj\JhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjXJhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjkJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXJhhhjjJhM ubj)}(h$regulator_bulk_register_supply_aliash]j)}(h$regulator_bulk_register_supply_aliash]h$regulator_bulk_register_supply_alias}(hj}JhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyJubah}(h]h ](jjeh"]h$]h&]hhuh1jhjXJhhhjjJhM 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}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubh)}(hhh]j)}(hdeviceh]hdevice}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjJmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jJsb&c.regulator_bulk_register_supply_aliasasbuh1hhjJubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj;)}(hj;h]h*}(hjJhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjJubj)}(hdevh]hdev}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjJubj;)}(hconst char *const *idh](j)}(hj*<h]hconst}(hj KhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubjE<)}(hcharh]hchar}(hj&KhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjKubj)}(h h]h }(hj4KhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj;)}(hj;h]h*}(hjBKhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjKubj)}(hj*<h]hconst}(hjOKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(h h]h }(hj\KhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj;)}(hj;h]h*}(hjjKhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjKubj)}(hidh]hid}(hjwKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjJubj;)}(hstruct device *alias_devh](j)}(hjh]hstruct}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubh)}(hhh]j)}(hdeviceh]hdevice}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjKmodnameN classnameNjg;jj;)}jm;]jJ&c.regulator_bulk_register_supply_aliasasbuh1hhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj;)}(hj;h]h*}(hjKhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjKubj)}(h alias_devh]h alias_dev}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjJubj;)}(hconst char *const *alias_idh](j)}(hj*<h]hconst}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(h h]h }(hj LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubjE<)}(hcharh]hchar}(hjLhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjKubj)}(h h]h }(hj)LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj;)}(hj;h]h*}(hj7LhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjKubj)}(hj*<h]hconst}(hjDLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(h h]h }(hjQLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj;)}(hj;h]h*}(hj_LhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjKubj)}(halias_idh]halias_id}(hjlLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjJubj;)}(h int num_idh](jE<)}(hinth]hint}(hjLhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(hnum_idh]hnum_id}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjJubeh}(h]h ]h"]h$]h&]hhuh1j;hjXJhhhjjJhM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjTJhhhjjJhM ubah}(h]jOJah ](jjeh"]h$]h&]jj)jhuh1jxhjjJhM hjQJhhubj)}(hhh]j)}(hregister multiple aliasesh]hregister multiple aliases}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjLhhubah}(h]h ]h"]h$]h&]uh1jhjQJhhhjjJhM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjLjjLjjjuh1jshhhjBhNhNubj)}(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 )}(hjLh]h Parameters}(hjLhhhNhNubah}(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.chM hjLubjO)}(hhh](jT)}(hM``struct device *dev`` device that will be given as the regulator "consumer" h](jZ)}(h``struct device *dev``h]j)}(hj Mh]hstruct device *dev}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Mubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjMubjt)}(hhh]j)}(h5device that will be given as the regulator "consumer"h]h9device that will be given as the regulator “consumer”}(hj%MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!MhM hj"Mubah}(h]h ]h"]h$]h&]uh1jshjMubeh}(h]h ]h"]h$]h&]uh1jShj!MhM hjMubjT)}(h@``const char *const *id`` List of supply names or regulator IDs h](jZ)}(h``const char *const *id``h]j)}(hjEMh]hconst char *const *id}(hjGMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCMubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj?Mubjt)}(hhh]j)}(h%List of supply names or regulator IDsh]h%List of supply names or regulator IDs}(hj^MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZMhM hj[Mubah}(h]h ]h"]h$]h&]uh1jshj?Mubeh}(h]h ]h"]h$]h&]uh1jShjZMhM hjMubjT)}(hM``struct device *alias_dev`` device that should be used to lookup the supply h](jZ)}(h``struct device *alias_dev``h]j)}(hj~Mh]hstruct device *alias_dev}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|Mubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjxMubjt)}(hhh]j)}(h/device that should be used to lookup the supplyh]h/device that should be used to lookup the supply}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMhM hjMubah}(h]h ]h"]h$]h&]uh1jshjxMubeh}(h]h ]h"]h$]h&]uh1jShjMhM hjMubjT)}(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)}(hjMh]hconst char *const *alias_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)}(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}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjMubah}(h]h ]h"]h$]h&]uh1jshjMubeh}(h]h ]h"]h$]h&]uh1jShjMhM hjMubjT)}(h-``int num_id`` Number of aliases to register h](jZ)}(h``int num_id``h]j)}(hjMh]h int num_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)}(hNumber of aliases to registerh]hNumber of aliases to register}(hj NhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNhM hjNubah}(h]h ]h"]h$]h&]uh1jshjMubeh}(h]h ]h"]h$]h&]uh1jShjNhM hjMubeh}(h]h ]h"]h$]h&]uh1jNhjLubj)}(h**Description**h]j )}(hj,Nh]h Description}(hj.NhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj*Nubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjLubj)}(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.}(hjBNhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjLubj)}(h **Return**h]j )}(hjSNh]hReturn}(hjUNhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjQNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjLubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjiNhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjLubeh}(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](jE<)}(hvoidh]hvoid}(hjNhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjNhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNhhhjNhM ubj)}(h®ulator_bulk_unregister_supply_aliash]j)}(h®ulator_bulk_unregister_supply_aliash]h®ulator_bulk_unregister_supply_alias}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubah}(h]h ](jjeh"]h$]h&]hhuh1jhjNhhhjNhM ubj;)}(h7(struct device *dev, const char *const *id, int num_id)h](j;)}(hstruct device *devh](j)}(hjh]hstruct}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubh)}(hhh]j)}(hdeviceh]hdevice}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjNmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jNsb(c.regulator_bulk_unregister_supply_aliasasbuh1hhjNubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj;)}(hj;h]h*}(hj!OhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjNubj)}(hdevh]hdev}(hj.OhhhNhNubah}(h]h ]jah"]h$]h&]u$h1jhjNubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjNubj;)}(hconst char *const *idh](j)}(hj*<h]hconst}(hjGOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCOubj)}(h h]h }(hjTOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCOubjE<)}(hcharh]hchar}(hjbOhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjCOubj)}(h h]h }(hjpOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCOubj;)}(hj;h]h*}(hj~OhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjCOubj)}(hj*<h]hconst}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCOubj;)}(hj;h]h*}(hjOhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjCOubj)}(hidh]hid}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCOubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjNubj;)}(h int num_idh](jE<)}(hinth]hint}(hjOhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj)}(hnum_idh]hnum_id}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjNubeh}(h]h ]h"]h$]h&]hhuh1j;hjNhhhjNhM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjNhhhjNhM ubah}(h]jNah ](jjeh"]h$]h&]jj)jhuh1jxhjNhM hjNhhubj)}(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&]uh1jhjNhhhjNhM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jj*Pjj*Pjjjuh1jshhhjBhNhNubj)}(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 )}(hj4Ph]h Parameters}(hj6PhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj2Pubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj.PubjO)}(hhh](jT)}(hM``struct device *dev`` device that will be given as the regulator "consumer" h](jZ)}(h``struct device *dev``h]j)}(hjSPh]hstruct device *dev}(hjUPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQPubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjMPubjt)}(hhh]j)}(h5device that will be given as the regulator "consumer"h]h9device that will be given as the regulator “consumer”}(hjlPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhPhM hjiPubah}(h]h ]h"]h$]h&]uh1jshjMPubeh}(h]h ]h"]h$]h&]uh1jShjhPhM hjJPubjT)}(h@``const char *const *id`` List of supply names or regulator IDs h](jZ)}(h``const char *const *id``h]j)}(hjPh]hconst char *const *id}(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)}(h%List of supply names or regulator IDsh]h%List of supply names or regulator IDs}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPhM hjPubah}(h]h ]h"]h$]h&]uh1jshjPubeh}(h]h ]h"]h$]h&]uh1jShjPhM hjJPubjT)}(h/``int num_id`` Number of aliases to unregister h](jZ)}(h``int num_id``h]j)}(hjPh]h int num_id}(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)}(hNumber of aliases to unregisterh]hNumber of aliases to unregister}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPhM hjPubah}(h]h ]h"]h$]h&]uh1jshjPubeh}(h]h ]h"]h$]h&]uh1jShjPhM hjJPubeh}(h]h ]h"]h$]h&]uh1jNhj.Pubj)}(h**Description**h]j )}(hjQh]h Description}(hjQhhhNhNubah}(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 hj.Pubj)}(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 hj.Pubeh}(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](jE<)}(hinth]hint}(hjEQhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjAQhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjTQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAQhhhjSQhM ubj)}(hregulator_enableh]j)}(hregulator_enableh]hregulator_enable}(hjfQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbQubah}(h]h ](jjeh"]h$]h&]hhuh1jhjAQhhhjSQhM ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~Qubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~Qubh)}(hhh]j)}(h regulatorh]h regulator}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjQmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jhQsbc.regulator_enableasbuh1hhj~Qubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~Qubj;)}(hj;h]h*}(hjQhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj~Qubj)}(h regulatorh]h regulator}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~Qubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjzQubah}(h]h ]h"]h$]h&]hhuh1j;hjAQhhhjSQhM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj=QhhhjSQhM ubah}(h]j8Qah ](jjeh"]h$]h&]jj)jhuh1jxhjSQhM hj:Qhhubj)}(hhh]j)}(henable regulator outputh]henable regulator output}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjRhhubah}(h]h ]h"]h$]h&]uh1jhj:QhhhjSQhM 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 )}(hj'Rh]h Parameters}(hj)RhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj%Rubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj!RubjO)}(hhh]jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjFRh]hstruct regulator *regulator}(hjHRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDRubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj@Rubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hj_RhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[RhM hj\Rubah}(h]h ]h"]h$]h&]uh1jshj@Rubeh}(h]h ]h"]h$]h&]uh1jShj[RhM hj=Rubah}(h]h ]h"]h$]h&]uh1jNhj!Rubj)}(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 hj!Rubj)}(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().}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj!Rubj)}(h**NOTE**h]j )}(hjRh]hNOTE}(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 hj!Rubj)}(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.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj!Rubj)}(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.chM hj!Rubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj!Rubeh}(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](jE<)}(hinth]hint}(hjShhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjShhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hj#ShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhhj"ShM ubj)}(hregulator_disableh]j)}(hregulator_disableh]hregulator_disable}(hj5ShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1Subah}(h]h ](jjeh"]h$]h&]hhuh1jhjShhhj"ShM ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjQShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMSubj)}(h h]h }(hj^ShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMSubh)}(hhh]j)}(h regulatorh]h regulator}(hjoShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlSubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjqSmodnameN classnameNjg;jj;)}jm;]jp;)}jc;j7Ssbc.regulator_disableasbuh1hhjMSubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMSubj;)}(hj;h]h*}(hjShhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjMSubj)}(h regulatorh]h regulator}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMSubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjISubah}(h]h ]h"]h$]h&]hhuh1j;hjShhhj"ShM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj Shhhj"ShM ubah}(h]jSah ](jjeh"]h$]h&]jj)jhuh1jxhj"ShM hj Shhubj)}(hhh]j)}(hdisable regulator outputh]hdisable regulator output}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjShhubah}(h]h ]h"]h$]h&]uh1jhj Shhhj"ShM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjSjjSjjjuh1jshhhjBhNhNubj)}(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 )}(hjSh]h Parameters}(hjShhhNhNubah}(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 hjSubjO)}(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}(hj.ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ThM hj+Tubah}(h]h ]h"]h$]h&]uh1jshjTubeh}(h]h ]h"]h$]h&]uh1jShj*ThM hj Tubah}(h]h ]h"]h$]h&]uh1jNhjSubj)}(h**Description**h]j )}(hjPTh]h Description}(hjRThhhNhNubah}(h]h ]h"]h$]h&]uh1j hjNTubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjSubj)}(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().}(hjfThhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjSubj)}(h**NOTE**h]j )}(hjwTh]hNOTE}(hjyThhhNhNubah}(h]h ]h"]h$]h&]uh1j hjuTubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjSubj)}(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.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjSubj)}(h **Return**h]j )}(hjTh]hReturn}(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 hjSubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjSubeh}(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](jE<)}(hinth]hint}(hjThhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjThhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM/ ubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjThhhjThM/ ubj)}(hregulator_force_disableh]j)}(hregulator_force_disableh]hregulator_force_disable}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubah}(h]h ](jjeh"]h$]h&]hhuh1jhjThhhjThM/ ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hj UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj)}(h h]h }(hj-UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubh)}(hhh]j)}(h regulatorh]h regulator}(hj>UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;Uubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetj@UmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jUsbc.regulator_force_disableasbuh1hhjUubj)}(h h]h }(hj^UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj;)}(hj;h]h*}(hjlUhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjUubj)}(h regulatorh]h regulator}(hjyUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjUubah}(h]h ]h"]h$]h&]hhuh1j;hjThhhjThM/ ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjThhhjThM/ ubah}(h]jTah ](jjeh"]h$]h&]jj)jhuh1jxhjThM/ hjThhubj)}(hhh]j)}(hforce disable regulator outputh]hforce disable regulator output}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM/ hjUhhubah}(h]h ]h"]h$]h&]uh1jhjThhhjThM/ ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjUjjUjjjuh1jshhhjBhNhNubj)}(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 )}(hjUh]h Parameters}(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.chM3 hjUubjO)}(hhh]jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjUh]hstruct regulator *regulator}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM0 hjUubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUhM0 hjUubah}(h]h ]h"]h$]h&]uh1jshjUubeh}(h]h ]h"]h$]h&]uh1jShjUhM0 hjUubah}(h]h ]h"]h$]h&]uh1jNhjUubj)}(h**Description**h]j )}(hjVh]h Description}(hj!VhhhNhNubah}(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 hjUubj)}(h9Forcibly disable the regulator output voltage or current.h]h9Forcibly disable the regulator output voltage or current.}(hj5VhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM1 hjUubj)}(h**NOTE**h]j )}(hjFVh]hNOTE}(hjHVhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjDVubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM3 hjUubj)}(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 }(hj\VhhhNhNubhemphasis)}(h*will*h]hwill}(hjfVhhhNhNubah}(h]h ]h"]h$]h&]uh1jdVhj\Vubh 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).}(hj\VhhhNhNubeh}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM3 hjUubj)}(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 hjUubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM7 hjUubeh}(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](jE<)}(hinth]hint}(hjVhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjVhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhjVhM ubj)}(hregulator_disable_deferredh]j)}(hregulator_disable_deferredh]hregulator_disable_deferred}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubah}(h]h ](jjeh"]h$]h&]hhuh1jhjVhhhjVhM ubj;)}(h%(struct regulator *regulator, int ms)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubh)}(hhh]j)}(h regulatorh]h regulator}(hj!WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetj#WmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jVsbc.regulator_disable_deferredasbuh1hhjVubj)}(h h]h }(hjAWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj;)}(hj;h]h*}(hjOWhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjVubj)}(h regulatorh]h regulator}(hj\WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjVubj;)}(hint msh](jE<)}(hinth]hint}(hjuWhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjqWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqWubj)}(hmsh]hms}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqWubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjVubeh}(h]h ]h"]h$]h&]hhuh1j;hjVhhhjVhM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjVhhhjVhM ubah}(h]jVah ](jjeh"]h$]h&]jj)jhuh1jxhjVhM hjVhhubj)}(hhh]j)}(h#disable regulator output with delayh]h#disable regulator output with delay}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjWhhubah}(h]h ]h"]h$]h&]uh1jhjVhhhjVhM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjWjjWjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct regulator *regulator`` regulator source ``int ms`` milliseconds until the regulator is disabled **Description** Execute regulator_disable() on the regulator after a delay. This is intended for use with devices that require some time to quiesce. **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 )}(hjWh]h Parameters}(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.chM hjWubjO)}(hhh](jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjWh]hstruct regulator *regulator}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjWubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXhM hjXubah}(h]h ]h"]h$]h&]uh1jshjWubeh}(h]h ]h"]h$]h&]uh1jShjXhM hjWubjT)}(h8``int ms`` milliseconds until the regulator is disabled h](jZ)}(h ``int ms``h]j)}(hj5Xh]hint ms}(hj7XhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3Xubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj/Xubjt)}(hhh]j)}(h,milliseconds until the regulator is disabledh]h,milliseconds until the regulator is disabled}(hjNXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJXhM hjKXubah}(h]h ]h"]h$]h&]uh1jshj/Xubeh}(h]h ]h"]h$]h&]uh1jShjJXhM hjWubeh}(h]h ]h"]h$]h&]uh1jNhjWubj)}(h**Description**h]j )}(hjpXh]h Description}(hjrXhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjnXubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjWubj)}(hExecute regulator_disable() on the regulator after a delay. This is intended for use with devices that require some time to quiesce.h]hExecute regulator_disable() on the regulator after a delay. This is intended for use with devices that require some time to quiesce.}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjWubj)}(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.chM hjWubj)}(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.}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjWubj)}(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.chM hjWubj)}(h30 on success or a negative error number on failure.h]h30 on success 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.chM hjWubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn!regulator_is_enabled (C function)c.regulator_is_enabledhNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h6int regulator_is_enabled (struct regulator *regulator)h]j)}(h5int regulator_is_enabled(struct regulator *regulator)h](jE<)}(hinth]hint}(hjYhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjXhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXhhhjYhM ubj)}(hregulator_is_enabledh]j)}(hregulator_is_enabledh]hregulator_is_enabled}(hj$YhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Yubah}(h]h ](jjeh"]h$]h&]hhuh1jhjXhhhjYhM ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hj@YhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj` 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_ubj)}(hPointer to the :c:type:`struct regmap ` for **regulator**, or ERR_PTR() encoded -``EOPNOTSUPP`` if **regulator** doesn't use regmap.h](hPointer to the }(hj,`hhhNhNubh)}(h :c:type:`struct regmap `h]j)}(hj6`h]h struct regmap}(hj8`hhhNhNubah}(h]h ](j4j5c-typeeh"]h$]h&]uh1jhj4`ubah}(h]h ]h"]h$]h&]refdocjA refdomainj5reftypetype refexplicitrefwarnjg;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}(hjX`hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj,`ubh, or ERR_PTR() encoded -}(hj,`hhhNhNubj)}(h``EOPNOTSUPP``h]h EOPNOTSUPP}(hjj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,`ubh if }(hj,`hhhNhNubj )}(h **regulator**h]h regulator}(hj|`hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj,`ubh doesn’t use regmap.}(hj,`hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjS`hM hj_ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn1regulator_get_hardware_vsel_register (C function)&c.regulator_get_hardware_vsel_registerhNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hoint regulator_get_hardware_vsel_register (struct regulator *regulator, unsigned *vsel_reg, unsigned *vsel_mask)h]j)}(hnint regulator_get_hardware_vsel_register(struct regulator *regulator, unsigned *vsel_reg, unsigned *vsel_mask)h](jE<)}(hinth]hint}(hj`hhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<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)}(h$regulator_get_hardware_vsel_registerh]j)}(h$regulator_get_hardware_vsel_registerh]h$regulator_get_hardware_vsel_register}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj`hhhj`hM! ubj;)}(hF(struct regulator *regulator, unsigned *vsel_reg, unsigned *vsel_mask)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}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj aubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjamodnameN classnameNjg;jj;)}jm;]jp;)}jc;j`sb&c.regulator_get_hardware_vsel_registerasbuh1hhj`ubj)}(h h]h }(hj/ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj;)}(hj;h]h*}(hj=ahhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj`ubj)}(h regulatorh]h regulator}(hjJahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj`ubj;)}(hunsigned *vsel_regh](jE<)}(hunsignedh]hunsigned}(hjcahhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hj_aubj)}(h h]h }(hjqahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_aubj;)}(hj;h]h*}(hjahhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj_aubj)}(hvsel_regh]hvsel_reg}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_aubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj`ubj;)}(hunsigned *vsel_maskh](jE<)}(hunsignedh]hunsigned}(hjahhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj;)}(hj;h]h*}(hjahhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjaubj)}(h vsel_maskh]h vsel_mask}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubeh}(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)}(h$get the HW voltage selector registerh]h$get the HW voltage selector register}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM! hjahhubah}(h]h ]h"]h$]h&]uh1jhj`hhhj`hM! ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjbjjbjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct regulator *regulator`` regulator source ``unsigned *vsel_reg`` voltage selector register, output parameter ``unsigned *vsel_mask`` mask for voltage selector bitfield, output parameter **Description** Returns the hardware register offset and bitmask used for setting the regulator voltage. This might be useful when configuring voltage-scaling hardware or firmware that can make I2C requests behind the kernel's back, for example. On success, the output parameters **vsel_reg** and **vsel_mask** are filled in and 0 is returned, otherwise a negative error number is returned. **Return** 0 on success, or -``EOPNOTSUPP`` if the regulator does not support voltage selectors.h](j)}(h**Parameters**h]j )}(hjbh]h Parameters}(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.chM% hjbubjO)}(hhh](jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hj9bh]hstruct regulator *regulator}(hj;bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7bubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM" hj3bubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjRbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNbhM" hjObubah}(h]h ]h"]h$]h&]uh1jshj3bubeh}(h]h ]h"]h$]h&]uh1jShjNbhM" hj0bubjT)}(hC``unsigned *vsel_reg`` voltage selector register, output parameter h](jZ)}(h``unsigned *vsel_reg``h]j)}(hjrbh]hunsigned *vsel_reg}(hjtbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpbubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM# hjlbubjt)}(hhh]j)}(h+voltage selector register, output parameterh]h+voltage selector register, output parameter}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbhM# hjbubah}(h]h ]h"]h$]h&]uh1jshjlbubeh}(h]h ]h"]h$]h&]uh1jShjbhM# hj0bubjT)}(hM``unsigned *vsel_mask`` mask for voltage selector bitfield, output parameter h](jZ)}(h``unsigned *vsel_mask``h]j)}(hjbh]hunsigned *vsel_mask}(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.chM$ hjbubjt)}(hhh]j)}(h4mask for voltage selector bitfield, output parameterh]h4mask for voltage selector bitfield, output parameter}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbhM$ hjbubah}(h]h ]h"]h$]h&]uh1jshjbubeh}(h]h ]h"]h$]h&]uh1jShjbhM$ hj0bubeh}(h]h ]h"]h$]h&]uh1jNhjbubj)}(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.chM& hjbubj)}(hReturns the hardware register offset and bitmask used for setting the regulator voltage. This might be useful when configuring voltage-scaling hardware or firmware that can make I2C requests behind the kernel's back, for example.h]hReturns the hardware register offset and bitmask used for setting the regulator voltage. This might be useful when configuring voltage-scaling hardware or firmware that can make I2C requests behind the kernel’s back, for example.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM% hjbubj)}(hOn success, the output parameters **vsel_reg** and **vsel_mask** are filled in and 0 is returned, otherwise a negative error number is returned.h](h"On success, the output parameters }(hj chhhNhNubj )}(h **vsel_reg**h]hvsel_reg}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1j hj cubh and }(hj chhhNhNubj )}(h **vsel_mask**h]h vsel_mask}(hj%chhhNhNubah}(h]h ]h"]h$]h&]uh1j hj cubhP are filled in and 0 is returned, otherwise a negative error number is returned.}(hj chhhNhNubeh}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM+ hjbubj)}(h **Return**h]j )}(hj@ch]hReturn}(hjBchhhNhNubah}(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.chM. hjbubj)}(hU0 on success, or -``EOPNOTSUPP`` if the regulator does not support voltage selectors.h](h0 on success, or -}(hjVchhhNhNubj)}(h``EOPNOTSUPP``h]h EOPNOTSUPP}(hj^chhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVcubh5 if the regulator does not support voltage selectors.}(hjVchhhNhNubeh}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM+ hjbubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn)regulator_list_hardware_vsel (C function)c.regulator_list_hardware_vselhNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hQint regulator_list_hardware_vsel (struct regulator *regulator, unsigned selector)h]j)}(hPint regulator_list_hardware_vsel(struct regulator *regulator, unsigned selector)h](jE<)}(hinth]hint}(hjchhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjchhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMC ubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjchhhjchMC ubj)}(hregulator_list_hardware_vselh]j)}(hregulator_list_hardware_vselh]hregulator_list_hardware_vsel}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubah}(h]h ](jjeh"]h$]h&]hhuh1jhjchhhjchMC ubj;)}(h0(struct regulator *regulator, unsigned selector)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubh)}(hhh]j)}(h regulatorh]h regulator}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjcmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jcsbc.regulator_list_hardware_vselasbuh1hhjcubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj;)}(hj;h]h*}(hj dhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjcubj)}(h regulatorh]h regulator}(hj-dhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjcubj;)}(hunsigned selectorh](jE<)}(hunsignedh]hunsigned}(hjFdhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjBdubj)}(h h]h }(hjTdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBdubj)}(hselectorh]hselector}(hjbdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBdubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjcubeh}(h]h ]h"]h$]h&]hhuh1j;hjchhhjchMC ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjchhhjchMC ubah}(h]jcah ](jjeh"]h$]h&]jj)jhuh1jxhjchMC hjchhubj)}(hhh]j)}(h1get the HW-specific register value for a selectorh]h1get the HW-specific register value for a selector}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMC hjdhhubah}(h]h ]h"]h$]h&]uh1jhjchhhjchMC ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjdjjdjjjuh1jshhhjBhNhNubj)}(hX**Parameters** ``struct regulator *regulator`` regulator source ``unsigned selector`` identify voltage to list **Description** Converts the selector to a hardware-specific voltage selector that can be directly written to the regulator registers. The address of the voltage register can be determined by calling **regulator_get_hardware_vsel_register**. **Return** 0 on success, -``EINVAL`` if the selector is outside the supported range, or -``EOPNOTSUPP`` if the regulator does not support voltage selectors.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.chMG 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.chMD hjdubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdhMD hjdubah}(h]h ]h"]h$]h&]uh1jshjdubeh}(h]h ]h"]h$]h&]uh1jShjdhMD hjdubjT)}(h/``unsigned selector`` identify voltage to list h](jZ)}(h``unsigned selector``h]j)}(hjeh]hunsigned selector}(hjehhhNhNubah}(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.chME hjeubjt)}(hhh]j)}(hidentify voltage to listh]hidentify voltage to list}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjehME hjeubah}(h]h ]h"]h$]h&]uh1jshjeubeh}(h]h ]h"]h$]h&]uh1jShjehME hjdubeh}(h]h ]h"]h$]h&]uh1jNhjdubj)}(h**Description**h]j )}(hjAeh]h Description}(hjCehhhNhNubah}(h]h ]h"]h$]h&]uh1j hj?eubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMG hjdubj)}(hConverts the selector to a hardware-specific voltage selector that can be directly written to the regulator registers. The address of the voltage register can be determined by calling **regulator_get_hardware_vsel_register**.h](hConverts the selector to a hardware-specific voltage selector that can be directly written to the regulator registers. The address of the voltage register can be determined by calling }(hjWehhhNhNubj )}(h(**regulator_get_hardware_vsel_register**h]h$regulator_get_hardware_vsel_register}(hj_ehhhNhNubah}(h]h ]h"]h$]h&]uh1j hjWeubh.}(hjWehhhNhNubeh}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMF hjdubj)}(h **Return**h]j )}(hjzeh]hReturn}(hj|ehhhNhNubah}(h]h ]h"]h$]h&]uh1j hjxeubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMJ hjdubj)}(h0 on success, -``EINVAL`` if the selector is outside the supported range, or -``EOPNOTSUPP`` if the regulator does not support voltage selectors.h](h0 on success, -}(hjehhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubh5 if the selector is outside the supported range, or -}(hjehhhNhNubj)}(h``EOPNOTSUPP``h]h EOPNOTSUPP}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubh5 if the regulator does not support voltage selectors.}(hjehhhNhNubeh}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMK hjdubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn®ulator_hardware_enable (C function)c.regulator_hardware_enablehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hHint regulator_hardware_enable (struct regulator *regulator, bool enable)h]j)}(hGint regulator_hardware_enable(struct regulator *regulator, bool enable)h](jE<)}(hinth]hint}(hjehhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjehhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMa ubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjehhhjehMa ubj)}(hregulator_hardware_enableh]j)}(hregulator_hardware_enableh]hregulator_hardware_enable}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubah}(h]h ](jjeh"]h$]h&]hhuh1jhjehhhjehMa ubj;)}(h*(struct regulator *regulator, bool enable)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hj fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj)}(h h]h }(hj-fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubh)}(hhh]j)}(h regulatorh]h regulator}(hj>fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;fubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetj@fmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jfsbc.regulator_hardware_enableasbuh1hhjfubj)}(h h]h }(hj^fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj;)}(hj;h]h*}(hjlfhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjfubj)}(h regulatorh]h regulator}(hjyfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjfubj;)}(h bool enableh](jE<)}(hboolh]hbool}(hjfhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj)}(henableh]henable}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjfubeh}(h]h ]h"]h$]h&]hhuh1j;hjehhhjehMa ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjehhhjehMa ubah}(h]jeah ](jjeh"]h$]h&]jj)jhuh1jxhjehMa hjehhubj)}(hhh]j)}(h*access the HW for enable/disable regulatorh]h*access the HW for enable/disable regulator}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMa hjfhhubah}(h]h ]h"]h$]h&]uh1jhjehhhjehMa ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjfjjfjjjuh1jshhhjBhNhNubj)}(hX@**Parameters** ``struct regulator *regulator`` regulator source ``bool enable`` true for enable, false for disable **Description** Request that the regulator be enabled/disabled with the regulator output at the predefined voltage or current value. **Return** 0 on success or a negative error number on failure.h](j)}(h**Parameters**h]j )}(hjfh]h Parameters}(hjfhhhNhNubah}(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.chMe hjfubjO)}(hhh](jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjgh]hstruct regulator *regulator}(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.chMb hjgubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hj2ghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ghMb hj/gubah}(h]h ]h"]h$]h&]uh1jshjgubeh}(h]h ]h"]h$]h&]uh1jShj.ghMb hjgubjT)}(h3``bool enable`` true for enable, false for disable h](jZ)}(h``bool enable``h]j)}(hjRgh]h bool enable}(hjTghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPgubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMc hjLgubjt)}(hhh]j)}(h"true for enable, false for disableh]h"true for enable, false for disable}(hjkghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgghMc hjhgubah}(h]h ]h"]h$]h&]uh1jshjLgubeh}(h]h ]h"]h$]h&]uh1jShjgghMc hjgubeh}(h]h ]h"]h$]h&]uh1jNhjfubj)}(h**Description**h]j )}(hjgh]h Description}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1j hjgubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMe hjfubj)}(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.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMd hjfubj)}(h **Return**h]j )}(hjgh]hReturn}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1j hjgubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMg hjfubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMh hjfubeh}(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](jE<)}(hunsignedh]hunsigned}(hjghhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjghhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM} ubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjghhhjhhM} ubjE<)}(hinth]hint}(hjhhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjghhhjhhM} ubj)}(h h]h }(hj$hhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjghhhjhhM} ubj)}(hregulator_get_linear_steph]j)}(hregulator_get_linear_steph]hregulator_get_linear_step}(hj6hhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2hubah}(h]h ](jjeh"]h$]h&]hhuh1jhjghhhjhhM} ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjRhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNhubj)}(h h]h }(hj_hhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNhubh)}(hhh]j)}(h regulatorh]h regulator}(hjphhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmhubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjrhmodnameN classnameNjg;jj;)}jm;]jp;)}jc;j8hsbc.regulator_get_linear_stepasbuh1hhjNhubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNhubj;)}(hj;h]h*}(hjhhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjNhubj)}(h regulatorh]h regulator}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNhubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjJhubah}(h]h ]h"]h$]h&]hhuh1j;hjghhhjhhM} ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjghhhjhhM} ubah}(h]jgah ](jjeh"]h$]h&]jj)jhuh1jxhjhhM} hjghhubj)}(hhh]j)}(h0return the voltage step size between VSEL valuesh]h0return the voltage step size between VSEL values}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM} hjhhhubah}(h]h ]h"]h$]h&]uh1jhjghhhjhhM} ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjhjjhjjjuh1jshhhjBhNhNubj)}(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 )}(hjhh]h Parameters}(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.chM hjhubjO)}(hhh]jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjih]hstruct regulator *regulator}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM~ hjiubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hj/ihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ihM~ hj,iubah}(h]h ]h"]h$]h&]uh1jshjiubeh}(h]h ]h"]h$]h&]uh1jShj+ihM~ hj iubah}(h]h ]h"]h$]h&]uh1jNhjhubj)}(h **Return**h]j )}(hjQih]hReturn}(hjSihhhNhNubah}(h]h ]h"]h$]h&]uh1j hjOiubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjhubj)}(hpThe voltage step size between VSEL values for linear regulators, or 0 if the regulator isn't a linear regulator.h]hrThe voltage step size between VSEL values for linear regulators, or 0 if the regulator isn’t a linear regulator.}(hjgihhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjhubeh}(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](jE<)}(hinth]hint}(hjihhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjihhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjihhhjihM ubj)}(hregulator_is_supported_voltageh]j)}(hregulator_is_supported_voltageh]hregulator_is_supported_voltage}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubah}(h]h ](jjeh"]h$]h&]hhuh1jhjihhhjihM ubj;)}(h5(struct regulator *regulator, int min_uV, int max_uV)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&] refdomainj5reftypejc; reftargetjimodnameN classnameNjg;jj;)}jm;]jp;)}jc;jisb c.regulator_is_supported_voltageasbuh1hhjiubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj;)}(hj;h]h*}(hjjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjiubj)}(h regulatorh]h regulator}(hj,jhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjiubj;)}(h int min_uVh](jE<)}(hinth]hint}(hjEjhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjAjubj)}(h h]h }(hjSjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAjubj)}(hmin_uVh]hmin_uV}(hjajhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjiubj;)}(h int max_uVh](jE<)}(hinth]hint}(hjzjhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjvjubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvjubj)}(hmax_uVh]hmax_uV}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjiubeh}(h]h ]h"]h$]h&]hhuh1j;hjihhhjihM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjihhhjihM ubah}(h]jiah ](jjeh"]h$]h&]jj)jhuh1jxhjihM hjihhubj)}(hhh]j)}(h)check if a voltage range can be supportedh]h)check if a voltage range can be supported}(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&]uh1jhjihhhjihM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjjjjjjjjuh1jshhhjBhNhNubj)}(hXI**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 )}(hjjh]h Parameters}(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 hjjubjO)}(hhh](jT)}(h4``struct regulator *regulator`` Regulator to check. h](jZ)}(h``struct regulator *regulator``h]j)}(hjkh]hstruct regulator *regulator}(hjkhhhNhNubah}(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)}(hRegulator to check.h]hRegulator to check.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkhM hjkubah}(h]h ]h"]h$]h&]uh1jshjjubeh}(h]h ]h"]h$]h&]uh1jShjkhM hjjubjT)}(h/``int min_uV`` Minimum required voltage in uV. h](jZ)}(h``int min_uV``h]j)}(hj:kh]h int min_uV}(hjlubj)}(h h]h }(hjOlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>lubh)}(hhh]j)}(h regulatorh]h regulator}(hj`lhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]lubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjblmodnameN classnameNjg;jj;)}jm;]jp;)}jc;j(lsbc.regulator_set_voltageasbuh1hhj>lubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>lubj;)}(hj;h]h*}(hjlhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj>lubj)}(h regulatorh]h regulator}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>lubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj:lubj;)}(h int min_uVh](jE<)}(hinth]hint}(hjlhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjlubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj)}(hmin_uVh]hmin_uV}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj:lubj;)}(h int max_uVh](jE<)}(hinth]hint}(hjlhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjlubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj)}(hmax_uVh]hmax_uV}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj:lubeh}(h]h ]h"]h$]h&]hhuh1j;hjlhhhjlhMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjkhhhjlhMubah}(h]jkah ](jjeh"]h$]h&]jj)jhuh1jxhjlhMhjkhhubj)}(hhh]j)}(hset regulator output voltageh]hset regulator output voltage}(hj/mhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj,mhhubah}(h]h ]h"]h$]h&]uh1jhjkhhhjlhMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjGmjjGmjjjuh1jshhhjBhNhNubj)}(hXG**Parameters** ``struct regulator *regulator`` regulator source ``int min_uV`` Minimum required voltage in uV ``int max_uV`` Maximum acceptable voltage in uV **Description** Sets a voltage regulator to the desired output voltage. This can be set during any regulator state. IOW, regulator can be disabled or enabled. If the regulator is enabled then the voltage will change to the new value immediately otherwise if the regulator is disabled the regulator will output at the new voltage when enabled. **NOTE** If the regulator is shared between several devices then the lowest request voltage that meets the system constraints will be used. 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 )}(hjQmh]h Parameters}(hjSmhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjOmubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjKmubjO)}(hhh](jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjpmh]hstruct regulator *regulator}(hjrmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnmubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjjmubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmhMhjmubah}(h]h ]h"]h$]h&]uh1jshjjmubeh}(h]h ]h"]h$]h&]uh1jShjmhMhjgmubjT)}(h.``int min_uV`` Minimum required voltage in uV h](jZ)}(h``int min_uV``h]j)}(hjmh]h int min_uV}(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.chMhjmubjt)}(hhh]j)}(hMinimum required voltage in uVh]hMinimum required voltage in uV}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmhMhjmubah}(h]h ]h"]h$]h&]uh1jshjmubeh}(h]h ]h"]h$]h&]uh1jShjmhMhjgmubjT)}(h0``int max_uV`` Maximum acceptable voltage in uV h](jZ)}(h``int max_uV``h]j)}(hjmh]h int max_uV}(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.chMhjmubjt)}(hhh]j)}(h Maximum acceptable voltage in uVh]h Maximum acceptable voltage in uV}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmhMhjmubah}(h]h ]h"]h$]h&]uh1jshjmubeh}(h]h ]h"]h$]h&]uh1jShjmhMhjgmubeh}(h]h ]h"]h$]h&]uh1jNhjKmubj)}(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.chMhjKmubj)}(hSets a voltage regulator to the desired output voltage. This can be set during any regulator state. IOW, regulator can be disabled or enabled.h]hSets a voltage regulator to the desired output voltage. This can be set during any regulator state. IOW, regulator can be disabled or enabled.}(hj3nhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjKmubj)}(hIf the regulator is enabled then the voltage will change to the new value immediately otherwise if the regulator is disabled the regulator will output at the new voltage when enabled.h]hIf the regulator is enabled then the voltage will change to the new value immediately otherwise if the regulator is disabled the regulator will output at the new voltage when enabled.}(hjBnhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjKmubj)}(h**NOTE**h]j )}(hjSnh]hNOTE}(hjUnhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjQnubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjKmubj)}(hIf the regulator is shared between several devices then the lowest request voltage that meets the system constraints will be used. Regulator system constraints must be set for this regulator before calling this function otherwise this call will fail.h]hIf the regulator is shared between several devices then the lowest request voltage that meets the system constraints will be used. Regulator system constraints must be set for this regulator before calling this function otherwise this call will fail.}(hjinhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjKmubj)}(h **Return**h]j )}(hjznh]hReturn}(hj|nhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjxnubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjKmubj)}(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.chMhjKmubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubjb)}(hhh]h}(h]h ]h"]h$]h&]entries](jn'regulator_set_voltage_time (C function)c.regulator_set_voltage_timehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(hTint regulator_set_voltage_time (struct regulator *regulator, int old_uV, int new_uV)h]j)}(hSint regulator_set_voltage_time(struct regulator *regulator, int old_uV, int new_uV)h](jE<)}(hinth]hint}(hjnhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjnhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnhhhjnhMubj)}(hregulator_set_voltage_timeh]j)}(hregulator_set_voltage_timeh]hregulator_set_voltage_time}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubah}(h]h ](jjeh"]h$]h&]hhuh1jhjnhhhjnhMubj;)}(h5(struct regulator *regulator, int old_uV, int new_uV)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj)}(h h]h }(hj ohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubh)}(hhh]j)}(h regulatorh]h regulator}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjomodnameN classnameNjg;jj;)}jm;]jp;)}jc;jnsbc.regulator_set_voltage_timeasbuh1hhjnubj)}(h h]h }(hj:ohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj;)}(hj;h]h*}(hjHohhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjnubj)}(h regulatorh]h regulator}(hjUohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjnubj;)}(h int old_uVh](jE<)}(hinth]hint}(hjnohhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjjoubj)}(h h]h }(hj|ohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjoubj)}(hold_uVh]hold_uV}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjoubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjnubj;)}(h int new_uVh](jE<)}(hinth]hint}(hjohhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjoubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj)}(hnew_uVh]hnew_uV}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjnubeh}(h]h ]h"]h$]h&]hhuh1j;hjnhhhjnhMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjnhhhjnhMubah}(h]jnah ](jjeh"]h$]h&]jj)jhuh1jxhjnhMhjnhhubj)}(hhh]j)}(hget raise/fall timeh]hget raise/fall time}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjohhubah}(h]h ]h"]h$]h&]uh1jhjnhhhjnhMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjpjjpjjjuh1jshhhjBhNhNubj)}(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 )}(hj ph]h Parameters}(hj phhhNhNubah}(h]h ]h"]h$]h&]uh1j hj pubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjpubjO)}(hhh](jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hj*ph]hstruct regulator *regulator}(hj,phhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(pubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj$pubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjCphhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?phMhj@pubah}(h]h ]h"]h$]h&]uh1jshj$pubeh}(h]h ]h"]h$]h&]uh1jShj?phMhj!pubjT)}(h.``int old_uV`` starting voltage in microvolts h](jZ)}(h``int old_uV``h]j)}(hjcph]h int old_uV}(hjephhhNhNubah}(h]h ]h"]h$]h&]uh1jhjapubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj]pubjt)}(hhh]j)}(hstarting voltage in microvoltsh]hstarting voltage in microvolts}(hj|phhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxphMhjypubah}(h]h ]h"]h$]h&]uh1jshj]pubeh}(h]h ]h"]h$]h&]uh1jShjxphMhj!pubjT)}(h,``int new_uV`` target voltage in microvolts h](jZ)}(h``int new_uV``h]j)}(hjph]h int new_uV}(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.chMhjpubjt)}(hhh]j)}(htarget voltage in microvoltsh]htarget voltage in microvolts}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjphMhjpubah}(h]h ]h"]h$]h&]uh1jshjpubeh}(h]h ]h"]h$]h&]uh1jShjphMhj!pubeh}(h]h ]h"]h$]h&]uh1jNhjpubj)}(h**Description**h]j )}(hjph]h Description}(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.chMhjpubj)}(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.}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjpubj)}(h **Return**h]j )}(hjph]hReturn}(hjqhhhNhNubah}(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.chMhjpubj)}(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.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjpubeh}(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](jE<)}(hinth]hint}(hjCqhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hj?qhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMNubj)}(h h]h }(hjRqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?qhhhjQqhMNubj)}(hregulator_set_voltage_time_selh]j)}(hregulator_set_voltage_time_selh]hregulator_set_voltage_time_sel}(hjdqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`qubah}(h]h ](jjeh"]h$]h&]hhuh1jhj?qhhhjQqhMNubj;)}(hR(struct regulator_dev *rdev, unsigned int old_selector, unsigned int new_selector)h](j;)}(hstruct regulator_dev *rdevh](j)}(hjh]hstruct}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|qubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|qubh)}(hhh]j)}(h regulator_devh]h regulator_dev}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjqmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jfqsb c.regulator_set_voltage_time_selasbuh1hhj|qubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|qubj;)}(hj;h]h*}(hjqhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj|qubj)}(hrdevh]hrdev}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|qubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjxqubj;)}(hunsigned int old_selectorh](jE<)}(hunsignedh]hunsigned}(hjqhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjqubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubjE<)}(hinth]hint}(hjrhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjqubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubj)}(h old_selectorh]h old_selector}(hj*rhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjxqubj;)}(hunsigned int new_selectorh](jE<)}(hunsignedh]hunsigned}(hjCrhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hj?rubj)}(h h]h }(hjQrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?rubjE<)}(hinth]hint}(hj_rhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hj?rubj)}(h h]h }(hjmrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?rubj)}(h new_selectorh]h new_selector}(hj{rhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?rubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjxqubeh}(h]h ]h"]h$]h&]hhuh1j;hj?qhhhjQqhMNubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj;qhhhjQqhMNubah}(h]j6qah ](jjeh"]h$]h&]jj)jhuh1jxhjQqhMNhj8qhhubj)}(hhh]j)}(hget raise/fall timeh]hget raise/fall time}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMNhjrhhubah}(h]h ]h"]h$]h&]uh1jhj8qhhhjQqhMNubeh}(h]h ](j5functioneh"]h$]h&]jj5jjrjjrjjjuh1jshhhjBhNhNubj)}(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 )}(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.chMRhjrubjO)}(hhh](jT)}(h7``struct regulator_dev *rdev`` regulator source device h](jZ)}(h``struct regulator_dev *rdev``h]j)}(hjrh]hstruct regulator_dev *rdev}(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.chMOhjrubjt)}(hhh]j)}(hregulator source deviceh]hregulator source device}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrhMOhjrubah}(h]h ]h"]h$]h&]uh1jshjrubeh}(h]h ]h"]h$]h&]uh1jShjrhMOhjrubjT)}(h<``unsigned int old_selector`` selector for starting voltage h](jZ)}(h``unsigned int old_selector``h]j)}(hjsh]hunsigned int old_selector}(hj!shhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMPhjsubjt)}(hhh]j)}(hselector for starting voltageh]hselector for starting voltage}(hj8shhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4shMPhj5subah}(h]h ]h"]h$]h&]uh1jshjsubeh}(h]h ]h"]h$]h&]uh1jShj4shMPhjrubjT)}(h:``unsigned int new_selector`` selector for target voltage h](jZ)}(h``unsigned int new_selector``h]j)}(hjXsh]hunsigned int new_selector}(hjZshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVsubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMQhjRsubjt)}(hhh]j)}(hselector for target voltageh]hselector for target voltage}(hjqshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmshMQhjnsubah}(h]h ]h"]h$]h&]uh1jshjRsubeh}(h]h ]h"]h$]h&]uh1jShjmshMQhjrubeh}(h]h ]h"]h$]h&]uh1jNhjrubj)}(h**Description**h]j )}(hjsh]h Description}(hjshhhNhNubah}(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.chMShjrubj)}(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}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMRhjrubj)}(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.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMUhjrubj)}(h **Return**h]j )}(hjsh]hReturn}(hjshhhNhNubah}(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.chMXhjrubj)}(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.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMYhjrubeh}(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](jE<)}(hinth]hint}(hjthhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hj thhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj thhhjthMubj)}(hregulator_sync_voltageh]j)}(hregulator_sync_voltageh]hregulator_sync_voltage}(hj/thhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+tubah}(h]h ](jjeh"]h$]h&]hhuh1jhj thhhjthMubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjKthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGtubj)}(h h]h }(hjXthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGtubh)}(hhh]j)}(h regulatorh]h regulator}(hjithhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjftubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjktmodnameN classnameNjg;jj;)}jm;]jp;)}jc;j1tsbc.regulator_sync_voltageasbuh1hhjGtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGtubj;)}(hj;h]h*}(hjthhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjGtubj)}(h regulatorh]h regulator}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGtubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjCtubah}(h]h ]h"]h$]h&]hhuh1j;hj thhhjthMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjthhhjthMubah}(h]jtah ](jjeh"]h$]h&]jj)jhuh1jxhjthMhjthhubj)}(hhh]j)}(h&re-apply last regulator output voltageh]h&re-apply last regulator output voltage}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjthhubah}(h]h ]h"]h$]h&]uh1jhjthhhjthMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjtjjtjjjuh1jshhhjBhNhNubj)}(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 )}(hjth]h Parameters}(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.chMhjtubjO)}(hhh]jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjuh]hstruct regulator *regulator}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj uubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj uubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hj(uhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$uhMhj%uubah}(h]h ]h"]h$]h&]uh1jshj uubeh}(h]h ]h"]h$]h&]uh1jShj$uhMhjuubah}(h]h ]h"]h$]h&]uh1jNhjtubj)}(h**Description**h]j )}(hjJuh]h Description}(hjLuhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjHuubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjtubj)}(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.}(hj`uhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjtubj)}(h **Return**h]j )}(hjquh]hReturn}(hjsuhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjouubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjtubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjtubeh}(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](jE<)}(hinth]hint}(hjuhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjuhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuhhhjuhMubj)}(hregulator_get_voltageh]j)}(hregulator_get_voltageh]hregulator_get_voltage}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubah}(h]h ](jjeh"]h$]h&]hhuh1jhjuhhhjuhMubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubh)}(hhh]j)}(h regulatorh]h regulator}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjvmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jusbc.regulator_get_voltageasbuh1hhjuubj)}(h h]h }(hj1vhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj;)}(hj;h]h*}(hj?vhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjuubj)}(h regulatorh]h regulator}(hjLvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjuubah}(h]h ]h"]h$]h&]hhuh1j;hjuhhhjuhMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjuhhhjuhMubah}(h]juah ](jjeh"]h$]h&]jj)jhuh1jxhjuhMhjuhhubj)}(hhh]j)}(hget regulator output voltageh]hget regulator output voltage}(hjvvhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjsvhhubah}(h]h ]h"]h$]h&]uh1jhjuhhhjuhMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjvjjvjjjuh1jshhhjBhNhNubj)}(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 )}(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.chMhjvubjO)}(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.chMhjvubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvhMhjvubah}(h]h ]h"]h$]h&]uh1jshjvubeh}(h]h ]h"]h$]h&]uh1jShjvhMhjvubah}(h]h ]h"]h$]h&]uh1jNhjvubj)}(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.chMhjvubj)}(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.}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjvubj)}(h**NOTE**h]j )}(hjwh]hNOTE}(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.chMhjvubj)}(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.}(hj/whhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjvubeh}(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](jE<)}(hinth]hint}(hj^whhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjZwhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjmwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZwhhhjlwhMubj)}(hregulator_set_current_limith]j)}(hregulator_set_current_limith]hregulator_set_current_limit}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{wubah}(h]h ](jjeh"]h$]h&]hhuh1jhjZwhhhjlwhMubj;)}(h5(struct regulator *regulator, int min_uA, int max_uA)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 regulatorh]h regulator}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjwmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jwsbc.regulator_set_current_limitasbuh1hhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj;)}(hj;h]h*}(hjwhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjwubj)}(h regulatorh]h regulator}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjwubj;)}(h int min_uAh](jE<)}(hinth]hint}(hj xhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hj xubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj xubj)}(hmin_uAh]hmin_uA}(hj)xhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj xubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjwubj;)}(h int max_uAh](jE<)}(hinth]hint}(hjBxhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hj>xubj)}(h h]h }(hjPxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>xubj)}(hmax_uAh]hmax_uA}(hj^xhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>xubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjwubeh}(h]h ]h"]h$]h&]hhuh1j;hjZwhhhjlwhMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjVwhhhjlwhMubah}(h]jQwah ](jjeh"]h$]h&]jj)jhuh1jxhjlwhMhjSwhhubj)}(hhh]j)}(h"set regulator output current limith]h"set regulator output current limit}(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&]uh1jhjSwhhhjlwhMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjxjjxjjjuh1jshhhjBhNhNubj)}(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 )}(hjxh]h Parameters}(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.chM hjxubjO)}(hhh](jT)}(h1``struct regulator *regulator`` regulator source h](jZ)}(h``struct regulator *regulator``h]j)}(hjxh]hstruct regulator *regulator}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjxubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxhMhjxubah}(h]h ]h"]h$]h&]uh1jshjxubeh}(h]h ]h"]h$]h&]uh1jShjxhMhjxubjT)}(h/``int min_uA`` Minimum supported current in uA h](jZ)}(h``int min_uA``h]j)}(hjyh]h int min_uA}(hjyhhhNhNubah}(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.chMhjxubjt)}(hhh]j)}(hMinimum supported current in uAh]hMinimum supported current in uA}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyhMhjyubah}(h]h ]h"]h$]h&]uh1jshjxubeh}(h]h ]h"]h$]h&]uh1jShjyhMhjxubjT)}(h/``int max_uA`` Maximum supported current in uA h](jZ)}(h``int max_uA``h]j)}(hj;yh]h int max_uA}(hj=yhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9yubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj5yubjt)}(hhh]j)}(hMaximum supported current in uAh]hMaximum supported current in uA}(hjTyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPyhMhjQyubah}(h]h ]h"]h$]h&]uh1jshj5yubeh}(h]h ]h"]h$]h&]uh1jShjPyhMhjxubeh}(h]h ]h"]h$]h&]uh1jNhjxubj)}(h**Description**h]j )}(hjvyh]h Description}(hjxyhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjtyubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjxubj)}(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.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjxubj)}(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.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjxubj)}(h**NOTE**h]j )}(hjyh]hNOTE}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjyubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjxubj)}(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.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjxubj)}(h **Return**h]j )}(hjyh]hReturn}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjyubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjxubj)}(h30 on success or a negative error number on failure.h]h30 on success or a negative error number on failure.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjxubeh}(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)}(hhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubeh}(h]h ]h"]h$]h&]hhuh1j;hjShhhjehMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjOhhhjehMubah}(h]jJah ](jjeh"]h$]h&]jj)jhuh1jxhjehMhjLhhubj)}(hhh]j)}(hset regulator operating modeh]hset regulator operating mode}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjehhubah}(h]h ]h"]h$]h&]uh1jhjLhhhjehMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjjjjjjuh1jshhhjBhNhNubj)}(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 )}(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)}(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.chMhjubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hj‚hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhMhjubjT)}(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.chMhj܂ubjt)}(hhh]j)}(h4operating mode - one of the REGULATOR_MODE constantsh]h4operating mode - one of the REGULATOR_MODE constants}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jshj܂ubeh}(h]h ]h"]h$]h&]uh1jShjhMhjubeh}(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`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.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(h**NOTE**h]j )}(hjDh]hNOTE}(hjFhhhNhNubah}(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.chMhjubj)}(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.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(h **Return**h]j )}(hjkh]hReturn}(hjmhhhNhNubah}(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.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](jnregulator_get_mode (C function)c.regulator_get_modehNtauh1jahjBhhhNhNubjt)}(hhh](jy)}(h=unsigned int regulator_get_mode (struct regulator *regulator)h]j)}(hhhhNhNubah}(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"hj6ubjt)}(hhh]j)}(h'Consumer data; clients are stored here.h]h'Consumer data; clients are stored here.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQhM"hjRubah}(h]h ]h"]h$]h&]uh1jshj6ubeh}(h]h ]h"]h$]h&]uh1jShjQhM"hjubeh}(h]h ]h"]h$]h&]uh1jNhjޔubj)}(h**Description**h]j )}(hjwh]h Description}(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.chM$hjޔubj)}(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.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_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](jE<)}(hinth]hint}(hjhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjߕhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMQubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjߕhhhjhMQubj)}(hregulator_bulk_disableh]j)}(hregulator_bulk_disableh]hregulator_bulk_disable}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjߕhhhjhMQubj;)}(h:(int num_consumers, struct regulator_bulk_data *consumers)h](j;)}(hint num_consumersh](jE<)}(hinth]hint}(hj hhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h num_consumersh]h num_consumers}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubj;)}(h%struct regulator_bulk_data *consumersh](j)}(hjh]hstruct}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubh)}(hhh]j)}(hregulator_bulk_datah]hregulator_bulk_data}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjumodnameN classnameNjg;jj;)}jm;]jp;)}jc;jsbc.regulator_bulk_disableasbuh1hhjQubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj;)}(hj;h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjQubj)}(h consumersh]h consumers}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubeh}(h]h ]h"]h$]h&]hhuh1j;hjߕhhhjhMQubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjەhhhjhMQubah}(h]j֕ah ](jjeh"]h$]h&]jj)jhuh1jxhjhMQhjؕhhubj)}(hhh]j)}(h$disable multiple regulator consumersh]h$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.chMQhjՖhhubah}(h]h ]h"]h$]h&]uh1jhjؕhhhjhMQubeh}(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.chMUhjubjO)}(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.chMShjubjt)}(hhh]j)}(hNumber of consumersh]hNumber of consumers}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.hMShj/ubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShj.hMShjubjT)}(hR``struct regulator_bulk_data *consumers`` Consumer data; clients are stored here. h](jZ)}(h)``struct regulator_bulk_data *consumers``h]j)}(hjRh]h%struct regulator_bulk_data *consumers}(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.chMThjLubjt)}(hhh]j)}(h'Consumer data; clients are stored here.h]h'Consumer data; clients are stored here.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjghMThjhubah}(h]h ]h"]h$]h&]uh1jshjLubeh}(h]h ]h"]h$]h&]uh1jShjghMThjubeh}(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)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMUhjubj)}(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.chMZhjubj)}(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[hjubeh}(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](jE<)}(hinth]hint}(hjhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMyubj)}(hregulator_bulk_force_disableh]j)}(hregulator_bulk_force_disableh]hregulator_bulk_force_disable}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMyubj;)}(h:(int num_consumers, struct regulator_bulk_data *consumers)h](j;)}(hint num_consumersh](jE<)}(hinth]hint}(hj6hhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hj2ubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj)}(h num_consumersh]h num_consumers}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj.ubj;)}(h%struct regulator_bulk_data *consumersh](j)}(hjh]hstruct}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubh)}(hhh]j)}(hregulator_bulk_datah]hregulator_bulk_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jsbc.regulator_bulk_force_disableasbuh1hhjgubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj;)}(hj;h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjgubj)}(h consumersh]h consumers}(hjĘhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj.ubeh}(h]h ]h"]h$]h&]hhuh1j;hjhhhjhMyubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhjhMyubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jxhjhMyhjhhubj)}(hhh]j)}(h*force disable multiple regulator consumersh]h*force disable multiple regulator consumers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMyhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMyubeh}(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 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 )}(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}hj ubjO)}(hhh](jT)}(h*``int num_consumers`` Number of consumers h](jZ)}(h``int num_consumers``h]j)}(hj/h]hint num_consumers}(hj1hhhNhNubah}(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)}(hNumber of consumersh]hNumber of consumers}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDhM{hjEubah}(h]h ]h"]h$]h&]uh1jshj)ubeh}(h]h ]h"]h$]h&]uh1jShjDhM{hj&ubjT)}(hR``struct regulator_bulk_data *consumers`` Consumer data; clients are stored here. h](jZ)}(h)``struct regulator_bulk_data *consumers``h]j)}(hjhh]h%struct regulator_bulk_data *consumers}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM|hjbubjt)}(hhh]j)}(h'Consumer data; clients are stored here.h]h'Consumer data; clients are stored here.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}hM|hj~ubah}(h]h ]h"]h$]h&]uh1jshjbubeh}(h]h ]h"]h$]h&]uh1jShj}hM|hj&ubeh}(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)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM}hj ubj)}(h**NOTE**h]j )}(hjʙh]hNOTE}(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 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.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](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](jE<)}(hvoidh]hvoid}(hj6hhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hj2hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2hhhjDhMubj)}(hregulator_bulk_freeh]j)}(hregulator_bulk_freeh]hregulator_bulk_free}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubah}(h]h ](jjeh"]h$]h&]hhuh1jhj2hhhjDhMubj;)}(h:(int num_consumers, struct regulator_bulk_data *consumers)h](j;)}(hint num_consumersh](jE<)}(hinth]hint}(hjshhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjoubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj)}(h num_consumersh]h num_consumers}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjkubj;)}(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}(hjƚhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjÚubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjȚmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jYsbc.regulator_bulk_freeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj;)}(hj;h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjubj)}(h consumersh]h consumers}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjkubeh}(h]h ]h"]h$]h&]hhuh1j;hj2hhhjDhMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj.hhhjDhMubah}(h]j)ah ](jjeh"]h$]h&]jj)jhuh1jxhjDhMhj+hhubj)}(hhh]j)}(h!free multiple regulator consumersh]h!free multiple regulator consumers}(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+hhhjDhMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjCjjCjjjuh1jshhhjBhNhNubj)}(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 )}(hjMh]h Parameters}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjKubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjGubjO)}(hhh](jT)}(h*``int num_consumers`` Number of consumers h](jZ)}(h``int num_consumers``h]j)}(hjlh]hint num_consumers}(hjnhhhNhNubah}(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.chMhjfubjt)}(hhh]j)}(hNumber of consumersh]hNumber of consumers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jshjfubeh}(h]h ]h"]h$]h&]uh1jShjhMhjcubjT)}(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.chMhjubjt)}(hhh]j)}(h'Consumer data; clients are stored here.h]h'Consumer data; clients are stored here.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhMhjcubeh}(h]h ]h"]h$]h&]uh1jNhjGubj)}(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.chMhjGubj)}(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.chMhjGubeh}(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](jE<)}(hinth]hint}(hj%hhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hj!hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhj3hMubj)}(hregulator_notifier_call_chainh]j)}(hregulator_notifier_call_chainh]hregulator_notifier_call_chain}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubah}(h]h ](jjeh"]h$]h&]hhuh1jhj!hhhj3hMubj;)}(h=(struct regulator_dev *rdev, unsigned long event, void *data)h](j;)}(hstruct regulator_dev *rdevh](j)}(hjh]hstruct}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubh)}(hhh]j)}(h regulator_devh]h regulator_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jHsbc.regulator_notifier_call_chainasbuh1hhj^ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj;)}(hj;h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj^ubj)}(hrdevh]hrdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjZubj;)}(hunsigned long eventh](jE<)}(hunsignedh]hunsigned}(hjԜhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjМubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjМubjE<)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjМubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjМubj)}(heventh]hevent}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjМubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjZubj;)}(h void *datah](jE<)}(hvoidh]hvoid}(hj%hhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hj!ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj;)}(hj;h]h*}(hjAhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj!ubj)}(hdatah]hdata}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjZubeh}(h]h ]h"]h$]h&]hhuh1j;hj!hhhj3hMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhj3hMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jxhj3hMhjhhubj)}(hhh]j)}(hcall regulator event notifierh]hcall regulator event notifier}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjuhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj3hMubeh}(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)}(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.chMhjubjt)}(hhh]j)}(hregulator sourceh]hregulator source}(hjҝhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjΝhMhjϝubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjΝhMhjubjT)}(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.chMhjubjt)}(hhh]j)}(hnotifier blockh]hnotifier block}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhMhjubjT)}(h'``void *data`` callback-specific data. h](jZ)}(h``void *data``h]j)}(hj+h]h void *data}(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)}(hcallback-specific data.h]hcallback-specific data.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@hMhjAubah}(h]h ]h"]h$]h&]uh1jshj%ubeh}(h]h ]h"]h$]h&]uh1jShj@hMhjubeh}(h]h ]h"]h$]h&]uh1jNhjubj)}(h**Description**h]j )}(hjfh]h Description}(hjhhhhNhNubah}(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.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.}(hj|hhhNhNubah}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(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](jE<)}(hinth]hint}(hjhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<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_mode_to_statush]j)}(hregulator_mode_to_statush]hregulator_mode_to_status}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjܞhhhjhMubj;)}(h(unsigned int mode)h]j;)}(hunsigned int modeh](jE<)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjE<)}(hinth]hint}(hj9hhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hmodeh]hmode}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubah}(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&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.chMhj|hhubah}(h]h ]h"]h$]h&]uh1jhj՞hhhjhMubeh}(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}(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&``unsigned int mode`` Mode to convert h](jZ)}(h``unsigned int mode``h]j)}(hjh]hunsigned int mode}(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.chMhjubjt)}(hhh]j)}(hMode to converth]hMode to convert}(hjٟhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj՟hMhj֟ubah}(h]h ]h"]h$]h&]uh1jshjubeh}(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)}(h'Convert a regulator mode into a status.h]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.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)}(h9``REGULATOR_STATUS_*`` value corresponding to given mode.h](j)}(h``REGULATOR_STATUS_*``h]hREGULATOR_STATUS_*}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubh# value corresponding to given mode.}(hj8hhhNhNubeh}(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}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM{ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqhhhjhM{ubh)}(hhh]j)}(h regulator_devh]h regulator_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjmodnameN classnameNjg;jj;)}jm;]jp;)}jc;regulator_registersbc.regulator_registerasbuh1hhjqhhhjhM{ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqhhhjhM{ubj;)}(hj;h]h*}(hjàhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjqhhhjhM{ubj)}(hregulator_registerh]j)}(hjh]hregulator_register}(hjԠhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjРubah}(h]h ](jjeh"]h$]h&]hhuh1jhjqhhhjhM{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&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjmodnameN classnameNjg;jj;)}jm;]jc.regulator_registerasbuh1hhjubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj;)}(hj;h]h*}(hj9hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjubj)}(hdevh]hdev}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(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&]uh1jhj[ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj)}(hjh]hstruct}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubh)}(hhh]j)}(hregulator_desch]hregulator_desc}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjmodnameN classnameNjg;jj;)}jm;]jc.regulator_registerasbuh1hhj[ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj;)}(hj;h]h*}(hjġhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj[ubj)}(hregulator_desch]hregulator_desc}(hjѡhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubj;)}(h"const struct regulator_config *cfgh](j)}(hj*<h]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hregulator_configh]hregulator_config}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetj%modnameN classnameNjg;jj;)}jm;]jc.regulator_registerasbuh1hhjubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj;)}(hj;h]h*}(hjOhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjubj)}(hcfgh]hcfg}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubeh}(h]h ]h"]h$]h&]hhuh1j;hjqhhhjhM{ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjmhhhjhM{ubah}(h]jhah ](jjeh"]h$]h&]jj)jhuh1jxhjhM{hjjhhubj)}(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.chM{hjhhubah}(h]h ]h"]h$]h&]uh1jhjjhhhjhM{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 )}(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`` the device that drive the regulator 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|hjubjt)}(hhh]j)}(h#the device that drive the regulatorh]h#the device that drive the regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjܢhM|hjݢubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjܢhM|hjubjT)}(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}(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)}(hregulator to registerh]hregulator to register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhM}hjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhM}hjubjT)}(hK``const struct regulator_config *cfg`` runtime configuration for regulator h](jZ)}(h&``const struct regulator_config *cfg``h]j)}(hj9h]h"const struct regulator_config *cfg}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM~hj3ubjt)}(hhh]j)}(h#runtime configuration for regulatorh]h#runtime configuration for regulator}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNhM~hjOubah}(h]h ]h"]h$]h&]uh1jshj3ubeh}(h]h ]h"]h$]h&]uh1jShjNhM~hjubeh}(h]h ]h"]h$]h&]uh1jNhjubj)}(h**Description**h]j )}(hjth]h Description}(hjvhhhNhNubah}(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.chMhjubj)}(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.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)}(hPointer to a valid :c:type:`struct regulator_dev ` on success or an ERR_PTR() encoded negative error number on failure.h](hPointer to a valid }(hjhhhNhNubh)}(h.:c:type:`struct regulator_dev `h]j)}(hjh]hstruct regulator_dev}(hjhhhNhNubah}(h]h ](j4j5c-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjA refdomainj5reftypetype refexplicitrefwarnjg;j=jG regulator_devuh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubhE on success or an ERR_PTR() encoded negative error number on failure.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjأhMhjubeh}(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](jE<)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<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_unregisterh]j)}(hregulator_unregisterh]hregulator_unregister}(hj$hhhNhNubah}(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}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubh)}(hhh]j)}(h regulator_devh]h regulator_dev}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetj`modnameN classnameNjg;jj;)}jm;]jp;)}jc;j&sbc.regulator_unregisterasbuh1hhj<ubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj;)}(hj;h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj<ubj)}(hrdevh]hrdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj8ubah}(h]h ]h"]h$]h&]hhuh1j;hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jxhjhMhjhhubj)}(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.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(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 )}(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.chMhjߤubjO)}(hhh]jT)}(h7``struct regulator_dev *rdev`` regulator to unregister 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.chMhjubjt)}(hhh]j)}(hregulator to unregisterh]hregulator to unregister}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhMhjubah}(h]h ]h"]h$]h&]uh1jNhjߤubj)}(h**Description**h]j )}(hj?h]h Description}(hjAhhhNhNubah}(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)}(h6Called by regulator drivers to unregister a regulator.h]h6Called by regulator drivers to unregister a regulator.}(hjUhhhNhNubah}(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](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](jE<)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<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_has_full_constraintsh]j)}(hregulator_has_full_constraintsh]hregulator_has_full_constraints}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMubj;)}(h(void)h]j;)}(hvoidh]jE<)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjubah}(h]h ]h"]h$]h&]noemphhhuh1j;hjubah}(h]h ]h"]h$]h&]hhuh1j;hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhj|hhhjhMubah}(h]jwah ](jjeh"]h$]h&]jj)jhuh1jxhjhMhjyhhubj)}(hhh]j)}(h*the system has fully specified constraintsh]h*the system has fully specified constraints}(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&]uh1jhjyhhhjhMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjjjjjjuh1jshhhjBhNhNubj)}(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 )}(hj h]h Parameters}(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.chMhjubjO)}(hhh]jT)}(h``void`` no arguments h](jZ)}(h``void``h]j)}(hj,h]hvoid}(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.chKhj&ubjt)}(hhh]j)}(h no argumentsh]h no arguments}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAhKhjBubah}(h]h ]h"]h$]h&]uh1jshj&ubeh}(h]h ]h"]h$]h&]uh1jShjAhKhj#ubah}(h]h ]h"]h$]h&]uh1jNhjubj)}(h**Description**h]j )}(hjgh]h Description}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1j hjeubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chKhjubj)}(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.chMhjubj)}(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.}(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](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](jE<)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<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;)}(hj;h]h*}(hjئhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjhhhjɦhMubj)}(hrdev_get_drvdatah]j)}(hrdev_get_drvdatah]hrdev_get_drvdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjɦhMubj;)}(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}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetj%modnameN classnameNjg;jj;)}jm;]jp;)}jc;jsbc.rdev_get_drvdataasbuh1hhjubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj;)}(hj;h]h*}(hjQhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjubj)}(hrdevh]hrdev}(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 rdev regulator driver datah]hget rdev 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)}(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)}(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)}(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)}(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.}(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.}(hjAhhhNhNubah}(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](jE<)}(hvoidh]hvoid}(hjphhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjlhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlhhhj~hMubj;)}(hj;h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjlhhhj~hMubj)}(hregulator_get_drvdatah]j)}(hregulator_get_drvdatah]hregulator_get_drvdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjlhhhj~hMubj;)}(h(struct regulator *regulator)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}(hjبhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjըubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjڨmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jsbc.regulator_get_drvdataasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj;)}(hj;h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjubj)}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubah}(h]h ]h"]h$]h&]hhuh1j;hjlhhhj~hMubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhhj~hMubah}(h]jcah ](jjeh"]h$]h&]jj)jhuh1jxhj~hMhjehhubj)}(hhh]j)}(hget regulator driver datah]hget 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&]uh1jhjehhhj~hMubeh}(h]h ](j5functioneh"]h$]h&]jj5jjUjjUjjjuh1jshhhjBhNhNubj)}(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 )}(hj_h]h Parameters}(hjahhhNhNubah}(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.chMhjYubjO)}(hhh]jT)}(h*``struct regulator *regulator`` regulator h](jZ)}(h``struct regulator *regulator``h]j)}(hj~h]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.chMhjxubjt)}(hhh]j)}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jshjxubeh}(h]h ]h"]h$]h&]uh1jShjhMhjuubah}(h]h ]h"]h$]h&]uh1jNhjYubj)}(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.chMhjYubj)}(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.}(hjϩhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjYubj)}(h **Return**h]j )}(hjh]hReturn}(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.chMhjYubj)}(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.chMhjYubeh}(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](jE<)}(hvoidh]hvoid}(hj%hhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hj!hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhj3hM ubj)}(hregulator_set_drvdatah]j)}(hregulator_set_drvdatah]hregulator_set_drvdata}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubah}(h]h ](jjeh"]h$]h&]hhuh1jhj!hhhj3hM ubj;)}(h)(struct regulator *regulator, void *data)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubh)}(hhh]j)}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jHsbc.regulator_set_drvdataasbuh1hhj^ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj;)}(hj;h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj^ubj)}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjZubj;)}(h void *datah](jE<)}(hvoidh]hvoid}(hjԪhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<hjЪubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjЪubj;)}(hj;h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjЪubj)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjЪubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjZubeh}(h]h ]h"]h$]h&]hhuh1j;hj!hhhj3hM ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhj3hM ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jxhj3hM hjhhubj)}(hhh]j)}(hset regulator driver datah]hset regulator driver data}(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&]uh1jhjhhhj3hM ubeh}(h]h ](j5functioneh"]h$]h&]jj5jj?jj?jjjuh1jshhhjBhNhNubj)}(hR**Parameters** ``struct regulator *regulator`` regulator ``void *data`` datah](j)}(h**Parameters**h]j )}(hjIh]h Parameters}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjGubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM$hjCubjO)}(hhh](jT)}(h*``struct regulator *regulator`` regulator h](jZ)}(h``struct regulator *regulator``h]j)}(hjhh]hstruct regulator *regulator}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jYh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM!hjbubjt)}(hhh]j)}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}hM!hj~ubah}(h]h ]h"]h$]h&]uh1jshjbubeh}(h]h ]h"]h$]h&]uh1jShj}hM!hj_ubjT)}(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.chM#hjubjt)}(hhh]j)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM"hjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhM#hj_ubeh}(h]h ]h"]h$]h&]uh1jNhjCubeh}(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](jE<)}(hinth]hint}(hjhhhNhNubah}(h]h ]jQ<ah"]h$]h&]uh1jD<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)}(h rdev_get_idh]j)}(h rdev_get_idh]h rdev_get_id}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhj hM+ubj;)}(h(struct regulator_dev *rdev)h]j;)}(hstruct regulator_dev *rdevh](j)}(hjh]hstruct}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubh)}(hhh]j)}(h regulator_devh]h regulator_dev}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&] refdomainj5reftypejc; reftargetjXmodnameN classnameNjg;jj;)}jm;]jp;)}jc;jsb c.rdev_get_idasbuh1hhj4ubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj;)}(hj;h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj4ubj)}(hrdevh]hrdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj0ubah}(h]h ]h"]h$]h&]hhuh1j;hjhhhj hM+ubeh}(h]h ]h"]h$]h&]hhjuh1j~jjhjhhhj hM+ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jxhj hM+hjhhubj)}(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.chM+hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj hM+ubeh}(h]h ](j5functioneh"]h$]h&]jj5jjӬjjӬjjjuh1jshhhjBhNhNubj)}(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.chM/hj׬ubjO)}(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.chM,hjubjt)}(hhh]j)}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhM,hjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jShjhM,hjubah}(h]h ]h"]h$]h&]uh1jNhj׬ubj)}(h **Return**h]j )}(hj7h]hReturn}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj5ubah}(h]h ]h"]h$]h&]uh1jh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM.hj׬ubj)}(hRegulator ID for **rdev**.h](hRegulator ID for }(hjMhhhNhNubj )}(h**rdev**h]hrdev}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjMubh.}(hjMhhhNhNubeh}(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&]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}(jjjxjujpjmjVjSjjj'j$jNjKjjj?j<jjj7j4jzjwu nametypes}(jjxjpjVjj'jNjj?jj7jzuh}(jhjujcjmjjSj{jj j$jjKj*jjYj<jjjj4jjwjBjpjzjj#jjj j jljqjjjjj"j"j 2j2jZ4j_4j6j6j7j7j!;j&;j=j=j@j@j9Cj>CjDjDj8Hj=HjOJjTJjNjNj8Qj=QjSj SjTjTjVjVjXjXjZjZjX\j]\j^j^j`j`jcjcjejejgjgjijijkjkjnjnj6qj;qjtjtjujujQwjVwj zjzj{j{j4}j9}j?jDjJjOjjjyj~jjjJjOj_jdjjjjjjœj֕jەjjj)j.jjjӞj؞jhjmjjjwj|jjjcjhjjjju 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.