From 2c815088d745d9a4e3dd95b728e304e6ce4ef5bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=B6ller?= Date: Fri, 22 Jun 2012 10:05:23 +0000 Subject: [PATCH] Integrated the patch for Fintek F71808E super I/O support developed by Andrey Mushatov. --- Hardware/LPC/Chip.cs | 2 ++ Hardware/LPC/F718XX.cs | 13 +++++++++---- Hardware/LPC/LPCIO.cs | 5 +++++ Hardware/Mainboard/SuperIOHardware.cs | 4 +++- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/Hardware/LPC/Chip.cs b/Hardware/LPC/Chip.cs index cae117d..487c52d 100644 --- a/Hardware/LPC/Chip.cs +++ b/Hardware/LPC/Chip.cs @@ -22,6 +22,7 @@ namespace OpenHardwareMonitor.Hardware.LPC { F71889AD = 0x1005, F71889ED = 0x0909, F71889F = 0x0723, + F71808E = 0x0901, IT8712F = 0x8712, IT8716F = 0x8716, @@ -61,6 +62,7 @@ namespace OpenHardwareMonitor.Hardware.LPC { case Chip.F71889AD: return "Fintek F71889AD"; case Chip.F71889ED: return "Fintek F71889ED"; case Chip.F71889F: return "Fintek F71889F"; + case Chip.F71808E: return "Fintek F71808E"; case Chip.IT8712F: return "ITE IT8712F"; case Chip.IT8716F: return "ITE IT8716F"; diff --git a/Hardware/LPC/F718XX.cs b/Hardware/LPC/F718XX.cs index 72b8dd5..b36806b 100644 --- a/Hardware/LPC/F718XX.cs +++ b/Hardware/LPC/F718XX.cs @@ -52,8 +52,8 @@ namespace OpenHardwareMonitor.Hardware.LPC { this.chip = chip; voltages = new float?[chip == Chip.F71858 ? 3 : 9]; - temperatures = new float?[3]; - fans = new float?[chip == Chip.F71882 || chip == Chip.F71858? 4 : 3]; + temperatures = new float?[chip == Chip.F71808E ? 2 : 3]; + fans = new float?[chip == Chip.F71882 || chip == Chip.F71858 ? 4 : 3]; controls = new float?[0]; } @@ -102,8 +102,13 @@ namespace OpenHardwareMonitor.Hardware.LPC { return; for (int i = 0; i < voltages.Length; i++) { - int value = ReadByte((byte)(VOLTAGE_BASE_REG + i)); - voltages[i] = 0.008f * value; + if (chip == Chip.F71808E && i == 6) { + // 0x26 is reserved on F71808E + voltages[i] = 0; + } else { + int value = ReadByte((byte)(VOLTAGE_BASE_REG + i)); + voltages[i] = 0.008f * value; + } } for (int i = 0; i < temperatures.Length; i++) { diff --git a/Hardware/LPC/LPCIO.cs b/Hardware/LPC/LPCIO.cs index d3520b9..1f26b49 100644 --- a/Hardware/LPC/LPCIO.cs +++ b/Hardware/LPC/LPCIO.cs @@ -122,6 +122,10 @@ namespace OpenHardwareMonitor.Hardware.LPC { } break; case 0x09: switch (revision) { + case 0x01: + chip = Chip.F71808E; + logicalDeviceNumber = FINTEK_HARDWARE_MONITOR_LDN; + break; case 0x09: chip = Chip.F71889ED; logicalDeviceNumber = FINTEK_HARDWARE_MONITOR_LDN; @@ -276,6 +280,7 @@ namespace OpenHardwareMonitor.Hardware.LPC { case Chip.F71889AD: case Chip.F71889ED: case Chip.F71889F: + case Chip.F71808E: if (vendorID != FINTEK_VENDOR_ID) { report.Append("Chip ID: 0x"); report.AppendLine(chip.ToString("X")); diff --git a/Hardware/Mainboard/SuperIOHardware.cs b/Hardware/Mainboard/SuperIOHardware.cs index f1c6ae9..94cfef4 100644 --- a/Hardware/Mainboard/SuperIOHardware.cs +++ b/Hardware/Mainboard/SuperIOHardware.cs @@ -576,6 +576,7 @@ namespace OpenHardwareMonitor.Hardware.Mainboard { case Chip.F71889AD: case Chip.F71889ED: case Chip.F71889F: + case Chip.F71808E: switch (manufacturer) { case Manufacturer.EVGA: switch (model) { @@ -620,7 +621,8 @@ namespace OpenHardwareMonitor.Hardware.Mainboard { v.Add(new Voltage("Voltage #4", 3, true)); v.Add(new Voltage("Voltage #5", 4, true)); v.Add(new Voltage("Voltage #6", 5, true)); - v.Add(new Voltage("Voltage #7", 6, true)); + if (superIO.Chip != Chip.F71808E) + v.Add(new Voltage("Voltage #7", 6, true)); v.Add(new Voltage("VSB3V", 7, 150, 150)); v.Add(new Voltage("VBat", 8, 150, 150)); for (int i = 0; i < superIO.Temperatures.Length; i++)