mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-11-01 13:20:30 +00:00
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:
1 parent
4e91b1083d
commit
d70c450c78
5 files changed
+98
-22
No files matched your search
@@ -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-*"
|
||||
|
||||
|
||||
@@ -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
@@ -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 }
|
||||
};
|
||||
|
||||
|
||||
@@ -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
@@ -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)) {
|
||||
|
||||
Reference in new issue
Block a user