You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging
* 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging: (44 commits) hwmon: (lineage-pem): Fix in1 voltage alarm sysfs attributes hwmon/f71882fg: Add support for f71808e hwmon/f71882fg: Add support for f71869f and f71869e hwmon/f71882fg: Add support for f71889ed hwmon/f71882fg: Break out test for auto pwm's controlled by digital readings hwmon/f71882fg: Separate temp beep sysfs attr from the other temp sysfs attr hwmon/f71882fg: Remove bogus temp2_type for certain models hwmon/f71882fg: Make number of temps configurable hwmon/f71882fg: Make creation of in sysfs attributes more generic hwmon/f71882fg: Only allow negative auto point temps if fan_neg_temp is enabled hwmon/f71882fg: Fix temp1 sensor type reporting hwmon: (w83627ehf) Display correct temperature sensor labels for systems with NCT6775F hwmon: (w83627ehf) Add fan debounce support for NCT6775F and NCT6776F hwmon: (w83627ehf) Update Kconfig for W83677HG-B, NCT6775F and NCT6776F hwmon: (w83627ehf) Store rpm instead of raw fan speed data hwmon: (w83627ehf) Use 16 bit fan count registers if supported hwmon: (w83627ehf) Add support for Nuvoton NCT6775F and NCT6776F hwmon: (w83627ehf) Permit enabling SmartFan IV mode if configured at startup hwmon: (w83627ehf) Convert register arrays to 16 bit, and convert access to pointers hwmon: (w83627ehf) Remove references to datasheets which no longer exist ...
This commit is contained in:
@@ -10,6 +10,10 @@ Supported chips:
|
||||
Prefix: 'f71862fg'
|
||||
Addresses scanned: none, address read from Super I/O config space
|
||||
Datasheet: Available from the Fintek website
|
||||
* Fintek F71869F and F71869E
|
||||
Prefix: 'f71869'
|
||||
Addresses scanned: none, address read from Super I/O config space
|
||||
Datasheet: Available from the Fintek website
|
||||
* Fintek F71882FG and F71883FG
|
||||
Prefix: 'f71882fg'
|
||||
Addresses scanned: none, address read from Super I/O config space
|
||||
@@ -17,6 +21,10 @@ Supported chips:
|
||||
* Fintek F71889FG
|
||||
Prefix: 'f71889fg'
|
||||
Addresses scanned: none, address read from Super I/O config space
|
||||
Datasheet: Available from the Fintek website
|
||||
* Fintek F71889ED
|
||||
Prefix: 'f71889ed'
|
||||
Addresses scanned: none, address read from Super I/O config space
|
||||
Datasheet: Should become available on the Fintek website soon
|
||||
* Fintek F8000
|
||||
Prefix: 'f8000'
|
||||
@@ -29,9 +37,9 @@ Author: Hans de Goede <hdegoede@redhat.com>
|
||||
Description
|
||||
-----------
|
||||
|
||||
Fintek F718xxFG/F8000 Super I/O chips include complete hardware monitoring
|
||||
capabilities. They can monitor up to 9 voltages (3 for the F8000), 4 fans and
|
||||
3 temperature sensors.
|
||||
Fintek F718xx/F8000 Super I/O chips include complete hardware monitoring
|
||||
capabilities. They can monitor up to 9 voltages, 4 fans and 3 temperature
|
||||
sensors.
|
||||
|
||||
These chips also have fan controlling features, using either DC or PWM, in
|
||||
three different modes (one manual, two automatic).
|
||||
@@ -99,5 +107,5 @@ Writing an unsupported mode will result in an invalid parameter error.
|
||||
The fan speed is regulated to keep the temp the fan is mapped to between
|
||||
temp#_auto_point2_temp and temp#_auto_point3_temp.
|
||||
|
||||
Both of the automatic modes require that pwm1 corresponds to fan1, pwm2 to
|
||||
All of the automatic modes require that pwm1 corresponds to fan1, pwm2 to
|
||||
fan2 and pwm3 to fan3.
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
Kernel driver lineage-pem
|
||||
=========================
|
||||
|
||||
Supported devices:
|
||||
* Lineage Compact Power Line Power Entry Modules
|
||||
Prefix: 'lineage-pem'
|
||||
Addresses scanned: -
|
||||
Documentation:
|
||||
http://www.lineagepower.com/oem/pdf/CPLI2C.pdf
|
||||
|
||||
Author: Guenter Roeck <guenter.roeck@ericsson.com>
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
This driver supports various Lineage Compact Power Line DC/DC and AC/DC
|
||||
converters such as CP1800, CP2000AC, CP2000DC, CP2100DC, and others.
|
||||
|
||||
Lineage CPL power entry modules are nominally PMBus compliant. However, most
|
||||
standard PMBus commands are not supported. Specifically, all hardware monitoring
|
||||
and status reporting commands are non-standard. For this reason, a standard
|
||||
PMBus driver can not be used.
|
||||
|
||||
|
||||
Usage Notes
|
||||
-----------
|
||||
|
||||
This driver does not probe for Lineage CPL devices, since there is no register
|
||||
which can be safely used to identify the chip. You will have to instantiate
|
||||
the devices explicitly.
|
||||
|
||||
Example: the following will load the driver for a Lineage PEM at address 0x40
|
||||
on I2C bus #1:
|
||||
$ modprobe lineage-pem
|
||||
$ echo lineage-pem 0x40 > /sys/bus/i2c/devices/i2c-1/new_device
|
||||
|
||||
All Lineage CPL power entry modules have a built-in I2C bus master selector
|
||||
(PCA9541). To ensure device access, this driver should only be used as client
|
||||
driver to the pca9541 I2C master selector driver.
|
||||
|
||||
|
||||
Sysfs entries
|
||||
-------------
|
||||
|
||||
All Lineage CPL devices report output voltage and device temperature as well as
|
||||
alarms for output voltage, temperature, input voltage, input current, input power,
|
||||
and fan status.
|
||||
|
||||
Input voltage, input current, input power, and fan speed measurement is only
|
||||
supported on newer devices. The driver detects if those attributes are supported,
|
||||
and only creates respective sysfs entries if they are.
|
||||
|
||||
in1_input Output voltage (mV)
|
||||
in1_min_alarm Output undervoltage alarm
|
||||
in1_max_alarm Output overvoltage alarm
|
||||
in1_crit Output voltage critical alarm
|
||||
|
||||
in2_input Input voltage (mV, optional)
|
||||
in2_alarm Input voltage alarm
|
||||
|
||||
curr1_input Input current (mA, optional)
|
||||
curr1_alarm Input overcurrent alarm
|
||||
|
||||
power1_input Input power (uW, optional)
|
||||
power1_alarm Input power alarm
|
||||
|
||||
fan1_input Fan 1 speed (rpm, optional)
|
||||
fan2_input Fan 2 speed (rpm, optional)
|
||||
fan3_input Fan 3 speed (rpm, optional)
|
||||
|
||||
temp1_input
|
||||
temp1_max
|
||||
temp1_crit
|
||||
temp1_alarm
|
||||
temp1_crit_alarm
|
||||
temp1_fault
|
||||
@@ -26,6 +26,14 @@ Supported chips:
|
||||
Prefix: 'emc6d102'
|
||||
Addresses scanned: I2C 0x2c, 0x2d, 0x2e
|
||||
Datasheet: http://www.smsc.com/main/catalog/emc6d102.html
|
||||
* SMSC EMC6D103
|
||||
Prefix: 'emc6d103'
|
||||
Addresses scanned: I2C 0x2c, 0x2d, 0x2e
|
||||
Datasheet: http://www.smsc.com/main/catalog/emc6d103.html
|
||||
* SMSC EMC6D103S
|
||||
Prefix: 'emc6d103s'
|
||||
Addresses scanned: I2C 0x2c, 0x2d, 0x2e
|
||||
Datasheet: http://www.smsc.com/main/catalog/emc6d103s.html
|
||||
|
||||
Authors:
|
||||
Philip Pokorny <ppokorny@penguincomputing.com>,
|
||||
@@ -122,9 +130,11 @@ to be register compatible. The EMC6D100 offers all the features of the
|
||||
EMC6D101 plus additional voltage monitoring and system control features.
|
||||
Unfortunately it is not possible to distinguish between the package
|
||||
versions on register level so these additional voltage inputs may read
|
||||
zero. The EMC6D102 features addtional ADC bits thus extending precision
|
||||
zero. EMC6D102 and EMC6D103 feature additional ADC bits thus extending precision
|
||||
of voltage and temperature channels.
|
||||
|
||||
SMSC EMC6D103S is similar to EMC6D103, but does not support pwm#_auto_pwm_minctl
|
||||
and temp#_auto_temp_off.
|
||||
|
||||
Hardware Configurations
|
||||
-----------------------
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
Kernel driver ltc4151
|
||||
=====================
|
||||
|
||||
Supported chips:
|
||||
* Linear Technology LTC4151
|
||||
Prefix: 'ltc4151'
|
||||
Addresses scanned: -
|
||||
Datasheet:
|
||||
http://www.linear.com/docs/Datasheet/4151fc.pdf
|
||||
|
||||
Author: Per Dalen <per.dalen@appeartv.com>
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
The LTC4151 is a High Voltage I2C Current and Voltage Monitor.
|
||||
|
||||
|
||||
Usage Notes
|
||||
-----------
|
||||
|
||||
This driver does not probe for LTC4151 devices, since there is no register
|
||||
which can be safely used to identify the chip. You will have to instantiate
|
||||
the devices explicitly.
|
||||
|
||||
Example: the following will load the driver for an LTC4151 at address 0x6f
|
||||
on I2C bus #0:
|
||||
# modprobe ltc4151
|
||||
# echo ltc4151 0x6f > /sys/bus/i2c/devices/i2c-0/new_device
|
||||
|
||||
|
||||
Sysfs entries
|
||||
-------------
|
||||
|
||||
Voltage readings provided by this driver are reported as obtained from the ADIN
|
||||
and VIN registers.
|
||||
|
||||
Current reading provided by this driver is reported as obtained from the Current
|
||||
Sense register. The reported value assumes that a 1 mOhm sense resistor is
|
||||
installed.
|
||||
|
||||
in1_input VDIN voltage (mV)
|
||||
|
||||
in2_input ADIN voltage (mV)
|
||||
|
||||
curr1_input SENSE current (mA)
|
||||
@@ -0,0 +1,49 @@
|
||||
Kernel driver max6639
|
||||
=====================
|
||||
|
||||
Supported chips:
|
||||
* Maxim MAX6639
|
||||
Prefix: 'max6639'
|
||||
Addresses scanned: I2C 0x2c, 0x2e, 0x2f
|
||||
Datasheet: http://pdfserv.maxim-ic.com/en/ds/MAX6639.pdf
|
||||
|
||||
Authors:
|
||||
He Changqing <hechangqing@semptian.com>
|
||||
Roland Stigge <stigge@antcom.de>
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
This driver implements support for the Maxim MAX6639. This chip is a 2-channel
|
||||
temperature monitor with dual PWM fan speed controller. It can monitor its own
|
||||
temperature and one external diode-connected transistor or two external
|
||||
diode-connected transistors.
|
||||
|
||||
The following device attributes are implemented via sysfs:
|
||||
|
||||
Attribute R/W Contents
|
||||
----------------------------------------------------------------------------
|
||||
temp1_input R Temperature channel 1 input (0..150 C)
|
||||
temp2_input R Temperature channel 2 input (0..150 C)
|
||||
temp1_fault R Temperature channel 1 diode fault
|
||||
temp2_fault R Temperature channel 2 diode fault
|
||||
temp1_max RW Set THERM temperature for input 1
|
||||
(in C, see datasheet)
|
||||
temp2_max RW Set THERM temperature for input 2
|
||||
temp1_crit RW Set ALERT temperature for input 1
|
||||
temp2_crit RW Set ALERT temperature for input 2
|
||||
temp1_emergency RW Set OT temperature for input 1
|
||||
(in C, see datasheet)
|
||||
temp2_emergency RW Set OT temperature for input 2
|
||||
pwm1 RW Fan 1 target duty cycle (0..255)
|
||||
pwm2 RW Fan 2 target duty cycle (0..255)
|
||||
fan1_input R TACH1 fan tachometer input (in RPM)
|
||||
fan2_input R TACH2 fan tachometer input (in RPM)
|
||||
fan1_fault R Fan 1 fault
|
||||
fan2_fault R Fan 2 fault
|
||||
temp1_max_alarm R Alarm on THERM temperature on channel 1
|
||||
temp2_max_alarm R Alarm on THERM temperature on channel 2
|
||||
temp1_crit_alarm R Alarm on ALERT temperature on channel 1
|
||||
temp2_crit_alarm R Alarm on ALERT temperature on channel 2
|
||||
temp1_emergency_alarm R Alarm on OT temperature on channel 1
|
||||
temp2_emergency_alarm R Alarm on OT temperature on channel 2
|
||||
@@ -0,0 +1,215 @@
|
||||
Kernel driver pmbus
|
||||
====================
|
||||
|
||||
Supported chips:
|
||||
* Ericsson BMR45X series
|
||||
DC/DC Converter
|
||||
Prefixes: 'bmr450', 'bmr451', 'bmr453', 'bmr454'
|
||||
Addresses scanned: -
|
||||
Datasheet:
|
||||
http://archive.ericsson.net/service/internet/picov/get?DocNo=28701-EN/LZT146395
|
||||
* Linear Technology LTC2978
|
||||
Octal PMBus Power Supply Monitor and Controller
|
||||
Prefix: 'ltc2978'
|
||||
Addresses scanned: -
|
||||
Datasheet: http://cds.linear.com/docs/Datasheet/2978fa.pdf
|
||||
* Maxim MAX16064
|
||||
Quad Power-Supply Controller
|
||||
Prefix: 'max16064'
|
||||
Addresses scanned: -
|
||||
Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX16064.pdf
|
||||
* Maxim MAX34440
|
||||
PMBus 6-Channel Power-Supply Manager
|
||||
Prefixes: 'max34440'
|
||||
Addresses scanned: -
|
||||
Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX34440.pdf
|
||||
* Maxim MAX34441
|
||||
PMBus 5-Channel Power-Supply Manager and Intelligent Fan Controller
|
||||
Prefixes: 'max34441'
|
||||
Addresses scanned: -
|
||||
Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX34441.pdf
|
||||
* Maxim MAX8688
|
||||
Digital Power-Supply Controller/Monitor
|
||||
Prefix: 'max8688'
|
||||
Addresses scanned: -
|
||||
Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX8688.pdf
|
||||
* Generic PMBus devices
|
||||
Prefix: 'pmbus'
|
||||
Addresses scanned: -
|
||||
Datasheet: n.a.
|
||||
|
||||
Author: Guenter Roeck <guenter.roeck@ericsson.com>
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
This driver supports hardware montoring for various PMBus compliant devices.
|
||||
It supports voltage, current, power, and temperature sensors as supported
|
||||
by the device.
|
||||
|
||||
Each monitored channel has its own high and low limits, plus a critical
|
||||
limit.
|
||||
|
||||
Fan support will be added in a later version of this driver.
|
||||
|
||||
|
||||
Usage Notes
|
||||
-----------
|
||||
|
||||
This driver does not probe for PMBus devices, since there is no register
|
||||
which can be safely used to identify the chip (The MFG_ID register is not
|
||||
supported by all chips), and since there is no well defined address range for
|
||||
PMBus devices. You will have to instantiate the devices explicitly.
|
||||
|
||||
Example: the following will load the driver for an LTC2978 at address 0x60
|
||||
on I2C bus #1:
|
||||
$ modprobe pmbus
|
||||
$ echo ltc2978 0x60 > /sys/bus/i2c/devices/i2c-1/new_device
|
||||
|
||||
|
||||
Platform data support
|
||||
---------------------
|
||||
|
||||
Support for additional PMBus chips can be added by defining chip parameters in
|
||||
a new chip specific driver file. For example, (untested) code to add support for
|
||||
Emerson DS1200 power modules might look as follows.
|
||||
|
||||
static struct pmbus_driver_info ds1200_info = {
|
||||
.pages = 1,
|
||||
/* Note: All other sensors are in linear mode */
|
||||
.direct[PSC_VOLTAGE_OUT] = true,
|
||||
.direct[PSC_TEMPERATURE] = true,
|
||||
.direct[PSC_CURRENT_OUT] = true,
|
||||
.m[PSC_VOLTAGE_IN] = 1,
|
||||
.b[PSC_VOLTAGE_IN] = 0,
|
||||
.R[PSC_VOLTAGE_IN] = 3,
|
||||
.m[PSC_VOLTAGE_OUT] = 1,
|
||||
.b[PSC_VOLTAGE_OUT] = 0,
|
||||
.R[PSC_VOLTAGE_OUT] = 3,
|
||||
.m[PSC_TEMPERATURE] = 1,
|
||||
.b[PSC_TEMPERATURE] = 0,
|
||||
.R[PSC_TEMPERATURE] = 3,
|
||||
.func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_IIN | PMBUS_HAVE_STATUS_INPUT
|
||||
| PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT
|
||||
| PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT
|
||||
| PMBUS_HAVE_PIN | PMBUS_HAVE_POUT
|
||||
| PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP
|
||||
| PMBUS_HAVE_FAN12 | PMBUS_HAVE_STATUS_FAN12,
|
||||
};
|
||||
|
||||
static int ds1200_probe(struct i2c_client *client,
|
||||
const struct i2c_device_id *id)
|
||||
{
|
||||
return pmbus_do_probe(client, id, &ds1200_info);
|
||||
}
|
||||
|
||||
static int ds1200_remove(struct i2c_client *client)
|
||||
{
|
||||
return pmbus_do_remove(client);
|
||||
}
|
||||
|
||||
static const struct i2c_device_id ds1200_id[] = {
|
||||
{"ds1200", 0},
|
||||
{}
|
||||
};
|
||||
|
||||
MODULE_DEVICE_TABLE(i2c, ds1200_id);
|
||||
|
||||
/* This is the driver that will be inserted */
|
||||
static struct i2c_driver ds1200_driver = {
|
||||
.driver = {
|
||||
.name = "ds1200",
|
||||
},
|
||||
.probe = ds1200_probe,
|
||||
.remove = ds1200_remove,
|
||||
.id_table = ds1200_id,
|
||||
};
|
||||
|
||||
static int __init ds1200_init(void)
|
||||
{
|
||||
return i2c_add_driver(&ds1200_driver);
|
||||
}
|
||||
|
||||
static void __exit ds1200_exit(void)
|
||||
{
|
||||
i2c_del_driver(&ds1200_driver);
|
||||
}
|
||||
|
||||
|
||||
Sysfs entries
|
||||
-------------
|
||||
|
||||
When probing the chip, the driver identifies which PMBus registers are
|
||||
supported, and determines available sensors from this information.
|
||||
Attribute files only exist if respective sensors are suported by the chip.
|
||||
Labels are provided to inform the user about the sensor associated with
|
||||
a given sysfs entry.
|
||||
|
||||
The following attributes are supported. Limits are read-write; all other
|
||||
attributes are read-only.
|
||||
|
||||
inX_input Measured voltage. From READ_VIN or READ_VOUT register.
|
||||
inX_min Minumum Voltage.
|
||||
From VIN_UV_WARN_LIMIT or VOUT_UV_WARN_LIMIT register.
|
||||
inX_max Maximum voltage.
|
||||
From VIN_OV_WARN_LIMIT or VOUT_OV_WARN_LIMIT register.
|
||||
inX_lcrit Critical minumum Voltage.
|
||||
From VIN_UV_FAULT_LIMIT or VOUT_UV_FAULT_LIMIT register.
|
||||
inX_crit Critical maximum voltage.
|
||||
From VIN_OV_FAULT_LIMIT or VOUT_OV_FAULT_LIMIT register.
|
||||
inX_min_alarm Voltage low alarm. From VOLTAGE_UV_WARNING status.
|
||||
inX_max_alarm Voltage high alarm. From VOLTAGE_OV_WARNING status.
|
||||
inX_lcrit_alarm Voltage critical low alarm.
|
||||
From VOLTAGE_UV_FAULT status.
|
||||
inX_crit_alarm Voltage critical high alarm.
|
||||
From VOLTAGE_OV_FAULT status.
|
||||
inX_label "vin", "vcap", or "voutY"
|
||||
|
||||
currX_input Measured current. From READ_IIN or READ_IOUT register.
|
||||
currX_max Maximum current.
|
||||
From IIN_OC_WARN_LIMIT or IOUT_OC_WARN_LIMIT register.
|
||||
currX_lcrit Critical minumum output current.
|
||||
From IOUT_UC_FAULT_LIMIT register.
|
||||
currX_crit Critical maximum current.
|
||||
From IIN_OC_FAULT_LIMIT or IOUT_OC_FAULT_LIMIT register.
|
||||
currX_alarm Current high alarm.
|
||||
From IIN_OC_WARNING or IOUT_OC_WARNING status.
|
||||
currX_lcrit_alarm Output current critical low alarm.
|
||||
From IOUT_UC_FAULT status.
|
||||
currX_crit_alarm Current critical high alarm.
|
||||
From IIN_OC_FAULT or IOUT_OC_FAULT status.
|
||||
currX_label "iin" or "vinY"
|
||||
|
||||
powerX_input Measured power. From READ_PIN or READ_POUT register.
|
||||
powerX_cap Output power cap. From POUT_MAX register.
|
||||
powerX_max Power limit. From PIN_OP_WARN_LIMIT or
|
||||
POUT_OP_WARN_LIMIT register.
|
||||
powerX_crit Critical output power limit.
|
||||
From POUT_OP_FAULT_LIMIT register.
|
||||
powerX_alarm Power high alarm.
|
||||
From PIN_OP_WARNING or POUT_OP_WARNING status.
|
||||
powerX_crit_alarm Output power critical high alarm.
|
||||
From POUT_OP_FAULT status.
|
||||
powerX_label "pin" or "poutY"
|
||||
|
||||
tempX_input Measured tempererature.
|
||||
From READ_TEMPERATURE_X register.
|
||||
tempX_min Mimimum tempererature. From UT_WARN_LIMIT register.
|
||||
tempX_max Maximum tempererature. From OT_WARN_LIMIT register.
|
||||
tempX_lcrit Critical low tempererature.
|
||||
From UT_FAULT_LIMIT register.
|
||||
tempX_crit Critical high tempererature.
|
||||
From OT_FAULT_LIMIT register.
|
||||
tempX_min_alarm Chip temperature low alarm. Set by comparing
|
||||
READ_TEMPERATURE_X with UT_WARN_LIMIT if
|
||||
TEMP_UT_WARNING status is set.
|
||||
tempX_max_alarm Chip temperature high alarm. Set by comparing
|
||||
READ_TEMPERATURE_X with OT_WARN_LIMIT if
|
||||
TEMP_OT_WARNING status is set.
|
||||
tempX_lcrit_alarm Chip temperature critical low alarm. Set by comparing
|
||||
READ_TEMPERATURE_X with UT_FAULT_LIMIT if
|
||||
TEMP_UT_FAULT status is set.
|
||||
tempX_crit_alarm Chip temperature critical high alarm. Set by comparing
|
||||
READ_TEMPERATURE_X with OT_FAULT_LIMIT if
|
||||
TEMP_OT_FAULT status is set.
|
||||
@@ -187,6 +187,17 @@ fan[1-*]_div Fan divisor.
|
||||
Note that this is actually an internal clock divisor, which
|
||||
affects the measurable speed range, not the read value.
|
||||
|
||||
fan[1-*]_pulses Number of tachometer pulses per fan revolution.
|
||||
Integer value, typically between 1 and 4.
|
||||
RW
|
||||
This value is a characteristic of the fan connected to the
|
||||
device's input, so it has to be set in accordance with the fan
|
||||
model.
|
||||
Should only be created if the chip has a register to configure
|
||||
the number of pulses. In the absence of such a register (and
|
||||
thus attribute) the value assumed by all devices is 2 pulses
|
||||
per fan revolution.
|
||||
|
||||
fan[1-*]_target
|
||||
Desired fan speed
|
||||
Unit: revolution/min (RPM)
|
||||
|
||||
@@ -5,13 +5,11 @@ Supported chips:
|
||||
* Winbond W83627EHF/EHG (ISA access ONLY)
|
||||
Prefix: 'w83627ehf'
|
||||
Addresses scanned: ISA address retrieved from Super I/O registers
|
||||
Datasheet:
|
||||
http://www.nuvoton.com.tw/NR/rdonlyres/A6A258F0-F0C9-4F97-81C0-C4D29E7E943E/0/W83627EHF.pdf
|
||||
Datasheet: not available
|
||||
* Winbond W83627DHG
|
||||
Prefix: 'w83627dhg'
|
||||
Addresses scanned: ISA address retrieved from Super I/O registers
|
||||
Datasheet:
|
||||
http://www.nuvoton.com.tw/NR/rdonlyres/7885623D-A487-4CF9-A47F-30C5F73D6FE6/0/W83627DHG.pdf
|
||||
Datasheet: not available
|
||||
* Winbond W83627DHG-P
|
||||
Prefix: 'w83627dhg'
|
||||
Addresses scanned: ISA address retrieved from Super I/O registers
|
||||
@@ -24,6 +22,14 @@ Supported chips:
|
||||
Prefix: 'w83667hg'
|
||||
Addresses scanned: ISA address retrieved from Super I/O registers
|
||||
Datasheet: Available from Nuvoton upon request
|
||||
* Nuvoton NCT6775F/W83667HG-I
|
||||
Prefix: 'nct6775'
|
||||
Addresses scanned: ISA address retrieved from Super I/O registers
|
||||
Datasheet: Available from Nuvoton upon request
|
||||
* Nuvoton NCT6776F
|
||||
Prefix: 'nct6776'
|
||||
Addresses scanned: ISA address retrieved from Super I/O registers
|
||||
Datasheet: Available from Nuvoton upon request
|
||||
|
||||
Authors:
|
||||
Jean Delvare <khali@linux-fr.org>
|
||||
@@ -36,19 +42,28 @@ Description
|
||||
-----------
|
||||
|
||||
This driver implements support for the Winbond W83627EHF, W83627EHG,
|
||||
W83627DHG, W83627DHG-P, W83667HG and W83667HG-B super I/O chips.
|
||||
We will refer to them collectively as Winbond chips.
|
||||
W83627DHG, W83627DHG-P, W83667HG, W83667HG-B, W83667HG-I (NCT6775F),
|
||||
and NCT6776F super I/O chips. We will refer to them collectively as
|
||||
Winbond chips.
|
||||
|
||||
The chips implement three temperature sensors, five fan rotation
|
||||
speed sensors, ten analog voltage sensors (only nine for the 627DHG), one
|
||||
VID (6 pins for the 627EHF/EHG, 8 pins for the 627DHG and 667HG), alarms
|
||||
with beep warnings (control unimplemented), and some automatic fan
|
||||
regulation strategies (plus manual fan control mode).
|
||||
The chips implement three temperature sensors (up to four for 667HG-B, and nine
|
||||
for NCT6775F and NCT6776F), five fan rotation speed sensors, ten analog voltage
|
||||
sensors (only nine for the 627DHG), one VID (6 pins for the 627EHF/EHG, 8 pins
|
||||
for the 627DHG and 667HG), alarms with beep warnings (control unimplemented),
|
||||
and some automatic fan regulation strategies (plus manual fan control mode).
|
||||
|
||||
The temperature sensor sources on W82677HG-B, NCT6775F, and NCT6776F are
|
||||
configurable. temp4 and higher attributes are only reported if its temperature
|
||||
source differs from the temperature sources of the already reported temperature
|
||||
sensors. The configured source for each of the temperature sensors is provided
|
||||
in tempX_label.
|
||||
|
||||
Temperatures are measured in degrees Celsius and measurement resolution is 1
|
||||
degC for temp1 and 0.5 degC for temp2 and temp3. An alarm is triggered when
|
||||
the temperature gets higher than high limit; it stays on until the temperature
|
||||
falls below the hysteresis value.
|
||||
degC for temp1 and and 0.5 degC for temp2 and temp3. For temp4 and higher,
|
||||
resolution is 1 degC for W83667HG-B and 0.0 degC for NCT6775F and NCT6776F.
|
||||
An alarm is triggered when the temperature gets higher than high limit;
|
||||
it stays on until the temperature falls below the hysteresis value.
|
||||
Alarms are only supported for temp1, temp2, and temp3.
|
||||
|
||||
Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
|
||||
triggered if the rotation speed has dropped below a programmable limit. Fan
|
||||
@@ -80,7 +95,8 @@ prog -> pwm4 (not on 667HG and 667HG-B; the programmable setting is not
|
||||
|
||||
name - this is a standard hwmon device entry. For the W83627EHF and W83627EHG,
|
||||
it is set to "w83627ehf", for the W83627DHG it is set to "w83627dhg",
|
||||
and for the W83667HG it is set to "w83667hg".
|
||||
for the W83667HG and W83667HG-B it is set to "w83667hg", for NCT6775F it
|
||||
is set to "nct6775", and for NCT6776F it is set to "nct6776".
|
||||
|
||||
pwm[1-4] - this file stores PWM duty cycle or DC value (fan speed) in range:
|
||||
0 (stop) to 255 (full)
|
||||
@@ -90,6 +106,18 @@ pwm[1-4]_enable - this file controls mode of fan/temperature control:
|
||||
* 2 "Thermal Cruise" mode
|
||||
* 3 "Fan Speed Cruise" mode
|
||||
* 4 "Smart Fan III" mode
|
||||
* 5 "Smart Fan IV" mode
|
||||
|
||||
SmartFan III mode is not supported on NCT6776F.
|
||||
|
||||
SmartFan IV mode is configurable only if it was configured at system
|
||||
startup, and is only supported for W83677HG-B, NCT6775F, and NCT6776F.
|
||||
SmartFan IV operational parameters can not be configured at this time,
|
||||
and the various pwm attributes are not used in SmartFan IV mode.
|
||||
The attributes can be written to, which is useful if you plan to
|
||||
configure the system for a different pwm mode. However, the information
|
||||
returned when reading pwm attributes is unrelated to SmartFan IV
|
||||
operation.
|
||||
|
||||
pwm[1-4]_mode - controls if output is PWM or DC level
|
||||
* 0 DC output (0 - 12v)
|
||||
|
||||
Reference in New Issue
Block a user