From 1ec80f4f3589854122342cae0802e2775e8fe4f3 Mon Sep 17 00:00:00 2001 From: Guenter Roeck Date: Wed, 6 Jun 2018 15:19:47 -0700 Subject: [PATCH] Enable all temperature registers for IT8655E and IT8665E Those chips always have all 6 temperature registers enabled. Signed-off-by: Guenter Roeck --- it87.c | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/it87.c b/it87.c index 48e59db..1306f60 100644 --- a/it87.c +++ b/it87.c @@ -697,7 +697,8 @@ static const struct it87_devices it87_devices[] = { .model = "IT8655E", .features = FEAT_NEWER_AUTOPWM | FEAT_16BIT_FANS | FEAT_AVCC3 | FEAT_NEW_TEMPMAP | FEAT_SCALING - | FEAT_10_9MV_ADC | FEAT_IN7_INTERNAL | FEAT_BANK_SEL, + | FEAT_10_9MV_ADC | FEAT_IN7_INTERNAL | FEAT_BANK_SEL + | FEAT_SIX_TEMP | FEAT_MMIO, .num_temp_limit = 6, .num_temp_offset = 6, .num_temp_map = 6, @@ -709,7 +710,7 @@ static const struct it87_devices it87_devices[] = { .features = FEAT_NEWER_AUTOPWM | FEAT_16BIT_FANS | FEAT_AVCC3 | FEAT_NEW_TEMPMAP | FEAT_SCALING | FEAT_10_9MV_ADC | FEAT_IN7_INTERNAL | FEAT_SIX_FANS - | FEAT_SIX_PWM | FEAT_BANK_SEL | FEAT_MMIO, + | FEAT_SIX_PWM | FEAT_BANK_SEL | FEAT_MMIO | FEAT_SIX_TEMP, .num_temp_limit = 6, .num_temp_offset = 6, .num_temp_map = 6, @@ -4095,23 +4096,27 @@ static int it87_probe(struct platform_device *pdev) if (has_four_temp(data)) { data->has_temp |= BIT(3); } else if (has_six_temp(data)) { - u8 reg = data->read(data, IT87_REG_TEMP456_ENABLE); - - /* Check for additional temperature sensors */ - if ((reg & 0x03) >= 0x02) - data->has_temp |= BIT(3); - if (((reg >> 2) & 0x03) >= 0x02) - data->has_temp |= BIT(4); - if (((reg >> 4) & 0x03) >= 0x02) - data->has_temp |= BIT(5); - - /* Check for additional voltage sensors */ - if ((reg & 0x03) == 0x01) - data->has_in |= BIT(10); - if (((reg >> 2) & 0x03) == 0x01) - data->has_in |= BIT(11); - if (((reg >> 4) & 0x03) == 0x01) - data->has_in |= BIT(12); + if (sio_data->type == it8655 || sio_data->type == it8665) { + data->has_temp |= BIT(3) | BIT(4) | BIT(5); + } else { + u8 reg = data->read(data, IT87_REG_TEMP456_ENABLE); + + /* Check for additional temperature sensors */ + if ((reg & 0x03) >= 0x02) + data->has_temp |= BIT(3); + if (((reg >> 2) & 0x03) >= 0x02) + data->has_temp |= BIT(4); + if (((reg >> 4) & 0x03) >= 0x02) + data->has_temp |= BIT(5); + + /* Check for additional voltage sensors */ + if ((reg & 0x03) == 0x01) + data->has_in |= BIT(10); + if (((reg >> 2) & 0x03) == 0x01) + data->has_in |= BIT(11); + if (((reg >> 4) & 0x03) == 0x01) + data->has_in |= BIT(12); + } } data->has_beep = !!sio_data->beep_pin;