# Configuration file contributed by Charles A. from India.


# libsensors configuration file for Gigabyte GA-MA770-DS3 motherboard

chip "it8718-*"

    # lmsensors' values were compared with values from monitoring 
    # software running on the same computer under Windows XP SP2 
    # abbreviated in comments:
    #   ET6: Gigabyte's EasyTune 6    
    #   Everest: Lavalys's Everest Ultimate 4.6.0 (trial version)
    #   OverDrive: AMD's OverDrive 2.1.5

    # Labels are copied from BIOS setup screens when value shown

    # Voltages

    label   in0 "Vcore"
		# BIOS: 1.264V, ET6: 1.260, Everest: 1.26, OverDrive: 1.26
		# No scaling so no compute
		# Values seen using powernow-k8 in "on demand" mode: 
		# 1.06, 1.07, 1.25, 1.26, 1.28
		# Nominal values written to /var/log/kern.log by powernow-k8
		# as vid numbers in hex.  For AMD K8, these translate to V by 
		# 1.550 - 0.025 * vid. Gave 1.000, 1.175 and 1.200 V
    set     in0_min 1.000 * 0.95  # 95% of nominal min
    set     in0_max 1.200 * 1.05  # 105% of nominal max

    label   in1 "DDR2 1.8V"
		# No scaling so no compute
    set     in1_min 1.8 * 0.95 # 95% of nominal
    set     in1_max 1.8 * 1.05 # 105% of nominal

    label   in2 "+3.3V"
		# No scaling so no compute
    set     in2_min 3.3 * 0.95 # 95% of nominal
    set     in2_max 3.3 * 1.05 # 105% of nominal

    label   in3 "Vcc"
		# BIOS: -, ET6: -, Everest: -, OverDrive: -
		# dmesg reports as VCC 
		# Assume standard Winbond scaling resistors
    compute in3 @ * ((6.8/10)+1), @ / ((6.8/10)+1)
    set     in3_min 5 * 0.95 # 95% of nominal
    set     in3_max 5 * 1.05 # 105% of nominal

    label   in4 "5VSB?" # Guess
		# BIOS: -, ET6: -, Everest: -, OverDrive (VIN4): 12.74
		# Values seen: 3.15, 3.17, 3.19
		# Assume standard Winbond scaling resistors
    compute in4 @ * ((6.8/10)+1), @ / ((6.8/10)+1)
    set     in4_min 5 * 0.95 # 95% of nominal
    set     in4_max 5 * 1.05 # 105% of nominal

    label   in5 "+12V"
		# BIOS: 12.619V, ET6: 12.610, Everest: -, OverDrive: -
		# Assume standard Winbond scaling resistors
    compute in5 @ * ((30/10)+1), @ / ((30/10)+1)
    set     in5_min 12 * 0.95 # 95% of nominal
    set     in5_max 12 * 1.05 # 105% of nominal

    ignore  in6 # Seen always 4.08, too big (max 4.096) to signify
    ignore  in7 # Seen always 0.03, too small to be significant

    label   in8 "Vbat"
		# BIOS: -, ET6: -, Everest:  3.17, OverDrive: - 
		# Connected directly so no compute
    # in8_min and _max not supported by chip

    ignore  cpu0_vid # Not dynamic under lm-sensors 3.0.0

    # Temperatures

    label   temp1  "Current System Temperature"
		# BIOS: 30, ET6: 30, Everest: 33, OverDrive: -
    compute temp1 @ -5, @ +5 # Correct bad sensor on Charles' mobo
    set     temp1_min 0
    set     temp1_max 45 # Tropical ambient max plus a bit

    label   temp2  "Current CPU Casing Temperature"     
		# BIOS: 29, ET6: 28, Everest: 32, OverDrive (both cores): 33
    set     temp2_min 0
		# Max is lowest available BIOS "CPU Warning Temperature" - 5
    set     temp2_max 55 

    ignore  temp3
		# Values seen: 77-79, rising from cold start.
		# Sheilding Northbridge from CPU cooling draft did not change

    # Fans
    # The labels chosen are the ones printed on the motherboard
    label   fan1 "CPU_FAN"
    set     fan1_min 0 # fancontrol may stop fan
    label   fan2 "SYS_FAN1"
    label   fan3 "SYS_FAN2"
    ignore  fan4 # "NB_FAN" does not set an RPM signal
    label   fan5 "PWR_FAN"

    # Beep
    # lm-sensors 3.0.0 does not support on this chip
    # Was enabled by default

chip "k8temp-*"

    # Temperatures
    # For CPU revisions F and G, according to AMD's "Revision 
    # Guide for AMD NPT Family 0Fh Processors", "The internal 
    # thermal sensor ... is inaccurate". This may be the reason 
    # for many reports of k8temp giving absurdly low CPU core 
    # temperatures and for there being no generally accepted 
    # computation to derive actual temperature from the raw data. 
    # The workaround is to ignore core temperatures and use the 
    # CPU case temperature as was done before core temperatures 
    # were available. On this motherboard the CPU case temperature 
    # is reported by the it8718 chip's temp2 (see above).

    # For CPU revisions other than F and G, the proper use of 
    # k8temp temperatures may be to compute an average for each 
    # core rather than to report two temperatures for each core. 
    # For a sample computation see mingus' posting at
    # http://forums.opensuse.org/archives/sls-archives/archives-suse-linux/archives-hardware-support/381563-lm-sensors-2.html#post1793098

    # If you don't trust the readings, you might as well not load
    # the k8temp driver (which, in practice, means blacklisting it,
    # as this driver auto-loads on most systems.
