* * * * *
Add experimental support for the it8603e chip (Asus f2a85-m motherboard)
Write only tested for pwmN and pwmN_enable.
Read tested, but the following appear broken:
alarms
fanN_alarm
inN_alarm
inN_max
inN_min
intrusionN_alarm
pwmN_auto_channels_temp
pwmN_freq
temp3_input (there is no 3rd analog temp input to the chip)
Signed-off-by: David Hubbard <david.c.hubbard@xxxxxxxxx>
--- a/drivers/hwmon/it87.c 2012-12-10 02:51:13.680000001 -0700
+++ b/drivers/hwmon/it87.c 2012-12-13 08:42:54.195515406 -0700
@@ -21,10 +21,12 @@
* IT8758E Super I/O chip w/LPC interface
* IT8782F Super I/O chip w/LPC interface
* IT8783E/F Super I/O chip w/LPC interface
+ * IT8603E Super I/O chip w/LPC interface
* Sis950 A clone of the IT8705F
*
* Copyright (C) 2001 Chris Gauthron
* Copyright (C) 2005-2010 Jean Delvare <khali@xxxxxxxxxxxx>
+ * Copyright (C) 2012 David Hubbard <david.c.hubbard@xxxxxxxxx>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -62,7 +64,7 @@
#define DRVNAME "it87"
enum chips { it87, it8712, it8716, it8718, it8720, it8721, it8728, it8782,
- it8783 };
+ it8783, it8603 };
static unsigned short force_id;
module_param(force_id, ushort, 0);
@@ -142,6 +144,7 @@
#define IT8728F_DEVID 0x8728
#define IT8782F_DEVID 0x8782
#define IT8783E_DEVID 0x8783
+#define IT8603E_DEVID 0x8603
#define IT87_ACT_REG 0x30
#define IT87_BASE_REG 0x60
@@ -303,7 +306,8 @@
* on selected inputs.
*/
return data->type == it8721
- || data->type == it8728;
+ || data->type == it8728
+ || data->type == it8603;
}
static inline int has_newer_autopwm(const struct it87_data *data)
@@ -313,7 +317,8 @@
* mapping and the manual duty cycle.
*/
return data->type == it8721
- || data->type == it8728;
+ || data->type == it8728
+ || data->type == it8603;
}
static int adc_lsb(const struct it87_data *data, int nr)
@@ -413,7 +418,8 @@
|| data->type == it8721
|| data->type == it8728
|| data->type == it8782
- || data->type == it8783;
+ || data->type == it8783
+ || data->type == it8603;
}
static inline int has_old_autopwm(const struct it87_data *data)
@@ -1707,6 +1713,9 @@
case IT8783E_DEVID:
sio_data->type = it8783;
break;
+ case IT8603E_DEVID:
+ sio_data->type = it8603;
+ break;
case 0xffff: /* No device at all */
goto exit;
default:
@@ -1728,8 +1737,8 @@
err = 0;
sio_data->revision = superio_inb(DEVREV) & 0x0f;
- pr_info("Found IT%04xF chip at 0x%x, revision %d\n",
- chip_type, *address, sio_data->revision);
+ pr_info("Found IT%04x%c chip at 0x%x, revision %d\n",
+ chip_type, (chip_type == 0x8603) ? 'E' : 'F', *address, sio_data->revision);
/* in8 (Vbat) is always internal */
sio_data->internal = (1 << 2);
@@ -1986,6 +1995,7 @@
"it8728",
"it8782",
"it8783",
+ "it8603",
};
res = platform_get_resource(pdev, IORESOURCE_IO, 0);
_______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors