2
0
mirror of https://github.com/lm-sensors/lm-sensors synced 2025-09-02 23:35:57 +00:00

Add support for the IT8716F (prefix it8716). It is mostly similar to the

IT8712F so there's not much to do. The most significant difference is that
fan speeds are now reported as 16-bit values, without fan clock dividers.
For this reason, I made the fan_divs optional in sensors. I also made the
fans themselves optional, as I noticed that a number of motherboards don't
use (and don't enable) fan3.

I've made a separate section (chip "it8716-*") in sensors.conf.eg, because
new motherboards tend to have different wirings (e.g. negative voltage
lines are not monitored) so this will make for saner defaults.

Thanks to Stian Oksavik for testing.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@4083 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Jean Delvare
2006-08-03 20:28:20 +00:00
parent 0da02179e0
commit 79817f34ce
8 changed files with 103 additions and 18 deletions

View File

@@ -5,11 +5,13 @@ lm_sensors CHANGES file
File doc/busses/i2c-piix4: Update (2.6 backport)
File etc/sensors.conf.eg: Add an smsc47m192 section
Comment out all set statements
Add an it8716 section
Library: Fix device scan when no i2c support is present
Add support for W83627EHF voltage inputs and alarms
Add support for the smsc47m192 driver
Fix all memory leaks (yeah!)
Fix no sensors being reported as an error
Add support for the IT8716F chip
Makefile: Don't grep autoconf.h on user-space targets
Fix depmod on non-running kernel version
Silent errors on missing dependency files
@@ -43,6 +45,8 @@ lm_sensors CHANGES file
Add smsc47m192 support
Add abituguru support (Hans de Goede)
Fix memory leak when printing an unknown chip
Add it8716 support
Make each it87 fan and fan div optional
Program sensors-detect: Add ServerWorks HT-1000 SMBus detection
Add ATI IXP200/300/400 SMBus detection
Prevent warning on 64-bit PCI addresses

View File

@@ -1678,6 +1678,74 @@ chip "it87-*" "it8712-*"
# ignore fan3
chip "it8716-*"
# Voltages
label in0 "VCore"
label in2 "+3.3V"
label in3 "+5V"
label in4 "+12V"
label in7 "5VSB"
label in8 "VBat"
compute in3 ((6.8/10)+1)*@ , @/((6.8/10)+1)
compute in4 ((30/10)+1)*@ , @/((30/10)+1)
compute in7 ((6.8/10)+1)*@ , @/((6.8/10)+1)
# If vid (nominal CPU voltage) isn't correct, hardcode the correct value
# instead.
# set in0_min vid * 0.95
# set in0_max vid * 1.05
# set in2_min 3.3 * 0.95
# set in2_max 3.3 * 1.05
# set in3_min 5 * 0.95
# set in3_max 5 * 1.05
# set in4_min 12 * 0.95
# set in4_max 12 * 1.05
# set in7_min 5 * 0.95
# set in7_max 5 * 1.05
# The chip does not support in8 min/max
# Temperatures
# If you are lucky, the BIOS has set the proper sensor types for you.
# If your temperature readings are completely whacky you probably
# need to change the sensor types. Adujst and uncomment the
# appropriate lines below.
#
# 2 = thermistor; 3 = thermal diode; 0 = unused
# set sensor1 3
# set sensor2 3
# set sensor3 3
# If a given sensor isn't used, you will probably want to ignore it
# as well (see ignore statement right below).
# The CPU sensor can be any of temp1, temp2 or temp3 - it's motherboard
# dependent. Same for the motherboard temperature.
# label temp1 "CPU Temp"
# label temp2 "M/B Temp"
# ignore temp3
# set temp1_over 60
# set temp1_low 10
# set temp2_over 50
# set temp2_low 10
# Fans
# The CPU fan can be any of fan1, fan2 or fan3 - it's motherboard
# dependent. Same for the case fan.
# label fan1 "CPU Fan"
# label fan2 "Case Fan"
# ignore fan3
# set fan1_min 2000
# set fan2_min 2000
chip "fscpos-*"
# Fujitsu-Siemens Poseidon chip

View File

@@ -5904,6 +5904,7 @@ sensors_chip_features sensors_chip_features_list[] =
{ SENSORS_ADM1024_PREFIX, adm1024_features },
{ SENSORS_IT87_PREFIX, it87_features },
{ SENSORS_IT8712_PREFIX, it87_features },
{ SENSORS_IT8716_PREFIX, it87_features },
{ SENSORS_FSCPOS_PREFIX, fscpos_features },
{ SENSORS_FSCSCY_PREFIX, fscscy_features },
{ SENSORS_FSCHER_PREFIX, fscher_features },

View File

@@ -1541,6 +1541,7 @@
#define SENSORS_IT87_PREFIX "it87"
#define SENSORS_IT8712_PREFIX "it8712"
#define SENSORS_IT8716_PREFIX "it8716"
#define SENSORS_IT87_IN0 1 /* R */
#define SENSORS_IT87_IN1 2 /* R */

View File

@@ -1493,7 +1493,7 @@ use subs qw(mtp008_detect lm78_detect lm78_isa_detect lm78_alias_detect
},
{
name => "ITE IT8716F",
driver => "to-be-tested",
driver => "it87",
isa_addrs => [0x290],
isa_detect => sub { ite_isa_detect 2, @_ },
},
@@ -1739,7 +1739,7 @@ $chip_kern26_w83791d = {
},
{
name => "ITE IT8716F Super IO Sensors",
driver => "to-be-tested",
driver => "it87",
devid => 0x8716,
logdev => 0x04,
},

View File

@@ -546,7 +546,8 @@ static const ChipDescriptor lm80_chip = {
/** IT87 (thanks to Mike Black) **/
static const char *it87_names[] = {
SENSORS_IT87_PREFIX, SENSORS_IT8712_PREFIX, NULL
SENSORS_IT87_PREFIX, SENSORS_IT8712_PREFIX,
SENSORS_IT8716_PREFIX, NULL
};
static const FeatureDescriptor it87_features[] = {

View File

@@ -3602,39 +3602,48 @@ void print_it87(const sensors_chip_name *name)
if (!sensors_get_label_and_valid(*name,SENSORS_IT87_FAN1,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_IT87_FAN1,&cur) &&
!sensors_get_feature(*name,SENSORS_IT87_FAN1_DIV,&fdiv) &&
!sensors_get_feature(*name,SENSORS_IT87_FAN1_MIN,&min)) {
if (valid) {
print_label(label,10);
printf("%4.0f RPM (min = %4.0f RPM, div = %1.0f) %s\n",
cur,min,fdiv, alarms&IT87_ALARM_FAN1?"ALARM":"");
printf("%4.0f RPM (min = %4.0f RPM", cur, min);
/* fan1_div is optional */
if (!sensors_get_feature(*name, SENSORS_IT87_FAN1_DIV, &fdiv))
printf(", div = %1.0f)", fdiv);
else
printf(") ");
printf(" %s\n", alarms&IT87_ALARM_FAN1?"ALARM":"");
}
}
} else
printf("ERROR: Can't get FAN1 data!\n");
free(label);
if (!sensors_get_label_and_valid(*name,SENSORS_IT87_FAN2,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_IT87_FAN2,&cur) &&
!sensors_get_feature(*name,SENSORS_IT87_FAN2_DIV,&fdiv) &&
!sensors_get_feature(*name,SENSORS_IT87_FAN2_MIN,&min)) {
if (valid) {
print_label(label,10);
printf("%4.0f RPM (min = %4.0f RPM, div = %1.0f) %s\n",
cur,min,fdiv, alarms&IT87_ALARM_FAN2?"ALARM":"");
printf("%4.0f RPM (min = %4.0f RPM", cur, min);
/* fan2_div is optional */
if (!sensors_get_feature(*name, SENSORS_IT87_FAN2_DIV, &fdiv))
printf(", div = %1.0f)", fdiv);
else
printf(") ");
printf(" %s\n", alarms&IT87_ALARM_FAN2?"ALARM":"");
}
}
} else
printf("ERROR: Can't get FAN2 data!\n");
free(label);
if (!sensors_get_label_and_valid(*name,SENSORS_IT87_FAN3,&label,&valid) &&
!sensors_get_feature(*name,SENSORS_IT87_FAN3,&cur) &&
!sensors_get_feature(*name,SENSORS_IT87_FAN3_DIV,&fdiv) &&
!sensors_get_feature(*name,SENSORS_IT87_FAN3_MIN,&min)) {
if (valid) {
print_label(label,10);
printf("%4.0f RPM (min = %4.0f RPM, div = %1.0f) %s\n",
cur,min,fdiv, alarms&IT87_ALARM_FAN3?"ALARM":"");
printf("%4.0f RPM (min = %4.0f RPM", cur, min);
/* fan3_div is optional */
if (!sensors_get_feature(*name, SENSORS_IT87_FAN3_DIV, &fdiv))
printf(", div = %1.0f)", fdiv);
else
printf(") ");
printf(" %s\n", alarms&IT87_ALARM_FAN3?"ALARM":"");
}
}
} else
printf("ERROR: Can't get FAN3 data!\n");
free(label);
if (!sensors_get_label_and_valid(*name,SENSORS_IT87_TEMP1,&label,&valid) &&

View File

@@ -381,6 +381,7 @@ struct match matches[] = {
{ "maxilife-nba", print_maxilife },
{ "it87", print_it87 },
{ "it8712", print_it87 },
{ "it8716", print_it87 },
{ "ddcmon", print_ddcmon },
{ "eeprom", print_eeprom },
{ "fscpos", print_fscpos },