# HG changeset patch # User moel.mich # Date 1340489668 0 # Node ID b4e37f5b2669b45c20402fea08b89727190f284c # Parent 0899f651d5cf853634c5f0893c225cb9121b8212 Added support for IT8705F super I/O chips. diff -r 0899f651d5cf -r b4e37f5b2669 Hardware/LPC/Chip.cs --- a/Hardware/LPC/Chip.cs Fri Jun 22 10:05:23 2012 +0000 +++ b/Hardware/LPC/Chip.cs Sat Jun 23 22:14:28 2012 +0000 @@ -24,6 +24,7 @@ F71889F = 0x0723, F71808E = 0x0901, + IT8705F = 0x8705, IT8712F = 0x8712, IT8716F = 0x8716, IT8718F = 0x8718, @@ -64,6 +65,7 @@ case Chip.F71889F: return "Fintek F71889F"; case Chip.F71808E: return "Fintek F71808E"; + case Chip.IT8705F: return "ITE IT8705F"; case Chip.IT8712F: return "ITE IT8712F"; case Chip.IT8716F: return "ITE IT8716F"; case Chip.IT8718F: return "ITE IT8718F"; diff -r 0899f651d5cf -r b4e37f5b2669 Hardware/LPC/IT87XX.cs --- a/Hardware/LPC/IT87XX.cs Fri Jun 22 10:05:23 2012 +0000 +++ b/Hardware/LPC/IT87XX.cs Sat Jun 23 22:14:28 2012 +0000 @@ -102,7 +102,7 @@ voltages = new float?[9]; temperatures = new float?[3]; - fans = new float?[5]; + fans = new float?[chip == Chip.IT8705F ? 3 : 5]; // IT8721F, IT8728F and IT8772E use a 12mV resultion ADC, all others 16mV if (chip == Chip.IT8721F || chip == Chip.IT8728F || chip == Chip.IT8771E @@ -113,8 +113,10 @@ voltageGain = 0.016f; } - // older IT8721F revision do not have 16-bit fan counters - if (chip == Chip.IT8712F && version < 8) { + // older IT8705F and IT8721F revisions do not have 16-bit fan counters + if ((chip == Chip.IT8705F && version < 3) || + (chip == Chip.IT8712F && version < 8)) + { has16bitFanCounter = false; } else { has16bitFanCounter = true; @@ -132,6 +134,7 @@ case Chip.IT8721F: gpioCount = 8; break; + case Chip.IT8705F: case Chip.IT8728F: case Chip.IT8771E: case Chip.IT8772E: diff -r 0899f651d5cf -r b4e37f5b2669 Hardware/LPC/LMSensors.cs --- a/Hardware/LPC/LMSensors.cs Fri Jun 22 10:05:23 2012 +0000 +++ b/Hardware/LPC/LMSensors.cs Sat Jun 23 22:14:28 2012 +0000 @@ -4,7 +4,7 @@ License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. - Copyright (C) 2009-2011 Michael Möller + Copyright (C) 2009-2012 Michael Möller */ @@ -44,6 +44,8 @@ case "f71889fg": lmChips.Add(new LMChip(Chip.F71889F, path)); break; + case "it8705": + lmChips.Add(new LMChip(Chip.IT8705F, path)); break; case "it8712": lmChips.Add(new LMChip(Chip.IT8712F, path)); break; case "it8716": diff -r 0899f651d5cf -r b4e37f5b2669 Hardware/LPC/LPCIO.cs --- a/Hardware/LPC/LPCIO.cs Fri Jun 22 10:05:23 2012 +0000 +++ b/Hardware/LPC/LPCIO.cs Sat Jun 23 22:14:28 2012 +0000 @@ -309,7 +309,8 @@ #region ITE private const byte IT87_ENVIRONMENT_CONTROLLER_LDN = 0x04; - private const byte IT87_GPIO_LDN = 0x07; + private const byte IT8705_GPIO_LDN = 0x05; + private const byte IT87XX_GPIO_LDN = 0x07; private const byte IT87_CHIP_VERSION_REGISTER = 0x22; private void IT87Enter() { @@ -335,6 +336,7 @@ ushort chipID = ReadWord(CHIP_ID_REGISTER); Chip chip; switch (chipID) { + case 0x8705: chip = Chip.IT8705F; break; case 0x8712: chip = Chip.IT8712F; break; case 0x8716: chip = Chip.IT8716F; break; case 0x8718: chip = Chip.IT8718F; break; @@ -360,11 +362,20 @@ byte version = (byte)(ReadByte(IT87_CHIP_VERSION_REGISTER) & 0x0F); - Select(IT87_GPIO_LDN); - ushort gpioAddress = ReadWord(BASE_ADDRESS_REGISTER + 2); - Thread.Sleep(1); - ushort gpioVerify = ReadWord(BASE_ADDRESS_REGISTER + 2); - + ushort gpioAddress; + ushort gpioVerify; + if (chip == Chip.IT8705F) { + Select(IT8705_GPIO_LDN); + gpioAddress = ReadWord(BASE_ADDRESS_REGISTER); + Thread.Sleep(1); + gpioVerify = ReadWord(BASE_ADDRESS_REGISTER); + } else { + Select(IT87XX_GPIO_LDN); + gpioAddress = ReadWord(BASE_ADDRESS_REGISTER + 2); + Thread.Sleep(1); + gpioVerify = ReadWord(BASE_ADDRESS_REGISTER + 2); + } + IT87Exit(); if (address != verify || address < 0x100 || (address & 0xF007) != 0) { diff -r 0899f651d5cf -r b4e37f5b2669 Hardware/Mainboard/SuperIOHardware.cs --- a/Hardware/Mainboard/SuperIOHardware.cs Fri Jun 22 10:05:23 2012 +0000 +++ b/Hardware/Mainboard/SuperIOHardware.cs Sat Jun 23 22:14:28 2012 +0000 @@ -62,6 +62,7 @@ List c = new List(); switch (superIO.Chip) { + case Chip.IT8705F: case Chip.IT8712F: case Chip.IT8716F: case Chip.IT8718F: diff -r 0899f651d5cf -r b4e37f5b2669 Properties/AssemblyVersion.cs --- a/Properties/AssemblyVersion.cs Fri Jun 22 10:05:23 2012 +0000 +++ b/Properties/AssemblyVersion.cs Sat Jun 23 22:14:28 2012 +0000 @@ -10,5 +10,5 @@ using System.Reflection; -[assembly: AssemblyVersion("0.4.0.8")] -[assembly: AssemblyInformationalVersion("0.4.0.8 Alpha")] \ No newline at end of file +[assembly: AssemblyVersion("0.4.0.10")] +[assembly: AssemblyInformationalVersion("0.4.0.10 Alpha")] \ No newline at end of file