The attached is my attempt to add support for a new MSI motherboard with a NCT6687D on board. I do not know why one of the sensors it reads gets reported at -40.0 however. Calling sensors multiple times shows that -40.0 value seems to bounce around from "Thermistor 0" and "Chipset B."
Feedback is appreciated.
For reference, I attached a sample output of sensors for the new chip with this patch applied:
nct6687-isa-0a20
Adapter: ISA adapter
VIN0: 1.01 V (min = +0.00 V, max = +0.00 V)
VIN1: 1.01 V (min = +0.00 V, max = +0.00 V)
VIN2: 1.30 V (min = +0.00 V, max = +0.00 V)
VIN3: 672.00 mV (min = +0.00 V, max = +0.00 V)
VIN4: 1.01 V (min = +0.00 V, max = +0.00 V)
VIN5: 2.03 V (min = +0.00 V, max = +0.00 V)
VIN6: 464.00 mV (min = +0.00 V, max = +0.00 V)
VIN7: 1.52 V (min = +0.00 V, max = +0.00 V)
VCC: 3.28 V (min = +0.00 V, max = +0.00 V)
VSB: 3.33 V (min = +0.00 V, max = +0.00 V)
AVSB: 3.33 V (min = +0.00 V, max = +0.00 V)
VTT: 2.03 V (min = +0.00 V, max = +0.00 V)
VBAT: 3.18 V (min = +0.00 V, max = +0.00 V)
VREF: 1.79 V (min = +0.00 V, max = +0.00 V)
fan1: 747 RPM (min = 0 RPM)
fan2: 745 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
fan4: 0 RPM (min = 0 RPM)
fan12: 0 RPM (min = 0 RPM)
fan13: 0 RPM (min = 0 RPM)
fan14: 0 RPM (min = 0 RPM)
fan15: 0 RPM (min = 0 RPM)
fan16: 0 RPM (min = 0 RPM)
AMD TSI Addr 98h: +49.0°C (low = +0.0°C)
(high = +0.0°C, hyst = +0.0°C)
(crit = +0.0°C) sensor = AMD AMDSI
Diode 0 (curr): +56.0°C (low = +0.0°C)
(high = +0.0°C, hyst = +0.0°C)
(crit = +0.0°C) sensor = thermal diode
Thermistor 15: +52.0°C (low = +0.0°C)
(high = +124.0°C, hyst = +34.0°C)
(crit = +0.0°C) sensor = thermistor
SMBus 0: +56.0°C (low = +0.0°C)
(high = +0.0°C, hyst = +0.0°C)
(crit = +0.0°C)
SMBus 1: +56.0°C (low = +0.0°C)
(high = +0.0°C, hyst = +0.0°C)
(crit = +0.0°C)
Thermistor 0: -40.0°C (low = +0.0°C)
(high = +0.0°C, hyst = +0.0°C)
(crit = +0.0°C) sensor = thermistor
Thermistor 15: +52.0°C (low = +0.0°C)
(high = +124.0°C, hyst = +34.0°C)
(crit = +0.0°C) sensor = thermistor
intrusion0: ALARM
beep_enable: disabled
From 5520629e6d63a83a6f6772b99aef408c11f58025 Mon Sep 17 00:00:00 2001
From: John Audia <therealgraysky@xxxxxxxxx>
Date: Wed, 1 Jan 2025 08:27:59 -0500
Subject: [PATCH] hwmon: (nct6683) Add another customer ID for MSI
This value was found on an MSI MPG X870E CARBON WIFI (MS-7E49)
with an NCT6687D chip.
Signed-off-by: John Audia <therealgraysky@xxxxxxxxx>
---
Documentation/hwmon/nct6683.rst | 1 +
drivers/hwmon/nct6683.c | 3 +++
2 files changed, 4 insertions(+)
diff --git a/Documentation/hwmon/nct6683.rst b/Documentation/hwmon/nct6683.rst
index 2a7a78eb1b46..2302b1ac95b1 100644
--- a/Documentation/hwmon/nct6683.rst
+++ b/Documentation/hwmon/nct6683.rst
@@ -65,4 +65,5 @@ ASRock X570 NCT6683D EC firmware version 1.0 build 06/28/19
ASRock X670E NCT6686D EC firmware version 1.0 build 05/19/22
MSI B550 NCT6687D EC firmware version 1.0 build 05/07/20
MSI X670-P NCT6687D EC firmware version 0.0 build 09/27/22
+MSI X870E NCT6687D EC firmware version 0.0 build 11/13/24
=============== ===============================================
diff --git a/drivers/hwmon/nct6683.c b/drivers/hwmon/nct6683.c
index f71615e06a8f..e1f2736ee3d2 100644
--- a/drivers/hwmon/nct6683.c
+++ b/drivers/hwmon/nct6683.c
@@ -175,6 +175,7 @@ superio_exit(int ioreg)
#define NCT6683_CUSTOMER_ID_MSI 0x201
#define NCT6683_CUSTOMER_ID_MSI2 0x200
#define NCT6683_CUSTOMER_ID_MSI3 0x207
+#define NCT6683_CUSTOMER_ID_MSI4 0x020d
#define NCT6683_CUSTOMER_ID_ASROCK 0xe2c
#define NCT6683_CUSTOMER_ID_ASROCK2 0xe1b
#define NCT6683_CUSTOMER_ID_ASROCK3 0x1631
@@ -1227,6 +1228,8 @@ static int nct6683_probe(struct platform_device *pdev)
break;
case NCT6683_CUSTOMER_ID_MSI3:
break;
+ case NCT6683_CUSTOMER_ID_MSI4:
+ break;
case NCT6683_CUSTOMER_ID_ASROCK:
break;
case NCT6683_CUSTOMER_ID_ASROCK2:
--
2.47.1