Added sensor[1-3] support for w83782d/783s to 'sensors'.

Now prints out what kind of sensor it is.
Also separated alarms for temp2 and temp3 for 782d/783s (they are
a single bit for 781d).


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@400 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Mark D. Studebaker committed 1999-04-20 01:49:51 +00:00
1 parent 4e91b1083d
commit d70c450c78
5 files changed
+98 -22

No files matched your search

+9
View File
@@ -223,6 +223,7 @@ chip "w83782d-*" "w83783s-*"
# set limits to 5% for the critical voltages
# set limits to 10% for the non-critical voltages
# set limits to 20% for the battery voltage
set in0_min vid*0.95
set in0_max vid*1.05
set in1_min vid*0.95
@@ -242,6 +243,14 @@ chip "w83782d-*" "w83783s-*"
set in8_min 3.0 * 0.80
set in8_max 3.0 * 1.20
# set up sensor types (thermistor is default)
# 1 = PII/Celeron Diode; 2 = 3904 transistor;
# 3435 = thermistor with Beta = 3435
# If temperature changes very little, try 1 or 2.
# set sensor1 1
# set sensor2 2
# set sensor3 3435
chip "gl518sm-r00-*" "gl518sm-r80-*"
+3 -1
View File
@@ -403,7 +403,9 @@ struct sensors_chips_data {
#define W83781D_ALARM_FAN2 0x0080
#define W83781D_ALARM_FAN3 0x0800
#define W83781D_ALARM_TEMP1 0x0010
#define W83781D_ALARM_TEMP23 0x0020
#define W83781D_ALARM_TEMP23 0x0020 /* 781D only */
#define W83781D_ALARM_TEMP2 0x0020 /* 782D/783S */
#define W83781D_ALARM_TEMP3 0x2000 /* 782D only */
#define W83781D_ALARM_CHAS 0x1000
#define LM75_SYSCTL_TEMP 1200 /* Degrees Celcius * 10 */
+10
View File
@@ -860,6 +860,12 @@ static sensors_chip_feature w83782d_features[] =
{ SENSORS_W83782D_BEEPS, "beeps", SENSORS_W83782D_ALARMS,
SENSORS_W83782D_ALARMS, SENSORS_MODE_RW,
W83781D_SYSCTL_BEEP, VALUE(2), 0 },
{ SENSORS_W83782D_SENS1, "sensor1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_RW, W83781D_SYSCTL_SENS1, VALUE(1), 0 },
{ SENSORS_W83782D_SENS2, "sensor2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_RW, W83781D_SYSCTL_SENS2, VALUE(1), 0 },
{ SENSORS_W83782D_SENS3, "sensor3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_RW, W83781D_SYSCTL_SENS3, VALUE(1), 0 },
{ 0 }
};
@@ -971,6 +977,10 @@ static sensors_chip_feature w83783s_features[] =
{ SENSORS_W83783S_BEEPS, "beeps", SENSORS_W83783S_ALARMS,
SENSORS_W83783S_ALARMS, SENSORS_MODE_RW,
W83781D_SYSCTL_BEEP, VALUE(2), 0 },
{ SENSORS_W83783S_SENS1, "sensor1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_RW, W83781D_SYSCTL_SENS1, VALUE(1), 0 },
{ SENSORS_W83783S_SENS2, "sensor2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,
SENSORS_MODE_RW, W83781D_SYSCTL_SENS2, VALUE(1), 0 },
{ 0 }
};
+8
View File
@@ -353,6 +353,9 @@
#define SENSORS_W83781D_ALARMS 81 /* R */
#define SENSORS_W83781D_BEEP_ENABLE 82 /* RW */
#define SENSORS_W83781D_BEEPS 83 /* RW */
#define SENSORS_W83781D_SENS1 91 /* RW */
#define SENSORS_W83781D_SENS2 92 /* RW */
#define SENSORS_W83781D_SENS3 93 /* RW */
/* Winbond W83782D chips */
@@ -407,6 +410,9 @@
#define SENSORS_W83782D_ALARMS 81 /* R */
#define SENSORS_W83782D_BEEP_ENABLE 82 /* RW */
#define SENSORS_W83782D_BEEPS 83 /* RW */
#define SENSORS_W83782D_SENS1 91 /* RW */
#define SENSORS_W83782D_SENS2 92 /* RW */
#define SENSORS_W83782D_SENS3 93 /* RW */
/* Winbond W83783S chips */
@@ -453,6 +459,8 @@
#define SENSORS_W83783S_ALARMS 81 /* R */
#define SENSORS_W83783S_BEEP_ENABLE 82 /* RW */
#define SENSORS_W83783S_BEEPS 83 /* RW */
#define SENSORS_W83783S_SENS1 91 /* RW */
#define SENSORS_W83783S_SENS2 92 /* RW */
/* Analog Devices ADM9240 chips */
+68 -21
View File
@@ -530,7 +530,7 @@ void print_lm80(const sensors_chip_name *name)
void print_w83781d(const sensors_chip_name *name)
{
char *label = NULL;
double cur,min,max,fdiv;
double cur,min,max,fdiv,sens;
int alarms,beeps;
int is82d, is83s;
@@ -694,37 +694,84 @@ void print_w83781d(const sensors_chip_name *name)
!sensors_get_feature(*name,SENSORS_W83781D_TEMP1,&cur) &&
!sensors_get_feature(*name,SENSORS_W83781D_TEMP1_HYST,&min) &&
!sensors_get_feature(*name,SENSORS_W83781D_TEMP1_OVER,&max)) {
print_label(label,10);
printf("%+3.0f C (limit = %+3.0f C, hysteresis = %+3.0f C) %s %s\n",
cur,max,min, alarms&W83781D_ALARM_TEMP1?"ALARM":" ",
beeps&W83781D_ALARM_TEMP1?"(beep)":"");
if((!is82d) && (!is83s)) {
print_label(label,10);
printf("%+3.0f C (limit = %+3.0f C, hysteresis = %+3.0f C) %s %s\n",
cur,max,min, alarms&W83781D_ALARM_TEMP1 ?"ALARM":" ",
beeps&W83781D_ALARM_TEMP1?"(beep)":"");
} else {
if(!sensors_get_feature(*name,SENSORS_W83781D_SENS1,&sens)) {
print_label(label,10);
printf(
"%+3.0f C (limit = %+3.0f C, hysteresis = %+3.0f C, sensor = %s) %s %s\n",
cur,max,min,
(((int)sens)==1)?"PII/Celeron diode":(((int)sens)==2)?
"3904 transistor":"thermistor",
alarms&W83781D_ALARM_TEMP1?"ALARM":" ",
beeps&W83781D_ALARM_TEMP1?"(beep)":"");
} else {
printf("ERROR: Can't get TEMP1 data!\n");
}
}
} else
printf("ERROR: Can't get TEMP2 data!\n");
printf("ERROR: Can't get TEMP1 data!\n");
free_the_label(&label);
if (!sensors_get_label(*name,SENSORS_W83781D_TEMP2,&label) &&
!sensors_get_feature(*name,SENSORS_W83781D_TEMP2,&cur) &&
!sensors_get_feature(*name,SENSORS_W83781D_TEMP2_HYST,&min) &&
!sensors_get_feature(*name,SENSORS_W83781D_TEMP2_OVER,&max)) {
print_label(label,10);
printf("%+3.1f C (limit = %+3.1f C, hysteresis = %+3.1f C) %s %s\n",
cur,max,min, alarms&W83781D_ALARM_TEMP23?"ALARM":" ",
beeps&W83781D_ALARM_TEMP23?"(beep)":"");
if((!is82d) && (!is83s)) {
print_label(label,10);
printf("%+3.1f C (limit = %+3.1f C, hysteresis = %+3.1f C) %s %s\n",
cur,max,min, alarms&W83781D_ALARM_TEMP23 ?"ALARM":" ",
beeps&W83781D_ALARM_TEMP23?"(beep)":"");
} else {
if(!sensors_get_feature(*name,SENSORS_W83781D_SENS2,&sens)) {
print_label(label,10);
printf(
"%+3.1f C (limit = %+3.1f C, hysteresis = %+3.1f C, sensor = %s) %s %s\n",
cur,max,min,
(((int)sens)==1)?"PII/Celeron diode":(((int)sens)==2)?
"3904 transistor":"thermistor",
alarms&W83781D_ALARM_TEMP2?"ALARM":" ",
beeps&W83781D_ALARM_TEMP2?"(beep)":"");
} else {
printf("ERROR: Can't get TEMP2 data!\n");
}
}
} else
printf("ERROR: Can't get TEMP2 data!\n");
free_the_label(&label);
if (!sensors_get_label(*name,SENSORS_W83781D_TEMP3,&label) &&
!sensors_get_feature(*name,SENSORS_W83781D_TEMP3,&cur) &&
!sensors_get_feature(*name,SENSORS_W83781D_TEMP3_HYST,&min) &&
!sensors_get_feature(*name,SENSORS_W83781D_TEMP3_OVER,&max)) {
print_label(label,10);
printf("%+3.1f C (limit = %+3.1f C, hysteresis = %+3.1f C) %s %s\n",
cur,max,min, alarms&W83781D_ALARM_TEMP23?"ALARM":" ",
beeps&W83781D_ALARM_TEMP23?"(beep)":"");
} else
printf("ERROR: Can't get TEMP3 data!\n");
free_the_label(&label);
if (!is83s) {
if (!sensors_get_label(*name,SENSORS_W83781D_TEMP3,&label) &&
!sensors_get_feature(*name,SENSORS_W83781D_TEMP3,&cur) &&
!sensors_get_feature(*name,SENSORS_W83781D_TEMP3_HYST,&min) &&
!sensors_get_feature(*name,SENSORS_W83781D_TEMP3_OVER,&max)) {
if(!is82d) {
print_label(label,10);
printf("%+3.1f C (limit = %+3.1f C, hysteresis = %+3.1f C) %s %s\n",
cur,max,min, alarms&W83781D_ALARM_TEMP23 ?"ALARM":" ",
beeps&W83781D_ALARM_TEMP23?"(beep)":"");
} else {
if(!sensors_get_feature(*name,SENSORS_W83781D_SENS3,&sens)) {
print_label(label,10);
printf(
"%+3.1f C (limit = %+3.1f C, hysteresis = %+3.1f C, sensor = %s) %s %s\n",
cur,max,min,
(((int)sens)==1)?"PII/Celeron diode":(((int)sens)==2)?
"3904 transistor":"thermistor",
alarms&W83781D_ALARM_TEMP3?"ALARM":" ",
beeps&W83781D_ALARM_TEMP3?"(beep)":"");
} else {
printf("ERROR: Can't get TEMP3 data!\n");
}
}
} else
printf("ERROR: Can't get TEMP3 data!\n");
free_the_label(&label);
}
if (!sensors_get_label(*name,SENSORS_W83781D_VID,&label) &&
!sensors_get_feature(*name,SENSORS_W83781D_VID,&cur)) {