(mds) Add support for w83627hf to 'sensors' program.

Assumed at this time to be identical to w83782d.
      No 627hf datasheet yet.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@526 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Mark D. Studebaker committed 1999-08-15 21:34:21 +00:00
1 parent 8da1cf8c4f
commit 9e81117fbf
7 files changed
+24 -11

No files matched your search

+1
View File
@@ -57,6 +57,7 @@ w83781d
w83781d 3 7 3 - yes yes
w83782d 3 9 3 2-4 pwm yes yes
w83783s 1-2 5-6 3 2 pwm yes no
w83627hf 3 9 3 2-4 pwm yes yes (LPC)
+11 -5
View File
@@ -12,10 +12,14 @@ Supported chips:
* Winbond W83782D
Prefix 'w83782d'
Addresses scanned: I2C 0x20 - 0x2f (inclusive), ISA 0x290 (8 I/O ports)
Datasheet: Available on request from Winbond
Datasheet: Publicly available at the Winbond website
* Winbond W83783S
Prefix 'w83783s'
Addresses scanned: I2C 0x20 - 0x2f (inclusive)
Datasheet: Publicly available at the Winbond website
* Winbond W83627HF
Prefix 'w83627hf'
Addresses scanned: I2C 0x20 - 0x2f (inclusive), ISA 0x290 (8 I/O ports)
Datasheet: Available on request from Winbond
@@ -50,11 +54,13 @@ Module Parameters
Description
-----------
This driver implements support for the Winbond W83781D, W83782D and W83783S.
This driver implements support for the Winbond W83781D, W83782D,
W8783S, and W83627HF chips.
We will refer to them collectively as W8378* chips.
There is quite some difference between these chips, but they are similar
enough that it was sensible to put them together in one driver.
The W83627HF chip is assumed to be identical to the W83782D.
Detection of these chips can sometimes be foiled because they can be in
an internal state that allows no clean access. If you know the address
@@ -70,12 +76,12 @@ Temperatures are measured in degrees Celcius. There is always one main
temperature sensor, and one (W83783S) or two (W83781D and W83782D) other
sensors. An alarm is triggered for the main sensor once when the
Overtemperature Shutdown limit is crossed; it is triggered again as soon as
it drops below the Hysteris value. A more useful behaviour
can be found by setting the Hysteris value to +127 degrees Celcius; in
it drops below the Hysteresis value. A more useful behaviour
can be found by setting the Hysteresis value to +127 degrees Celcius; in
this case, alarms are issued during all the time when the actual temperature
is above the Overtemperature Shutdown value. For the other sensor(s), an
alarm is triggered when the temperature gets higher then the Overtemperature
Shutdown value; it stays on until the temperature falls below the Hysteris
Shutdown value; it stays on until the temperature falls below the Hysteresis
value. But on the W83781D, there is only one alarm that functions for both
other sensors! Temperatures are guaranteed within a range of -55 to +125
degrees. The main temperature sensors has a resolution of 1 degree; the other
+1 -1
View File
@@ -196,7 +196,7 @@ chip "lm78-*" "lm78-j-*" "lm79-*" "w83781d-*" "sis5595-*"
set in6_max -5 * 1.05
chip "w83782d-*" "w83783s-*"
chip "w83782d-*" "w83783s-*" "w83627hf-*"
# Same as above for w83781d except that in5 and in6 are computed differently.
# Rather than an internal inverting op amp, the 82d/83s use standard positive
+2
View File
@@ -1534,6 +1534,8 @@ sensors_chip_features sensors_chip_features_list[] =
{ SENSORS_W83781D_PREFIX, w83781d_features },
{ SENSORS_W83782D_PREFIX, w83782d_features },
{ SENSORS_W83783S_PREFIX, w83783s_features },
/* Cheat on 627HF for now - no separate #defines */
{ SENSORS_W83627HF_PREFIX, w83782d_features },
{ SENSORS_ADM9240_PREFIX, adm9240_features },
{ SENSORS_DS1780_PREFIX, ds1780_features },
{ SENSORS_ADM1021_PREFIX, adm1021_features },
+2
View File
@@ -365,8 +365,10 @@
/* Winbond W83782D chips */
/* Cheat on 627HF for now - no separate #defines */
#define SENSORS_W83782D_PREFIX "w83782d"
#define SENSORS_W83627HF_PREFIX "w83627hf"
#define SENSORS_W83782D_IN0 1 /* R */
#define SENSORS_W83782D_IN1 2 /* R */
+5 -4
View File
@@ -810,7 +810,8 @@ void print_w83781d(const sensors_chip_name *name)
int alarms,beeps;
int is82d, is83s;
is82d = !strcmp(name->prefix,"w83782d");
is82d = (!strcmp(name->prefix,"w83782d")) ||
(!strcmp(name->prefix,"w83627hf"));
is83s = !strcmp(name->prefix,"w83782s");
if (!sensors_get_feature(*name,SENSORS_W83781D_ALARMS,&cur))
alarms = cur + 0.5;
@@ -979,7 +980,7 @@ void print_w83781d(const sensors_chip_name *name)
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",
"%+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",
@@ -1006,7 +1007,7 @@ void print_w83781d(const sensors_chip_name *name)
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",
"%+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",
@@ -1034,7 +1035,7 @@ void print_w83781d(const sensors_chip_name *name)
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",
"%+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",
+2 -1
View File
@@ -265,7 +265,8 @@ void do_a_print(sensors_chip_name name)
print_gl518(&name);
else if ((!strcmp(name.prefix,"w83781d")) ||
(!strcmp(name.prefix,"w83782d")) ||
(!strcmp(name.prefix,"w83783s")))
(!strcmp(name.prefix,"w83783s")) ||
(!strcmp(name.prefix,"w83627hf")))
print_w83781d(&name);
else if (!strcmp(name.prefix,"maxilife-cg") ||
!strcmp(name.prefix,"maxilife-co") ||