__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.139: ~ $
<!DOCTYPE html>

<html lang="en" data-content_root="../">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

    <title>Kernel driver lm93 &#8212; The Linux Kernel  documentation</title>
    <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
    <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=3918102e" />
    <script src="../_static/documentation_options.js?v=5929fcd5"></script>
    <script src="../_static/doctools.js?v=9bcbadda"></script>
    <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="Kernel driver lm95234" href="lm95234.html" />
    <link rel="prev" title="Kernel driver lm92" href="lm92.html" />
   
  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
  

  
  

  </head><body>
  <div class="document">
    
      <div class="sphinxsidebar" role="navigation" aria-label="Main">
        <div class="sphinxsidebarwrapper">
            <p class="logo"><a href="../index.html">
              <img class="logo" src="../_static/logo.svg" alt="Logo of The Linux Kernel"/>
            </a></p>
<h1 class="logo"><a href="../index.html">The Linux Kernel</a></h1>



<p class="blurb">6.18.50</p>







<search id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>


<p>
<h3 class="kernel-toc-contents">Contents</h3>
<input type="checkbox" class="kernel-toc-toggle" id = "kernel-toc-toggle" checked>
<label class="kernel-toc-title" for="kernel-toc-toggle"></label>

<div class="kerneltoc" id="kerneltoc">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/development-process.html">Development process</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/submitting-patches.html">Submitting patches</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/code-of-conduct.html">Code of conduct</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintainer/index.html">Maintainer handbook</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/index.html">All development-process docs</a></li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../core-api/index.html">Core API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../driver-api/index.html">Driver APIs</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../subsystem-apis.html">Subsystems</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#core-subsystems">Core subsystems</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#human-interfaces">Human interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#networking-interfaces">Networking interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#storage-interfaces">Storage interfaces</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../subsystem-apis.html#other-subsystems">Other subsystems</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="../accounting/index.html">Accounting</a></li>
<li class="toctree-l3"><a class="reference internal" href="../cpu-freq/index.html">CPUFreq - CPU frequency and voltage scaling code in the Linux(TM) kernel</a></li>
<li class="toctree-l3"><a class="reference internal" href="../edac/index.html">EDAC Subsystem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../fpga/index.html">FPGA</a></li>
<li class="toctree-l3"><a class="reference internal" href="../i2c/index.html">I2C/SMBus Subsystem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../iio/index.html">Industrial I/O</a></li>
<li class="toctree-l3"><a class="reference internal" href="../pcmcia/index.html">PCMCIA</a></li>
<li class="toctree-l3"><a class="reference internal" href="../spi/index.html">Serial Peripheral Interface (SPI)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../w1/index.html">1-Wire Subsystem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../watchdog/index.html">Watchdog Support</a></li>
<li class="toctree-l3"><a class="reference internal" href="../virt/index.html">Virtualization Support</a></li>
<li class="toctree-l3 current"><a class="reference internal" href="index.html">Hardware Monitoring</a></li>
<li class="toctree-l3"><a class="reference internal" href="../accel/index.html">Compute Accelerators</a></li>
<li class="toctree-l3"><a class="reference internal" href="../security/index.html">Security Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../crypto/index.html">Crypto API</a></li>
<li class="toctree-l3"><a class="reference internal" href="../bpf/index.html">BPF Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../usb/index.html">USB support</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PCI/index.html">PCI Bus Subsystem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../misc-devices/index.html">Assorted Miscellaneous Devices Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../peci/index.html">PECI Subsystem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../wmi/index.html">WMI Subsystem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tee/index.html">TEE Subsystem</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../locking/index.html">Locking</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/license-rules.html">Licensing rules</a></li>
<li class="toctree-l1"><a class="reference internal" href="../doc-guide/index.html">Writing documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/index.html">Development tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/testing-overview.html">Testing guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kernel-hacking/index.html">Hacking guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../trace/index.html">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fault-injection/index.html">Fault injection</a></li>
<li class="toctree-l1"><a class="reference internal" href="../livepatch/index.html">Livepatching</a></li>
<li class="toctree-l1"><a class="reference internal" href="../rust/index.html">Rust</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/index.html">Administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kbuild/index.html">Build system</a></li>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/reporting-issues.html">Reporting issues</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tools/index.html">Userspace tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../userspace-api/index.html">Userspace API</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../firmware-guide/index.html">Firmware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../devicetree/index.html">Firmware and Devicetree</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../arch/index.html">CPU architectures</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../staging/index.html">Unsorted documentation</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../translations/index.html">Translations</a></li>
</ul>

</div>

<script type="text/javascript"> <!--
  var sbar = document.getElementsByClassName("sphinxsidebar")[0];
  let currents = document.getElementsByClassName("current")
  if (currents.length) {
    sbar.scrollTop = currents[currents.length - 1].offsetTop;
  }
  --> </script>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/hwmon/lm93.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
        </div>
      </div>
      <div class="documentwrapper">
        <div class="bodywrapper">
          

          <div class="body" role="main">
            
  



