aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuenter Roeck <linux@roeck-us.net>2015-03-26 02:26:28 -0400
committerGuenter Roeck <linux@roeck-us.net>2015-04-05 09:00:59 -0400
commit4ee07157d690b1b824328a473816a371130de6f2 (patch)
tree7b8e1ca9bc4a357dfa5f783b48cbd453eb316e1e
parent7f5726c39ad469447545233f41a13d202a233d6b (diff)
hwmon: (it87) Add support for IT8790E
IT8790E is a super-IO chip with three fan tachometers. It is mostly compatible to IT8728F, but only supports three fan tachometers instead of five. Reviewed-by: Jean Delvare <jdelvare@suse.de> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
-rw-r--r--Documentation/hwmon/it8713
-rw-r--r--drivers/hwmon/Kconfig4
-rw-r--r--drivers/hwmon/it87.c14
3 files changed, 25 insertions, 6 deletions
diff --git a/Documentation/hwmon/it87 b/Documentation/hwmon/it87
index 19fbe775ae10..91e8f011dacf 100644
--- a/Documentation/hwmon/it87
+++ b/Documentation/hwmon/it87
@@ -58,6 +58,10 @@ Supported chips:
58 Prefix: 'it8786' 58 Prefix: 'it8786'
59 Addresses scanned: from Super I/O config space (8 I/O ports) 59 Addresses scanned: from Super I/O config space (8 I/O ports)
60 Datasheet: Not publicly available 60 Datasheet: Not publicly available
61 * IT8790E
62 Prefix: 'it8790'
63 Addresses scanned: from Super I/O config space (8 I/O ports)
64 Datasheet: Not publicly available
61 * SiS950 [clone of IT8705F] 65 * SiS950 [clone of IT8705F]
62 Prefix: 'it87' 66 Prefix: 'it87'
63 Addresses scanned: from Super I/O config space (8 I/O ports) 67 Addresses scanned: from Super I/O config space (8 I/O ports)
@@ -102,9 +106,10 @@ motherboard models.
102Description 106Description
103----------- 107-----------
104 108
105This driver implements support for the IT8603E, IT8623E, IT8705F, IT8712F, 109This driver implements support for the IT8603E, IT8623E, IT8705F,
106IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E, IT8771E, 110IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E,
107IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, and SiS950 chips. 111IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E, and SiS950
112chips.
108 113
109These chips are 'Super I/O chips', supporting floppy disks, infrared ports, 114These chips are 'Super I/O chips', supporting floppy disks, infrared ports,
110joysticks and other miscellaneous stuff. For hardware monitoring, they 115joysticks and other miscellaneous stuff. For hardware monitoring, they
@@ -145,6 +150,8 @@ The IT8603E/IT8623E is a custom design, hardware monitoring part is similar to
145IT8728F. It only supports 16-bit fan mode, the full speed mode of the 150IT8728F. It only supports 16-bit fan mode, the full speed mode of the
146fan is not supported (value 0 of pwmX_enable). 151fan is not supported (value 0 of pwmX_enable).
147 152
153The IT8790E supports up to 3 fans. 16-bit fan mode is always enabled.
154
148Temperatures are measured in degrees Celsius. An alarm is triggered once 155Temperatures are measured in degrees Celsius. An alarm is triggered once
149when the Overtemperature Shutdown limit is crossed. 156when the Overtemperature Shutdown limit is crossed.
150 157
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
index 8f73dccb75ac..848ddfe30ef8 100644
--- a/drivers/hwmon/Kconfig
+++ b/drivers/hwmon/Kconfig
@@ -600,8 +600,8 @@ config SENSORS_IT87
600 help 600 help
601 If you say yes here you get support for ITE IT8705F, IT8712F, 601 If you say yes here you get support for ITE IT8705F, IT8712F,
602 IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E, 602 IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E,
603 IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, 603 IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E,
604 and IT8603E sensor chips, and the SiS950 clone. 604 IT8603E, and IT8623E sensor chips, and the SiS950 clone.
605 605
606 This driver can also be built as a module. If so, the module 606 This driver can also be built as a module. If so, the module
607 will be called it87. 607 will be called it87.
diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
index 9f4c662c5905..80580cdf9a15 100644
--- a/drivers/hwmon/it87.c
+++ b/drivers/hwmon/it87.c
@@ -27,6 +27,7 @@
27 * IT8782F Super I/O chip w/LPC interface 27 * IT8782F Super I/O chip w/LPC interface
28 * IT8783E/F Super I/O chip w/LPC interface 28 * IT8783E/F Super I/O chip w/LPC interface
29 * IT8786E Super I/O chip w/LPC interface 29 * IT8786E Super I/O chip w/LPC interface
30 * IT8790E Super I/O chip w/LPC interface
30 * Sis950 A clone of the IT8705F 31 * Sis950 A clone of the IT8705F
31 * 32 *
32 * Copyright (C) 2001 Chris Gauthron 33 * Copyright (C) 2001 Chris Gauthron
@@ -68,7 +69,7 @@
68#define DRVNAME "it87" 69#define DRVNAME "it87"
69 70
70enum chips { it87, it8712, it8716, it8718, it8720, it8721, it8728, it8771, 71enum chips { it87, it8712, it8716, it8718, it8720, it8721, it8728, it8771,
71 it8772, it8781, it8782, it8783, it8786, it8603 }; 72 it8772, it8781, it8782, it8783, it8786, it8790, it8603 };
72 73
73static unsigned short force_id; 74static unsigned short force_id;
74module_param(force_id, ushort, 0); 75module_param(force_id, ushort, 0);
@@ -152,6 +153,7 @@ static inline void superio_exit(void)
152#define IT8782F_DEVID 0x8782 153#define IT8782F_DEVID 0x8782
153#define IT8783E_DEVID 0x8783 154#define IT8783E_DEVID 0x8783
154#define IT8786E_DEVID 0x8786 155#define IT8786E_DEVID 0x8786
156#define IT8790E_DEVID 0x8790
155#define IT8603E_DEVID 0x8603 157#define IT8603E_DEVID 0x8603
156#define IT8623E_DEVID 0x8623 158#define IT8623E_DEVID 0x8623
157#define IT87_ACT_REG 0x30 159#define IT87_ACT_REG 0x30
@@ -359,6 +361,13 @@ static const struct it87_devices it87_devices[] = {
359 | FEAT_TEMP_OFFSET | FEAT_TEMP_PECI | FEAT_IN7_INTERNAL, 361 | FEAT_TEMP_OFFSET | FEAT_TEMP_PECI | FEAT_IN7_INTERNAL,
360 .peci_mask = 0x07, 362 .peci_mask = 0x07,
361 }, 363 },
364 [it8790] = {
365 .name = "it8790",
366 .suffix = "E",
367 .features = FEAT_NEWER_AUTOPWM | FEAT_12MV_ADC | FEAT_16BIT_FANS
368 | FEAT_TEMP_OFFSET | FEAT_TEMP_PECI | FEAT_IN7_INTERNAL,
369 .peci_mask = 0x07,
370 },
362 [it8603] = { 371 [it8603] = {
363 .name = "it8603", 372 .name = "it8603",
364 .suffix = "E", 373 .suffix = "E",
@@ -1834,6 +1843,9 @@ static int __init it87_find(unsigned short *address,
1834 case IT8786E_DEVID: 1843 case IT8786E_DEVID:
1835 sio_data->type = it8786; 1844 sio_data->type = it8786;
1836 break; 1845 break;
1846 case IT8790E_DEVID:
1847 sio_data->type = it8790;
1848 break;
1837 case IT8603E_DEVID: 1849 case IT8603E_DEVID:
1838 case IT8623E_DEVID: 1850 case IT8623E_DEVID:
1839 sio_data->type = it8603; 1851 sio_data->type = it8603;