Add support for IT8622E

Originally-from: Kevin Folz <kfolz@evertz.com>.
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
Guenter Roeck
2016-09-21 08:00:46 -07:00
parent 7eca346314
commit b258624689
2 changed files with 23 additions and 5 deletions

12
README
View File

@@ -9,6 +9,10 @@ Supported chips:
* IT8620E * IT8620E
Prefix: 'it8620' Prefix: 'it8620'
Addresses scanned: from Super I/O config space (8 I/O ports) Addresses scanned: from Super I/O config space (8 I/O ports)
* IT8622E
Prefix: 'it8622'
Addresses scanned: from Super I/O config space (8 I/O ports)
Datasheet: Not publicly available
* IT8628E * IT8628E
Prefix: 'it8628' Prefix: 'it8628'
Addresses scanned: from Super I/O config space (8 I/O ports) Addresses scanned: from Super I/O config space (8 I/O ports)
@@ -117,10 +121,10 @@ motherboard models.
Description Description
----------- -----------
This driver implements support for the IT8603E, IT8620E, IT8623E, IT8628E, This driver implements support for the IT8603E, IT8620E, IT8622E, IT8623E,
IT8705F, IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8732F, IT8628E, IT8705F, IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F,
IT8758E, IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E, and IT8732F, IT8758E, IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E,
SiS950 chips. IT8790E, and SiS950 chips.
These chips are 'Super I/O chips', supporting floppy disks, infrared ports, These chips are 'Super I/O chips', supporting floppy disks, infrared ports,
joysticks and other miscellaneous stuff. For hardware monitoring, they joysticks and other miscellaneous stuff. For hardware monitoring, they

16
it87.c
View File

@@ -12,6 +12,7 @@
* *
* Supports: IT8603E Super I/O chip w/LPC interface * Supports: IT8603E Super I/O chip w/LPC interface
* IT8620E Super I/O chip w/LPC interface * IT8620E Super I/O chip w/LPC interface
* IT8622E Super I/O chip w/LPC interface
* IT8623E Super I/O chip w/LPC interface * IT8623E Super I/O chip w/LPC interface
* IT8628E Super I/O chip w/LPC interface * IT8628E Super I/O chip w/LPC interface
* IT8705F Super I/O chip w/LPC interface * IT8705F Super I/O chip w/LPC interface
@@ -71,7 +72,7 @@
enum chips { it87, it8712, it8716, it8718, it8720, it8721, it8728, it8732, enum chips { it87, it8712, it8716, it8718, it8720, it8721, it8728, it8732,
it8771, it8772, it8781, it8782, it8783, it8786, it8790, it8603, it8771, it8772, it8781, it8782, it8783, it8786, it8790, it8603,
it8620, it8628 }; it8620, it8622, it8628 };
static unsigned short force_id; static unsigned short force_id;
module_param(force_id, ushort, 0); module_param(force_id, ushort, 0);
@@ -161,6 +162,7 @@ static inline void superio_exit(int ioreg)
#define IT8790E_DEVID 0x8790 #define IT8790E_DEVID 0x8790
#define IT8603E_DEVID 0x8603 #define IT8603E_DEVID 0x8603
#define IT8620E_DEVID 0x8620 #define IT8620E_DEVID 0x8620
#define IT8622E_DEVID 0x8622
#define IT8623E_DEVID 0x8623 #define IT8623E_DEVID 0x8623
#define IT8628E_DEVID 0x8628 #define IT8628E_DEVID 0x8628
#define IT87_ACT_REG 0x30 #define IT87_ACT_REG 0x30
@@ -438,6 +440,15 @@ static const struct it87_devices it87_devices[] = {
| FEAT_SIX_TEMP | FEAT_VIN3_5V, | FEAT_SIX_TEMP | FEAT_VIN3_5V,
.peci_mask = 0x07, .peci_mask = 0x07,
}, },
[it8622] = {
.name = "it8622",
.suffix = "E",
.features = FEAT_NEWER_AUTOPWM | FEAT_12MV_ADC | FEAT_16BIT_FANS
| FEAT_TEMP_OFFSET | FEAT_TEMP_PECI | FEAT_FIVE_FANS
| FEAT_IN7_INTERNAL | FEAT_PWM_FREQ2 | FEAT_AVCC3
| FEAT_VIN3_5V,
.peci_mask = 0x07,
},
[it8628] = { [it8628] = {
.name = "it8628", .name = "it8628",
.suffix = "E", .suffix = "E",
@@ -2419,6 +2430,9 @@ static int __init it87_find(int sioaddr, unsigned short *address,
case IT8620E_DEVID: case IT8620E_DEVID:
sio_data->type = it8620; sio_data->type = it8620;
break; break;
case IT8622E_DEVID:
sio_data->type = it8622;
break;
case IT8628E_DEVID: case IT8628E_DEVID:
sio_data->type = it8628; sio_data->type = it8628;
break; break;