Add initial NCT6796D-R support

This is used by Asrock X570 Pro4. Thanks to @Vargson.
This commit is contained in:
Phyxion
2020-01-30 14:15:25 +01:00
parent 6553d7788c
commit a2e6c8582e
7 changed files with 38 additions and 15 deletions
@@ -238,6 +238,8 @@ namespace LibreHardwareMonitor.Hardware.Motherboard
return Model.Z170_A;
case var _ when name.Equals("Z77 Pro4-M", StringComparison.OrdinalIgnoreCase):
return Model.Z77Pro4M;
case var _ when name.Equals("X570 Pro4", StringComparison.OrdinalIgnoreCase):
return Model.X570_Pro4;
case var _ when name.Equals("AX370-Gaming 5", StringComparison.OrdinalIgnoreCase):
return Model.AX370_Gaming_5;
case var _ when name.Equals("TUF X470-PLUS GAMING", StringComparison.OrdinalIgnoreCase):
@@ -51,6 +51,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc
NCT6793D = 0xD121,
NCT6795D = 0xD352,
NCT6796D = 0xD423,
NCT6796DR = 0xD42A,
NCT6797D = 0xD451,
NCT6798D = 0xD42B,
@@ -110,6 +111,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc
case Chip.NCT6793D: return "Nuvoton NCT6793D";
case Chip.NCT6795D: return "Nuvoton NCT6795D";
case Chip.NCT6796D: return "Nuvoton NCT6796D";
case Chip.NCT6796DR: return "Nuvoton NCT6796D-R";
case Chip.NCT6797D: return "Nuvoton NCT6797D";
case Chip.NCT6798D: return "Nuvoton NCT6798D";
@@ -364,6 +364,10 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc
chip = Chip.NCT6796D;
logicalDeviceNumber = WINBOND_NUVOTON_HARDWARE_MONITOR_LDN;
break;
case 0x2A:
chip = Chip.NCT6796DR;
logicalDeviceNumber = WINBOND_NUVOTON_HARDWARE_MONITOR_LDN;
break;
case 0x51:
chip = Chip.NCT6797D;
logicalDeviceNumber = WINBOND_NUVOTON_HARDWARE_MONITOR_LDN;
@@ -395,7 +399,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.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 || chip == Chip.NCT6798D || chip == Chip.NCT6797D))
if (address == verify && (chip == Chip.NCT6791D || chip == Chip.NCT6796D || chip == Chip.NCT6796DR || chip == Chip.NCT6793D || chip == Chip.NCT6795D || chip == Chip.NCT6798D || chip == Chip.NCT6797D))
{
port.NuvotonDisableIOSpaceLock();
}
@@ -452,6 +456,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc
case Chip.NCT6793D:
case Chip.NCT6795D:
case Chip.NCT6796D:
case Chip.NCT6796DR:
case Chip.NCT6797D:
case Chip.NCT6798D:
{
@@ -128,23 +128,31 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc
case Chip.NCT6793D:
case Chip.NCT6795D:
case Chip.NCT6796D:
case Chip.NCT6796DR:
case Chip.NCT6797D:
case Chip.NCT6798D:
{
if (chip == Chip.NCT6779D)
switch (chip)
{
Fans = new float?[5];
Controls = new float?[5];
}
else if (chip == Chip.NCT6797D || chip == Chip.NCT6798D)
{
Fans = new float?[7];
Controls = new float?[7];
}
else
{
Fans = new float?[6];
Controls = new float?[6];
case Chip.NCT6779D:
{
Fans = new float?[5];
Controls = new float?[5];
break;
}
case Chip.NCT6797D:
case Chip.NCT6798D:
{
Fans = new float?[7];
Controls = new float?[7];
break;
}
default:
{
Fans = new float?[6];
Controls = new float?[6];
break;
}
}
_fanRpmRegister = new ushort[] { 0x4c0, 0x4c2, 0x4c4, 0x4c6, 0x4c8, 0x4ca, 0x4ce };
@@ -527,7 +535,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc
private void DisableIOSpaceLock()
{
if (Chip != Chip.NCT6791D && Chip != Chip.NCT6796D && Chip != Chip.NCT6793D && Chip != Chip.NCT6795D && Chip != Chip.NCT6798D && Chip != Chip.NCT6797D)
if (Chip != Chip.NCT6791D && Chip != Chip.NCT6796D && Chip != Chip.NCT6796DR && Chip != Chip.NCT6793D && Chip != Chip.NCT6795D && Chip != Chip.NCT6798D && Chip != Chip.NCT6797D)
return;
@@ -30,6 +30,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard
P55_Deluxe,
X399_Phantom_Gaming_6,
Z77Pro4M,
X570_Pro4,
// ASUS
CROSSHAIR_III_FORMULA,
@@ -37,10 +37,14 @@ namespace LibreHardwareMonitor.Hardware.Motherboard
_name = manufacturer + " " + smBios.Board.ProductName;
}
else
{
_name = manufacturer.ToString();
}
}
else
{
_name = Manufacturer.Unknown.ToString();
}
_customName = settings.GetValue(new Identifier(Identifier, "name").ToString(), _name);
@@ -303,6 +303,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard
case Chip.NCT6793D:
case Chip.NCT6795D:
case Chip.NCT6796D:
case Chip.NCT6796DR:
case Chip.NCT6797D:
case Chip.NCT6798D:
GetNuvotonConfigurationD(superIO, manufacturer, model, v, t, f, c);