(mds) For as99127f, remove in7-8, sensor1-3, pwm3-4

git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@807 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Mark D. Studebaker committed 2000-05-13 17:31:11 +00:00
1 parent a1e9951ac6
commit 66113bdcd3
5 files changed
+80 -38

No files matched your search

+10 -1
View File
@@ -14,15 +14,24 @@ ask CVS about it:
cvs diff -r V2-0-0 -r V2-0-1 -u
2.5.1 (2000????)
Library: Add adm1025 support
Module adm1025: new
Module ddcmon: Fixed bus scan which could hang SMBus
Module maxilife: Add support for Maxilife '99 (NBA)
Module via686a: Enable sensors if not enabled by BIOS
Module w83781d: Improve w83783s support, w83627hf always has 2 pwm
Module w83781d: Fix sensor2&3 selection, enable VBAT (in8) monitoring
Module w83781d: Remove as99127f entries for in7-8, pwm3-4, sensor1-3
Module w83781d: Improve beep input checking
Program i2cdump: Add Winbond-style bank selection
Program isadump: Add Winbond-style bank selection
Program sensors-detect: Fix i801 detection
Program sensors: Add adm1025 support.
Program sensors: Remove some as99127f entries, fix as99127 "(beep)"
Program sensors-detect: Fix i801 detection, add adm1025 driver entry
File sensors.conf.eg: Add Maxilife '99 entries
File sensors.conf.eg: Remove some as99127f entries.
Note: For as99127f, reinstall sensors.conf.eg manually (make install
won't reinstall it) or else 'sensors -s' will fail.
2.5.0 (20000312)
Dropped all kernel 2.0 and 2.1 compatibility
+1 -1
View File
@@ -95,7 +95,7 @@ via686a
via686a 3 5 2 - no yes
w83781d
as99127f 3 9 3 2-4 pwm yes no
as99127f 3 7 3 2 pwm? yes no
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
+7 -2
View File
@@ -147,7 +147,7 @@ will do no harm, but will return 'old' values.
AS99127F PROBLEMS
-----------------
The as99127f support was developed without the benefit of a datasheet.
In most cases it is treated as a w83782d.
In most cases it is treated as a w83781d.
This support is BETA. One user has reported problems with fans stopping.
Known problems:
@@ -160,6 +160,10 @@ Known problems:
These will not be fixed unless we get a datasheet.
If you have problems, please lobby Asus to release a datasheet.
Note that the individual beep bits are inverted from the other chips.
That is, in the second entry in the 'beep' file, a '1' bit means
disable, not enable.
Chip Features
-------------
@@ -562,7 +566,8 @@ register in Bank0.CR51 of W83781D.
diode 1 1 1
CR[59h] bit 4(VTIN1) bit 2(VTIN2) bit 3(VTIN3)
(error) CR[59h] bit 4(VTIN1) bit 2(VTIN2) bit 3(VTIN3)
(right) CR[59h] bit 4(VTIN1) bit 5(VTIN2) bit 6(VTIN3)
PII thermal diode 1 1 1
2N3904 diode 0 0 0
-15
View File
@@ -265,14 +265,11 @@ chip "as99127f-*"
label in4 "+12V"
label in5 "-12V"
label in6 "-5V"
label in7 "V5SB"
label in8 "VBat"
compute in3 ((6.8/10)+1)*@ , @/((6.8/10)+1)
compute in4 ((28/10)+1)*@ , @/((28/10)+1)
compute in5 -(210/60.4)*@ , -@/(210/60.4)
compute in6 -(90.9/60.4)*@ , -@/(90.9/60.4)
compute in7 ((6.8/10)+1)*@ , @/((6.8/10)+1)
# set limits to 5% for the critical voltages
# set limits to 10% for the non-critical voltages
@@ -292,18 +289,6 @@ chip "as99127f-*"
set in5_max -12 * 1.10
set in6_min -5 * 0.95
set in6_max -5 * 1.05
set in7_min 5 * 0.95
set in7_max 5 * 1.05
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-*"
+62 -19
View File
@@ -24,7 +24,7 @@
Supports following chips:
Chip #vin #fanin #pwm #temp wchipid vendid i2c ISA
as99127f 9 3 2-4 3 0x20 0x12c3 yes no
as99127f 7 3 1? 3 0x20 0x12c3 yes no
w83781d 7 3 0 3 0x10 0x5ca3 yes yes
w83627hf 9 3 2 3 0x20 0x5ca3 yes yes(LPC)
w83782d 9 3 2-4 3 0x30 0x5ca3 yes yes
@@ -190,7 +190,7 @@ extern inline u8 FAN_TO_REG(long rpm, int div)
#define BEEPS_FROM_REG(val) (val)
#define BEEPS_TO_REG(val) ((val) & 0xffffff)
#define BEEP_ENABLE_TO_REG(val) (val)
#define BEEP_ENABLE_TO_REG(val) ((val)?1:0)
#define BEEP_ENABLE_FROM_REG(val) ((val)?1:0)
#define DIV_FROM_REG(val) (1 << (val))
@@ -436,11 +436,55 @@ static struct i2c_driver w83781d_driver = {
static int __initdata w83781d_initialized = 0;
/* The /proc/sys entries */
/* These files are created for each detected W83781D. This is just a template;
/* These files are created for each detected chip. This is just a template;
though at first sight, you might think we could use a statically
allocated list, we need some way to get back to the parent - which
is done through one of the 'extra' fields which are initialized
when a new copy is allocated. */
/* just a guess - no datasheet */
static ctl_table as99127f_dir_table_template[] = {
{W83781D_SYSCTL_IN0, "in0", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_in},
{W83781D_SYSCTL_IN1, "in1", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_in},
{W83781D_SYSCTL_IN2, "in2", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_in},
{W83781D_SYSCTL_IN3, "in3", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_in},
{W83781D_SYSCTL_IN4, "in4", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_in},
{W83781D_SYSCTL_IN5, "in5", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_in},
{W83781D_SYSCTL_IN6, "in6", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_in},
{W83781D_SYSCTL_FAN1, "fan1", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_fan},
{W83781D_SYSCTL_FAN2, "fan2", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_fan},
{W83781D_SYSCTL_FAN3, "fan3", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_fan},
{W83781D_SYSCTL_TEMP1, "temp1", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_temp},
{W83781D_SYSCTL_TEMP2, "temp2", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_temp_add},
{W83781D_SYSCTL_TEMP3, "temp3", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_temp_add},
{W83781D_SYSCTL_VID, "vid", NULL, 0, 0444, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_vid},
{W83781D_SYSCTL_FAN_DIV, "fan_div", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_fan_div},
{W83781D_SYSCTL_ALARMS, "alarms", NULL, 0, 0444, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_alarms},
{W83781D_SYSCTL_BEEP, "beep", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_beep},
{W83781D_SYSCTL_PWM1, "pwm1", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_pwm},
{W83781D_SYSCTL_PWM2, "pwm2", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_pwm},
{0}
};
static ctl_table w83781d_dir_table_template[] = {
{W83781D_SYSCTL_IN0, "in0", NULL, 0, 0644, NULL, &sensors_proc_real,
&sensors_sysctl_real, NULL, &w83781d_in},
@@ -869,6 +913,8 @@ int w83781d_detect(struct i2c_adapter *adapter, int address,
/* Register a new directory entry with module sensors */
if ((i = sensors_register_entry(new_client,
type_name,
kind == as99127f ?
as99127f_dir_table_template :
kind == w83781d ?
w83781d_dir_table_template :
kind == w83783s ?
@@ -1149,7 +1195,7 @@ void w83781d_init_client(struct i2c_client *client)
(w83781d_read_value(client, W83781D_REG_CHIPID) & 0x01) << 4;
vid = VID_FROM_REG(vid);
if (type != w83781d) {
if ((type != w83781d) && (type != as99127f)) {
tmp = w83781d_read_value(client, W83781D_REG_SCFG1);
for (i = 1; i <= 3; i++) {
if (!(tmp & BIT_SCFG1[i - 1])) {
@@ -1240,7 +1286,7 @@ void w83781d_init_client(struct i2c_client *client)
w83781d_write_value(client, W83781D_REG_IN_MAX(6),
IN_TO_REG(W83782D_INIT_IN_MAX_6));
}
if ((type == w83782d) || (type == w83627hf) || (type == as99127f)) {
if ((type == w83782d) || (type == w83627hf)) {
w83781d_write_value(client, W83781D_REG_IN_MIN(7),
IN_TO_REG(W83781D_INIT_IN_MIN_7));
w83781d_write_value(client, W83781D_REG_IN_MAX(7),
@@ -1338,8 +1384,7 @@ void w83781d_update_client(struct i2c_client *client)
w83781d_read_value(client,
W83781D_REG_IN_MAX(i));
if ((data->type != w83782d)
&& (data->type != w83627hf)
&& (data->type != as99127f) && (i == 6))
&& (data->type != w83627hf) && (i == 6))
break;
}
for (i = 1; i <= 3; i++) {
@@ -1356,8 +1401,8 @@ void w83781d_update_client(struct i2c_client *client)
W83781D_REG_PWM(i));
if (((data->type == w83783s)
|| (data->type == w83627hf)
|| (((data->type == w83782d)
|| (data->type == as99127f))
|| (data->type == as99127f)
|| ((data->type == w83782d)
&& i2c_is_isa_client(client)))
&& i == 2)
break;
@@ -1403,8 +1448,7 @@ void w83781d_update_client(struct i2c_client *client)
w83781d_read_value(client,
W83781D_REG_ALARM1) +
(w83781d_read_value(client, W83781D_REG_ALARM2) << 8);
if ((data->type == w83782d) || (data->type == w83627hf)
|| data->type == as99127f) {
if ((data->type == w83782d) || (data->type == w83627hf)) {
data->alarms |=
w83781d_read_value(client,
W83781D_REG_ALARM3) << 16;
@@ -1413,11 +1457,10 @@ void w83781d_update_client(struct i2c_client *client)
data->beep_enable = i >> 7;
data->beeps = ((i & 0x7f) << 8) +
w83781d_read_value(client, W83781D_REG_BEEP_INTS1);
if (data->type != w83781d) {
if ((data->type != w83781d) && (data->type != as99127f)) {
data->beeps |=
w83781d_read_value(client,
W83781D_REG_BEEP_INTS3) <<
16;
W83781D_REG_BEEP_INTS3) << 16;
}
data->last_updated = jiffies;
data->valid = 1;
@@ -1625,14 +1668,14 @@ void w83781d_beep(struct i2c_client *client, int operation, int ctl_name,
data->beeps = BEEPS_TO_REG(results[1]);
w83781d_write_value(client, W83781D_REG_BEEP_INTS1,
data->beeps & 0xff);
if (data->type != w83781d) {
if ((data->type != w83781d) &&
(data->type != as99127f)) {
w83781d_write_value(client,
W83781D_REG_BEEP_INTS3,
((data->
beeps) >> 16) &
0xff);
((data-> beeps) >> 16) &
0xff);
}
val = data->beeps >> 8;
val = (data->beeps >> 8) & 0x7f;
} else if (*nrels_mag >= 1)
val =
w83781d_read_value(client,