diff options
author | Guenter Roeck <linux@roeck-us.net> | 2015-03-26 02:26:28 -0400 |
---|---|---|
committer | Guenter Roeck <linux@roeck-us.net> | 2015-04-05 09:00:59 -0400 |
commit | 4ee07157d690b1b824328a473816a371130de6f2 (patch) | |
tree | 7b8e1ca9bc4a357dfa5f783b48cbd453eb316e1e | |
parent | 7f5726c39ad469447545233f41a13d202a233d6b (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/it87 | 13 | ||||
-rw-r--r-- | drivers/hwmon/Kconfig | 4 | ||||
-rw-r--r-- | drivers/hwmon/it87.c | 14 |
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. | |||
102 | Description | 106 | Description |
103 | ----------- | 107 | ----------- |
104 | 108 | ||
105 | This driver implements support for the IT8603E, IT8623E, IT8705F, IT8712F, | 109 | This driver implements support for the IT8603E, IT8623E, IT8705F, |
106 | IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E, IT8771E, | 110 | IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8758E, |
107 | IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, and SiS950 chips. | 111 | IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E, and SiS950 |
112 | chips. | ||
108 | 113 | ||
109 | These chips are 'Super I/O chips', supporting floppy disks, infrared ports, | 114 | These chips are 'Super I/O chips', supporting floppy disks, infrared ports, |
110 | joysticks and other miscellaneous stuff. For hardware monitoring, they | 115 | joysticks 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 | |||
145 | IT8728F. It only supports 16-bit fan mode, the full speed mode of the | 150 | IT8728F. It only supports 16-bit fan mode, the full speed mode of the |
146 | fan is not supported (value 0 of pwmX_enable). | 151 | fan is not supported (value 0 of pwmX_enable). |
147 | 152 | ||
153 | The IT8790E supports up to 3 fans. 16-bit fan mode is always enabled. | ||
154 | |||
148 | Temperatures are measured in degrees Celsius. An alarm is triggered once | 155 | Temperatures are measured in degrees Celsius. An alarm is triggered once |
149 | when the Overtemperature Shutdown limit is crossed. | 156 | when 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 | ||
70 | enum chips { it87, it8712, it8716, it8718, it8720, it8721, it8728, it8771, | 71 | enum 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 | ||
73 | static unsigned short force_id; | 74 | static unsigned short force_id; |
74 | module_param(force_id, ushort, 0); | 75 | module_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; |