<section id="kernel-driver-lm93">
<h1>Kernel driver lm93<a class="headerlink" href="#kernel-driver-lm93" title="Link to this heading">¶</a></h1>
<p>Supported chips:</p>
<blockquote>
<div><ul>
<li><p>National Semiconductor LM93</p>
<p>Prefix ‘lm93’</p>
<p>Addresses scanned: I2C 0x2c-0x2e</p>
<p>Datasheet: <a class="reference external" href="http://www.national.com/ds.cgi/LM/LM93.pdf">http://www.national.com/ds.cgi/LM/LM93.pdf</a></p>
</li>
<li><p>National Semiconductor LM94</p>
<p>Prefix ‘lm94’</p>
<p>Addresses scanned: I2C 0x2c-0x2e</p>
<p>Datasheet: <a class="reference external" href="http://www.national.com/ds.cgi/LM/LM94.pdf">http://www.national.com/ds.cgi/LM/LM94.pdf</a></p>
</li>
</ul>
</div></blockquote>
<dl class="simple">
<dt>Authors:</dt><dd><ul class="simple">
<li><p>Mark M. Hoffman &lt;<a class="reference external" href="mailto:mhoffman&#37;&#52;&#48;lightlink&#46;com">mhoffman<span>&#64;</span>lightlink<span>&#46;</span>com</a>&gt;</p></li>
<li><p>Ported to 2.6 by Eric J. Bowersox &lt;<a class="reference external" href="mailto:ericb&#37;&#52;&#48;aspsys&#46;com">ericb<span>&#64;</span>aspsys<span>&#46;</span>com</a>&gt;</p></li>
<li><p>Adapted to 2.6.20 by Carsten Emde &lt;<a class="reference external" href="mailto:ce&#37;&#52;&#48;osadl&#46;org">ce<span>&#64;</span>osadl<span>&#46;</span>org</a>&gt;</p></li>
<li><p>Modified for mainline integration by Hans J. Koch &lt;<a class="reference external" href="mailto:hjk&#37;&#52;&#48;hansjkoch&#46;de">hjk<span>&#64;</span>hansjkoch<span>&#46;</span>de</a>&gt;</p></li>
</ul>
</dd>
</dl>
<section id="module-parameters">
<h2>Module Parameters<a class="headerlink" href="#module-parameters" title="Link to this heading">¶</a></h2>
<ul class="simple">
<li><p>init: integer
Set to non-zero to force some initializations (default is 0).</p></li>
<li><p>disable_block: integer
A “0” allows SMBus block data transactions if the host supports them.  A “1”
disables SMBus block data transactions.  The default is 0.</p></li>
<li><p>vccp_limit_type: integer array (2)
Configures in7 and in8 limit type, where 0 means absolute and non-zero
means relative.  “Relative” here refers to “Dynamic Vccp Monitoring using
VID” from the datasheet.  It greatly simplifies the interface to allow
only one set of limits (absolute or relative) to be in operation at a
time (even though the hardware is capable of enabling both).  There’s
not a compelling use case for enabling both at once, anyway.  The default
is “0,0”.</p></li>
<li><p>vid_agtl: integer
A “0” configures the VID pins for V(ih) = 2.1V min, V(il) = 0.8V max.
A “1” configures the VID pins for V(ih) = 0.8V min, V(il) = 0.4V max.
(The latter setting is referred to as AGTL+ Compatible in the datasheet.)
I.e. this parameter controls the VID pin input thresholds; if your VID
inputs are not working, try changing this.  The default value is “0”.</p></li>
</ul>
</section>
<section id="hardware-description">
<h2>Hardware Description<a class="headerlink" href="#hardware-description" title="Link to this heading">¶</a></h2>
<p>(from the datasheet)</p>
<p>The LM93 hardware monitor has a two wire digital interface compatible with
SMBus 2.0. Using an 8-bit ADC, the LM93 measures the temperature of two remote
diode connected transistors as well as its own die and 16 power supply
voltages. To set fan speed, the LM93 has two PWM outputs that are each
controlled by up to four temperature zones. The fancontrol algorithm is lookup
table based. The LM93 includes a digital filter that can be invoked to smooth
temperature readings for better control of fan speed. The LM93 has four
tachometer inputs to measure fan speed. Limit and status registers for all
measured values are included. The LM93 builds upon the functionality of
previous motherboard management ASICs and uses some of the LM85’s features
(i.e. smart tachometer mode). It also adds measurement and control support
for dynamic Vccp monitoring and PROCHOT. It is designed to monitor a dual
processor Xeon class motherboard with a minimum of external components.</p>
<p>LM94 is also supported in LM93 compatible mode. Extra sensors and features of
LM94 are not supported.</p>
</section>
<section id="user-interface">
<h2>User Interface<a class="headerlink" href="#user-interface" title="Link to this heading">¶</a></h2>
<section id="prochot">
<h3>#PROCHOT<a class="headerlink" href="#prochot" title="Link to this heading">¶</a></h3>
<p>The LM93 can monitor two #PROCHOT signals.  The results are found in the
sysfs files prochot1, prochot2, prochot1_avg, prochot2_avg, prochot1_max,
and prochot2_max.  prochot1_max and prochot2_max contain the user limits
for #PROCHOT1 and #PROCHOT2, respectively.  prochot1 and prochot2 contain
the current readings for the most recent complete time interval.  The
value of prochot1_avg and prochot2_avg is something like a 2 period
exponential moving average (but not quite - check the datasheet). Note
that this third value is calculated by the chip itself.  All values range
from 0-255 where 0 indicates no throttling, and 255 indicates &gt; 99.6%.</p>
<p>The monitoring intervals for the two #PROCHOT signals is also configurable.
These intervals can be found in the sysfs files prochot1_interval and
prochot2_interval.  The values in these files specify the intervals for
#P1_PROCHOT and #P2_PROCHOT, respectively.  Selecting a value not in this
list will cause the driver to use the next largest interval.  The available
intervals are (in seconds):</p>
<dl class="simple">
<dt>#PROCHOT intervals:</dt><dd><p>0.73, 1.46, 2.9, 5.8, 11.7, 23.3, 46.6, 93.2, 186, 372</p>
</dd>
</dl>
<p>It is possible to configure the LM93 to logically short the two #PROCHOT
signals.  I.e. when #P1_PROCHOT is asserted, the LM93 will automatically
assert #P2_PROCHOT, and vice-versa.  This mode is enabled by writing a
non-zero integer to the sysfs file prochot_short.</p>
<p>The LM93 can also override the #PROCHOT pins by driving a PWM signal onto
one or both of them.  When overridden, the signal has a period of 3.56 ms,
a minimum pulse width of 5 clocks (at 22.5kHz =&gt; 6.25% duty cycle), and
a maximum pulse width of 80 clocks (at 22.5kHz =&gt; 99.88% duty cycle).</p>
<p>The sysfs files prochot1_override and prochot2_override contain boolean
integers which enable or disable the override function for #P1_PROCHOT and
#P2_PROCHOT, respectively.  The sysfs file prochot_override_duty_cycle
contains a value controlling the duty cycle for the PWM signal used when
the override function is enabled.  This value ranges from 0 to 15, with 0
indicating minimum duty cycle and 15 indicating maximum.</p>
</section>
<section id="vrd-hot">
<h3>#VRD_HOT<a class="headerlink" href="#vrd-hot" title="Link to this heading">¶</a></h3>
<p>The LM93 can monitor two #VRD_HOT signals. The results are found in the
sysfs files vrdhot1 and vrdhot2. There is one value per file: a boolean for
which 1 indicates #VRD_HOT is asserted and 0 indicates it is negated. These
files are read-only.</p>
<p>Smart Tach Mode (from the datasheet):</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>If a fan is driven using a low-side drive PWM, the tachometer
output of the fan is corrupted. The LM93 includes smart tachometer
circuitry that allows an accurate tachometer reading to be
achieved despite the signal corruption.  In smart tach mode all
four signals are measured within 4 seconds.
</pre></div>
</div>
<p>Smart tach mode is enabled by the driver by writing 1 or 2 (associating the
fan tachometer with a pwm) to the sysfs file fan&lt;n&gt;_smart_tach.  A zero
will disable the function for that fan.  Note that Smart tach mode cannot be
enabled if the PWM output frequency is 22500 Hz (see below).</p>
</section>
<section id="manual-pwm">
<h3>Manual PWM<a class="headerlink" href="#manual-pwm" title="Link to this heading">¶</a></h3>
<p>The LM93 has a fixed or override mode for the two PWM outputs (although, there
are still some conditions that will override even this mode - see section
15.10.6 of the datasheet for details.)  The sysfs files pwm1_override
and pwm2_override are used to enable this mode; each is a boolean integer
where 0 disables and 1 enables the manual control mode.  The sysfs files pwm1
and pwm2 are used to set the manual duty cycle; each is an integer (0-255)
where 0 is 0% duty cycle, and 255 is 100%.  Note that the duty cycle values
are constrained by the hardware. Selecting a value which is not available
will cause the driver to use the next largest value.  Also note: when manual
PWM mode is disabled, the value of pwm1 and pwm2 indicates the current duty
cycle chosen by the h/w.</p>
</section>
<section id="pwm-output-frequency">
<h3>PWM Output Frequency<a class="headerlink" href="#pwm-output-frequency" title="Link to this heading">¶</a></h3>
<p>The LM93 supports several different frequencies for the PWM output channels.
The sysfs files pwm1_freq and pwm2_freq are used to select the frequency. The
frequency values are constrained by the hardware.  Selecting a value which is
not available will cause the driver to use the next largest value.  Also note
that this parameter has implications for the Smart Tach Mode (see above).</p>
<dl class="simple">
<dt>PWM Output Frequencies (in Hz):</dt><dd><p>12, 36, 48, 60, 72, 84, 96, 22500 (default)</p>
</dd>
</dl>
</section>
<section id="automatic-pwm">
<h3>Automatic PWM<a class="headerlink" href="#automatic-pwm" title="Link to this heading">¶</a></h3>
<p>The LM93 is capable of complex automatic fan control, with many different
points of configuration.  To start, each PWM output can be bound to any
combination of eight control sources.  The final PWM is the largest of all
individual control sources to which the PWM output is bound.</p>
<p>The eight control sources are: temp1-temp4 (aka “zones” in the datasheet),
#PROCHOT 1 &amp; 2, and #VRDHOT 1 &amp; 2.  The bindings are expressed as a bitmask
in the sysfs files pwm&lt;n&gt;_auto_channels, where a “1” enables the binding, and
a “0” disables it. The h/w default is 0x0f (all temperatures bound).</p>
<blockquote>
<div><table class="docutils align-default">
<tbody>
<tr class="row-odd"><td><p>0x01</p></td>
<td><p>Temp 1</p></td>
</tr>
<tr class="row-even"><td><p>0x02</p></td>
<td><p>Temp 2</p></td>
</tr>
<tr class="row-odd"><td><p>0x04</p></td>
<td><p>Temp 3</p></td>
</tr>
<tr class="row-even"><td><p>0x08</p></td>
<td><p>Temp 4</p></td>
</tr>
<tr class="row-odd"><td><p>0x10</p></td>
<td><p>#PROCHOT 1</p></td>
</tr>
<tr class="row-even"><td><p>0x20</p></td>
<td><p>#PROCHOT 2</p></td>
</tr>
<tr class="row-odd"><td><p>0x40</p></td>
<td><p>#VRDHOT 1</p></td>
</tr>
<tr class="row-even"><td><p>0x80</p></td>
<td><p>#VRDHOT 2</p></td>
</tr>
</tbody>
</table>
</div></blockquote>
<p>The function y = f(x) takes a source temperature x to a PWM output y.  This
function of the LM93 is derived from a base temperature and a table of 12
temperature offsets.  The base temperature is expressed in degrees C in the
sysfs files temp&lt;n&gt;_auto_base.  The offsets are expressed in cumulative
degrees C, with the value of offset &lt;i&gt; for temperature value &lt;n&gt; being
contained in the file temp&lt;n&gt;_auto_offset&lt;i&gt;.  E.g. if the base temperature
is 40C:</p>
<blockquote>
<div><table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>offset #</p></th>
<th class="head"><p>temp&lt;n&gt;_auto_offset&lt;i&gt;</p></th>
<th class="head"><p>range</p></th>
<th class="head"><p>pwm</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>1</p></td>
<td><p>0</p></td>
<td><ul class="simple">
<li></li>
</ul>
</td>
<td><p>25.00%</p></td>
</tr>
<tr class="row-odd"><td><p>2</p></td>
<td><p>0</p></td>
<td><ul class="simple">
<li></li>
</ul>
</td>
<td><p>28.57%</p></td>
</tr>
<tr class="row-even"><td><p>3</p></td>
<td><p>1</p></td>
<td><p>40C - 41C</p></td>
<td><p>32.14%</p></td>
</tr>
<tr class="row-odd"><td><p>4</p></td>
<td><p>1</p></td>
<td><p>41C - 42C</p></td>
<td><p>35.71%</p></td>
</tr>
<tr class="row-even"><td><p>5</p></td>
<td><p>2</p></td>
<td><p>42C - 44C</p></td>
<td><p>39.29%</p></td>
</tr>
<tr class="row-odd"><td><p>6</p></td>
<td><p>2</p></td>
<td><p>44C - 46C</p></td>
<td><p>42.86%</p></td>
</tr>
<tr class="row-even"><td><p>7</p></td>
<td><p>2</p></td>
<td><p>48C - 50C</p></td>
<td><p>46.43%</p></td>
</tr>
<tr class="row-odd"><td><p>8</p></td>
<td><p>2</p></td>
<td><p>50C - 52C</p></td>
<td><p>50.00%</p></td>
</tr>
<tr class="row-even"><td><p>9</p></td>
<td><p>2</p></td>
<td><p>52C - 54C</p></td>
<td><p>53.57%</p></td>
</tr>
<tr class="row-odd"><td><p>10</p></td>
<td><p>2</p></td>
<td><p>54C - 56C</p></td>
<td><p>57.14%</p></td>
</tr>
<tr class="row-even"><td><p>11</p></td>
<td><p>2</p></td>
<td><p>56C - 58C</p></td>
<td><p>71.43%</p></td>
</tr>
<tr class="row-odd"><td><p>12</p></td>
<td><p>2</p></td>
<td><p>58C - 60C</p></td>
<td><p>85.71%</p></td>
</tr>
<tr class="row-even"><td><ul class="simple">
<li></li>
</ul>
</td>
<td><ul class="simple">
<li></li>
</ul>
</td>
<td><p>&gt; 60C</p></td>
<td><p>100.00%</p></td>
</tr>
</tbody>
</table>
</div></blockquote>
<p>Valid offsets are in the range 0C &lt;= x &lt;= 7.5C in 0.5C increments.</p>
<p>There is an independent base temperature for each temperature channel. Note,
however, there are only two tables of offsets: one each for temp[12] and
temp[34].  Therefore, any change to e.g. temp1_auto_offset&lt;i&gt; will also
affect temp2_auto_offset&lt;i&gt;.</p>
<p>The LM93 can also apply hysteresis to the offset table, to prevent unwanted
oscillation between two steps in the offsets table.  These values are found in
the sysfs files temp&lt;n&gt;_auto_offset_hyst.  The value in this file has the
same representation as in temp&lt;n&gt;_auto_offset&lt;i&gt;.</p>
<p>If a temperature reading falls below the base value for that channel, the LM93
will use the minimum PWM value.  These values are found in the sysfs files
temp&lt;n&gt;_auto_pwm_min.  Note, there are only two minimums: one each for temp[12]
and temp[34].  Therefore, any change to e.g. temp1_auto_pwm_min will also
affect temp2_auto_pwm_min.</p>
</section>
<section id="pwm-spin-up-cycle">
<h3>PWM Spin-Up Cycle<a class="headerlink" href="#pwm-spin-up-cycle" title="Link to this heading">¶</a></h3>
<p>A spin-up cycle occurs when a PWM output is commanded from 0% duty cycle to
some value &gt; 0%.  The LM93 supports a minimum duty cycle during spin-up.  These
values are found in the sysfs files pwm&lt;n&gt;_auto_spinup_min. The value in this
file has the same representation as other PWM duty cycle values. The
duration of the spin-up cycle is also configurable.  These values are found in
the sysfs files pwm&lt;n&gt;_auto_spinup_time. The value in this file is
the spin-up time in seconds.  The available spin-up times are constrained by
the hardware.  Selecting a value which is not available will cause the driver
to use the next largest value.</p>
<dl class="simple">
<dt>Spin-up Durations:</dt><dd><p>0 (disabled, h/w default), 0.1, 0.25, 0.4, 0.7, 1.0, 2.0, 4.0</p>
</dd>
</dl>
</section>
<section id="prochot-and-vrdhot-pwm-ramping">
<h3>#PROCHOT and #VRDHOT PWM Ramping<a class="headerlink" href="#prochot-and-vrdhot-pwm-ramping" title="Link to this heading">¶</a></h3>
<p>If the #PROCHOT or #VRDHOT signals are asserted while bound to a PWM output
channel, the LM93 will ramp the PWM output up to 100% duty cycle in discrete
steps. The duration of each step is configurable. There are two files, with
one value each in seconds: pwm_auto_prochot_ramp and pwm_auto_vrdhot_ramp.
The available ramp times are constrained by the hardware.  Selecting a value
which is not available will cause the driver to use the next largest value.</p>
<dl class="simple">
<dt>Ramp Times:</dt><dd><p>0 (disabled, h/w default) to 0.75 in 0.05 second intervals</p>
</dd>
</dl>
</section>
<section id="fan-boost">
<h3>Fan Boost<a class="headerlink" href="#fan-boost" title="Link to this heading">¶</a></h3>
<p>For each temperature channel, there is a boost temperature: if the channel
exceeds this limit, the LM93 will immediately drive both PWM outputs to 100%.
This limit is expressed in degrees C in the sysfs files temp&lt;n&gt;_auto_boost.
There is also a hysteresis temperature for this function: after the boost
limit is reached, the temperature channel must drop below this value before
the boost function is disabled.  This temperature is also expressed in degrees
C in the sysfs files temp&lt;n&gt;_auto_boost_hyst.</p>
</section>
<section id="gpio-pins">
<h3>GPIO Pins<a class="headerlink" href="#gpio-pins" title="Link to this heading">¶</a></h3>
<p>The LM93 can monitor the logic level of four dedicated GPIO pins as well as the
four tach input pins.  GPIO0-GPIO3 correspond to (fan) tach 1-4, respectively.
All eight GPIOs are read by reading the bitmask in the sysfs file gpio.  The
LSB is GPIO0, and the MSB is GPIO7.</p>
</section>
</section>
<section id="lm93-unique-sysfs-files">
<h2>LM93 Unique sysfs Files<a class="headerlink" href="#lm93-unique-sysfs-files" title="Link to this heading">¶</a></h2>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>file</p></th>
<th class="head"><p>description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>prochot&lt;n&gt;</p></td>
<td><p>current #PROCHOT %</p></td>
</tr>
<tr class="row-odd"><td><p>prochot&lt;n&gt;_avg</p></td>
<td><p>moving average #PROCHOT %</p></td>
</tr>
<tr class="row-even"><td><p>prochot&lt;n&gt;_max</p></td>
<td><p>limit #PROCHOT %</p></td>
</tr>
<tr class="row-odd"><td><p>prochot_short</p></td>
<td><p>enable or disable logical #PROCHOT pin short</p></td>
</tr>
<tr class="row-even"><td><p>prochot&lt;n&gt;_override</p></td>
<td><p>force #PROCHOT assertion as PWM</p></td>
</tr>
<tr class="row-odd"><td><p>prochot_override_duty_cycle</p></td>
<td><p>duty cycle for the PWM signal used when
#PROCHOT is overridden</p></td>
</tr>
<tr class="row-even"><td><p>prochot&lt;n&gt;_interval</p></td>
<td><p>#PROCHOT PWM sampling interval</p></td>
</tr>
<tr class="row-odd"><td><p>vrdhot&lt;n&gt;</p></td>
<td><p>0 means negated, 1 means asserted</p></td>
</tr>
<tr class="row-even"><td><p>fan&lt;n&gt;_smart_tach</p></td>
<td><p>enable or disable smart tach mode</p></td>
</tr>
<tr class="row-odd"><td><p>pwm&lt;n&gt;_auto_channels</p></td>
<td><p>select control sources for PWM outputs</p></td>
</tr>
<tr class="row-even"><td><p>pwm&lt;n&gt;_auto_spinup_min</p></td>
<td><p>minimum duty cycle during spin-up</p></td>
</tr>
<tr class="row-odd"><td><p>pwm&lt;n&gt;_auto_spinup_time</p></td>
<td><p>duration of spin-up</p></td>
</tr>
<tr class="row-even"><td><p>pwm_auto_prochot_ramp</p></td>
<td><p>ramp time per step when #PROCHOT asserted</p></td>
</tr>
<tr class="row-odd"><td><p>pwm_auto_vrdhot_ramp</p></td>
<td><p>ramp time per step when #VRDHOT asserted</p></td>
</tr>
<tr class="row-even"><td><p>temp&lt;n&gt;_auto_base</p></td>
<td><p>temperature channel base</p></td>
</tr>
<tr class="row-odd"><td><p>temp&lt;n&gt;_auto_offset[1-12]</p></td>
<td><p>temperature channel offsets</p></td>
</tr>
<tr class="row-even"><td><p>temp&lt;n&gt;_auto_offset_hyst</p></td>
<td><p>temperature channel offset hysteresis</p></td>
</tr>
<tr class="row-odd"><td><p>temp&lt;n&gt;_auto_boost</p></td>
<td><p>temperature channel boost (PWMs to 100%)
limit</p></td>
</tr>
<tr class="row-even"><td><p>temp&lt;n&gt;_auto_boost_hyst</p></td>
<td><p>temperature channel boost hysteresis</p></td>
</tr>
<tr class="row-odd"><td><p>gpio</p></td>
<td><p>input state of 8 GPIO pins; read-only</p></td>
</tr>
</tbody>
</table>
</section>
</section>


          </div>
          
        </div>
      </div>
    <div class="clearer"></div>
  </div>
    <div class="footer">
      &#169;The kernel development community.
      
      |
      Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
      &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
      
      |
      <a href="../_sources/hwmon/lm93.rst.txt"
          rel="nofollow">Page source</a>
    </div>

    

    
  </body>
