cWsphinx.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/max31760modnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/zh_TW/hwmon/max31760modnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/it_IT/hwmon/max31760modnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/ja_JP/hwmon/max31760modnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/ko_KR/hwmon/max31760modnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/sp_SP/hwmon/max31760modnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h)SPDX-License-Identifier: GPL-2.0-or-laterh]h)SPDX-License-Identifier: GPL-2.0-or-later}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhh](hAuthor: Ibrahim Tilki <}(hj_hhhNhNubj))}(hIbrahim.Tilki@analog.comh]hIbrahim.Tilki@analog.com}(hjghhhNhNubah}(h]h ]h"]h$]h&]refurimailto:Ibrahim.Tilki@analog.comuh1j(hj_ubh>}(hj_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hX%The MAX31760 integrates temperature sensing along with precision PWM fan control. It accurately measures its local die temperature and the remote temperature of a discrete diode-connected transistor, such as a 2N3906, or a thermal diode commonly found on CPUs, graphics processor units (GPUs), and other ASICs. Multiple temperature thresholds, such as local high/overtemperature (OT) and remote high/overtemperature, can be set by an I2C-compatible interface. Fan speed is controlled based on the temperature reading as an index to a 48-byte lookup table (LUT) containing user-programmed PWM values. The flexible LUT-based architecture enables the user to program a smooth nonlinear fan speed vs. temperature transfer function to minimize acoustic fan noise. Two tachometer inputs allow measuring the speeds of two fans independently. When the local or remote OT threshold is exceeded, the SHDN pin is asserted low and can be used to shut down the system. A dedicated ALERT pin reports that either a local or remote high-temperature threshold has been exceeded.h]hX%The MAX31760 integrates temperature sensing along with precision PWM fan control. It accurately measures its local die temperature and the remote temperature of a discrete diode-connected transistor, such as a 2N3906, or a thermal diode commonly found on CPUs, graphics processor units (GPUs), and other ASICs. Multiple temperature thresholds, such as local high/overtemperature (OT) and remote high/overtemperature, can be set by an I2C-compatible interface. Fan speed is controlled based on the temperature reading as an index to a 48-byte lookup table (LUT) containing user-programmed PWM values. The flexible LUT-based architecture enables the user to program a smooth nonlinear fan speed vs. temperature transfer function to minimize acoustic fan noise. Two tachometer inputs allow measuring the speeds of two fans independently. When the local or remote OT threshold is exceeded, the SHDN pin is asserted low and can be used to shut down the system. A dedicated ALERT pin reports that either a local or remote high-temperature threshold has been exceeded.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h4Temperature measurement range: from -55°C to 125°Ch]h4Temperature measurement range: from -55°C to 125°C}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK%hjhhubh)}(h+Temperature Resolution: 11 Bits, ±0.125°Ch]h+Temperature Resolution: 11 Bits, ±0.125°C}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjhhubh)}(hXPlease refer how to instantiate this driver: Documentation/i2c/instantiating-devices.rsth]hXPlease refer how to instantiate this driver: Documentation/i2c/instantiating-devices.rst}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hjhhubeh}(h] descriptionah ]h"] descriptionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h!Lookup table for auto fan controlh]h!Lookup table for auto fan control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK,ubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK!uh1jhjubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]h)}(h LUT Indexh]h LUT Index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjubah}(h]h ]h"]h$]h&]uh1j hj ubj)}(hhh]h)}(hNameh]hName}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hj&ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjubhtbody)}(hhh](j )}(hhh](j)}(hhh]h)}(h1h]h1}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjQubah}(h]h ]h"]h$]h&]uh1j hjNubj)}(hhh]h)}(hPWM value for T < +18°Ch]hPWM value for T < +18°C}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjhubah}(h]h ]h"]h$]h&]uh1j hjNubeh}(h]h ]h"]h$]h&]uh1jhjKubj )}(hhh](j)}(hhh]h)}(h2h]h2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK2hjubah}(h]h ]h"]h$]h&]uh1j hjubj)}(hhh]h)}(h#PWM value for +18°C ≤ T < +20°Ch]h#PWM value for +18°C ≤ T < +20°C}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK2hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjKubj )}(hhh](j)}(hhh]h)}(h3h]h3}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjubah}(h]h ]h"]h$]h&]uh1j hjubj)}(hhh]h)}(h#PWM value for +20°C ≤ T < +22°Ch]h#PWM value for +20°C ≤ T < +22°C}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjKubj )}(hhh](j)}(hhh]h)}(h...h]h...}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjubah}(h]h ]h"]h$]h&]uh1j hjubj)}(hhh]h)}(h...h]h...}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hj ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjKubj )}(hhh](j)}(hhh]h)}(h47h]h47}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hj-ubah}(h]h ]h"]h$]h&]uh1j hj*ubj)}(hhh]h)}(h%PWM value for +108°C ≤ T < +110°Ch]h%PWM value for +108°C ≤ T < +110°C}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hjDubah}(h]h ]h"]h$]h&]uh1j hj*ubeh}(h]h ]h"]h$]h&]uh1jhjKubj )}(hhh](j)}(hhh]h)}(h48h]h48}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjdubah}(h]h ]h"]h$]h&]uh1j hjaubj)}(hhh]h)}(hPWM value for T ≥ +110°Ch]hPWM value for T ≥ +110°C}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hj{ubah}(h]h ]h"]h$]h&]uh1j hjaubeh}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h]!lookup-table-for-auto-fan-controlah ]h"]!lookup table for auto fan controlah$]h&]uh1hhhhhhhhK,ubh)}(hhh](h)}(h Sysfs entriesh]h Sysfs entries}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK:ubj)}(hhh]j)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKQuh1jhjubjJ)}(hhh](j )}(hhh](j)}(hhh]h)}(hfan[1-2]_inputh]hfan[1-2]_input}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK=hjubah}(h]h ]h"]h$]h&]uh1j hjubj)}(hhh]h)}(hFan speed (in RPM)h]hFan speed (in RPM)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK=hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjubj )}(hhh](j)}(hhh]h)}(hfan[1-2]_enableh]hfan[1-2]_enable}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK>hjubah}(h]h ]h"]h$]h&]uh1j hjubj)}(hhh]h)}(h(Enable fan readings and fan fault alarmsh]h(Enable fan readings and fan fault alarms}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK>hj2ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjubj )}(hhh](j)}(hhh]h)}(hfan[1-2]_faulth]hfan[1-2]_fault}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hjRubah}(h]h ]h"]h$]h&]uh1j hjOubj)}(hhh]h)}(hFan fault statush]hFan fault status}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hjiubah}(h]h ]h"]h$]h&]uh1j hjOubeh}(h]h ]h"]h$]h&]uh1jhjubj )}(hhh](j)}(hhh]h)}(htemp[1-2]_labelh]htemp[1-2]_label}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hjubah}(h]h ]h"]h$]h&]uh1j hjubj)}(hhh]h)}(h/"Remote" and "Local" temperature channel labelsh]h7“Remote” and “Local” temperature channel labels}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjubj )}(hhh](j)}(hhh]h)}(htemp[1-2]_inputh]htemp[1-2]_input}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhjubah}(h]h ]h"]h$]h&]uh1j hjubj)}(hhh]h)}(h5Temperature sensor readings (in millidegrees Celsius)h]h5Temperature sensor readings (in millidegrees Celsius)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjubj )}(hhh](j)}(hhh]h)}(h temp1_faulth]h temp1_fault}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhjubah}(h]h ]h"]h$]h&]uh1j hjubj)}(hhh]h)}(h&Remote temperature sensor fault statush]h&Remote temperature sensor fault status}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjubj )}(hhh](j)}(hhh]h)}(h temp[1-2]_maxh]h temp[1-2]_max}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKChj.ubah}(h]h ]h"]h$]h&]uh1j hj+ubj)}(hhh]h)}(h8Temperature max value. Asserts "ALERT" pin when exceededh]hubj)}(hhh]h)}(h<1: direct fan control, 2: temperature based auto fan controlh]h<1: direct fan control, 2: temperature based auto fan control}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKHhjXubah}(h]h ]h"]h$]h&]uh1j hj>ubeh}(h]h ]h"]h$]h&]uh1jhjubj )}(hhh](j)}(hhh]h)}(h pwm1_freqh]h pwm1_freq}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKIhjxubah}(h]h ]h"]h$]h&]uh1j hjuubj)}(hhh]h)}(hPWM frequency in hertzh]hPWM frequency in hertz}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKIhjubah}(h]h ]h"]h$]h&]uh1j hjuubeh}(h]h ]h"]h$]h&]uh1jhjubj )}(hhh](j)}(hhh]h)}(hpwm1_auto_channels_temph]hpwm1_auto_channels_temp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhjubah}(h]h ]h"]h$]h&]uh1j hjubj)}(hhh]h)}(hQTemperature source for auto fan control. 1: temp1, 2: temp2, 3: max(temp1, temp2)h]hQTemperature source for auto fan control. 1: temp1, 2: temp2, 3: max(temp1, temp2)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjubj )}(hhh](j)}(hhh]h)}(hpwm1_auto_point[1-48]_pwmh]hpwm1_auto_point[1-48]_pwm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKKhjubah}(h]h ]h"]h$]h&]uh1j hjubj)}(hhh]h)}(hPWM value for LUT pointh]hPWM value for LUT point}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKKhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjubj )}(hhh](j)}(hhh]h)}(hpwm1_auto_point_temp_hysth]hpwm1_auto_point_temp_hyst}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKLhjubah}(h]h ]h"]h$]h&]uh1j hjubj)}(hhh]h)}(hKTemperature hysteresis for auto fan control. Can be either 2000mC or 4000mCh]hKTemperature hysteresis for auto fan control. Can be either 2000mC or 4000mC}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKLhj4ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h] sysfs-entriesah ]h"] sysfs entriesah$]h&]uh1hhhhhhhhK:ubeh}(h]kernel-driver-max31760ah ]h"]kernel driver max31760ah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksj footnote_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}(jqjnjjjjjijfu nametypes}(jqjjjiuh}(jnhjjjjjfju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages](hsystem_message)}(hhh]h)}(heUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.h]hgUnexpected possible title overline or transition. Treating it as ordinary text because it’s so short.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypeINFOlineK5sourcehuh1jhjubj)}(hhh]h)}(heUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.h]hgUnexpected possible title overline or transition. Treating it as ordinary text because it’s so short.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypejlineK5sourcehuh1jhj ubetransform_messages] transformerN include_log] decorationNhhub.