Hardware/LPC/NCT677X.cs
changeset 413 362c5e77197d
parent 356 e471b1c2b1a6
child 414 93dbee74f1e7
     1.1 --- a/Hardware/LPC/NCT677X.cs	Sun Jul 14 16:32:27 2013 +0000
     1.2 +++ b/Hardware/LPC/NCT677X.cs	Sun Jul 21 14:17:11 2013 +0000
     1.3 @@ -4,7 +4,7 @@
     1.4    License, v. 2.0. If a copy of the MPL was not distributed with this
     1.5    file, You can obtain one at http://mozilla.org/MPL/2.0/.
     1.6   
     1.7 -  Copyright (C) 2010-2012 Michael Möller <mmoeller@openhardwaremonitor.org>
     1.8 +  Copyright (C) 2010-2013 Michael Möller <mmoeller@openhardwaremonitor.org>
     1.9  	
    1.10  */
    1.11  
    1.12 @@ -56,11 +56,11 @@
    1.13      private const ushort VENDOR_ID_LOW_REGISTER = 0x004F;  
    1.14      
    1.15      private readonly ushort[] FAN_PWM_OUT_REG = 
    1.16 -      { 0x001, 0x003, 0x011, 0x013, 0x015 };
    1.17 +      { 0x001, 0x003, 0x011, 0x013, 0x015, 0x017 };
    1.18      private readonly ushort[] FAN_PWM_COMMAND_REG = 
    1.19 -      { 0x109, 0x209, 0x309, 0x809, 0x909 };
    1.20 +      { 0x109, 0x209, 0x309, 0x809, 0x909, 0xA09 };
    1.21      private readonly ushort[] FAN_CONTROL_MODE_REG = 
    1.22 -      { 0x102, 0x202, 0x302, 0x802, 0x902 };
    1.23 +      { 0x102, 0x202, 0x302, 0x802, 0x902, 0xA02 };
    1.24  
    1.25      private readonly ushort fanRpmBaseRegister;
    1.26      private readonly int minFanRPM;
    1.27 @@ -129,7 +129,7 @@
    1.28        BYTE_TEMP = 22
    1.29      }
    1.30  
    1.31 -    private enum SourceNCT6779D : byte {
    1.32 +    private enum SourceNCT67XXD : byte {
    1.33        SYSTIN = 1,
    1.34        CPUTIN = 2,
    1.35        AUXTIN0 = 3,
    1.36 @@ -217,14 +217,20 @@
    1.37            break;
    1.38  
    1.39          case Chip.NCT6779D:
    1.40 -          fans = new float?[5];
    1.41 +        case Chip.NCT6791D:
    1.42 +          if (chip == Chip.NCT6779D) {
    1.43 +            fans = new float?[5];
    1.44 +            controls = new float?[5];
    1.45 +          } else {
    1.46 +            fans = new float?[6];
    1.47 +            controls = new float?[6];
    1.48 +          }
    1.49 +
    1.50            fanRpmBaseRegister = 0x4C0;
    1.51  
    1.52            // min value RPM value with 13-bit fan counter
    1.53            minFanRPM = (int)(1.35e6 / 0x1FFF);
    1.54  
    1.55 -          controls = new float?[5];
    1.56 -
    1.57            voltages = new float?[15];
    1.58            voltageRegisters = new ushort[] 
    1.59              { 0x480, 0x481, 0x482, 0x483, 0x484, 0x485, 0x486, 0x487, 0x488, 
    1.60 @@ -233,13 +239,13 @@
    1.61  
    1.62            temperatures = new float?[7];
    1.63            temperaturesSource = new byte[] {
    1.64 -            (byte)SourceNCT6779D.PECI_0,
    1.65 -            (byte)SourceNCT6779D.CPUTIN,
    1.66 -            (byte)SourceNCT6779D.SYSTIN,
    1.67 -            (byte)SourceNCT6779D.AUXTIN0,
    1.68 -            (byte)SourceNCT6779D.AUXTIN1,
    1.69 -            (byte)SourceNCT6779D.AUXTIN2,
    1.70 -            (byte)SourceNCT6779D.AUXTIN3
    1.71 +            (byte)SourceNCT67XXD.PECI_0,
    1.72 +            (byte)SourceNCT67XXD.CPUTIN,
    1.73 +            (byte)SourceNCT67XXD.SYSTIN,
    1.74 +            (byte)SourceNCT67XXD.AUXTIN0,
    1.75 +            (byte)SourceNCT67XXD.AUXTIN1,
    1.76 +            (byte)SourceNCT67XXD.AUXTIN2,
    1.77 +            (byte)SourceNCT67XXD.AUXTIN3
    1.78            };
    1.79  
    1.80            temperatureRegister = new ushort[]
    1.81 @@ -254,7 +260,7 @@
    1.82            alternateTemperatureRegister = new ushort?[] 
    1.83              {null, 0x491, 0x490, 0x492, 0x493, 0x494, 0x495 };
    1.84  
    1.85 -          break;        
    1.86 +          break;
    1.87        }
    1.88      }
    1.89  
    1.90 @@ -398,14 +404,16 @@
    1.91        ushort[] addresses = new ushort[] { 
    1.92          0x000, 0x010, 0x020, 0x030, 0x040, 0x050, 0x060, 0x070,
    1.93          0x100, 0x110, 0x120, 0x130, 0x140, 0x150, 
    1.94 -        0x200,        0x220, 0x230, 0x240, 0x250,
    1.95 -        0x300,        0x320, 0x330, 0x340, 
    1.96 -        0x400, 0x410, 0x420,        0x440, 0x450, 0x460, 0x480, 0x490, 0x4C0,
    1.97 -        0x500,                             0x550, 
    1.98 +        0x200,        0x220, 0x230, 0x240, 0x250, 0x260,
    1.99 +        0x300,        0x320, 0x330, 0x340,        0x360,
   1.100 +        0x400, 0x410, 0x420,        0x440, 0x450, 0x460, 0x480, 0x490, 0x4B0, 
   1.101 +                                                                0x4C0, 0x4F0,
   1.102 +        0x500,                             0x550, 0x560,
   1.103          0x600, 0x610 ,0x620, 0x630, 0x640, 0x650, 0x660, 0x670, 
   1.104 -        0x800,
   1.105 -        0x900,
   1.106 -        0xA00, 0xA10, 0xA20, 0xA30,        0xA50, 0xA60, 0xA70, 
   1.107 +        0x700, 0x710, 0x720, 0x730,
   1.108 +        0x800,        0x820, 0x830, 0x840,
   1.109 +        0x900,        0x920, 0x930, 0x940,        0x960,
   1.110 +        0xA00, 0xA10, 0xA20, 0xA30, 0xA40, 0xA50, 0xA60, 0xA70, 
   1.111          0xB00, 0xB10, 0xB20, 0xB30,        0xB50, 0xB60, 0xB70, 
   1.112          0xC00, 0xC10, 0xC20, 0xC30,        0xC50, 0xC60, 0xC70,
   1.113          0xD00, 0xD10, 0xD20, 0xD30,        0xD50, 0xD60,