From b25862468960c2d830af297bf0405e39b0482961 Mon Sep 17 00:00:00 2001 From: Guenter Roeck Date: Wed, 21 Sep 2016 08:00:46 -0700 Subject: [PATCH] Add support for IT8622E Originally-from: Kevin Folz . Signed-off-by: Guenter Roeck --- README | 12 ++++++++---- it87.c | 16 +++++++++++++++- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/README b/README index fff6f6b..1bdf1ac 100644 --- a/README +++ b/README @@ -9,6 +9,10 @@ Supported chips: * IT8620E Prefix: 'it8620' 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 Prefix: 'it8628' Addresses scanned: from Super I/O config space (8 I/O ports) @@ -117,10 +121,10 @@ motherboard models. Description ----------- -This driver implements support for the IT8603E, IT8620E, IT8623E, IT8628E, -IT8705F, IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8732F, -IT8758E, IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E, and -SiS950 chips. +This driver implements support for the IT8603E, IT8620E, IT8622E, IT8623E, +IT8628E, IT8705F, IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, +IT8732F, IT8758E, IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, +IT8790E, and SiS950 chips. These chips are 'Super I/O chips', supporting floppy disks, infrared ports, joysticks and other miscellaneous stuff. For hardware monitoring, they diff --git a/it87.c b/it87.c index b4a1a3b..4e58da7 100644 --- a/it87.c +++ b/it87.c @@ -12,6 +12,7 @@ * * Supports: IT8603E 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 * IT8628E 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, it8771, it8772, it8781, it8782, it8783, it8786, it8790, it8603, - it8620, it8628 }; + it8620, it8622, it8628 }; static unsigned short force_id; module_param(force_id, ushort, 0); @@ -161,6 +162,7 @@ static inline void superio_exit(int ioreg) #define IT8790E_DEVID 0x8790 #define IT8603E_DEVID 0x8603 #define IT8620E_DEVID 0x8620 +#define IT8622E_DEVID 0x8622 #define IT8623E_DEVID 0x8623 #define IT8628E_DEVID 0x8628 #define IT87_ACT_REG 0x30 @@ -438,6 +440,15 @@ static const struct it87_devices it87_devices[] = { | FEAT_SIX_TEMP | FEAT_VIN3_5V, .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] = { .name = "it8628", .suffix = "E", @@ -2419,6 +2430,9 @@ static int __init it87_find(int sioaddr, unsigned short *address, case IT8620E_DEVID: sio_data->type = it8620; break; + case IT8622E_DEVID: + sio_data->type = it8622; + break; case IT8628E_DEVID: sio_data->type = it8628; break; -- 2.39.5