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/hwmon/bt1-pvtmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/zh_TW/hwmon/bt1-pvtmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/it_IT/hwmon/bt1-pvtmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/ja_JP/hwmon/bt1-pvtmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/ko_KR/hwmon/bt1-pvtmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/sp_SP/hwmon/bt1-pvtmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h%SPDX-License-Identifier: GPL-2.0-onlyh]h%SPDX-License-Identifier: GPL-2.0-only}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh;/var/lib/git/docbuild/linux/Documentation/hwmon/bt1-pvt.rsthKubhsection)}(hhh](htitle)}(hKernel driver bt1-pvth]hKernel driver bt1-pvt}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hSupported chips:h]hSupported chips:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh block_quote)}(h* Baikal-T1 PVT sensor (in SoC) Prefix: 'bt1-pvt' Addresses scanned: - Datasheet: Provided by BAIKAL ELECTRONICS upon request and under NDA h]h bullet_list)}(hhh]h list_item)}(hBaikal-T1 PVT sensor (in SoC) Prefix: 'bt1-pvt' Addresses scanned: - Datasheet: Provided by BAIKAL ELECTRONICS upon request and under NDA h](h)}(hBaikal-T1 PVT sensor (in SoC)h]hBaikal-T1 PVT sensor (in SoC)}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubh)}(hPrefix: 'bt1-pvt'h]hPrefix: ‘bt1-pvt’}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhubh)}(hAddresses scanned: -h]hAddresses scanned: -}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhubh)}(hDDatasheet: Provided by BAIKAL ELECTRONICS upon request and under NDAh]hDDatasheet: Provided by BAIKAL ELECTRONICS upon request and under NDA}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubeh}(h]h ]h"]h$]h&]uh1hhhubah}(h]h ]h"]h$]h&]bullet*uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubhdefinition_list)}(hhh]hdefinition_list_item)}(hlAuthors: Maxim Kaurkin Serge Semin h](hterm)}(hAuthors:h]hAuthors:}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jAhhhKhj=ubh definition)}(hhh]h)}(hbMaxim Kaurkin Serge Semin h](hMaxim Kaurkin <}(hjVhhhNhNubh reference)}(h"maxim.kaurkin@baikalelectronics.ruh]h"maxim.kaurkin@baikalelectronics.ru}(hj`hhhNhNubah}(h]h ]h"]h$]h&]refuri)mailto:maxim.kaurkin@baikalelectronics.ruuh1j^hjVubh> Serge Semin <}(hjVhhhNhNubj_)}(h!Sergey.Semin@baikalelectronics.ruh]h!Sergey.Semin@baikalelectronics.ru}(hjthhhNhNubah}(h]h ]h"]h$]h&]refuri(mailto:Sergey.Semin@baikalelectronics.ruuh1j^hjVubh>}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjSubah}(h]h ]h"]h$]h&]uh1jQhj=ubeh}(h]h ]h"]h$]h&]uh1j;hhhKhj8ubah}(h]h ]h"]h$]h&]uh1j6hhhhhhhNubh)}(hhh](h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hXThis driver implements support for the hardware monitoring capabilities of the embedded into Baikal-T1 process, voltage and temperature sensors. PVT IP-core consists of one temperature and four voltage sensors, which can be used to monitor the chip internal environment like heating, supply voltage and transistors performance. The driver can optionally provide the hwmon alarms for each sensor the PVT controller supports. The alarms functionality is made compile-time configurable due to the hardware interface implementation peculiarity, which is connected with an ability to convert data from only one sensor at a time. Additional limitation is that the controller performs the thresholds checking synchronously with the data conversion procedure. Due to these in order to have the hwmon alarms automatically detected the driver code must switch from one sensor to another, read converted data and manually check the threshold status bits. Depending on the measurements timeout settings (update_interval sysfs node value) this design may cause additional burden on the system performance. So in case if alarms are unnecessary in your system design it's recommended to have them disabled to prevent the PVT IRQs being periodically raised to get the data cache/alarms status up to date. By default in alarm-less configuration the data conversion is performed by the driver on demand when read operation is requested via corresponding _input-file.h]hXThis driver implements support for the hardware monitoring capabilities of the embedded into Baikal-T1 process, voltage and temperature sensors. PVT IP-core consists of one temperature and four voltage sensors, which can be used to monitor the chip internal environment like heating, supply voltage and transistors performance. The driver can optionally provide the hwmon alarms for each sensor the PVT controller supports. The alarms functionality is made compile-time configurable due to the hardware interface implementation peculiarity, which is connected with an ability to convert data from only one sensor at a time. Additional limitation is that the controller performs the thresholds checking synchronously with the data conversion procedure. Due to these in order to have the hwmon alarms automatically detected the driver code must switch from one sensor to another, read converted data and manually check the threshold status bits. Depending on the measurements timeout settings (update_interval sysfs node value) this design may cause additional burden on the system performance. So in case if alarms are unnecessary in your system design it’s recommended to have them disabled to prevent the PVT IRQs being periodically raised to get the data cache/alarms status up to date. By default in alarm-less configuration the data conversion is performed by the driver on demand when read operation is requested via corresponding _input-file.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h] descriptionah ]h"] descriptionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hTemperature Monitoringh]hTemperature Monitoring}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK,ubh)}(hXTemperature is measured with 10-bit resolution and reported in millidegree Celsius. The driver performs all the scaling by itself therefore reports true temperatures that don't need any user-space adjustments. While the data translation formulae isn't linear, which gives us non-linear discreteness, it's close to one, but giving a bit better accuracy for higher temperatures. The temperature input is mapped as follows (the last column indicates the input ranges)::h]hXTemperature is measured with 10-bit resolution and reported in millidegree Celsius. The driver performs all the scaling by itself therefore reports true temperatures that don’t need any user-space adjustments. While the data translation formulae isn’t linear, which gives us non-linear discreteness, it’s close to one, but giving a bit better accuracy for higher temperatures. The temperature input is mapped as follows (the last column indicates the input ranges):}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjhhubh literal_block)}(h3temp1: CPU embedded diode -48.38C - +147.438Ch]h3temp1: CPU embedded diode -48.38C - +147.438C}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhK6hjhhubh)}(hIn case if the alarms kernel config is enabled in the driver the temperature input has associated min and max limits which trigger an alarm when crossed.h]hIn case if the alarms kernel config is enabled in the driver the temperature input has associated min and max limits which trigger an alarm when crossed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hjhhubeh}(h]temperature-monitoringah ]h"]temperature monitoringah$]h&]uh1hhhhhhhhK,ubh)}(hhh](h)}(hVoltage Monitoringh]hVoltage Monitoring}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKhj hhubj)}(hXin0: VDD (processor core) 0.62V - 1.168V in1: Low-Vt (low voltage threshold) 0.62V - 1.168V in2: High-Vt (high voltage threshold) 0.62V - 1.168V in3: Standard-Vt (standard voltage threshold) 0.62V - 1.168Vh]hXin0: VDD (processor core) 0.62V - 1.168V in1: Low-Vt (low voltage threshold) 0.62V - 1.168V in2: High-Vt (high voltage threshold) 0.62V - 1.168V in3: Standard-Vt (standard voltage threshold) 0.62V - 1.168V}hj+sbah}(h]h ]h"]h$]h&]hhuh1jhhhKDhj hhubh)}(hIn case if the alarms config is enabled in the driver the voltage inputs have associated min and max limits which trigger an alarm when crossed.h]hIn case if the alarms config is enabled in the driver the voltage inputs have associated min and max limits which trigger an alarm when crossed.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKIhj hhubeh}(h]voltage-monitoringah ]h"]voltage monitoringah$]h&]uh1hhhhhhhhKubj)}(hhh]h)}(hROh]hRO}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKrhjXubah}(h]h ]h"]h$]h&]uh1jhj>ubj)}(hhh]h)}(hRVoltage input alarm. Returns 1 if voltage input went above max limit, 0 otherwise.h]hRVoltage input alarm. Returns 1 if voltage input went above max limit, 0 otherwise.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKrhjoubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]colsKuh1jshjpubah}(h]h ]h"]h$]h&]uh1jnhjOhhhhhNubeh}(h]sysfs-attributesah ]h"]sysfs attributesah$]h&]uh1hhhhhhhhKMubeh}(h]kernel-driver-bt1-pvtah ]h"]kernel driver bt1-pvtah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjjjj jjLjIjju nametypes}(jjj jLjuh}(jhjjjjjIj jjOu 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.