esphinx.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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/pt_BR/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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhKubh field_body)}(h Liam Girdwoodh]h paragraph)}(hj%h]h Liam Girdwood}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhK hj#ubah}(h]h ]h"]h$]h&]uh1j!hjubeh}(h]h ]h"]h$]h&]uh1j hhhK hj hhubj )}(hhh](j)}(hAuthorh]hAuthor}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBhhhKubj")}(h Mark Brown h]j()}(h Mark Brownh]h Mark Brown}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhK hjSubah}(h]h ]h"]h$]h&]uh1j!hjBubeh}(h]h ]h"]h$]h&]uh1j hhhK hj hhubeh}(h]h ]h"]h$]h&]uh1jhhhhhhhK ubh)}(hhh](h)}(h Introductionh]h Introduction}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhhhhhKubj()}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhKhjwhhubj()}(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&]uh1j'hhhKhjwhhubj()}(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&]uh1j'hhhKhjwhhubh)}(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&]uh1j'hhhK hjhhubj()}(h Regulatorh]h Regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhK"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&]uh1j'hhhK$hjubah}(h]h ]h"]h$]h&]uh1jhhhK$hjhhubj()}(hConsumerh]hConsumer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhK(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhK*hjubah}(h]h ]h"]h$]h&]uh1jhhhK*hjhhubj()}(h Power Domainh]h Power Domain}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhK.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.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhK0hjAubah}(h]h ]h"]h$]h&]uh1jhhhK0hjhhubj()}(h*Power Management Integrated Circuit (PMIC)h]h*Power Management Integrated Circuit (PMIC)}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhK4hjhhubj)}(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.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhK6hjgubah}(h]h ]h"]h$]h&]uh1jhhhK6hjhhubeh}(h]glossaryah ]h"]glossaryah$]h&]uh1hhjwhhhhhKubeh}(h] introductionah ]h"] introductionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hConsumer driver interfaceh]hConsumer driver interface}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK;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&]uh1j'hhhK=hjhhubj()}(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&]uh1j'hhhKDhjhhubj()}(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&]uh1j'hhhKHhjhhubh)}(hhh](h)}(hEnabling and disablingh]hEnabling and disabling}(hj$hhhNhNubah}(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 }(hj2hhhNhNubh)}(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 refdomainjIreftypefunc refexplicitrefwarn reftargetregulator_enableuh1hhhhKNhj2ubh and }(hj2hhhNhNubh)}(h:c:func:`regulator_disable()`h]j)}(hjch]hregulator_disable()}(hjehhhNhNubah}(h]h ](jHjIc-funceh"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]refdocjU refdomainjIreftypefunc refexplicitrefwarnj[regulator_disableuh1hhhhKNhj2ubhY functions to enable and disable regulators. Calls to the two functions must be balanced.}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hhhKNhj!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 }(hjhhhNhNubh)}(h:c:func:`regulator_disable()`h]j)}(hjh]hregulator_disable()}(hjhhhNhNubah}(h]h ](jHjIc-funceh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjU refdomainjIreftypefunc refexplicitrefwarnj[regulator_disableuh1hhhhKShjubh 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.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hhhKShj!hhubeh}(h]enabling-and-disablingah ]h"]enabling and disablingah$]h&]uh1hhjhhhhhKLubh)}(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&]uh1j'hhhK\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 ](jHjIc-funceh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjU refdomainjIreftypefunc refexplicitrefwarnj[regulator_set_voltageuh1hhhhKahjubh and }(hjhhhNhNubh)}(h':c:func:`regulator_set_current_limit()`h]j)}(hjh]hregulator_set_current_limit()}(hjhhhNhNubah}(h]h ](jHjIc-funceh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjU refdomainjIreftypefunc refexplicitrefwarnj[regulator_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&]uh1j'hhhKahjhhubeh}(h] configurationah ]h"] configurationah$]h&]uh1hhjhhhhhKZubh)}(hhh](h)}(h Callbacksh]h Callbacks}(hjAhhhNhNubah}(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.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhKmhj>hhubeh}(h] callbacksah ]h"] callbacksah$]h&]uh1hhjhhhhhKkubeh}(h]consumer-driver-interfaceah ]h"]consumer driver interfaceah$]h&]uh1hhhhhhhhK;ubh)}(hhh](h)}(hRegulator driver interfaceh]hRegulator driver interface}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhhhhhKpubj()}(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.}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhKrhjmhhubj()}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhKvhjmhhubeh}(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&]uh1j'hhhK}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 ](jHjIc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjU refdomainjIreftypetype refexplicitrefwarnj[regulator_consumer_supplyuh1hhhhKhjubhN. This is done at driver registration time as part of the machine constraints.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hhhKhjhhubeh}(h]suppliesah ]h"]suppliesah$]h&]uh1hhjhhhhhKubh)}(hhh](h)}(h Constraintsh]h Constraints}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubj()}(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&]uh1j'hhhKhj hhubj()}(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.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhKhj hhubj()}(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.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhKhj hhubeh}(h] constraintsah ]h"] constraintsah$]h&]uh1hhjhhhhhKubeh}(h]machine-interfaceah ]h"]machine interfaceah$]h&]uh1hhhhhhhhK{ubh)}(hhh](h)}(h API referenceh]h API reference}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVhhhhhKubj()}(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.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhKhjVhhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single"pre_voltage_change_data (C struct)c.pre_voltage_change_datahNtauh1juhjVhhhh/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)}(hjh]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_permalinkuh1jsphinx_line_type declaratorhjhhhjhKubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhKhjhhubh 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&]uh1j'hh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKphjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jIstructeh"]h$]h&]domainjIobjtypej desctypej noindex noindexentrynocontentsentryuh1jhhhjVhjhNubh 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&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hh/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&]hhuh1j9hh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKvhjubj()}(h **Members**h]j)}(hjLh]hMembers}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1j'hh/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)}(hjqh]hold_uV}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jmhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKshjiubh definition)}(hhh]j()}(hCurrent voltage before change.h]hCurrent voltage before change.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhKshjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jghjhKshjdubjh)}(h(``min_uV`` Min voltage we'll change to. h](jn)}(h ``min_uV``h]j)}(hjh]hmin_uV}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKthjubj)}(hhh]j()}(hMin voltage we'll change to.h]hMin voltage we’ll change to.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhKthjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKthjdubjh)}(h'``max_uV`` Max voltage we'll change to.h](jn)}(h ``max_uV``h]j)}(hjh]hmax_uV}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKthjubj)}(hhh]j()}(hMax voltage we'll change to.h]hMax voltage we’ll change to.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKuhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKthjdubeh}(h]h ]h"]h$]h&]uh1jbhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhjhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](jregulator_bulk_data (C struct)c.regulator_bulk_datahNtauh1juhjVhhhjhNubj)}(hhh](j)}(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 }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;hhhjLhK{ubj)}(hregulator_bulk_datah]j)}(hj9h]hregulator_bulk_data}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj;hhhjLhK{ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj7hhhjLhK{ubah}(h]j2ah ](jjeh"]h$]h&]jj)jhuh1jhjLhK{hj4hhubj)}(hhh]j()}(h(Data used for bulk regulator operations.h]h(Data used for bulk regulator operations.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhj~hhubah}(h]h ]h"]h$]h&]uh1jhj4hhhjLhK{ubeh}(h]h ](jIstructeh"]h$]h&]jjIjjjjjjjuh1jhhhjVhjhNubj)}(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&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hh/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&]hhuh1j9hh/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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'hh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjubjc)}(hhh](jh)}(hb``supply`` The name of the supply. Initialised by the user before using the bulk regulator APIs. h](jn)}(h ``supply``h]j)}(hjh]hsupply}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjubj)}(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&]uh1j'hh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhjubjh)}(h[``consumer`` The regulator consumer for the supply. This will be managed by the bulk API. h](jn)}(h ``consumer``h]j)}(hj(h]hconsumer}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jmhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhj"ubj)}(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.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhj>ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jghj=hKhjubjh)}(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](jn)}(h``init_load_uA``h]j)}(hjbh]h init_load_uA}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jmhh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhj\ubj)}(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.}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjxubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jghjwhKhjubeh}(h]h ]h"]h$]h&]uh1jbhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhjhNubj()}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'hh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjVhhubj()}(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&]uh1j'hh/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:160: ./include/linux/regulator/consumer.hhKhjVhhubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](jregulator_state (C struct)c.regulator_statehNtauh1juhjVhhhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhNubj)}(hhh](j)}(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}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhKhjhhubj)}(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&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKChj# hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jIstructeh"]h$]h&]jjIjj> jj> jjjuh1jhhhjVhjhNubj)}(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}(hjJ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF ubh:}(hjF hhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKGhjB 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; };}hjc sbah}(h]h ]h"]h$]h&]hhuh1j9hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKIhjB ubj()}(h **Members**h]j)}(hjt h]hMembers}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr ubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKRhjB ubjc)}(hhh](jh)}(h\``uV`` Default operating voltage during suspend, it can be adjusted among . h](jn)}(h``uV``h]j)}(hj h]huV}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKKhj ubj)}(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&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKJhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj hKKhj ubjh)}(h/``min_uV`` Minimum suspend voltage may be set. h](jn)}(h ``min_uV``h]j)}(hj h]hmin_uV}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKLhj ubj)}(hhh]j()}(h#Minimum suspend voltage may be set.h]h#Minimum suspend voltage may be set.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj hKLhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj hKLhj ubjh)}(h/``max_uV`` Maximum suspend voltage may be set. h](jn)}(h ``max_uV``h]j)}(hj h]hmax_uV}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKMhj ubj)}(hhh]j()}(h#Maximum suspend voltage may be set.h]h#Maximum suspend voltage may be set.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj hKMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj hKMhj ubjh)}(h(``mode`` Operating mode during suspend. h](jn)}(h``mode``h]j)}(hj? h]hmode}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj= ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKNhj9 ubj)}(hhh]j()}(hOperating mode during suspend.h]hOperating mode during suspend.}(hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjT hKNhjU ubah}(h]h ]h"]h$]h&]uh1jhj9 ubeh}(h]h ]h"]h$]h&]uh1jghjT hKNhj ubjh)}(hh``enabled`` operations during suspend. - DO_NOTHING_IN_SUSPEND - DISABLE_IN_SUSPEND - ENABLE_IN_SUSPEND h](jn)}(h ``enabled``h]j)}(hjx h]henabled}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjv ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKRhjr ubj)}(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&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKOhj ubah}(h]h ]h"]h$]h&]uh1jhjr ubeh}(h]h ]h"]h$]h&]uh1jghj hKRhj ubjh)}(hF``changeable`` Is this state can be switched between enabled/disabled,h](jn)}(h``changeable``h]j)}(hj h]h changeable}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKRhj ubj)}(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&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKShj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj hKRhj ubeh}(h]h ]h"]h$]h&]uh1jbhjB ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhjhNubj()}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKVhjVhhubj()}(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&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKDhjVhhubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j!regulation_constraints (C struct)c.regulation_constraintshNtauh1juhjVhhhjhNubj)}(hhh](j)}(hregulation_constraintsh]j)}(hstruct regulation_constraintsh](j)}(hjh]hstruct}(hj3 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 }(hjA hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ hhhj@ hKKubj)}(hregulation_constraintsh]j)}(hj- h]hregulation_constraints}(hjS hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj/ hhhj@ hKKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj+ hhhj@ hKKubah}(h]j& ah ](jjeh"]h$]h&]jj)jhuh1jhj@ hKKhj( hhubj)}(hhh]j()}(h regulator operating constraints.h]h regulator operating constraints.}(hju hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKfhjr hhubah}(h]h ]h"]h$]h&]uh1jhj( hhhj@ hKKubeh}(h]h ](jIstructeh"]h$]h&]jjIjj jj jjjuh1jhhhjVhjhNubj)}(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&]uh1jhj ubh:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hg/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&]hhuh1j9hg/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&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj ubjc)}(hhh](jh)}(hJ``name`` Descriptive name for the constraints, used for display purposes. h](jn)}(h``name``h]j)}(hj h]hname}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKkhj ubj)}(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&]uh1j'hj hKkhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj hKkhj ubjh)}(h/``min_uV`` Smallest voltage consumers may set. h](jn)}(h ``min_uV``h]j)}(hj h]hmin_uV}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKmhj ubj)}(hhh]j()}(h#Smallest voltage consumers may set.h]h#Smallest voltage consumers may set.}(hj4 hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj0 hKmhj1 ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj0 hKmhj ubjh)}(h.``max_uV`` Largest voltage consumers may set. h](jn)}(h ``max_uV``h]j)}(hjT h]hmax_uV}(hjV hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKnhjN ubj)}(hhh]j()}(h"Largest voltage consumers may set.h]h"Largest voltage consumers may set.}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hji hKnhjj ubah}(h]h ]h"]h$]h&]uh1jhjN ubeh}(h]h ]h"]h$]h&]uh1jghji hKnhj ubjh)}(hX``uV_offset`` Offset applied to voltages from consumer to compensate for voltage drops. h](jn)}(h ``uV_offset``h]j)}(hj h]h uV_offset}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKphj ubj)}(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&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKohj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj hKphj ubjh)}(h/``min_uA`` Smallest current consumers may set. h](jn)}(h ``min_uA``h]j)}(hj h]hmin_uA}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKrhj ubj)}(hhh]j()}(h#Smallest current consumers may set.h]h#Smallest current consumers may set.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj hKrhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj hKrhj ubjh)}(h.``max_uA`` Largest current consumers may set. h](jn)}(h ``max_uA``h]j)}(hj h]hmax_uA}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKshj ubj)}(hhh]j()}(h"Largest current consumers may set.h]h"Largest current consumers may set.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj hKshj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj hKshj ubjh)}(h#``ilim_uA`` Maximum input current. h](jn)}(h ``ilim_uA``h]j)}(hj9 h]hilim_uA}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7 ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKthj3 ubj)}(hhh]j()}(hMaximum input current.h]hMaximum input current.}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjN hKthjO ubah}(h]h ]h"]h$]h&]uh1jhj3 ubeh}(h]h ]h"]h$]h&]uh1jghjN hKthj ubjh)}(h7``pw_budget_mW`` Power budget for the regulator in mW. h](jn)}(h``pw_budget_mW``h]j)}(hjr h]h pw_budget_mW}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjp ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKuhjl ubj)}(hhh]j()}(h%Power budget for the regulator in mW.h]h%Power budget for the regulator in mW.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj hKuhj ubah}(h]h ]h"]h$]h&]uh1jhjl ubeh}(h]h ]h"]h$]h&]uh1jghj hKuhj ubjh)}(hC``system_load`` Load that isn't captured by any consumer requests. h](jn)}(h``system_load``h]j)}(hj h]h system_load}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKvhj ubj)}(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&]uh1j'hj hKvhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj hKvhj ubjh)}(h>``max_spread`` Max possible spread between coupled regulators h](jn)}(h``max_spread``h]j)}(hj h]h max_spread}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhK}hj ubj)}(hhh]j()}(h.Max possible spread between coupled regulatorsh]h.Max possible spread between coupled regulators}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj hK}hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj hK}hj ubjh)}(h4``max_uV_step`` Max possible step change in voltage h](jn)}(h``max_uV_step``h]j)}(hjh]h max_uV_step}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhK~hjubj)}(hhh]j()}(h#Max possible step change in voltageh]h#Max possible step change in voltage}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj2hK~hj3ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghj2hK~hj ubjh)}(hI``valid_modes_mask`` Mask of modes which may be configured by consumers. h](jn)}(h``valid_modes_mask``h]j)}(hjVh]hvalid_modes_mask}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjPubj)}(hhh]j()}(h3Mask of modes which may be configured by consumers.h]h3Mask of modes which may be configured by consumers.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjkhKhjlubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jghjkhKhj ubjh)}(hC``valid_ops_mask`` Operations which may be performed by consumers. h](jn)}(h``valid_ops_mask``h]j)}(hjh]hvalid_ops_mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(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&]uh1j'hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(hM``input_uV`` Input voltage for regulator when supplied by another regulator. h](jn)}(h ``input_uV``h]j)}(hjh]hinput_uV}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(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&]uh1j'hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(hJ``state_disk`` State for regulator when system is suspended in disk mode. h](jn)}(h``state_disk``h]j)}(hjh]h state_disk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(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&]uh1j'hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(hH``state_mem`` State for regulator when system is suspended in mem mode. h](jn)}(h ``state_mem``h]j)}(hj:h]h state_mem}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj4ubj)}(hhh]j()}(h9State for regulator when system is suspended in mem mode.h]h9State for regulator when system is suspended in mem mode.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjOhKhjPubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jghjOhKhj ubjh)}(hP``state_standby`` State for regulator when system is suspended in standby mode. h](jn)}(h``state_standby``h]j)}(hjsh]h state_standby}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjmubj)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(h8``over_curr_limits`` Limits for acting on over current. h](jn)}(h``over_curr_limits``h]j)}(hjh]hover_curr_limits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKxhjubj)}(hhh]j()}(h"Limits for acting on over current.h]h"Limits for acting on over current.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhKxhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKxhj ubjh)}(h;``over_voltage_limits`` Limits for acting on over voltage. h](jn)}(h``over_voltage_limits``h]j)}(hjh]hover_voltage_limits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKyhjubj)}(hhh]j()}(h"Limits for acting on over voltage.h]h"Limits for acting on over voltage.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhKyhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKyhj ubjh)}(h=``under_voltage_limits`` Limits for acting on under voltage. h](jn)}(h``under_voltage_limits``h]j)}(hjh]hunder_voltage_limits}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKzhjubj)}(hhh]j()}(h#Limits for acting on under voltage.h]h#Limits for acting on under voltage.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj4hKzhj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghj4hKzhj ubjh)}(h7``temp_limits`` Limits for acting on over temperature. h](jn)}(h``temp_limits``h]j)}(hjXh]h temp_limits}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhK{hjRubj)}(hhh]j()}(h&Limits for acting on over temperature.h]h&Limits for acting on over temperature.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjmhK{hjnubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jghjmhK{hj ubjh)}(h3``initial_state`` Suspend state to set by default. h](jn)}(h``initial_state``h]j)}(hjh]h initial_state}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(hhh]j()}(h Suspend state to set by default.h]h Suspend state to set by default.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(h)``initial_mode`` Mode to set at startup. h](jn)}(h``initial_mode``h]j)}(hjh]h initial_mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(hhh]j()}(hMode to set at startup.h]hMode to set at startup.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(hF``ramp_delay`` Time to settle down after voltage change (unit: uV/us) h](jn)}(h``ramp_delay``h]j)}(hjh]h ramp_delay}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(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&]uh1j'hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(hs``settling_time`` Time to settle down after voltage change when voltage change is non-linear (unit: microseconds). h](jn)}(h``settling_time``h]j)}(hj<h]h settling_time}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj6ubj)}(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).}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjRubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jghjQhKhj ubjh)}(hx``settling_time_up`` Time to settle down after voltage increase when voltage change is non-linear (unit: microseconds). h](jn)}(h``settling_time_up``h]j)}(hjvh]hsettling_time_up}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjpubj)}(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).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(hz``settling_time_down`` Time to settle down after voltage decrease when voltage change is non-linear (unit: microseconds). h](jn)}(h``settling_time_down``h]j)}(hjh]hsettling_time_down}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(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&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(h?``enable_time`` Turn-on time of the rails (unit: microseconds) h](jn)}(h``enable_time``h]j)}(hjh]h enable_time}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(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&]uh1j'hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(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](jn)}(h``uv_less_critical_window_ms``h]j)}(hj#h]huv_less_critical_window_ms}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(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&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghj8hKhj ubjh)}(h~``active_discharge`` Enable/disable active discharge. The enum regulator_active_discharge values are used for initialisation. h](jn)}(h``active_discharge``h]j)}(hj]h]hactive_discharge}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjWubj)}(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.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjsubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jghjrhKhj ubjh)}(h=``always_on`` Set if the regulator should never be disabled. h](jn)}(h ``always_on``h]j)}(hjh]h always_on}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(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&]uh1j'hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(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](jn)}(h ``boot_on``h]j)}(hjh]hboot_on}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(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&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(h=``apply_uV`` Apply the voltage constraint when initialising. h](jn)}(h ``apply_uV``h]j)}(hj h]happly_uV}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(hhh]j()}(h/Apply the voltage constraint when initialising.h]h/Apply the voltage constraint when initialising.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(hO``ramp_disable`` Disable ramp delay when initialising or when setting voltage. h](jn)}(h``ramp_disable``h]j)}(hjCh]h ramp_disable}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj=ubj)}(hhh]j()}(h=Disable ramp delay when initialising or when setting voltage.h]h=Disable ramp delay when initialising or when setting voltage.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjXhKhjYubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jghjXhKhj ubjh)}(h?``soft_start`` Enable soft start so that voltage ramps slowly. h](jn)}(h``soft_start``h]j)}(hj|h]h soft_start}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjvubj)}(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&]uh1j'hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(h;``pull_down`` Enable pull down when regulator is disabled. h](jn)}(h ``pull_down``h]j)}(hjh]h pull_down}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(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&]uh1j'hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(h[``system_critical`` Set if the regulator is critical to system stability or functionality. h](jn)}(h``system_critical``h]j)}(hjh]hsystem_critical}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(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&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(h@``over_current_protection`` Auto disable on over current event. h](jn)}(h``over_current_protection``h]j)}(hj(h]hover_current_protection}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj"ubj)}(hhh]j()}(h#Auto disable on over current event.h]h#Auto disable on over current event.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj=hKhj>ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jghj=hKhj ubjh)}(h:``over_current_detection`` Configure over current limits. h](jn)}(h``over_current_detection``h]j)}(hjah]hover_current_detection}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj[ubj)}(hhh]j()}(hConfigure over current limits.h]hConfigure over current limits.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjvhKhjwubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jghjvhKhj ubjh)}(h:``over_voltage_detection`` Configure over voltage limits. h](jn)}(h``over_voltage_detection``h]j)}(hjh]hover_voltage_detection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(hhh]j()}(hConfigure over voltage limits.h]hConfigure over voltage limits.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(h<``under_voltage_detection`` Configure under voltage limits. h](jn)}(h``under_voltage_detection``h]j)}(hjh]hunder_voltage_detection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(hhh]j()}(hConfigure under voltage limits.h]hConfigure under voltage limits.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhj ubjh)}(h:``over_temp_detection`` Configure over temperature limits.h](jn)}(h``over_temp_detection``h]j)}(hj h]hover_temp_detection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj)}(hhh]j()}(h"Configure over temperature limits.h]h"Configure over temperature limits.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj"ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghj!hKhj ubeh}(h]h ]h"]h$]h&]uh1jbhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhjhNubj()}(h**Description**h]j)}(hjOh]h Description}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjVhhubj()}(hGThis struct describes regulator and board/machine specific constraints.h]hGThis struct describes regulator and board/machine specific constraints.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKghjVhhubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j$regulator_consumer_supply (C struct)c.regulator_consumer_supplyhNtauh1juhjVhhhjhNubj)}(hhh](j)}(hregulator_consumer_supplyh]j)}(h struct regulator_consumer_supplyh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKlubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKlubj)}(hregulator_consumer_supplyh]j)}(hjh]hregulator_consumer_supply}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKlubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhKlubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhKlhjhhubj)}(hhh]j()}(hsupply -> device mappingh]hsupply -> device mapping}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKlubeh}(h]h ](jIstructeh"]h$]h&]jjIjjjjjjjuh1jhhhjVhjhNubj)}(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&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hg/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; };}hj sbah}(h]h ]h"]h$]h&]hhuh1j9hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubj()}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjubjc)}(hhh](jh)}(h4``dev_name`` Result of dev_name() for the consumer. h](jn)}(h ``dev_name``h]j)}(hj<h]hdev_name}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhj6ubj)}(hhh]j()}(h&Result of dev_name() for the consumer.h]h&Result of dev_name() for the consumer.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjQhKhjRubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jghjQhKhj3ubjh)}(h``supply`` Name for the supply.h](jn)}(h ``supply``h]j)}(hjuh]hsupply}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjoubj)}(hhh]j()}(hName for the supply.h]hName for the supply.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jghjhKhj3ubeh}(h]h ]h"]h$]h&]uh1jbhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhjhNubj()}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjVhhubj()}(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&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhKhjVhhubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](jregulator_init_data (C struct)c.regulator_init_datahNtauh1juhjVhhhjhNubj)}(hhh](j)}(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&]hhjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhKhjhhubj)}(hhh]j()}(h'regulator platform initialisation data.h]h'regulator platform initialisation data.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhM hj5hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jIstructeh"]h$]h&]jjIjjPjjPjjjuh1jhhhjVhjhNubj)}(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}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubh:}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjTubj:)}(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; };}hjusbah}(h]h ]h"]h$]h&]hhuh1j9hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjTubj()}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjTubjc)}(hhh](jh)}(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](jn)}(h``supply_regulator``h]j)}(hjh]hsupply_regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjubj)}(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&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhMhjubjh)}(hV``constraints`` Constraints. These must be specified for the regulator to be usable. h](jn)}(h``constraints``h]j)}(hjh]h constraints}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjubj)}(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&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhMhjubjh)}(h>``num_consumer_supplies`` Number of consumer device supplies. h](jn)}(h``num_consumer_supplies``h]j)}(hjh]hnum_consumer_supplies}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjubj)}(hhh]j()}(h#Number of consumer device supplies.h]h#Number of consumer device supplies.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj.hMhj/ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghj.hMhjubjh)}(h<``consumer_supplies`` Consumer device supply configuration. h](jn)}(h``consumer_supplies``h]j)}(hjRh]hconsumer_supplies}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjLubj)}(hhh]j()}(h%Consumer device supply configuration.h]h%Consumer device supply configuration.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjghMhjhubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jghjghMhjubjh)}(h.``driver_data`` Data passed to regulator_init.h](jn)}(h``driver_data``h]j)}(hjh]h driver_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjubj)}(hhh]j()}(hData passed to regulator_init.h]hData passed to regulator_init.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhMhjubeh}(h]h ]h"]h$]h&]uh1jbhjTubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhjhNubj()}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhMhjVhhubj()}(h>Initialisation constraints, our supply and consumers supplies.h]h>Initialisation constraints, our supply and consumers supplies.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hg/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:163: ./include/linux/regulator/machine.hhM hjVhhubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](jregulator_ops (C struct)c.regulator_opshNtauh1juhjVhhhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhNubj)}(hhh](j)}(h regulator_opsh]j)}(hstruct regulator_opsh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhjhKubj)}(h regulator_opsh]j)}(hjh]h regulator_ops}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj hhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhKhjhhubj)}(hhh]j()}(hregulator operations.h]hregulator operations.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK>hjLhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jIstructeh"]h$]h&]jjIjjgjjgjjjuh1jhhhjVhjhNubj)}(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}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubh:}(hjohhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKBhjkubj:)}(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 *); };}hjsbah}(h]h ]h"]h$]h&]hhuh1j9hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKDhjkubj()}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKkhjkubjc)}(hhh](jh)}(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](jn)}(h``list_voltage``h]j)}(hjh]h list_voltage}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKThjubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKQhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKThjubjh)}(h``set_voltage`` Set the voltage for the regulator within the range specified. The driver should select the voltage closest to min_uV. h](jn)}(h``set_voltage``h]j)}(hjh]h set_voltage}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKGhjubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKFhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghj hKGhjubjh)}(h2``map_voltage`` Convert a voltage into a selector h](jn)}(h``map_voltage``h]j)}(hj0h]h map_voltage}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKJhj*ubj)}(hhh]j()}(h!Convert a voltage into a selectorh]h!Convert a voltage into a selector}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjEhKJhjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jghjEhKJhjubjh)}(hT``set_voltage_sel`` Set the voltage for the regulator using the specified selector. h](jn)}(h``set_voltage_sel``h]j)}(hjih]hset_voltage_sel}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKIhjcubj)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKHhjubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jghj~hKIhjubjh)}(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](jn)}(h``get_voltage``h]j)}(hjh]h get_voltage}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKMhjubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKMhjubjh)}(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](jn)}(h``get_voltage_sel``h]j)}(hjh]hget_voltage_sel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKPhjubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKNhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKPhjubjh)}(h``set_current_limit`` Configure a limit for a current-limited regulator. The driver should select the current closest to max_uA. h](jn)}(h``set_current_limit``h]j)}(hjh]hset_current_limit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKWhjubj)}(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.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKVhj-ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghj,hKWhjubjh)}(hP``get_current_limit`` Get the configured limit for a current-limited regulator. h](jn)}(h``get_current_limit``h]j)}(hjQh]hget_current_limit}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKXhjKubj)}(hhh]j()}(h9Get the configured limit for a current-limited regulator.h]h9Get the configured limit for a current-limited regulator.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjfhKXhjgubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jghjfhKXhjubjh)}(h6``set_input_current_limit`` Configure an input limit. h](jn)}(h``set_input_current_limit``h]j)}(hjh]hset_input_current_limit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKYhjubj)}(hhh]j()}(hConfigure an input limit.h]hConfigure an input limit.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhKYhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKYhjubjh)}(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](jn)}(h``set_over_current_protection``h]j)}(hjh]hset_over_current_protection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK]hjubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK[hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhK]hjubjh)}(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](jn)}(h``set_over_voltage_protection``h]j)}(hjh]hset_over_voltage_protection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKmhjubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKkhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKmhjubjh)}(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](jn)}(h ``set_under_voltage_protection``h]j)}(hj7h]hset_under_voltage_protection}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKphj1ubj)}(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.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKnhjMubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jghjLhKphjubjh)}(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](jn)}(h``set_thermal_protection``h]j)}(hjqh]hset_thermal_protection}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKshjkubj)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKqhjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jghjhKshjubjh)}(hL``set_active_discharge`` Set active discharge enable/disable of regulators. h](jn)}(h``set_active_discharge``h]j)}(hjh]hset_active_discharge}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKuhjubj)}(hhh]j()}(h2Set active discharge enable/disable of regulators.h]h2Set active discharge enable/disable of regulators.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhKuhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKuhjubjh)}(h/``enable`` Configure the regulator as enabled. h](jn)}(h ``enable``h]j)}(hjh]henable}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKAhjubj)}(hhh]j()}(h#Configure the regulator as enabled.h]h#Configure the regulator as enabled.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhKAhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKAhjubjh)}(h1``disable`` Configure the regulator as disabled. h](jn)}(h ``disable``h]j)}(hjh]hdisable}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKBhjubj)}(hhh]j()}(h$Configure the regulator as disabled.h]h$Configure the regulator as disabled.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj2hKBhj3ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghj2hKBhjubjh)}(h_``is_enabled`` Return 1 if the regulator is enabled, 0 if not. May also return negative errno. h](jn)}(h``is_enabled``h]j)}(hjVh]h is_enabled}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKDhjPubj)}(hhh]j()}(hOReturn 1 if the regulator is enabled, 0 if not. May also return negative errno.h]hOReturn 1 if the regulator is enabled, 0 if not. May also return negative errno.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKChjlubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jghjkhKDhjubjh)}(hB``set_mode`` Set the configured operating mode for the regulator. h](jn)}(h ``set_mode``h]j)}(hjh]hset_mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKwhjubj)}(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&]uh1j'hjhKwhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKwhjubjh)}(hB``get_mode`` Get the configured operating mode for the regulator. h](jn)}(h ``get_mode``h]j)}(hjh]hget_mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKxhjubj)}(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&]uh1j'hjhKxhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKxhjubjh)}(h@``get_error_flags`` Get the current error(s) for the regulator. h](jn)}(h``get_error_flags``h]j)}(hjh]hget_error_flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKyhjubj)}(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&]uh1j'hjhKyhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKyhjubjh)}(hw``enable_time`` Time taken for the regulator voltage output voltage to stabilise after being enabled, in microseconds. h](jn)}(h``enable_time``h]j)}(hj;h]h enable_time}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj5ubj)}(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.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjQubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jghjPhKhjubjh)}(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](jn)}(h``set_ramp_delay``h]j)}(hjuh]hset_ramp_delay}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjoubj)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jghjhKhjubjh)}(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](jn)}(h``set_voltage_time``h]j)}(hjh]hset_voltage_time}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhjubjh)}(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](jn)}(h``set_voltage_time_sel``h]j)}(hjh]hset_voltage_time_sel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhKhjubjh)}(h8``set_soft_start`` Enable soft start for the regulator. h](jn)}(h``set_soft_start``h]j)}(hj#h]hset_soft_start}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjubj)}(hhh]j()}(h$Enable soft start for the regulator.h]h$Enable soft start for the regulator.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj8hKhj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghj8hKhjubjh)}(hv``get_status`` Return actual (not as-configured) status of regulator, as a REGULATOR_STATUS value (or negative errno) h](jn)}(h``get_status``h]j)}(hj\h]h get_status}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK{hjVubj)}(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)}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKzhjrubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jghjqhK{hjubjh)}(hy``get_optimum_mode`` Get the most efficient operating mode for the regulator when running with the specified parameters. h](jn)}(h``get_optimum_mode``h]j)}(hjh]hget_optimum_mode}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK}hjubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK|hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhK}hjubjh)}(h-``set_load`` Set the load for the regulator. h](jn)}(h ``set_load``h]j)}(hjh]hset_load}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK~hjubj)}(hhh]j()}(hSet the load for the regulator.h]hSet the load for the regulator.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhK~hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhK~hjubjh)}(h1``set_bypass`` Set the regulator in bypass mode. h](jn)}(h``set_bypass``h]j)}(hj h]h set_bypass}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj ubj)}(hhh]j()}(h!Set the regulator in bypass mode.h]h!Set the regulator in bypass mode.}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj hKhjubjh)}(h4``get_bypass`` Get the regulator bypass mode state. h](jn)}(h``get_bypass``h]j)}(hjB h]h get_bypass}(hjD hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj< ubj)}(hhh]j()}(h$Get the regulator bypass mode state.h]h$Get the regulator bypass mode state.}(hj[ hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjW hKhjX ubah}(h]h ]h"]h$]h&]uh1jhj< ubeh}(h]h ]h"]h$]h&]uh1jghjW hKhjubjh)}(hX``set_suspend_voltage`` Set the voltage for the regulator when the system is suspended. h](jn)}(h``set_suspend_voltage``h]j)}(hj{ h]hset_suspend_voltage}(hj} hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjy ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhju ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj ubah}(h]h ]h"]h$]h&]uh1jhju ubeh}(h]h ]h"]h$]h&]uh1jghj hKhjubjh)}(hS``set_suspend_enable`` Mark the regulator as enabled when the system is suspended. h](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj hKhjubjh)}(hU``set_suspend_disable`` Mark the regulator as disabled when the system is suspended. h](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj ubj)}(hhh]j()}(h!hKhjubjh)}(h4``resume`` Resume operation of suspended regulator. h](jn)}(h ``resume``h]j)}(hjc!h]hresume}(hje!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja!ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj]!ubj)}(hhh]j()}(h(Resume operation of suspended regulator.h]h(Resume operation of suspended regulator.}(hj|!hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjx!hKhjy!ubah}(h]h ]h"]h$]h&]uh1jhj]!ubeh}(h]h ]h"]h$]h&]uh1jghjx!hKhjubjh)}(hV``set_pull_down`` Configure the regulator to pull down when the regulator is disabled.h](jn)}(h``set_pull_down``h]j)}(hj!h]h set_pull_down}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj!ubj)}(hhh]j()}(hDConfigure the regulator to pull down when the regulator is disabled.h]hDConfigure the regulator to pull down when the regulator is disabled.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj!hKhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jghj!hKhjubeh}(h]h ]h"]h$]h&]uh1jbhjkubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhjhNubj()}(h**Description**h]j)}(hj!h]h Description}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhjVhhubj)}(hX.- REGULATOR_SEVERITY_PROT should automatically shut down the regulator(s). - REGULATOR_SEVERITY_ERR should indicate that over-current situation is caused by an unrecoverable error but HW does not perform automatic shut down. - REGULATOR_SEVERITY_WARN should indicate situation where hardware is still believed to not be damaged but that a board sepcific recovery action is needed. If lim_uA is 0 the limit should not be changed but the detection should just be enabled/disabled as is requested. h]h bullet_list)}(hhh](h list_item)}(hIREGULATOR_SEVERITY_PROT should automatically shut down the regulator(s). h]j()}(hHREGULATOR_SEVERITY_PROT should automatically shut down the regulator(s).h]hHREGULATOR_SEVERITY_PROT should automatically shut down the regulator(s).}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK]hj!ubah}(h]h ]h"]h$]h&]uh1j!hj!ubj!)}(hREGULATOR_SEVERITY_ERR should indicate that over-current situation is caused by an unrecoverable error but HW does not perform automatic shut down. h]jc)}(hhh]jh)}(hREGULATOR_SEVERITY_ERR should indicate that over-current situation is caused by an unrecoverable error but HW does not perform automatic shut down. h](jn)}(hEREGULATOR_SEVERITY_ERR should indicate that over-current situation ish]hEREGULATOR_SEVERITY_ERR should indicate that over-current situation is}(hj#"hhhNhNubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKahj"ubj)}(hhh]j()}(hMcaused by an unrecoverable error but HW does not perform automatic shut down.h]hMcaused by an unrecoverable error but HW does not perform automatic shut down.}(hj5"hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhK`hj2"ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jghj1"hKahj"ubah}(h]h ]h"]h$]h&]uh1jbhj"ubah}(h]h ]h"]h$]h&]uh1j!hj!ubj!)}(hX-REGULATOR_SEVERITY_WARN should indicate situation where hardware is still believed to not be damaged but that a board sepcific recovery action is needed. If lim_uA is 0 the limit should not be changed but the detection should just be enabled/disabled as is requested. h]jc)}(hhh]jh)}(hX REGULATOR_SEVERITY_WARN should indicate situation where hardware is still believed to not be damaged but that a board sepcific recovery action is needed. If lim_uA is 0 the limit should not be changed but the detection should just be enabled/disabled as is requested. h](jn)}(hCREGULATOR_SEVERITY_WARN should indicate situation where hardware ish]hCREGULATOR_SEVERITY_WARN should indicate situation where hardware is}(hjg"hhhNhNubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhhjc"ubj)}(hhh]j()}(hstill believed to not be damaged but that a board sepcific recovery action is needed. If lim_uA is 0 the limit should not be changed but the detection should just be enabled/disabled as is requested.h]hstill believed to not be damaged but that a board sepcific recovery action is needed. If lim_uA is 0 the limit should not be changed but the detection should just be enabled/disabled as is requested.}(hjy"hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKdhjv"ubah}(h]h ]h"]h$]h&]uh1jhjc"ubeh}(h]h ]h"]h$]h&]uh1jghju"hKhhj`"ubah}(h]h ]h"]h$]h&]uh1jbhj\"ubah}(h]h ]h"]h$]h&]uh1j!hj!ubeh}(h]h ]h"]h$]h&]bullet-uh1j!hj"hK]hj!ubah}(h]h ]h"]h$]h&]uh1jhj"hK]hjVhhubj()}(h^This struct describes regulator operations which can be implemented by regulator chip drivers.h]h^This struct describes regulator operations which can be implemented by regulator chip drivers.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKjhjVhhubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](jregulator_desc (C struct)c.regulator_deschNtauh1juhjVhhhjhNubj)}(hhh](j)}(hregulator_desch]j)}(hstruct regulator_desch](j)}(hjh]hstruct}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKpubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"hhhj"hKpubj)}(hregulator_desch]j)}(hj"h]hregulator_desc}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj"hhhj"hKpubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj"hhhj"hKpubah}(h]j"ah ](jjeh"]h$]h&]jj)jhuh1jhj"hKphj"hhubj)}(hhh]j()}(hStatic regulator descriptorh]hStatic regulator descriptor}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhKhj#hhubah}(h]h ]h"]h$]h&]uh1jhj"hhhj"hKpubeh}(h]h ](jIstructeh"]h$]h&]jjIjj0#jj0#jjjuh1jhhhjVhjhNubj)}(hXi **Definition**:: struct 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); }; **Members** ``name`` Identifying name for the regulator. ``supply_name`` Identifying the regulator supply ``of_match`` Name used to identify regulator in DT. ``of_match_full_name`` A flag to indicate that the of_match string, if present, should be matched against the node full_name. ``regulators_node`` Name of node containing regulator definitions in DT. ``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. ``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. ``id`` Numerical identifier for the regulator. ``continuous_voltage_range`` Indicates if the regulator can set any voltage within constrains range. ``n_voltages`` Number of selectors available for ops.list_voltage(). ``n_current_limits`` Number of selectors available for current limits ``ops`` Regulator operations table. ``irq`` Interrupt number for the regulator. ``type`` Indicates if the regulator is a voltage or current regulator. ``owner`` Module providing the regulator, used for refcounting. ``min_uV`` Voltage given by the lowest selector (if linear mapping) ``uV_step`` Voltage increase with each selector (if linear mapping) ``linear_min_sel`` Minimal selector for starting linear mapping ``fixed_uV`` Fixed voltage of rails. ``ramp_delay`` Time to settle down after voltage change (unit: uV/us) ``min_dropout_uV`` The minimum dropout voltage this regulator can handle ``linear_ranges`` A constant table of possible voltage ranges. ``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. ``n_linear_ranges`` Number of entries in the **linear_ranges** (and in linear_range_selectors_bitfield if used) table(s). ``volt_table`` Voltage mapping table (if table based mapping) ``curr_table`` Current limit mapping table (if table based mapping) ``vsel_range_reg`` Register for range selector when using pickable ranges and ``regulator_map_*_voltage_*_pickable`` functions. ``vsel_range_mask`` Mask for register bitfield used for range selector ``range_applied_by_vsel`` A flag to indicate that changes to vsel_range_reg are only effective after vsel_reg is written ``vsel_reg`` Register for selector when using ``regulator_map_*_voltage_*`` ``vsel_mask`` Mask for register bitfield used for selector ``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. ``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&]uh1jhj8#ubh:}(hj8#hhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj4#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); };}hjU#sbah}(h]h ]h"]h$]h&]hhuh1j9hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj4#ubj()}(h **Members**h]j)}(hjf#h]hMembers}(hjh#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd#ubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMGhj4#ubjc)}(hhh](jh)}(h-``name`` Identifying name for the regulator. h](jn)}(h``name``h]j)}(hj#h]hname}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj#ubj)}(hhh]j()}(h#Identifying name for the regulator.h]h#Identifying name for the regulator.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj#hMhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jghj#hMhj|#ubjh)}(h1``supply_name`` Identifying the regulator supply h](jn)}(h``supply_name``h]j)}(hj#h]h supply_name}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj#ubj)}(hhh]j()}(h Identifying the regulator supplyh]h Identifying the regulator supply}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj#hMhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jghj#hMhj|#ubjh)}(h4``of_match`` Name used to identify regulator in DT. h](jn)}(h ``of_match``h]j)}(hj#h]hof_match}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM hj#ubj)}(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&]uh1j'hj $hM hj $ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jghj $hM hj|#ubjh)}(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](jn)}(h``of_match_full_name``h]j)}(hj0$h]hof_match_full_name}(hj2$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.$ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM hj*$ubj)}(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.}(hjI$hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM hjF$ubah}(h]h ]h"]h$]h&]uh1jhj*$ubeh}(h]h ]h"]h$]h&]uh1jghjE$hM hj|#ubjh)}(hI``regulators_node`` Name of node containing regulator definitions in DT. h](jn)}(h``regulators_node``h]j)}(hjj$h]hregulators_node}(hjl$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjh$ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM hjd$ubj)}(hhh]j()}(h4Name of node containing regulator definitions in DT.h]h4Name of node containing regulator definitions in DT.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj$hM hj$ubah}(h]h ]h"]h$]h&]uh1jhjd$ubeh}(h]h ]h"]h$]h&]uh1jghj$hM hj|#ubjh)}(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](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj$ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM hj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jghj$hMhj|#ubjh)}(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](jn)}(h ``init_cb``h]j)}(hj$h]hinit_cb}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj$ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jghj$hMhj|#ubjh)}(h/``id`` Numerical identifier for the regulator. h](jn)}(h``id``h]j)}(hj%h]hid}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj%ubj)}(hhh]j()}(h'Numerical identifier for the regulator.h]h'Numerical identifier for the regulator.}(hj0%hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj,%hMhj-%ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jghj,%hMhj|#ubjh)}(he``continuous_voltage_range`` Indicates if the regulator can set any voltage within constrains range. h](jn)}(h``continuous_voltage_range``h]j)}(hjP%h]hcontinuous_voltage_range}(hjR%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN%ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM"hjJ%ubj)}(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.}(hji%hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM!hjf%ubah}(h]h ]h"]h$]h&]uh1jhjJ%ubeh}(h]h ]h"]h$]h&]uh1jghje%hM"hj|#ubjh)}(hE``n_voltages`` Number of selectors available for ops.list_voltage(). h](jn)}(h``n_voltages``h]j)}(hj%h]h n_voltages}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM#hj%ubj)}(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&]uh1j'hj%hM#hj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jghj%hM#hj|#ubjh)}(hF``n_current_limits`` Number of selectors available for current limits h](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM$hj%ubj)}(hhh]j()}(h0Number of selectors available for current limitsh]h0Number of selectors available for current limits}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj%hM$hj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jghj%hM$hj|#ubjh)}(h$``ops`` Regulator operations table. h](jn)}(h``ops``h]j)}(hj%h]hops}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj%ubj)}(hhh]j()}(hRegulator operations table.h]hRegulator operations table.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj&hMhj&ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jghj&hMhj|#ubjh)}(h,``irq`` Interrupt number for the regulator. h](jn)}(h``irq``h]j)}(hj5&h]hirq}(hj7&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3&ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj/&ubj)}(hhh]j()}(h#Interrupt number for the regulator.h]h#Interrupt number for the regulator.}(hjN&hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjJ&hMhjK&ubah}(h]h ]h"]h$]h&]uh1jhj/&ubeh}(h]h ]h"]h$]h&]uh1jghjJ&hMhj|#ubjh)}(hG``type`` Indicates if the regulator is a voltage or current regulator. h](jn)}(h``type``h]j)}(hjn&h]htype}(hjp&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjl&ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjh&ubj)}(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.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj&hMhj&ubah}(h]h ]h"]h$]h&]uh1jhjh&ubeh}(h]h ]h"]h$]h&]uh1jghj&hMhj|#ubjh)}(h@``owner`` Module providing the regulator, used for refcounting. h](jn)}(h ``owner``h]j)}(hj&h]howner}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj&ubj)}(hhh]j()}(h5Module providing the regulator, used for refcounting.h]h5Module providing the regulator, used for refcounting.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj&hMhj&ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jghj&hMhj|#ubjh)}(hD``min_uV`` Voltage given by the lowest selector (if linear mapping) h](jn)}(h ``min_uV``h]j)}(hj&h]hmin_uV}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM&hj&ubj)}(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&]uh1j'hj&hM&hj&ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jghj&hM&hj|#ubjh)}(hD``uV_step`` Voltage increase with each selector (if linear mapping) h](jn)}(h ``uV_step``h]j)}(hj'h]huV_step}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM'hj'ubj)}(hhh]j()}(h7Voltage increase with each selector (if linear mapping)h]h7Voltage increase with each selector (if linear mapping)}(hj2'hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj.'hM'hj/'ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jghj.'hM'hj|#ubjh)}(h@``linear_min_sel`` Minimal selector for starting linear mapping h](jn)}(h``linear_min_sel``h]j)}(hjR'h]hlinear_min_sel}(hjT'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP'ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM(hjL'ubj)}(hhh]j()}(h,Minimal selector for starting linear mappingh]h,Minimal selector for starting linear mapping}(hjk'hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjg'hM(hjh'ubah}(h]h ]h"]h$]h&]uh1jhjL'ubeh}(h]h ]h"]h$]h&]uh1jghjg'hM(hj|#ubjh)}(h%``fixed_uV`` Fixed voltage of rails. h](jn)}(h ``fixed_uV``h]j)}(hj'h]hfixed_uV}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM)hj'ubj)}(hhh]j()}(hFixed voltage of rails.h]hFixed voltage of rails.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj'hM)hj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jghj'hM)hj|#ubjh)}(hF``ramp_delay`` Time to settle down after voltage change (unit: uV/us) h](jn)}(h``ramp_delay``h]j)}(hj'h]h ramp_delay}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM*hj'ubj)}(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&]uh1j'hj'hM*hj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jghj'hM*hj|#ubjh)}(hI``min_dropout_uV`` The minimum dropout voltage this regulator can handle h](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM+hj'ubj)}(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&]uh1j'hj(hM+hj(ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jghj(hM+hj|#ubjh)}(h?``linear_ranges`` A constant table of possible voltage ranges. h](jn)}(h``linear_ranges``h]j)}(hj6(h]h linear_ranges}(hj8(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4(ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM,hj0(ubj)}(hhh]j()}(h,A constant table of possible voltage ranges.h]h,A constant table of possible voltage ranges.}(hjO(hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjK(hM,hjL(ubah}(h]h ]h"]h$]h&]uh1jhj0(ubeh}(h]h ]h"]h$]h&]uh1jghjK(hM,hj|#ubjh)}(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](jn)}(h#``linear_range_selectors_bitfield``h]j)}(hjo(h]hlinear_range_selectors_bitfield}(hjq(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjm(ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM0hji(ubj)}(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.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM-hj(ubah}(h]h ]h"]h$]h&]uh1jhji(ubeh}(h]h ]h"]h$]h&]uh1jghj(hM0hj|#ubjh)}(hz``n_linear_ranges`` Number of entries in the **linear_ranges** (and in linear_range_selectors_bitfield if used) table(s). h](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM2hj(ubj)}(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&]uh1jhj(ubh; (and in linear_range_selectors_bitfield if used) table(s).}(hj(hhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM1hj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jghj(hM2hj|#ubjh)}(h>``volt_table`` Voltage mapping table (if table based mapping) h](jn)}(h``volt_table``h]j)}(hj(h]h volt_table}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM3hj(ubj)}(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&]uh1j'hj )hM3hj )ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jghj )hM3hj|#ubjh)}(hD``curr_table`` Current limit mapping table (if table based mapping) h](jn)}(h``curr_table``h]j)}(hj.)h]h curr_table}(hj0)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,)ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM4hj()ubj)}(hhh]j()}(h4Current limit mapping table (if table based mapping)h]h4Current limit mapping table (if table based mapping)}(hjG)hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjC)hM4hjD)ubah}(h]h ]h"]h$]h&]uh1jhj()ubeh}(h]h ]h"]h$]h&]uh1jghjC)hM4hj|#ubjh)}(h``vsel_range_reg`` Register for range selector when using pickable ranges and ``regulator_map_*_voltage_*_pickable`` functions. h](jn)}(h``vsel_range_reg``h]j)}(hjg)h]hvsel_range_reg}(hji)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje)ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM7hja)ubj)}(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 }(hj)hhhNhNubj)}(h&``regulator_map_*_voltage_*_pickable``h]h"regulator_map_*_voltage_*_pickable}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubh functions.}(hj)hhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM6hj})ubah}(h]h ]h"]h$]h&]uh1jhja)ubeh}(h]h ]h"]h$]h&]uh1jghj|)hM7hj|#ubjh)}(hG``vsel_range_mask`` Mask for register bitfield used for range selector h](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM8hj)ubj)}(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&]uh1j'hj)hM8hj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jghj)hM8hj|#ubjh)}(hy``range_applied_by_vsel`` A flag to indicate that changes to vsel_range_reg are only effective after vsel_reg is written h](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM:hj)ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM9hj*ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jghj*hM:hj|#ubjh)}(hL``vsel_reg`` Register for selector when using ``regulator_map_*_voltage_*`` h](jn)}(h ``vsel_reg``h]j)}(hj&*h]hvsel_reg}(hj(*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$*ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM;hj *ubj)}(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_*}(hjG*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?*ubeh}(h]h ]h"]h$]h&]uh1j'hj;*hM;hj<*ubah}(h]h ]h"]h$]h&]uh1jhj *ubeh}(h]h ]h"]h$]h&]uh1jghj;*hM;hj|#ubjh)}(h;``vsel_mask`` Mask for register bitfield used for selector h](jn)}(h ``vsel_mask``h]j)}(hjm*h]h vsel_mask}(hjo*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk*ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM<hjg*ubj)}(hhh]j()}(h,Mask for register bitfield used for selectorh]h,Mask for register bitfield used for selector}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj*hM<hj*ubah}(h]h ]h"]h$]h&]uh1jhjg*ubeh}(h]h ]h"]h$]h&]uh1jghj*hM<hj|#ubjh)}(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](jn)}(h ``vsel_step``h]j)}(hj*h]h vsel_step}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMAhj*ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM=hj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jghj*hMAhj|#ubjh)}(hP``csel_reg`` Register for current limit selector using regmap set_current_limit h](jn)}(h ``csel_reg``h]j)}(hj*h]hcsel_reg}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMBhj*ubj)}(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&]uh1j'hj*hMBhj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jghj*hMBhj|#ubjh)}(hI``csel_mask`` Mask for register bitfield used for current limit selector h](jn)}(h ``csel_mask``h]j)}(hj+h]h csel_mask}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMChj+ubj)}(hhh]j()}(h:Mask for register bitfield used for current limit selectorh]h:Mask for register bitfield used for current limit selector}(hj2+hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj.+hMChj/+ubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jghj.+hMChj|#ubjh)}(hm``apply_reg`` Register for initiate voltage change on the output when using regulator_set_voltage_sel_regmap h](jn)}(h ``apply_reg``h]j)}(hjR+h]h apply_reg}(hjT+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP+ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMEhjL+ubj)}(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}(hjk+hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMDhjh+ubah}(h]h ]h"]h$]h&]uh1jhjL+ubeh}(h]h ]h"]h$]h&]uh1jghjg+hMEhj|#ubjh)}(h{``apply_bit`` Register bitfield used for initiate voltage change on the output when using regulator_set_voltage_sel_regmap h](jn)}(h ``apply_bit``h]j)}(hj+h]h apply_bit}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMGhj+ubj)}(hhh]j()}(hlRegister bitfield used for initiate voltage change on the output when using regulator_set_voltage_sel_regmaph]hlRegister bitfield used for initiate voltage change on the output when using regulator_set_voltage_sel_regmap}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMFhj+ubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jghj+hMGhj|#ubjh)}(hI``enable_reg`` Register for control when using regmap enable/disable ops h](jn)}(h``enable_reg``h]j)}(hj+h]h enable_reg}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMHhj+ubj)}(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&]uh1j'hj+hMHhj+ubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jghj+hMHhj|#ubjh)}(hF``enable_mask`` Mask for control when using regmap enable/disable ops h](jn)}(h``enable_mask``h]j)}(hj+h]h enable_mask}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMIhj+ubj)}(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&]uh1j'hj,hMIhj,ubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jghj,hMIhj|#ubjh)}(hO``enable_val`` Enabling value for control when using regmap enable/disable ops h](jn)}(h``enable_val``h]j)}(hj8,h]h enable_val}(hj:,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6,ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMJhj2,ubj)}(hhh]j()}(h?Enabling value for control when using regmap enable/disable opsh]h?Enabling value for control when using regmap enable/disable ops}(hjQ,hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjM,hMJhjN,ubah}(h]h ]h"]h$]h&]uh1jhj2,ubeh}(h]h ]h"]h$]h&]uh1jghjM,hMJhj|#ubjh)}(hQ``disable_val`` Disabling value for control when using regmap enable/disable ops h](jn)}(h``disable_val``h]j)}(hjq,h]h disable_val}(hjs,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjo,ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMKhjk,ubj)}(hhh]j()}(h@Disabling value for control when using regmap enable/disable opsh]h@Disabling value for control when using regmap enable/disable ops}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj,hMKhj,ubah}(h]h ]h"]h$]h&]uh1jhjk,ubeh}(h]h ]h"]h$]h&]uh1jghj,hMKhj|#ubjh)}(h``enable_is_inverted`` A flag to indicate set enable_mask bits to disable when using regulator_enable_regmap and friends APIs. h](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMMhj,ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMLhj,ubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jghj,hMMhj|#ubjh)}(hA``bypass_reg`` Register for control when using regmap set_bypass h](jn)}(h``bypass_reg``h]j)}(hj,h]h bypass_reg}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMNhj,ubj)}(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&]uh1j'hj,hMNhj,ubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jghj,hMNhj|#ubjh)}(h>``bypass_mask`` Mask for control when using regmap set_bypass h](jn)}(h``bypass_mask``h]j)}(hj-h]h bypass_mask}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMOhj-ubj)}(hhh]j()}(h-Mask for control when using regmap set_bypassh]h-Mask for control when using regmap set_bypass}(hj6-hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj2-hMOhj3-ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jghj2-hMOhj|#ubjh)}(hJ``bypass_val_on`` Enabling value for control when using regmap set_bypass h](jn)}(h``bypass_val_on``h]j)}(hjV-h]h bypass_val_on}(hjX-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT-ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMPhjP-ubj)}(hhh]j()}(h7Enabling value for control when using regmap set_bypassh]h7Enabling value for control when using regmap set_bypass}(hjo-hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjk-hMPhjl-ubah}(h]h ]h"]h$]h&]uh1jhjP-ubeh}(h]h ]h"]h$]h&]uh1jghjk-hMPhj|#ubjh)}(hL``bypass_val_off`` Disabling value for control when using regmap set_bypass h](jn)}(h``bypass_val_off``h]j)}(hj-h]hbypass_val_off}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMQhj-ubj)}(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&]uh1j'hj-hMQhj-ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jghj-hMQhj|#ubjh)}(h[``active_discharge_on`` Disabling value for control when using regmap set_active_discharge h](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMUhj-ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMThj-ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jghj-hMUhj|#ubjh)}(h[``active_discharge_off`` Enabling value for control when using regmap set_active_discharge h](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMShj-ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMRhj.ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jghj.hMShj|#ubjh)}(hR``active_discharge_mask`` Mask for control when using regmap set_active_discharge h](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMWhj6.ubj)}(hhh]j()}(h7Mask for control when using regmap set_active_dischargeh]h7Mask for control when using regmap set_active_discharge}(hjU.hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMVhjR.ubah}(h]h ]h"]h$]h&]uh1jhj6.ubeh}(h]h ]h"]h$]h&]uh1jghjQ.hMWhj|#ubjh)}(hU``active_discharge_reg`` Register for control when using regmap set_active_discharge h](jn)}(h``active_discharge_reg``h]j)}(hjv.h]hactive_discharge_reg}(hjx.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt.ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMYhjp.ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMXhj.ubah}(h]h ]h"]h$]h&]uh1jhjp.ubeh}(h]h ]h"]h$]h&]uh1jghj.hMYhj|#ubjh)}(hI``soft_start_reg`` Register for control when using regmap set_soft_start h](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMZhj.ubj)}(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&]uh1j'hj.hMZhj.ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jghj.hMZhj|#ubjh)}(hF``soft_start_mask`` Mask for control when using regmap set_soft_start h](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM[hj.ubj)}(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&]uh1j'hj.hM[hj.ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jghj.hM[hj|#ubjh)}(hR``soft_start_val_on`` Enabling value for control when using regmap set_soft_start h](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM]hj/ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM\hj8/ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jghj7/hM]hj|#ubjh)}(hG``pull_down_reg`` Register for control when using regmap set_pull_down h](jn)}(h``pull_down_reg``h]j)}(hj\/h]h pull_down_reg}(hj^/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZ/ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM^hjV/ubj)}(hhh]j()}(h4Register for control when using regmap set_pull_downh]h4Register for control when using regmap set_pull_down}(hju/hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjq/hM^hjr/ubah}(h]h ]h"]h$]h&]uh1jhjV/ubeh}(h]h ]h"]h$]h&]uh1jghjq/hM^hj|#ubjh)}(hD``pull_down_mask`` Mask for control when using regmap set_pull_down h](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM_hj/ubj)}(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&]uh1j'hj/hM_hj/ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jghj/hM_hj|#ubjh)}(hP``pull_down_val_on`` Enabling value for control when using regmap set_pull_down h](jn)}(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&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMahj/ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM`hj/ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jghj/hMahj|#ubjh)}(h?``ramp_reg`` Register for controlling the regulator ramp-rate. h](jn)}(h ``ramp_reg``h]j)}(hj0h]hramp_reg}(hj 0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMchj0ubj)}(hhh]j()}(h1Register for controlling the regulator ramp-rate.h]h1Register for controlling the regulator ramp-rate.}(hj!0hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj0hMchj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jghj0hMchj|#ubjh)}(h:``ramp_mask`` Bitmask for the ramp-rate control register. h](jn)}(h ``ramp_mask``h]j)}(hjA0h]h ramp_mask}(hjC0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?0ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMdhj;0ubj)}(hhh]j()}(h+Bitmask for the ramp-rate control register.h]h+Bitmask for the ramp-rate control register.}(hjZ0hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjV0hMdhjW0ubah}(h]h ]h"]h$]h&]uh1jhj;0ubeh}(h]h ]h"]h$]h&]uh1jghjV0hMdhj|#ubjh)}(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](jn)}(h``ramp_delay_table``h]j)}(hjz0h]hramp_delay_table}(hj|0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx0ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMghjt0ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMehj0ubah}(h]h ]h"]h$]h&]uh1jhjt0ubeh}(h]h ]h"]h$]h&]uh1jghj0hMghj|#ubjh)}(h>``n_ramp_values`` number of elements at **ramp_delay_table**. h](jn)}(h``n_ramp_values``h]j)}(hj0h]h n_ramp_values}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhhj0ubj)}(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&]uh1jhj0ubh.}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hj0hMhhj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jghj0hMhhj|#ubjh)}(hD``enable_time`` Time taken for initial enable of regulator (in uS). h](jn)}(h``enable_time``h]j)}(hj0h]h enable_time}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMjhj0ubj)}(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&]uh1j'hj1hMjhj1ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jghj1hMjhj|#ubjh)}(hD``off_on_delay`` guard time (in uS), before re-enabling a regulator h](jn)}(h``off_on_delay``h]j)}(hj81h]h off_on_delay}(hj:1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj61ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMkhj21ubj)}(hhh]j()}(h2guard time (in uS), before re-enabling a regulatorh]h2guard time (in uS), before re-enabling a regulator}(hjQ1hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjM1hMkhjN1ubah}(h]h ]h"]h$]h&]uh1jhj21ubeh}(h]h ]h"]h$]h&]uh1jghjM1hMkhj|#ubjh)}(h``poll_enabled_time`` The polling interval (in uS) to use while checking that the regulator was actually enabled. Max upto enable_time. h](jn)}(h``poll_enabled_time``h]j)}(hjq1h]hpoll_enabled_time}(hjs1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjo1ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMnhjk1ubj)}(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.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMmhj1ubah}(h]h ]h"]h$]h&]uh1jhjk1ubeh}(h]h ]h"]h$]h&]uh1jghj1hMnhj|#ubjh)}(hO``of_map_mode`` Maps a hardware mode defined in a DeviceTree to a standard modeh](jn)}(h``of_map_mode``h]j)}(hj1h]h of_map_mode}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMohj1ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMphj1ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jghj1hMohj|#ubeh}(h]h ]h"]h$]h&]uh1jbhj4#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhjhNubj()}(h**Description**h]j)}(hj1h]h Description}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMshjVhhubj()}(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.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjVhhubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](jregulator_config (C struct)c.regulator_confighNtauh1juhjVhhhjhNubj)}(hhh](j)}(hregulator_configh]j)}(hstruct regulator_configh](j)}(hjh]hstruct}(hj,2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(2hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMubj)}(h h]h }(hj:2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(2hhhj92hMubj)}(hregulator_configh]j)}(hj&2h]hregulator_config}(hjL2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjH2ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj(2hhhj92hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj$2hhhj92hMubah}(h]j2ah ](jjeh"]h$]h&]jj)jhuh1jhj92hMhj!2hhubj)}(hhh]j()}(hDynamic regulator descriptorh]hDynamic regulator descriptor}(hjn2hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjk2hhubah}(h]h ]h"]h$]h&]uh1jhj!2hhhj92hMubeh}(h]h ](jIstructeh"]h$]h&]jjIjj2jj2jjjuh1jhhhjVhjhNubj)}(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}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubh:}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj2ubj:)}(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&]hhuh1j9hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj2ubj()}(h **Members**h]j)}(hj2h]hMembers}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj2ubjc)}(hhh](jh)}(h(``dev`` struct device for the regulator h](jn)}(h``dev``h]j)}(hj2h]hdev}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj2ubj)}(hhh]j()}(hstruct device for the regulatorh]hstruct device for the regulator}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj2hMhj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jghj2hMhj2ubjh)}(hD``init_data`` platform provided init data, passed through by driver h](jn)}(h ``init_data``h]j)}(hj3h]h init_data}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj3ubj)}(hhh]j()}(h5platform provided init data, passed through by driverh]h5platform provided init data, passed through by driver}(hj-3hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj)3hMhj*3ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jghj)3hMhj2ubjh)}(h'``driver_data`` private regulator data h](jn)}(h``driver_data``h]j)}(hjM3h]h driver_data}(hjO3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjK3ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjG3ubj)}(hhh]j()}(hprivate regulator datah]hprivate regulator data}(hjf3hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjb3hMhjc3ubah}(h]h ]h"]h$]h&]uh1jhjG3ubeh}(h]h ]h"]h$]h&]uh1jghjb3hMhj2ubjh)}(hO``of_node`` OpenFirmware node to parse for device tree bindings (may be NULL). h](jn)}(h ``of_node``h]j)}(hj3h]hof_node}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj3ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj3ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jghj3hMhj2ubjh)}(hV``regmap`` regmap to use for core regmap helpers if dev_get_regmap() is insufficient. h](jn)}(h ``regmap``h]j)}(hj3h]hregmap}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj3ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj3ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jghj3hMhj2ubjh)}(h0``ena_gpiod`` GPIO controlling regulator enable.h](jn)}(h ``ena_gpiod``h]j)}(hj3h]h ena_gpiod}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj3ubj)}(hhh]j()}(h"GPIO controlling regulator enable.h]h"GPIO controlling regulator enable.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj4ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jghj4hMhj2ubeh}(h]h ]h"]h$]h&]uh1jbhj2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhjhNubj()}(h**Description**h]j)}(hj=4h]h Description}(hj?4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;4ubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjVhhubj()}(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.}(hjS4hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjVhhubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](jregulator_err_state (C struct)c.regulator_err_statehNtauh1juhjVhhhjhNubj)}(hhh](j)}(hregulator_err_stateh]j)}(hstruct regulator_err_stateh](j)}(hjh]hstruct}(hj{4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw4hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw4hhhj4hMubj)}(hregulator_err_stateh]j)}(hju4h]hregulator_err_state}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjw4hhhj4hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjs4hhhj4hMubah}(h]jn4ah ](jjeh"]h$]h&]jj)jhuh1jhj4hMhjp4hhubj)}(hhh]j()}(h#regulator error/notification statush]h#regulator error/notification status}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj4hhubah}(h]h ]h"]h$]h&]uh1jhjp4hhhj4hMubeh}(h]h ](jIstructeh"]h$]h&]jjIjj4jj4jjjuh1jhhhjVhjhNubj)}(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&]uh1jhj4ubh:}(hj4hhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hf/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&]hhuh1j9hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj4ubj()}(h **Members**h]j)}(hj 5h]hMembers}(hj 5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 5ubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj4ubjc)}(hhh](jh)}(h6``rdev`` Regulator which status the struct indicates. h](jn)}(h``rdev``h]j)}(hj*5h]hrdev}(hj,5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(5ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj$5ubj)}(hhh]j()}(h,Regulator which status the struct indicates.h]h,Regulator which status the struct indicates.}(hjC5hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj?5hMhj@5ubah}(h]h ]h"]h$]h&]uh1jhj$5ubeh}(h]h ]h"]h$]h&]uh1jghj?5hMhj!5ubjh)}(h8``notifs`` Events which have occurred on the regulator. h](jn)}(h ``notifs``h]j)}(hjc5h]hnotifs}(hje5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja5ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj]5ubj)}(hhh]j()}(h,Events which have occurred on the regulator.h]h,Events which have occurred on the regulator.}(hj|5hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjx5hMhjy5ubah}(h]h ]h"]h$]h&]uh1jhj]5ubeh}(h]h ]h"]h$]h&]uh1jghjx5hMhj!5ubjh)}(h5``errors`` Errors which are active on the regulator. h](jn)}(h ``errors``h]j)}(hj5h]herrors}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj5ubj)}(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&]uh1j'hj5hMhj5ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jghj5hMhj!5ubjh)}(h>``possible_errs`` Errors which can be signaled (by given IRQ).h](jn)}(h``possible_errs``h]j)}(hj5h]h possible_errs}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj5ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj5ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jghj5hMhj!5ubeh}(h]h ]h"]h$]h&]uh1jbhj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhjhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](jregulator_irq_data (C struct)c.regulator_irq_datahNtauh1juhjVhhhjhNubj)}(hhh](j)}(hregulator_irq_datah]j)}(hstruct regulator_irq_datah](j)}(hjh]hstruct}(hj/6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+6hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMubj)}(h h]h }(hj=6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+6hhhj<6hMubj)}(hregulator_irq_datah]j)}(hj)6h]hregulator_irq_data}(hjO6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjK6ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj+6hhhj<6hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj'6hhhj<6hMubah}(h]j"6ah ](jjeh"]h$]h&]jj)jhuh1jhj<6hMhj$6hhubj)}(hhh]j()}(h(regulator error/notification status datah]h(regulator error/notification status data}(hjq6hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjn6hhubah}(h]h ]h"]h$]h&]uh1jhj$6hhhj<6hMubeh}(h]h ](jIstructeh"]h$]h&]jjIjj6jj6jjjuh1jhhhjVhjhNubj)}(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&]uh1jhj6ubh:}(hj6hhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj6ubj:)}(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&]hhuh1j9hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj6ubj()}(h **Members**h]j)}(hj6h]hMembers}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj6ubjc)}(hhh](jh)}(hA``states`` Status structs for each of the associated regulators. h](jn)}(h ``states``h]j)}(hj6h]hstates}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj6ubj)}(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&]uh1j'hj6hMhj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jghj6hMhj6ubjh)}(h0``num_states`` Amount of associated regulators. h](jn)}(h``num_states``h]j)}(hj7h]h num_states}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj7ubj)}(hhh]j()}(h Amount of associated regulators.h]h Amount of associated regulators.}(hj07hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj,7hMhj-7ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jghj,7hMhj6ubjh)}(h:``data`` Driver data pointer given at regulator_irq_desc. h](jn)}(h``data``h]j)}(hjP7h]hdata}(hjR7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN7ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjJ7ubj)}(hhh]j()}(h0Driver data pointer given at regulator_irq_desc.h]h0Driver data pointer given at regulator_irq_desc.}(hji7hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hje7hMhjf7ubah}(h]h ]h"]h$]h&]uh1jhjJ7ubeh}(h]h ]h"]h$]h&]uh1jghje7hMhj6ubjh)}(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](jn)}(h ``opaque``h]j)}(hj7h]hopaque}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj7ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj7ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jghj7hMhj6ubeh}(h]h ]h"]h$]h&]uh1jbhj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhjhNubj()}(h**Description**h]j)}(hj7h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjVhhubj()}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjVhhubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](jregulator_irq_desc (C struct)c.regulator_irq_deschNtauh1juhjVhhhjhNubj)}(hhh](j)}(hregulator_irq_desch]j)}(hstruct regulator_irq_desch](j)}(hjh]hstruct}(hj 8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8hhhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8hhhj8hMubj)}(hregulator_irq_desch]j)}(hj8h]hregulator_irq_desc}(hj*8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&8ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj8hhhj8hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj8hhhj8hMubah}(h]j7ah ](jjeh"]h$]h&]jj)jhuh1jhj8hMhj7hhubj)}(hhh]j()}(h)notification sender for IRQ based events.h]h)notification sender for IRQ based events.}(hjL8hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjI8hhubah}(h]h ]h"]h$]h&]uh1jhj7hhhj8hMubeh}(h]h ](jIstructeh"]h$]h&]jjIjjd8jjd8jjjuh1jhhhjVhjhNubj)}(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}(hjp8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjl8ubh:}(hjl8hhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjh8ubj:)}(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); };}hj8sbah}(h]h ]h"]h$]h&]hhuh1j9hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjh8ubj()}(h **Members**h]j)}(hj8h]hMembers}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjh8ubjc)}(hhh](jh)}(h&``name`` The visible name for the IRQ h](jn)}(h``name``h]j)}(hj8h]hname}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj8ubj)}(hhh]j()}(hThe visible name for the IRQh]hThe visible name for the IRQ}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jghj8hMhj8ubjh)}(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](jn)}(h ``fatal_cnt``h]j)}(hj8h]h fatal_cnt}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM hj8ubj)}(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.}(hj 9hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj9ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jghj9hM hj8ubjh)}(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](jn)}(h ``reread_ms``h]j)}(hj,9h]h reread_ms}(hj.9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*9ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj&9ubj)}(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.}(hjE9hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM hjB9ubah}(h]h ]h"]h$]h&]uh1jhj&9ubeh}(h]h ]h"]h$]h&]uh1jghjA9hMhj8ubjh)}(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](jn)}(h``irq_off_ms``h]j)}(hjf9h]h irq_off_ms}(hjh9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd9ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj`9ubj)}(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.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj|9ubah}(h]h ]h"]h$]h&]uh1jhj`9ubeh}(h]h ]h"]h$]h&]uh1jghj{9hMhj8ubjh)}(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](jn)}(h ``skip_off``h]j)}(hj9h]hskip_off}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj9ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jghj9hMhj8ubjh)}(hH``high_prio`` Boolean to indicate that high priority WQ should be used. h](jn)}(h ``high_prio``h]j)}(hj9h]h high_prio}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj9ubj)}(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&]uh1j'hj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jghj9hMhj8ubjh)}(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](jn)}(h``data``h]j)}(hj:h]hdata}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj :ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhj):ubah}(h]h ]h"]h$]h&]uh1jhj :ubeh}(h]h ]h"]h$]h&]uh1jghj(:hMhj8ubjh)}(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](jn)}(h``die``h]j)}(hjM:h]hdie}(hjO:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjK:ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM hjG:ubj)}(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.}(hjf:hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhMhjc:ubah}(h]h ]h"]h$]h&]uh1jhjG:ubeh}(h]h ]h"]h$]h&]uh1jghjb:hM hj8ubjh)}(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](jn)}(h ``map_event``h]j)}(hj:h]h map_event}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM(hj:ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM!hj:ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jghj:hM(hj8ubjh)}(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](jn)}(h ``renable``h]j)}(hj:h]hrenable}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jmhf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM9hj:ubj)}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM)hj:ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jghj:hM9hj8ubeh}(h]h ]h"]h$]h&]uh1jbhjh8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhjhNubj()}(h**Description**h]j)}(hj;h]h Description}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM=hjVhhubj()}(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&]uh1j'hf/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:166: ./include/linux/regulator/driver.hhM:hjVhhubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](jregulator_get (C function)c.regulator_gethNtauh1juhjVhhhNhNubj)}(hhh](j)}(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}(hjB;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 }(hjP;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>;hhhjO;hM ubh)}(hhh]j)}(h regulatorh]h regulator}(hja;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^;ubah}(h]h ]h"]h$]h&] refdomainjIreftype identifier reftargetjc;modnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j|; ASTIdentifier)}jw; regulator_getsbc.regulator_getasbuh1hhj>;hhhjO;hM ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>;hhhjO;hM ubhdesc_sig_punctuation)}(h*h]h*}(hj;hhhNhNubah}(h]h ]pah"]h$]h&]uh1j;hj>;hhhjO;hM ubj)}(h regulator_geth]j)}(hj;h]h regulator_get}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj>;hhhjO;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&] refdomainjIreftypejw; reftargetj;modnameN classnameNj{;j~;)}j;]j;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&]uh1jhj8<ubj)}(h h]h }(hjJ<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8<ubhdesc_sig_keyword_type)}(hcharh]hchar}(hjZ<hhhNhNubah}(h]h ]ktah"]h$]h&]uh1jX<hj8<ubj)}(h h]h }(hji<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8<ubj;)}(hj;h]h*}(hjw<hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj8<ubj)}(hidh]hid}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8<ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj;ubeh}(h]h ]h"]h$]h&]hhuh1j;hj>;hhhjO;hM ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj:;hhhjO;hM ubah}(h]j5;ah ](jjeh"]h$]h&]jj)jhuh1jhjO;hM hj7;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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj<hhubah}(h]h ]h"]h$]h&]uh1jhj7;hhhjO;hM ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjj<jj<jjjuh1jhhhjVhNhNubj)}(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&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj<ubjc)}(hhh](jh)}(h7``struct device *dev`` device for regulator "consumer" h](jn)}(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&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj<ubj)}(hhh]j()}(hdevice for regulator "consumer"h]h#device for regulator “consumer”}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj=hM hj=ubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jghj=hM hj<ubjh)}(h0``const char *id`` Supply name or regulator ID. h](jn)}(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&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj"=ubj)}(hhh]j()}(hSupply name or regulator ID.h]hSupply name or regulator ID.}(hjA=hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj==hM hj>=ubah}(h]h ]h"]h$]h&]uh1jhj"=ubeh}(h]h ]h"]h$]h&]uh1jghj==hM hj<ubeh}(h]h ]h"]h$]h&]uh1jbhj<ubj()}(h**Description**h]j)}(hjc=h]h Description}(hje=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja=ubah}(h]h ]h"]h$]h&]uh1j'h^/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.}(hjy=hhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj<ubj()}(h **Return**h]j)}(hj=h]hReturn}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1j'h^/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 ](jHjIc-typeeh"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]refdocjU refdomainjIreftypetype refexplicitrefwarnj{;j~;)}j;]sbj[ 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&]uh1j'hj=hM hj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j$regulator_get_exclusive (C function)c.regulator_get_exclusivehNtauh1juhjVhhhNhNubj)}(hhh](j)}(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.chM ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhj>hM ubh)}(hhh]j)}(h regulatorh]h regulator}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetj>modnameN classnameNj{;j~;)}j;]j;)}jw;regulator_get_exclusivesbc.regulator_get_exclusiveasbuh1hhj=hhhj>hM ubj)}(h h]h }(hj5>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhj>hM ubj;)}(hj;h]h*}(hjC>hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj=hhhj>hM ubj)}(hregulator_get_exclusiveh]j)}(hj2>h]hregulator_get_exclusive}(hjT>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjP>ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj=hhhj>hM ubj;)}(h$(struct device *dev, const char *id)h](j;)}(hstruct device *devh](j)}(hjh]hstruct}(hjo>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjk>ubj)}(h h]h }(hj|>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjk>ubh)}(hhh]j)}(hdeviceh]hdevice}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetj>modnameN classnameNj{;j~;)}j;]j0>c.regulator_get_exclusiveasbuh1hhjk>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjk>ubj;)}(hj;h]h*}(hj>hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjk>ubj)}(hdevh]hdev}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjk>ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjg>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>ubjY<)}(hcharh]hchar}(hj>hhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<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;hjg>ubeh}(h]h ]h"]h$]h&]hhuh1j;hj=hhhj>hM ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj=hhhj>hM ubah}(h]j=ah ](jjeh"]h$]h&]jj)jhuh1jhj>hM hj=hhubj)}(hhh]j()}(h'obtain exclusive access to a regulator.h]h'obtain exclusive access to a regulator.}(hjM?hhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjJ?hhubah}(h]h ]h"]h$]h&]uh1jhj=hhhj>hM ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjje?jje?jjjuh1jhhhjVhNhNubj)}(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)}(hjo?h]h Parameters}(hjq?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjm?ubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hji?ubjc)}(hhh](jh)}(h7``struct device *dev`` device for regulator "consumer" h](jn)}(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&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj?ubj)}(hhh]j()}(hdevice for regulator "consumer"h]h#device for regulator “consumer”}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj?hM hj?ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jghj?hM hj?ubjh)}(h0``const char *id`` Supply name or regulator ID. h](jn)}(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&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj?ubj)}(hhh]j()}(hSupply name or regulator ID.h]hSupply name or regulator ID.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj?hM hj?ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jghj?hM hj?ubeh}(h]h ]h"]h$]h&]uh1jbhji?ubj()}(h**Description**h]j)}(hj@h]h Description}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hji?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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hji?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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hji?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.}(hj6@hhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hji?ubj()}(h **Return**h]j)}(hjG@h]hReturn}(hjI@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE@ubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hji?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)}(hjg@h]hstruct regulator}(hji@hhhNhNubah}(h]h ](jHjIc-typeeh"]h$]h&]uh1jhje@ubah}(h]h ]h"]h$]h&]refdocjU refdomainjIreftypetype refexplicitrefwarnj{;j=j[ 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&]uh1j'hj@hM hji?ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j#regulator_get_optional (C function)c.regulator_get_optionalhNtauh1juhjVhhhNhNubj)}(hhh](j)}(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.chM$ ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhhj@hM$ ubh)}(hhh]j)}(h regulatorh]h regulator}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetj@modnameN classnameNj{;j~;)}j;]j;)}jw;regulator_get_optionalsbc.regulator_get_optionalasbuh1hhj@hhhj@hM$ ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhhj@hM$ ubj;)}(hj;h]h*}(hj@hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj@hhhj@hM$ ubj)}(hregulator_get_optionalh]j)}(hj@h]hregulator_get_optional}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Aubah}(h]h ](jjeh"]h$]h&]hhuh1jhj@hhhj@hM$ ubj;)}(h$(struct device *dev, const char *id)h](j;)}(hstruct device *devh](j)}(hjh]hstruct}(hj)AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%Aubj)}(h h]h }(hj6AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%Aubh)}(hhh]j)}(hdeviceh]hdevice}(hjGAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDAubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjIAmodnameN classnameNj{;j~;)}j;]j@c.regulator_get_optionalasbuh1hhj%Aubj)}(h h]h }(hjeAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%Aubj;)}(hj;h]h*}(hjsAhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj%Aubj)}(hdevh]hdev}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%Aubeh}(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&]uh1jhjAubjY<)}(hcharh]hchar}(hjAhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<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@hM$ ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj@hhhj@hM$ ubah}(h]j@ah ](jjeh"]h$]h&]jj)jhuh1jhj@hM$ hj@hhubj)}(hhh]j()}(h&obtain optional access to a regulator.h]h&obtain optional access to a regulator.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM$ hjBhhubah}(h]h ]h"]h$]h&]uh1jhj@hhhj@hM$ ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjBjjBjjjuh1jhhhjVhNhNubj)}(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)}(hj)Bh]h Parameters}(hj+BhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'Bubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM( hj#Bubjc)}(hhh](jh)}(h7``struct device *dev`` device for regulator "consumer" h](jn)}(h``struct device *dev``h]j)}(hjHBh]hstruct device *dev}(hjJBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFBubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM% hjBBubj)}(hhh]j()}(hdevice for regulator "consumer"h]h#device for regulator “consumer”}(hjaBhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj]BhM% hj^Bubah}(h]h ]h"]h$]h&]uh1jhjBBubeh}(h]h ]h"]h$]h&]uh1jghj]BhM% hj?Bubjh)}(h0``const char *id`` Supply name or regulator ID. h](jn)}(h``const char *id``h]j)}(hjBh]hconst char *id}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM& hj{Bubj)}(hhh]j()}(hSupply name or regulator ID.h]hSupply name or regulator ID.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjBhM& hjBubah}(h]h ]h"]h$]h&]uh1jhj{Bubeh}(h]h ]h"]h$]h&]uh1jghjBhM& hj?Bubeh}(h]h ]h"]h$]h&]uh1jbhj#Bubj()}(h**Description**h]j)}(hjBh]h Description}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM( hj#Bubj()}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM' hj#Bubj()}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM. hj#Bubj()}(h **Return**h]j)}(hjBh]hReturn}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM3 hj#Bubj()}(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 }(hjChhhNhNubh)}(h&:c:type:`struct regulator `h]j)}(hjCh]hstruct regulator}(hjChhhNhNubah}(h]h ](jHjIc-typeeh"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]refdocjU refdomainjIreftypetype refexplicitrefwarnj{;j=j[ regulatoruh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM4 hjCubhX corresponding to the regulator producer, or an ERR_PTR() encoded negative error number.}(hjChhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hj/ChM4 hj#Bubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](jregulator_put (C function)c.regulator_puthNtauh1juhjVhhhNhNubj)}(hhh](j)}(h0void regulator_put (struct regulator *regulator)h]j)}(h/void regulator_put(struct regulator *regulator)h](jY<)}(hvoidh]hvoid}(hjZChhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjVChhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMl ubj)}(h h]h }(hjiChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVChhhjhChMl ubj)}(h regulator_puth]j)}(h regulator_puth]h regulator_put}(hj{ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwCubah}(h]h ](jjeh"]h$]h&]hhuh1jhjVChhhjhChMl 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&] refdomainjIreftypejw; reftargetjCmodnameN classnameNj{;j~;)}j;]j;)}jw;j}Csbc.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;hjCubah}(h]h ]h"]h$]h&]hhuh1j;hjVChhhjhChMl ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjRChhhjhChMl ubah}(h]jMCah ](jjeh"]h$]h&]jj)jhuh1jhjhChMl hjOChhubj)}(hhh]j()}(h"free" the regulator sourceh]h“free” the regulator source}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMl hjDhhubah}(h]h ]h"]h$]h&]uh1jhjOChhhjhChMl ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjj2Djj2Djjjuh1jhhhjVhNhNubj)}(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)}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:Dubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMp hj6Dubjc)}(hhh]jh)}(h1``struct regulator *regulator`` regulator source h](jn)}(h``struct regulator *regulator``h]j)}(hj[Dh]hstruct regulator *regulator}(hj]DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYDubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMm hjUDubj)}(hhh]j()}(hregulator sourceh]hregulator source}(hjtDhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjpDhMm hjqDubah}(h]h ]h"]h$]h&]uh1jhjUDubeh}(h]h ]h"]h$]h&]uh1jghjpDhMm hjRDubah}(h]h ]h"]h$]h&]uh1jbhj6Dubj()}(h**Note**h]j)}(hjDh]hNote}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMo hj6Dubj()}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMo hj6Dubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j,regulator_register_supply_alias (C function)!c.regulator_register_supply_aliashNtauh1juhjVhhhNhNubj)}(hhh](j)}(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](jY<)}(hinth]hint}(hjDhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<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 }(hj%EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubh)}(hhh]j)}(hdeviceh]hdevice}(hj6EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3Eubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetj8EmodnameN classnameNj{;j~;)}j;]j;)}jw;jDsb!c.regulator_register_supply_aliasasbuh1hhjEubj)}(h h]h }(hjVEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj;)}(hj;h]h*}(hjdEhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjEubj)}(hdevh]hdev}(hjqEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjEubj;)}(hconst char *idh](j)}(hj><h]hconst}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubjY<)}(hcharh]hchar}(hjEhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj;)}(hj;h]h*}(hjEhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjEubj)}(hidh]hid}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjEubj;)}(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}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjFmodnameN classnameNj{;j~;)}j;]jRE!c.regulator_register_supply_aliasasbuh1hhjEubj)}(h h]h }(hj#FhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj;)}(hj;h]h*}(hj1FhhhNhNubah}(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;hjEubj;)}(hconst char *alias_idh](j)}(hj><h]hconst}(hjWFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSFubj)}(h h]h }(hjdFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSFubjY<)}(hcharh]hchar}(hjrFhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjSFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSFubj;)}(hj;h]h*}(hjFhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjSFubj)}(halias_idh]halias_id}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSFubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjEubeh}(h]h ]h"]h$]h&]hhuh1j;hjDhhhjDhM| ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjDhhhjDhM| ubah}(h]jDah ](jjeh"]h$]h&]jj)jhuh1jhjDhM| hjDhhubj)}(hhh]j()}(h&Provide device alias for supply lookuph]h&Provide device alias for supply lookup}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM| hjFhhubah}(h]h ]h"]h$]h&]uh1jhjDhhhjDhM| ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjFjjFjjjuh1jhhhjVhNhNubj)}(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&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjFubjc)}(hhh](jh)}(hM``struct device *dev`` device that will be given as the regulator "consumer" h](jn)}(h``struct device *dev``h]j)}(hjGh]hstruct device *dev}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM~ hjGubj)}(hhh]j()}(h5device that will be given as the regulator "consumer"h]h9device that will be given as the regulator “consumer”}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjGhM~ hjGubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jghjGhM~ hjFubjh)}(h/``const char *id`` Supply name or regulator ID h](jn)}(h``const char *id``h]j)}(hj?Gh]hconst char *id}(hjAGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=Gubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj9Gubj)}(hhh]j()}(hSupply name or regulator IDh]hSupply name or regulator ID}(hjXGhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjTGhM hjUGubah}(h]h ]h"]h$]h&]uh1jhj9Gubeh}(h]h ]h"]h$]h&]uh1jghjTGhM hjFubjh)}(hM``struct device *alias_dev`` device that should be used to lookup the supply h](jn)}(h``struct device *alias_dev``h]j)}(hjxGh]hstruct device *alias_dev}(hjzGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvGubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjrGubj)}(hhh]j()}(h/device that should be used to lookup the supplyh]h/device that should be used to lookup the supply}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjGhM hjGubah}(h]h ]h"]h$]h&]uh1jhjrGubeh}(h]h ]h"]h$]h&]uh1jghjGhM hjFubjh)}(h^``const char *alias_id`` Supply name or regulator ID that should be used to lookup the supply h](jn)}(h``const char *alias_id``h]j)}(hjGh]hconst char *alias_id}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjGubj)}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjGubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jghjGhM hjFubeh}(h]h ]h"]h$]h&]uh1jbhjFubj()}(h**Description**h]j)}(hjGh]h Description}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1j'h^/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.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/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&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1j'h^/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.}(hj*HhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjFubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j.regulator_unregister_supply_alias (C function)#c.regulator_unregister_supply_aliashNtauh1juhjVhhhNhNubj)}(hhh](j)}(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](jY<)}(hvoidh]hvoid}(hjYHhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjUHhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjhHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUHhhhjgHhM ubj)}(h!regulator_unregister_supply_aliash]j)}(h!regulator_unregister_supply_aliash]h!regulator_unregister_supply_alias}(hjzHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvHubah}(h]h ](jjeh"]h$]h&]hhuh1jhjUHhhhjgHhM ubj;)}(h$(struct device *dev, const char *id)h](j;)}(hstruct device *devh](j)}(hjh]hstruct}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubh)}(hhh]j)}(hdeviceh]hdevice}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjHmodnameN classnameNj{;j~;)}j;]j;)}jw;j|Hsb#c.regulator_unregister_supply_aliasasbuh1hhjHubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj;)}(hj;h]h*}(hjHhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjHubj)}(hdevh]hdev}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjHubj;)}(hconst char *idh](j)}(hj><h]hconst}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubjY<)}(hcharh]hchar}(hj#IhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjIubj)}(h h]h }(hj1IhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj;)}(hj;h]h*}(hj?IhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjIubj)}(hidh]hid}(hjLIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjHubeh}(h]h ]h"]h$]h&]hhuh1j;hjUHhhhjgHhM ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjQHhhhjgHhM ubah}(h]jLHah ](jjeh"]h$]h&]jj)jhuh1jhjgHhM hjNHhhubj)}(hhh]j()}(hRemove device aliash]hRemove device alias}(hjvIhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjsIhhubah}(h]h ]h"]h$]h&]uh1jhjNHhhhjgHhM ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjIjjIjjjuh1jhhhjVhNhNubj)}(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&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjIubjc)}(hhh](jh)}(hM``struct device *dev`` device that will be given as the regulator "consumer" h](jn)}(h``struct device *dev``h]j)}(hjIh]hstruct device *dev}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjIubj)}(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&]uh1j'hjIhM hjIubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jghjIhM hjIubjh)}(h/``const char *id`` Supply name or regulator ID h](jn)}(h``const char *id``h]j)}(hjIh]hconst char *id}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjIubj)}(hhh]j()}(hSupply name or regulator IDh]hSupply name or regulator ID}(hj JhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjJhM hjJubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jghjJhM hjIubeh}(h]h ]h"]h$]h&]uh1jbhjIubj()}(h**Description**h]j)}(hj+Jh]h Description}(hj-JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)Jubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjIubj()}(h2Remove a lookup alias if one exists for id on dev.h]h2Remove a lookup alias if one exists for id on dev.}(hjAJhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjIubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j1regulator_bulk_register_supply_alias (C function)&c.regulator_bulk_register_supply_aliashNtauh1juhjVhhhNhNubj)}(hhh](j)}(hint regulator_bulk_register_supply_alias (struct device *dev, const char *const *id, struct device *alias_dev, const char *const *alias_id, int num_id)h]j)}(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](jY<)}(hinth]hint}(hjpJhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjlJhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlJhhhj~JhM ubj)}(h$regulator_bulk_register_supply_aliash]j)}(h$regulator_bulk_register_supply_aliash]h$regulator_bulk_register_supply_alias}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubah}(h]h ](jjeh"]h$]h&]hhuh1jhjlJhhhj~JhM 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&] refdomainjIreftypejw; reftargetjJmodnameN classnameNj{;j~;)}j;]j;)}jw;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}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjJubj;)}(hconst char *const *idh](j)}(hj><h]hconst}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(h h]h }(hj,KhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubjY<)}(hcharh]hchar}(hj:KhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjKubj)}(h h]h }(hjHKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj;)}(hj;h]h*}(hjVKhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjKubj)}(hj><h]hconst}(hjcKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(h h]h }(hjpKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj;)}(hj;h]h*}(hj~KhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjKubj)}(hidh]hid}(hjKhhhNhNubah}(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&] refdomainjIreftypejw; reftargetjKmodnameN classnameNj{;j~;)}j;]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&]uh1jhjLubj)}(h h]h }(hj!LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubjY<)}(hcharh]hchar}(hj/LhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjLubj)}(h h]h }(hj=LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj;)}(hj;h]h*}(hjKLhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjLubj)}(hj><h]hconst}(hjXLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(h h]h }(hjeLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj;)}(hj;h]h*}(hjsLhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjLubj)}(halias_idh]halias_id}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjJubj;)}(h int num_idh](jY<)}(hinth]hint}(hjLhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<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;hjlJhhhj~JhM ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhJhhhj~JhM ubah}(h]jcJah ](jjeh"]h$]h&]jj)jhuh1jhj~JhM hjeJhhubj)}(hhh]j()}(hregister multiple aliasesh]hregister multiple aliases}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjLhhubah}(h]h ]h"]h$]h&]uh1jhjeJhhhj~JhM ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjLjjLjjjuh1jhhhjVhNhNubj)}(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)}(hjMh]h Parameters}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjLubjc)}(hhh](jh)}(hM``struct device *dev`` device that will be given as the regulator "consumer" h](jn)}(h``struct device *dev``h]j)}(hj Mh]hstruct device *dev}(hj"MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjMubj)}(hhh]j()}(h5device that will be given as the regulator "consumer"h]h9device that will be given as the regulator “consumer”}(hj9MhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj5MhM hj6Mubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jghj5MhM hjMubjh)}(h@``const char *const *id`` List of supply names or regulator IDs h](jn)}(h``const char *const *id``h]j)}(hjYMh]hconst char *const *id}(hj[MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWMubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjSMubj)}(hhh]j()}(h%List of supply names or regulator IDsh]h%List of supply names or regulator IDs}(hjrMhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjnMhM hjoMubah}(h]h ]h"]h$]h&]uh1jhjSMubeh}(h]h ]h"]h$]h&]uh1jghjnMhM hjMubjh)}(hM``struct device *alias_dev`` device that should be used to lookup the supply h](jn)}(h``struct device *alias_dev``h]j)}(hjMh]hstruct device *alias_dev}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjMubj)}(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&]uh1j'hjMhM hjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jghjMhM hjMubjh)}(ho``const char *const *alias_id`` List of supply names or regulator IDs that should be used to lookup the supply h](jn)}(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&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjMubj)}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jghjMhM hjMubjh)}(h-``int num_id`` Number of aliases to register h](jn)}(h``int num_id``h]j)}(hjNh]h int num_id}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjMubj)}(hhh]j()}(hNumber of aliases to registerh]hNumber of aliases to register}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjNhM hjNubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jghjNhM hjMubeh}(h]h ]h"]h$]h&]uh1jbhjLubj()}(h**Description**h]j)}(hj@Nh]h Description}(hjBNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>Nubah}(h]h ]h"]h$]h&]uh1j'h^/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.}(hjVNhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjLubj()}(h **Return**h]j)}(hjgNh]hReturn}(hjiNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeNubah}(h]h ]h"]h$]h&]uh1j'h^/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.}(hj}NhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjLubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j3regulator_bulk_unregister_supply_alias (C function)(c.regulator_bulk_unregister_supply_aliashNtauh1juhjVhhhNhNubj)}(hhh](j)}(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](jY<)}(hvoidh]hvoid}(hjNhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<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}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetj OmodnameN classnameNj{;j~;)}j;]j;)}jw;jNsb(c.regulator_bulk_unregister_supply_aliasasbuh1hhjNubj)}(h h]h }(hj'OhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj;)}(hj;h]h*}(hj5OhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjNubj)}(hdevh]hdev}(hjBOhhhNhNubah}(h]h ]jah"]h$]h&]u$h1jhjNubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjNubj;)}(hconst char *const *idh](j)}(hj><h]hconst}(hj[OhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWOubj)}(h h]h }(hjhOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWOubjY<)}(hcharh]hchar}(hjvOhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjWOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWOubj;)}(hj;h]h*}(hjOhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjWOubj)}(hj><h]hconst}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWOubj;)}(hj;h]h*}(hjOhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjWOubj)}(hidh]hid}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWOubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjNubj;)}(h int num_idh](jY<)}(hinth]hint}(hjOhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<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&]hhjuh1jjjhjNhhhjNhM ubah}(h]jNah ](jjeh"]h$]h&]jj)jhuh1jhjNhM hjNhhubj)}(hhh]j()}(hunregister multiple aliasesh]hunregister multiple aliases}(hj&PhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj#Phhubah}(h]h ]h"]h$]h&]uh1jhjNhhhjNhM ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjj>Pjj>Pjjjuh1jhhhjVhNhNubj)}(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)}(hjHPh]h Parameters}(hjJPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFPubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjBPubjc)}(hhh](jh)}(hM``struct device *dev`` device that will be given as the regulator "consumer" h](jn)}(h``struct device *dev``h]j)}(hjgPh]hstruct device *dev}(hjiPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjePubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjaPubj)}(hhh]j()}(h5device that will be given as the regulator "consumer"h]h9device that will be given as the regulator “consumer”}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj|PhM hj}Pubah}(h]h ]h"]h$]h&]uh1jhjaPubeh}(h]h ]h"]h$]h&]uh1jghj|PhM hj^Pubjh)}(h@``const char *const *id`` List of supply names or regulator IDs h](jn)}(h``const char *const *id``h]j)}(hjPh]hconst char *const *id}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjPubj)}(hhh]j()}(h%List of supply names or regulator IDsh]h%List of supply names or regulator IDs}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjPhM hjPubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jghjPhM hj^Pubjh)}(h/``int num_id`` Number of aliases to unregister h](jn)}(h``int num_id``h]j)}(hjPh]h int num_id}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjPubj)}(hhh]j()}(hNumber of aliases to unregisterh]hNumber of aliases to unregister}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjPhM hjPubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jghjPhM hj^Pubeh}(h]h ]h"]h$]h&]uh1jbhjBPubj()}(h**Description**h]j)}(hjQh]h Description}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjBPubj()}(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.}(hj*QhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjBPubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](jregulator_enable (C function)c.regulator_enablehNtauh1juhjVhhhNhNubj)}(hhh](j)}(h2int regulator_enable (struct regulator *regulator)h]j)}(h1int regulator_enable(struct regulator *regulator)h](jY<)}(hinth]hint}(hjYQhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjUQhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMn ubj)}(h h]h }(hjhQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUQhhhjgQhMn ubj)}(hregulator_enableh]j)}(hregulator_enableh]hregulator_enable}(hjzQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvQubah}(h]h ](jjeh"]h$]h&]hhuh1jhjUQhhhjgQhMn ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubh)}(hhh]j)}(h regulatorh]h regulator}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjQmodnameN classnameNj{;j~;)}j;]j;)}jw;j|Qsbc.regulator_enableasbuh1hhjQubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj;)}(hj;h]h*}(hjQhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjQubj)}(h regulatorh]h regulator}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjQubah}(h]h ]h"]h$]h&]hhuh1j;hjUQhhhjgQhMn ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjQQhhhjgQhMn ubah}(h]jLQah ](jjeh"]h$]h&]jj)jhuh1jhjgQhMn hjNQhhubj)}(hhh]j()}(henable regulator outputh]henable regulator output}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMn hjRhhubah}(h]h ]h"]h$]h&]uh1jhjNQhhhjgQhMn ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjj1Rjj1Rjjjuh1jhhhjVhNhNubj)}(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&]uh1jhj9Rubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMr hj5Rubjc)}(hhh]jh)}(h1``struct regulator *regulator`` regulator source h](jn)}(h``struct regulator *regulator``h]j)}(hjZRh]hstruct regulator *regulator}(hj\RhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXRubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMo hjTRubj)}(hhh]j()}(hregulator sourceh]hregulator source}(hjsRhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjoRhMo hjpRubah}(h]h ]h"]h$]h&]uh1jhjTRubeh}(h]h ]h"]h$]h&]uh1jghjoRhMo hjQRubah}(h]h ]h"]h$]h&]uh1jbhj5Rubj()}(h**Description**h]j)}(hjRh]h Description}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMq hj5Rubj()}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMp hj5Rubj()}(h**NOTE**h]j)}(hjRh]hNOTE}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMt hj5Rubj()}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMu hj5Rubj()}(h **Return**h]j)}(hjRh]hReturn}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMx hj5Rubj()}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMx hj5Rubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](jregulator_disable (C function)c.regulator_disablehNtauh1juhjVhhhNhNubj)}(hhh](j)}(h3int regulator_disable (struct regulator *regulator)h]j)}(h2int regulator_disable(struct regulator *regulator)h](jY<)}(hinth]hint}(hj(ShhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hj$Shhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hj7ShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$Shhhj6ShM ubj)}(hregulator_disableh]j)}(hregulator_disableh]hregulator_disable}(hjIShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjESubah}(h]h ](jjeh"]h$]h&]hhuh1jhj$Shhhj6ShM ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjeShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaSubj)}(h h]h }(hjrShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaSubh)}(hhh]j)}(h regulatorh]h regulator}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjSmodnameN classnameNj{;j~;)}j;]j;)}jw;jKSsbc.regulator_disableasbuh1hhjaSubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaSubj;)}(hj;h]h*}(hjShhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjaSubj)}(h regulatorh]h regulator}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaSubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj]Subah}(h]h ]h"]h$]h&]hhuh1j;hj$Shhhj6ShM ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj Shhhj6ShM ubah}(h]jSah ](jjeh"]h$]h&]jj)jhuh1jhj6ShM hjShhubj)}(hhh]j()}(hdisable regulator outputh]hdisable regulator output}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjShhubah}(h]h ]h"]h$]h&]uh1jhjShhhj6ShM ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjTjjTjjjuh1jhhhjVhNhNubj)}(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)}(hj Th]h Parameters}(hj ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjTubjc)}(hhh]jh)}(h1``struct regulator *regulator`` regulator source h](jn)}(h``struct regulator *regulator``h]j)}(hj)Th]hstruct regulator *regulator}(hj+ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'Tubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj#Tubj)}(hhh]j()}(hregulator sourceh]hregulator source}(hjBThhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj>ThM hj?Tubah}(h]h ]h"]h$]h&]uh1jhj#Tubeh}(h]h ]h"]h$]h&]uh1jghj>ThM hj Tubah}(h]h ]h"]h$]h&]uh1jbhjTubj()}(h**Description**h]j)}(hjdTh]h Description}(hjfThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbTubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjTubj()}(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().}(hjzThhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjTubj()}(h**NOTE**h]j)}(hjTh]hNOTE}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjTubj()}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjTubj()}(h **Return**h]j)}(hjTh]hReturn}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjTubj()}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjTubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j$regulator_force_disable (C function)c.regulator_force_disablehNtauh1juhjVhhhNhNubj)}(hhh](j)}(h9int regulator_force_disable (struct regulator *regulator)h]j)}(h8int regulator_force_disable(struct regulator *regulator)h](jY<)}(hinth]hint}(hjThhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjThhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjThhhjUhM ubj)}(hregulator_force_disableh]j)}(hregulator_force_disableh]hregulator_force_disable}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubah}(h]h ](jjeh"]h$]h&]hhuh1jhjThhhjUhM ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hj4UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0Uubj)}(h h]h }(hjAUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0Uubh)}(hhh]j)}(h regulatorh]h regulator}(hjRUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOUubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjTUmodnameN classnameNj{;j~;)}j;]j;)}jw;jUsbc.regulator_force_disableasbuh1hhj0Uubj)}(h h]h }(hjrUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0Uubj;)}(hj;h]h*}(hjUhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj0Uubj)}(h regulatorh]h regulator}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0Uubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj,Uubah}(h]h ]h"]h$]h&]hhuh1j;hjThhhjUhM ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjThhhjUhM ubah}(h]jTah ](jjeh"]h$]h&]jj)jhuh1jhjUhM hjThhubj)}(hhh]j()}(hforce disable regulator outputh]hforce disable regulator output}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjUhhubah}(h]h ]h"]h$]h&]uh1jhjThhhjUhM ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjUjjUjjjuh1jhhhjVhNhNubj)}(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&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjUubjc)}(hhh]jh)}(h1``struct regulator *regulator`` regulator source h](jn)}(h``struct regulator *regulator``h]j)}(hjUh]hstruct regulator *regulator}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjUubj)}(hhh]j()}(hregulator sourceh]hregulator source}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj VhM hjVubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jghj VhM hjUubah}(h]h ]h"]h$]h&]uh1jbhjUubj()}(h**Description**h]j)}(hj3Vh]h Description}(hj5VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1Vubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjUubj()}(h9Forcibly disable the regulator output voltage or current.h]h9Forcibly disable the regulator output voltage or current.}(hjIVhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjUubj()}(h**NOTE**h]j)}(hjZVh]hNOTE}(hj\VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXVubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM 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 }(hjpVhhhNhNubhemphasis)}(h*will*h]hwill}(hjzVhhhNhNubah}(h]h ]h"]h$]h&]uh1jxVhjpVubh 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).}(hjpVhhhNhNubeh}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjUubj()}(h **Return**h]j)}(hjVh]hReturn}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM 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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjUubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j'regulator_disable_deferred (C function)c.regulator_disable_deferredhNtauh1juhjVhhhNhNubj)}(hhh](j)}(hDint regulator_disable_deferred (struct regulator *regulator, int ms)h]j)}(hCint regulator_disable_deferred(struct regulator *regulator, int ms)h](jY<)}(hinth]hint}(hjVhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjVhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMd ubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhjVhMd ubj)}(hregulator_disable_deferredh]j)}(hregulator_disable_deferredh]hregulator_disable_deferred}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubah}(h]h ](jjeh"]h$]h&]hhuh1jhjVhhhjVhMd ubj;)}(h%(struct regulator *regulator, int ms)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj)}(h h]h }(hj$WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubh)}(hhh]j)}(h regulatorh]h regulator}(hj5WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2Wubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetj7WmodnameN classnameNj{;j~;)}j;]j;)}jw;jVsbc.regulator_disable_deferredasbuh1hhjWubj)}(h h]h }(hjUWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj;)}(hj;h]h*}(hjcWhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjWubj)}(h regulatorh]h regulator}(hjpWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjWubj;)}(hint msh](jY<)}(hinth]hint}(hjWhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj)}(hmsh]hms}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjWubeh}(h]h ]h"]h$]h&]hhuh1j;hjVhhhjVhMd ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjVhhhjVhMd ubah}(h]jVah ](jjeh"]h$]h&]jj)jhuh1jhjVhMd hjVhhubj)}(hhh]j()}(h#disable regulator output with delayh]h#disable regulator output with delay}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMd hjWhhubah}(h]h ]h"]h$]h&]uh1jhjVhhhjVhMd ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjWjjWjjjuh1jhhhjVhNhNubj)}(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&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMh hjWubjc)}(hhh](jh)}(h1``struct regulator *regulator`` regulator source h](jn)}(h``struct regulator *regulator``h]j)}(hjXh]hstruct regulator *regulator}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMe hj Xubj)}(hhh]j()}(hregulator sourceh]hregulator source}(hj)XhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj%XhMe hj&Xubah}(h]h ]h"]h$]h&]uh1jhj Xubeh}(h]h ]h"]h$]h&]uh1jghj%XhMe hjXubjh)}(h8``int ms`` milliseconds until the regulator is disabled h](jn)}(h ``int ms``h]j)}(hjIXh]hint ms}(hjKXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGXubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMf hjCXubj)}(hhh]j()}(h,milliseconds until the regulator is disabledh]h,milliseconds until the regulator is disabled}(hjbXhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj^XhMf hj_Xubah}(h]h ]h"]h$]h&]uh1jhjCXubeh}(h]h ]h"]h$]h&]uh1jghj^XhMf hjXubeh}(h]h ]h"]h$]h&]uh1jbhjWubj()}(h**Description**h]j)}(hjXh]h Description}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMh 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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMg hjWubj()}(h**NOTE**h]j)}(hjXh]hNOTE}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMj 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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMk hjWubj()}(h **Return**h]j)}(hjXh]hReturn}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMo 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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMo hjWubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j!regulator_is_enabled (C function)c.regulator_is_enabledhNtauh1juhjVhhhNhNubj)}(hhh](j)}(h6int regulator_is_enabled (struct regulator *regulator)h]j)}(h5int regulator_is_enabled(struct regulator *regulator)h](jY<)}(hinth]hint}(hjYhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjYhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hj&YhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYhhhj%YhM ubj)}(hregulator_is_enabledh]j)}(hregulator_is_enabledh]hregulator_is_enabled}(hj8YhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4Yubah}(h]h ](jjeh"]h$]h&]hhuh1jhjYhhhj%YhM ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjTYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPYubj)}(h h]h }(hjaYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPYubh)}(hhh]j)}(h regulatorh]h regulator}(hjrYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoYubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjtYmodnameN classnameNj{;j~;)}j;]j;)}jw;j:Ysbc.regulator_is_enabledasbuh1hhjPYubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPYubj;)}(hj;h]h*}(hjYhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjPYubj)}(h regulatorh]h regulator}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPYubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjLYubah}(h]h ]h"]h$]h&]hhuh1j;hjYhhhj%YhM ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjYhhhj%YhM ubah}(h]j Yah ](jjeh"]h$]h&]jj)jhuh1jhj%YhM hj Yhhubj)}(hhh]j()}(his the regulator output enabledh]his the regulator output enabled}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjYhhubah}(h]h ]h"]h$]h&]uh1jhj Yhhhj%YhM ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjYjjYjjjuh1jhhhjVhNhNubj)}(hX**Parameters** ``struct regulator *regulator`` regulator source **Description** Note that the device backing this regulator handle can have multiple users, so it might be enabled even if regulator_enable() was never called for this particular source. **Return** Positive if the regulator driver backing the source/client has requested that the device be enabled, zero if it hasn't, else a negative error number.h](j()}(h**Parameters**h]j)}(hjYh]h Parameters}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjYubjc)}(hhh]jh)}(h1``struct regulator *regulator`` regulator source h](jn)}(h``struct regulator *regulator``h]j)}(hjZh]hstruct regulator *regulator}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjZubj)}(hhh]j()}(hregulator sourceh]hregulator source}(hj1ZhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj-ZhM hj.Zubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jghj-ZhM hjZubah}(h]h ]h"]h$]h&]uh1jbhjYubj()}(h**Description**h]j)}(hjSZh]h Description}(hjUZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQZubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjYubj()}(hNote that the device backing this regulator handle can have multiple users, so it might be enabled even if regulator_enable() was never called for this particular source.h]hNote that the device backing this regulator handle can have multiple users, so it might be enabled even if regulator_enable() was never called for this particular source.}(hjiZhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjYubj()}(h **Return**h]j)}(hjzZh]hReturn}(hj|ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxZubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjYubj()}(hPositive if the regulator driver backing the source/client has requested that the device be enabled, zero if it hasn't, else a negative error number.h]hPositive if the regulator driver backing the source/client has requested that the device be enabled, zero if it hasn’t, else a negative error number.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjYubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j%regulator_count_voltages (C function)c.regulator_count_voltageshNtauh1juhjVhhhNhNubj)}(hhh](j)}(h:int regulator_count_voltages (struct regulator *regulator)h]j)}(h9int regulator_count_voltages(struct regulator *regulator)h](jY<)}(hinth]hint}(hjZhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjZhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM ubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZhhhjZhM ubj)}(hregulator_count_voltagesh]j)}(hregulator_count_voltagesh]hregulator_count_voltages}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubah}(h]h ](jjeh"]h$]h&]hhuh1jhjZhhhjZhM ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj)}(h h]h }(hj [hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubh)}(hhh]j)}(h regulatorh]h regulator}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetj[modnameN classnameNj{;j~;)}j;]j;)}jw;jZsbc.regulator_count_voltagesasbuh1hhjZubj)}(h h]h }(hj:[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj;)}(hj;h]h*}(hjH[hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjZubj)}(h regulatorh]h regulator}(hjU[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjZubah}(h]h ]h"]h$]h&]hhuh1j;hjZhhhjZhM ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjZhhhjZhM ubah}(h]jZah ](jjeh"]h$]h&]jj)jhuh1jhjZhM hjZhhubj)}(hhh]j()}(h(count regulator_list_voltage() selectorsh]h(count regulator_list_voltage() selectors}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj|[hhubah}(h]h ]h"]h$]h&]uh1jhjZhhhjZhM ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjj[jj[jjjuh1jhhhjVhNhNubj)}(hX**Parameters** ``struct regulator *regulator`` regulator source **Return** Number of selectors for **regulator**, or negative error number. **Description** Selectors are numbered starting at zero, and typically correspond to bitfields in hardware registers.h](j()}(h**Parameters**h]j)}(hj[h]h Parameters}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj[ubjc)}(hhh]jh)}(h1``struct regulator *regulator`` regulator source h](jn)}(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&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj[ubj)}(hhh]j()}(hregulator sourceh]hregulator source}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj[hM hj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jghj[hM hj[ubah}(h]h ]h"]h$]h&]uh1jbhj[ubj()}(h **Return**h]j)}(hj[h]hReturn}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj[ubj()}(h@Number of selectors for **regulator**, or negative error number.h](hNumber of selectors for }(hj\hhhNhNubj)}(h **regulator**h]h regulator}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubh, or negative error number.}(hj\hhhNhNubeh}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj[ubj()}(h**Description**h]j)}(hj4\h]h Description}(hj6\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2\ubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj[ubj()}(heSelectors are numbered starting at zero, and typically correspond to bitfields in hardware registers.h]heSelectors are numbered starting at zero, and typically correspond to bitfields in hardware registers.}(hjJ\hhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j#regulator_list_voltage (C function)c.regulator_list_voltagehNtauh1juhjVhhhNhNubj)}(hhh](j)}(hKint regulator_list_voltage (struct regulator *regulator, unsigned selector)h]j)}(hJint regulator_list_voltage(struct regulator *regulator, unsigned selector)h](jY<)}(hinth]hint}(hjy\hhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hju\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&]uh1jhju\hhhj\hM ubj)}(hregulator_list_voltageh]j)}(hregulator_list_voltageh]hregulator_list_voltage}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubah}(h]h ](jjeh"]h$]h&]hhuh1jhju\hhhj\hM ubj;)}(h0(struct regulator *regulator, unsigned selector)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubh)}(hhh]j)}(h regulatorh]h regulator}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetj\modnameN classnameNj{;j~;)}j;]j;)}jw;j\sbc.regulator_list_voltageasbuh1hhj\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)}(h regulatorh]h regulator}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj\ubj;)}(hunsigned selectorh](jY<)}(hunsignedh]hunsigned}(hj(]hhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hj$]ubj)}(h h]h }(hj6]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$]ubj)}(hselectorh]hselector}(hjD]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$]ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj\ubeh}(h]h ]h"]h$]h&]hhuh1j;hju\hhhj\hM ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjq\hhhj\hM ubah}(h]jl\ah ](jjeh"]h$]h&]jj)jhuh1jhj\hM hjn\hhubj)}(hhh]j()}(henumerate supported voltagesh]henumerate supported voltages}(hjn]hhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hjk]hhubah}(h]h ]h"]h$]h&]uh1jhjn\hhhj\hM ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjj]jj]jjjuh1jhhhjVhNhNubj)}(hX8**Parameters** ``struct regulator *regulator`` regulator source ``unsigned selector`` identify voltage to list **Context** can sleep **Return** Voltage for **selector** that can be passed to regulator_set_voltage(), 0 if **selector** can't be used on this system, or a negative error number on failure.h](j()}(h**Parameters**h]j)}(hj]h]h Parameters}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj]ubjc)}(hhh](jh)}(h1``struct regulator *regulator`` regulator source h](jn)}(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&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj]ubj)}(hhh]j()}(hregulator sourceh]hregulator source}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj]hM hj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jghj]hM hj]ubjh)}(h/``unsigned selector`` identify voltage to list h](jn)}(h``unsigned selector``h]j)}(hj]h]hunsigned selector}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj]ubj)}(hhh]j()}(hidentify voltage to listh]hidentify voltage to list}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj]hM hj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jghj]hM hj]ubeh}(h]h ]h"]h$]h&]uh1jbhj]ubj()}(h **Context**h]j)}(hj#^h]hContext}(hj%^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!^ubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj]ubj()}(h can sleeph]h can sleep}(hj9^hhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj]ubj()}(h **Return**h]j)}(hjJ^h]hReturn}(hjL^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH^ubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj]ubj()}(hVoltage for **selector** that can be passed to regulator_set_voltage(), 0 if **selector** can't be used on this system, or a negative error number on failure.h](h Voltage for }(hj`^hhhNhNubj)}(h **selector**h]hselector}(hjh^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`^ubh5 that can be passed to regulator_set_voltage(), 0 if }(hj`^hhhNhNubj)}(h **selector**h]hselector}(hjz^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`^ubhG can’t be used on this system, or a negative error number on failure.}(hj`^hhhNhNubeh}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj]ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j!regulator_get_regmap (C function)c.regulator_get_regmaphNtauh1juhjVhhhNhNubj)}(hhh](j)}(hBstruct regmap * regulator_get_regmap (struct regulator *regulator)h]j)}(h@struct regmap *regulator_get_regmap(struct regulator *regulator)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)}(hregmaph]hregmap}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetj^modnameN classnameNj{;j~;)}j;]j;)}jw;regulator_get_regmapsbc.regulator_get_regmapasbuh1hhj^hhhj^hM ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^hhhj^hM ubj;)}(hj;h]h*}(hj_hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj^hhhj^hM ubj)}(hregulator_get_regmaph]j)}(hj^h]hregulator_get_regmap}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj^hhhj^hM ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hj-_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)_ubj)}(h h]h }(hj:_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)_ubh)}(hhh]j)}(h regulatorh]h regulator}(hjK_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjH_ubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjM_modnameN classnameNj{;j~;)}j;]j^c.regulator_get_regmapasbuh1hhj)_ubj)}(h h]h }(hji_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)_ubj;)}(hj;h]h*}(hjw_hhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj)_ubj)}(h regulatorh]h regulator}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)_ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj%_ubah}(h]h ]h"]h$]h&]hhuh1j;hj^hhhj^hM ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj^hhhj^hM ubah}(h]j^ah ](jjeh"]h$]h&]jj)jhuh1jhj^hM hj^hhubj)}(hhh]j()}(h get the regulator's register maph]h"get the regulator’s register map}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/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 ](jIfunctioneh"]h$]h&]jjIjj_jj_jjjuh1jhhhjVhNhNubj)}(h**Parameters** ``struct regulator *regulator`` regulator source **Return** Pointer to the :c:type:`struct regmap ` for **regulator**, or ERR_PTR() encoded -``EOPNOTSUPP`` if **regulator** doesn't use regmap.h](j()}(h**Parameters**h]j)}(hj_h]h Parameters}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj_ubjc)}(hhh]jh)}(h1``struct regulator *regulator`` regulator source h](jn)}(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&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj_ubj)}(hhh]j()}(hregulator sourceh]hregulator source}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj`hM hj`ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jghj`hM hj_ubah}(h]h ]h"]h$]h&]uh1jbhj_ubj()}(h **Return**h]j)}(hj*`h]hReturn}(hj,`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(`ubah}(h]h ]h"]h$]h&]uh1j'h^/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)}(hjJ`h]h struct regmap}(hjL`hhhNhNubah}(h]h ](jHjIc-typeeh"]h$]h&]uh1jhjH`ubah}(h]h ]h"]h$]h&]refdocjU refdomainjIreftypetype refexplicitrefwarnj{;j=j[regmapuh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj@`ubh for }(hj@`hhhNhNubj)}(h **regulator**h]h regulator}(hjl`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@`ubh, or ERR_PTR() encoded -}(hj@`hhhNhNubj)}(h``EOPNOTSUPP``h]h EOPNOTSUPP}(hj~`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@`ubh if }(hj@`hhhNhNubj)}(h **regulator**h]h regulator}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@`ubh doesn’t use regmap.}(hj@`hhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hjg`hM hj_ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j1regulator_get_hardware_vsel_register (C function)&c.regulator_get_hardware_vsel_registerhNtauh1juhjVhhhNhNubj)}(hhh](j)}(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](jY<)}(hinth]hint}(hj`hhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hj`hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`hhhj`hMubj)}(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`hMubj;)}(hF(struct regulator *regulator, unsigned *vsel_reg, unsigned *vsel_mask)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubh)}(hhh]j)}(h regulatorh]h regulator}(hj#ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj aubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetj%amodnameN classnameNj{;j~;)}j;]j;)}jw;j`sb&c.regulator_get_hardware_vsel_registerasbuh1hhjaubj)}(h h]h }(hjCahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj;)}(hj;h]h*}(hjQahhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjaubj)}(h regulatorh]h regulator}(hj^ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj`ubj;)}(hunsigned *vsel_regh](jY<)}(hunsignedh]hunsigned}(hjwahhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjsaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsaubj;)}(hj;h]h*}(hjahhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjsaubj)}(hvsel_regh]hvsel_reg}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsaubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj`ubj;)}(hunsigned *vsel_maskh](jY<)}(hunsignedh]hunsigned}(hjahhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<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`hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj`hhhj`hMubah}(h]j`ah ](jjeh"]h$]h&]jj)jhuh1jhj`hMhj`hhubj)}(hhh]j()}(h$get the HW voltage selector registerh]h$get the HW voltage selector register}(hj bhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj bhhubah}(h]h ]h"]h$]h&]uh1jhj`hhhj`hMubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjj$bjj$bjjjuh1jhhhjVhNhNubj)}(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)}(hj.bh]h Parameters}(hj0bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,bubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj(bubjc)}(hhh](jh)}(h1``struct regulator *regulator`` regulator source h](jn)}(h``struct regulator *regulator``h]j)}(hjMbh]hstruct regulator *regulator}(hjObhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKbubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjGbubj)}(hhh]j()}(hregulator sourceh]hregulator source}(hjfbhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjbbhMhjcbubah}(h]h ]h"]h$]h&]uh1jhjGbubeh}(h]h ]h"]h$]h&]uh1jghjbbhMhjDbubjh)}(hC``unsigned *vsel_reg`` voltage selector register, output parameter h](jn)}(h``unsigned *vsel_reg``h]j)}(hjbh]hunsigned *vsel_reg}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjbubj)}(hhh]j()}(h+voltage selector register, output parameterh]h+voltage selector register, output parameter}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjbhMhjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jghjbhMhjDbubjh)}(hM``unsigned *vsel_mask`` mask for voltage selector bitfield, output parameter h](jn)}(h``unsigned *vsel_mask``h]j)}(hjbh]hunsigned *vsel_mask}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjbubj)}(hhh]j()}(h4mask for voltage selector bitfield, output parameterh]h4mask for voltage selector bitfield, output parameter}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjbhMhjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jghjbhMhjDbubeh}(h]h ]h"]h$]h&]uh1jbhj(bubj()}(h**Description**h]j)}(hjbh]h Description}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj(bubj()}(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.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM hj(bubj()}(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 }(hjchhhNhNubj)}(h **vsel_reg**h]hvsel_reg}(hj'chhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubh and }(hjchhhNhNubj)}(h **vsel_mask**h]h vsel_mask}(hj9chhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubhP are filled in and 0 is returned, otherwise a negative error number is returned.}(hjchhhNhNubeh}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj(bubj()}(h **Return**h]j)}(hjTch]hReturn}(hjVchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRcubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj(bubj()}(hU0 on success, or -``EOPNOTSUPP`` if the regulator does not support voltage selectors.h](h0 on success, or -}(hjjchhhNhNubj)}(h``EOPNOTSUPP``h]h EOPNOTSUPP}(hjrchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjcubh5 if the regulator does not support voltage selectors.}(hjjchhhNhNubeh}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj(bubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j)regulator_list_hardware_vsel (C function)c.regulator_list_hardware_vselhNtauh1juhjVhhhNhNubj)}(hhh](j)}(hQint regulator_list_hardware_vsel (struct regulator *regulator, unsigned selector)h]j)}(hPint regulator_list_hardware_vsel(struct regulator *regulator, unsigned selector)h](jY<)}(hinth]hint}(hjchhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjchhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM'ubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjchhhjchM'ubj)}(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&]hhuh1jhjchhhjchM'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}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjdmodnameN classnameNj{;j~;)}j;]j;)}jw;jcsbc.regulator_list_hardware_vselasbuh1hhjcubj)}(h h]h }(hj&dhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj;)}(hj;h]h*}(hj4dhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjcubj)}(h regulatorh]h regulator}(hjAdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjcubj;)}(hunsigned selectorh](jY<)}(hunsignedh]hunsigned}(hjZdhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjVdubj)}(h h]h }(hjhdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVdubj)}(hselectorh]hselector}(hjvdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVdubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjcubeh}(h]h ]h"]h$]h&]hhuh1j;hjchhhjchM'ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjchhhjchM'ubah}(h]jcah ](jjeh"]h$]h&]jj)jhuh1jhjchM'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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM'hjdhhubah}(h]h ]h"]h$]h&]uh1jhjchhhjchM'ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjdjjdjjjuh1jhhhjVhNhNubj)}(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&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM+hjdubjc)}(hhh](jh)}(h1``struct regulator *regulator`` regulator source h](jn)}(h``struct regulator *regulator``h]j)}(hjdh]hstruct regulator *regulator}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM(hjdubj)}(hhh]j()}(hregulator sourceh]hregulator source}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjdhM(hjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jghjdhM(hjdubjh)}(h/``unsigned selector`` identify voltage to list h](jn)}(h``unsigned selector``h]j)}(hjeh]hunsigned selector}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM)hjeubj)}(hhh]j()}(hidentify voltage to listh]hidentify voltage to list}(hj3ehhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj/ehM)hj0eubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jghj/ehM)hjdubeh}(h]h ]h"]h$]h&]uh1jbhjdubj()}(h**Description**h]j)}(hjUeh]h Description}(hjWehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSeubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM+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 }(hjkehhhNhNubj)}(h(**regulator_get_hardware_vsel_register**h]h$regulator_get_hardware_vsel_register}(hjsehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkeubh.}(hjkehhhNhNubeh}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM*hjdubj()}(h **Return**h]j)}(hjeh]hReturn}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM.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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM/hjdubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j®ulator_hardware_enable (C function)c.regulator_hardware_enablehNtauh1juhjVhhhNhNubj)}(hhh](j)}(hHint regulator_hardware_enable (struct regulator *regulator, bool enable)h]j)}(hGint regulator_hardware_enable(struct regulator *regulator, bool enable)h](jY<)}(hinth]hint}(hjehhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjehhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMEubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjehhhjfhMEubj)}(hregulator_hardware_enableh]j)}(hregulator_hardware_enableh]hregulator_hardware_enable}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubah}(h]h ](jjeh"]h$]h&]hhuh1jhjehhhjfhMEubj;)}(h*(struct regulator *regulator, bool enable)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hj4fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0fubj)}(h h]h }(hjAfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0fubh)}(hhh]j)}(h regulatorh]h regulator}(hjRfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOfubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjTfmodnameN classnameNj{;j~;)}j;]j;)}jw;jfsbc.regulator_hardware_enableasbuh1hhj0fubj)}(h h]h }(hjrfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0fubj;)}(hj;h]h*}(hjfhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj0fubj)}(h regulatorh]h regulator}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0fubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj,fubj;)}(h bool enableh](jY<)}(hboolh]hbool}(hjfhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<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;hj,fubeh}(h]h ]h"]h$]h&]hhuh1j;hjehhhjfhMEubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjehhhjfhMEubah}(h]jeah ](jjeh"]h$]h&]jj)jhuh1jhjfhMEhjehhubj)}(hhh]j()}(h*access the HW for enable/disable regulatorh]h*access the HW for enable/disable regulator}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMEhjfhhubah}(h]h ]h"]h$]h&]uh1jhjehhhjfhMEubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjgjjgjjjuh1jhhhjVhNhNubj)}(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)}(hjgh]h Parameters}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj gubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMIhjgubjc)}(hhh](jh)}(h1``struct regulator *regulator`` regulator source h](jn)}(h``struct regulator *regulator``h]j)}(hj-gh]hstruct regulator *regulator}(hj/ghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+gubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMFhj'gubj)}(hhh]j()}(hregulator sourceh]hregulator source}(hjFghhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjBghMFhjCgubah}(h]h ]h"]h$]h&]uh1jhj'gubeh}(h]h ]h"]h$]h&]uh1jghjBghMFhj$gubjh)}(h3``bool enable`` true for enable, false for disable h](jn)}(h``bool enable``h]j)}(hjfgh]h bool enable}(hjhghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdgubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMGhj`gubj)}(hhh]j()}(h"true for enable, false for disableh]h"true for enable, false for disable}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj{ghMGhj|gubah}(h]h ]h"]h$]h&]uh1jhj`gubeh}(h]h ]h"]h$]h&]uh1jghj{ghMGhj$gubeh}(h]h ]h"]h$]h&]uh1jbhjgubj()}(h**Description**h]j)}(hjgh]h Description}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMIhjgubj()}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMHhjgubj()}(h **Return**h]j)}(hjgh]hReturn}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMKhjgubj()}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMLhjgubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j®ulator_get_linear_step (C function)c.regulator_get_linear_stephNtauh1juhjVhhhNhNubj)}(hhh](j)}(hDunsigned int regulator_get_linear_step (struct regulator *regulator)h]j)}(hCunsigned int regulator_get_linear_step(struct regulator *regulator)h](jY<)}(hunsignedh]hunsigned}(hj hhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hj hhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMaubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhhjhhMaubjY<)}(hinth]hint}(hj*hhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hj hhhhjhhMaubj)}(h h]h }(hj8hhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhhjhhMaubj)}(hregulator_get_linear_steph]j)}(hregulator_get_linear_steph]hregulator_get_linear_step}(hjJhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFhubah}(h]h ](jjeh"]h$]h&]hhuh1jhj hhhhjhhMaubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjfhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbhubj)}(h h]h }(hjshhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbhubh)}(hhh]j)}(h regulatorh]h regulator}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjhmodnameN classnameNj{;j~;)}j;]j;)}jw;jLhsbc.regulator_get_linear_stepasbuh1hhjbhubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbhubj;)}(hj;h]h*}(hjhhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjbhubj)}(h regulatorh]h regulator}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbhubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj^hubah}(h]h ]h"]h$]h&]hhuh1j;hj hhhhjhhMaubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhhjhhMaubah}(h]jhah ](jjeh"]h$]h&]jj)jhuh1jhjhhMahjhhhubj)}(hhh]j()}(h0return the voltage step size between VSEL valuesh]h0return the voltage step size between VSEL values}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMahjhhhubah}(h]h ]h"]h$]h&]uh1jhjhhhhjhhMaubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjijjijjjuh1jhhhjVhNhNubj)}(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)}(hj ih]h Parameters}(hj ihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj iubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMehjiubjc)}(hhh]jh)}(h1``struct regulator *regulator`` regulator source h](jn)}(h``struct regulator *regulator``h]j)}(hj*ih]hstruct regulator *regulator}(hj,ihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(iubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMbhj$iubj)}(hhh]j()}(hregulator sourceh]hregulator source}(hjCihhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj?ihMbhj@iubah}(h]h ]h"]h$]h&]uh1jhj$iubeh}(h]h ]h"]h$]h&]uh1jghj?ihMbhj!iubah}(h]h ]h"]h$]h&]uh1jbhjiubj()}(h **Return**h]j)}(hjeih]hReturn}(hjgihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjciubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMdhjiubj()}(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.}(hj{ihhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMdhjiubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j+regulator_is_supported_voltage (C function) c.regulator_is_supported_voltagehNtauh1juhjVhhhNhNubj)}(hhh](j)}(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](jY<)}(hinth]hint}(hjihhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjihhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMpubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjihhhjihMpubj)}(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&]hhuh1jhjihhhjihMpubj;)}(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}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjjmodnameN classnameNj{;j~;)}j;]j;)}jw;jisb c.regulator_is_supported_voltageasbuh1hhjiubj)}(h h]h }(hj%jhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj;)}(hj;h]h*}(hj3jhhhNhNubah}(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](jY<)}(hinth]hint}(hjYjhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjUjubj)}(h h]h }(hjgjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUjubj)}(hmin_uVh]hmin_uV}(hjujhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjiubj;)}(h int max_uVh](jY<)}(hinth]hint}(hjjhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjjubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj)}(hmax_uVh]hmax_uV}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjiubeh}(h]h ]h"]h$]h&]hhuh1j;hjihhhjihMpubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjihhhjihMpubah}(h]jiah ](jjeh"]h$]h&]jj)jhuh1jhjihMphjihhubj)}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMphjjhhubah}(h]h ]h"]h$]h&]uh1jhjihhhjihMpubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjjjjjjjjuh1jhhhjVhNhNubj)}(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&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMthjjubjc)}(hhh](jh)}(h4``struct regulator *regulator`` Regulator to check. h](jn)}(h``struct regulator *regulator``h]j)}(hjkh]hstruct regulator *regulator}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMrhjkubj)}(hhh]j()}(hRegulator to check.h]hRegulator to check.}(hj.khhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj*khMrhj+kubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jghj*khMrhj kubjh)}(h/``int min_uV`` Minimum required voltage in uV. h](jn)}(h``int min_uV``h]j)}(hjNkh]h int min_uV}(hjPkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLkubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMshjHkubj)}(hhh]j()}(hMinimum required voltage in uV.h]hMinimum required voltage in uV.}(hjgkhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjckhMshjdkubah}(h]h ]h"]h$]h&]uh1jhjHkubeh}(h]h ]h"]h$]h&]uh1jghjckhMshj kubjh)}(h/``int max_uV`` Maximum required voltage in uV. h](jn)}(h``int max_uV``h]j)}(hjkh]h int max_uV}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMthjkubj)}(hhh]j()}(hMaximum required voltage in uV.h]hMaximum required voltage in uV.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjkhMthjkubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jghjkhMthj kubeh}(h]h ]h"]h$]h&]uh1jbhjjubj()}(h **Return**h]j)}(hjkh]hReturn}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMvhjjubj()}(h1 if the voltage range is supported, 0 if not, or a negative error number if **regulator**'s voltage can't be changed and voltage readback failed.h](hM1 if the voltage range is supported, 0 if not, or a negative error number if }(hjkhhhNhNubj)}(h **regulator**h]h regulator}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubh<’s voltage can’t be changed and voltage readback failed.}(hjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMvhjjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j"regulator_set_voltage (C function)c.regulator_set_voltagehNtauh1juhjVhhhNhNubj)}(hhh](j)}(hOint regulator_set_voltage (struct regulator *regulator, int min_uV, int max_uV)h]j)}(hNint regulator_set_voltage(struct regulator *regulator, int min_uV, int max_uV)h](jY<)}(hinth]hint}(hjlhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjlhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hj(lhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlhhhj'lhMubj)}(hregulator_set_voltageh]j)}(hregulator_set_voltageh]hregulator_set_voltage}(hj:lhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6lubah}(h]h ](jjeh"]h$]h&]hhuh1jhjlhhhj'lhMubj;)}(h5(struct regulator *regulator, int min_uV, int max_uV)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjVlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRlubj)}(h h]h }(hjclhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRlubh)}(hhh]j)}(h regulatorh]h regulator}(hjtlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqlubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjvlmodnameN classnameNj{;j~;)}j;]j;)}jw;jph]hstruct regulator *regulator}(hj@phhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjqubj;)}(hunsigned int new_selectorh](jY<)}(hunsignedh]hunsigned}(hjWrhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjSrubj)}(h h]h }(hjerhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSrubjY<)}(hinth]hint}(hjsrhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjSrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSrubj)}(h new_selectorh]h new_selector}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSrubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjqubeh}(h]h ]h"]h$]h&]hhuh1j;hjSqhhhjeqhM2ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjOqhhhjeqhM2ubah}(h]jJqah ](jjeh"]h$]h&]jj)jhuh1jhjeqhM2hjLqhhubj)}(hhh]j()}(hget raise/fall timeh]hget raise/fall time}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM2hjrhhubah}(h]h ]h"]h$]h&]uh1jhjLqhhhjeqhM2ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjrjjrjjjuh1jhhhjVhNhNubj)}(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&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM6hjrubjc)}(hhh](jh)}(h7``struct regulator_dev *rdev`` regulator source device h](jn)}(h``struct regulator_dev *rdev``h]j)}(hjrh]hstruct regulator_dev *rdev}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM3hjrubj)}(hhh]j()}(hregulator source deviceh]hregulator source device}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjshM3hjsubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jghjshM3hjrubjh)}(h<``unsigned int old_selector`` selector for starting voltage h](jn)}(h``unsigned int old_selector``h]j)}(hj3sh]hunsigned int old_selector}(hj5shhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1subah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM4hj-subj)}(hhh]j()}(hselector for starting voltageh]hselector for starting voltage}(hjLshhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjHshM4hjIsubah}(h]h ]h"]h$]h&]uh1jhj-subeh}(h]h ]h"]h$]h&]uh1jghjHshM4hjrubjh)}(h:``unsigned int new_selector`` selector for target voltage h](jn)}(h``unsigned int new_selector``h]j)}(hjlsh]hunsigned int new_selector}(hjnshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjsubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM5hjfsubj)}(hhh]j()}(hselector for target voltageh]hselector for target voltage}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjshM5hjsubah}(h]h ]h"]h$]h&]uh1jhjfsubeh}(h]h ]h"]h$]h&]uh1jghjshM5hjrubeh}(h]h ]h"]h$]h&]uh1jbhjrubj()}(h**Description**h]j)}(hjsh]h Description}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM7hjrubj()}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM6hjrubj()}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM9hjrubj()}(h **Return**h]j)}(hjsh]hReturn}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM<hjrubj()}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM=hjrubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j#regulator_sync_voltage (C function)c.regulator_sync_voltagehNtauh1juhjVhhhNhNubj)}(hhh](j)}(h8int regulator_sync_voltage (struct regulator *regulator)h]j)}(h7int regulator_sync_voltage(struct regulator *regulator)h](jY<)}(hinth]hint}(hj"thhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjthhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMlubj)}(h h]h }(hj1thhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjthhhj0thMlubj)}(hregulator_sync_voltageh]j)}(hregulator_sync_voltageh]hregulator_sync_voltage}(hjCthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?tubah}(h]h ](jjeh"]h$]h&]hhuh1jhjthhhj0thMlubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hj_thhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[tubj)}(h h]h }(hjlthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[tubh)}(hhh]j)}(h regulatorh]h regulator}(hj}thhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjztubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjtmodnameN classnameNj{;j~;)}j;]j;)}jw;jEtsbc.regulator_sync_voltageasbuh1hhj[tubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[tubj;)}(hj;h]h*}(hjthhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj[tubj)}(h regulatorh]h regulator}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[tubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjWtubah}(h]h ]h"]h$]h&]hhuh1j;hjthhhj0thMlubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjthhhj0thMlubah}(h]jtah ](jjeh"]h$]h&]jj)jhuh1jhj0thMlhjthhubj)}(hhh]j()}(h&re-apply last regulator output voltageh]h&re-apply last regulator output voltage}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMlhjthhubah}(h]h ]h"]h$]h&]uh1jhjthhhj0thMlubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjtjjtjjjuh1jhhhjVhNhNubj)}(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)}(hjuh]h Parameters}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMphjtubjc)}(hhh]jh)}(h1``struct regulator *regulator`` regulator source h](jn)}(h``struct regulator *regulator``h]j)}(hj#uh]hstruct regulator *regulator}(hj%uhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!uubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMmhjuubj)}(hhh]j()}(hregulator sourceh]hregulator source}(hjhjubj()}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM?hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j)regulator_bulk_force_disable (C function)c.regulator_bulk_force_disablehNtauh1juhjVhhhNhNubj)}(hhh](j)}(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](jY<)}(hinth]hint}(hj hhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hj hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM]ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhjhM]ubj)}(hregulator_bulk_force_disableh]j)}(hregulator_bulk_force_disableh]hregulator_bulk_force_disable}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj hhhjhM]ubj;)}(h:(int num_consumers, struct regulator_bulk_data *consumers)h](j;)}(hint num_consumersh](jY<)}(hinth]hint}(hjJhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjFubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj)}(h num_consumersh]h num_consumers}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjBubj;)}(h%struct regulator_bulk_data *consumersh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubh)}(hhh]j)}(hregulator_bulk_datah]hregulator_bulk_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjmodnameN classnameNj{;j~;)}j;]j;)}jw;j0sbc.regulator_bulk_force_disableasbuh1hhj{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)}(h consumersh]h consumers}(hjؘhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjBubeh}(h]h ]h"]h$]h&]hhuh1j;hj hhhjhM]ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhM]ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhM]hjhhubj)}(hhh]j()}(h*force disable multiple regulator consumersh]h*force disable multiple regulator consumers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM]hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM]ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjjjjjjuh1jhhhjVhNhNubj)}(hX\**Parameters** ``int num_consumers`` Number of consumers ``struct regulator_bulk_data *consumers`` Consumer data; clients are stored here. **Description** This convenience API allows consumers to forcibly disable multiple regulator clients in a single API call. **NOTE** This should be used for situations when device damage will likely occur if the regulators are not disabled (e.g. over temp). Although regulator_force_disable function call for some consumers can return error numbers, the function is called for all consumers. **Return** 0 on success or a negative error number on failure.h](j()}(h**Parameters**h]j)}(hj$h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMahjubjc)}(hhh](jh)}(h*``int num_consumers`` Number of consumers h](jn)}(h``int num_consumers``h]j)}(hjCh]hint num_consumers}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM_hj=ubj)}(hhh]j()}(hNumber of consumersh]hNumber of consumers}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjXhM_hjYubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jghjXhM_hj:ubjh)}(hR``struct regulator_bulk_data *consumers`` Consumer data; clients are stored here. h](jn)}(h)``struct regulator_bulk_data *consumers``h]j)}(hj|h]h%struct regulator_bulk_data *consumers}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM`hjvubj)}(hhh]j()}(h'Consumer data; clients are stored here.h]h'Consumer data; clients are stored here.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhM`hjubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jghjhM`hj:ubeh}(h]h ]h"]h$]h&]uh1jbhjubj()}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMbhjubj()}(hjThis convenience API allows consumers to forcibly disable multiple regulator clients in a single API call.h]hjThis convenience API allows consumers to forcibly disable multiple regulator clients in a single API call.}(hj͙hhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMahjubj()}(h**NOTE**h]j)}(hjޙh]hNOTE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjܙubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMdhjubj()}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMdhjubj()}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMihjubj()}(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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMihjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j regulator_bulk_free (C function)c.regulator_bulk_freehNtauh1juhjVhhhNhNubj)}(hhh](j)}(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](jY<)}(hvoidh]hvoid}(hjJhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjFhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFhhhjXhMubj)}(hregulator_bulk_freeh]j)}(hregulator_bulk_freeh]hregulator_bulk_free}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubah}(h]h ](jjeh"]h$]h&]hhuh1jhjFhhhjXhMubj;)}(h:(int num_consumers, struct regulator_bulk_data *consumers)h](j;)}(hint num_consumersh](jY<)}(hinth]hint}(hjhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h num_consumersh]h num_consumers}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubj;)}(h%struct regulator_bulk_data *consumersh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjɚhhhNhNubah}(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&] refdomainjIreftypejw; reftargetjܚmodnameN classnameNj{;j~;)}j;]j;)}jw;jmsbc.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;hjubeh}(h]h ]h"]h$]h&]hhuh1j;hjFhhhjXhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjBhhhjXhMubah}(h]j=ah ](jjeh"]h$]h&]jj)jhuh1jhjXhMhj?hhubj)}(hhh]j()}(h!free multiple regulator consumersh]h!free multiple regulator consumers}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj<hhubah}(h]h ]h"]h$]h&]uh1jhj?hhhjXhMubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjWjjWjjjuh1jhhhjVhNhNubj)}(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)}(hjah]h Parameters}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj[ubjc)}(hhh](jh)}(h*``int num_consumers`` Number of consumers h](jn)}(h``int num_consumers``h]j)}(hjh]hint num_consumers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjzubj)}(hhh]j()}(hNumber of consumersh]hNumber of consumers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhMhjubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jghjhMhjwubjh)}(hR``struct regulator_bulk_data *consumers`` Consumer data; clients are stored here. h](jn)}(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&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(hhh]j()}(h'Consumer data; clients are stored here.h]h'Consumer data; clients are stored here.}(hjқhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjΛhMhjϛubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjΛhMhjwubeh}(h]h ]h"]h$]h&]uh1jbhj[ubj()}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj[ubj()}(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.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j*regulator_notifier_call_chain (C function)c.regulator_notifier_call_chainhNtauh1juhjVhhhNhNubj)}(hhh](j)}(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](jY<)}(hinth]hint}(hj9hhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hj5hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhhjGhMubj)}(hregulator_notifier_call_chainh]j)}(hregulator_notifier_call_chainh]hregulator_notifier_call_chain}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubah}(h]h ](jjeh"]h$]h&]hhuh1jhj5hhhjGhMubj;)}(h=(struct regulator_dev *rdev, unsigned long event, void *data)h](j;)}(hstruct regulator_dev *rdevh](j)}(hjh]hstruct}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubh)}(hhh]j)}(h regulator_devh]h regulator_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjmodnameN classnameNj{;j~;)}j;]j;)}jw;j\sbc.regulator_notifier_call_chainasbuh1hhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj;)}(hj;h]h*}(hjœhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjrubj)}(hrdevh]hrdev}(hjϜhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjnubj;)}(hunsigned long eventh](jY<)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjY<)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(heventh]hevent}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjnubj;)}(h void *datah](jY<)}(hvoidh]hvoid}(hj9hhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hj5ubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj;)}(hj;h]h*}(hjUhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj5ubj)}(hdatah]hdata}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjnubeh}(h]h ]h"]h$]h&]hhuh1j;hj5hhhjGhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj1hhhjGhMubah}(h]j,ah ](jjeh"]h$]h&]jj)jhuh1jhjGhMhj.hhubj)}(hhh]j()}(hcall regulator event notifierh]hcall regulator event notifier}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj.hhhjGhMubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjjjjjjuh1jhhhjVhNhNubj)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubjc)}(hhh](jh)}(h0``struct regulator_dev *rdev`` regulator source h](jn)}(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&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjǝubj)}(hhh]j()}(hregulator sourceh]hregulator source}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhMhjubah}(h]h ]h"]h$]h&]uh1jhjǝubeh}(h]h ]h"]h$]h&]uh1jghjhMhjĝubjh)}(h'``unsigned long event`` notifier block h](jn)}(h``unsigned long event``h]j)}(hjh]hunsigned long event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj)}(hhh]j()}(hnotifier blockh]hnotifier block}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhMhjĝubjh)}(h'``void *data`` callback-specific data. h](jn)}(h``void *data``h]j)}(hj?h]h void *data}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhj9ubj)}(hhh]j()}(hcallback-specific data.h]hcallback-specific data.}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjThMhjUubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jghjThMhjĝubeh}(h]h ]h"]h$]h&]uh1jbhjubj()}(h**Description**h]j)}(hjzh]h Description}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj()}(hMCalled by regulator drivers to notify clients a regulator event has occurred.h]hMCalled by regulator drivers to notify clients a regulator event has occurred.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'h^/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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j%regulator_mode_to_status (C function)c.regulator_mode_to_statushNtauh1juhjVhhhNhNubj)}(hhh](j)}(h0int regulator_mode_to_status (unsigned int mode)h]j)}(h/int regulator_mode_to_status(unsigned int mode)h](jY<)}(hinth]hint}(hjhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<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_mode_to_statush]j)}(hregulator_mode_to_statush]hregulator_mode_to_status}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMubj;)}(h(unsigned int mode)h]j;)}(hunsigned int modeh](jY<)}(hunsignedh]hunsigned}(hj1hhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hj-ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubjY<)}(hinth]hint}(hjMhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hj-ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj)}(hmodeh]hmode}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hj)ubah}(h]h ]h"]h$]h&]hhuh1j;hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]j()}(h&convert a regulator mode into a statush]h&convert a regulator mode into a status}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjjjjjjuh1jhhhjVhNhNubj)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubjc)}(hhh]jh)}(h&``unsigned int mode`` Mode to convert h](jn)}(h``unsigned int mode``h]j)}(hjԟh]hunsigned int mode}(hj֟hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjҟubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjΟubj)}(hhh]j()}(hMode to converth]hMode to convert}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhMhjubah}(h]h ]h"]h$]h&]uh1jhjΟubeh}(h]h ]h"]h$]h&]uh1jghjhMhj˟ubah}(h]h ]h"]h$]h&]uh1jbhjubj()}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j'h^/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.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubj()}(h **Return**h]j)}(hj6h]hReturn}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1j'h^/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_*}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubh# value corresponding to given mode.}(hjLhhhNhNubeh}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](jregulator_register (C function)c.regulator_registerhNtauh1juhjVhhhNhNubj)}(hhh](j)}(hstruct regulator_dev * regulator_register (struct device *dev, const struct regulator_desc *regulator_desc, const struct regulator_config *cfg)h]j)}(hstruct regulator_dev *regulator_register(struct device *dev, const struct regulator_desc *regulator_desc, const struct regulator_config *cfg)h](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMUubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMUubh)}(hhh]j)}(h regulator_devh]h regulator_dev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjmodnameN classnameNj{;j~;)}j;]j;)}jw;regulator_registersbc.regulator_registerasbuh1hhjhhhjhMUubj)}(h h]h }(hjɠhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMUubj;)}(hj;h]h*}(hjנhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjhhhjhMUubj)}(hregulator_registerh]j)}(hjƠh]hregulator_register}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMUubj;)}(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&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetj#modnameN classnameNj{;j~;)}j;]jĠc.regulator_registerasbuh1hhjubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj;)}(hj;h]h*}(hjMhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjubj)}(hdevh]hdev}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubj;)}(h+const struct regulator_desc *regulator_desch](j)}(hj><h]hconst}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubh)}(hhh]j)}(hregulator_desch]hregulator_desc}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjmodnameN classnameNj{;j~;)}j;]jĠc.regulator_registerasbuh1hhjoubj)}(h h]h }(hjʡhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj;)}(hj;h]h*}(hjءhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjoubj)}(hregulator_desch]hregulator_desc}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubeh}(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 }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hregulator_configh]hregulator_config}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetj9modnameN classnameNj{;j~;)}j;]jĠc.regulator_registerasbuh1hhjubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj;)}(hj;h]h*}(hjchhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjubj)}(hcfgh]hcfg}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubeh}(h]h ]h"]h$]h&]hhuh1j;hjhhhjhMUubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhMUubah}(h]j|ah ](jjeh"]h$]h&]jj)jhuh1jhjhMUhj~hhubj)}(hhh]j()}(hregister regulatorh]hregister regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMUhjhhubah}(h]h ]h"]h$]h&]uh1jhj~hhhjhMUubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjjjjjjuh1jhhhjVhNhNubj)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMYhjubjc)}(hhh](jh)}(h;``struct device *dev`` the device that drive the regulator h](jn)}(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&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMVhjբubj)}(hhh]j()}(h#the device that drive the regulatorh]h#the device that drive the regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhMVhjubah}(h]h ]h"]h$]h&]uh1jhjբubeh}(h]h ]h"]h$]h&]uh1jghjhMVhjҢubjh)}(hF``const struct regulator_desc *regulator_desc`` regulator to register h](jn)}(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&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMWhjubj)}(hhh]j()}(hregulator to registerh]hregulator to register}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj)hMWhj*ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghj)hMWhjҢubjh)}(hK``const struct regulator_config *cfg`` runtime configuration for regulator h](jn)}(h&``const struct regulator_config *cfg``h]j)}(hjMh]h"const struct regulator_config *cfg}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMXhjGubj)}(hhh]j()}(h#runtime configuration for regulatorh]h#runtime configuration for regulator}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjbhMXhjcubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jghjbhMXhjҢubeh}(h]h ]h"]h$]h&]uh1jbhjubj()}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMZhjubj()}(h4Called by regulator drivers to register a regulator.h]h4Called by regulator drivers to register a regulator.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMYhjubj()}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM[hjubj()}(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 }(hjţhhhNhNubh)}(h.:c:type:`struct regulator_dev `h]j)}(hjϣh]hstruct regulator_dev}(hjѣhhhNhNubah}(h]h ](jHjIc-typeeh"]h$]h&]uh1jhjͣubah}(h]h ]h"]h$]h&]refdocjU refdomainjIreftypetype refexplicitrefwarnj{;j=j[ regulator_devuh1hh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM\hjţubhE on success or an ERR_PTR() encoded negative error number on failure.}(hjţhhhNhNubeh}(h]h ]h"]h$]h&]uh1j'hjhM\hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j!regulator_unregister (C function)c.regulator_unregisterhNtauh1juhjVhhhNhNubj)}(hhh](j)}(h6void regulator_unregister (struct regulator_dev *rdev)h]j)}(h5void regulator_unregister(struct regulator_dev *rdev)h](jY<)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMzubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj%hMzubj)}(hregulator_unregisterh]j)}(hregulator_unregisterh]hregulator_unregister}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhj%hMzubj;)}(h(struct regulator_dev *rdev)h]j;)}(hstruct regulator_dev *rdevh](j)}(hjh]hstruct}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubh)}(hhh]j)}(h regulator_devh]h regulator_dev}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjtmodnameN classnameNj{;j~;)}j;]j;)}jw;j:sbc.regulator_unregisterasbuh1hhjPubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj;)}(hj;h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjPubj)}(hrdevh]hrdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjLubah}(h]h ]h"]h$]h&]hhuh1j;hjhhhj%hMzubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhj%hMzubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1jhj%hMzhj hhubj)}(hhh]j()}(hunregister regulatorh]hunregister regulator}(hjפhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMzhjԤhhubah}(h]h ]h"]h$]h&]uh1jhj hhhj%hMzubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjjjjjjuh1jhhhjVhNhNubj)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM~hjubjc)}(hhh]jh)}(h7``struct regulator_dev *rdev`` regulator to unregister h](jn)}(h``struct regulator_dev *rdev``h]j)}(hjh]hstruct regulator_dev *rdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM{hjubj)}(hhh]j()}(hregulator to unregisterh]hregulator to unregister}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj-hM{hj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghj-hM{hjubah}(h]h ]h"]h$]h&]uh1jbhjubj()}(h**Description**h]j)}(hjSh]h Description}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM}hjubj()}(h6Called by regulator drivers to unregister a regulator.h]h6Called by regulator drivers to unregister a regulator.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM|hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j+regulator_has_full_constraints (C function) c.regulator_has_full_constraintshNtauh1juhjVhhhNhNubj)}(hhh](j)}(h*void regulator_has_full_constraints (void)h]j)}(h)void regulator_has_full_constraints(void)h](jY<)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<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]jY<)}(hvoidh]hvoid}(hjեhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjѥubah}(h]h ]h"]h$]h&]noemphhhuh1j;hjͥubah}(h]h ]h"]h$]h&]hhuh1j;hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMhjhhubj)}(hhh]j()}(h*the system has fully specified constraintsh]h*the system has fully specified constraints}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjjjjjjuh1jhhhjVhNhNubj)}(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}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubjc)}(hhh]jh)}(h``void`` no arguments h](jn)}(h``void``h]j)}(hj@h]hvoid}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chKhj:ubj)}(hhh]j()}(h no argumentsh]h no arguments}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjUhKhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jghjUhKhj7ubah}(h]h ]h"]h$]h&]uh1jbhjubj()}(h**Description**h]j)}(hj{h]h Description}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1j'h^/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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/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&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](jrdev_get_drvdata (C function)c.rdev_get_drvdatahNtauh1juhjVhhhNhNubj)}(hhh](j)}(h4void * rdev_get_drvdata (struct regulator_dev *rdev)h]j)}(h2void *rdev_get_drvdata(struct regulator_dev *rdev)h](jY<)}(hvoidh]hvoid}(hjϦhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<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;)}(hj;h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hj˦hhhjݦhM"ubj)}(hrdev_get_drvdatah]j)}(hrdev_get_drvdatah]hrdev_get_drvdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhj˦hhhjݦhM"ubj;)}(h(struct regulator_dev *rdev)h]j;)}(hstruct regulator_dev *rdevh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h regulator_devh]h regulator_dev}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetj9modnameN classnameNj{;j~;)}j;]j;)}jw;jsbc.rdev_get_drvdataasbuh1hhjubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj;)}(hj;h]h*}(hjehhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjubj)}(hrdevh]hrdev}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjubah}(h]h ]h"]h$]h&]hhuh1j;hj˦hhhjݦhM"ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjǦhhhjݦhM"ubah}(h]j¦ah ](jjeh"]h$]h&]jj)jhuh1jhjݦhM"hjĦhhubj)}(hhh]j()}(hget rdev regulator driver datah]hget rdev regulator driver data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM"hjhhubah}(h]h ]h"]h$]h&]uh1jhjĦhhhjݦhM"ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjjjjjjuh1jhhhjVhNhNubj)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM&hjubjc)}(hhh]jh)}(h)``struct regulator_dev *rdev`` regulator h](jn)}(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&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM#hjקubj)}(hhh]j()}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhM#hjubah}(h]h ]h"]h$]h&]uh1jhjקubeh}(h]h ]h"]h$]h&]uh1jghjhM#hjԧubah}(h]h ]h"]h$]h&]uh1jbhjubj()}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM%hjubj()}(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.}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM$hjubj()}(h **Return**h]j)}(hj?h]hReturn}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM'hjubj()}(h)Pointer to regulator driver private data.h]h)Pointer to regulator driver private data.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM(hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j"regulator_get_drvdata (C function)c.regulator_get_drvdatahNtauh1juhjVhhhNhNubj)}(hhh](j)}(h:void * regulator_get_drvdata (struct regulator *regulator)h]j)}(h8void *regulator_get_drvdata(struct regulator *regulator)h](jY<)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjhhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM1ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM1ubj;)}(hj;h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjhhhjhM1ubj)}(hregulator_get_drvdatah]j)}(hregulator_get_drvdatah]hregulator_get_drvdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhM1ubj;)}(h(struct regulator *regulator)h]j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjΨhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjʨubj)}(h h]h }(hjۨhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjʨubh)}(hhh]j)}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjmodnameN classnameNj{;j~;)}j;]j;)}jw;jsbc.regulator_get_drvdataasbuh1hhjʨ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)}(h regulatorh]h regulator}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjʨubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjƨubah}(h]h ]h"]h$]h&]hhuh1j;hjhhhjhM1ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj|hhhjhM1ubah}(h]jwah ](jjeh"]h$]h&]jj)jhuh1jhjhM1hjyhhubj)}(hhh]j()}(hget regulator driver datah]hget regulator driver data}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM1hjNhhubah}(h]h ]h"]h$]h&]uh1jhjyhhhjhM1ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjijjijjjuh1jhhhjVhNhNubj)}(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)}(hjsh]h Parameters}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM5hjmubjc)}(hhh]jh)}(h*``struct regulator *regulator`` regulator h](jn)}(h``struct regulator *regulator``h]j)}(hjh]hstruct regulator *regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM2hjubj)}(hhh]j()}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhM2hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjhM2hjubah}(h]h ]h"]h$]h&]uh1jbhjmubj()}(h**Description**h]j)}(hjͩh]h Description}(hjϩhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj˩ubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM4hjmubj()}(hGet regulator driver private data. This call can be used in the consumer driver context when non API regulator specific functions need to be called.h]hGet regulator driver private data. This call can be used in the consumer driver context when non API regulator specific functions need to be called.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM3hjmubj()}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM6hjmubj()}(h)Pointer to regulator driver private data.h]h)Pointer to regulator driver private data.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM7hjmubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](j"regulator_set_drvdata (C function)c.regulator_set_drvdatahNtauh1juhjVhhhNhNubj)}(hhh](j)}(hDvoid regulator_set_drvdata (struct regulator *regulator, void *data)h]j)}(hCvoid regulator_set_drvdata(struct regulator *regulator, void *data)h](jY<)}(hvoidh]hvoid}(hj9hhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hj5hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM@ubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhhjGhM@ubj)}(hregulator_set_drvdatah]j)}(hregulator_set_drvdatah]hregulator_set_drvdata}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubah}(h]h ](jjeh"]h$]h&]hhuh1jhj5hhhjGhM@ubj;)}(h)(struct regulator *regulator, void *data)h](j;)}(hstruct regulator *regulatorh](j)}(hjh]hstruct}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubh)}(hhh]j)}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjmodnameN classnameNj{;j~;)}j;]j;)}jw;j\sbc.regulator_set_drvdataasbuh1hhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj;)}(hj;h]h*}(hjªhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjrubj)}(h regulatorh]h regulator}(hjϪhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjnubj;)}(h void *datah](jY<)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj;)}(hj;h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjubj)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjnubeh}(h]h ]h"]h$]h&]hhuh1j;hj5hhhjGhM@ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj1hhhjGhM@ubah}(h]j,ah ](jjeh"]h$]h&]jj)jhuh1jhjGhM@hj.hhubj)}(hhh]j()}(hset regulator driver datah]hset regulator driver data}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chM@hj8hhubah}(h]h ]h"]h$]h&]uh1jhj.hhhjGhM@ubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjSjjSjjjuh1jhhhjVhNhNubj)}(hR**Parameters** ``struct regulator *regulator`` regulator ``void *data`` datah](j()}(h**Parameters**h]j)}(hj]h]h Parameters}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMDhjWubjc)}(hhh](jh)}(h*``struct regulator *regulator`` regulator h](jn)}(h``struct regulator *regulator``h]j)}(hj|h]hstruct regulator *regulator}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMAhjvubj)}(hhh]j()}(h regulatorh]h regulator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hjhMAhjubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jghjhMAhjsubjh)}(h``void *data`` datah](jn)}(h``void *data``h]j)}(hjh]h void *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMChjubj)}(hhh]j()}(hdatah]hdata}(hjΫhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMBhj˫ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jghjʫhMChjsubeh}(h]h ]h"]h$]h&]uh1jbhjWubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubjv)}(hhh]h}(h]h ]h"]h$]h&]entries](jrdev_get_id (C function) c.rdev_get_idhNtauh1juhjVhhhNhNubj)}(hhh](j)}(h,int rdev_get_id (struct regulator_dev *rdev)h]j)}(h+int rdev_get_id(struct regulator_dev *rdev)h](jY<)}(hinth]hint}(hjhhhNhNubah}(h]h ]je<ah"]h$]h&]uh1jX<hj hhh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhjhMKubj)}(h rdev_get_idh]j)}(h rdev_get_idh]h rdev_get_id}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj hhhjhMKubj;)}(h(struct regulator_dev *rdev)h]j;)}(hstruct regulator_dev *rdevh](j)}(hjh]hstruct}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubh)}(hhh]j)}(h regulator_devh]h regulator_dev}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&] refdomainjIreftypejw; reftargetjlmodnameN classnameNj{;j~;)}j;]j;)}jw;j2sb c.rdev_get_idasbuh1hhjHubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj;)}(hj;h]h*}(hjhhhNhNubah}(h]h ]j;ah"]h$]h&]uh1j;hjHubj)}(hrdevh]hrdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]noemphhhuh1j;hjDubah}(h]h ]h"]h$]h&]hhuh1j;hj hhhjhMKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhMKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1jhjhMKhjhhubj)}(hhh]j()}(hget regulator IDh]hget regulator ID}(hjϬhhhNhNubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMKhj̬hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMKubeh}(h]h ](jIfunctioneh"]h$]h&]jjIjjjjjjjuh1jhhhjVhNhNubj)}(hb**Parameters** ``struct regulator_dev *rdev`` regulator **Return** Regulator ID for **rdev**.h](j()}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMOhjubjc)}(hhh]jh)}(h)``struct regulator_dev *rdev`` regulator h](jn)}(h``struct regulator_dev *rdev``h]j)}(hjh]hstruct regulator_dev *rdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jmh^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMLhj ubj)}(hhh]j()}(h regulatorh]h regulator}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hj%hMLhj&ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jghj%hMLhjubah}(h]h ]h"]h$]h&]uh1jbhjubj()}(h **Return**h]j)}(hjKh]hReturn}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMNhjubj()}(hRegulator ID for **rdev**.h](hRegulator ID for }(hjahhhNhNubj)}(h**rdev**h]hrdev}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubh.}(hjahhhNhNubeh}(h]h ]h"]h$]h&]uh1j'h^/var/lib/git/docbuild/linux/Documentation/driver-api/regulator:169: ./drivers/regulator/core.chMNhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjVhhhNhNubeh}(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_sourcehnj _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}(jjjjjjjjjgjjj;j8jbj_jjjSjPjjjKjHjju nametypes}(jjjjjjj;jbjjSjjKjuh}(jhjjwjjjgjjj!j8jj_j>jjmjPjjjjHj jjVjjj2j7jjj& j+ jjjjjjj"j"j2j$2jn4js4j"6j'6j7j8j5;j:;j=j=j@j@jMCjRCjDjDjLHjQHjcJjhJjNjNjLQjQQjSj SjTjTjVjVj YjYjZjZjl\jq\j^j^j`j`jcjcjejejhjhjijij ljljnjnjJqjOqjtjtjujujewjjwjzj$zj{j{jH}jM}jSjXj^jcjjjjj̇jчj^jcjsjxjĎjɎjjjԓjٓjjjjj=jBj,j1jjj|jj jjjj¦jǦjwj|j,j1jju 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.