€•:®Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ,/translations/zh_CN/power/regulator/overview”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/zh_TW/power/regulator/overview”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/it_IT/power/regulator/overview”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/ja_JP/power/regulator/overview”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/ko_KR/power/regulator/overview”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/pt_BR/power/regulator/overview”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/sp_SP/power/regulator/overview”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ-Linux voltage and current regulator framework”h]”hŒ-Linux voltage and current regulator framework”…””}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒF/var/lib/git/docbuild/linux/Documentation/power/regulator/overview.rst”h´Kubh¶)”}”(hhh]”(h»)”}”(hŒAbout”h]”hŒAbout”…””}”(hhÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhËh²hh³hÊh´KubhŒ paragraph”“”)”}”(hŒlThis framework is designed to provide a standard kernel interface to control voltage and current regulators.”h]”hŒlThis framework is designed to provide a standard kernel interface to control voltage and current regulators.”…””}”(hhÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KhhËh²hubhÝ)”}”(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).”…””}”(hhìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K hhËh²hubhŒenumerated_list”“”)”}”(hhh]”hŒ list_item”“”)”}”(hŒ$2008 Wolfson Microelectronics PLC. ”h]”hÝ)”}”(hŒ#2008 Wolfson Microelectronics PLC.”h]”hŒ#2008 Wolfson Microelectronics PLC.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhhüh²hh³hÊh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œ upperalpha”Œprefix”Œ(”Œsuffix”Œ)”Œstart”Kuh1húhhËh²hh³hÊh´KubhÝ)”}”(hŒ+Author: Liam Girdwood ”h]”(hŒAuthor: Liam Girdwood <”…””}”(hj&h²hh³Nh´NubhŒ reference”“”)”}”(hŒlrg@slimlogic.co.uk”h]”hŒlrg@slimlogic.co.uk”…””}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:lrg@slimlogic.co.uk”uh1j.hj&ubhŒ>”…””}”(hj&h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KhhËh²hubeh}”(h]”Œabout”ah ]”h"]”Œabout”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)”}”(hhh]”(h»)”}”(hŒ Nomenclature”h]”hŒ Nomenclature”…””}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjRh²hh³hÊh´KubhÝ)”}”(hŒ!Some terms used in this document:”h]”hŒ!Some terms used in this document:”…””}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KhjRh²hubhŒ block_quote”“”)”}”(hXW- Regulator - Electronic device that supplies power to other devices. Most regulators can enable and disable their output while some can control their output voltage and or current. Input Voltage -> Regulator -> Output Voltage - PMIC - Power Management IC. An IC that contains numerous regulators and often contains other subsystems. - Consumer - Electronic device that is supplied power by a regulator. Consumers can be classified into two types:- Static: consumer does not change its supply voltage or current limit. It only needs to enable or disable its power supply. Its supply voltage is set by the hardware, bootloader, firmware or kernel board initialisation code. Dynamic: consumer needs to change its supply voltage or current limit to meet operation demands. - Power Domain - Electronic circuit that is supplied its input power by the output power of a regulator, switch or by another power domain. The supply regulator may be behind a switch(s). i.e.:: Regulator -+-> Switch-1 -+-> Switch-2 --> [Consumer A] | | | +-> [Consumer B], [Consumer C] | +-> [Consumer D], [Consumer E] That is one regulator and three power domains: - Domain 1: Switch-1, Consumers D & E. - Domain 2: Switch-2, Consumers B & C. - Domain 3: Consumer A. and this represents a "supplies" relationship: Domain-1 --> Domain-2 --> Domain-3. A power domain may have regulators that are supplied power by other regulators. i.e.:: Regulator-1 -+-> Regulator-2 -+-> [Consumer A] | +-> [Consumer B] This gives us two regulators and two power domains: - Domain 1: Regulator-2, Consumer B. - Domain 2: Consumer A. and a "supplies" relationship: Domain-1 --> Domain-2 - Constraints - Constraints are used to define power levels for performance and hardware protection. Constraints exist at three levels: Regulator Level: This is defined by the regulator hardware operating parameters and is specified in the regulator datasheet. i.e. - voltage output is in the range 800mV -> 3500mV. - regulator current output limit is 20mA @ 5V but is 10mA @ 10V. Power Domain Level: This is defined in software by kernel level board initialisation code. It is used to constrain a power domain to a particular power range. i.e. - Domain-1 voltage is 3300mV - Domain-2 voltage is 1400mV -> 1600mV - Domain-3 current limit is 0mA -> 20mA. Consumer Level: This is defined by consumer drivers dynamically setting voltage or current limit levels. e.g. a consumer backlight driver asks for a current increase from 5mA to 10mA to increase LCD illumination. This passes to through the levels as follows :- Consumer: need to increase LCD brightness. Lookup and request next current mA value in brightness table (the consumer driver could be used on several different personalities based upon the same reference device). Power Domain: is the new current limit within the domain operating limits for this domain and system state (e.g. battery power, USB power) Regulator Domains: is the new current limit within the regulator operating parameters for input/output voltage. If the regulator request passes all the constraint tests then the new regulator value is applied. ”h]”hŒ bullet_list”“”)”}”(hhh]”(j)”}”(hXRegulator - Electronic device that supplies power to other devices. Most regulators can enable and disable their output while some can control their output voltage and or current. Input Voltage -> Regulator -> Output Voltage ”h]”hŒdefinition_list”“”)”}”(hhh]”hŒdefinition_list_item”“”)”}”(hŒéRegulator - Electronic device that supplies power to other devices. Most regulators can enable and disable their output while some can control their output voltage and or current. Input Voltage -> Regulator -> Output Voltage ”h]”(hŒterm”“”)”}”(hŒ Regulator”h]”hŒ Regulator”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹h³hÊh´K hj‡ubhŒ definition”“”)”}”(hhh]”jx)”}”(hhh]”j)”}”(hŒ×Electronic device that supplies power to other devices. Most regulators can enable and disable their output while some can control their output voltage and or current. Input Voltage -> Regulator -> Output Voltage ”h]”(hÝ)”}”(hŒ§Electronic device that supplies power to other devices. Most regulators can enable and disable their output while some can control their output voltage and or current.”h]”hŒ§Electronic device that supplies power to other devices. Most regulators can enable and disable their output while some can control their output voltage and or current.”…””}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Khj£ubhÝ)”}”(hŒ,Input Voltage -> Regulator -> Output Voltage”h]”hŒ,Input Voltage -> Regulator -> Output Voltage”…””}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Khj£ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÿhj ubah}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jwh³hÊh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j…h³hÊh´K hj‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hj|ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhjyubj)”}”(hŒ†PMIC - Power Management IC. An IC that contains numerous regulators and often contains other subsystems. ”h]”j)”}”(hhh]”j†)”}”(hŒlPMIC - Power Management IC. An IC that contains numerous regulators and often contains other subsystems. ”h]”(jŒ)”}”(hŒPMIC”h]”hŒPMIC”…””}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹h³hÊh´K%hjðubjœ)”}”(hhh]”jx)”}”(hhh]”j)”}”(hŒcPower Management IC. An IC that contains numerous regulators and often contains other subsystems. ”h]”hÝ)”}”(hŒaPower Management IC. An IC that contains numerous regulators and often contains other subsystems.”h]”hŒaPower Management IC. An IC that contains numerous regulators and often contains other subsystems.”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K#hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhjubah}”(h]”h ]”h"]”h$]”h&]”jÏjÐuh1jwh³hÊh´K#hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjðubeh}”(h]”h ]”h"]”h$]”h&]”uh1j…h³hÊh´K%hjíubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hjéubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhjyubj)”}”(hX+Consumer - Electronic device that is supplied power by a regulator. Consumers can be classified into two types:- Static: consumer does not change its supply voltage or current limit. It only needs to enable or disable its power supply. Its supply voltage is set by the hardware, bootloader, firmware or kernel board initialisation code. Dynamic: consumer needs to change its supply voltage or current limit to meet operation demands. ”h]”j)”}”(hhh]”j†)”}”(hXÃConsumer - Electronic device that is supplied power by a regulator. Consumers can be classified into two types:- Static: consumer does not change its supply voltage or current limit. It only needs to enable or disable its power supply. Its supply voltage is set by the hardware, bootloader, firmware or kernel board initialisation code. Dynamic: consumer needs to change its supply voltage or current limit to meet operation demands. ”h]”(jŒ)”}”(hŒConsumer”h]”hŒConsumer”…””}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹h³hÊh´K2hjEubjœ)”}”(hhh]”jx)”}”(hhh]”j)”}”(hXªElectronic device that is supplied power by a regulator. Consumers can be classified into two types:- Static: consumer does not change its supply voltage or current limit. It only needs to enable or disable its power supply. Its supply voltage is set by the hardware, bootloader, firmware or kernel board initialisation code. Dynamic: consumer needs to change its supply voltage or current limit to meet operation demands. ”h]”(hÝ)”}”(hŒeElectronic device that is supplied power by a regulator. Consumers can be classified into two types:-”h]”hŒeElectronic device that is supplied power by a regulator. Consumers can be classified into two types:-”…””}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K(hj]ubhÝ)”}”(hŒßStatic: consumer does not change its supply voltage or current limit. It only needs to enable or disable its power supply. Its supply voltage is set by the hardware, bootloader, firmware or kernel board initialisation code.”h]”hŒßStatic: consumer does not change its supply voltage or current limit. It only needs to enable or disable its power supply. Its supply voltage is set by the hardware, bootloader, firmware or kernel board initialisation code.”…””}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K+hj]ubhÝ)”}”(hŒ`Dynamic: consumer needs to change its supply voltage or current limit to meet operation demands.”h]”hŒ`Dynamic: consumer needs to change its supply voltage or current limit to meet operation demands.”…””}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K0hj]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÿhjZubah}”(h]”h ]”h"]”h$]”h&]”jÏjÐuh1jwh³hÊh´K(hjWubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjEubeh}”(h]”h ]”h"]”h$]”h&]”uh1j…h³hÊh´K2hjBubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhjyubj)”}”(hXUPower Domain - Electronic circuit that is supplied its input power by the output power of a regulator, switch or by another power domain. The supply regulator may be behind a switch(s). i.e.:: Regulator -+-> Switch-1 -+-> Switch-2 --> [Consumer A] | | | +-> [Consumer B], [Consumer C] | +-> [Consumer D], [Consumer E] That is one regulator and three power domains: - Domain 1: Switch-1, Consumers D & E. - Domain 2: Switch-2, Consumers B & C. - Domain 3: Consumer A. and this represents a "supplies" relationship: Domain-1 --> Domain-2 --> Domain-3. A power domain may have regulators that are supplied power by other regulators. i.e.:: Regulator-1 -+-> Regulator-2 -+-> [Consumer A] | +-> [Consumer B] This gives us two regulators and two power domains: - Domain 1: Regulator-2, Consumer B. - Domain 2: Consumer A. and a "supplies" relationship: Domain-1 --> Domain-2 ”h]”j)”}”(hhh]”j†)”}”(hXPower Domain - Electronic circuit that is supplied its input power by the output power of a regulator, switch or by another power domain. The supply regulator may be behind a switch(s). i.e.:: Regulator -+-> Switch-1 -+-> Switch-2 --> [Consumer A] | | | +-> [Consumer B], [Consumer C] | +-> [Consumer D], [Consumer E] That is one regulator and three power domains: - Domain 1: Switch-1, Consumers D & E. - Domain 2: Switch-2, Consumers B & C. - Domain 3: Consumer A. and this represents a "supplies" relationship: Domain-1 --> Domain-2 --> Domain-3. A power domain may have regulators that are supplied power by other regulators. i.e.:: Regulator-1 -+-> Regulator-2 -+-> [Consumer A] | +-> [Consumer B] This gives us two regulators and two power domains: - Domain 1: Regulator-2, Consumer B. - Domain 2: Consumer A. and a "supplies" relationship: Domain-1 --> Domain-2 ”h]”(jŒ)”}”(hŒ Power Domain”h]”hŒ Power Domain”…””}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹h³hÊh´KZhj¶ubjœ)”}”(hhh]”jx)”}”(hhh]”j)”}”(hXÑElectronic circuit that is supplied its input power by the output power of a regulator, switch or by another power domain. The supply regulator may be behind a switch(s). i.e.:: Regulator -+-> Switch-1 -+-> Switch-2 --> [Consumer A] | | | +-> [Consumer B], [Consumer C] | +-> [Consumer D], [Consumer E] That is one regulator and three power domains: - Domain 1: Switch-1, Consumers D & E. - Domain 2: Switch-2, Consumers B & C. - Domain 3: Consumer A. and this represents a "supplies" relationship: Domain-1 --> Domain-2 --> Domain-3. A power domain may have regulators that are supplied power by other regulators. i.e.:: Regulator-1 -+-> Regulator-2 -+-> [Consumer A] | +-> [Consumer B] This gives us two regulators and two power domains: - Domain 1: Regulator-2, Consumer B. - Domain 2: Consumer A. and a "supplies" relationship: Domain-1 --> Domain-2 ”h]”(hÝ)”}”(hŒzElectronic circuit that is supplied its input power by the output power of a regulator, switch or by another power domain.”h]”hŒzElectronic circuit that is supplied its input power by the output power of a regulator, switch or by another power domain.”…””}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K5hjÎubhÝ)”}”(hŒ6The supply regulator may be behind a switch(s). i.e.::”h]”hŒ5The supply regulator may be behind a switch(s). i.e.:”…””}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K9hjÎubhŒ literal_block”“”)”}”(hŒÀRegulator -+-> Switch-1 -+-> Switch-2 --> [Consumer A] | | | +-> [Consumer B], [Consumer C] | +-> [Consumer D], [Consumer E]”h]”hŒÀRegulator -+-> Switch-1 -+-> Switch-2 --> [Consumer A] | | | +-> [Consumer B], [Consumer C] | +-> [Consumer D], [Consumer E]”…””}”hjðsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jîh³hÊh´K;hjÎubhÝ)”}”(hŒ.That is one regulator and three power domains:”h]”hŒ.That is one regulator and three power domains:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KAhjÎubjx)”}”(hhh]”(j)”}”(hŒ$Domain 1: Switch-1, Consumers D & E.”h]”hÝ)”}”(hjh]”hŒ$Domain 1: Switch-1, Consumers D & E.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KChjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhjubj)”}”(hŒ$Domain 2: Switch-2, Consumers B & C.”h]”hÝ)”}”(hj*h]”hŒ$Domain 2: Switch-2, Consumers B & C.”…””}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KDhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhjubj)”}”(hŒDomain 3: Consumer A. ”h]”hÝ)”}”(hŒDomain 3: Consumer A.”h]”hŒDomain 3: Consumer A.”…””}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KEhj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhjubeh}”(h]”h ]”h"]”h$]”h&]”jÏjÐuh1jwh³hÊh´KChjÎubhÝ)”}”(hŒ.and this represents a "supplies" relationship:”h]”hŒ2and this represents a “supplies†relationship:”…””}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KGhjÎubhÝ)”}”(hŒ#Domain-1 --> Domain-2 --> Domain-3.”h]”hŒ#Domain-1 --> Domain-2 --> Domain-3.”…””}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KIhjÎubhÝ)”}”(hŒVA power domain may have regulators that are supplied power by other regulators. i.e.::”h]”hŒUA power domain may have regulators that are supplied power by other regulators. i.e.:”…””}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KKhjÎubjï)”}”(hŒ[Regulator-1 -+-> Regulator-2 -+-> [Consumer A] | +-> [Consumer B]”h]”hŒ[Regulator-1 -+-> Regulator-2 -+-> [Consumer A] | +-> [Consumer B]”…””}”hj‡sbah}”(h]”h ]”h"]”h$]”h&]”jþjÿuh1jîh³hÊh´KNhjÎubhÝ)”}”(hŒ3This gives us two regulators and two power domains:”h]”hŒ3This gives us two regulators and two power domains:”…””}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KRhjÎubjx)”}”(hhh]”(j)”}”(hŒ"Domain 1: Regulator-2, Consumer B.”h]”hÝ)”}”(hj¨h]”hŒ"Domain 1: Regulator-2, Consumer B.”…””}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KThj¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhj£ubj)”}”(hŒDomain 2: Consumer A. ”h]”hÝ)”}”(hŒDomain 2: Consumer A.”h]”hŒDomain 2: Consumer A.”…””}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KUhj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhj£ubeh}”(h]”h ]”h"]”h$]”h&]”jÏjÐuh1jwh³hÊh´KThjÎubhÝ)”}”(hŒand a "supplies" relationship:”h]”hŒ"and a “supplies†relationship:”…””}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KWhjÎubhÝ)”}”(hŒDomain-1 --> Domain-2”h]”hŒDomain-1 --> Domain-2”…””}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KYhjÎubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÿhjËubah}”(h]”h ]”h"]”h$]”h&]”jÏjÐuh1jwh³hÊh´K5hjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj¶ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j…h³hÊh´KZhj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhjyubj)”}”(hXœConstraints - Constraints are used to define power levels for performance and hardware protection. Constraints exist at three levels: Regulator Level: This is defined by the regulator hardware operating parameters and is specified in the regulator datasheet. i.e. - voltage output is in the range 800mV -> 3500mV. - regulator current output limit is 20mA @ 5V but is 10mA @ 10V. Power Domain Level: This is defined in software by kernel level board initialisation code. It is used to constrain a power domain to a particular power range. i.e. - Domain-1 voltage is 3300mV - Domain-2 voltage is 1400mV -> 1600mV - Domain-3 current limit is 0mA -> 20mA. Consumer Level: This is defined by consumer drivers dynamically setting voltage or current limit levels. e.g. a consumer backlight driver asks for a current increase from 5mA to 10mA to increase LCD illumination. This passes to through the levels as follows :- Consumer: need to increase LCD brightness. Lookup and request next current mA value in brightness table (the consumer driver could be used on several different personalities based upon the same reference device). Power Domain: is the new current limit within the domain operating limits for this domain and system state (e.g. battery power, USB power) Regulator Domains: is the new current limit within the regulator operating parameters for input/output voltage. If the regulator request passes all the constraint tests then the new regulator value is applied. ”h]”j)”}”(hhh]”j†)”}”(hXConstraints - Constraints are used to define power levels for performance and hardware protection. Constraints exist at three levels: Regulator Level: This is defined by the regulator hardware operating parameters and is specified in the regulator datasheet. i.e. - voltage output is in the range 800mV -> 3500mV. - regulator current output limit is 20mA @ 5V but is 10mA @ 10V. Power Domain Level: This is defined in software by kernel level board initialisation code. It is used to constrain a power domain to a particular power range. i.e. - Domain-1 voltage is 3300mV - Domain-2 voltage is 1400mV -> 1600mV - Domain-3 current limit is 0mA -> 20mA. Consumer Level: This is defined by consumer drivers dynamically setting voltage or current limit levels. e.g. a consumer backlight driver asks for a current increase from 5mA to 10mA to increase LCD illumination. This passes to through the levels as follows :- Consumer: need to increase LCD brightness. Lookup and request next current mA value in brightness table (the consumer driver could be used on several different personalities based upon the same reference device). Power Domain: is the new current limit within the domain operating limits for this domain and system state (e.g. battery power, USB power) Regulator Domains: is the new current limit within the regulator operating parameters for input/output voltage. If the regulator request passes all the constraint tests then the new regulator value is applied. ”h]”(jŒ)”}”(hŒ Constraints”h]”hŒ Constraints”…””}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‹h³hÊh´K…hj"ubjœ)”}”(hhh]”jx)”}”(hhh]”j)”}”(hXÎConstraints are used to define power levels for performance and hardware protection. Constraints exist at three levels: Regulator Level: This is defined by the regulator hardware operating parameters and is specified in the regulator datasheet. i.e. - voltage output is in the range 800mV -> 3500mV. - regulator current output limit is 20mA @ 5V but is 10mA @ 10V. Power Domain Level: This is defined in software by kernel level board initialisation code. It is used to constrain a power domain to a particular power range. i.e. - Domain-1 voltage is 3300mV - Domain-2 voltage is 1400mV -> 1600mV - Domain-3 current limit is 0mA -> 20mA. Consumer Level: This is defined by consumer drivers dynamically setting voltage or current limit levels. e.g. a consumer backlight driver asks for a current increase from 5mA to 10mA to increase LCD illumination. This passes to through the levels as follows :- Consumer: need to increase LCD brightness. Lookup and request next current mA value in brightness table (the consumer driver could be used on several different personalities based upon the same reference device). Power Domain: is the new current limit within the domain operating limits for this domain and system state (e.g. battery power, USB power) Regulator Domains: is the new current limit within the regulator operating parameters for input/output voltage. If the regulator request passes all the constraint tests then the new regulator value is applied. ”h]”(hÝ)”}”(hŒwConstraints are used to define power levels for performance and hardware protection. Constraints exist at three levels:”h]”hŒwConstraints are used to define power levels for performance and hardware protection. Constraints exist at three levels:”…””}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K]hj:ubhÝ)”}”(hŒRegulator Level: This is defined by the regulator hardware operating parameters and is specified in the regulator datasheet. i.e.”h]”hŒRegulator Level: This is defined by the regulator hardware operating parameters and is specified in the regulator datasheet. i.e.”…””}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K`hj:ubjr)”}”(hŒu- voltage output is in the range 800mV -> 3500mV. - regulator current output limit is 20mA @ 5V but is 10mA @ 10V. ”h]”jx)”}”(hhh]”(j)”}”(hŒ/voltage output is in the range 800mV -> 3500mV.”h]”hÝ)”}”(hjch]”hŒ/voltage output is in the range 800mV -> 3500mV.”…””}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Kdhjaubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhj^ubj)”}”(hŒ?regulator current output limit is 20mA @ 5V but is 10mA @ 10V. ”h]”hÝ)”}”(hŒ>regulator current output limit is 20mA @ 5V but is 10mA @ 10V.”h]”hŒ>regulator current output limit is 20mA @ 5V but is 10mA @ 10V.”…””}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Kehjxubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhj^ubeh}”(h]”h ]”h"]”h$]”h&]”jÏjÐuh1jwh³hÊh´KdhjZubah}”(h]”h ]”h"]”h$]”h&]”uh1jqh³hÊh´Kdhj:ubhÝ)”}”(hŒ£Power Domain Level: This is defined in software by kernel level board initialisation code. It is used to constrain a power domain to a particular power range. i.e.”h]”hŒ£Power Domain Level: This is defined in software by kernel level board initialisation code. It is used to constrain a power domain to a particular power range. i.e.”…””}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Khhj:ubjr)”}”(hŒm- Domain-1 voltage is 3300mV - Domain-2 voltage is 1400mV -> 1600mV - Domain-3 current limit is 0mA -> 20mA. ”h]”jx)”}”(hhh]”(j)”}”(hŒDomain-1 voltage is 3300mV”h]”hÝ)”}”(hj³h]”hŒDomain-1 voltage is 3300mV”…””}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Klhj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhj®ubj)”}”(hŒ$Domain-2 voltage is 1400mV -> 1600mV”h]”hÝ)”}”(hjÊh]”hŒ$Domain-2 voltage is 1400mV -> 1600mV”…””}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KmhjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhj®ubj)”}”(hŒ'Domain-3 current limit is 0mA -> 20mA. ”h]”hÝ)”}”(hŒ&Domain-3 current limit is 0mA -> 20mA.”h]”hŒ&Domain-3 current limit is 0mA -> 20mA.”…””}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Knhjßubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhj®ubeh}”(h]”h ]”h"]”h$]”h&]”jÏjÐuh1jwh³hÊh´Klhjªubah}”(h]”h ]”h"]”h$]”h&]”uh1jqh³hÊh´Klhj:ubhÝ)”}”(hŒhConsumer Level: This is defined by consumer drivers dynamically setting voltage or current limit levels.”h]”hŒhConsumer Level: This is defined by consumer drivers dynamically setting voltage or current limit levels.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Kphj:ubhÝ)”}”(hŒ›e.g. a consumer backlight driver asks for a current increase from 5mA to 10mA to increase LCD illumination. This passes to through the levels as follows :-”h]”hŒ›e.g. a consumer backlight driver asks for a current increase from 5mA to 10mA to increase LCD illumination. This passes to through the levels as follows :-”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Kshj:ubhÝ)”}”(hŒÔConsumer: need to increase LCD brightness. Lookup and request next current mA value in brightness table (the consumer driver could be used on several different personalities based upon the same reference device).”h]”hŒÔConsumer: need to increase LCD brightness. Lookup and request next current mA value in brightness table (the consumer driver could be used on several different personalities based upon the same reference device).”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Kwhj:ubhÝ)”}”(hŒŠPower Domain: is the new current limit within the domain operating limits for this domain and system state (e.g. battery power, USB power)”h]”hŒŠPower Domain: is the new current limit within the domain operating limits for this domain and system state (e.g. battery power, USB power)”…””}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K|hj:ubhÝ)”}”(hŒoRegulator Domains: is the new current limit within the regulator operating parameters for input/output voltage.”h]”hŒoRegulator Domains: is the new current limit within the regulator operating parameters for input/output voltage.”…””}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K€hj:ubhÝ)”}”(hŒaIf the regulator request passes all the constraint tests then the new regulator value is applied.”h]”hŒaIf the regulator request passes all the constraint tests then the new regulator value is applied.”…””}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Kƒhj:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÿhj7ubah}”(h]”h ]”h"]”h$]”h&]”jÏjÐuh1jwh³hÊh´K]hj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j…h³hÊh´K…hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j€hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhjyubeh}”(h]”h ]”h"]”h$]”h&]”jÏjÐuh1jwh³hÊh´Khjsubah}”(h]”h ]”h"]”h$]”h&]”uh1jqh³hÊh´KhjRh²hubeh}”(h]”Œ nomenclature”ah ]”h"]”Œ nomenclature”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)”}”(hhh]”(h»)”}”(hŒDesign”h]”hŒDesign”…””}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjh²hh³hÊh´KˆubhÝ)”}”(hŒ™The framework is designed and targeted at SoC based devices but may also be relevant to non SoC devices and is split into the following four interfaces:-”h]”hŒ™The framework is designed and targeted at SoC based devices but may also be relevant to non SoC devices and is split into the following four interfaces:-”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KŠhjh²hubjr)”}”(hXê1. Consumer driver interface. This uses a similar API to the kernel clock interface in that consumer drivers can get and put a regulator (like they can with clocks atm) and get/set voltage, current limit, mode, enable and disable. This should allow consumers complete control over their supply voltage and current limit. This also compiles out if not in use so drivers can be reused in systems with no regulator based power control. See Documentation/power/regulator/consumer.rst 2. Regulator driver interface. This allows regulator drivers to register their regulators and provide operations to the core. It also has a notifier call chain for propagating regulator events to clients. See Documentation/power/regulator/regulator.rst 3. Machine interface. This interface is for machine specific code and allows the creation of voltage/current domains (with constraints) for each regulator. It can provide regulator constraints that will prevent device damage through overvoltage or overcurrent caused by buggy client drivers. It also allows the creation of a regulator tree whereby some regulators are supplied by others (similar to a clock tree). See Documentation/power/regulator/machine.rst 4. Userspace ABI. The framework also exports a lot of useful voltage/current/opmode data to userspace via sysfs. This could be used to help monitor device power consumption and status. See Documentation/ABI/testing/sysfs-class-regulator”h]”hû)”}”(hhh]”(j)”}”(hXáConsumer driver interface. This uses a similar API to the kernel clock interface in that consumer drivers can get and put a regulator (like they can with clocks atm) and get/set voltage, current limit, mode, enable and disable. This should allow consumers complete control over their supply voltage and current limit. This also compiles out if not in use so drivers can be reused in systems with no regulator based power control. See Documentation/power/regulator/consumer.rst ”h]”(hÝ)”}”(hŒConsumer driver interface.”h]”hŒConsumer driver interface.”…””}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KŽhjµubhÝ)”}”(hX’This uses a similar API to the kernel clock interface in that consumer drivers can get and put a regulator (like they can with clocks atm) and get/set voltage, current limit, mode, enable and disable. This should allow consumers complete control over their supply voltage and current limit. This also compiles out if not in use so drivers can be reused in systems with no regulator based power control.”h]”hX’This uses a similar API to the kernel clock interface in that consumer drivers can get and put a regulator (like they can with clocks atm) and get/set voltage, current limit, mode, enable and disable. This should allow consumers complete control over their supply voltage and current limit. This also compiles out if not in use so drivers can be reused in systems with no regulator based power control.”…””}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´Khjµubjr)”}”(hŒ/See Documentation/power/regulator/consumer.rst ”h]”hÝ)”}”(hŒ.See Documentation/power/regulator/consumer.rst”h]”hŒ.See Documentation/power/regulator/consumer.rst”…””}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K—hjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1jqh³hÊh´K—hjµubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÿhj²ubj)”}”(hŒþRegulator driver interface. This allows regulator drivers to register their regulators and provide operations to the core. It also has a notifier call chain for propagating regulator events to clients. See Documentation/power/regulator/regulator.rst ”h]”(hÝ)”}”(hŒRegulator driver interface.”h]”hŒRegulator driver interface.”…””}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K™hjóubhÝ)”}”(hŒ­This allows regulator drivers to register their regulators and provide operations to the core. It also has a notifier call chain for propagating regulator events to clients.”h]”hŒ­This allows regulator drivers to register their regulators and provide operations to the core. It also has a notifier call chain for propagating regulator events to clients.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K›hjóubjr)”}”(hŒ0See Documentation/power/regulator/regulator.rst ”h]”hÝ)”}”(hŒ/See Documentation/power/regulator/regulator.rst”h]”hŒ/See Documentation/power/regulator/regulator.rst”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KŸhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jqh³hÊh´KŸhjóubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÿhj²ubj)”}”(hXÍMachine interface. This interface is for machine specific code and allows the creation of voltage/current domains (with constraints) for each regulator. It can provide regulator constraints that will prevent device damage through overvoltage or overcurrent caused by buggy client drivers. It also allows the creation of a regulator tree whereby some regulators are supplied by others (similar to a clock tree). See Documentation/power/regulator/machine.rst ”h]”(hÝ)”}”(hŒMachine interface.”h]”hŒMachine interface.”…””}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K¡hj1ubhÝ)”}”(hX‡This interface is for machine specific code and allows the creation of voltage/current domains (with constraints) for each regulator. It can provide regulator constraints that will prevent device damage through overvoltage or overcurrent caused by buggy client drivers. It also allows the creation of a regulator tree whereby some regulators are supplied by others (similar to a clock tree).”h]”hX‡This interface is for machine specific code and allows the creation of voltage/current domains (with constraints) for each regulator. It can provide regulator constraints that will prevent device damage through overvoltage or overcurrent caused by buggy client drivers. It also allows the creation of a regulator tree whereby some regulators are supplied by others (similar to a clock tree).”…””}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K£hj1ubjr)”}”(hŒ.See Documentation/power/regulator/machine.rst ”h]”hÝ)”}”(hŒ-See Documentation/power/regulator/machine.rst”h]”hŒ-See Documentation/power/regulator/machine.rst”…””}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KªhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jqh³hÊh´Kªhj1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÿhj²ubj)”}”(hŒíUserspace ABI. The framework also exports a lot of useful voltage/current/opmode data to userspace via sysfs. This could be used to help monitor device power consumption and status. See Documentation/ABI/testing/sysfs-class-regulator”h]”(hÝ)”}”(hŒUserspace ABI.”h]”hŒUserspace ABI.”…””}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K¬hjoubhÝ)”}”(hŒ¦The framework also exports a lot of useful voltage/current/opmode data to userspace via sysfs. This could be used to help monitor device power consumption and status.”h]”hŒ¦The framework also exports a lot of useful voltage/current/opmode data to userspace via sysfs. This could be used to help monitor device power consumption and status.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K®hjoubjr)”}”(hŒ3See Documentation/ABI/testing/sysfs-class-regulator”h]”hÝ)”}”(hj‘h]”hŒ3See Documentation/ABI/testing/sysfs-class-regulator”…””}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K²hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jqh³hÊh´K²hjoubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÿhj²ubeh}”(h]”h ]”h"]”h$]”h&]”jŒarabic”j!hj#Œ.”uh1húhj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqh³hÊh´KŽhjh²hubeh}”(h]”Œdesign”ah ]”h"]”Œdesign”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kˆubeh}”(h]”Œ-linux-voltage-and-current-regulator-framework”ah ]”h"]”Œ-linux voltage and current regulator framework”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jíŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jÇjÄjOjLjŒj‰j¿j¼uŒ nametypes”}”(jljjO‰jŒ‰j¿‰uh}”(jÄh·jLhËj‰jRj¼juŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”hŒsystem_message”“”)”}”(hhh]”hÝ)”}”(hŒ:Enumerated list start value not ordinal-1: "C" (ordinal 3)”h]”hŒ>Enumerated list start value not ordinal-1: “C†(ordinal 3)”…””}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜhjQubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”hÊŒline”Kuh1jOhhËh²hh³hÊh´KubaŒtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.