Refactored the SuperIOHardware class.
1.1 --- a/Hardware/Mainboard/SuperIOHardware.cs Sun Jul 21 21:02:55 2013 +0000
1.2 +++ b/Hardware/Mainboard/SuperIOHardware.cs Sun Jul 21 21:03:31 2013 +0000
1.3 @@ -10,12 +10,11 @@
1.4
1.5 using System;
1.6 using System.Collections.Generic;
1.7 -using System.Globalization;
1.8 using System.Threading;
1.9 using OpenHardwareMonitor.Hardware.LPC;
1.10
1.11 namespace OpenHardwareMonitor.Hardware.Mainboard {
1.12 - internal class SuperIOHardware : Hardware {
1.13 + internal sealed class SuperIOHardware : Hardware {
1.14
1.15 private readonly Mainboard mainboard;
1.16 private readonly ISuperIO superIO;
1.17 @@ -43,416 +42,248 @@
1.18 public SuperIOHardware(Mainboard mainboard, ISuperIO superIO,
1.19 Manufacturer manufacturer, Model model, ISettings settings)
1.20 : base(ChipName.GetName(superIO.Chip), new Identifier("lpc",
1.21 - superIO.Chip.ToString().ToLower(CultureInfo.InvariantCulture)),
1.22 - settings)
1.23 + superIO.Chip.ToString().ToLowerInvariant()), settings)
1.24 {
1.25 this.mainboard = mainboard;
1.26 this.superIO = superIO;
1.27
1.28 - this.readVoltage = (index) => superIO.Voltages[index];
1.29 - this.readTemperature = (index) => superIO.Temperatures[index];
1.30 - this.readFan = (index) => superIO.Fans[index];
1.31 - this.readControl = (index) => superIO.Controls[index];
1.32 + IList<Voltage> v;
1.33 + IList<Temperature> t;
1.34 + IList<Fan> f;
1.35 + IList<Ctrl> c;
1.36 + GetBoardSpecificConfiguration(superIO, manufacturer, model,
1.37 + out v, out t, out f, out c,
1.38 + out readVoltage, out readTemperature, out readFan, out readControl,
1.39 + out postUpdate, out mutex);
1.40
1.41 - this.postUpdate = () => { };
1.42 + CreateVoltageSensors(superIO, settings, v);
1.43 + CreateTemperatureSensors(superIO, settings, t);
1.44 + CreateFanSensors(superIO, settings, f);
1.45 + CreateControlSensors(superIO, settings, c);
1.46 + }
1.47
1.48 - List<Voltage> v = new List<Voltage>();
1.49 - List<Temperature> t = new List<Temperature>();
1.50 - List<Fan> f = new List<Fan>();
1.51 - List<Ctrl> c = new List<Ctrl>();
1.52 + private void CreateControlSensors(ISuperIO superIO, ISettings settings,
1.53 + IList<Ctrl> c)
1.54 + {
1.55 + foreach (Ctrl ctrl in c) {
1.56 + int index = ctrl.Index;
1.57 + if (index < superIO.Controls.Length) {
1.58 + Sensor sensor = new Sensor(ctrl.Name, index, SensorType.Control,
1.59 + this, settings);
1.60 + Control control = new Control(sensor, settings, 0, 100);
1.61 + control.ControlModeChanged += (cc) => {
1.62 + if (cc.ControlMode == ControlMode.Default) {
1.63 + superIO.SetControl(index, null);
1.64 + } else {
1.65 + superIO.SetControl(index, (byte)(cc.SoftwareValue * 2.55));
1.66 + }
1.67 + };
1.68 + control.SoftwareControlValueChanged += (cc) => {
1.69 + if (cc.ControlMode == ControlMode.Software)
1.70 + superIO.SetControl(index, (byte)(cc.SoftwareValue * 2.55));
1.71 + };
1.72 + if (control.ControlMode == ControlMode.Software)
1.73 + superIO.SetControl(index, (byte)(control.SoftwareValue * 2.55));
1.74 + sensor.Control = control;
1.75 + controls.Add(sensor);
1.76 + ActivateSensor(sensor);
1.77 + }
1.78 + }
1.79 + }
1.80 +
1.81 + private void CreateFanSensors(ISuperIO superIO, ISettings settings,
1.82 + IList<Fan> f)
1.83 + {
1.84 + foreach (Fan fan in f) {
1.85 + if (fan.Index < superIO.Fans.Length) {
1.86 + Sensor sensor = new Sensor(fan.Name, fan.Index, SensorType.Fan,
1.87 + this, settings);
1.88 + fans.Add(sensor);
1.89 + }
1.90 + }
1.91 + }
1.92 +
1.93 + private void CreateTemperatureSensors(ISuperIO superIO, ISettings settings,
1.94 + IList<Temperature> t)
1.95 + {
1.96 + foreach (Temperature temperature in t)
1.97 + if (temperature.Index < superIO.Temperatures.Length) {
1.98 + Sensor sensor = new Sensor(temperature.Name, temperature.Index,
1.99 + SensorType.Temperature, this, new[] {
1.100 + new ParameterDescription("Offset [°C]", "Temperature offset.", 0)
1.101 + }, settings);
1.102 + temperatures.Add(sensor);
1.103 + }
1.104 + }
1.105 +
1.106 + private void CreateVoltageSensors(ISuperIO superIO, ISettings settings,
1.107 + IList<Voltage> v)
1.108 + {
1.109 + const string formula = "Voltage = value + (value - Vf) * Ri / Rf.";
1.110 + foreach (Voltage voltage in v)
1.111 + if (voltage.Index < superIO.Voltages.Length) {
1.112 + Sensor sensor = new Sensor(voltage.Name, voltage.Index,
1.113 + voltage.Hidden, SensorType.Voltage, this, new[] {
1.114 + new ParameterDescription("Ri [kΩ]", "Input resistance.\n" +
1.115 + formula, voltage.Ri),
1.116 + new ParameterDescription("Rf [kΩ]", "Reference resistance.\n" +
1.117 + formula, voltage.Rf),
1.118 + new ParameterDescription("Vf [V]", "Reference voltage.\n" +
1.119 + formula, voltage.Vf)
1.120 + }, settings);
1.121 + voltages.Add(sensor);
1.122 + }
1.123 + }
1.124 +
1.125 + private static void GetBoardSpecificConfiguration(ISuperIO superIO,
1.126 + Manufacturer manufacturer, Model model, out IList<Voltage> v,
1.127 + out IList<Temperature> t, out IList<Fan> f, out IList<Ctrl> c,
1.128 + out ReadValueDelegate readVoltage,
1.129 + out ReadValueDelegate readTemperature,
1.130 + out ReadValueDelegate readFan,
1.131 + out ReadValueDelegate readControl,
1.132 + out UpdateDelegate postUpdate, out Mutex mutex) {
1.133 + readVoltage = (index) => superIO.Voltages[index];
1.134 + readTemperature = (index) => superIO.Temperatures[index];
1.135 + readFan = (index) => superIO.Fans[index];
1.136 + readControl = (index) => superIO.Controls[index];
1.137 +
1.138 + postUpdate = () => { };
1.139 + mutex = null;
1.140 +
1.141 + v = new List<Voltage>();
1.142 + t = new List<Temperature>();
1.143 + f = new List<Fan>();
1.144 + c = new List<Ctrl>();
1.145
1.146 switch (superIO.Chip) {
1.147 case Chip.IT8705F:
1.148 case Chip.IT8712F:
1.149 case Chip.IT8716F:
1.150 case Chip.IT8718F:
1.151 - case Chip.IT8720F:
1.152 - case Chip.IT8726F:
1.153 - switch (manufacturer) {
1.154 - case Manufacturer.ASUS:
1.155 - switch (model) {
1.156 - case Model.Crosshair_III_Formula: // IT8720F
1.157 - v.Add(new Voltage("VBat", 8));
1.158 - t.Add(new Temperature("CPU", 0));
1.159 - for (int i = 0; i < superIO.Fans.Length; i++)
1.160 - f.Add(new Fan("Fan #" + (i + 1), i));
1.161 - break;
1.162 - case Model.M2N_SLI_DELUXE:
1.163 - v.Add(new Voltage("CPU VCore", 0));
1.164 - v.Add(new Voltage("+3.3V", 1));
1.165 - v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.166 - v.Add(new Voltage("+12V", 4, 30, 10));
1.167 - v.Add(new Voltage("+5VSB", 7, 6.8f, 10));
1.168 - v.Add(new Voltage("VBat", 8));
1.169 - t.Add(new Temperature("CPU", 0));
1.170 - t.Add(new Temperature("Motherboard", 1));
1.171 - f.Add(new Fan("CPU Fan", 0));
1.172 - f.Add(new Fan("Chassis Fan #1", 1));
1.173 - f.Add(new Fan("Power Fan", 2));
1.174 - break;
1.175 - case Model.M4A79XTD_EVO: // IT8720F
1.176 - v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.177 - v.Add(new Voltage("VBat", 8));
1.178 - t.Add(new Temperature("CPU", 0));
1.179 - t.Add(new Temperature("Motherboard", 1));
1.180 - f.Add(new Fan("CPU Fan", 0));
1.181 - f.Add(new Fan("Chassis Fan #1", 1));
1.182 - f.Add(new Fan("Chassis Fan #2", 2));
1.183 - break;
1.184 - default:
1.185 - v.Add(new Voltage("CPU VCore", 0));
1.186 - v.Add(new Voltage("Voltage #2", 1, true));
1.187 - v.Add(new Voltage("Voltage #3", 2, true));
1.188 - v.Add(new Voltage("Voltage #4", 3, true));
1.189 - v.Add(new Voltage("Voltage #5", 4, true));
1.190 - v.Add(new Voltage("Voltage #6", 5, true));
1.191 - v.Add(new Voltage("Voltage #7", 6, true));
1.192 - v.Add(new Voltage("Voltage #8", 7, true));
1.193 - v.Add(new Voltage("VBat", 8));
1.194 - for (int i = 0; i < superIO.Temperatures.Length; i++)
1.195 - t.Add(new Temperature("Temperature #" + (i + 1), i));
1.196 - for (int i = 0; i < superIO.Fans.Length; i++)
1.197 - f.Add(new Fan("Fan #" + (i + 1), i));
1.198 - for (int i = 0; i < superIO.Controls.Length; i++)
1.199 - c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.200 - break;
1.201 - }
1.202 + case Chip.IT8720F:
1.203 + case Chip.IT8726F:
1.204 + GetITEConfigurationsA(superIO, manufacturer, model, v, t, f, c,
1.205 + ref readFan, ref postUpdate, ref mutex);
1.206 + break;
1.207 +
1.208 + case Chip.IT8721F:
1.209 + case Chip.IT8728F:
1.210 + case Chip.IT8771E:
1.211 + case Chip.IT8772E:
1.212 + GetITEConfigurationsB(superIO, manufacturer, model, v, t, f, c);
1.213 + break;
1.214 +
1.215 + case Chip.F71858:
1.216 + v.Add(new Voltage("VCC3V", 0, 150, 150));
1.217 + v.Add(new Voltage("VSB3V", 1, 150, 150));
1.218 + v.Add(new Voltage("Battery", 2, 150, 150));
1.219 + for (int i = 0; i < superIO.Temperatures.Length; i++)
1.220 + t.Add(new Temperature("Temperature #" + (i + 1), i));
1.221 + for (int i = 0; i < superIO.Fans.Length; i++)
1.222 + f.Add(new Fan("Fan #" + (i + 1), i));
1.223 + break;
1.224 + case Chip.F71862:
1.225 + case Chip.F71869:
1.226 + case Chip.F71869A:
1.227 + case Chip.F71882:
1.228 + case Chip.F71889AD:
1.229 + case Chip.F71889ED:
1.230 + case Chip.F71889F:
1.231 + case Chip.F71808E:
1.232 + GetFintekConfiguration(superIO, manufacturer, model, v, t, f);
1.233 + break;
1.234 +
1.235 + case Chip.W83627EHF:
1.236 + GetWinbondConfigurationEHF(manufacturer, model, v, t, f);
1.237 + break;
1.238 + case Chip.W83627DHG:
1.239 + case Chip.W83627DHGP:
1.240 + case Chip.W83667HG:
1.241 + case Chip.W83667HGB:
1.242 + GetWinbondConfigurationHG(manufacturer, model, v, t, f);
1.243 + break;
1.244 + case Chip.W83627HF:
1.245 + case Chip.W83627THF:
1.246 + case Chip.W83687THF:
1.247 + v.Add(new Voltage("CPU VCore", 0));
1.248 + v.Add(new Voltage("Voltage #2", 1, true));
1.249 + v.Add(new Voltage("Voltage #3", 2, true));
1.250 + v.Add(new Voltage("AVCC", 3, 34, 51));
1.251 + v.Add(new Voltage("Voltage #5", 4, true));
1.252 + v.Add(new Voltage("5VSB", 5, 34, 51));
1.253 + v.Add(new Voltage("VBAT", 6));
1.254 + t.Add(new Temperature("CPU", 0));
1.255 + t.Add(new Temperature("Auxiliary", 1));
1.256 + t.Add(new Temperature("System", 2));
1.257 + f.Add(new Fan("System Fan", 0));
1.258 + f.Add(new Fan("CPU Fan", 1));
1.259 + f.Add(new Fan("Auxiliary Fan", 2));
1.260 + break;
1.261 + case Chip.NCT6771F:
1.262 + case Chip.NCT6776F:
1.263 + GetNuvotonConfigurationF(superIO, manufacturer, model, v, t, f, c);
1.264 + break;
1.265 + case Chip.NCT6779D:
1.266 + case Chip.NCT6791D:
1.267 + GetNuvotonConfigurationD(superIO, manufacturer, model, v, t, f, c);
1.268 + break;
1.269 + default:
1.270 + GetDefaultConfiguration(superIO, v, t, f, c);
1.271 + break;
1.272 + }
1.273 + }
1.274 +
1.275 + private static void GetDefaultConfiguration(ISuperIO superIO,
1.276 + IList<Voltage> v, IList<Temperature> t, IList<Fan> f, IList<Ctrl> c)
1.277 + {
1.278 + for (int i = 0; i < superIO.Voltages.Length; i++)
1.279 + v.Add(new Voltage("Voltage #" + (i + 1), i, true));
1.280 + for (int i = 0; i < superIO.Temperatures.Length; i++)
1.281 + t.Add(new Temperature("Temperature #" + (i + 1), i));
1.282 + for (int i = 0; i < superIO.Fans.Length; i++)
1.283 + f.Add(new Fan("Fan #" + (i + 1), i));
1.284 + for (int i = 0; i < superIO.Controls.Length; i++)
1.285 + c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.286 + }
1.287 +
1.288 + private static void GetITEConfigurationsA(ISuperIO superIO,
1.289 + Manufacturer manufacturer, Model model,
1.290 + IList<Voltage> v, IList<Temperature> t, IList<Fan> f, IList<Ctrl> c,
1.291 + ref ReadValueDelegate readFan, ref UpdateDelegate postUpdate,
1.292 + ref Mutex mutex)
1.293 + {
1.294 + switch (manufacturer) {
1.295 + case Manufacturer.ASUS:
1.296 + switch (model) {
1.297 + case Model.Crosshair_III_Formula: // IT8720F
1.298 + v.Add(new Voltage("VBat", 8));
1.299 + t.Add(new Temperature("CPU", 0));
1.300 + for (int i = 0; i < superIO.Fans.Length; i++)
1.301 + f.Add(new Fan("Fan #" + (i + 1), i));
1.302 break;
1.303 -
1.304 - case Manufacturer.ASRock:
1.305 - switch (model) {
1.306 - case Model.P55_Deluxe: // IT8720F
1.307 -
1.308 - v.Add(new Voltage("CPU VCore", 0));
1.309 - v.Add(new Voltage("+3.3V", 2));
1.310 - v.Add(new Voltage("+12V", 4, 30, 10));
1.311 - v.Add(new Voltage("+5V", 5, 6.8f, 10));
1.312 - v.Add(new Voltage("VBat", 8));
1.313 - t.Add(new Temperature("CPU", 0));
1.314 - t.Add(new Temperature("Motherboard", 1));
1.315 - f.Add(new Fan("CPU Fan", 0));
1.316 - f.Add(new Fan("Chassis Fan #1", 1));
1.317 -
1.318 - // this mutex is also used by the official ASRock tool
1.319 - mutex = new Mutex(false, "ASRockOCMark");
1.320 -
1.321 - bool exclusiveAccess = false;
1.322 - try {
1.323 - exclusiveAccess = mutex.WaitOne(10, false);
1.324 - } catch (AbandonedMutexException) { }
1.325 - catch (InvalidOperationException) { }
1.326 -
1.327 - // only read additional fans if we get exclusive access
1.328 - if (exclusiveAccess) {
1.329 -
1.330 - f.Add(new Fan("Chassis Fan #2", 2));
1.331 - f.Add(new Fan("Chassis Fan #3", 3));
1.332 - f.Add(new Fan("Power Fan", 4));
1.333 -
1.334 - readFan = (index) => {
1.335 - if (index < 2) {
1.336 - return superIO.Fans[index];
1.337 - } else {
1.338 - // get GPIO 80-87
1.339 - byte? gpio = superIO.ReadGPIO(7);
1.340 - if (!gpio.HasValue)
1.341 - return null;
1.342 -
1.343 - // read the last 3 fans based on GPIO 83-85
1.344 - int[] masks = { 0x05, 0x03, 0x06 };
1.345 - return (((gpio.Value >> 3) & 0x07) ==
1.346 - masks[index - 2]) ? superIO.Fans[2] : null;
1.347 - }
1.348 - };
1.349 -
1.350 - int fanIndex = 0;
1.351 - postUpdate = () => {
1.352 - // get GPIO 80-87
1.353 - byte? gpio = superIO.ReadGPIO(7);
1.354 - if (!gpio.HasValue)
1.355 - return;
1.356 -
1.357 - // prepare the GPIO 83-85 for the next update
1.358 - int[] masks = { 0x05, 0x03, 0x06 };
1.359 - superIO.WriteGPIO(7,
1.360 - (byte)((gpio.Value & 0xC7) | (masks[fanIndex] << 3)));
1.361 - fanIndex = (fanIndex + 1) % 3;
1.362 - };
1.363 - }
1.364 -
1.365 - break;
1.366 - default:
1.367 - v.Add(new Voltage("CPU VCore", 0));
1.368 - v.Add(new Voltage("Voltage #2", 1, true));
1.369 - v.Add(new Voltage("Voltage #3", 2, true));
1.370 - v.Add(new Voltage("Voltage #4", 3, true));
1.371 - v.Add(new Voltage("Voltage #5", 4, true));
1.372 - v.Add(new Voltage("Voltage #6", 5, true));
1.373 - v.Add(new Voltage("Voltage #7", 6, true));
1.374 - v.Add(new Voltage("Voltage #8", 7, true));
1.375 - v.Add(new Voltage("VBat", 8));
1.376 - for (int i = 0; i < superIO.Temperatures.Length; i++)
1.377 - t.Add(new Temperature("Temperature #" + (i + 1), i));
1.378 - for (int i = 0; i < superIO.Fans.Length; i++)
1.379 - f.Add(new Fan("Fan #" + (i + 1), i));
1.380 - break;
1.381 - };
1.382 + case Model.M2N_SLI_DELUXE:
1.383 + v.Add(new Voltage("CPU VCore", 0));
1.384 + v.Add(new Voltage("+3.3V", 1));
1.385 + v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.386 + v.Add(new Voltage("+12V", 4, 30, 10));
1.387 + v.Add(new Voltage("+5VSB", 7, 6.8f, 10));
1.388 + v.Add(new Voltage("VBat", 8));
1.389 + t.Add(new Temperature("CPU", 0));
1.390 + t.Add(new Temperature("Motherboard", 1));
1.391 + f.Add(new Fan("CPU Fan", 0));
1.392 + f.Add(new Fan("Chassis Fan #1", 1));
1.393 + f.Add(new Fan("Power Fan", 2));
1.394 break;
1.395 -
1.396 - case Manufacturer.DFI:
1.397 - switch (model) {
1.398 - case Model.LP_BI_P45_T2RS_Elite: // IT8718F
1.399 - v.Add(new Voltage("CPU VCore", 0));
1.400 - v.Add(new Voltage("FSB VTT", 1));
1.401 - v.Add(new Voltage("+3.3V", 2));
1.402 - v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.403 - v.Add(new Voltage("+12V", 4, 30, 10));
1.404 - v.Add(new Voltage("NB Core", 5));
1.405 - v.Add(new Voltage("VDIMM", 6));
1.406 - v.Add(new Voltage("+5VSB", 7, 6.8f, 10));
1.407 - v.Add(new Voltage("VBat", 8));
1.408 - t.Add(new Temperature("CPU", 0));
1.409 - t.Add(new Temperature("System", 1));
1.410 - t.Add(new Temperature("Chipset", 2));
1.411 - f.Add(new Fan("Fan #1", 0));
1.412 - f.Add(new Fan("Fan #2", 1));
1.413 - f.Add(new Fan("Fan #3", 2));
1.414 - break;
1.415 - case Model.LP_DK_P55_T3eH9: // IT8720F
1.416 - v.Add(new Voltage("CPU VCore", 0));
1.417 - v.Add(new Voltage("VTT", 1));
1.418 - v.Add(new Voltage("+3.3V", 2));
1.419 - v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.420 - v.Add(new Voltage("+12V", 4, 30, 10));
1.421 - v.Add(new Voltage("CPU PLL", 5));
1.422 - v.Add(new Voltage("DRAM", 6));
1.423 - v.Add(new Voltage("+5VSB", 7, 6.8f, 10));
1.424 - v.Add(new Voltage("VBat", 8));
1.425 - t.Add(new Temperature("Chipset", 0));
1.426 - t.Add(new Temperature("CPU PWM", 1));
1.427 - t.Add(new Temperature("CPU", 2));
1.428 - f.Add(new Fan("Fan #1", 0));
1.429 - f.Add(new Fan("Fan #2", 1));
1.430 - f.Add(new Fan("Fan #3", 2));
1.431 - break;
1.432 - default:
1.433 - v.Add(new Voltage("CPU VCore", 0));
1.434 - v.Add(new Voltage("VTT", 1, true));
1.435 - v.Add(new Voltage("+3.3V", 2, true));
1.436 - v.Add(new Voltage("+5V", 3, 6.8f, 10, 0, true));
1.437 - v.Add(new Voltage("+12V", 4, 30, 10, 0, true));
1.438 - v.Add(new Voltage("Voltage #6", 5, true));
1.439 - v.Add(new Voltage("DRAM", 6, true));
1.440 - v.Add(new Voltage("+5VSB", 7, 6.8f, 10, 0, true));
1.441 - v.Add(new Voltage("VBat", 8));
1.442 - for (int i = 0; i < superIO.Temperatures.Length; i++)
1.443 - t.Add(new Temperature("Temperature #" + (i + 1), i));
1.444 - for (int i = 0; i < superIO.Fans.Length; i++)
1.445 - f.Add(new Fan("Fan #" + (i + 1), i));
1.446 - for (int i = 0; i < superIO.Controls.Length; i++)
1.447 - c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.448 - break;
1.449 - }
1.450 + case Model.M4A79XTD_EVO: // IT8720F
1.451 + v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.452 + v.Add(new Voltage("VBat", 8));
1.453 + t.Add(new Temperature("CPU", 0));
1.454 + t.Add(new Temperature("Motherboard", 1));
1.455 + f.Add(new Fan("CPU Fan", 0));
1.456 + f.Add(new Fan("Chassis Fan #1", 1));
1.457 + f.Add(new Fan("Chassis Fan #2", 2));
1.458 break;
1.459 -
1.460 - case Manufacturer.Gigabyte:
1.461 - switch (model) {
1.462 - case Model._965P_S3: // IT8718F
1.463 - v.Add(new Voltage("CPU VCore", 0));
1.464 - v.Add(new Voltage("DRAM", 1));
1.465 - v.Add(new Voltage("+3.3V", 2));
1.466 - v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.467 - v.Add(new Voltage("+12V", 7, 24.3f, 8.2f));
1.468 - v.Add(new Voltage("VBat", 8));
1.469 - t.Add(new Temperature("System", 0));
1.470 - t.Add(new Temperature("CPU", 1));
1.471 - f.Add(new Fan("CPU Fan", 0));
1.472 - f.Add(new Fan("System Fan", 1));
1.473 - break;
1.474 - case Model.EP45_DS3R: // IT8718F
1.475 - case Model.EP45_UD3R:
1.476 - case Model.X38_DS5:
1.477 - v.Add(new Voltage("CPU VCore", 0));
1.478 - v.Add(new Voltage("DRAM", 1));
1.479 - v.Add(new Voltage("+3.3V", 2));
1.480 - v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.481 - v.Add(new Voltage("+12V", 7, 24.3f, 8.2f));
1.482 - v.Add(new Voltage("VBat", 8));
1.483 - t.Add(new Temperature("System", 0));
1.484 - t.Add(new Temperature("CPU", 1));
1.485 - f.Add(new Fan("CPU Fan", 0));
1.486 - f.Add(new Fan("System Fan #2", 1));
1.487 - f.Add(new Fan("Power Fan", 2));
1.488 - f.Add(new Fan("System Fan #1", 3));
1.489 - break;
1.490 - case Model.EX58_EXTREME: // IT8720F
1.491 - v.Add(new Voltage("CPU VCore", 0));
1.492 - v.Add(new Voltage("DRAM", 1));
1.493 - v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.494 - v.Add(new Voltage("VBat", 8));
1.495 - t.Add(new Temperature("System", 0));
1.496 - t.Add(new Temperature("CPU", 1));
1.497 - t.Add(new Temperature("Northbridge", 2));
1.498 - f.Add(new Fan("CPU Fan", 0));
1.499 - f.Add(new Fan("System Fan #2", 1));
1.500 - f.Add(new Fan("Power Fan", 2));
1.501 - f.Add(new Fan("System Fan #1", 3));
1.502 - break;
1.503 - case Model.P35_DS3: // IT8718F
1.504 - case Model.P35_DS3L: // IT8718F
1.505 - v.Add(new Voltage("CPU VCore", 0));
1.506 - v.Add(new Voltage("DRAM", 1));
1.507 - v.Add(new Voltage("+3.3V", 2));
1.508 - v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.509 - v.Add(new Voltage("+12V", 7, 24.3f, 8.2f));
1.510 - v.Add(new Voltage("VBat", 8));
1.511 - t.Add(new Temperature("System", 0));
1.512 - t.Add(new Temperature("CPU", 1));
1.513 - f.Add(new Fan("CPU Fan", 0));
1.514 - f.Add(new Fan("System Fan #1", 1));
1.515 - f.Add(new Fan("System Fan #2", 2));
1.516 - f.Add(new Fan("Power Fan", 3));
1.517 - break;
1.518 - case Model.P55_UD4: // IT8720F
1.519 - case Model.P55A_UD3: // IT8720F
1.520 - case Model.P55M_UD4: // IT8720F
1.521 - case Model.H55_USB3: // IT8720F
1.522 - case Model.EX58_UD3R: // IT8720F
1.523 - v.Add(new Voltage("CPU VCore", 0));
1.524 - v.Add(new Voltage("DRAM", 1));
1.525 - v.Add(new Voltage("+3.3V", 2));
1.526 - v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.527 - v.Add(new Voltage("+12V", 5, 24.3f, 8.2f));
1.528 - v.Add(new Voltage("VBat", 8));
1.529 - t.Add(new Temperature("System", 0));
1.530 - t.Add(new Temperature("CPU", 2));
1.531 - f.Add(new Fan("CPU Fan", 0));
1.532 - f.Add(new Fan("System Fan #2", 1));
1.533 - f.Add(new Fan("Power Fan", 2));
1.534 - f.Add(new Fan("System Fan #1", 3));
1.535 - break;
1.536 - case Model.H55N_USB3: // IT8720F
1.537 - v.Add(new Voltage("CPU VCore", 0));
1.538 - v.Add(new Voltage("DRAM", 1));
1.539 - v.Add(new Voltage("+3.3V", 2));
1.540 - v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.541 - v.Add(new Voltage("+12V", 5, 24.3f, 8.2f));
1.542 - v.Add(new Voltage("VBat", 8));
1.543 - t.Add(new Temperature("System", 0));
1.544 - t.Add(new Temperature("CPU", 2));
1.545 - f.Add(new Fan("CPU Fan", 0));
1.546 - f.Add(new Fan("System Fan", 1));
1.547 - break;
1.548 - case Model.G41M_Combo: // IT8718F
1.549 - case Model.G41MT_S2: // IT8718F
1.550 - case Model.G41MT_S2P: // IT8718F
1.551 - v.Add(new Voltage("CPU VCore", 0));
1.552 - v.Add(new Voltage("DRAM", 1));
1.553 - v.Add(new Voltage("+3.3V", 2));
1.554 - v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.555 - v.Add(new Voltage("+12V", 7, 24.3f, 8.2f));
1.556 - v.Add(new Voltage("VBat", 8));
1.557 - t.Add(new Temperature("CPU", 2));
1.558 - f.Add(new Fan("CPU Fan", 0));
1.559 - f.Add(new Fan("System Fan", 1));
1.560 - break;
1.561 - case Model.GA_970A_UD3: // IT8720F
1.562 - v.Add(new Voltage("CPU VCore", 0));
1.563 - v.Add(new Voltage("DRAM", 1));
1.564 - v.Add(new Voltage("+3.3V", 2));
1.565 - v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.566 - v.Add(new Voltage("+12V", 4, 24.3f, 8.2f));
1.567 - v.Add(new Voltage("VBat", 8));
1.568 - t.Add(new Temperature("System", 0));
1.569 - t.Add(new Temperature("CPU", 1));
1.570 - f.Add(new Fan("CPU Fan", 0));
1.571 - f.Add(new Fan("System Fan #1", 1));
1.572 - f.Add(new Fan("System Fan #2", 2));
1.573 - f.Add(new Fan("Power Fan", 4));
1.574 - c.Add(new Ctrl("PWM 1", 0));
1.575 - c.Add(new Ctrl("PWM 2", 1));
1.576 - c.Add(new Ctrl("PWM 3", 2));
1.577 - break;
1.578 - case Model.GA_MA770T_UD3: // IT8720F
1.579 - case Model.GA_MA770T_UD3P: // IT8720F
1.580 - case Model.GA_MA790X_UD3P: // IT8720F
1.581 - v.Add(new Voltage("CPU VCore", 0));
1.582 - v.Add(new Voltage("DRAM", 1));
1.583 - v.Add(new Voltage("+3.3V", 2));
1.584 - v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.585 - v.Add(new Voltage("+12V", 4, 24.3f, 8.2f));
1.586 - v.Add(new Voltage("VBat", 8));
1.587 - t.Add(new Temperature("System", 0));
1.588 - t.Add(new Temperature("CPU", 1));
1.589 - f.Add(new Fan("CPU Fan", 0));
1.590 - f.Add(new Fan("System Fan #1", 1));
1.591 - f.Add(new Fan("System Fan #2", 2));
1.592 - f.Add(new Fan("Power Fan", 3));
1.593 - break;
1.594 - case Model.GA_MA78LM_S2H: // IT8718F
1.595 - v.Add(new Voltage("CPU VCore", 0));
1.596 - v.Add(new Voltage("DRAM", 1));
1.597 - v.Add(new Voltage("+3.3V", 2));
1.598 - v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.599 - v.Add(new Voltage("+12V", 4, 24.3f, 8.2f));
1.600 - v.Add(new Voltage("VBat", 8));
1.601 - t.Add(new Temperature("System", 0));
1.602 - t.Add(new Temperature("CPU", 1));
1.603 - t.Add(new Temperature("VRM", 2));
1.604 - f.Add(new Fan("CPU Fan", 0));
1.605 - f.Add(new Fan("System Fan #1", 1));
1.606 - f.Add(new Fan("System Fan #2", 2));
1.607 - f.Add(new Fan("Power Fan", 3));
1.608 - break;
1.609 - case Model.GA_MA785GM_US2H: // IT8718F
1.610 - case Model.GA_MA785GMT_UD2H: // IT8718F
1.611 - v.Add(new Voltage("CPU VCore", 0));
1.612 - v.Add(new Voltage("DRAM", 1));
1.613 - v.Add(new Voltage("+3.3V", 2));
1.614 - v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.615 - v.Add(new Voltage("+12V", 4, 24.3f, 8.2f));
1.616 - v.Add(new Voltage("VBat", 8));
1.617 - t.Add(new Temperature("System", 0));
1.618 - t.Add(new Temperature("CPU", 1));
1.619 - f.Add(new Fan("CPU Fan", 0));
1.620 - f.Add(new Fan("System Fan", 1));
1.621 - f.Add(new Fan("NB Fan", 2));
1.622 - break;
1.623 - case Model.X58A_UD3R: // IT8720F
1.624 - v.Add(new Voltage("CPU VCore", 0));
1.625 - v.Add(new Voltage("DRAM", 1));
1.626 - v.Add(new Voltage("+3.3V", 2));
1.627 - v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.628 - v.Add(new Voltage("+12V", 5, 24.3f, 8.2f));
1.629 - v.Add(new Voltage("VBat", 8));
1.630 - t.Add(new Temperature("System", 0));
1.631 - t.Add(new Temperature("CPU", 1));
1.632 - t.Add(new Temperature("Northbridge", 2));
1.633 - f.Add(new Fan("CPU Fan", 0));
1.634 - f.Add(new Fan("System Fan #2", 1));
1.635 - f.Add(new Fan("Power Fan", 2));
1.636 - f.Add(new Fan("System Fan #1", 3));
1.637 - break;
1.638 - default:
1.639 - v.Add(new Voltage("CPU VCore", 0));
1.640 - v.Add(new Voltage("DRAM", 1, true));
1.641 - v.Add(new Voltage("+3.3V", 2, true));
1.642 - v.Add(new Voltage("+5V", 3, 6.8f, 10, 0, true));
1.643 - v.Add(new Voltage("Voltage #5", 4, true));
1.644 - v.Add(new Voltage("Voltage #6", 5, true));
1.645 - v.Add(new Voltage("Voltage #7", 6, true));
1.646 - v.Add(new Voltage("Voltage #8", 7, true));
1.647 - v.Add(new Voltage("VBat", 8));
1.648 - for (int i = 0; i < superIO.Temperatures.Length; i++)
1.649 - t.Add(new Temperature("Temperature #" + (i + 1), i));
1.650 - for (int i = 0; i < superIO.Fans.Length; i++)
1.651 - f.Add(new Fan("Fan #" + (i + 1), i));
1.652 - for (int i = 0; i < superIO.Controls.Length; i++)
1.653 - c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.654 - break;
1.655 - }
1.656 - break;
1.657 -
1.658 default:
1.659 v.Add(new Voltage("CPU VCore", 0));
1.660 v.Add(new Voltage("Voltage #2", 1, true));
1.661 @@ -473,184 +304,492 @@
1.662 }
1.663 break;
1.664
1.665 - case Chip.IT8721F:
1.666 - case Chip.IT8728F:
1.667 - case Chip.IT8771E:
1.668 - case Chip.IT8772E:
1.669 - switch (manufacturer) {
1.670 - case Manufacturer.ECS:
1.671 - switch (model) {
1.672 - case Model.A890GXM_A: // IT8721F
1.673 - v.Add(new Voltage("CPU VCore", 0));
1.674 - v.Add(new Voltage("VDIMM", 1));
1.675 - v.Add(new Voltage("NB Voltage", 2));
1.676 - v.Add(new Voltage("Analog +3.3V", 3, 10, 10));
1.677 - // v.Add(new Voltage("VDIMM", 6, true));
1.678 - v.Add(new Voltage("Standby +3.3V", 7, 10, 10));
1.679 - v.Add(new Voltage("VBat", 8, 10, 10));
1.680 - t.Add(new Temperature("CPU", 0));
1.681 - t.Add(new Temperature("System", 1));
1.682 - t.Add(new Temperature("Northbridge", 2));
1.683 - f.Add(new Fan("CPU Fan", 0));
1.684 - f.Add(new Fan("System Fan", 1));
1.685 - f.Add(new Fan("Power Fan", 2));
1.686 - break;
1.687 - default:
1.688 - v.Add(new Voltage("Voltage #1", 0, true));
1.689 - v.Add(new Voltage("Voltage #2", 1, true));
1.690 - v.Add(new Voltage("Voltage #3", 2, true));
1.691 - v.Add(new Voltage("Analog +3.3V", 3, 10, 10, 0, true));
1.692 - v.Add(new Voltage("Voltage #5", 4, true));
1.693 - v.Add(new Voltage("Voltage #6", 5, true));
1.694 - v.Add(new Voltage("Voltage #7", 6, true));
1.695 - v.Add(new Voltage("Standby +3.3V", 7, 10, 10, 0, true));
1.696 - v.Add(new Voltage("VBat", 8, 10, 10));
1.697 - for (int i = 0; i < superIO.Temperatures.Length; i++)
1.698 - t.Add(new Temperature("Temperature #" + (i + 1), i));
1.699 - for (int i = 0; i < superIO.Fans.Length; i++)
1.700 - f.Add(new Fan("Fan #" + (i + 1), i));
1.701 - for (int i = 0; i < superIO.Controls.Length; i++)
1.702 - c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.703 - break;
1.704 - }
1.705 + case Manufacturer.ASRock:
1.706 + switch (model) {
1.707 + case Model.P55_Deluxe: // IT8720F
1.708 + GetASRockConfiguration(superIO, v, t, f,
1.709 + ref readFan, ref postUpdate, ref mutex);
1.710 break;
1.711 - case Manufacturer.Gigabyte:
1.712 - switch (model) {
1.713 - case Model.H61M_DS2_REV_1_2: // IT8728F
1.714 - case Model.H61M_USB3_B3_REV_2_0: // IT8728F
1.715 - v.Add(new Voltage("VTT", 0));
1.716 - v.Add(new Voltage("+12V", 2, 30.9f, 10));
1.717 - v.Add(new Voltage("CPU VCore", 5));
1.718 - v.Add(new Voltage("DRAM", 6));
1.719 - v.Add(new Voltage("Standby +3.3V", 7, 10, 10));
1.720 - v.Add(new Voltage("VBat", 8, 10, 10));
1.721 - t.Add(new Temperature("System", 0));
1.722 - t.Add(new Temperature("CPU", 2));
1.723 - f.Add(new Fan("CPU Fan", 0));
1.724 - f.Add(new Fan("System Fan", 1));
1.725 - break;
1.726 - case Model.H67A_UD3H_B3: // IT8728F
1.727 - case Model.H67A_USB3_B3: // IT8728F
1.728 - v.Add(new Voltage("VTT", 0));
1.729 - v.Add(new Voltage("+5V", 1, 15, 10));
1.730 - v.Add(new Voltage("+12V", 2, 30.9f, 10));
1.731 - v.Add(new Voltage("CPU VCore", 5));
1.732 - v.Add(new Voltage("DRAM", 6));
1.733 - v.Add(new Voltage("Standby +3.3V", 7, 10, 10));
1.734 - v.Add(new Voltage("VBat", 8, 10, 10));
1.735 - t.Add(new Temperature("System", 0));
1.736 - t.Add(new Temperature("CPU", 2));
1.737 - f.Add(new Fan("CPU Fan", 0));
1.738 - f.Add(new Fan("System Fan #1", 1));
1.739 - f.Add(new Fan("Power Fan", 2));
1.740 - f.Add(new Fan("System Fan #2", 3));
1.741 - break;
1.742 - case Model.Z68A_D3H_B3: // IT8728F
1.743 - v.Add(new Voltage("VTT", 0));
1.744 - v.Add(new Voltage("+3.3V", 1, 6.49f, 10));
1.745 - v.Add(new Voltage("+12V", 2, 30.9f, 10));
1.746 - v.Add(new Voltage("+5V", 3, 7.15f, 10));
1.747 - v.Add(new Voltage("CPU VCore", 5));
1.748 - v.Add(new Voltage("DRAM", 6));
1.749 - v.Add(new Voltage("Standby +3.3V", 7, 10, 10));
1.750 - v.Add(new Voltage("VBat", 8, 10, 10));
1.751 - t.Add(new Temperature("System", 0));
1.752 - t.Add(new Temperature("CPU", 2));
1.753 - f.Add(new Fan("CPU Fan", 0));
1.754 - f.Add(new Fan("System Fan #1", 1));
1.755 - f.Add(new Fan("Power Fan", 2));
1.756 - f.Add(new Fan("System Fan #2", 3));
1.757 - break;
1.758 - case Model.P67A_UD3_B3: // IT8728F
1.759 - case Model.P67A_UD3R_B3: // IT8728F
1.760 - case Model.P67A_UD4_B3: // IT8728F
1.761 - case Model.Z68AP_D3: // IT8728F
1.762 - case Model.Z68X_UD3H_B3: // IT8728F
1.763 - v.Add(new Voltage("VTT", 0));
1.764 - v.Add(new Voltage("+3.3V", 1, 6.49f, 10));
1.765 - v.Add(new Voltage("+12V", 2, 30.9f, 10));
1.766 - v.Add(new Voltage("+5V", 3, 7.15f, 10));
1.767 - v.Add(new Voltage("CPU VCore", 5));
1.768 - v.Add(new Voltage("DRAM", 6));
1.769 - v.Add(new Voltage("Standby +3.3V", 7, 10, 10));
1.770 - v.Add(new Voltage("VBat", 8, 10, 10));
1.771 - t.Add(new Temperature("System", 0));
1.772 - t.Add(new Temperature("CPU", 2));
1.773 - f.Add(new Fan("CPU Fan", 0));
1.774 - f.Add(new Fan("System Fan #2", 1));
1.775 - f.Add(new Fan("Power Fan", 2));
1.776 - f.Add(new Fan("System Fan #1", 3));
1.777 - break;
1.778 - case Model.Z68X_UD7_B3: // IT8728F
1.779 - v.Add(new Voltage("VTT", 0));
1.780 - v.Add(new Voltage("+3.3V", 1, 6.49f, 10));
1.781 - v.Add(new Voltage("+12V", 2, 30.9f, 10));
1.782 - v.Add(new Voltage("+5V", 3, 7.15f, 10));
1.783 - v.Add(new Voltage("CPU VCore", 5));
1.784 - v.Add(new Voltage("DRAM", 6));
1.785 - v.Add(new Voltage("Standby +3.3V", 7, 10, 10));
1.786 - v.Add(new Voltage("VBat", 8, 10, 10));
1.787 - t.Add(new Temperature("System", 0));
1.788 - t.Add(new Temperature("CPU", 1));
1.789 - t.Add(new Temperature("System 3", 2));
1.790 - f.Add(new Fan("CPU Fan", 0));
1.791 - f.Add(new Fan("Power Fan", 1));
1.792 - f.Add(new Fan("System Fan #1", 2));
1.793 - f.Add(new Fan("System Fan #2", 3));
1.794 - f.Add(new Fan("System Fan #3", 4));
1.795 - break;
1.796 - default:
1.797 - v.Add(new Voltage("Voltage #1", 0, true));
1.798 - v.Add(new Voltage("Voltage #2", 1, true));
1.799 - v.Add(new Voltage("Voltage #3", 2, true));
1.800 - v.Add(new Voltage("Voltage #4", 3, true));
1.801 - v.Add(new Voltage("Voltage #5", 4, true));
1.802 - v.Add(new Voltage("Voltage #6", 5, true));
1.803 - v.Add(new Voltage("Voltage #7", 6, true));
1.804 - v.Add(new Voltage("Standby +3.3V", 7, 10, 10, 0, true));
1.805 - v.Add(new Voltage("VBat", 8, 10, 10));
1.806 - for (int i = 0; i < superIO.Temperatures.Length; i++)
1.807 - t.Add(new Temperature("Temperature #" + (i + 1), i));
1.808 - for (int i = 0; i < superIO.Fans.Length; i++)
1.809 - f.Add(new Fan("Fan #" + (i + 1), i));
1.810 - for (int i = 0; i < superIO.Controls.Length; i++)
1.811 - c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.812 - break;
1.813 - }
1.814 + default:
1.815 + v.Add(new Voltage("CPU VCore", 0));
1.816 + v.Add(new Voltage("Voltage #2", 1, true));
1.817 + v.Add(new Voltage("Voltage #3", 2, true));
1.818 + v.Add(new Voltage("Voltage #4", 3, true));
1.819 + v.Add(new Voltage("Voltage #5", 4, true));
1.820 + v.Add(new Voltage("Voltage #6", 5, true));
1.821 + v.Add(new Voltage("Voltage #7", 6, true));
1.822 + v.Add(new Voltage("Voltage #8", 7, true));
1.823 + v.Add(new Voltage("VBat", 8));
1.824 + for (int i = 0; i < superIO.Temperatures.Length; i++)
1.825 + t.Add(new Temperature("Temperature #" + (i + 1), i));
1.826 + for (int i = 0; i < superIO.Fans.Length; i++)
1.827 + f.Add(new Fan("Fan #" + (i + 1), i));
1.828 break;
1.829 - case Manufacturer.Shuttle:
1.830 - switch (model) {
1.831 - case Model.FH67: // IT8772E
1.832 - v.Add(new Voltage("CPU VCore", 0));
1.833 - v.Add(new Voltage("DRAM", 1));
1.834 - v.Add(new Voltage("PCH VCCIO", 2));
1.835 - v.Add(new Voltage("CPU VCCIO", 3));
1.836 - v.Add(new Voltage("Graphic Voltage", 4));
1.837 - v.Add(new Voltage("Standby +3.3V", 7, 10, 10));
1.838 - v.Add(new Voltage("VBat", 8, 10, 10));
1.839 - t.Add(new Temperature("System", 0));
1.840 - t.Add(new Temperature("CPU", 1));
1.841 - f.Add(new Fan("Fan #1", 0));
1.842 - f.Add(new Fan("CPU Fan", 1));
1.843 - break;
1.844 - default:
1.845 - v.Add(new Voltage("Voltage #1", 0, true));
1.846 - v.Add(new Voltage("Voltage #2", 1, true));
1.847 - v.Add(new Voltage("Voltage #3", 2, true));
1.848 - v.Add(new Voltage("Voltage #4", 3, true));
1.849 - v.Add(new Voltage("Voltage #5", 4, true));
1.850 - v.Add(new Voltage("Voltage #6", 5, true));
1.851 - v.Add(new Voltage("Voltage #7", 6, true));
1.852 - v.Add(new Voltage("Standby +3.3V", 7, 10, 10, 0, true));
1.853 - v.Add(new Voltage("VBat", 8, 10, 10));
1.854 - for (int i = 0; i < superIO.Temperatures.Length; i++)
1.855 - t.Add(new Temperature("Temperature #" + (i + 1), i));
1.856 - for (int i = 0; i < superIO.Fans.Length; i++)
1.857 - f.Add(new Fan("Fan #" + (i + 1), i));
1.858 - for (int i = 0; i < superIO.Controls.Length; i++)
1.859 - c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.860 - break;
1.861 - }
1.862 + };
1.863 + break;
1.864 +
1.865 + case Manufacturer.DFI:
1.866 + switch (model) {
1.867 + case Model.LP_BI_P45_T2RS_Elite: // IT8718F
1.868 + v.Add(new Voltage("CPU VCore", 0));
1.869 + v.Add(new Voltage("FSB VTT", 1));
1.870 + v.Add(new Voltage("+3.3V", 2));
1.871 + v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.872 + v.Add(new Voltage("+12V", 4, 30, 10));
1.873 + v.Add(new Voltage("NB Core", 5));
1.874 + v.Add(new Voltage("VDIMM", 6));
1.875 + v.Add(new Voltage("+5VSB", 7, 6.8f, 10));
1.876 + v.Add(new Voltage("VBat", 8));
1.877 + t.Add(new Temperature("CPU", 0));
1.878 + t.Add(new Temperature("System", 1));
1.879 + t.Add(new Temperature("Chipset", 2));
1.880 + f.Add(new Fan("Fan #1", 0));
1.881 + f.Add(new Fan("Fan #2", 1));
1.882 + f.Add(new Fan("Fan #3", 2));
1.883 + break;
1.884 + case Model.LP_DK_P55_T3eH9: // IT8720F
1.885 + v.Add(new Voltage("CPU VCore", 0));
1.886 + v.Add(new Voltage("VTT", 1));
1.887 + v.Add(new Voltage("+3.3V", 2));
1.888 + v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.889 + v.Add(new Voltage("+12V", 4, 30, 10));
1.890 + v.Add(new Voltage("CPU PLL", 5));
1.891 + v.Add(new Voltage("DRAM", 6));
1.892 + v.Add(new Voltage("+5VSB", 7, 6.8f, 10));
1.893 + v.Add(new Voltage("VBat", 8));
1.894 + t.Add(new Temperature("Chipset", 0));
1.895 + t.Add(new Temperature("CPU PWM", 1));
1.896 + t.Add(new Temperature("CPU", 2));
1.897 + f.Add(new Fan("Fan #1", 0));
1.898 + f.Add(new Fan("Fan #2", 1));
1.899 + f.Add(new Fan("Fan #3", 2));
1.900 + break;
1.901 + default:
1.902 + v.Add(new Voltage("CPU VCore", 0));
1.903 + v.Add(new Voltage("VTT", 1, true));
1.904 + v.Add(new Voltage("+3.3V", 2, true));
1.905 + v.Add(new Voltage("+5V", 3, 6.8f, 10, 0, true));
1.906 + v.Add(new Voltage("+12V", 4, 30, 10, 0, true));
1.907 + v.Add(new Voltage("Voltage #6", 5, true));
1.908 + v.Add(new Voltage("DRAM", 6, true));
1.909 + v.Add(new Voltage("+5VSB", 7, 6.8f, 10, 0, true));
1.910 + v.Add(new Voltage("VBat", 8));
1.911 + for (int i = 0; i < superIO.Temperatures.Length; i++)
1.912 + t.Add(new Temperature("Temperature #" + (i + 1), i));
1.913 + for (int i = 0; i < superIO.Fans.Length; i++)
1.914 + f.Add(new Fan("Fan #" + (i + 1), i));
1.915 + for (int i = 0; i < superIO.Controls.Length; i++)
1.916 + c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.917 + break;
1.918 + }
1.919 + break;
1.920 +
1.921 + case Manufacturer.Gigabyte:
1.922 + switch (model) {
1.923 + case Model._965P_S3: // IT8718F
1.924 + v.Add(new Voltage("CPU VCore", 0));
1.925 + v.Add(new Voltage("DRAM", 1));
1.926 + v.Add(new Voltage("+3.3V", 2));
1.927 + v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.928 + v.Add(new Voltage("+12V", 7, 24.3f, 8.2f));
1.929 + v.Add(new Voltage("VBat", 8));
1.930 + t.Add(new Temperature("System", 0));
1.931 + t.Add(new Temperature("CPU", 1));
1.932 + f.Add(new Fan("CPU Fan", 0));
1.933 + f.Add(new Fan("System Fan", 1));
1.934 + break;
1.935 + case Model.EP45_DS3R: // IT8718F
1.936 + case Model.EP45_UD3R:
1.937 + case Model.X38_DS5:
1.938 + v.Add(new Voltage("CPU VCore", 0));
1.939 + v.Add(new Voltage("DRAM", 1));
1.940 + v.Add(new Voltage("+3.3V", 2));
1.941 + v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.942 + v.Add(new Voltage("+12V", 7, 24.3f, 8.2f));
1.943 + v.Add(new Voltage("VBat", 8));
1.944 + t.Add(new Temperature("System", 0));
1.945 + t.Add(new Temperature("CPU", 1));
1.946 + f.Add(new Fan("CPU Fan", 0));
1.947 + f.Add(new Fan("System Fan #2", 1));
1.948 + f.Add(new Fan("Power Fan", 2));
1.949 + f.Add(new Fan("System Fan #1", 3));
1.950 + break;
1.951 + case Model.EX58_EXTREME: // IT8720F
1.952 + v.Add(new Voltage("CPU VCore", 0));
1.953 + v.Add(new Voltage("DRAM", 1));
1.954 + v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.955 + v.Add(new Voltage("VBat", 8));
1.956 + t.Add(new Temperature("System", 0));
1.957 + t.Add(new Temperature("CPU", 1));
1.958 + t.Add(new Temperature("Northbridge", 2));
1.959 + f.Add(new Fan("CPU Fan", 0));
1.960 + f.Add(new Fan("System Fan #2", 1));
1.961 + f.Add(new Fan("Power Fan", 2));
1.962 + f.Add(new Fan("System Fan #1", 3));
1.963 + break;
1.964 + case Model.P35_DS3: // IT8718F
1.965 + case Model.P35_DS3L: // IT8718F
1.966 + v.Add(new Voltage("CPU VCore", 0));
1.967 + v.Add(new Voltage("DRAM", 1));
1.968 + v.Add(new Voltage("+3.3V", 2));
1.969 + v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.970 + v.Add(new Voltage("+12V", 7, 24.3f, 8.2f));
1.971 + v.Add(new Voltage("VBat", 8));
1.972 + t.Add(new Temperature("System", 0));
1.973 + t.Add(new Temperature("CPU", 1));
1.974 + f.Add(new Fan("CPU Fan", 0));
1.975 + f.Add(new Fan("System Fan #1", 1));
1.976 + f.Add(new Fan("System Fan #2", 2));
1.977 + f.Add(new Fan("Power Fan", 3));
1.978 + break;
1.979 + case Model.P55_UD4: // IT8720F
1.980 + case Model.P55A_UD3: // IT8720F
1.981 + case Model.P55M_UD4: // IT8720F
1.982 + case Model.H55_USB3: // IT8720F
1.983 + case Model.EX58_UD3R: // IT8720F
1.984 + v.Add(new Voltage("CPU VCore", 0));
1.985 + v.Add(new Voltage("DRAM", 1));
1.986 + v.Add(new Voltage("+3.3V", 2));
1.987 + v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.988 + v.Add(new Voltage("+12V", 5, 24.3f, 8.2f));
1.989 + v.Add(new Voltage("VBat", 8));
1.990 + t.Add(new Temperature("System", 0));
1.991 + t.Add(new Temperature("CPU", 2));
1.992 + f.Add(new Fan("CPU Fan", 0));
1.993 + f.Add(new Fan("System Fan #2", 1));
1.994 + f.Add(new Fan("Power Fan", 2));
1.995 + f.Add(new Fan("System Fan #1", 3));
1.996 + break;
1.997 + case Model.H55N_USB3: // IT8720F
1.998 + v.Add(new Voltage("CPU VCore", 0));
1.999 + v.Add(new Voltage("DRAM", 1));
1.1000 + v.Add(new Voltage("+3.3V", 2));
1.1001 + v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.1002 + v.Add(new Voltage("+12V", 5, 24.3f, 8.2f));
1.1003 + v.Add(new Voltage("VBat", 8));
1.1004 + t.Add(new Temperature("System", 0));
1.1005 + t.Add(new Temperature("CPU", 2));
1.1006 + f.Add(new Fan("CPU Fan", 0));
1.1007 + f.Add(new Fan("System Fan", 1));
1.1008 + break;
1.1009 + case Model.G41M_Combo: // IT8718F
1.1010 + case Model.G41MT_S2: // IT8718F
1.1011 + case Model.G41MT_S2P: // IT8718F
1.1012 + v.Add(new Voltage("CPU VCore", 0));
1.1013 + v.Add(new Voltage("DRAM", 1));
1.1014 + v.Add(new Voltage("+3.3V", 2));
1.1015 + v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.1016 + v.Add(new Voltage("+12V", 7, 24.3f, 8.2f));
1.1017 + v.Add(new Voltage("VBat", 8));
1.1018 + t.Add(new Temperature("CPU", 2));
1.1019 + f.Add(new Fan("CPU Fan", 0));
1.1020 + f.Add(new Fan("System Fan", 1));
1.1021 + break;
1.1022 + case Model.GA_970A_UD3: // IT8720F
1.1023 + v.Add(new Voltage("CPU VCore", 0));
1.1024 + v.Add(new Voltage("DRAM", 1));
1.1025 + v.Add(new Voltage("+3.3V", 2));
1.1026 + v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.1027 + v.Add(new Voltage("+12V", 4, 24.3f, 8.2f));
1.1028 + v.Add(new Voltage("VBat", 8));
1.1029 + t.Add(new Temperature("System", 0));
1.1030 + t.Add(new Temperature("CPU", 1));
1.1031 + f.Add(new Fan("CPU Fan", 0));
1.1032 + f.Add(new Fan("System Fan #1", 1));
1.1033 + f.Add(new Fan("System Fan #2", 2));
1.1034 + f.Add(new Fan("Power Fan", 4));
1.1035 + c.Add(new Ctrl("PWM 1", 0));
1.1036 + c.Add(new Ctrl("PWM 2", 1));
1.1037 + c.Add(new Ctrl("PWM 3", 2));
1.1038 + break;
1.1039 + case Model.GA_MA770T_UD3: // IT8720F
1.1040 + case Model.GA_MA770T_UD3P: // IT8720F
1.1041 + case Model.GA_MA790X_UD3P: // IT8720F
1.1042 + v.Add(new Voltage("CPU VCore", 0));
1.1043 + v.Add(new Voltage("DRAM", 1));
1.1044 + v.Add(new Voltage("+3.3V", 2));
1.1045 + v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.1046 + v.Add(new Voltage("+12V", 4, 24.3f, 8.2f));
1.1047 + v.Add(new Voltage("VBat", 8));
1.1048 + t.Add(new Temperature("System", 0));
1.1049 + t.Add(new Temperature("CPU", 1));
1.1050 + f.Add(new Fan("CPU Fan", 0));
1.1051 + f.Add(new Fan("System Fan #1", 1));
1.1052 + f.Add(new Fan("System Fan #2", 2));
1.1053 + f.Add(new Fan("Power Fan", 3));
1.1054 + break;
1.1055 + case Model.GA_MA78LM_S2H: // IT8718F
1.1056 + v.Add(new Voltage("CPU VCore", 0));
1.1057 + v.Add(new Voltage("DRAM", 1));
1.1058 + v.Add(new Voltage("+3.3V", 2));
1.1059 + v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.1060 + v.Add(new Voltage("+12V", 4, 24.3f, 8.2f));
1.1061 + v.Add(new Voltage("VBat", 8));
1.1062 + t.Add(new Temperature("System", 0));
1.1063 + t.Add(new Temperature("CPU", 1));
1.1064 + t.Add(new Temperature("VRM", 2));
1.1065 + f.Add(new Fan("CPU Fan", 0));
1.1066 + f.Add(new Fan("System Fan #1", 1));
1.1067 + f.Add(new Fan("System Fan #2", 2));
1.1068 + f.Add(new Fan("Power Fan", 3));
1.1069 + break;
1.1070 + case Model.GA_MA785GM_US2H: // IT8718F
1.1071 + case Model.GA_MA785GMT_UD2H: // IT8718F
1.1072 + v.Add(new Voltage("CPU VCore", 0));
1.1073 + v.Add(new Voltage("DRAM", 1));
1.1074 + v.Add(new Voltage("+3.3V", 2));
1.1075 + v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.1076 + v.Add(new Voltage("+12V", 4, 24.3f, 8.2f));
1.1077 + v.Add(new Voltage("VBat", 8));
1.1078 + t.Add(new Temperature("System", 0));
1.1079 + t.Add(new Temperature("CPU", 1));
1.1080 + f.Add(new Fan("CPU Fan", 0));
1.1081 + f.Add(new Fan("System Fan", 1));
1.1082 + f.Add(new Fan("NB Fan", 2));
1.1083 + break;
1.1084 + case Model.X58A_UD3R: // IT8720F
1.1085 + v.Add(new Voltage("CPU VCore", 0));
1.1086 + v.Add(new Voltage("DRAM", 1));
1.1087 + v.Add(new Voltage("+3.3V", 2));
1.1088 + v.Add(new Voltage("+5V", 3, 6.8f, 10));
1.1089 + v.Add(new Voltage("+12V", 5, 24.3f, 8.2f));
1.1090 + v.Add(new Voltage("VBat", 8));
1.1091 + t.Add(new Temperature("System", 0));
1.1092 + t.Add(new Temperature("CPU", 1));
1.1093 + t.Add(new Temperature("Northbridge", 2));
1.1094 + f.Add(new Fan("CPU Fan", 0));
1.1095 + f.Add(new Fan("System Fan #2", 1));
1.1096 + f.Add(new Fan("Power Fan", 2));
1.1097 + f.Add(new Fan("System Fan #1", 3));
1.1098 + break;
1.1099 + default:
1.1100 + v.Add(new Voltage("CPU VCore", 0));
1.1101 + v.Add(new Voltage("DRAM", 1, true));
1.1102 + v.Add(new Voltage("+3.3V", 2, true));
1.1103 + v.Add(new Voltage("+5V", 3, 6.8f, 10, 0, true));
1.1104 + v.Add(new Voltage("Voltage #5", 4, true));
1.1105 + v.Add(new Voltage("Voltage #6", 5, true));
1.1106 + v.Add(new Voltage("Voltage #7", 6, true));
1.1107 + v.Add(new Voltage("Voltage #8", 7, true));
1.1108 + v.Add(new Voltage("VBat", 8));
1.1109 + for (int i = 0; i < superIO.Temperatures.Length; i++)
1.1110 + t.Add(new Temperature("Temperature #" + (i + 1), i));
1.1111 + for (int i = 0; i < superIO.Fans.Length; i++)
1.1112 + f.Add(new Fan("Fan #" + (i + 1), i));
1.1113 + for (int i = 0; i < superIO.Controls.Length; i++)
1.1114 + c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.1115 + break;
1.1116 + }
1.1117 + break;
1.1118 +
1.1119 + default:
1.1120 + v.Add(new Voltage("CPU VCore", 0));
1.1121 + v.Add(new Voltage("Voltage #2", 1, true));
1.1122 + v.Add(new Voltage("Voltage #3", 2, true));
1.1123 + v.Add(new Voltage("Voltage #4", 3, true));
1.1124 + v.Add(new Voltage("Voltage #5", 4, true));
1.1125 + v.Add(new Voltage("Voltage #6", 5, true));
1.1126 + v.Add(new Voltage("Voltage #7", 6, true));
1.1127 + v.Add(new Voltage("Voltage #8", 7, true));
1.1128 + v.Add(new Voltage("VBat", 8));
1.1129 + for (int i = 0; i < superIO.Temperatures.Length; i++)
1.1130 + t.Add(new Temperature("Temperature #" + (i + 1), i));
1.1131 + for (int i = 0; i < superIO.Fans.Length; i++)
1.1132 + f.Add(new Fan("Fan #" + (i + 1), i));
1.1133 + for (int i = 0; i < superIO.Controls.Length; i++)
1.1134 + c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.1135 + break;
1.1136 + }
1.1137 + }
1.1138 +
1.1139 + private static void GetASRockConfiguration(ISuperIO superIO,
1.1140 + IList<Voltage> v, IList<Temperature> t, IList<Fan> f,
1.1141 + ref ReadValueDelegate readFan, ref UpdateDelegate postUpdate,
1.1142 + ref Mutex mutex)
1.1143 + {
1.1144 + v.Add(new Voltage("CPU VCore", 0));
1.1145 + v.Add(new Voltage("+3.3V", 2));
1.1146 + v.Add(new Voltage("+12V", 4, 30, 10));
1.1147 + v.Add(new Voltage("+5V", 5, 6.8f, 10));
1.1148 + v.Add(new Voltage("VBat", 8));
1.1149 + t.Add(new Temperature("CPU", 0));
1.1150 + t.Add(new Temperature("Motherboard", 1));
1.1151 + f.Add(new Fan("CPU Fan", 0));
1.1152 + f.Add(new Fan("Chassis Fan #1", 1));
1.1153 +
1.1154 + // this mutex is also used by the official ASRock tool
1.1155 + mutex = new Mutex(false, "ASRockOCMark");
1.1156 +
1.1157 + bool exclusiveAccess = false;
1.1158 + try {
1.1159 + exclusiveAccess = mutex.WaitOne(10, false);
1.1160 + } catch (AbandonedMutexException) { }
1.1161 + catch (InvalidOperationException) { }
1.1162 +
1.1163 + // only read additional fans if we get exclusive access
1.1164 + if (exclusiveAccess) {
1.1165 +
1.1166 + f.Add(new Fan("Chassis Fan #2", 2));
1.1167 + f.Add(new Fan("Chassis Fan #3", 3));
1.1168 + f.Add(new Fan("Power Fan", 4));
1.1169 +
1.1170 + readFan = (index) => {
1.1171 + if (index < 2) {
1.1172 + return superIO.Fans[index];
1.1173 + } else {
1.1174 + // get GPIO 80-87
1.1175 + byte? gpio = superIO.ReadGPIO(7);
1.1176 + if (!gpio.HasValue)
1.1177 + return null;
1.1178 +
1.1179 + // read the last 3 fans based on GPIO 83-85
1.1180 + int[] masks = { 0x05, 0x03, 0x06 };
1.1181 + return (((gpio.Value >> 3) & 0x07) ==
1.1182 + masks[index - 2]) ? superIO.Fans[2] : null;
1.1183 + }
1.1184 + };
1.1185 +
1.1186 + int fanIndex = 0;
1.1187 + postUpdate = () => {
1.1188 + // get GPIO 80-87
1.1189 + byte? gpio = superIO.ReadGPIO(7);
1.1190 + if (!gpio.HasValue)
1.1191 + return;
1.1192 +
1.1193 + // prepare the GPIO 83-85 for the next update
1.1194 + int[] masks = { 0x05, 0x03, 0x06 };
1.1195 + superIO.WriteGPIO(7,
1.1196 + (byte)((gpio.Value & 0xC7) | (masks[fanIndex] << 3)));
1.1197 + fanIndex = (fanIndex + 1) % 3;
1.1198 + };
1.1199 + }
1.1200 + }
1.1201 +
1.1202 + private static void GetITEConfigurationsB(ISuperIO superIO,
1.1203 + Manufacturer manufacturer, Model model,
1.1204 + IList<Voltage> v, IList<Temperature> t, IList<Fan> f, IList<Ctrl> c)
1.1205 + {
1.1206 + switch (manufacturer) {
1.1207 + case Manufacturer.ECS:
1.1208 + switch (model) {
1.1209 + case Model.A890GXM_A: // IT8721F
1.1210 + v.Add(new Voltage("CPU VCore", 0));
1.1211 + v.Add(new Voltage("VDIMM", 1));
1.1212 + v.Add(new Voltage("NB Voltage", 2));
1.1213 + v.Add(new Voltage("Analog +3.3V", 3, 10, 10));
1.1214 + // v.Add(new Voltage("VDIMM", 6, true));
1.1215 + v.Add(new Voltage("Standby +3.3V", 7, 10, 10));
1.1216 + v.Add(new Voltage("VBat", 8, 10, 10));
1.1217 + t.Add(new Temperature("CPU", 0));
1.1218 + t.Add(new Temperature("System", 1));
1.1219 + t.Add(new Temperature("Northbridge", 2));
1.1220 + f.Add(new Fan("CPU Fan", 0));
1.1221 + f.Add(new Fan("System Fan", 1));
1.1222 + f.Add(new Fan("Power Fan", 2));
1.1223 + break;
1.1224 + default:
1.1225 + v.Add(new Voltage("Voltage #1", 0, true));
1.1226 + v.Add(new Voltage("Voltage #2", 1, true));
1.1227 + v.Add(new Voltage("Voltage #3", 2, true));
1.1228 + v.Add(new Voltage("Analog +3.3V", 3, 10, 10, 0, true));
1.1229 + v.Add(new Voltage("Voltage #5", 4, true));
1.1230 + v.Add(new Voltage("Voltage #6", 5, true));
1.1231 + v.Add(new Voltage("Voltage #7", 6, true));
1.1232 + v.Add(new Voltage("Standby +3.3V", 7, 10, 10, 0, true));
1.1233 + v.Add(new Voltage("VBat", 8, 10, 10));
1.1234 + for (int i = 0; i < superIO.Temperatures.Length; i++)
1.1235 + t.Add(new Temperature("Temperature #" + (i + 1), i));
1.1236 + for (int i = 0; i < superIO.Fans.Length; i++)
1.1237 + f.Add(new Fan("Fan #" + (i + 1), i));
1.1238 + for (int i = 0; i < superIO.Controls.Length; i++)
1.1239 + c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.1240 + break;
1.1241 + }
1.1242 + break;
1.1243 + case Manufacturer.Gigabyte:
1.1244 + switch (model) {
1.1245 + case Model.H61M_DS2_REV_1_2: // IT8728F
1.1246 + case Model.H61M_USB3_B3_REV_2_0: // IT8728F
1.1247 + v.Add(new Voltage("VTT", 0));
1.1248 + v.Add(new Voltage("+12V", 2, 30.9f, 10));
1.1249 + v.Add(new Voltage("CPU VCore", 5));
1.1250 + v.Add(new Voltage("DRAM", 6));
1.1251 + v.Add(new Voltage("Standby +3.3V", 7, 10, 10));
1.1252 + v.Add(new Voltage("VBat", 8, 10, 10));
1.1253 + t.Add(new Temperature("System", 0));
1.1254 + t.Add(new Temperature("CPU", 2));
1.1255 + f.Add(new Fan("CPU Fan", 0));
1.1256 + f.Add(new Fan("System Fan", 1));
1.1257 + break;
1.1258 + case Model.H67A_UD3H_B3: // IT8728F
1.1259 + case Model.H67A_USB3_B3: // IT8728F
1.1260 + v.Add(new Voltage("VTT", 0));
1.1261 + v.Add(new Voltage("+5V", 1, 15, 10));
1.1262 + v.Add(new Voltage("+12V", 2, 30.9f, 10));
1.1263 + v.Add(new Voltage("CPU VCore", 5));
1.1264 + v.Add(new Voltage("DRAM", 6));
1.1265 + v.Add(new Voltage("Standby +3.3V", 7, 10, 10));
1.1266 + v.Add(new Voltage("VBat", 8, 10, 10));
1.1267 + t.Add(new Temperature("System", 0));
1.1268 + t.Add(new Temperature("CPU", 2));
1.1269 + f.Add(new Fan("CPU Fan", 0));
1.1270 + f.Add(new Fan("System Fan #1", 1));
1.1271 + f.Add(new Fan("Power Fan", 2));
1.1272 + f.Add(new Fan("System Fan #2", 3));
1.1273 + break;
1.1274 + case Model.Z68A_D3H_B3: // IT8728F
1.1275 + v.Add(new Voltage("VTT", 0));
1.1276 + v.Add(new Voltage("+3.3V", 1, 6.49f, 10));
1.1277 + v.Add(new Voltage("+12V", 2, 30.9f, 10));
1.1278 + v.Add(new Voltage("+5V", 3, 7.15f, 10));
1.1279 + v.Add(new Voltage("CPU VCore", 5));
1.1280 + v.Add(new Voltage("DRAM", 6));
1.1281 + v.Add(new Voltage("Standby +3.3V", 7, 10, 10));
1.1282 + v.Add(new Voltage("VBat", 8, 10, 10));
1.1283 + t.Add(new Temperature("System", 0));
1.1284 + t.Add(new Temperature("CPU", 2));
1.1285 + f.Add(new Fan("CPU Fan", 0));
1.1286 + f.Add(new Fan("System Fan #1", 1));
1.1287 + f.Add(new Fan("Power Fan", 2));
1.1288 + f.Add(new Fan("System Fan #2", 3));
1.1289 + break;
1.1290 + case Model.P67A_UD3_B3: // IT8728F
1.1291 + case Model.P67A_UD3R_B3: // IT8728F
1.1292 + case Model.P67A_UD4_B3: // IT8728F
1.1293 + case Model.Z68AP_D3: // IT8728F
1.1294 + case Model.Z68X_UD3H_B3: // IT8728F
1.1295 + v.Add(new Voltage("VTT", 0));
1.1296 + v.Add(new Voltage("+3.3V", 1, 6.49f, 10));
1.1297 + v.Add(new Voltage("+12V", 2, 30.9f, 10));
1.1298 + v.Add(new Voltage("+5V", 3, 7.15f, 10));
1.1299 + v.Add(new Voltage("CPU VCore", 5));
1.1300 + v.Add(new Voltage("DRAM", 6));
1.1301 + v.Add(new Voltage("Standby +3.3V", 7, 10, 10));
1.1302 + v.Add(new Voltage("VBat", 8, 10, 10));
1.1303 + t.Add(new Temperature("System", 0));
1.1304 + t.Add(new Temperature("CPU", 2));
1.1305 + f.Add(new Fan("CPU Fan", 0));
1.1306 + f.Add(new Fan("System Fan #2", 1));
1.1307 + f.Add(new Fan("Power Fan", 2));
1.1308 + f.Add(new Fan("System Fan #1", 3));
1.1309 + break;
1.1310 + case Model.Z68X_UD7_B3: // IT8728F
1.1311 + v.Add(new Voltage("VTT", 0));
1.1312 + v.Add(new Voltage("+3.3V", 1, 6.49f, 10));
1.1313 + v.Add(new Voltage("+12V", 2, 30.9f, 10));
1.1314 + v.Add(new Voltage("+5V", 3, 7.15f, 10));
1.1315 + v.Add(new Voltage("CPU VCore", 5));
1.1316 + v.Add(new Voltage("DRAM", 6));
1.1317 + v.Add(new Voltage("Standby +3.3V", 7, 10, 10));
1.1318 + v.Add(new Voltage("VBat", 8, 10, 10));
1.1319 + t.Add(new Temperature("System", 0));
1.1320 + t.Add(new Temperature("CPU", 1));
1.1321 + t.Add(new Temperature("System 3", 2));
1.1322 + f.Add(new Fan("CPU Fan", 0));
1.1323 + f.Add(new Fan("Power Fan", 1));
1.1324 + f.Add(new Fan("System Fan #1", 2));
1.1325 + f.Add(new Fan("System Fan #2", 3));
1.1326 + f.Add(new Fan("System Fan #3", 4));
1.1327 break;
1.1328 default:
1.1329 v.Add(new Voltage("Voltage #1", 0, true));
1.1330 @@ -671,60 +810,83 @@
1.1331 break;
1.1332 }
1.1333 break;
1.1334 -
1.1335 - case Chip.F71858:
1.1336 - v.Add(new Voltage("VCC3V", 0, 150, 150));
1.1337 - v.Add(new Voltage("VSB3V", 1, 150, 150));
1.1338 - v.Add(new Voltage("Battery", 2, 150, 150));
1.1339 + case Manufacturer.Shuttle:
1.1340 + switch (model) {
1.1341 + case Model.FH67: // IT8772E
1.1342 + v.Add(new Voltage("CPU VCore", 0));
1.1343 + v.Add(new Voltage("DRAM", 1));
1.1344 + v.Add(new Voltage("PCH VCCIO", 2));
1.1345 + v.Add(new Voltage("CPU VCCIO", 3));
1.1346 + v.Add(new Voltage("Graphic Voltage", 4));
1.1347 + v.Add(new Voltage("Standby +3.3V", 7, 10, 10));
1.1348 + v.Add(new Voltage("VBat", 8, 10, 10));
1.1349 + t.Add(new Temperature("System", 0));
1.1350 + t.Add(new Temperature("CPU", 1));
1.1351 + f.Add(new Fan("Fan #1", 0));
1.1352 + f.Add(new Fan("CPU Fan", 1));
1.1353 + break;
1.1354 + default:
1.1355 + v.Add(new Voltage("Voltage #1", 0, true));
1.1356 + v.Add(new Voltage("Voltage #2", 1, true));
1.1357 + v.Add(new Voltage("Voltage #3", 2, true));
1.1358 + v.Add(new Voltage("Voltage #4", 3, true));
1.1359 + v.Add(new Voltage("Voltage #5", 4, true));
1.1360 + v.Add(new Voltage("Voltage #6", 5, true));
1.1361 + v.Add(new Voltage("Voltage #7", 6, true));
1.1362 + v.Add(new Voltage("Standby +3.3V", 7, 10, 10, 0, true));
1.1363 + v.Add(new Voltage("VBat", 8, 10, 10));
1.1364 + for (int i = 0; i < superIO.Temperatures.Length; i++)
1.1365 + t.Add(new Temperature("Temperature #" + (i + 1), i));
1.1366 + for (int i = 0; i < superIO.Fans.Length; i++)
1.1367 + f.Add(new Fan("Fan #" + (i + 1), i));
1.1368 + for (int i = 0; i < superIO.Controls.Length; i++)
1.1369 + c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.1370 + break;
1.1371 + }
1.1372 + break;
1.1373 + default:
1.1374 + v.Add(new Voltage("Voltage #1", 0, true));
1.1375 + v.Add(new Voltage("Voltage #2", 1, true));
1.1376 + v.Add(new Voltage("Voltage #3", 2, true));
1.1377 + v.Add(new Voltage("Voltage #4", 3, true));
1.1378 + v.Add(new Voltage("Voltage #5", 4, true));
1.1379 + v.Add(new Voltage("Voltage #6", 5, true));
1.1380 + v.Add(new Voltage("Voltage #7", 6, true));
1.1381 + v.Add(new Voltage("Standby +3.3V", 7, 10, 10, 0, true));
1.1382 + v.Add(new Voltage("VBat", 8, 10, 10));
1.1383 for (int i = 0; i < superIO.Temperatures.Length; i++)
1.1384 t.Add(new Temperature("Temperature #" + (i + 1), i));
1.1385 for (int i = 0; i < superIO.Fans.Length; i++)
1.1386 f.Add(new Fan("Fan #" + (i + 1), i));
1.1387 + for (int i = 0; i < superIO.Controls.Length; i++)
1.1388 + c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.1389 break;
1.1390 - case Chip.F71862:
1.1391 - case Chip.F71869:
1.1392 - case Chip.F71869A:
1.1393 - case Chip.F71882:
1.1394 - case Chip.F71889AD:
1.1395 - case Chip.F71889ED:
1.1396 - case Chip.F71889F:
1.1397 - case Chip.F71808E:
1.1398 - switch (manufacturer) {
1.1399 - case Manufacturer.EVGA:
1.1400 - switch (model) {
1.1401 - case Model.X58_SLI_Classified: // F71882
1.1402 - v.Add(new Voltage("VCC3V", 0, 150, 150));
1.1403 - v.Add(new Voltage("CPU VCore", 1, 47, 100));
1.1404 - v.Add(new Voltage("DIMM", 2, 47, 100));
1.1405 - v.Add(new Voltage("CPU VTT", 3, 24, 100));
1.1406 - v.Add(new Voltage("IOH Vcore", 4, 24, 100));
1.1407 - v.Add(new Voltage("+5V", 5, 51, 12));
1.1408 - v.Add(new Voltage("+12V", 6, 56, 6.8f));
1.1409 - v.Add(new Voltage("3VSB", 7, 150, 150));
1.1410 - v.Add(new Voltage("VBat", 8, 150, 150));
1.1411 - t.Add(new Temperature("CPU", 0));
1.1412 - t.Add(new Temperature("VREG", 1));
1.1413 - t.Add(new Temperature("System", 2));
1.1414 - f.Add(new Fan("CPU Fan", 0));
1.1415 - f.Add(new Fan("Power Fan", 1));
1.1416 - f.Add(new Fan("Chassis Fan", 2));
1.1417 - break;
1.1418 - default:
1.1419 - v.Add(new Voltage("VCC3V", 0, 150, 150));
1.1420 - v.Add(new Voltage("CPU VCore", 1));
1.1421 - v.Add(new Voltage("Voltage #3", 2, true));
1.1422 - v.Add(new Voltage("Voltage #4", 3, true));
1.1423 - v.Add(new Voltage("Voltage #5", 4, true));
1.1424 - v.Add(new Voltage("Voltage #6", 5, true));
1.1425 - v.Add(new Voltage("Voltage #7", 6, true));
1.1426 - v.Add(new Voltage("VSB3V", 7, 150, 150));
1.1427 - v.Add(new Voltage("VBat", 8, 150, 150));
1.1428 - for (int i = 0; i < superIO.Temperatures.Length; i++)
1.1429 - t.Add(new Temperature("Temperature #" + (i + 1), i));
1.1430 - for (int i = 0; i < superIO.Fans.Length; i++)
1.1431 - f.Add(new Fan("Fan #" + (i + 1), i));
1.1432 - break;
1.1433 - }
1.1434 + }
1.1435 + }
1.1436 +
1.1437 + private static void GetFintekConfiguration(ISuperIO superIO,
1.1438 + Manufacturer manufacturer, Model model,
1.1439 + IList<Voltage> v, IList<Temperature> t, IList<Fan> f)
1.1440 + {
1.1441 + switch (manufacturer) {
1.1442 + case Manufacturer.EVGA:
1.1443 + switch (model) {
1.1444 + case Model.X58_SLI_Classified: // F71882
1.1445 + v.Add(new Voltage("VCC3V", 0, 150, 150));
1.1446 + v.Add(new Voltage("CPU VCore", 1, 47, 100));
1.1447 + v.Add(new Voltage("DIMM", 2, 47, 100));
1.1448 + v.Add(new Voltage("CPU VTT", 3, 24, 100));
1.1449 + v.Add(new Voltage("IOH Vcore", 4, 24, 100));
1.1450 + v.Add(new Voltage("+5V", 5, 51, 12));
1.1451 + v.Add(new Voltage("+12V", 6, 56, 6.8f));
1.1452 + v.Add(new Voltage("3VSB", 7, 150, 150));
1.1453 + v.Add(new Voltage("VBat", 8, 150, 150));
1.1454 + t.Add(new Temperature("CPU", 0));
1.1455 + t.Add(new Temperature("VREG", 1));
1.1456 + t.Add(new Temperature("System", 2));
1.1457 + f.Add(new Fan("CPU Fan", 0));
1.1458 + f.Add(new Fan("Power Fan", 1));
1.1459 + f.Add(new Fan("Chassis Fan", 2));
1.1460 break;
1.1461 default:
1.1462 v.Add(new Voltage("VCC3V", 0, 150, 150));
1.1463 @@ -733,8 +895,7 @@
1.1464 v.Add(new Voltage("Voltage #4", 3, true));
1.1465 v.Add(new Voltage("Voltage #5", 4, true));
1.1466 v.Add(new Voltage("Voltage #6", 5, true));
1.1467 - if (superIO.Chip != Chip.F71808E)
1.1468 - v.Add(new Voltage("Voltage #7", 6, true));
1.1469 + v.Add(new Voltage("Voltage #7", 6, true));
1.1470 v.Add(new Voltage("VSB3V", 7, 150, 150));
1.1471 v.Add(new Voltage("VBat", 8, 150, 150));
1.1472 for (int i = 0; i < superIO.Temperatures.Length; i++)
1.1473 @@ -744,298 +905,101 @@
1.1474 break;
1.1475 }
1.1476 break;
1.1477 + default:
1.1478 + v.Add(new Voltage("VCC3V", 0, 150, 150));
1.1479 + v.Add(new Voltage("CPU VCore", 1));
1.1480 + v.Add(new Voltage("Voltage #3", 2, true));
1.1481 + v.Add(new Voltage("Voltage #4", 3, true));
1.1482 + v.Add(new Voltage("Voltage #5", 4, true));
1.1483 + v.Add(new Voltage("Voltage #6", 5, true));
1.1484 + if (superIO.Chip != Chip.F71808E)
1.1485 + v.Add(new Voltage("Voltage #7", 6, true));
1.1486 + v.Add(new Voltage("VSB3V", 7, 150, 150));
1.1487 + v.Add(new Voltage("VBat", 8, 150, 150));
1.1488 + for (int i = 0; i < superIO.Temperatures.Length; i++)
1.1489 + t.Add(new Temperature("Temperature #" + (i + 1), i));
1.1490 + for (int i = 0; i < superIO.Fans.Length; i++)
1.1491 + f.Add(new Fan("Fan #" + (i + 1), i));
1.1492 + break;
1.1493 + }
1.1494 + }
1.1495
1.1496 - case Chip.W83627EHF:
1.1497 - switch (manufacturer) {
1.1498 - case Manufacturer.ASRock:
1.1499 - switch (model) {
1.1500 - case Model.AOD790GX_128M: // W83627EHF
1.1501 - v.Add(new Voltage("CPU VCore", 0));
1.1502 - v.Add(new Voltage("Analog +3.3V", 2, 34, 34));
1.1503 - v.Add(new Voltage("+3.3V", 4, 10, 10));
1.1504 - v.Add(new Voltage("+5V", 5, 20, 10));
1.1505 - v.Add(new Voltage("+12V", 6, 28, 5));
1.1506 - v.Add(new Voltage("Standby +3.3V", 7, 34, 34));
1.1507 - v.Add(new Voltage("VBAT", 8, 34, 34));
1.1508 - t.Add(new Temperature("CPU", 0));
1.1509 - t.Add(new Temperature("Motherboard", 2));
1.1510 - f.Add(new Fan("CPU Fan", 0));
1.1511 - f.Add(new Fan("Chassis Fan", 1));
1.1512 - break;
1.1513 - default:
1.1514 - v.Add(new Voltage("CPU VCore", 0));
1.1515 - v.Add(new Voltage("Voltage #2", 1, true));
1.1516 - v.Add(new Voltage("AVCC", 2, 34, 34));
1.1517 - v.Add(new Voltage("3VCC", 3, 34, 34));
1.1518 - v.Add(new Voltage("Voltage #5", 4, true));
1.1519 - v.Add(new Voltage("Voltage #6", 5, true));
1.1520 - v.Add(new Voltage("Voltage #7", 6, true));
1.1521 - v.Add(new Voltage("3VSB", 7, 34, 34));
1.1522 - v.Add(new Voltage("VBAT", 8, 34, 34));
1.1523 - v.Add(new Voltage("Voltage #10", 9, true));
1.1524 - t.Add(new Temperature("CPU", 0));
1.1525 - t.Add(new Temperature("Auxiliary", 1));
1.1526 - t.Add(new Temperature("System", 2));
1.1527 - f.Add(new Fan("System Fan", 0));
1.1528 - f.Add(new Fan("CPU Fan", 1));
1.1529 - f.Add(new Fan("Auxiliary Fan", 2));
1.1530 - f.Add(new Fan("CPU Fan #2", 3));
1.1531 - f.Add(new Fan("Auxiliary Fan #2", 4));
1.1532 - break;
1.1533 - } break;
1.1534 - default:
1.1535 + private static void GetNuvotonConfigurationF(ISuperIO superIO,
1.1536 + Manufacturer manufacturer, Model model,
1.1537 + IList<Voltage> v, IList<Temperature> t, IList<Fan> f, IList<Ctrl> c)
1.1538 + {
1.1539 + switch (manufacturer) {
1.1540 + case Manufacturer.ASUS:
1.1541 + switch (model) {
1.1542 + case Model.P8P67: // NCT6776F
1.1543 + case Model.P8P67_EVO: // NCT6776F
1.1544 + case Model.P8P67_PRO: // NCT6776F
1.1545 v.Add(new Voltage("CPU VCore", 0));
1.1546 - v.Add(new Voltage("Voltage #2", 1, true));
1.1547 - v.Add(new Voltage("AVCC", 2, 34, 34));
1.1548 - v.Add(new Voltage("3VCC", 3, 34, 34));
1.1549 - v.Add(new Voltage("Voltage #5", 4, true));
1.1550 + v.Add(new Voltage("+12V", 1, 11, 1));
1.1551 + v.Add(new Voltage("Analog +3.3V", 2, 34, 34));
1.1552 + v.Add(new Voltage("+3.3V", 3, 34, 34));
1.1553 + v.Add(new Voltage("+5V", 4, 12, 3));
1.1554 + v.Add(new Voltage("Standby +3.3V", 7, 34, 34));
1.1555 + v.Add(new Voltage("VBAT", 8, 34, 34));
1.1556 + t.Add(new Temperature("CPU", 0));
1.1557 + t.Add(new Temperature("Auxiliary", 2));
1.1558 + t.Add(new Temperature("Motherboard", 3));
1.1559 + f.Add(new Fan("Chassis Fan #1", 0));
1.1560 + f.Add(new Fan("CPU Fan", 1));
1.1561 + f.Add(new Fan("Power Fan", 2));
1.1562 + f.Add(new Fan("Chassis Fan #2", 3));
1.1563 + c.Add(new Ctrl("Chassis Fan #2", 0));
1.1564 + c.Add(new Ctrl("CPU Fan", 1));
1.1565 + c.Add(new Ctrl("Chassis Fan #1", 2));
1.1566 + break;
1.1567 + case Model.P8P67_M_PRO: // NCT6776F
1.1568 + v.Add(new Voltage("CPU VCore", 0));
1.1569 + v.Add(new Voltage("+12V", 1, 11, 1));
1.1570 + v.Add(new Voltage("Analog +3.3V", 2, 34, 34));
1.1571 + v.Add(new Voltage("+3.3V", 3, 34, 34));
1.1572 + v.Add(new Voltage("+5V", 4, 12, 3));
1.1573 v.Add(new Voltage("Voltage #6", 5, true));
1.1574 v.Add(new Voltage("Voltage #7", 6, true));
1.1575 - v.Add(new Voltage("3VSB", 7, 34, 34));
1.1576 - v.Add(new Voltage("VBAT", 8, 34, 34));
1.1577 - v.Add(new Voltage("Voltage #10", 9, true));
1.1578 - t.Add(new Temperature("CPU", 0));
1.1579 - t.Add(new Temperature("Auxiliary", 1));
1.1580 - t.Add(new Temperature("System", 2));
1.1581 - f.Add(new Fan("System Fan", 0));
1.1582 - f.Add(new Fan("CPU Fan", 1));
1.1583 - f.Add(new Fan("Auxiliary Fan", 2));
1.1584 - f.Add(new Fan("CPU Fan #2", 3));
1.1585 - f.Add(new Fan("Auxiliary Fan #2", 4));
1.1586 - break;
1.1587 - }
1.1588 - break;
1.1589 - case Chip.W83627DHG:
1.1590 - case Chip.W83627DHGP:
1.1591 - case Chip.W83667HG:
1.1592 - case Chip.W83667HGB:
1.1593 - switch (manufacturer) {
1.1594 - case Manufacturer.ASRock:
1.1595 - switch (model) {
1.1596 - case Model._880GMH_USB3: // W83627DHG-P
1.1597 - v.Add(new Voltage("CPU VCore", 0));
1.1598 - v.Add(new Voltage("+3.3V", 3, 34, 34));
1.1599 - v.Add(new Voltage("+5V", 5, 15, 7.5f));
1.1600 - v.Add(new Voltage("+12V", 6, 56, 10));
1.1601 - v.Add(new Voltage("Standby +3.3V", 7, 34, 34));
1.1602 - v.Add(new Voltage("VBAT", 8, 34, 34));
1.1603 - t.Add(new Temperature("CPU", 0));
1.1604 - t.Add(new Temperature("Motherboard", 2));
1.1605 - f.Add(new Fan("Chassis Fan", 0));
1.1606 - f.Add(new Fan("CPU Fan", 1));
1.1607 - f.Add(new Fan("Power Fan", 2));
1.1608 - break;
1.1609 - default:
1.1610 - v.Add(new Voltage("CPU VCore", 0));
1.1611 - v.Add(new Voltage("Voltage #2", 1, true));
1.1612 - v.Add(new Voltage("AVCC", 2, 34, 34));
1.1613 - v.Add(new Voltage("3VCC", 3, 34, 34));
1.1614 - v.Add(new Voltage("Voltage #5", 4, true));
1.1615 - v.Add(new Voltage("Voltage #6", 5, true));
1.1616 - v.Add(new Voltage("Voltage #7", 6, true));
1.1617 - v.Add(new Voltage("3VSB", 7, 34, 34));
1.1618 - v.Add(new Voltage("VBAT", 8, 34, 34));
1.1619 - t.Add(new Temperature("CPU", 0));
1.1620 - t.Add(new Temperature("Auxiliary", 1));
1.1621 - t.Add(new Temperature("System", 2));
1.1622 - f.Add(new Fan("System Fan", 0));
1.1623 - f.Add(new Fan("CPU Fan", 1));
1.1624 - f.Add(new Fan("Auxiliary Fan", 2));
1.1625 - f.Add(new Fan("CPU Fan #2", 3));
1.1626 - f.Add(new Fan("Auxiliary Fan #2", 4));
1.1627 - break;
1.1628 - }
1.1629 - break;
1.1630 - case Manufacturer.ASUS:
1.1631 - switch (model) {
1.1632 - case Model.P6T: // W83667HG
1.1633 - case Model.P6X58D_E: // W83667HG
1.1634 - case Model.Rampage_II_GENE: // W83667HG
1.1635 - v.Add(new Voltage("CPU VCore", 0));
1.1636 - v.Add(new Voltage("+12V", 1, 11.5f, 1.91f));
1.1637 - v.Add(new Voltage("Analog +3.3V", 2, 34, 34));
1.1638 - v.Add(new Voltage("+3.3V", 3, 34, 34));
1.1639 - v.Add(new Voltage("+5V", 4, 15, 7.5f));
1.1640 - v.Add(new Voltage("Standby +3.3V", 7, 34, 34));
1.1641 - v.Add(new Voltage("VBAT", 8, 34, 34));
1.1642 - t.Add(new Temperature("CPU", 0));
1.1643 - t.Add(new Temperature("Motherboard", 2));
1.1644 - f.Add(new Fan("Chassis Fan #1", 0));
1.1645 - f.Add(new Fan("CPU Fan", 1));
1.1646 - f.Add(new Fan("Power Fan", 2));
1.1647 - f.Add(new Fan("Chassis Fan #2", 3));
1.1648 - f.Add(new Fan("Chassis Fan #3", 4));
1.1649 - break;
1.1650 - case Model.Rampage_Extreme: // W83667HG
1.1651 - v.Add(new Voltage("CPU VCore", 0));
1.1652 - v.Add(new Voltage("+12V", 1, 12, 2));
1.1653 - v.Add(new Voltage("Analog +3.3V", 2, 34, 34));
1.1654 - v.Add(new Voltage("+3.3V", 3, 34, 34));
1.1655 - v.Add(new Voltage("+5V", 4, 15, 7.5f));
1.1656 - v.Add(new Voltage("Standby +3.3V", 7, 34, 34));
1.1657 - v.Add(new Voltage("VBAT", 8, 34, 34));
1.1658 - t.Add(new Temperature("CPU", 0));
1.1659 - t.Add(new Temperature("Motherboard", 2));
1.1660 - f.Add(new Fan("Chassis Fan #1", 0));
1.1661 - f.Add(new Fan("CPU Fan", 1));
1.1662 - f.Add(new Fan("Power Fan", 2));
1.1663 - f.Add(new Fan("Chassis Fan #2", 3));
1.1664 - f.Add(new Fan("Chassis Fan #3", 4));
1.1665 - break;
1.1666 - default:
1.1667 - v.Add(new Voltage("CPU VCore", 0));
1.1668 - v.Add(new Voltage("Voltage #2", 1, true));
1.1669 - v.Add(new Voltage("AVCC", 2, 34, 34));
1.1670 - v.Add(new Voltage("3VCC", 3, 34, 34));
1.1671 - v.Add(new Voltage("Voltage #5", 4, true));
1.1672 - v.Add(new Voltage("Voltage #6", 5, true));
1.1673 - v.Add(new Voltage("Voltage #7", 6, true));
1.1674 - v.Add(new Voltage("3VSB", 7, 34, 34));
1.1675 - v.Add(new Voltage("VBAT", 8, 34, 34));
1.1676 - t.Add(new Temperature("CPU", 0));
1.1677 - t.Add(new Temperature("Auxiliary", 1));
1.1678 - t.Add(new Temperature("System", 2));
1.1679 - f.Add(new Fan("System Fan", 0));
1.1680 - f.Add(new Fan("CPU Fan", 1));
1.1681 - f.Add(new Fan("Auxiliary Fan", 2));
1.1682 - f.Add(new Fan("CPU Fan #2", 3));
1.1683 - f.Add(new Fan("Auxiliary Fan #2", 4));
1.1684 - break;
1.1685 - }
1.1686 - break;
1.1687 - default:
1.1688 - v.Add(new Voltage("CPU VCore", 0));
1.1689 - v.Add(new Voltage("Voltage #2", 1, true));
1.1690 - v.Add(new Voltage("AVCC", 2, 34, 34));
1.1691 - v.Add(new Voltage("3VCC", 3, 34, 34));
1.1692 - v.Add(new Voltage("Voltage #5", 4, true));
1.1693 - v.Add(new Voltage("Voltage #6", 5, true));
1.1694 - v.Add(new Voltage("Voltage #7", 6, true));
1.1695 - v.Add(new Voltage("3VSB", 7, 34, 34));
1.1696 + v.Add(new Voltage("Standby +3.3V", 7, 34, 34));
1.1697 v.Add(new Voltage("VBAT", 8, 34, 34));
1.1698 t.Add(new Temperature("CPU", 0));
1.1699 - t.Add(new Temperature("Auxiliary", 1));
1.1700 - t.Add(new Temperature("System", 2));
1.1701 - f.Add(new Fan("System Fan", 0));
1.1702 + t.Add(new Temperature("Motherboard", 3));
1.1703 + f.Add(new Fan("Chassis Fan #1", 0));
1.1704 f.Add(new Fan("CPU Fan", 1));
1.1705 - f.Add(new Fan("Auxiliary Fan", 2));
1.1706 - f.Add(new Fan("CPU Fan #2", 3));
1.1707 - f.Add(new Fan("Auxiliary Fan #2", 4));
1.1708 + f.Add(new Fan("Chassis Fan #2", 2));
1.1709 + f.Add(new Fan("Power Fan", 3));
1.1710 + f.Add(new Fan("Auxiliary Fan", 4));
1.1711 break;
1.1712 - }
1.1713 - break;
1.1714 - case Chip.W83627HF:
1.1715 - case Chip.W83627THF:
1.1716 - case Chip.W83687THF:
1.1717 - v.Add(new Voltage("CPU VCore", 0));
1.1718 - v.Add(new Voltage("Voltage #2", 1, true));
1.1719 - v.Add(new Voltage("Voltage #3", 2, true));
1.1720 - v.Add(new Voltage("AVCC", 3, 34, 51));
1.1721 - v.Add(new Voltage("Voltage #5", 4, true));
1.1722 - v.Add(new Voltage("5VSB", 5, 34, 51));
1.1723 - v.Add(new Voltage("VBAT", 6));
1.1724 - t.Add(new Temperature("CPU", 0));
1.1725 - t.Add(new Temperature("Auxiliary", 1));
1.1726 - t.Add(new Temperature("System", 2));
1.1727 - f.Add(new Fan("System Fan", 0));
1.1728 - f.Add(new Fan("CPU Fan", 1));
1.1729 - f.Add(new Fan("Auxiliary Fan", 2));
1.1730 - break;
1.1731 - case Chip.NCT6771F:
1.1732 - case Chip.NCT6776F:
1.1733 - switch (manufacturer) {
1.1734 - case Manufacturer.ASUS:
1.1735 - switch (model) {
1.1736 - case Model.P8P67: // NCT6776F
1.1737 - case Model.P8P67_EVO: // NCT6776F
1.1738 - case Model.P8P67_PRO: // NCT6776F
1.1739 - v.Add(new Voltage("CPU VCore", 0));
1.1740 - v.Add(new Voltage("+12V", 1, 11, 1));
1.1741 - v.Add(new Voltage("Analog +3.3V", 2, 34, 34));
1.1742 - v.Add(new Voltage("+3.3V", 3, 34, 34));
1.1743 - v.Add(new Voltage("+5V", 4, 12, 3));
1.1744 - v.Add(new Voltage("Standby +3.3V", 7, 34, 34));
1.1745 - v.Add(new Voltage("VBAT", 8, 34, 34));
1.1746 - t.Add(new Temperature("CPU", 0));
1.1747 - t.Add(new Temperature("Auxiliary", 2));
1.1748 - t.Add(new Temperature("Motherboard", 3));
1.1749 - f.Add(new Fan("Chassis Fan #1", 0));
1.1750 - f.Add(new Fan("CPU Fan", 1));
1.1751 - f.Add(new Fan("Power Fan", 2));
1.1752 - f.Add(new Fan("Chassis Fan #2", 3));
1.1753 - c.Add(new Ctrl("Chassis Fan #2", 0));
1.1754 - c.Add(new Ctrl("CPU Fan", 1));
1.1755 - c.Add(new Ctrl("Chassis Fan #1", 2));
1.1756 - break;
1.1757 - case Model.P8P67_M_PRO: // NCT6776F
1.1758 - v.Add(new Voltage("CPU VCore", 0));
1.1759 - v.Add(new Voltage("+12V", 1, 11, 1));
1.1760 - v.Add(new Voltage("Analog +3.3V", 2, 34, 34));
1.1761 - v.Add(new Voltage("+3.3V", 3, 34, 34));
1.1762 - v.Add(new Voltage("+5V", 4, 12, 3));
1.1763 - v.Add(new Voltage("Voltage #6", 5, true));
1.1764 - v.Add(new Voltage("Voltage #7", 6, true));
1.1765 - v.Add(new Voltage("Standby +3.3V", 7, 34, 34));
1.1766 - v.Add(new Voltage("VBAT", 8, 34, 34));
1.1767 - t.Add(new Temperature("CPU", 0));
1.1768 - t.Add(new Temperature("Motherboard", 3));
1.1769 - f.Add(new Fan("Chassis Fan #1", 0));
1.1770 - f.Add(new Fan("CPU Fan", 1));
1.1771 - f.Add(new Fan("Chassis Fan #2", 2));
1.1772 - f.Add(new Fan("Power Fan", 3));
1.1773 - f.Add(new Fan("Auxiliary Fan", 4));
1.1774 - break;
1.1775 - case Model.P8Z68_V_PRO: // NCT6776F
1.1776 - v.Add(new Voltage("CPU VCore", 0));
1.1777 - v.Add(new Voltage("+12V", 1, 11, 1));
1.1778 - v.Add(new Voltage("Analog +3.3V", 2, 34, 34));
1.1779 - v.Add(new Voltage("+3.3V", 3, 34, 34));
1.1780 - v.Add(new Voltage("+5V", 4, 12, 3));
1.1781 - v.Add(new Voltage("Standby +3.3V", 7, 34, 34));
1.1782 - v.Add(new Voltage("VBAT", 8, 34, 34));
1.1783 - t.Add(new Temperature("CPU", 0));
1.1784 - t.Add(new Temperature("Auxiliary", 2));
1.1785 - t.Add(new Temperature("Motherboard", 3));
1.1786 - for (int i = 0; i < superIO.Fans.Length; i++)
1.1787 - f.Add(new Fan("Fan #" + (i + 1), i));
1.1788 - for (int i = 0; i < superIO.Controls.Length; i++)
1.1789 - c.Add(new Ctrl("Fan #" + (i + 1), i));
1.1790 - break;
1.1791 - case Model.P9X79: // NCT6776F
1.1792 - v.Add(new Voltage("CPU VCore", 0));
1.1793 - v.Add(new Voltage("+12V", 1, 11, 1));
1.1794 - v.Add(new Voltage("Analog +3.3V", 2, 34, 34));
1.1795 - v.Add(new Voltage("+3.3V", 3, 34, 34));
1.1796 - v.Add(new Voltage("+5V", 4, 12, 3));
1.1797 - v.Add(new Voltage("Standby +3.3V", 7, 34, 34));
1.1798 - v.Add(new Voltage("VBAT", 8, 34, 34));
1.1799 - t.Add(new Temperature("CPU", 0));
1.1800 - t.Add(new Temperature("Motherboard", 3));
1.1801 - for (int i = 0; i < superIO.Fans.Length; i++)
1.1802 - f.Add(new Fan("Fan #" + (i + 1), i));
1.1803 - for (int i = 0; i < superIO.Controls.Length; i++)
1.1804 - c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.1805 - break;
1.1806 - default:
1.1807 - v.Add(new Voltage("CPU VCore", 0));
1.1808 - v.Add(new Voltage("Voltage #2", 1, true));
1.1809 - v.Add(new Voltage("AVCC", 2, 34, 34));
1.1810 - v.Add(new Voltage("3VCC", 3, 34, 34));
1.1811 - v.Add(new Voltage("Voltage #5", 4, true));
1.1812 - v.Add(new Voltage("Voltage #6", 5, true));
1.1813 - v.Add(new Voltage("Voltage #7", 6, true));
1.1814 - v.Add(new Voltage("3VSB", 7, 34, 34));
1.1815 - v.Add(new Voltage("VBAT", 8, 34, 34));
1.1816 - t.Add(new Temperature("CPU Core", 0));
1.1817 - t.Add(new Temperature("Temperature #1", 1));
1.1818 - t.Add(new Temperature("Temperature #2", 2));
1.1819 - t.Add(new Temperature("Temperature #3", 3));
1.1820 - for (int i = 0; i < superIO.Fans.Length; i++)
1.1821 - f.Add(new Fan("Fan #" + (i + 1), i));
1.1822 - for (int i = 0; i < superIO.Controls.Length; i++)
1.1823 - c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.1824 - break;
1.1825 - }
1.1826 + case Model.P8Z68_V_PRO: // NCT6776F
1.1827 + v.Add(new Voltage("CPU VCore", 0));
1.1828 + v.Add(new Voltage("+12V", 1, 11, 1));
1.1829 + v.Add(new Voltage("Analog +3.3V", 2, 34, 34));
1.1830 + v.Add(new Voltage("+3.3V", 3, 34, 34));
1.1831 + v.Add(new Voltage("+5V", 4, 12, 3));
1.1832 + v.Add(new Voltage("Standby +3.3V", 7, 34, 34));
1.1833 + v.Add(new Voltage("VBAT", 8, 34, 34));
1.1834 + t.Add(new Temperature("CPU", 0));
1.1835 + t.Add(new Temperature("Auxiliary", 2));
1.1836 + t.Add(new Temperature("Motherboard", 3));
1.1837 + for (int i = 0; i < superIO.Fans.Length; i++)
1.1838 + f.Add(new Fan("Fan #" + (i + 1), i));
1.1839 + for (int i = 0; i < superIO.Controls.Length; i++)
1.1840 + c.Add(new Ctrl("Fan #" + (i + 1), i));
1.1841 + break;
1.1842 + case Model.P9X79: // NCT6776F
1.1843 + v.Add(new Voltage("CPU VCore", 0));
1.1844 + v.Add(new Voltage("+12V", 1, 11, 1));
1.1845 + v.Add(new Voltage("Analog +3.3V", 2, 34, 34));
1.1846 + v.Add(new Voltage("+3.3V", 3, 34, 34));
1.1847 + v.Add(new Voltage("+5V", 4, 12, 3));
1.1848 + v.Add(new Voltage("Standby +3.3V", 7, 34, 34));
1.1849 + v.Add(new Voltage("VBAT", 8, 34, 34));
1.1850 + t.Add(new Temperature("CPU", 0));
1.1851 + t.Add(new Temperature("Motherboard", 3));
1.1852 + for (int i = 0; i < superIO.Fans.Length; i++)
1.1853 + f.Add(new Fan("Fan #" + (i + 1), i));
1.1854 + for (int i = 0; i < superIO.Controls.Length; i++)
1.1855 + c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.1856 break;
1.1857 default:
1.1858 v.Add(new Voltage("CPU VCore", 0));
1.1859 @@ -1058,68 +1022,62 @@
1.1860 break;
1.1861 }
1.1862 break;
1.1863 - case Chip.NCT6779D:
1.1864 - case Chip.NCT6791D:
1.1865 - switch (manufacturer) {
1.1866 - case Manufacturer.ASUS:
1.1867 - switch (model) {
1.1868 - case Model.P8Z77_V:
1.1869 - v.Add(new Voltage("CPU VCore", 0));
1.1870 - v.Add(new Voltage("Voltage #2", 1, true));
1.1871 - v.Add(new Voltage("AVCC", 2, 34, 34));
1.1872 - v.Add(new Voltage("3VCC", 3, 34, 34));
1.1873 - v.Add(new Voltage("Voltage #5", 4, true));
1.1874 - v.Add(new Voltage("Voltage #6", 5, true));
1.1875 - v.Add(new Voltage("Voltage #7", 6, true));
1.1876 - v.Add(new Voltage("3VSB", 7, 34, 34));
1.1877 - v.Add(new Voltage("VBAT", 8, 34, 34));
1.1878 - v.Add(new Voltage("VTT", 9));
1.1879 - v.Add(new Voltage("Voltage #11", 10, true));
1.1880 - v.Add(new Voltage("Voltage #12", 11, true));
1.1881 - v.Add(new Voltage("Voltage #13", 12, true));
1.1882 - v.Add(new Voltage("Voltage #14", 13, true));
1.1883 - v.Add(new Voltage("Voltage #15", 14, true));
1.1884 - t.Add(new Temperature("CPU Core", 0));
1.1885 - t.Add(new Temperature("Auxiliary", 1));
1.1886 - t.Add(new Temperature("Motherboard", 2));
1.1887 - f.Add(new Fan("Chassis Fan #1", 0));
1.1888 - f.Add(new Fan("CPU Fan", 1));
1.1889 - f.Add(new Fan("Chassis Fan #2", 2));
1.1890 - f.Add(new Fan("Chassis Fan #3", 3));
1.1891 - c.Add(new Ctrl("Chassis Fan #1", 0));
1.1892 - c.Add(new Ctrl("CPU Fan", 1));
1.1893 - c.Add(new Ctrl("Chassis Fan #2", 2));
1.1894 - c.Add(new Ctrl("Chassis Fan #3", 3));
1.1895 - break;
1.1896 - default:
1.1897 - v.Add(new Voltage("CPU VCore", 0));
1.1898 - v.Add(new Voltage("Voltage #2", 1, true));
1.1899 - v.Add(new Voltage("AVCC", 2, 34, 34));
1.1900 - v.Add(new Voltage("3VCC", 3, 34, 34));
1.1901 - v.Add(new Voltage("Voltage #5", 4, true));
1.1902 - v.Add(new Voltage("Voltage #6", 5, true));
1.1903 - v.Add(new Voltage("Voltage #7", 6, true));
1.1904 - v.Add(new Voltage("3VSB", 7, 34, 34));
1.1905 - v.Add(new Voltage("VBAT", 8, 34, 34));
1.1906 - v.Add(new Voltage("VTT", 9));
1.1907 - v.Add(new Voltage("Voltage #11", 10, true));
1.1908 - v.Add(new Voltage("Voltage #12", 11, true));
1.1909 - v.Add(new Voltage("Voltage #13", 12, true));
1.1910 - v.Add(new Voltage("Voltage #14", 13, true));
1.1911 - v.Add(new Voltage("Voltage #15", 14, true));
1.1912 - t.Add(new Temperature("CPU Core", 0));
1.1913 - t.Add(new Temperature("Temperature #1", 1));
1.1914 - t.Add(new Temperature("Temperature #2", 2));
1.1915 - t.Add(new Temperature("Temperature #3", 3));
1.1916 - t.Add(new Temperature("Temperature #4", 4));
1.1917 - t.Add(new Temperature("Temperature #5", 5));
1.1918 - t.Add(new Temperature("Temperature #6", 6));
1.1919 - for (int i = 0; i < superIO.Fans.Length; i++)
1.1920 - f.Add(new Fan("Fan #" + (i + 1), i));
1.1921 - for (int i = 0; i < superIO.Controls.Length; i++)
1.1922 - c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.1923 - break;
1.1924 - }
1.1925 + default:
1.1926 + v.Add(new Voltage("CPU VCore", 0));
1.1927 + v.Add(new Voltage("Voltage #2", 1, true));
1.1928 + v.Add(new Voltage("AVCC", 2, 34, 34));
1.1929 + v.Add(new Voltage("3VCC", 3, 34, 34));
1.1930 + v.Add(new Voltage("Voltage #5", 4, true));
1.1931 + v.Add(new Voltage("Voltage #6", 5, true));
1.1932 + v.Add(new Voltage("Voltage #7", 6, true));
1.1933 + v.Add(new Voltage("3VSB", 7, 34, 34));
1.1934 + v.Add(new Voltage("VBAT", 8, 34, 34));
1.1935 + t.Add(new Temperature("CPU Core", 0));
1.1936 + t.Add(new Temperature("Temperature #1", 1));
1.1937 + t.Add(new Temperature("Temperature #2", 2));
1.1938 + t.Add(new Temperature("Temperature #3", 3));
1.1939 + for (int i = 0; i < superIO.Fans.Length; i++)
1.1940 + f.Add(new Fan("Fan #" + (i + 1), i));
1.1941 + for (int i = 0; i < superIO.Controls.Length; i++)
1.1942 + c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.1943 + break;
1.1944 + }
1.1945 + }
1.1946 +
1.1947 + private static void GetNuvotonConfigurationD(ISuperIO superIO,
1.1948 + Manufacturer manufacturer, Model model,
1.1949 + IList<Voltage> v, IList<Temperature> t, IList<Fan> f, IList<Ctrl> c)
1.1950 + {
1.1951 + switch (manufacturer) {
1.1952 + case Manufacturer.ASUS:
1.1953 + switch (model) {
1.1954 + case Model.P8Z77_V: // NCT6779D
1.1955 + v.Add(new Voltage("CPU VCore", 0));
1.1956 + v.Add(new Voltage("Voltage #2", 1, true));
1.1957 + v.Add(new Voltage("AVCC", 2, 34, 34));
1.1958 + v.Add(new Voltage("3VCC", 3, 34, 34));
1.1959 + v.Add(new Voltage("Voltage #5", 4, true));
1.1960 + v.Add(new Voltage("Voltage #6", 5, true));
1.1961 + v.Add(new Voltage("Voltage #7", 6, true));
1.1962 + v.Add(new Voltage("3VSB", 7, 34, 34));
1.1963 + v.Add(new Voltage("VBAT", 8, 34, 34));
1.1964 + v.Add(new Voltage("VTT", 9));
1.1965 + v.Add(new Voltage("Voltage #11", 10, true));
1.1966 + v.Add(new Voltage("Voltage #12", 11, true));
1.1967 + v.Add(new Voltage("Voltage #13", 12, true));
1.1968 + v.Add(new Voltage("Voltage #14", 13, true));
1.1969 + v.Add(new Voltage("Voltage #15", 14, true));
1.1970 + t.Add(new Temperature("CPU Core", 0));
1.1971 + t.Add(new Temperature("Auxiliary", 1));
1.1972 + t.Add(new Temperature("Motherboard", 2));
1.1973 + f.Add(new Fan("Chassis Fan #1", 0));
1.1974 + f.Add(new Fan("CPU Fan", 1));
1.1975 + f.Add(new Fan("Chassis Fan #2", 2));
1.1976 + f.Add(new Fan("Chassis Fan #3", 3));
1.1977 + c.Add(new Ctrl("Chassis Fan #1", 0));
1.1978 + c.Add(new Ctrl("CPU Fan", 1));
1.1979 + c.Add(new Ctrl("Chassis Fan #2", 2));
1.1980 + c.Add(new Ctrl("Chassis Fan #3", 3));
1.1981 break;
1.1982 default:
1.1983 v.Add(new Voltage("CPU VCore", 0));
1.1984 @@ -1152,71 +1110,215 @@
1.1985 }
1.1986 break;
1.1987 default:
1.1988 - for (int i = 0; i < superIO.Voltages.Length; i++)
1.1989 - v.Add(new Voltage("Voltage #" + (i + 1), i, true));
1.1990 - for (int i = 0; i < superIO.Temperatures.Length; i++)
1.1991 - t.Add(new Temperature("Temperature #" + (i + 1), i));
1.1992 + v.Add(new Voltage("CPU VCore", 0));
1.1993 + v.Add(new Voltage("Voltage #2", 1, true));
1.1994 + v.Add(new Voltage("AVCC", 2, 34, 34));
1.1995 + v.Add(new Voltage("3VCC", 3, 34, 34));
1.1996 + v.Add(new Voltage("Voltage #5", 4, true));
1.1997 + v.Add(new Voltage("Voltage #6", 5, true));
1.1998 + v.Add(new Voltage("Voltage #7", 6, true));
1.1999 + v.Add(new Voltage("3VSB", 7, 34, 34));
1.2000 + v.Add(new Voltage("VBAT", 8, 34, 34));
1.2001 + v.Add(new Voltage("VTT", 9));
1.2002 + v.Add(new Voltage("Voltage #11", 10, true));
1.2003 + v.Add(new Voltage("Voltage #12", 11, true));
1.2004 + v.Add(new Voltage("Voltage #13", 12, true));
1.2005 + v.Add(new Voltage("Voltage #14", 13, true));
1.2006 + v.Add(new Voltage("Voltage #15", 14, true));
1.2007 + t.Add(new Temperature("CPU Core", 0));
1.2008 + t.Add(new Temperature("Temperature #1", 1));
1.2009 + t.Add(new Temperature("Temperature #2", 2));
1.2010 + t.Add(new Temperature("Temperature #3", 3));
1.2011 + t.Add(new Temperature("Temperature #4", 4));
1.2012 + t.Add(new Temperature("Temperature #5", 5));
1.2013 + t.Add(new Temperature("Temperature #6", 6));
1.2014 for (int i = 0; i < superIO.Fans.Length; i++)
1.2015 f.Add(new Fan("Fan #" + (i + 1), i));
1.2016 for (int i = 0; i < superIO.Controls.Length; i++)
1.2017 c.Add(new Ctrl("Fan Control #" + (i + 1), i));
1.2018 break;
1.2019 }
1.2020 + }
1.2021
1.2022 - const string formula = "Voltage = value + (value - Vf) * Ri / Rf.";
1.2023 - foreach (Voltage voltage in v)
1.2024 - if (voltage.Index < superIO.Voltages.Length) {
1.2025 - Sensor sensor = new Sensor(voltage.Name, voltage.Index,
1.2026 - voltage.Hidden, SensorType.Voltage, this, new [] {
1.2027 - new ParameterDescription("Ri [kΩ]", "Input resistance.\n" +
1.2028 - formula, voltage.Ri),
1.2029 - new ParameterDescription("Rf [kΩ]", "Reference resistance.\n" +
1.2030 - formula, voltage.Rf),
1.2031 - new ParameterDescription("Vf [V]", "Reference voltage.\n" +
1.2032 - formula, voltage.Vf)
1.2033 - }, settings);
1.2034 - voltages.Add(sensor);
1.2035 + private static void GetWinbondConfigurationEHF(Manufacturer manufacturer,
1.2036 + Model model, IList<Voltage> v, IList<Temperature> t, IList<Fan> f)
1.2037 + {
1.2038 + switch (manufacturer) {
1.2039 + case Manufacturer.ASRock:
1.2040 + switch (model) {
1.2041 + case Model.AOD790GX_128M: // W83627EHF
1.2042 + v.Add(new Voltage("CPU VCore", 0));
1.2043 + v.Add(new Voltage("Analog +3.3V", 2, 34, 34));
1.2044 + v.Add(new Voltage("+3.3V", 4, 10, 10));
1.2045 + v.Add(new Voltage("+5V", 5, 20, 10));
1.2046 + v.Add(new Voltage("+12V", 6, 28, 5));
1.2047 + v.Add(new Voltage("Standby +3.3V", 7, 34, 34));
1.2048 + v.Add(new Voltage("VBAT", 8, 34, 34));
1.2049 + t.Add(new Temperature("CPU", 0));
1.2050 + t.Add(new Temperature("Motherboard", 2));
1.2051 + f.Add(new Fan("CPU Fan", 0));
1.2052 + f.Add(new Fan("Chassis Fan", 1));
1.2053 + break;
1.2054 + default:
1.2055 + v.Add(new Voltage("CPU VCore", 0));
1.2056 + v.Add(new Voltage("Voltage #2", 1, true));
1.2057 + v.Add(new Voltage("AVCC", 2, 34, 34));
1.2058 + v.Add(new Voltage("3VCC", 3, 34, 34));
1.2059 + v.Add(new Voltage("Voltage #5", 4, true));
1.2060 + v.Add(new Voltage("Voltage #6", 5, true));
1.2061 + v.Add(new Voltage("Voltage #7", 6, true));
1.2062 + v.Add(new Voltage("3VSB", 7, 34, 34));
1.2063 + v.Add(new Voltage("VBAT", 8, 34, 34));
1.2064 + v.Add(new Voltage("Voltage #10", 9, true));
1.2065 + t.Add(new Temperature("CPU", 0));
1.2066 + t.Add(new Temperature("Auxiliary", 1));
1.2067 + t.Add(new Temperature("System", 2));
1.2068 + f.Add(new Fan("System Fan", 0));
1.2069 + f.Add(new Fan("CPU Fan", 1));
1.2070 + f.Add(new Fan("Auxiliary Fan", 2));
1.2071 + f.Add(new Fan("CPU Fan #2", 3));
1.2072 + f.Add(new Fan("Auxiliary Fan #2", 4));
1.2073 + break;
1.2074 + } break;
1.2075 + default:
1.2076 + v.Add(new Voltage("CPU VCore", 0));
1.2077 + v.Add(new Voltage("Voltage #2", 1, true));
1.2078 + v.Add(new Voltage("AVCC", 2, 34, 34));
1.2079 + v.Add(new Voltage("3VCC", 3, 34, 34));
1.2080 + v.Add(new Voltage("Voltage #5", 4, true));
1.2081 + v.Add(new Voltage("Voltage #6", 5, true));
1.2082 + v.Add(new Voltage("Voltage #7", 6, true));
1.2083 + v.Add(new Voltage("3VSB", 7, 34, 34));
1.2084 + v.Add(new Voltage("VBAT", 8, 34, 34));
1.2085 + v.Add(new Voltage("Voltage #10", 9, true));
1.2086 + t.Add(new Temperature("CPU", 0));
1.2087 + t.Add(new Temperature("Auxiliary", 1));
1.2088 + t.Add(new Temperature("System", 2));
1.2089 + f.Add(new Fan("System Fan", 0));
1.2090 + f.Add(new Fan("CPU Fan", 1));
1.2091 + f.Add(new Fan("Auxiliary Fan", 2));
1.2092 + f.Add(new Fan("CPU Fan #2", 3));
1.2093 + f.Add(new Fan("Auxiliary Fan #2", 4));
1.2094 + break;
1.2095 }
1.2096 + }
1.2097
1.2098 - foreach (Temperature temperature in t)
1.2099 - if (temperature.Index < superIO.Temperatures.Length) {
1.2100 - Sensor sensor = new Sensor(temperature.Name, temperature.Index,
1.2101 - SensorType.Temperature, this, new [] {
1.2102 - new ParameterDescription("Offset [°C]", "Temperature offset.", 0)
1.2103 - }, settings);
1.2104 - temperatures.Add(sensor);
1.2105 - }
1.2106 -
1.2107 - foreach (Fan fan in f)
1.2108 - if (fan.Index < superIO.Fans.Length) {
1.2109 - Sensor sensor = new Sensor(fan.Name, fan.Index, SensorType.Fan,
1.2110 - this, settings);
1.2111 - fans.Add(sensor);
1.2112 - }
1.2113 -
1.2114 - foreach (Ctrl ctrl in c) {
1.2115 - int index = ctrl.Index;
1.2116 - if (index < superIO.Controls.Length) {
1.2117 - Sensor sensor = new Sensor(ctrl.Name, index, SensorType.Control,
1.2118 - this, settings);
1.2119 - Control control = new Control(sensor, settings, 0, 100);
1.2120 - control.ControlModeChanged += (cc) => {
1.2121 - if (cc.ControlMode == ControlMode.Default) {
1.2122 - superIO.SetControl(index, null);
1.2123 - } else {
1.2124 - superIO.SetControl(index, (byte)(cc.SoftwareValue * 2.55));
1.2125 - }
1.2126 - };
1.2127 - control.SoftwareControlValueChanged += (cc) => {
1.2128 - if (cc.ControlMode == ControlMode.Software)
1.2129 - superIO.SetControl(index, (byte)(cc.SoftwareValue * 2.55));
1.2130 - };
1.2131 - if (control.ControlMode == ControlMode.Software)
1.2132 - superIO.SetControl(index, (byte)(control.SoftwareValue * 2.55));
1.2133 - sensor.Control = control;
1.2134 - controls.Add(sensor);
1.2135 - ActivateSensor(sensor);
1.2136 - }
1.2137 + private static void GetWinbondConfigurationHG(Manufacturer manufacturer,
1.2138 + Model model, IList<Voltage> v, IList<Temperature> t, IList<Fan> f)
1.2139 + {
1.2140 + switch (manufacturer) {
1.2141 + case Manufacturer.ASRock:
1.2142 + switch (model) {
1.2143 + case Model._880GMH_USB3: // W83627DHG-P
1.2144 + v.Add(new Voltage("CPU VCore", 0));
1.2145 + v.Add(new Voltage("+3.3V", 3, 34, 34));
1.2146 + v.Add(new Voltage("+5V", 5, 15, 7.5f));
1.2147 + v.Add(new Voltage("+12V", 6, 56, 10));
1.2148 + v.Add(new Voltage("Standby +3.3V", 7, 34, 34));
1.2149 + v.Add(new Voltage("VBAT", 8, 34, 34));
1.2150 + t.Add(new Temperature("CPU", 0));
1.2151 + t.Add(new Temperature("Motherboard", 2));
1.2152 + f.Add(new Fan("Chassis Fan", 0));
1.2153 + f.Add(new Fan("CPU Fan", 1));
1.2154 + f.Add(new Fan("Power Fan", 2));
1.2155 + break;
1.2156 + default:
1.2157 + v.Add(new Voltage("CPU VCore", 0));
1.2158 + v.Add(new Voltage("Voltage #2", 1, true));
1.2159 + v.Add(new Voltage("AVCC", 2, 34, 34));
1.2160 + v.Add(new Voltage("3VCC", 3, 34, 34));
1.2161 + v.Add(new Voltage("Voltage #5", 4, true));
1.2162 + v.Add(new Voltage("Voltage #6", 5, true));
1.2163 + v.Add(new Voltage("Voltage #7", 6, true));
1.2164 + v.Add(new Voltage("3VSB", 7, 34, 34));
1.2165 + v.Add(new Voltage("VBAT", 8, 34, 34));
1.2166 + t.Add(new Temperature("CPU", 0));
1.2167 + t.Add(new Temperature("Auxiliary", 1));
1.2168 + t.Add(new Temperature("System", 2));
1.2169 + f.Add(new Fan("System Fan", 0));
1.2170 + f.Add(new Fan("CPU Fan", 1));
1.2171 + f.Add(new Fan("Auxiliary Fan", 2));
1.2172 + f.Add(new Fan("CPU Fan #2", 3));
1.2173 + f.Add(new Fan("Auxiliary Fan #2", 4));
1.2174 + break;
1.2175 + }
1.2176 + break;
1.2177 + case Manufacturer.ASUS:
1.2178 + switch (model) {
1.2179 + case Model.P6T: // W83667HG
1.2180 + case Model.P6X58D_E: // W83667HG
1.2181 + case Model.Rampage_II_GENE: // W83667HG
1.2182 + v.Add(new Voltage("CPU VCore", 0));
1.2183 + v.Add(new Voltage("+12V", 1, 11.5f, 1.91f));
1.2184 + v.Add(new Voltage("Analog +3.3V", 2, 34, 34));
1.2185 + v.Add(new Voltage("+3.3V", 3, 34, 34));
1.2186 + v.Add(new Voltage("+5V", 4, 15, 7.5f));
1.2187 + v.Add(new Voltage("Standby +3.3V", 7, 34, 34));
1.2188 + v.Add(new Voltage("VBAT", 8, 34, 34));
1.2189 + t.Add(new Temperature("CPU", 0));
1.2190 + t.Add(new Temperature("Motherboard", 2));
1.2191 + f.Add(new Fan("Chassis Fan #1", 0));
1.2192 + f.Add(new Fan("CPU Fan", 1));
1.2193 + f.Add(new Fan("Power Fan", 2));
1.2194 + f.Add(new Fan("Chassis Fan #2", 3));
1.2195 + f.Add(new Fan("Chassis Fan #3", 4));
1.2196 + break;
1.2197 + case Model.Rampage_Extreme: // W83667HG
1.2198 + v.Add(new Voltage("CPU VCore", 0));
1.2199 + v.Add(new Voltage("+12V", 1, 12, 2));
1.2200 + v.Add(new Voltage("Analog +3.3V", 2, 34, 34));
1.2201 + v.Add(new Voltage("+3.3V", 3, 34, 34));
1.2202 + v.Add(new Voltage("+5V", 4, 15, 7.5f));
1.2203 + v.Add(new Voltage("Standby +3.3V", 7, 34, 34));
1.2204 + v.Add(new Voltage("VBAT", 8, 34, 34));
1.2205 + t.Add(new Temperature("CPU", 0));
1.2206 + t.Add(new Temperature("Motherboard", 2));
1.2207 + f.Add(new Fan("Chassis Fan #1", 0));
1.2208 + f.Add(new Fan("CPU Fan", 1));
1.2209 + f.Add(new Fan("Power Fan", 2));
1.2210 + f.Add(new Fan("Chassis Fan #2", 3));
1.2211 + f.Add(new Fan("Chassis Fan #3", 4));
1.2212 + break;
1.2213 + default:
1.2214 + v.Add(new Voltage("CPU VCore", 0));
1.2215 + v.Add(new Voltage("Voltage #2", 1, true));
1.2216 + v.Add(new Voltage("AVCC", 2, 34, 34));
1.2217 + v.Add(new Voltage("3VCC", 3, 34, 34));
1.2218 + v.Add(new Voltage("Voltage #5", 4, true));
1.2219 + v.Add(new Voltage("Voltage #6", 5, true));
1.2220 + v.Add(new Voltage("Voltage #7", 6, true));
1.2221 + v.Add(new Voltage("3VSB", 7, 34, 34));
1.2222 + v.Add(new Voltage("VBAT", 8, 34, 34));
1.2223 + t.Add(new Temperature("CPU", 0));
1.2224 + t.Add(new Temperature("Auxiliary", 1));
1.2225 + t.Add(new Temperature("System", 2));
1.2226 + f.Add(new Fan("System Fan", 0));
1.2227 + f.Add(new Fan("CPU Fan", 1));
1.2228 + f.Add(new Fan("Auxiliary Fan", 2));
1.2229 + f.Add(new Fan("CPU Fan #2", 3));
1.2230 + f.Add(new Fan("Auxiliary Fan #2", 4));
1.2231 + break;
1.2232 + }
1.2233 + break;
1.2234 + default:
1.2235 + v.Add(new Voltage("CPU VCore", 0));
1.2236 + v.Add(new Voltage("Voltage #2", 1, true));
1.2237 + v.Add(new Voltage("AVCC", 2, 34, 34));
1.2238 + v.Add(new Voltage("3VCC", 3, 34, 34));
1.2239 + v.Add(new Voltage("Voltage #5", 4, true));
1.2240 + v.Add(new Voltage("Voltage #6", 5, true));
1.2241 + v.Add(new Voltage("Voltage #7", 6, true));
1.2242 + v.Add(new Voltage("3VSB", 7, 34, 34));
1.2243 + v.Add(new Voltage("VBAT", 8, 34, 34));
1.2244 + t.Add(new Temperature("CPU", 0));
1.2245 + t.Add(new Temperature("Auxiliary", 1));
1.2246 + t.Add(new Temperature("System", 2));
1.2247 + f.Add(new Fan("System Fan", 0));
1.2248 + f.Add(new Fan("CPU Fan", 1));
1.2249 + f.Add(new Fan("Auxiliary Fan", 2));
1.2250 + f.Add(new Fan("CPU Fan #2", 3));
1.2251 + f.Add(new Fan("Auxiliary Fan #2", 4));
1.2252 + break;
1.2253 }
1.2254 }
1.2255
2.1 --- a/Properties/AssemblyVersion.cs Sun Jul 21 21:02:55 2013 +0000
2.2 +++ b/Properties/AssemblyVersion.cs Sun Jul 21 21:03:31 2013 +0000
2.3 @@ -10,5 +10,5 @@
2.4
2.5 using System.Reflection;
2.6
2.7 -[assembly: AssemblyVersion("0.6.0.2")]
2.8 -[assembly: AssemblyInformationalVersion("0.6.0.2 Alpha")]
2.9 \ No newline at end of file
2.10 +[assembly: AssemblyVersion("0.6.0.3")]
2.11 +[assembly: AssemblyInformationalVersion("0.6.0.3 Alpha")]
2.12 \ No newline at end of file