Add user-space support for the Linux 2.4 w83627ehf driver.

git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@4449 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Jean Delvare committed 2007-06-15 11:42:28 +00:00
1 parent 9befc96918
commit 9366b73b8c
4 files changed
+113 -60

No files matched your search

+2
View File
@@ -8,6 +8,7 @@ SVN HEAD
Library: Clean up pwm symbol names translation
Add dme1737 support
Add applesmc support
Add w83627ehf support (for Linux 2.4)
Man page sensors.conf.5: Update the chip statement section
Module i2c-nforce2: Add nForce MCP61, MCP65 support (2.6 backport)
Module w83627ehf: New (2.6 backport)
@@ -32,6 +33,7 @@ SVN HEAD
Add applesmc support
Add max6680 support
Fix alignment of alarm for one-limit temperatures
Add w83627ehf support (for Linux 2.4)
Program sensors-detect: Stop Super-I/O probe after first family success
Fix SMSC DME1737 detection
Add /usr/sbin to the PATH (#2199)
+56 -54
View File
@@ -1955,25 +1955,25 @@ static sensors_chip_feature w83l785ts_features[] =
static sensors_chip_feature w83627ehf_features[] =
{
{ { SENSORS_W83627EHF_IN0, "in0", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(3), 3 },
W83627EHF_SYSCTL_IN0, VALUE(3), 3 },
{ { SENSORS_W83627EHF_IN1, "in1", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(3), 3 },
W83627EHF_SYSCTL_IN1, VALUE(3), 3 },
{ { SENSORS_W83627EHF_IN2, "in2", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(3), 3 },
W83627EHF_SYSCTL_IN2, VALUE(3), 3 },
{ { SENSORS_W83627EHF_IN3, "in3", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(3), 3 },
W83627EHF_SYSCTL_IN3, VALUE(3), 3 },
{ { SENSORS_W83627EHF_IN4, "in4", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(3), 3 },
W83627EHF_SYSCTL_IN4, VALUE(3), 3 },
{ { SENSORS_W83627EHF_IN5, "in5", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(3), 3 },
W83627EHF_SYSCTL_IN5, VALUE(3), 3 },
{ { SENSORS_W83627EHF_IN6, "in6", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(3), 3 },
W83627EHF_SYSCTL_IN6, VALUE(3), 3 },
{ { SENSORS_W83627EHF_IN7, "in7", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(3), 3 },
W83627EHF_SYSCTL_IN7, VALUE(3), 3 },
{ { SENSORS_W83627EHF_IN8, "in8", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(3), 3 },
W83627EHF_SYSCTL_IN8, VALUE(3), 3 },
{ { SENSORS_W83627EHF_IN9, "in9", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(3), 3 },
W83627EHF_SYSCTL_IN9, VALUE(3), 3 },
{ { SENSORS_W83627EHF_IN0_ALARM, "in0_alarm", SENSORS_W83627EHF_IN0, NOMAP,
R },
NOSYSCTL, VALUE(1), 0 },
@@ -2006,74 +2006,74 @@ static sensors_chip_feature w83627ehf_features[] =
NOSYSCTL, VALUE(1), 0 },
{ { SENSORS_W83627EHF_IN0_MIN, "in0_min", SENSORS_W83627EHF_IN0,
SENSORS_W83627EHF_IN0, RW },
NOSYSCTL, VALUE(1), 3 },
W83627EHF_SYSCTL_IN0, VALUE(1), 3 },
{ { SENSORS_W83627EHF_IN1_MIN, "in1_min", SENSORS_W83627EHF_IN1,
SENSORS_W83627EHF_IN1, RW },
NOSYSCTL, VALUE(1), 3 },
W83627EHF_SYSCTL_IN1, VALUE(1), 3 },
{ { SENSORS_W83627EHF_IN2_MIN, "in2_min", SENSORS_W83627EHF_IN2,
SENSORS_W83627EHF_IN2, RW },
NOSYSCTL, VALUE(1), 3 },
W83627EHF_SYSCTL_IN2, VALUE(1), 3 },
{ { SENSORS_W83627EHF_IN3_MIN, "in3_min", SENSORS_W83627EHF_IN3,
SENSORS_W83627EHF_IN3, RW },
NOSYSCTL, VALUE(1), 3 },
W83627EHF_SYSCTL_IN3, VALUE(1), 3 },
{ { SENSORS_W83627EHF_IN4_MIN, "in4_min", SENSORS_W83627EHF_IN4,
SENSORS_W83627EHF_IN4, RW },
NOSYSCTL, VALUE(1), 3 },
W83627EHF_SYSCTL_IN4, VALUE(1), 3 },
{ { SENSORS_W83627EHF_IN5_MIN, "in5_min", SENSORS_W83627EHF_IN5,
SENSORS_W83627EHF_IN5, RW },
NOSYSCTL, VALUE(1), 3 },
W83627EHF_SYSCTL_IN5, VALUE(1), 3 },
{ { SENSORS_W83627EHF_IN6_MIN, "in6_min", SENSORS_W83627EHF_IN6,
SENSORS_W83627EHF_IN6, RW },
NOSYSCTL, VALUE(1), 3 },
W83627EHF_SYSCTL_IN6, VALUE(1), 3 },
{ { SENSORS_W83627EHF_IN7_MIN, "in7_min", SENSORS_W83627EHF_IN7,
SENSORS_W83627EHF_IN7, RW },
NOSYSCTL, VALUE(1), 3 },
W83627EHF_SYSCTL_IN7, VALUE(1), 3 },
{ { SENSORS_W83627EHF_IN8_MIN, "in8_min", SENSORS_W83627EHF_IN8,
SENSORS_W83627EHF_IN8, RW },
NOSYSCTL, VALUE(1), 3 },
W83627EHF_SYSCTL_IN8, VALUE(1), 3 },
{ { SENSORS_W83627EHF_IN9_MIN, "in9_min", SENSORS_W83627EHF_IN9,
SENSORS_W83627EHF_IN9, RW },
NOSYSCTL, VALUE(1), 3 },
W83627EHF_SYSCTL_IN9, VALUE(1), 3 },
{ { SENSORS_W83627EHF_IN0_MAX, "in0_max", SENSORS_W83627EHF_IN0,
SENSORS_W83627EHF_IN0, RW },
NOSYSCTL, VALUE(2), 3 },
W83627EHF_SYSCTL_IN0, VALUE(2), 3 },
{ { SENSORS_W83627EHF_IN1_MAX, "in1_max", SENSORS_W83627EHF_IN1,
SENSORS_W83627EHF_IN1, RW },
NOSYSCTL, VALUE(2), 3 },
W83627EHF_SYSCTL_IN1, VALUE(2), 3 },
{ { SENSORS_W83627EHF_IN2_MAX, "in2_max", SENSORS_W83627EHF_IN2,
SENSORS_W83627EHF_IN2, RW },
NOSYSCTL, VALUE(2), 3 },
W83627EHF_SYSCTL_IN2, VALUE(2), 3 },
{ { SENSORS_W83627EHF_IN3_MAX, "in3_max", SENSORS_W83627EHF_IN3,
SENSORS_W83627EHF_IN3, RW },
NOSYSCTL, VALUE(2), 3 },
W83627EHF_SYSCTL_IN3, VALUE(2), 3 },
{ { SENSORS_W83627EHF_IN4_MAX, "in4_max", SENSORS_W83627EHF_IN4,
SENSORS_W83627EHF_IN4, RW },
NOSYSCTL, VALUE(2), 3 },
W83627EHF_SYSCTL_IN4, VALUE(2), 3 },
{ { SENSORS_W83627EHF_IN5_MAX, "in5_max", SENSORS_W83627EHF_IN5,
SENSORS_W83627EHF_IN5, RW },
NOSYSCTL, VALUE(2), 3 },
W83627EHF_SYSCTL_IN5, VALUE(2), 3 },
{ { SENSORS_W83627EHF_IN6_MAX, "in6_max", SENSORS_W83627EHF_IN6,
SENSORS_W83627EHF_IN6, RW },
NOSYSCTL, VALUE(2), 3 },
W83627EHF_SYSCTL_IN6, VALUE(2), 3 },
{ { SENSORS_W83627EHF_IN7_MAX, "in7_max", SENSORS_W83627EHF_IN7,
SENSORS_W83627EHF_IN7, RW },
NOSYSCTL, VALUE(2), 3 },
W83627EHF_SYSCTL_IN7, VALUE(2), 3 },
{ { SENSORS_W83627EHF_IN8_MAX, "in8_max", SENSORS_W83627EHF_IN8,
SENSORS_W83627EHF_IN8, RW },
NOSYSCTL, VALUE(2), 3 },
W83627EHF_SYSCTL_IN8, VALUE(2), 3 },
{ { SENSORS_W83627EHF_IN9_MAX, "in9_max", SENSORS_W83627EHF_IN9,
SENSORS_W83627EHF_IN9, RW },
NOSYSCTL, VALUE(2), 3 },
W83627EHF_SYSCTL_IN9, VALUE(2), 3 },
{ { SENSORS_W83627EHF_FAN1, "fan1", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(2), 0 },
W83627EHF_SYSCTL_FAN1, VALUE(2), 0 },
{ { SENSORS_W83627EHF_FAN2, "fan2", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(2), 0 },
W83627EHF_SYSCTL_FAN2, VALUE(2), 0 },
{ { SENSORS_W83627EHF_FAN3, "fan3", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(2), 0 },
W83627EHF_SYSCTL_FAN3, VALUE(2), 0 },
{ { SENSORS_W83627EHF_FAN4, "fan4", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(2), 0 },
W83627EHF_SYSCTL_FAN4, VALUE(2), 0 },
{ { SENSORS_W83627EHF_FAN5, "fan5", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(2), 0 },
W83627EHF_SYSCTL_FAN5, VALUE(2), 0 },
{ { SENSORS_W83627EHF_FAN1_ALARM, "fan1_alarm", SENSORS_W83627EHF_FAN1,
NOMAP, R },
NOSYSCTL, VALUE(1), 0 },
@@ -2091,35 +2091,35 @@ static sensors_chip_feature w83627ehf_features[] =
NOSYSCTL, VALUE(1), 0 },
{ { SENSORS_W83627EHF_FAN1_MIN, "fan1_min", SENSORS_W83627EHF_FAN1,
SENSORS_W83627EHF_FAN1, RW },
NOSYSCTL, VALUE(1), 0 },
W83627EHF_SYSCTL_FAN1, VALUE(1), 0 },
{ { SENSORS_W83627EHF_FAN2_MIN, "fan2_min", SENSORS_W83627EHF_FAN2,
SENSORS_W83627EHF_FAN2, RW },
NOSYSCTL, VALUE(1), 0 },
W83627EHF_SYSCTL_FAN2, VALUE(1), 0 },
{ { SENSORS_W83627EHF_FAN3_MIN, "fan3_min", SENSORS_W83627EHF_FAN3,
SENSORS_W83627EHF_FAN3, RW },
NOSYSCTL, VALUE(1), 0 },
W83627EHF_SYSCTL_FAN3, VALUE(1), 0 },
{ { SENSORS_W83627EHF_FAN4_MIN, "fan4_min", SENSORS_W83627EHF_FAN4,
SENSORS_W83627EHF_FAN4, RW },
NOSYSCTL, VALUE(1), 0 },
W83627EHF_SYSCTL_FAN4, VALUE(1), 0 },
{ { SENSORS_W83627EHF_FAN5_MIN, "fan5_min", SENSORS_W83627EHF_FAN5,
SENSORS_W83627EHF_FAN5, RW },
NOSYSCTL, VALUE(1), 0 },
W83627EHF_SYSCTL_FAN5, VALUE(1), 0 },
{ { SENSORS_W83627EHF_FAN1_DIV, "fan1_div", SENSORS_W83627EHF_FAN1, NOMAP, R },
NOSYSCTL, VALUE(1), 0 },
W83627EHF_SYSCTL_FAN_DIV, VALUE(1), 0 },
{ { SENSORS_W83627EHF_FAN2_DIV, "fan2_div", SENSORS_W83627EHF_FAN2, NOMAP, R },
NOSYSCTL, VALUE(2), 0 },
W83627EHF_SYSCTL_FAN_DIV, VALUE(2), 0 },
{ { SENSORS_W83627EHF_FAN3_DIV, "fan3_div", SENSORS_W83627EHF_FAN3, NOMAP, R },
NOSYSCTL, VALUE(3), 0 },
W83627EHF_SYSCTL_FAN_DIV, VALUE(3), 0 },
{ { SENSORS_W83627EHF_FAN4_DIV, "fan4_div", SENSORS_W83627EHF_FAN4, NOMAP, R },
NOSYSCTL, VALUE(4), 0 },
W83627EHF_SYSCTL_FAN_DIV, VALUE(4), 0 },
{ { SENSORS_W83627EHF_FAN5_DIV, "fan5_div", SENSORS_W83627EHF_FAN5, NOMAP, R },
NOSYSCTL, VALUE(5), 0 },
W83627EHF_SYSCTL_FAN_DIV, VALUE(5), 0 },
{ { SENSORS_W83627EHF_TEMP1, "temp1", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(3), 0 },
W83627EHF_SYSCTL_TEMP1, VALUE(3), 1 },
{ { SENSORS_W83627EHF_TEMP2, "temp2", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(3), 1 },
W83627EHF_SYSCTL_TEMP2, VALUE(3), 1 },
{ { SENSORS_W83627EHF_TEMP3, "temp3", NOMAP, NOMAP, R },
NOSYSCTL, VALUE(3), 1 },
W83627EHF_SYSCTL_TEMP3, VALUE(3), 1 },
{ { SENSORS_W83627EHF_TEMP1_ALARM, "temp1_alarm", SENSORS_W83627EHF_TEMP1,
NOMAP, R },
NOSYSCTL, VALUE(1), 0 },
@@ -2131,22 +2131,24 @@ static sensors_chip_feature w83627ehf_features[] =
NOSYSCTL, VALUE(1), 0 },
{ { SENSORS_W83627EHF_TEMP1_OVER, "temp1_over", SENSORS_W83627EHF_TEMP1,
SENSORS_W83627EHF_TEMP1, RW },
NOSYSCTL, VALUE(1), 0 },
W83627EHF_SYSCTL_TEMP1, VALUE(1), 1 },
{ { SENSORS_W83627EHF_TEMP2_OVER, "temp2_over", SENSORS_W83627EHF_TEMP2,
SENSORS_W83627EHF_TEMP2, RW },
NOSYSCTL, VALUE(1), 1 },
W83627EHF_SYSCTL_TEMP2, VALUE(1), 1 },
{ { SENSORS_W83627EHF_TEMP3_OVER, "temp3_over", SENSORS_W83627EHF_TEMP3,
SENSORS_W83627EHF_TEMP3, RW },
NOSYSCTL, VALUE(1), 1 },
W83627EHF_SYSCTL_TEMP3, VALUE(1), 1 },
{ { SENSORS_W83627EHF_TEMP1_HYST, "temp1_hyst", SENSORS_W83627EHF_TEMP1,
SENSORS_W83627EHF_TEMP1, RW },
NOSYSCTL, VALUE(2), 0 },
W83627EHF_SYSCTL_TEMP1, VALUE(2), 1 },
{ { SENSORS_W83627EHF_TEMP2_HYST, "temp2_hyst", SENSORS_W83627EHF_TEMP2,
SENSORS_W83627EHF_TEMP2, RW },
NOSYSCTL, VALUE(2), 1 },
W83627EHF_SYSCTL_TEMP2, VALUE(2), 1 },
{ { SENSORS_W83627EHF_TEMP3_HYST, "temp3_hyst", SENSORS_W83627EHF_TEMP3,
SENSORS_W83627EHF_TEMP3, RW },
NOSYSCTL, VALUE(2), 1 },
W83627EHF_SYSCTL_TEMP3, VALUE(2), 1 },
{ { SENSORS_W83627EHF_ALARMS, "alarms", NOMAP, NOMAP, R },
W83627EHF_SYSCTL_ALARMS, VALUE(1), 0 },
{ { 0 }, 0 }
};
+1
View File
@@ -971,6 +971,7 @@
#define SENSORS_W83627EHF_TEMP1_HYST 81 /* RW */
#define SENSORS_W83627EHF_TEMP2_HYST 82 /* RW */
#define SENSORS_W83627EHF_TEMP3_HYST 83 /* RW */
#define SENSORS_W83627EHF_ALARMS 250 /* R */
/* Analog Devices ADM9240 chips */
+54 -6
View File
@@ -2897,20 +2897,66 @@ void print_w83627ehf(const sensors_chip_name *name)
char *label;
int i, valid, num_in;
double cur, min, fdiv, max, alarm, over, hyst;
unsigned int in_alarms = 0, fan_alarms = 0, temp_alarms = 0;
if (!strcmp(name->prefix, "w83627dhg"))
num_in = 9;
else
num_in = 10;
/* For the 2.4 kernel driver, alarms are a bit harder to handle */
if (!sensors_get_feature(*name, SENSORS_W83627EHF_ALARMS, &cur)) {
unsigned long alarms = cur + 0.5;
if (alarms & W83627EHF_ALARM_IN0)
in_alarms |= (1 << 0);
if (alarms & W83627EHF_ALARM_IN1)
in_alarms |= (1 << 1);
if (alarms & W83627EHF_ALARM_IN2)
in_alarms |= (1 << 2);
if (alarms & W83627EHF_ALARM_IN3)
in_alarms |= (1 << 3);
if (alarms & W83627EHF_ALARM_IN4)
in_alarms |= (1 << 4);
if (alarms & W83627EHF_ALARM_IN5)
in_alarms |= (1 << 5);
if (alarms & W83627EHF_ALARM_IN6)
in_alarms |= (1 << 6);
if (alarms & W83627EHF_ALARM_IN7)
in_alarms |= (1 << 7);
if (alarms & W83627EHF_ALARM_IN8)
in_alarms |= (1 << 8);
if (num_in >= 10 && (alarms & W83627EHF_ALARM_IN9))
in_alarms |= (1 << 9);
if (alarms & W83627EHF_ALARM_FAN1)
fan_alarms |= (1 << 0);
if (alarms & W83627EHF_ALARM_FAN2)
fan_alarms |= (1 << 1);
if (alarms & W83627EHF_ALARM_FAN3)
fan_alarms |= (1 << 2);
if (alarms & W83627EHF_ALARM_FAN4)
fan_alarms |= (1 << 3);
if (alarms & W83627EHF_ALARM_FAN5)
fan_alarms |= (1 << 4);
if (alarms & W83627EHF_ALARM_TEMP1)
temp_alarms |= (1 << 0);
if (alarms & W83627EHF_ALARM_TEMP2)
temp_alarms |= (1 << 1);
if (alarms & W83627EHF_ALARM_TEMP3)
temp_alarms |= (1 << 2);
}
for (i = 0; i < num_in; i++) {
if (!sensors_get_label_and_valid(*name,SENSORS_W83627EHF_IN0+i,
&label,&valid)
&& !sensors_get_feature(*name,SENSORS_W83627EHF_IN0+i,&cur)
&& !sensors_get_feature(*name,SENSORS_W83627EHF_IN0_MIN+i,&min)
&& !sensors_get_feature(*name,SENSORS_W83627EHF_IN0_MAX+i,&max)
&& !sensors_get_feature(*name,SENSORS_W83627EHF_IN0_ALARM+i,&alarm)) {
&& !sensors_get_feature(*name,SENSORS_W83627EHF_IN0_MAX+i,&max)) {
if (valid) {
if (sensors_get_feature(*name, SENSORS_W83627EHF_IN0_ALARM+i, &alarm))
alarm = in_alarms & (1 << i);
print_label(label,10);
printf("%+6.2f V (min = %+6.2f V, max = %+6.2f V) %s\n",
cur,min,max,alarm ? "ALARM" : "");
@@ -2932,8 +2978,9 @@ void print_w83627ehf(const sensors_chip_name *name)
if (!sensors_get_feature(*name, SENSORS_W83627EHF_FAN1_DIV+i, &fdiv))
printf(", div = %1.0f", fdiv);
printf(")");
if (!sensors_get_feature(*name, SENSORS_W83627EHF_FAN1_ALARM+i,
&alarm) && alarm)
if (sensors_get_feature(*name, SENSORS_W83627EHF_FAN1_ALARM+i, &alarm))
alarm = fan_alarms & (1 << i);
if (alarm)
printf(" ALARM");
printf("\n");
}
@@ -2951,8 +2998,9 @@ void print_w83627ehf(const sensors_chip_name *name)
if (valid) {
print_label(label,10);
print_temp_info(cur, over, hyst, HYST, i ? 1 : 0, i ? 1 : 0);
if (!sensors_get_feature(*name, SENSORS_W83627EHF_TEMP1_ALARM+i,
&alarm) && alarm)
if (sensors_get_feature(*name, SENSORS_W83627EHF_TEMP1_ALARM+i, &alarm))
alarm = temp_alarms & (1 << i);
if (alarm)
printf(" ALARM");
printf("\n");
}