Integrated the patch for Fintek F71808E super I/O support developed by Andrey Mushatov.
1.1 --- a/Hardware/LPC/Chip.cs Mon May 28 13:45:38 2012 +0000
1.2 +++ b/Hardware/LPC/Chip.cs Fri Jun 22 10:05:23 2012 +0000
1.3 @@ -22,6 +22,7 @@
1.4 F71889AD = 0x1005,
1.5 F71889ED = 0x0909,
1.6 F71889F = 0x0723,
1.7 + F71808E = 0x0901,
1.8
1.9 IT8712F = 0x8712,
1.10 IT8716F = 0x8716,
1.11 @@ -61,6 +62,7 @@
1.12 case Chip.F71889AD: return "Fintek F71889AD";
1.13 case Chip.F71889ED: return "Fintek F71889ED";
1.14 case Chip.F71889F: return "Fintek F71889F";
1.15 + case Chip.F71808E: return "Fintek F71808E";
1.16
1.17 case Chip.IT8712F: return "ITE IT8712F";
1.18 case Chip.IT8716F: return "ITE IT8716F";
2.1 --- a/Hardware/LPC/F718XX.cs Mon May 28 13:45:38 2012 +0000
2.2 +++ b/Hardware/LPC/F718XX.cs Fri Jun 22 10:05:23 2012 +0000
2.3 @@ -52,8 +52,8 @@
2.4 this.chip = chip;
2.5
2.6 voltages = new float?[chip == Chip.F71858 ? 3 : 9];
2.7 - temperatures = new float?[3];
2.8 - fans = new float?[chip == Chip.F71882 || chip == Chip.F71858? 4 : 3];
2.9 + temperatures = new float?[chip == Chip.F71808E ? 2 : 3];
2.10 + fans = new float?[chip == Chip.F71882 || chip == Chip.F71858 ? 4 : 3];
2.11 controls = new float?[0];
2.12 }
2.13
2.14 @@ -102,8 +102,13 @@
2.15 return;
2.16
2.17 for (int i = 0; i < voltages.Length; i++) {
2.18 - int value = ReadByte((byte)(VOLTAGE_BASE_REG + i));
2.19 - voltages[i] = 0.008f * value;
2.20 + if (chip == Chip.F71808E && i == 6) {
2.21 + // 0x26 is reserved on F71808E
2.22 + voltages[i] = 0;
2.23 + } else {
2.24 + int value = ReadByte((byte)(VOLTAGE_BASE_REG + i));
2.25 + voltages[i] = 0.008f * value;
2.26 + }
2.27 }
2.28
2.29 for (int i = 0; i < temperatures.Length; i++) {
3.1 --- a/Hardware/LPC/LPCIO.cs Mon May 28 13:45:38 2012 +0000
3.2 +++ b/Hardware/LPC/LPCIO.cs Fri Jun 22 10:05:23 2012 +0000
3.3 @@ -122,6 +122,10 @@
3.4 } break;
3.5 case 0x09:
3.6 switch (revision) {
3.7 + case 0x01:
3.8 + chip = Chip.F71808E;
3.9 + logicalDeviceNumber = FINTEK_HARDWARE_MONITOR_LDN;
3.10 + break;
3.11 case 0x09:
3.12 chip = Chip.F71889ED;
3.13 logicalDeviceNumber = FINTEK_HARDWARE_MONITOR_LDN;
3.14 @@ -276,6 +280,7 @@
3.15 case Chip.F71889AD:
3.16 case Chip.F71889ED:
3.17 case Chip.F71889F:
3.18 + case Chip.F71808E:
3.19 if (vendorID != FINTEK_VENDOR_ID) {
3.20 report.Append("Chip ID: 0x");
3.21 report.AppendLine(chip.ToString("X"));
4.1 --- a/Hardware/Mainboard/SuperIOHardware.cs Mon May 28 13:45:38 2012 +0000
4.2 +++ b/Hardware/Mainboard/SuperIOHardware.cs Fri Jun 22 10:05:23 2012 +0000
4.3 @@ -576,6 +576,7 @@
4.4 case Chip.F71889AD:
4.5 case Chip.F71889ED:
4.6 case Chip.F71889F:
4.7 + case Chip.F71808E:
4.8 switch (manufacturer) {
4.9 case Manufacturer.EVGA:
4.10 switch (model) {
4.11 @@ -620,7 +621,8 @@
4.12 v.Add(new Voltage("Voltage #4", 3, true));
4.13 v.Add(new Voltage("Voltage #5", 4, true));
4.14 v.Add(new Voltage("Voltage #6", 5, true));
4.15 - v.Add(new Voltage("Voltage #7", 6, true));
4.16 + if (superIO.Chip != Chip.F71808E)
4.17 + v.Add(new Voltage("Voltage #7", 6, true));
4.18 v.Add(new Voltage("VSB3V", 7, 150, 150));
4.19 v.Add(new Voltage("VBat", 8, 150, 150));
4.20 for (int i = 0; i < superIO.Temperatures.Length; i++)