Loading Documentation/hwmon/dme1737 +62 −26 Original line number Diff line number Diff line Loading @@ -2,21 +2,37 @@ Kernel driver dme1737 ===================== Supported chips: * SMSC DME1737 and compatibles (like Asus A8000) Prefix: 'dme1737' Addresses scanned: I2C 0x2c, 0x2d, 0x2e Datasheet: Provided by SMSC upon request and under NDA * SMSC SCH3112, SCH3114, SCH3116 Prefix: 'sch311x' Addresses scanned: none, address read from Super-I/O config space Datasheet: Available on the Internet * SMSC SCH5027 Prefix: 'sch5027' Addresses scanned: I2C 0x2c, 0x2d, 0x2e Datasheet: Provided by SMSC upon request and under NDA * SMSC SCH5127 Prefix: 'sch5127' Addresses scanned: none, address read from Super-I/O config space Datasheet: Provided by SMSC upon request and under NDA Authors: Loading @@ -26,11 +42,14 @@ Authors: Module Parameters ----------------- * force_start: bool Enables the monitoring of voltage, fan and temp inputs * force_start: bool Enables the monitoring of voltage, fan and temp inputs and PWM output control functions. Using this parameter shouldn't be required since the BIOS usually takes care of this. * probe_all_addr: bool Include non-standard LPC addresses 0x162e and 0x164e * probe_all_addr: bool Include non-standard LPC addresses 0x162e and 0x164e when probing for ISA devices. This is required for the following boards: - VIA EPIA SN18000 Loading Loading @@ -70,7 +89,8 @@ scaling resistors. The values returned by the driver therefore reflect true millivolts and don't need scaling. The voltage inputs are mapped as follows (the last column indicates the input ranges): DME1737, A8000: DME1737, A8000:: in0: +5VTR (+5V standby) 0V - 6.64V in1: Vccp (processor core) 0V - 3V in2: VCC (internal +3.3V) 0V - 4.38V Loading @@ -79,7 +99,8 @@ DME1737, A8000: in5: VTR (+3.3V standby) 0V - 4.38V in6: Vbat (+3.0V) 0V - 4.38V SCH311x: SCH311x:: in0: +2.5V 0V - 3.32V in1: Vccp (processor core) 0V - 2V in2: VCC (internal +3.3V) 0V - 4.38V Loading @@ -88,7 +109,8 @@ SCH311x: in5: VTR (+3.3V standby) 0V - 4.38V in6: Vbat (+3.0V) 0V - 4.38V SCH5027: SCH5027:: in0: +5VTR (+5V standby) 0V - 6.64V in1: Vccp (processor core) 0V - 3V in2: VCC (internal +3.3V) 0V - 4.38V Loading @@ -97,7 +119,8 @@ SCH5027: in5: VTR (+3.3V standby) 0V - 4.38V in6: Vbat (+3.0V) 0V - 4.38V SCH5127: SCH5127:: in0: +2.5 0V - 3.32V in1: Vccp (processor core) 0V - 3V in2: VCC (internal +3.3V) 0V - 4.38V Loading @@ -119,7 +142,7 @@ Celsius. The chip also features offsets for all 3 temperature inputs which - when programmed - get added to the input readings. The chip does all the scaling by itself and the driver therefore reports true temperatures that don't need any user-space adjustments. The temperature inputs are mapped as follows (the last column indicates the input ranges): (the last column indicates the input ranges):: temp1: Remote diode 1 (3904 type) temperature -127C - +127C temp2: DME1737 internal temperature -127C - +127C Loading Loading @@ -171,6 +194,7 @@ pwm[1-3]_auto_pwm_min, respectively. The thermal thresholds of the zones are programmed via zone[1-3]_auto_point[1-3]_temp and zone[1-3]_auto_point1_temp_hyst: =============================== ======================================= pwm[1-3]_auto_point2_pwm full-speed duty-cycle (255, i.e., 100%) pwm[1-3]_auto_point1_pwm low-speed duty-cycle pwm[1-3]_auto_pwm_min min-speed duty-cycle Loading @@ -179,6 +203,7 @@ zone[1-3]_auto_point1_temp_hyst: zone[1-3]_auto_point2_temp full-speed temp zone[1-3]_auto_point1_temp low-speed temp zone[1-3]_auto_point1_temp_hyst min-speed temp =============================== ======================================= The chip adjusts the output duty-cycle linearly in the range of auto_point1_pwm to auto_point2_pwm if the temperature of the associated zone is between Loading @@ -192,17 +217,21 @@ all PWM outputs are set to 100% duty-cycle. Following is another representation of how the chip sets the output duty-cycle based on the temperature of the associated thermal zone: Duty-Cycle Duty-Cycle Temperature Rising Temp Falling Temp ----------- ----------- ------------ =============== =============== ================= Temperature Duty-Cycle Duty-Cycle Rising Temp Falling Temp =============== =============== ================= full-speed full-speed full-speed < linearly adjusted duty-cycle > - < linearly - adjusted duty-cycle > low-speed low-speed low-speed min-speed low-speed - min-speed low-speed min-speed min-speed min-speed min-speed min-speed - min-speed min-speed =============== =============== ================= Sysfs Attributes Loading @@ -211,8 +240,9 @@ Sysfs Attributes Following is a list of all sysfs attributes that the driver provides, their permissions and a short description: =============================== ======= ======================================= Name Perm Description ---- ---- ----------- =============================== ======= ======================================= cpu0_vid RO CPU core reference voltage in millivolts. vrm RW Voltage regulator module version Loading Loading @@ -242,9 +272,10 @@ temp[1-3]_fault RO Temp input fault. Returns 1 if the chip zone[1-3]_auto_channels_temp RO Temperature zone to temperature input mapping. This attribute is a bitfield and supports the following values: 1: temp1 2: temp2 4: temp3 - 1: temp1 - 2: temp2 - 4: temp3 zone[1-3]_auto_point1_temp_hyst RW Auto PWM temp point1 hysteresis. The output of the corresponding PWM is set to the pwm_auto_min value if the temp Loading Loading @@ -275,9 +306,10 @@ pmw[1-3,5-6] RO/RW Duty-cycle of PWM output. Supported manual mode. pwm[1-3]_enable RW Enable of PWM outputs 1-3. Supported values are: 0: turned off (output @ 100%) 1: manual mode 2: automatic mode - 0: turned off (output @ 100%) - 1: manual mode - 2: automatic mode pwm[5-6]_enable RO Enable of PWM outputs 5-6. Always returns 1 since these 2 outputs are hard-wired to manual mode. Loading @@ -294,11 +326,12 @@ pmw[1-3]_ramp_rate RW Ramp rate of PWM output. Determines how pwm[1-3]_auto_channels_zone RW PWM output to temperature zone mapping. This attribute is a bitfield and supports the following values: 1: zone1 2: zone2 4: zone3 6: highest of zone[2-3] 7: highest of zone[1-3] - 1: zone1 - 2: zone2 - 4: zone3 - 6: highest of zone[2-3] - 7: highest of zone[1-3] pwm[1-3]_auto_pwm_min RW Auto PWM min pwm. Minimum PWM duty- cycle. Supported values are 0 or auto_point1_pwm. Loading @@ -307,12 +340,14 @@ pwm[1-3]_auto_point1_pwm RW Auto PWM pwm point. Auto_point1 is the pwm[1-3]_auto_point2_pwm RO Auto PWM pwm point. Auto_point2 is the full-speed duty-cycle which is hard- wired to 255 (100% duty-cycle). =============================== ======= ======================================= Chip Differences ---------------- ======================= ======= ======= ======= ======= Feature dme1737 sch311x sch5027 sch5127 ------------------------------------------------------- ======================= ======= ======= ======= ======= temp[1-3]_offset yes yes vid yes zone3 yes yes yes Loading @@ -326,3 +361,4 @@ pwm5 opt opt fan6 opt opt pwm6 opt opt in7 yes ======================= ======= ======= ======= ======= Documentation/hwmon/vt1211 +52 −32 Original line number Diff line number Diff line Loading @@ -2,9 +2,13 @@ Kernel driver vt1211 ==================== Supported chips: * VIA VT1211 Prefix: 'vt1211' Addresses scanned: none, address read from Super-I/O config space Datasheet: Provided by VIA upon request and under NDA Authors: Juerg Haefliger <juergh@gmail.com> Loading @@ -19,14 +23,17 @@ technical support. Module Parameters ----------------- * uch_config: int Override the BIOS default universal channel (UCH) * uch_config: int Override the BIOS default universal channel (UCH) configuration for channels 1-5. Legal values are in the range of 0-31. Bit 0 maps to UCH1, bit 1 maps to UCH2 and so on. Setting a bit to 1 enables the thermal input of that particular UCH and setting a bit to 0 enables the voltage input. * int_mode: int Override the BIOS default temperature interrupt mode. * int_mode: int Override the BIOS default temperature interrupt mode. The only possible value is 0 which forces interrupt mode 0. In this mode, any pending interrupt is cleared when the status register is read but is regenerated as Loading Loading @@ -55,8 +62,9 @@ connected to the PWM outputs of the VT1211 :-(). The following table shows the relationship between the vt1211 inputs and the sysfs nodes. =============== ============== =========== ================================ Sensor Voltage Mode Temp Mode Default Use (from the datasheet) ------ ------------ --------- -------------------------------- =============== ============== =========== ================================ Reading 1 temp1 Intel thermal diode Reading 3 temp2 Internal thermal diode UCH1/Reading2 in0 temp3 NTC type thermistor Loading @@ -65,6 +73,7 @@ UCH3 in2 temp5 VccP (processor core) UCH4 in3 temp6 +5V UCH5 in4 temp7 +12V +3.3V in5 Internal VCC (+3.3V) =============== ============== =========== ================================ Voltage Monitoring Loading @@ -82,18 +91,21 @@ follows. And this is of course totally dependent on the actual board implementation :-) You will have to find documentation for your own motherboard and edit sensors.conf accordingly. ============= ====== ====== ========= ============ Expected Voltage R1 R2 Divider Raw Value ----------------------------------------------- ============= ====== ====== ========= ============ +2.5V 2K 10K 1.2 2083 mV VccP --- --- 1.0 1400 mV (1) VccP --- --- 1.0 1400 mV [1]_ +5V 14K 10K 2.4 2083 mV +12V 47K 10K 5.7 2105 mV +3.3V (int) 2K 3.4K 1.588 3300 mV (2) +3.3V (int) 2K 3.4K 1.588 3300 mV [2]_ +3.3V (ext) 6.8K 10K 1.68 1964 mV ============= ====== ====== ========= ============ .. [1] Depending on the CPU (1.4V is for a VIA C3 Nehemiah). (1) Depending on the CPU (1.4V is for a VIA C3 Nehemiah). (2) R1 and R2 for 3.3V (int) are internal to the VT1211 chip and the driver .. [2] R1 and R2 for 3.3V (int) are internal to the VT1211 chip and the driver performs the scaling and returns the properly scaled voltage value. Each measured voltage has an associated low and high limit which triggers an Loading Loading @@ -124,32 +136,34 @@ compute temp1 (@-Offset)/Gain, (@*Gain)+Offset According to the VIA VT1211 BIOS porting guide, the following gain and offset values should be used: =============== ======== =========== Diode Type Offset Gain ---------- ------ ---- =============== ======== =========== Intel CPU 88.638 0.9528 65.000 0.9686 *) 65.000 0.9686 [3]_ VIA C3 Ezra 83.869 0.9528 VIA C3 Ezra-T 73.869 0.9528 =============== ======== =========== *) This is the formula from the lm_sensors 2.10.0 sensors.conf file. I don't .. [3] This is the formula from the lm_sensors 2.10.0 sensors.conf file. I don't know where it comes from or how it was derived, it's just listed here for completeness. Temp3-temp7 support NTC thermistors. For these channels, the driver returns the voltages as seen at the individual pins of UCH1-UCH5. The voltage at the pin (Vpin) is formed by a voltage divider made of the thermistor (Rth) and a scaling resistor (Rs): scaling resistor (Rs):: Vpin = 2200 * Rth / (Rs + Rth) (2200 is the ADC max limit of 2200 mV) The equation for the thermistor is as follows (google it if you want to know more about it): more about it):: Rth = Ro * exp(B * (1 / T - 1 / To)) (To is 298.15K (25C) and Ro is the nominal resistance at 25C) Mingling the above two equations and assuming Rs = Ro and B = 3435 yields the following formula for sensors.conf: following formula for sensors.conf:: compute tempx 1 / (1 / 298.15 - (` (2200 / @ - 1)) / 3435) - 273.15, 2200 / (1 + (^ (3435 / 298.15 - 3435 / (273.15 + @)))) Loading @@ -176,31 +190,37 @@ registers in the VT1211 and programming one set is sufficient (actually only the first set pwm1_auto_point[1-4]_temp is writable, the second set is read-only). ========================== ========================================= PWM Auto Point PWM Output Duty-Cycle ------------------------------------------------ ========================== ========================================= pwm[1-2]_auto_point4_pwm full speed duty-cycle (hard-wired to 255) pwm[1-2]_auto_point3_pwm high speed duty-cycle pwm[1-2]_auto_point2_pwm low speed duty-cycle pwm[1-2]_auto_point1_pwm off duty-cycle (hard-wired to 0) ========================== ========================================= ========================== ================= Temp Auto Point Thermal Threshold --------------------------------------------- ========================== ================= pwm[1-2]_auto_point4_temp full speed temp pwm[1-2]_auto_point3_temp high speed temp pwm[1-2]_auto_point2_temp low speed temp pwm[1-2]_auto_point1_temp off temp ========================== ================= Long story short, the controller implements the following algorithm to set the PWM output duty-cycle based on the input temperature: Thermal Threshold Output Duty-Cycle =================== ======================= ======================== Thermal Threshold Output Duty-Cycle Output Duty-Cycle (Rising Temp) (Falling Temp) ---------------------------------------------------------- full speed duty-cycle full speed duty-cycle =================== ======================= ======================== - full speed duty-cycle full speed duty-cycle full speed temp high speed duty-cycle full speed duty-cycle - high speed duty-cycle full speed duty-cycle high speed temp low speed duty-cycle high speed duty-cycle - low speed duty-cycle high speed duty-cycle low speed temp off duty-cycle low speed duty-cycle - off duty-cycle low speed duty-cycle off temp =================== ======================= ======================== Loading
Documentation/hwmon/dme1737 +62 −26 Original line number Diff line number Diff line Loading @@ -2,21 +2,37 @@ Kernel driver dme1737 ===================== Supported chips: * SMSC DME1737 and compatibles (like Asus A8000) Prefix: 'dme1737' Addresses scanned: I2C 0x2c, 0x2d, 0x2e Datasheet: Provided by SMSC upon request and under NDA * SMSC SCH3112, SCH3114, SCH3116 Prefix: 'sch311x' Addresses scanned: none, address read from Super-I/O config space Datasheet: Available on the Internet * SMSC SCH5027 Prefix: 'sch5027' Addresses scanned: I2C 0x2c, 0x2d, 0x2e Datasheet: Provided by SMSC upon request and under NDA * SMSC SCH5127 Prefix: 'sch5127' Addresses scanned: none, address read from Super-I/O config space Datasheet: Provided by SMSC upon request and under NDA Authors: Loading @@ -26,11 +42,14 @@ Authors: Module Parameters ----------------- * force_start: bool Enables the monitoring of voltage, fan and temp inputs * force_start: bool Enables the monitoring of voltage, fan and temp inputs and PWM output control functions. Using this parameter shouldn't be required since the BIOS usually takes care of this. * probe_all_addr: bool Include non-standard LPC addresses 0x162e and 0x164e * probe_all_addr: bool Include non-standard LPC addresses 0x162e and 0x164e when probing for ISA devices. This is required for the following boards: - VIA EPIA SN18000 Loading Loading @@ -70,7 +89,8 @@ scaling resistors. The values returned by the driver therefore reflect true millivolts and don't need scaling. The voltage inputs are mapped as follows (the last column indicates the input ranges): DME1737, A8000: DME1737, A8000:: in0: +5VTR (+5V standby) 0V - 6.64V in1: Vccp (processor core) 0V - 3V in2: VCC (internal +3.3V) 0V - 4.38V Loading @@ -79,7 +99,8 @@ DME1737, A8000: in5: VTR (+3.3V standby) 0V - 4.38V in6: Vbat (+3.0V) 0V - 4.38V SCH311x: SCH311x:: in0: +2.5V 0V - 3.32V in1: Vccp (processor core) 0V - 2V in2: VCC (internal +3.3V) 0V - 4.38V Loading @@ -88,7 +109,8 @@ SCH311x: in5: VTR (+3.3V standby) 0V - 4.38V in6: Vbat (+3.0V) 0V - 4.38V SCH5027: SCH5027:: in0: +5VTR (+5V standby) 0V - 6.64V in1: Vccp (processor core) 0V - 3V in2: VCC (internal +3.3V) 0V - 4.38V Loading @@ -97,7 +119,8 @@ SCH5027: in5: VTR (+3.3V standby) 0V - 4.38V in6: Vbat (+3.0V) 0V - 4.38V SCH5127: SCH5127:: in0: +2.5 0V - 3.32V in1: Vccp (processor core) 0V - 3V in2: VCC (internal +3.3V) 0V - 4.38V Loading @@ -119,7 +142,7 @@ Celsius. The chip also features offsets for all 3 temperature inputs which - when programmed - get added to the input readings. The chip does all the scaling by itself and the driver therefore reports true temperatures that don't need any user-space adjustments. The temperature inputs are mapped as follows (the last column indicates the input ranges): (the last column indicates the input ranges):: temp1: Remote diode 1 (3904 type) temperature -127C - +127C temp2: DME1737 internal temperature -127C - +127C Loading Loading @@ -171,6 +194,7 @@ pwm[1-3]_auto_pwm_min, respectively. The thermal thresholds of the zones are programmed via zone[1-3]_auto_point[1-3]_temp and zone[1-3]_auto_point1_temp_hyst: =============================== ======================================= pwm[1-3]_auto_point2_pwm full-speed duty-cycle (255, i.e., 100%) pwm[1-3]_auto_point1_pwm low-speed duty-cycle pwm[1-3]_auto_pwm_min min-speed duty-cycle Loading @@ -179,6 +203,7 @@ zone[1-3]_auto_point1_temp_hyst: zone[1-3]_auto_point2_temp full-speed temp zone[1-3]_auto_point1_temp low-speed temp zone[1-3]_auto_point1_temp_hyst min-speed temp =============================== ======================================= The chip adjusts the output duty-cycle linearly in the range of auto_point1_pwm to auto_point2_pwm if the temperature of the associated zone is between Loading @@ -192,17 +217,21 @@ all PWM outputs are set to 100% duty-cycle. Following is another representation of how the chip sets the output duty-cycle based on the temperature of the associated thermal zone: Duty-Cycle Duty-Cycle Temperature Rising Temp Falling Temp ----------- ----------- ------------ =============== =============== ================= Temperature Duty-Cycle Duty-Cycle Rising Temp Falling Temp =============== =============== ================= full-speed full-speed full-speed < linearly adjusted duty-cycle > - < linearly - adjusted duty-cycle > low-speed low-speed low-speed min-speed low-speed - min-speed low-speed min-speed min-speed min-speed min-speed min-speed - min-speed min-speed =============== =============== ================= Sysfs Attributes Loading @@ -211,8 +240,9 @@ Sysfs Attributes Following is a list of all sysfs attributes that the driver provides, their permissions and a short description: =============================== ======= ======================================= Name Perm Description ---- ---- ----------- =============================== ======= ======================================= cpu0_vid RO CPU core reference voltage in millivolts. vrm RW Voltage regulator module version Loading Loading @@ -242,9 +272,10 @@ temp[1-3]_fault RO Temp input fault. Returns 1 if the chip zone[1-3]_auto_channels_temp RO Temperature zone to temperature input mapping. This attribute is a bitfield and supports the following values: 1: temp1 2: temp2 4: temp3 - 1: temp1 - 2: temp2 - 4: temp3 zone[1-3]_auto_point1_temp_hyst RW Auto PWM temp point1 hysteresis. The output of the corresponding PWM is set to the pwm_auto_min value if the temp Loading Loading @@ -275,9 +306,10 @@ pmw[1-3,5-6] RO/RW Duty-cycle of PWM output. Supported manual mode. pwm[1-3]_enable RW Enable of PWM outputs 1-3. Supported values are: 0: turned off (output @ 100%) 1: manual mode 2: automatic mode - 0: turned off (output @ 100%) - 1: manual mode - 2: automatic mode pwm[5-6]_enable RO Enable of PWM outputs 5-6. Always returns 1 since these 2 outputs are hard-wired to manual mode. Loading @@ -294,11 +326,12 @@ pmw[1-3]_ramp_rate RW Ramp rate of PWM output. Determines how pwm[1-3]_auto_channels_zone RW PWM output to temperature zone mapping. This attribute is a bitfield and supports the following values: 1: zone1 2: zone2 4: zone3 6: highest of zone[2-3] 7: highest of zone[1-3] - 1: zone1 - 2: zone2 - 4: zone3 - 6: highest of zone[2-3] - 7: highest of zone[1-3] pwm[1-3]_auto_pwm_min RW Auto PWM min pwm. Minimum PWM duty- cycle. Supported values are 0 or auto_point1_pwm. Loading @@ -307,12 +340,14 @@ pwm[1-3]_auto_point1_pwm RW Auto PWM pwm point. Auto_point1 is the pwm[1-3]_auto_point2_pwm RO Auto PWM pwm point. Auto_point2 is the full-speed duty-cycle which is hard- wired to 255 (100% duty-cycle). =============================== ======= ======================================= Chip Differences ---------------- ======================= ======= ======= ======= ======= Feature dme1737 sch311x sch5027 sch5127 ------------------------------------------------------- ======================= ======= ======= ======= ======= temp[1-3]_offset yes yes vid yes zone3 yes yes yes Loading @@ -326,3 +361,4 @@ pwm5 opt opt fan6 opt opt pwm6 opt opt in7 yes ======================= ======= ======= ======= =======
Documentation/hwmon/vt1211 +52 −32 Original line number Diff line number Diff line Loading @@ -2,9 +2,13 @@ Kernel driver vt1211 ==================== Supported chips: * VIA VT1211 Prefix: 'vt1211' Addresses scanned: none, address read from Super-I/O config space Datasheet: Provided by VIA upon request and under NDA Authors: Juerg Haefliger <juergh@gmail.com> Loading @@ -19,14 +23,17 @@ technical support. Module Parameters ----------------- * uch_config: int Override the BIOS default universal channel (UCH) * uch_config: int Override the BIOS default universal channel (UCH) configuration for channels 1-5. Legal values are in the range of 0-31. Bit 0 maps to UCH1, bit 1 maps to UCH2 and so on. Setting a bit to 1 enables the thermal input of that particular UCH and setting a bit to 0 enables the voltage input. * int_mode: int Override the BIOS default temperature interrupt mode. * int_mode: int Override the BIOS default temperature interrupt mode. The only possible value is 0 which forces interrupt mode 0. In this mode, any pending interrupt is cleared when the status register is read but is regenerated as Loading Loading @@ -55,8 +62,9 @@ connected to the PWM outputs of the VT1211 :-(). The following table shows the relationship between the vt1211 inputs and the sysfs nodes. =============== ============== =========== ================================ Sensor Voltage Mode Temp Mode Default Use (from the datasheet) ------ ------------ --------- -------------------------------- =============== ============== =========== ================================ Reading 1 temp1 Intel thermal diode Reading 3 temp2 Internal thermal diode UCH1/Reading2 in0 temp3 NTC type thermistor Loading @@ -65,6 +73,7 @@ UCH3 in2 temp5 VccP (processor core) UCH4 in3 temp6 +5V UCH5 in4 temp7 +12V +3.3V in5 Internal VCC (+3.3V) =============== ============== =========== ================================ Voltage Monitoring Loading @@ -82,18 +91,21 @@ follows. And this is of course totally dependent on the actual board implementation :-) You will have to find documentation for your own motherboard and edit sensors.conf accordingly. ============= ====== ====== ========= ============ Expected Voltage R1 R2 Divider Raw Value ----------------------------------------------- ============= ====== ====== ========= ============ +2.5V 2K 10K 1.2 2083 mV VccP --- --- 1.0 1400 mV (1) VccP --- --- 1.0 1400 mV [1]_ +5V 14K 10K 2.4 2083 mV +12V 47K 10K 5.7 2105 mV +3.3V (int) 2K 3.4K 1.588 3300 mV (2) +3.3V (int) 2K 3.4K 1.588 3300 mV [2]_ +3.3V (ext) 6.8K 10K 1.68 1964 mV ============= ====== ====== ========= ============ .. [1] Depending on the CPU (1.4V is for a VIA C3 Nehemiah). (1) Depending on the CPU (1.4V is for a VIA C3 Nehemiah). (2) R1 and R2 for 3.3V (int) are internal to the VT1211 chip and the driver .. [2] R1 and R2 for 3.3V (int) are internal to the VT1211 chip and the driver performs the scaling and returns the properly scaled voltage value. Each measured voltage has an associated low and high limit which triggers an Loading Loading @@ -124,32 +136,34 @@ compute temp1 (@-Offset)/Gain, (@*Gain)+Offset According to the VIA VT1211 BIOS porting guide, the following gain and offset values should be used: =============== ======== =========== Diode Type Offset Gain ---------- ------ ---- =============== ======== =========== Intel CPU 88.638 0.9528 65.000 0.9686 *) 65.000 0.9686 [3]_ VIA C3 Ezra 83.869 0.9528 VIA C3 Ezra-T 73.869 0.9528 =============== ======== =========== *) This is the formula from the lm_sensors 2.10.0 sensors.conf file. I don't .. [3] This is the formula from the lm_sensors 2.10.0 sensors.conf file. I don't know where it comes from or how it was derived, it's just listed here for completeness. Temp3-temp7 support NTC thermistors. For these channels, the driver returns the voltages as seen at the individual pins of UCH1-UCH5. The voltage at the pin (Vpin) is formed by a voltage divider made of the thermistor (Rth) and a scaling resistor (Rs): scaling resistor (Rs):: Vpin = 2200 * Rth / (Rs + Rth) (2200 is the ADC max limit of 2200 mV) The equation for the thermistor is as follows (google it if you want to know more about it): more about it):: Rth = Ro * exp(B * (1 / T - 1 / To)) (To is 298.15K (25C) and Ro is the nominal resistance at 25C) Mingling the above two equations and assuming Rs = Ro and B = 3435 yields the following formula for sensors.conf: following formula for sensors.conf:: compute tempx 1 / (1 / 298.15 - (` (2200 / @ - 1)) / 3435) - 273.15, 2200 / (1 + (^ (3435 / 298.15 - 3435 / (273.15 + @)))) Loading @@ -176,31 +190,37 @@ registers in the VT1211 and programming one set is sufficient (actually only the first set pwm1_auto_point[1-4]_temp is writable, the second set is read-only). ========================== ========================================= PWM Auto Point PWM Output Duty-Cycle ------------------------------------------------ ========================== ========================================= pwm[1-2]_auto_point4_pwm full speed duty-cycle (hard-wired to 255) pwm[1-2]_auto_point3_pwm high speed duty-cycle pwm[1-2]_auto_point2_pwm low speed duty-cycle pwm[1-2]_auto_point1_pwm off duty-cycle (hard-wired to 0) ========================== ========================================= ========================== ================= Temp Auto Point Thermal Threshold --------------------------------------------- ========================== ================= pwm[1-2]_auto_point4_temp full speed temp pwm[1-2]_auto_point3_temp high speed temp pwm[1-2]_auto_point2_temp low speed temp pwm[1-2]_auto_point1_temp off temp ========================== ================= Long story short, the controller implements the following algorithm to set the PWM output duty-cycle based on the input temperature: Thermal Threshold Output Duty-Cycle =================== ======================= ======================== Thermal Threshold Output Duty-Cycle Output Duty-Cycle (Rising Temp) (Falling Temp) ---------------------------------------------------------- full speed duty-cycle full speed duty-cycle =================== ======================= ======================== - full speed duty-cycle full speed duty-cycle full speed temp high speed duty-cycle full speed duty-cycle - high speed duty-cycle full speed duty-cycle high speed temp low speed duty-cycle high speed duty-cycle - low speed duty-cycle high speed duty-cycle low speed temp off duty-cycle low speed duty-cycle - off duty-cycle low speed duty-cycle off temp =================== ======================= ========================