diff --git a/Hardware/LPC/Chip.cs b/Hardware/LPC/Chip.cs index 6c61a4b..1b2b49f 100644 --- a/Hardware/LPC/Chip.cs +++ b/Hardware/LPC/Chip.cs @@ -50,6 +50,7 @@ namespace OpenHardwareMonitor.Hardware.LPC { NCT6793D = 0xD121, NCT6795D = 0xD352, NCT6796D = 0xD423, + NCT6798D = 0xD42B, W83627DHG = 0xA020, W83627DHGP = 0xB070, @@ -105,6 +106,7 @@ namespace OpenHardwareMonitor.Hardware.LPC { case Chip.NCT6793D: return "Nuvoton NCT6793D"; case Chip.NCT6795D: return "Nuvoton NCT6795D"; case Chip.NCT6796D: return "Nuvoton NCT6796D"; + case Chip.NCT6798D: return "Nuvoton NCT6798D"; 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 9dc05b2..2aa426d 100755 --- a/Hardware/LPC/LMSensors.cs +++ b/Hardware/LPC/LMSensors.cs @@ -83,6 +83,8 @@ namespace OpenHardwareMonitor.Hardware.LPC { lmChips.Add(new LMChip(Chip.NCT6795D, path)); break; case "nct6796": lmChips.Add(new LMChip(Chip.NCT6796D, path)); break; + case "nct6798": + lmChips.Add(new LMChip(Chip.NCT6798D, 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 54ef729..dfe3bd3 100644 --- a/Hardware/LPC/LPCIO.cs +++ b/Hardware/LPC/LPCIO.cs @@ -243,6 +243,10 @@ namespace OpenHardwareMonitor.Hardware.LPC { chip = Chip.NCT6796D; logicalDeviceNumber = WINBOND_NUVOTON_HARDWARE_MONITOR_LDN; break; + case 0x2B: + chip = Chip.NCT6798D; + logicalDeviceNumber = WINBOND_NUVOTON_HARDWARE_MONITOR_LDN; + break; } break; } if (chip == Chip.Unknown) { @@ -262,7 +266,7 @@ namespace OpenHardwareMonitor.Hardware.LPC { ushort vendorID = port.ReadWord(FINTEK_VENDOR_ID_REGISTER); // disable the hardware monitor i/o space lock on NCT679*D chips - if (address == verify && (chip == Chip.NCT6791D || chip == Chip.NCT6796D || chip == Chip.NCT6793D || chip == Chip.NCT6795D)) { + if (address == verify && (chip == Chip.NCT6791D || chip == Chip.NCT6796D || chip == Chip.NCT6793D || chip == Chip.NCT6795D || chip == Chip.NCT6798D)) { port.NuvotonDisableIOSpaceLock(); } @@ -315,7 +319,8 @@ namespace OpenHardwareMonitor.Hardware.LPC { case Chip.NCT6792D: case Chip.NCT6793D: case Chip.NCT6795D: - case Chip.NCT6796D: + case Chip.NCT6796D: + case Chip.NCT6798D: 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 28cbaaa..77f8942 100644 --- a/Hardware/LPC/NCT677X.cs +++ b/Hardware/LPC/NCT677X.cs @@ -276,6 +276,7 @@ namespace OpenHardwareMonitor.Hardware.LPC { case Chip.NCT6793D: case Chip.NCT6795D: case Chip.NCT6796D: + case Chip.NCT6798D: if (chip == Chip.NCT6779D) { fans = new float?[5]; controls = new float?[5]; @@ -418,7 +419,7 @@ namespace OpenHardwareMonitor.Hardware.LPC { public float?[] Controls { get { return controls; } } private void DisableIOSpaceLock() { - if (chip != Chip.NCT6791D && chip != Chip.NCT6796D && chip != Chip.NCT6793D && chip != Chip.NCT6795D) + if (chip != Chip.NCT6791D && chip != Chip.NCT6796D && chip != Chip.NCT6793D && chip != Chip.NCT6795D && chip != Chip.NCT6798D) 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 f4bd803..42d6e8e 100644 --- a/Hardware/Mainboard/SuperIOHardware.cs +++ b/Hardware/Mainboard/SuperIOHardware.cs @@ -272,6 +272,7 @@ namespace OpenHardwareMonitor.Hardware.Mainboard { case Chip.NCT6793D: case Chip.NCT6795D: case Chip.NCT6796D: + case Chip.NCT6798D: GetNuvotonConfigurationD(superIO, manufacturer, model, v, t, f, c); break; default: