From 6c0e00b8322d785eef65daaecb3dd0be5d60c328 Mon Sep 17 00:00:00 2001 From: Greg V Date: Sun, 16 Jul 2017 19:32:26 +0300 Subject: [PATCH] Add support for Nuvoton NCT6795D --- Hardware/LPC/Chip.cs | 2 ++ Hardware/LPC/LMSensors.cs | 2 ++ Hardware/LPC/LPCIO.cs | 12 ++++++++++-- Hardware/LPC/NCT677X.cs | 3 ++- Hardware/Mainboard/SuperIOHardware.cs | 1 + 5 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Hardware/LPC/Chip.cs b/Hardware/LPC/Chip.cs index 461ae28..8ce1428 100644 --- a/Hardware/LPC/Chip.cs +++ b/Hardware/LPC/Chip.cs @@ -44,6 +44,7 @@ namespace OpenHardwareMonitor.Hardware.LPC { NCT6779D = 0xC560, NCT6791D = 0xC803, NCT6793D = 0xD121, + NCT6795D = 0xD352, W83627DHG = 0xA020, W83627DHGP = 0xB070, @@ -93,6 +94,7 @@ namespace OpenHardwareMonitor.Hardware.LPC { case Chip.NCT6779D: return "Nuvoton NCT6779D"; case Chip.NCT6791D: return "Nuvoton NCT6791D"; case Chip.NCT6793D: return "Nuvoton NCT6793D"; + case Chip.NCT6795D: return "Nuvoton NCT6795D"; case Chip.W83627DHG: return "Winbond W83627DHG"; case Chip.W83627DHGP: return "Winbond W83627DHG-P"; diff --git a/Hardware/LPC/LMSensors.cs b/Hardware/LPC/LMSensors.cs index 483db5b..7c89b6c 100755 --- a/Hardware/LPC/LMSensors.cs +++ b/Hardware/LPC/LMSensors.cs @@ -75,6 +75,8 @@ namespace OpenHardwareMonitor.Hardware.LPC { lmChips.Add(new LMChip(Chip.NCT6791D, path)); break; case "nct6793": lmChips.Add(new LMChip(Chip.NCT6793D, path)); break; + case "nct6795": + lmChips.Add(new LMChip(Chip.NCT6795D, path)); break; case "w83627ehf": lmChips.Add(new LMChip(Chip.W83627EHF, path)); break; diff --git a/Hardware/LPC/LPCIO.cs b/Hardware/LPC/LPCIO.cs index a3d06d6..0aa901a 100644 --- a/Hardware/LPC/LPCIO.cs +++ b/Hardware/LPC/LPCIO.cs @@ -216,6 +216,13 @@ namespace OpenHardwareMonitor.Hardware.LPC { logicalDeviceNumber = WINBOND_NUVOTON_HARDWARE_MONITOR_LDN; break; } break; + case 0xD3: + switch (revision) { + case 0x52: + chip = Chip.NCT6795D; + logicalDeviceNumber = WINBOND_NUVOTON_HARDWARE_MONITOR_LDN; + break; + } break; } if (chip == Chip.Unknown) { if (id != 0 && id != 0xff) { @@ -233,8 +240,8 @@ namespace OpenHardwareMonitor.Hardware.LPC { ushort vendorID = port.ReadWord(FINTEK_VENDOR_ID_REGISTER); - // disable the hardware monitor i/o space lock on NCT6791D or NCT6793D chips - if (address == verify && (chip == Chip.NCT6791D || chip == Chip.NCT6793D)) { + // disable the hardware monitor i/o space lock on NCT679*D chips + if (address == verify && (chip == Chip.NCT6791D || chip == Chip.NCT6793D || chip == Chip.NCT6795D)) { port.NuvotonDisableIOSpaceLock(); } @@ -285,6 +292,7 @@ namespace OpenHardwareMonitor.Hardware.LPC { case Chip.NCT6779D: case Chip.NCT6791D: case Chip.NCT6793D: + case Chip.NCT6795D: superIOs.Add(new NCT677X(chip, revision, address, port)); break; case Chip.F71858: diff --git a/Hardware/LPC/NCT677X.cs b/Hardware/LPC/NCT677X.cs index 71d29e0..20001f3 100644 --- a/Hardware/LPC/NCT677X.cs +++ b/Hardware/LPC/NCT677X.cs @@ -271,6 +271,7 @@ namespace OpenHardwareMonitor.Hardware.LPC { break; case Chip.NCT6779D: + case Chip.NCT6795D: case Chip.NCT6793D: case Chip.NCT6791D: if (chip == Chip.NCT6779D) { @@ -415,7 +416,7 @@ namespace OpenHardwareMonitor.Hardware.LPC { public float?[] Controls { get { return controls; } } private void DisableIOSpaceLock() { - if (chip != Chip.NCT6791D || chip != Chip.NCT6793D) + if (chip != Chip.NCT6791D && chip != Chip.NCT6793D && chip != Chip.NCT6795D) return; // the lock is disabled already if the vendor ID can be read diff --git a/Hardware/Mainboard/SuperIOHardware.cs b/Hardware/Mainboard/SuperIOHardware.cs index 18578ee..91fd84b 100644 --- a/Hardware/Mainboard/SuperIOHardware.cs +++ b/Hardware/Mainboard/SuperIOHardware.cs @@ -267,6 +267,7 @@ namespace OpenHardwareMonitor.Hardware.Mainboard { case Chip.NCT6779D: case Chip.NCT6791D: case Chip.NCT6793D: + case Chip.NCT6795D: GetNuvotonConfigurationD(superIO, manufacturer, model, v, t, f, c); break; default: