# HG changeset patch # User moel.mich # Date 1340359523 0 # Node ID 0899f651d5cf853634c5f0893c225cb9121b8212 # Parent d389607e74ca9eabea35f6c6f2229dca259efa52 Integrated the patch for Fintek F71808E super I/O support developed by Andrey Mushatov. diff -r d389607e74ca -r 0899f651d5cf Hardware/LPC/Chip.cs --- a/Hardware/LPC/Chip.cs Mon May 28 13:45:38 2012 +0000 +++ b/Hardware/LPC/Chip.cs Fri Jun 22 10:05:23 2012 +0000 @@ -22,6 +22,7 @@ F71889AD = 0x1005, F71889ED = 0x0909, F71889F = 0x0723, + F71808E = 0x0901, IT8712F = 0x8712, IT8716F = 0x8716, @@ -61,6 +62,7 @@ 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 -r d389607e74ca -r 0899f651d5cf Hardware/LPC/F718XX.cs --- a/Hardware/LPC/F718XX.cs Mon May 28 13:45:38 2012 +0000 +++ b/Hardware/LPC/F718XX.cs Fri Jun 22 10:05:23 2012 +0000 @@ -52,8 +52,8 @@ 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 @@ 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 -r d389607e74ca -r 0899f651d5cf Hardware/LPC/LPCIO.cs --- a/Hardware/LPC/LPCIO.cs Mon May 28 13:45:38 2012 +0000 +++ b/Hardware/LPC/LPCIO.cs Fri Jun 22 10:05:23 2012 +0000 @@ -122,6 +122,10 @@ } 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 @@ 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 -r d389607e74ca -r 0899f651d5cf Hardware/Mainboard/SuperIOHardware.cs --- a/Hardware/Mainboard/SuperIOHardware.cs Mon May 28 13:45:38 2012 +0000 +++ b/Hardware/Mainboard/SuperIOHardware.cs Fri Jun 22 10:05:23 2012 +0000 @@ -576,6 +576,7 @@ case Chip.F71889AD: case Chip.F71889ED: case Chip.F71889F: + case Chip.F71808E: switch (manufacturer) { case Manufacturer.EVGA: switch (model) { @@ -620,7 +621,8 @@ 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++)