LM(4) BSD Kernel Interfaces Manual LM(4)NAME
lm -- National Semiconductor LM78, LM79 and compatible hardware monitors
SYNOPSIS
lm0 at isa? port 0x280 flags 0x00
lm1 at isa? port 0x290 flags 0x00
lm2 at isa? port 0x310 flags 0x00
lm3 at isa? port 0xa00 flags 0x00
lm0 at pnpbios0 index ? flags 0x00
lm0 at iic? addr 0x2e flags 0x00
lm* at wbsio?
DESCRIPTION
The lm driver provides support for the National Semiconductor LM series hardware monitors and register compatible chips to be used with the
envsys(4) API.
Most supported devices possess 11 sensors:
Sensor Units Typical Use
IN0 uV DC Core voltage
IN1 uV DC unknown
IN2 uV DC +3.3V
IN3 uV DC +5V
IN4 uV DC +12V
IN5 uV DC -12V
IN6 uV DC -5V
Temp uK Motherboard Temperature
Fan0 RPM Fan
Fan1 RPM Chassis Fan
Fan2 RPM Fan
for some devices (most Winbond devices) sensor names and numbers will be different.
Due to hardware limitations, fresh sensor data is only available every 2 seconds.
HARDWARE
Chips supported by the lm driver include:
National Semiconductor LM78, LM78-J, LM79 and LM81.
Winbond W83627HF*, W83627THF*, W83627EHF*, W83627DHG*, W83637HF*, W83697HF*, W83781D, W83782D*, W83783S*, W83791D*, W83791SD and
W83792D.
ASUS AS99127F.
For most of the Winbond chips (identified with a * above), the flags configuration option can be specified to select the type of temperature
sensor:
flags Sensor Type
0 Thermistor diode (Power-On default)
1 Pentium-II diode
2 2N3904 Bipolar
4 Thermistor diode
SEE ALSO envsys(4), wbsio(4), envstat(8)HISTORY
The lm device appeared in NetBSD 1.5.
BUGS
Interrupt support is unimplemented.
There are currently no known pnpbios IDs assigned to LM chips.
BSD February 16, 2010 BSD
Check Out this Related Man Page
DBCOOL(4) BSD Kernel Interfaces Manual DBCOOL(4)NAME
dbcool, adm1027, adm1030, adm1031, adt7463, adt7466, adt7467, adt7468, adt7473, adt7475, adt7476, adt7490, emc6d103s -- dbCool(tm) family of
environmental monitors and fan controllers
SYNOPSIS
dbcool* at ki2c?
dbcool* at iic? addr 0x2e
DESCRIPTION
The dbcool driver provides support for the Analog Devices dbCool and the SMSC EMC6D103S environmental monitor chips to be used with the
envsys(4) API.
These chips support up to fifteen sensors. Not all of the following sensors are supported on all chips.
Sensor Units Typical Use
l_temp uK local chip temperature
r1_temp uK CPU temperature
r2_temp uK GPU temperature
Vccp uV DC CPU Vcore
Vcc uV DC Chip's supply voltage
2.5V uV DC 2.5V supply
5V uV DC 5V supply
12V uV DC 12V supply
Vtt uV DC PECI ref. voltage (2.25V ref, ADT7490 only)
Imon uV DC Current monitor (2.25V ref, ADT7490 only)
AIN1 uV DC Analog In (2.25V ref, ADT7466 only)
AIN2 uV DC Analog In (2.25V ref, ADT7466 only)
fan1 RPM Chassis Fan
fan2 RPM Chassis Fan
fan3 RPM Chassis Fan
fan4 RPM Chassis Fan
VID (none) CPU VID code (selected chips only)
Each temperature and voltage sensor has programmable hardware high- and low-limits; fan sensors have only a low-limit. These limits can be
set using the envstat(8) utility. Due to hardware limitations, the minimum permissible value for the fan speed low-limits is 83 RPM.
Temperature sensors also have Tmin, Trange, Thyst, and Ttherm sysctl(8) variables; these values are used by the fan speed controllers. Their
values are in units of degC, since this is the unit which is programmed into the device registers.
All members of the dbCool family support Pulse-Width Modulated (PWM) fan speed control based on temperature thresholds - the fan will spin up
when its associated thermal sensor(s) exceeds its configured Tmin value. The fan will go faster as the temperature rises, and will slow down
as the temperature falls. If the temperature exceeds the sensor's Ttherm value, the THERM signal will be asserted, and if enabled the fan
will run at full speed. The fan will be turned off when the sensor(s) that triggered it reports a temperature which is at least Thyst
degrees below its Tmin threshold.
Each fan controller is programmable using the following sysctl(8) variables.
hw.dbcool0.fan_ctl_0.behavior
hw.dbcool0.fan_ctl_0.min_duty
hw.dbcool0.fan_ctl_0.max_duty
hw.dbcool0.fan_ctl_0.cur_duty
The behavior variable controls the selection of temperature sensors associated with the fan controller. When the associated temperature sen-
sor reaches its Tmin value, the fan controller starts the fan at its minimum duty cycle; when the associated temperature sensor reaches its
Ttherm value and asserts the THERM signal (or if an external THERM signal is asserted), the fan controller sets the fan speed to a 100% duty
cycle. Between these two settings, each temperature sensor is used to calculate a duty cycle linearly based on the slope defined by the tem-
perature sensor's range variable. When the associated temperature falls at least Thyst degress below its Tmin value, the fan controller will
turn off the fan. (On the ADM1030, the value for Thyst is fixed at 5 degC.)
Valid values for the behavior variable are:
local (not available on ADM1030)
remote1
remote2 (not available on ADM1030)
local+remote2 (not available on ADM1030)
all-temps
full-speed (not available on ADM1030)
manual
disabled
When the behavior variable is set to ``manual'', the cur-duty variable becomes user-writable and can be set to any value between 0 and 100
inclusive to control the fan's duty cycle manually. In all other behavior modes, the cur-duty variable is read-only and updates are ignored.
The min-duty and max-duty variables define the range over which the fan controller will manage the fan's duty cycle. On the ADM1030, these
values are not separately controllable. The max-duty is fixed at 100%, and the cur-duty variable is used to specify the minimum duty cycle
when the fan controller is running in automatic mode.
Note that the duty-cycle value does not directly correspond to the fan's speed. That is, a 33% duty cycle does not mean that the fan runs at
33% of its maximum speed; in actuality, a 33% duty cycle drives the fan at a speed close to 50% of its maximum. Fan speed correlates approx-
imately to the square root of the duty cycle.
EXAMPLES
The envstat(8) utility can be used to determine the sensors supported:
Current CritMax WarnMax WarnMin CritMin Unit
l_temp: 44.250 degC
r1_temp: 41.250 degC
r2_temp: N/A
Vccp: 0.002 V
Vcc: 3.351 V
fan1: N/A
fan2: N/A
fan3: N/A
fan4: N/A
Using this information, the following commands in /etc/envsys.conf will set appropriate limits for CPU temperature and chip supply voltage,
and powerd will be notified if the limits are exceeded:
dbcool0 {
sensor1 {
warning-max = 60C;
critical-max = 65C;
}
sensor4 {
critical-min = 3.1;
warning-min = 3.2;
critical-max = 3.5;
}
}
SEE ALSO envsys(4), iic(4), envstat(8), powerd(8), sysctl(8)HISTORY
The dbcool device appeared in NetBSD 5.0.
BUGS
Although the sensor limit registers can be programmed, there is currently no use of the dbCool chips' ability to generate an SMBus interrupt
when the limits are exceeded. Limit checking and event generation are done in software, and are performed only when the sensor values are
polled and refreshed.
The ADT7466 chip, although officially a member of the dbCool family, is programmed quite differently. The fan controllers on this chip are
not currently implemented.
The PECI (Processor Environment Control Interface) temperature sensors and the associated PWM behavior modes on the ADT7490 are not currently
supported.
BSD March 12, 2011 BSD