</html>

Filemanager

Name Type Size Permission Actions
abituguru-datasheet.html File 26.68 KB 0644
abituguru.html File 15.9 KB 0644
abituguru3.html File 13.22 KB 0644
acbel-fsg032.html File 15.21 KB 0644
acpi_power_meter.html File 13.5 KB 0644
ad7314.html File 10.6 KB 0644
adc128d818.html File 11.87 KB 0644
adm1025.html File 12.58 KB 0644
adm1026.html File 15.18 KB 0644
adm1031.html File 11.54 KB 0644
adm1177.html File 11.3 KB 0644
adm1266.html File 11.3 KB 0644
adm1275.html File 17.55 KB 0644
adm9240.html File 20.36 KB 0644
adp1050.html File 17.63 KB 0644
ads7828.html File 13.04 KB 0644
adt7410.html File 14.54 KB 0644
adt7411.html File 11.78 KB 0644
adt7462.html File 12.64 KB 0644
adt7470.html File 13.41 KB 0644
adt7475.html File 16.93 KB 0644
aht10.html File 12.57 KB 0644
amc6821.html File 16.08 KB 0644
aquacomputer_d5next.html File 16.03 KB 0644
asb100.html File 13.39 KB 0644
asc7621.html File 24.1 KB 0644
aspeed-g6-pwm-tach.html File 10.78 KB 0644
aspeed-pwm-tacho.html File 10.78 KB 0644
asus_ec_sensors.html File 13.52 KB 0644
asus_rog_ryujin.html File 12.03 KB 0644
asus_wmi_sensors.html File 12.89 KB 0644
bcm54140.html File 11.91 KB 0644
bel-pfe.html File 15.42 KB 0644
bpa-rs600.html File 14.13 KB 0644
bt1-pvt.html File 16.6 KB 0644
cgbc-hwmon.html File 13.48 KB 0644
chipcap2.html File 13.5 KB 0644
coretemp.html File 16.79 KB 0644
corsair-cpro.html File 12 KB 0644
corsair-psu.html File 14.95 KB 0644
cros_ec_hwmon.html File 10.88 KB 0644
crps.html File 15.73 KB 0644
da9052.html File 13.36 KB 0644
da9055.html File 12.06 KB 0644
dell-smm-hwmon.html File 36.04 KB 0644
dme1737.html File 29.23 KB 0644
dps920ab.html File 13.39 KB 0644
drivetemp.html File 12.77 KB 0644
ds1621.html File 19.05 KB 0644
ds620.html File 11.6 KB 0644
emc1403.html File 14.21 KB 0644
emc2103.html File 11.24 KB 0644
emc2305.html File 11.53 KB 0644
emc6w201.html File 11.42 KB 0644
f71805f.html File 20.18 KB 0644
f71882fg.html File 16.01 KB 0644
fam15h_power.html File 14.9 KB 0644
fsp-3y.html File 10.98 KB 0644
ftsteutates.html File 11.64 KB 0644
g760a.html File 11.34 KB 0644
g762.html File 13.02 KB 0644
gigabyte_waterforce.html File 11.62 KB 0644
gl518sm.html File 13.75 KB 0644
gpd-fan.html File 12.9 KB 0644
gsc-hwmon.html File 11.98 KB 0644
gxp-fan-ctrl.html File 10.83 KB 0644
hih6130.html File 11.49 KB 0644
hp-wmi-sensors.html File 24.2 KB 0644
hs3001.html File 11.22 KB 0644
htu31.html File 11.07 KB 0644
hwmon-kernel-api.html File 28.79 KB 0644
ibm-cffps.html File 13.18 KB 0644
ibmaem.html File 11.37 KB 0644
ibmpowernv.html File 14.41 KB 0644
ina209.html File 16.13 KB 0644
ina233.html File 11.77 KB 0644
ina238.html File 14.77 KB 0644
ina2xx.html File 17.9 KB 0644
ina3221.html File 13.69 KB 0644
index.html File 37.21 KB 0644
inspur-ipsps1.html File 14.74 KB 0644
intel-m10-bmc-hwmon.html File 14.19 KB 0644
ir35221.html File 15.37 KB 0644
ir36021.html File 12.94 KB 0644
ir38064.html File 15.22 KB 0644
isl28022.html File 12.44 KB 0644
isl68137.html File 33.94 KB 0644
it87.html File 24.03 KB 0644
jc42.html File 17.9 KB 0644
k10temp.html File 16.25 KB 0644
k8temp.html File 12.42 KB 0644
kbatt.html File 12.63 KB 0644
kfan.html File 11.48 KB 0644
lan966x.html File 11.02 KB 0644
lineage-pem.html File 13.77 KB 0644
lm25066.html File 16.43 KB 0644
lm63.html File 13.88 KB 0644
lm70.html File 12.7 KB 0644
lm73.html File 13.67 KB 0644
lm75.html File 17.08 KB 0644
lm77.html File 11.65 KB 0644
lm78.html File 13.54 KB 0644
lm80.html File 13.16 KB 0644
lm83.html File 14.24 KB 0644
lm85.html File 24.3 KB 0644
lm87.html File 14.23 KB 0644
lm90.html File 34.77 KB 0644
lm92.html File 11.65 KB 0644
lm93.html File 28.68 KB 0644
lm95234.html File 11.89 KB 0644
lm95245.html File 11.91 KB 0644
lochnagar.html File 16.38 KB 0644
lt3074.html File 13.86 KB 0644
lt7182s.html File 15.07 KB 0644
ltc2945.html File 15.06 KB 0644
ltc2947.html File 16.58 KB 0644
ltc2978.html File 28.01 KB 0644
ltc2990.html File 12.56 KB 0644
ltc2991.html File 11.45 KB 0644
ltc2992.html File 12.07 KB 0644
ltc3815.html File 13.16 KB 0644
ltc4151.html File 11.71 KB 0644
ltc4215.html File 12.15 KB 0644
ltc4245.html File 15.68 KB 0644
ltc4260.html File 12.48 KB 0644
ltc4261.html File 13 KB 0644
ltc4282.html File 18.76 KB 0644
ltc4286.html File 14.5 KB 0644
max127.html File 11.59 KB 0644
max15301.html File 14.49 KB 0644
max16064.html File 13.91 KB 0644
max16065.html File 15 KB 0644
max1619.html File 10.96 KB 0644
max16601.html File 16.95 KB 0644
max1668.html File 14.54 KB 0644
max197.html File 13.01 KB 0644
max20730.html File 13.58 KB 0644
max20751.html File 14.47 KB 0644
max31722.html File 11.4 KB 0644
max31730.html File 12.02 KB 0644
max31760.html File 14.62 KB 0644
max31785.html File 13.5 KB 0644
max31790.html File 11.95 KB 0644
max31827.html File 16.18 KB 0644
max34440.html File 20.08 KB 0644
max6620.html File 12.25 KB 0644
max6639.html File 13.79 KB 0644
max6650.html File 13.6 KB 0644
max6697.html File 13.71 KB 0644
max77705.html File 11.3 KB 0644
max8688.html File 14.73 KB 0644
mc13783-adc.html File 16.1 KB 0644
mc33xs2410_hwmon.html File 11.34 KB 0644
mc34vr500.html File 10.93 KB 0644
mcp3021.html File 11.22 KB 0644
menf21bmc.html File 12.3 KB 0644
mlxreg-fan.html File 13.61 KB 0644
mp2856.html File 12.53 KB 0644
mp2869.html File 13.21 KB 0644
mp2888.html File 12.85 KB 0644
mp2891.html File 13.56 KB 0644
mp29502.html File 11.78 KB 0644
mp2975.html File 13.89 KB 0644
mp2993.html File 13.09 KB 0644
mp5023.html File 11.76 KB 0644
mp5920.html File 12 KB 0644
mp5990.html File 12.21 KB 0644
mp9941.html File 12.04 KB 0644
mpq8785.html File 13.29 KB 0644
nct6683.html File 13.44 KB 0644
nct6775.html File 20.68 KB 0644
nct7363.html File 10.92 KB 0644
nct7802.html File 11.09 KB 0644
nct7904.html File 12.28 KB 0644
npcm750-pwm-fan.html File 10.81 KB 0644
nsa320.html File 12.52 KB 0644
ntc_thermistor.html File 13.62 KB 0644
nzxt-kraken2.html File 11.3 KB 0644
nzxt-kraken3.html File 13.52 KB 0644
nzxt-smart2.html File 12.82 KB 0644
occ.html File 15.87 KB 0644
pc87360.html File 19.92 KB 0644
pc87427.html File 12.16 KB 0644
pcf8591.html File 14.52 KB 0644
peci-cputemp.html File 14.53 KB 0644
peci-dimmtemp.html File 12.32 KB 0644
pim4328.html File 13.98 KB 0644
pli1209bc.html File 14.36 KB 0644
pm6764tr.html File 11.08 KB 0644
pmbus-core.html File 30.88 KB 0644
pmbus.html File 22.6 KB 0644
powerz.html File 10.62 KB 0644
powr1220.html File 12.13 KB 0644
pt5161l.html File 11.44 KB 0644
pwm-fan.html File 11.32 KB 0644
pxe1610.html File 14.53 KB 0644
q54sj108a2.html File 12.59 KB 0644
qnap-mcu-hwmon.html File 10.93 KB 0644
raspberrypi-hwmon.html File 10.78 KB 0644
sa67.html File 11.22 KB 0644
sbrmi.html File 13.84 KB 0644
sbtsi_temp.html File 11.55 KB 0644
sch5627.html File 11.61 KB 0644
sch5636.html File 11.21 KB 0644
scpi-hwmon.html File 11.21 KB 0644
sfctemp.html File 11.36 KB 0644
sg2042-mcu.html File 13.79 KB 0644
sht15.html File 13.29 KB 0644
sht21.html File 12.49 KB 0644
sht3x.html File 16.75 KB 0644
sht4x.html File 12.54 KB 0644
shtc1.html File 12.17 KB 0644
sis5595.html File 15.93 KB 0644
sl28cpld.html File 10.99 KB 0644
smpro-hwmon.html File 17.47 KB 0644
smsc47b397.html File 17.76 KB 0644
smsc47m1.html File 13.48 KB 0644
smsc47m192.html File 15.33 KB 0644
sparx5-temp.html File 10.78 KB 0644
spd5118.html File 12.65 KB 0644
stpddc60.html File 14.72 KB 0644
submitting-patches.html File 18.13 KB 0644
surface_fan.html File 10.81 KB 0644
sy7636a-hwmon.html File 10.54 KB 0644
sysfs-interface.html File 33.24 KB 0644
tc654.html File 11.39 KB 0644
tc74.html File 10.26 KB 0644
thmc50.html File 13.73 KB 0644
tmp102.html File 11.06 KB 0644
tmp103.html File 11 KB 0644
tmp108.html File 11.69 KB 0644
tmp401.html File 12.84 KB 0644
tmp421.html File 12.34 KB 0644
tmp464.html File 12.1 KB 0644
tmp513.html File 13.12 KB 0644
tps23861.html File 11.62 KB 0644
tps25990.html File 13.11 KB 0644
tps40422.html File 13.53 KB 0644
tps53679.html File 16.9 KB 0644
tps546d24.html File 10.92 KB 0644
twl4030-madc-hwmon.html File 12.17 KB 0644
ucd9000.html File 18.11 KB 0644
ucd9200.html File 17.95 KB 0644
userspace-tools.html File 11.72 KB 0644
vexpress.html File 11.72 KB 0644
via686a.html File 14.43 KB 0644
vt1211.html File 23.42 KB 0644
w83627ehf.html File 20.55 KB 0644
w83627hf.html File 16.17 KB 0644
w83773g.html File 11.21 KB 0644
w83781d.html File 34.02 KB 0644
w83791d.html File 20.51 KB 0644
w83792d.html File 19.1 KB 0644
w83793.html File 14.85 KB 0644
w83795.html File 21.88 KB 0644
w83l785ts.html File 11.73 KB 0644
w83l786ng.html File 12.22 KB 0644
wm831x.html File 11.66 KB 0644
wm8350.html File 11.19 KB 0644
xdp710.html File 11.9 KB 0644
xdpe12284.html File 12.85 KB 0644
xdpe152c4.html File 12.98 KB 0644
xgene-hwmon.html File 11.13 KB 0644
zl6100.html File 21.7 KB 0644
Filemanager