mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-11-03 13:38:25 +00:00
(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:
1 parent
a1e9951ac6
commit
66113bdcd3
5 files changed
+80
-38
No files matched your search
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user