Add support for IT8613E
[groeck: Fix README] Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:

committed by
Guenter Roeck

parent
4d9b49a4df
commit
13a3394e95
4
README
4
README
@@ -6,6 +6,10 @@ Supported chips:
|
|||||||
Prefix: 'it8603'
|
Prefix: 'it8603'
|
||||||
Addresses scanned: from Super I/O config space (8 I/O ports)
|
Addresses scanned: from Super I/O config space (8 I/O ports)
|
||||||
Datasheet: Not publicly available
|
Datasheet: Not publicly available
|
||||||
|
* IT8613E
|
||||||
|
Prefix: 'it8613'
|
||||||
|
Addresses scanned: from Super I/O config space (8 I/O ports)
|
||||||
|
Datasheet: Not publicly available
|
||||||
* 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)
|
||||||
|
1
TODO
1
TODO
@@ -1,3 +1,4 @@
|
|||||||
- AMD CPU temperature sensor type is shown as Intel temperature sensor.
|
- AMD CPU temperature sensor type is shown as Intel temperature sensor.
|
||||||
- Add support for IT8655E (Asus Prime B350m-A)
|
- Add support for IT8655E (Asus Prime B350m-A)
|
||||||
- Fix temperature sensor type for IT8665E and IT8686E
|
- Fix temperature sensor type for IT8665E and IT8686E
|
||||||
|
- Need to disable first fan for IT8613E
|
||||||
|
29
it87.c
29
it87.c
@@ -12,6 +12,7 @@
|
|||||||
*
|
*
|
||||||
* Supports: IT8603E Super I/O chip w/LPC interface
|
* Supports: IT8603E Super I/O chip w/LPC interface
|
||||||
* IT8607E Super I/O chip w/LPC interface
|
* IT8607E Super I/O chip w/LPC interface
|
||||||
|
* IT8613E 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
|
* IT8622E Super I/O chip w/LPC interface
|
||||||
* IT8623E Super I/O chip w/LPC interface
|
* IT8623E Super I/O chip w/LPC interface
|
||||||
@@ -80,7 +81,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,
|
it8771, it8772, it8781, it8782, it8783, it8786, it8790,
|
||||||
it8792, it8603, it8607, it8620, it8622, it8628, it8655, it8665,
|
it8792, it8603, it8607, it8613, it8620, it8622, it8628, it8655, it8665,
|
||||||
it8686 };
|
it8686 };
|
||||||
|
|
||||||
static unsigned short force_id;
|
static unsigned short force_id;
|
||||||
@@ -210,6 +211,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 IT8607E_DEVID 0x8607
|
#define IT8607E_DEVID 0x8607
|
||||||
|
#define IT8613E_DEVID 0x8613
|
||||||
#define IT8620E_DEVID 0x8620
|
#define IT8620E_DEVID 0x8620
|
||||||
#define IT8622E_DEVID 0x8622
|
#define IT8622E_DEVID 0x8622
|
||||||
#define IT8623E_DEVID 0x8623
|
#define IT8623E_DEVID 0x8623
|
||||||
@@ -557,6 +559,16 @@ static const struct it87_devices it87_devices[] = {
|
|||||||
.num_temp_limit = 3,
|
.num_temp_limit = 3,
|
||||||
.peci_mask = 0x07,
|
.peci_mask = 0x07,
|
||||||
},
|
},
|
||||||
|
[it8613] = {
|
||||||
|
.name = "it8613",
|
||||||
|
.suffix = "E",
|
||||||
|
.features = FEAT_NEWER_AUTOPWM | FEAT_11MV_ADC | FEAT_16BIT_FANS
|
||||||
|
| FEAT_TEMP_OFFSET | FEAT_TEMP_PECI | FEAT_FIVE_FANS
|
||||||
|
| FEAT_FIVE_PWM | FEAT_IN7_INTERNAL | FEAT_PWM_FREQ2
|
||||||
|
| FEAT_AVCC3 | FEAT_VIN3_5V | FEAT_SCALING,
|
||||||
|
.num_temp_limit = 3,
|
||||||
|
.peci_mask = 0x07,
|
||||||
|
},
|
||||||
[it8620] = {
|
[it8620] = {
|
||||||
.name = "it8620",
|
.name = "it8620",
|
||||||
.suffix = "E",
|
.suffix = "E",
|
||||||
@@ -2784,6 +2796,9 @@ static int __init it87_find(int sioaddr, unsigned short *address,
|
|||||||
case IT8607E_DEVID:
|
case IT8607E_DEVID:
|
||||||
sio_data->type = it8607;
|
sio_data->type = it8607;
|
||||||
break;
|
break;
|
||||||
|
case IT8613E_DEVID:
|
||||||
|
sio_data->type = it8613;
|
||||||
|
break;
|
||||||
case IT8620E_DEVID:
|
case IT8620E_DEVID:
|
||||||
sio_data->type = it8620;
|
sio_data->type = it8620;
|
||||||
break;
|
break;
|
||||||
@@ -3007,7 +3022,7 @@ static int __init it87_find(int sioaddr, unsigned short *address,
|
|||||||
|
|
||||||
sio_data->beep_pin = superio_inb(sioaddr,
|
sio_data->beep_pin = superio_inb(sioaddr,
|
||||||
IT87_SIO_BEEP_PIN_REG) & 0x3f;
|
IT87_SIO_BEEP_PIN_REG) & 0x3f;
|
||||||
} else if (sio_data->type == it8622) {
|
} else if (sio_data->type == it8613 || sio_data->type == it8622) {
|
||||||
int reg;
|
int reg;
|
||||||
|
|
||||||
superio_select(sioaddr, GPIO);
|
superio_select(sioaddr, GPIO);
|
||||||
@@ -3288,6 +3303,16 @@ static void it87_init_device(struct platform_device *pdev)
|
|||||||
data->REG_TEMP_LOW = IT87_REG_TEMP_LOW;
|
data->REG_TEMP_LOW = IT87_REG_TEMP_LOW;
|
||||||
data->REG_TEMP_HIGH = IT87_REG_TEMP_HIGH;
|
data->REG_TEMP_HIGH = IT87_REG_TEMP_HIGH;
|
||||||
break;
|
break;
|
||||||
|
case it8613:
|
||||||
|
data->REG_FAN = IT87_REG_FAN;
|
||||||
|
data->REG_FANX = IT87_REG_FANX;
|
||||||
|
data->REG_FAN_MIN = IT87_REG_FAN_MIN;
|
||||||
|
data->REG_FANX_MIN = IT87_REG_FANX_MIN;
|
||||||
|
data->REG_PWM = IT87_REG_PWM_8665;
|
||||||
|
data->REG_TEMP_OFFSET = IT87_REG_TEMP_OFFSET;
|
||||||
|
data->REG_TEMP_LOW = IT87_REG_TEMP_LOW;
|
||||||
|
data->REG_TEMP_HIGH = IT87_REG_TEMP_HIGH;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
data->REG_FAN = IT87_REG_FAN;
|
data->REG_FAN = IT87_REG_FAN;
|
||||||
data->REG_FANX = IT87_REG_FANX;
|
data->REG_FANX = IT87_REG_FANX;
|
||||||
|
Reference in New Issue
Block a user