[lm-sensors] Standalone driver for W83677HG-I, NCT6775F, NCT6776F pwm output
Ian Dobson
i.dobson at planet-ian.com
Sun Feb 6 16:45:15 CET 2011
--------------------------------------------------
From: "Ian Dobson" <i.dobson at planet-ian.com>
Sent: Sunday, February 06, 2011 2:55 PM
To: <lm-sensors at lm-sensors.org>
Subject: Re: [lm-sensors] Standalone driver for W83677HG-I,
NCT6775F,NCT6776F pwm output
> --------------------------------------------------
> From: "Ian Dobson" <i.dobson at planet-ian.com>
> Sent: Sunday, February 06, 2011 2:37 PM
> To: <lm-sensors at lm-sensors.org>
> Subject: Re: [lm-sensors] Standalone driver for W83677HG-I,
> NCT6775F,NCT6776F voltage input multipliers
>
>>
>>
>> --------------------------------------------------
>> From: "Jean Delvare" <khali at linux-fr.org>
>> Sent: Sunday, February 06, 2011 10:56 AM
>> To: "Guenter Roeck" <guenter.roeck at ericsson.com>
>> Cc: "Andrea Rizzolo" <andrea.rizzolo at gmail.com>;
>> <lm-sensors at lm-sensors.org>
>> Subject: Re: [lm-sensors] Standalone driver for W83677HG-I, NCT6775F,
>> NCT6776F
>>
>>> On Sat, 5 Feb 2011 11:15:25 -0800, Guenter Roeck wrote:
>>>> On Sat, Feb 05, 2011 at 02:00:09PM -0500, Andrea Rizzolo wrote:
>>>> > hi,
>>>> > thank you very much, here on intel DH57JG it works. `sensors` output:
>>>> >
>>>> > nct6775-isa-0680
>>>> > Adapter: ISA adapter
>>>> > in0: +0.93 V (min = +0.00 V, max = +1.74 V)
>>>> > in1: +0.78 V (min = +0.00 V, max = +0.00 V) ALARM
>>>> > in2: +3.41 V (min = +0.00 V, max = +0.00 V) ALARM
>>>> > in3: +3.41 V (min = +0.00 V, max = +0.00 V) ALARM
>>>> > in4: +1.26 V (min = +0.00 V, max = +0.00 V) ALARM
>>>> > in5: +0.78 V (min = +0.00 V, max = +0.00 V) ALARM
>>>> > in6: +1.06 V (min = +0.00 V, max = +0.00 V) ALARM
>>>> > in7: +3.36 V (min = +0.00 V, max = +0.00 V) ALARM
>>>> > in8: +3.30 V (min = +0.00 V, max = +0.00 V) ALARM
>>>> > fan1: 0 RPM (min = 0 RPM, div = 2) ALARM
>>>> > fan2: 0 RPM (min = 0 RPM, div = 2) ALARM
>>>> > fan3: 0 RPM (min = 0 RPM, div = 2) ALARM
>>>> > fan4: 0 RPM (div = 2) ALARM
>>>> > temp1: +31.0°C (high = +0.0°C, hyst = +0.0°C) ALARM sensor
>>>> > = diode
>>>> > temp2: +32.0°C (high = +80.0°C, hyst = +75.0°C) sensor =
>>>> > diode
>>>> > temp3: +23.0°C (high = +80.0°C, hyst = +75.0°C) sensor =
>>>> > thermistor
>>>> > cpu0_vid: +2.050 V
>>>>
>>>> Hi Andrea,
>>>>
>>>> excellent - that matches the output I get. Now all we have to do is to
>>>> match the values
>>>> to actual voltages. in2 and in3 match the 3.3V seen in the BIOS, but
>>>> for the others
>>>> I have no idea.
>>>
>>> As for the other chips in this family, in2, in3, in7 and in8 are
>>> internal voltages so their mapping and scaling is fixed. The pin names
>>> also strongly suggest connecting Vcore to in0, and I've never seen a
>>> board manufacturer diverge from this. So you can start with the
>>> following config statements:
>>>
>>> chip "nct6775-*" "nct66776-*"
>>>
>>> label in0 "Vcore"
>>> label in2 "AVCC"
>>> label in3 "+3.3V"
>>> label in7 "3VSB"
>>> label in8 "Vbat"
>>>
>>> set in2_min 3.3 * 0.90
>>> set in2_max 3.3 * 1.10
>>> set in3_min 3.3 * 0.90
>>> set in3_max 3.3 * 1.10
>>> set in7_min 3.3 * 0.90
>>> set in7_max 3.3 * 1.10
>>> set in8_min 3.0 * 0.90
>>> set in8_max 3.0 * 1.10
>>>
>>> This leaves only 4 voltage inputs to configure, presumably for +5V,
>>> +12V, and possibly 5VSB and Vdimm. Check the labels and values in the
>>> BIOS (write them all down if they fluctuate) and maybe we can figure it
>>> out.
>>>
>>> --
>>> Jean Delvare
>>>
>>> _______________________________________________
>>> lm-sensors mailing list
>>> lm-sensors at lm-sensors.org
>>> http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
>>
>> OK Here's the infomation
>> nct6776-isa-0290
>> Adapter: ISA adapter
>> Vcore: +1.18 V (min = +0.00 V, max = +1.74 V)
>> in1: +1.02 V (min = +0.00 V, max = +0.00 V) ALARM
>> AVCC: +3.36 V (min = +2.98 V, max = +3.63 V)
>> +3.3V: +3.34 V (min = +2.98 V, max = +3.63 V)
>> in4: +1.03 V (min = +0.00 V, max = +0.00 V) ALARM
>> in5: +2.04 V (min = +0.00 V, max = +0.00 V) ALARM
>> in6: +0.78 V (min = +0.00 V, max = +0.00 V) ALARM
>> 3VSB: +3.42 V (min = +2.98 V, max = +3.63 V)
>> Vbat: +3.30 V (min = +2.70 V, max = +3.30 V) ALARM
>> fan1: 550 RPM (min = 0 RPM) ALARM
>> fan2: 1013 RPM (min = 0 RPM) ALARM
>> fan3: 0 RPM (min = 0 RPM) ALARM
>> fan4: 824 RPM (min = 0 RPM) ALARM
>> fan5: 0 RPM (min = 0 RPM) ALARM
>> temp1: +24.0°C (high = +0.0°C, hyst = +0.0°C) ALARM sensor
>> = thermistor
>> temp2: -60.0°C (high = +80.0°C, hyst = +75.0°C) sensor = diode
>> temp3: +38.0°C (high = +80.0°C, hyst = +75.0°C) sensor =
>> thermistor
>> cpu0_vid: +2.050 V
>>
>> and BIOS
>> CPU temp 43
>> MB temp 25
>>
>> CPU Volt 1.114-1.1176
>> 3.3Volt 3.36 - 3.34
>> 5Volt 5.160
>> 12Volt 12.288
>>
>> So it looks as if in4 * 5 is 5Volt, in5 * 6 is 12volt. This is on a asus
>> p8p67 pro, but I've seen the same values on a asus p8p67 delux.
>>
>> Looking in the n6776f specification if looks as if AUXTIN(temp3) and in6
>> share the same pin (pin 109) so we can't have both enabled.
>>
>> Regards
>> Ian Dobson
>>
>>
>>
>> _______________________________________________
>> lm-sensors mailing list
>> lm-sensors at lm-sensors.org
>> http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
>
> also pwm output won't work, Bank 0 index 1 is the actual value used for
> the pwm output, while the setpoint for the pwm value is in Bank1,index09
> bit[7:0] (this is only used in manual mode)
>
> so in the code we could do something like
> static const u8 N677X_REG_PWM_ACTUAL[] = { 0x01, 0x03, 0x11 };
> static const u16 N677X_REG_PWM_SETPOINT[] = { 0x109, 0x209, 0x309 };
>
> in update_device we always read from _ACTUAL, and in store_pwm if the chip
> is a n677x write to _SETPOINT.
>
> If you want I can try and write a patch.
>
> Regards
> Ian Dobson
>
>
>
> _______________________________________________
> lm-sensors mailing list
> lm-sensors at lm-sensors.org
> http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
Sorry my mistake, you've already split the reading/writing of the pwm
(NCT6775_REG_PWM)
Regards
Ian Dobson
More information about the lm-sensors
mailing list