|
@@ -28,7 +28,6 @@
|
|
as99127f 7 3 0 3 0x31 0x12c3 yes no
|
|
as99127f 7 3 0 3 0x31 0x12c3 yes no
|
|
as99127f rev.2 (type_name = as99127f) 0x31 0x5ca3 yes no
|
|
as99127f rev.2 (type_name = as99127f) 0x31 0x5ca3 yes no
|
|
w83781d 7 3 0 3 0x10-1 0x5ca3 yes yes
|
|
w83781d 7 3 0 3 0x10-1 0x5ca3 yes yes
|
|
- w83627hf 9 3 2 3 0x21 0x5ca3 yes yes(LPC)
|
|
|
|
w83782d 9 3 2-4 3 0x30 0x5ca3 yes yes
|
|
w83782d 9 3 2-4 3 0x30 0x5ca3 yes yes
|
|
w83783s 5-6 3 2 1-2 0x40 0x5ca3 yes no
|
|
w83783s 5-6 3 2 1-2 0x40 0x5ca3 yes no
|
|
|
|
|
|
@@ -59,7 +58,7 @@ static unsigned short normal_i2c[] = { 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d,
|
|
static unsigned short isa_address = 0x290;
|
|
static unsigned short isa_address = 0x290;
|
|
|
|
|
|
/* Insmod parameters */
|
|
/* Insmod parameters */
|
|
-I2C_CLIENT_INSMOD_5(w83781d, w83782d, w83783s, w83627hf, as99127f);
|
|
|
|
|
|
+I2C_CLIENT_INSMOD_4(w83781d, w83782d, w83783s, as99127f);
|
|
I2C_CLIENT_MODULE_PARM(force_subclients, "List of subclient addresses: "
|
|
I2C_CLIENT_MODULE_PARM(force_subclients, "List of subclient addresses: "
|
|
"{bus, clientaddr, subclientaddr1, subclientaddr2}");
|
|
"{bus, clientaddr, subclientaddr1, subclientaddr2}");
|
|
|
|
|
|
@@ -113,7 +112,7 @@ MODULE_PARM_DESC(init, "Set to zero to bypass chip initialization");
|
|
#define W83781D_REG_ALARM1 0x41
|
|
#define W83781D_REG_ALARM1 0x41
|
|
#define W83781D_REG_ALARM2 0x42
|
|
#define W83781D_REG_ALARM2 0x42
|
|
|
|
|
|
-/* Real-time status (W83782D, W83783S, W83627HF) */
|
|
|
|
|
|
+/* Real-time status (W83782D, W83783S) */
|
|
#define W83782D_REG_ALARM1 0x459
|
|
#define W83782D_REG_ALARM1 0x459
|
|
#define W83782D_REG_ALARM2 0x45A
|
|
#define W83782D_REG_ALARM2 0x45A
|
|
#define W83782D_REG_ALARM3 0x45B
|
|
#define W83782D_REG_ALARM3 0x45B
|
|
@@ -962,8 +961,6 @@ w83781d_detect_subclients(struct i2c_adapter *adapter, int address, int kind,
|
|
client_name = "w83782d subclient";
|
|
client_name = "w83782d subclient";
|
|
else if (kind == w83783s)
|
|
else if (kind == w83783s)
|
|
client_name = "w83783s subclient";
|
|
client_name = "w83783s subclient";
|
|
- else if (kind == w83627hf)
|
|
|
|
- client_name = "w83627hf subclient";
|
|
|
|
else if (kind == as99127f)
|
|
else if (kind == as99127f)
|
|
client_name = "as99127f subclient";
|
|
client_name = "as99127f subclient";
|
|
|
|
|
|
@@ -1267,8 +1264,6 @@ w83781d_detect(struct i2c_adapter *adapter, int address, int kind)
|
|
kind = w83782d;
|
|
kind = w83782d;
|
|
else if (val1 == 0x40 && vendid == winbond && address == 0x2d)
|
|
else if (val1 == 0x40 && vendid == winbond && address == 0x2d)
|
|
kind = w83783s;
|
|
kind = w83783s;
|
|
- else if (val1 == 0x21 && vendid == winbond)
|
|
|
|
- kind = w83627hf;
|
|
|
|
else if (val1 == 0x31)
|
|
else if (val1 == 0x31)
|
|
kind = as99127f;
|
|
kind = as99127f;
|
|
else {
|
|
else {
|
|
@@ -1287,8 +1282,6 @@ w83781d_detect(struct i2c_adapter *adapter, int address, int kind)
|
|
client_name = "w83782d";
|
|
client_name = "w83782d";
|
|
} else if (kind == w83783s) {
|
|
} else if (kind == w83783s) {
|
|
client_name = "w83783s";
|
|
client_name = "w83783s";
|
|
- } else if (kind == w83627hf) {
|
|
|
|
- client_name = "w83627hf";
|
|
|
|
} else if (kind == as99127f) {
|
|
} else if (kind == as99127f) {
|
|
client_name = "as99127f";
|
|
client_name = "as99127f";
|
|
}
|
|
}
|
|
@@ -1395,10 +1388,6 @@ w83781d_isa_probe(struct platform_device *pdev)
|
|
|
|
|
|
reg = w83781d_read_value(data, W83781D_REG_WCHIPID);
|
|
reg = w83781d_read_value(data, W83781D_REG_WCHIPID);
|
|
switch (reg) {
|
|
switch (reg) {
|
|
- case 0x21:
|
|
|
|
- data->type = w83627hf;
|
|
|
|
- name = "w83627hf";
|
|
|
|
- break;
|
|
|
|
case 0x30:
|
|
case 0x30:
|
|
data->type = w83782d;
|
|
data->type = w83782d;
|
|
name = "w83782d";
|
|
name = "w83782d";
|
|
@@ -1598,11 +1587,6 @@ w83781d_init_device(struct device *dev)
|
|
int type = data->type;
|
|
int type = data->type;
|
|
u8 tmp;
|
|
u8 tmp;
|
|
|
|
|
|
- if (type == w83627hf)
|
|
|
|
- dev_info(dev, "The W83627HF chip is better supported by the "
|
|
|
|
- "w83627hf driver, support will be dropped from the "
|
|
|
|
- "w83781d driver soon\n");
|
|
|
|
-
|
|
|
|
if (reset && type != as99127f) { /* this resets registers we don't have
|
|
if (reset && type != as99127f) { /* this resets registers we don't have
|
|
documentation for on the as99127f */
|
|
documentation for on the as99127f */
|
|
/* Resetting the chip has been the default for a long time,
|
|
/* Resetting the chip has been the default for a long time,
|
|
@@ -1716,8 +1700,7 @@ static struct w83781d_data *w83781d_update_device(struct device *dev)
|
|
w83781d_read_value(data, W83781D_REG_IN_MIN(i));
|
|
w83781d_read_value(data, W83781D_REG_IN_MIN(i));
|
|
data->in_max[i] =
|
|
data->in_max[i] =
|
|
w83781d_read_value(data, W83781D_REG_IN_MAX(i));
|
|
w83781d_read_value(data, W83781D_REG_IN_MAX(i));
|
|
- if ((data->type != w83782d)
|
|
|
|
- && (data->type != w83627hf) && (i == 6))
|
|
|
|
|
|
+ if ((data->type != w83782d) && (i == 6))
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
for (i = 0; i < 3; i++) {
|
|
for (i = 0; i < 3; i++) {
|
|
@@ -1775,7 +1758,7 @@ static struct w83781d_data *w83781d_update_device(struct device *dev)
|
|
data->fan_div[1] |= (i >> 4) & 0x04;
|
|
data->fan_div[1] |= (i >> 4) & 0x04;
|
|
data->fan_div[2] |= (i >> 5) & 0x04;
|
|
data->fan_div[2] |= (i >> 5) & 0x04;
|
|
}
|
|
}
|
|
- if ((data->type == w83782d) || (data->type == w83627hf)) {
|
|
|
|
|
|
+ if (data->type == w83782d) {
|
|
data->alarms = w83781d_read_value(data,
|
|
data->alarms = w83781d_read_value(data,
|
|
W83782D_REG_ALARM1)
|
|
W83782D_REG_ALARM1)
|
|
| (w83781d_read_value(data,
|
|
| (w83781d_read_value(data,
|
|
@@ -1885,13 +1868,11 @@ w83781d_isa_found(unsigned short address)
|
|
outb_p(W83781D_REG_WCHIPID, address + W83781D_ADDR_REG_OFFSET);
|
|
outb_p(W83781D_REG_WCHIPID, address + W83781D_ADDR_REG_OFFSET);
|
|
val = inb_p(address + W83781D_DATA_REG_OFFSET);
|
|
val = inb_p(address + W83781D_DATA_REG_OFFSET);
|
|
if ((val & 0xfe) == 0x10 /* W83781D */
|
|
if ((val & 0xfe) == 0x10 /* W83781D */
|
|
- || val == 0x30 /* W83782D */
|
|
|
|
- || val == 0x21) /* W83627HF */
|
|
|
|
|
|
+ || val == 0x30) /* W83782D */
|
|
found = 1;
|
|
found = 1;
|
|
|
|
|
|
if (found)
|
|
if (found)
|
|
pr_info("w83781d: Found a %s chip at %#x\n",
|
|
pr_info("w83781d: Found a %s chip at %#x\n",
|
|
- val == 0x21 ? "W83627HF" :
|
|
|
|
val == 0x30 ? "W83782D" : "W83781D", (int)address);
|
|
val == 0x30 ? "W83782D" : "W83781D", (int)address);
|
|
|
|
|
|
release:
|
|
release:
|