W83627EHF and K8 support patch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, all.  After buying an MSI K8MM3-V motherboard and Sempron
CPU, I found it expedient to add some additional support to the
sensors package in order to monitor things properly.

The attached patch updates the lib/chips.c file in the 2.10.1 
distribution, adding support for the W83627EHF voltage-sensing inputs, 
and adding support for the "k8temp" PCI-bus temperature sensor
(which I assume is actually a sense diode on the K8 CPU itself...
it reacts very quickly indeed to CPU-load changes).

It's entirely possible that these changes duplicate or conflict
with changes someone else has made since 2.10.1 was shipped...
I haven't checked.

Also attached are the relevant parts of my /etc/sensors.conf
file.

With these changes in place, sensord is capable of logging
and round-robin'ing all three of this motherboard's temperature
sensors, both fan speeds, and all of the voltages.

-------------- next part --------------
diff -u -r lm_sensors-2.10.1/prog/sensord/chips.c lm_sensors-2.10.1-k8/prog/sensord/chips.c
--- lm_sensors-2.10.1/prog/sensord/chips.c	2006-09-24 15:30:10.000000000 -0700
+++ lm_sensors-2.10.1-k8/prog/sensord/chips.c	2007-01-03 15:52:36.000000000 -0800
@@ -83,6 +83,13 @@
 }
 
 static const char *
+fmtTemp_only
+(const double values[], int alarm, int beep) {
+  sprintf (buff, "%.1f C", values[0]);
+  return fmtExtra (alarm, beep);
+}
+
+static const char *
 fmtTemps_minmax_0
 (const double values[], int alarm, int beep) {
  sprintf (buff, "%.0f C (min = %.0f C, max = %.0f C)", values[0], values[1], values[2]);
@@ -1116,6 +1123,26 @@
     { SENSORS_W83627EHF_TEMP2, SENSORS_W83627EHF_TEMP2_OVER, SENSORS_W83627EHF_TEMP2_HYST, -1 } },
   { fmtTemps_1, rrdF1, DataType_temperature, 0, 0,
     { SENSORS_W83627EHF_TEMP3, SENSORS_W83627EHF_TEMP3_OVER, SENSORS_W83627EHF_TEMP3_HYST, -1 } },
+   /* dplatt added the following by cribbing from the pc87360 definitions... */
+  { fmtVolts_2, rrdF2, DataType_voltage, 0, 0,
+    { SENSORS_W83627EHF_IN0, SENSORS_W83627EHF_IN0_MIN, SENSORS_W83627EHF_IN0_MAX, -1 } },
+  { fmtVolts_2, rrdF2, DataType_voltage, 0, 0,
+    { SENSORS_W83627EHF_IN1, SENSORS_W83627EHF_IN1_MIN, SENSORS_W83627EHF_IN1_MAX, -1 } },
+  { fmtVolts_2, rrdF2, DataType_voltage, 0, 0,
+    { SENSORS_W83627EHF_IN2, SENSORS_W83627EHF_IN2_MIN, SENSORS_W83627EHF_IN2_MAX, -1 } },
+  { fmtVolts_2, rrdF2, DataType_voltage, 0, 0,
+    { SENSORS_W83627EHF_IN3, SENSORS_W83627EHF_IN3_MIN, SENSORS_W83627EHF_IN3_MAX, -1 } },
+  { fmtVolts_2, rrdF2, DataType_voltage, 0, 0,
+    { SENSORS_W83627EHF_IN4, SENSORS_W83627EHF_IN4_MIN, SENSORS_W83627EHF_IN4_MAX, -1 } },
+  { fmtVolts_2, rrdF2, DataType_voltage, 0, 0,
+    { SENSORS_W83627EHF_IN5, SENSORS_W83627EHF_IN5_MIN, SENSORS_W83627EHF_IN5_MAX, -1 } },
+  { fmtVolts_2, rrdF2, DataType_voltage, 0, 0,
+    { SENSORS_W83627EHF_IN6, SENSORS_W83627EHF_IN6_MIN, SENSORS_W83627EHF_IN6_MAX, -1 } },
+  { fmtVolts_2, rrdF2, DataType_voltage, 0, 0,
+    { SENSORS_W83627EHF_IN7, SENSORS_W83627EHF_IN7_MIN, SENSORS_W83627EHF_IN7_MAX, -1 } },
+  { fmtVolts_2, rrdF2, DataType_voltage, 0, 0,
+    { SENSORS_W83627EHF_IN8, SENSORS_W83627EHF_IN8_MIN, SENSORS_W83627EHF_IN8_MAX, -1 } },
+   
   { NULL }
 };
 
@@ -1168,6 +1195,22 @@
   f71805f_names, f71805f_features, SENSORS_F71805F_ALARMS_TEMP, 0
 };
 
+/** k8temp **/
+
+static const char *k8temp_names[] = {
+  SENSORS_K8TEMP_PREFIX, NULL
+};
+
+static const FeatureDescriptor k8temp_features[] = {
+  { fmtTemp_only, rrdF0, DataType_temperature, 0, 0,
+    { SENSORS_K8TEMP_TEMP1, SENSORS_K8TEMP_TEMP1, SENSORS_K8TEMP_TEMP1, -1 } },
+  { NULL }
+};
+
+static const ChipDescriptor k8temp_chip = {
+  k8temp_names, k8temp_features, 0, 0
+};
+
 /** ALL **/
 
 const ChipDescriptor * const knownChips[] = {
@@ -1193,5 +1236,6 @@
   &pc87360_chip,
   &w83627ehf_chip,
   &f71805f_chip,
+  &k8temp_chip,
   NULL
 };
-------------- next part --------------


-------------- next part --------------
# Winbond W83627EHF configuration originally contributed by Leon Moonen 
# This is for an Asus P5P800, voltages for A8V-E SE. 
chip "w83627ehf-*" 
 
    label in0 "VCore"
    label in1 "12V"
    label in2 "AVCC" 
    label in3 "3VCC"
    label in6 "5V"
    label in7 "VSB" 
    label in8 "VBAT" 

# +12V is in1 and +5V is in6 as recommended by datasheet  
    compute in1 @*(1+(56/10)),  @/(1+(56/10)) 
    compute in6 @*(1+(22/10)),  @/(1+(22/10)) 
    set in1_min   12.0*0.9 
    set in1_max   12.0*1.1 
    set in6_min   5.0*0.95 
    set in6_max   5.0*1.05 
 
# Set the 3.3V 
    set in2_min   3.3*0.95 
    set in2_max   3.3*1.05 
    set in3_min   3.3*0.95 
    set in3_max   3.3*1.05 
    set in7_min   3.3*0.95 
    set in7_max   3.3*1.05 
    set in8_min   3.3*0.95 
    set in8_max   3.3*1.05
    
    ignore in4
    ignore in5
    ignore in9

# Fans 
   label fan1      "Case Fan" 
   label fan2      "CPU Fan" 
   label fan3      "Aux Fan"
   ignore fan3
   ignore fan4
   ignore fan5
   
# Both fans are PWM-controlled - the front fan by the fancontrol
# daemon, and the CPU fan by the ACPI BIOS.

   set fan1_min 800
   set fan2_min 1500

   label temp1     "Sys Temp" 
   label temp2     "CPU Temp" 
   label temp3     "AUX Temp"
   
   ignore temp3 
   set temp1_over  55
   set temp1_hyst  50 

#  set temp2_over  45 
#  set temp2_hyst  40 

chip "k8temp-pci-*"

   label temp1     "Chip temp"
   ignore temp2
   ignore temp3
   ignore temp4
   
-------------- next part --------------




[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux