All of lore.kernel.org
 help / color / mirror / Atom feed
* [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC
@ 2007-03-22 16:47 Juerg Haefliger
  2007-04-12 13:32 ` [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new Jean Delvare
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Juerg Haefliger @ 2007-03-22 16:47 UTC (permalink / raw)
  To: lm-sensors

Applied changes based on Hans de Goede's review.

---
This patch adds documentation for the new SMSC DME1737 driver.

Signed-off-by: Juerg Haefliger <juergh at gmail.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: hwmon-dme1737-documentation.patch
Type: application/octet-stream
Size: 10193 bytes
Desc: not available
Url : http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20070322/aea204d1/attachment.obj 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new
  2007-03-22 16:47 [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC Juerg Haefliger
@ 2007-04-12 13:32 ` Jean Delvare
  2007-04-12 22:57 ` Juerg Haefliger
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Jean Delvare @ 2007-04-12 13:32 UTC (permalink / raw)
  To: lm-sensors

Hi Juerg,

On Thu, 22 Mar 2007 09:47:29 -0700, Juerg Haefliger wrote:
> Applied changes based on Hans de Goede's review.
> 
> ---
> This patch adds documentation for the new SMSC DME1737 driver.
> 
> Signed-off-by: Juerg Haefliger <juergh at gmail.com>
>
> diff -uprN -X linux-2.6.21-rc1/Documentation/dontdiff -x drivers -x include linux-2.6.21-rc1.orig/Documentation/hwmon/dme1737 linux-2.6.21-rc1/Documentation/hwmon/dme1737
> --- linux-2.6.21-rc1.orig/Documentation/hwmon/dme1737	1969-12-31 16:00:00.000000000 -0800
> +++ linux-2.6.21-rc1/Documentation/hwmon/dme1737	2007-03-20 08:09:17.000000000 -0700
> @@ -0,0 +1,230 @@
> +Kernel driver dme1737
> +==========> +
> +Supported chips:
> +  * SMSC DME1737, Asus A8000
> +    Prefix: 'dme1737'
> +    Addresses scanned: I2C 0x2c, 0x2d, 0x2e
> +    Datasheet: Provided by SMSC upon request and under NDA
> +
> +Authors:
> +    Juerg Haefliger <juergh@gmail.com>
> +
> +
> +Module Parameters
> +-----------------
> +
> +* 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.
> +
> +Note that there is no need to use this parameter if the driver loads without
> +complaining. The driver will says so if it is necessary.

will say

> +
> +
> +Description
> +-----------
> +
> +This driver implements support for the hardware monitoring capabilities of the
> +SMSC DME1737 and Asus A8000 (which are the same) Super-I/O chips. This chip
> +features monitoring of 3 temp sensors (2 remote diodes and 1 internal),
> +7 voltages (6 external and 1 internal) and 6 fan speeds. Additionally, the
> +chip implements 5 PWM outputs for controlling fan speeds both manually and
> +automatically.
> +
> +
> +Voltage Monitoring
> +------------------
> +
> +The voltage inputs are sampled with 12-bit resolution and have internal
> +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):
> +
> +	in0: +5VTR	(+5V standby)		0V - 6.64V
> +	in1: Vccp	(processor core)	0V - 3V
> +	in2: VCC	(internal +3.3V)	0V - 4.38V
> +	in3: +5V				0V - 6.64V
> +	in4: +12V				0V - 16V
> +	in5: VTR	(+3.3V standby)		0V - 4.38V
> +	in6: Vbat	(+3.0V)			0V - 4.38V
> +
> +Each voltage input has associated min and max limits which trigger an alarm
> +when crossed.
> +
> +
> +Temperature Monitoring
> +----------------------
> +
> +Temperatures are measured with 12-bit resolution and reported in millidegree
> +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):
> +
> +	temp1: Remote diode 1 (3904 type) temperature	-127C - +127C
> +	temp2: DME1737 internal temperature		-127C - +127C
> +	temp3: Remote diode 2 (3904 type) temperature	-127C - +127C
> +
> +Each temperature input has associated min and max limits which trigger an alarm
> +when crossed. Additionally, each temperature input has a fault attribute that
> +returns 1 when a faulty diode or an unconnected input is detected and 0
> +otherwise.
> +
> +
> +Fan Monitoring
> +--------------
> +
> +Fan RPMs are measured with 16-bit resolution. The chip provides inputs for 6
> +fan tachometers. All 6 inputs have an associated min limit which triggers an
> +alarm when crossed. Fan inputs 1-4 provide type attributes that need to be set
> +to the number of edges per fan revolution that the connected tachometer
> +generates. Supported values are 2, 3, 5, and 9. Fan inputs 5-6 only support
> +fans that generate 5 edges per revolution. Fan inputs 5-6 also provide a max

I don't like this term "edges per revolution". It looks incorrect to
me. The datasheet says that "five edges" correspond to "two pulses". I
suspect that the 5th edge is needed to make sure we measured a full
rotation of the fan (between 1st edge and 5th edge), but a standard
2-pulse-per-revolution (PPR) fan certainly only generates _4_ edges per
revolution. (If not, someone really needs to explain to me where the
mysterious 5th one comes from!)

An easy test would be, change the value from 5 to 3, how does the
reported fan speed change? I suspect it will be multiplied by exactly
2, not 5/3.

The lm85 driver exports this value in PPR, and even though this isn't
in our standard, I'd rather have the dme1737 driver do the same. 3
edges would be 1 PPR, 5 edges would be 2 PPR and 9 edges would be 4
PPR. I'm puzzled by the 2 edges option - how could a fan emit 1/2 PPR?
Another mystery someone needs to explain to me.

> +attribute that needs to be set to the maximum attainable RPM (fan at 100% duty-
> +cycle) of the input. The chip adjusts the sampling rate based on this value.
> +
> +
> +PWM Output Control
> +------------------
> +
> +This chip features 5 PWM outputs. PWM outputs 1-3 are associated with fan
> +inputs 1-3 and PWM outputs 5-6 are associated with fan inputs 5-6. PWM outputs
> +1-3 can be configured to operate either in manual or automatic mode by setting
> +the appropriate enable attribute accordingly. PWM outputs 5-6 can only operate
> +in manual mode, their enable attributes are therefore read-only. When set to
> +manual mode, the fan speed is set by writing the duty-cycle value to the
> +appropriate PWM attribute. In automatic mode, the PWM attribute returns the
> +current duty-cycle as set by the fan controller in the chip. All PWM outputs
> +support the setting of the output frequency via the freq attribute.
> +
> +In automatic mode, the chip supports the setting of the PWM ramp rate which
> +defines how fast the PWM output is adjusting to changes of the associated
> +temperature input. Associating PWM outputs to temperature inputs is done via
> +the auto_channels_temp attributes. Each PWM output has 2 distinct output
> +duty-cycles: full and low. Full is internally hard-wired to 255 (100%) and low
> +can be programmed via the auto_point1_pwm attribute. The thermal thresholds are
> +programmed via auto_point[1-2]_temp, auto_point1_temp_hyst and
> +auto_point2_crit, respectively:
> +
> +	pwm[1-3]_auto_point2_pwm		full-speed duty-cycle
> +	pwm[1-3]_auto_point1_pwm		low-speed duty-cycle
> +
> +	temp[1-3]_auto_point2_temp_crit		full-speed temp (all outputs)
> +	temp[1-3]_auto_point2_temp		full-speed temp
> +	temp[1-3]_auto_point1_temp		low-speed temp
> +	temp[1-3]_auto_point1_temp_hyst		off 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 input is between
> +auto_point1_temp and auto_point2_temp. The fan is turned off if the temperature
> +drops below the auto_point1_temp_hyst value. If any of the temperatures rise
> +above the auto_point2_temp_crit value, 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 input:
> +
> +			Duty-Cycle	Duty-Cycle
> +	Temperature	Rising Temp	Falling Temp
> +	-----------	-----------	------------
> +	full-speed	full-speed	full-speed
> +
> +			< linearly adjusted duty-cycle >
> +
> +	low-speed	low-speed	low-speed
> +	off temp	off		low-speed
> +			off		off
> +
> +
> +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
> +					number.
> +
> +in[0-6]_input			RO	Measured voltage in millivolts.
> +in[0-6]_min			RW	Low limit for voltage input.
> +in[0-6]_max			RW	High limit for voltage input.
> +in[0-6]_alarm			RO	Voltage input alarm. Returns 1 if
> +					voltage input is or went outside the
> +					associated min-max range, 0 otherwise.
> +
> +temp[1-3]_input			RO	Measured temperature in millidegree
> +					Celsius.
> +temp[1-3]_min			RW	Low limit for temp input.
> +temp[1-3]_max			RW	High limit for temp input.
> +temp[1-3]_offset		RW	Offset for temp input. This value will
> +					be added by the chip to the measured
> +					temperature.
> +temp[1-3]_alarm			RO	Alarm for temp input. Returns 1 if temp
> +					input is or went outside the associated
> +					min-max range, 0 otherwise.
> +temp[1-3]_fault			RO	Temp input fault. Returns 1 if the chip
> +					detects a faulty thermal diode or an
> +					unconnected temp input, 0 otherwise.
> +temp[1-3]_auto_point[1-2]_temp	RW	Auto PWM temp points. Auto_point1 is
> +					the low-speed temperature. Auto_point2
> +					is the full-speed temperature.
> +temp[1-3]_auto_point1_temp_hyst	RW	Auto PWM temp hyst point. This is the

You could spell hysteresis in full here, to make it clearer.

> +					temperature below which the associated
> +					PWM output is set to 0% duty-cycle.
> +temp[1-3]_auto_point2_temp_crit	RW	Auto PWM temp crit point. This is the

And critical in full as well.

> +					temperature above which ALL PWM outputs
> +					are set to 100% duty-cycle.
> +
> +fan[1-6]_input			RO	Measured fan speed in RPM. 
> +fan[1-6]_min			RW	Low limit for fan input.
> +fan[1-6]_alarm			RO	Alarm for fan input. Returns 1 if fan
> +					input is or went below the associated
> +					min value, 0 otherwise.
> +fan[1-4]_type			RW	Type of attached fan. Expressed in
> +					number of edges per revolution that the
> +					fan generates. Supported values are 2,
> +					3, 5, and 9.
> +fan[5-6]_max			RW	Max attainable RPM at 100% duty-cycle.
> +					Required for chip to adjust the
> +					sampling rate accordingly.
> +
> +pmw[1-3,5-6]			RW	Duty-cycle of PWM output. Supported
> +					values are 0-255 (0%-100%). Only
> +					writeable if the associated PWM is in
> +					manual mode.
> +pwm[1-3]_enable			RW	Enable of PWM outputs 1-3. Supported
> +					values are:
> +						-1: turned off (output @ 0%)
> +						 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.

Note that other drivers do not create the file in this case. It is
assumed that PWM is always manual if pwmN exists and pwmN_enable
doesn't.

> +pmw[1-3,5-6]_freq		RW	Frequency of PWM output. Supported
> +					values are in the range 11Hz-30000Hz
> +					(default is 25000Hz).
> +pmw[1-3]_ramp_rate		RW	Ramp rate of PWM output. Determines how
> +					fast the PWM duty-cycle will change
> +					when the PWM is in automatic mode.
> +					Expressed in ms per PWM step size.

s/step size/step/

> +					Supported values are in the range
> +					0ms-206ms (default is 0, which means
> +					the duty-cycle changes instantly).
> +pwm[1-3]_auto_channels_temp	RW	PWM output to temp input mapping.
> +					Supported values are:
> +						1: temp1
> +						2: temp2
> +						4: temp3
> +						6: highest of temp[2-3]
> +						7: highest of temp[1-3]

Might be good mentioning that it's a bitfield, in case the reader
doesn't notice.

> +pwm[1-3]_auto_point[1-2]_pwm	RW	Auto PWM pwm points. Auto_point1 is the
> +					low-speed duty-cycle. Auto_point2 is
> +					the full-speed duty-cycle (which is
> +					hard-wired to 255, i.e., 100% duty-
> +					cycle).
> diff -uprN -X linux-2.6.21-rc1/Documentation/dontdiff -x drivers -x include linux-2.6.21-rc1.orig/MAINTAINERS linux-2.6.21-rc1/MAINTAINERS
> --- linux-2.6.21-rc1.orig/MAINTAINERS	2007-02-20 20:32:30.000000000 -0800
> +++ linux-2.6.21-rc1/MAINTAINERS	2007-02-22 14:27:07.000000000 -0800
> @@ -1156,6 +1156,12 @@ M:	tori@unhappy.mine.nu
>  L:	netdev@vger.kernel.org
>  S:	Maintained
>  
> +DME1737 HARDWARE MONITOR DRIVER
> +P:	Juerg Haefliger
> +M:	juergh@gmail.com
> +L:	lm-sensors@lm-sensors.org
> +S:	Maintained
> +
>  DOCBOOK FOR DOCUMENTATION
>  P:	Randy Dunlap
>  M:	rdunlap@xenotime.net


-- 
Jean Delvare

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new
  2007-03-22 16:47 [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC Juerg Haefliger
  2007-04-12 13:32 ` [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new Jean Delvare
@ 2007-04-12 22:57 ` Juerg Haefliger
  2007-04-13  8:43 ` Jean Delvare
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Juerg Haefliger @ 2007-04-12 22:57 UTC (permalink / raw)
  To: lm-sensors

Hi Jean,

Thanks for the review, I appreciate it.


> > +Fan RPMs are measured with 16-bit resolution. The chip provides inputs for 6
> > +fan tachometers. All 6 inputs have an associated min limit which triggers an
> > +alarm when crossed. Fan inputs 1-4 provide type attributes that need to be set
> > +to the number of edges per fan revolution that the connected tachometer
> > +generates. Supported values are 2, 3, 5, and 9. Fan inputs 5-6 only support
> > +fans that generate 5 edges per revolution. Fan inputs 5-6 also provide a max
>
> I don't like this term "edges per revolution". It looks incorrect to
> me. The datasheet says that "five edges" correspond to "two pulses". I
> suspect that the 5th edge is needed to make sure we measured a full
> rotation of the fan (between 1st edge and 5th edge), but a standard
> 2-pulse-per-revolution (PPR) fan certainly only generates _4_ edges per
> revolution. (If not, someone really needs to explain to me where the
> mysterious 5th one comes from!)
>
> An easy test would be, change the value from 5 to 3, how does the
> reported fan speed change? I suspect it will be multiplied by exactly
> 2, not 5/3.
>
> The lm85 driver exports this value in PPR, and even though this isn't
> in our standard, I'd rather have the dme1737 driver do the same. 3
> edges would be 1 PPR, 5 edges would be 2 PPR and 9 edges would be 4
> PPR. I'm puzzled by the 2 edges option - how could a fan emit 1/2 PPR?
> Another mystery someone needs to explain to me.

You're correct. I just copied the terminology from the datasheet. Will
change it according to your suggestion.


> > +temp[1-3]_auto_point1_temp_hyst      RW      Auto PWM temp hyst point. This is the
>
> You could spell hysteresis in full here, to make it clearer.

OK.


> > +                                     temperature below which the associated
> > +                                     PWM output is set to 0% duty-cycle.
> > +temp[1-3]_auto_point2_temp_crit      RW      Auto PWM temp crit point. This is the
>
> And critical in full as well.

OK.


> > +pwm[5-6]_enable                      RO      Enable of PWM outputs 5-6. Always
> > +                                     returns 1 since these 2 outputs are
> > +                                     hard-wired to manual mode.
>
> Note that other drivers do not create the file in this case. It is
> assumed that PWM is always manual if pwmN exists and pwmN_enable
> doesn't.

I tried to make it consistent for this driver. If it breaks a common
standard I will remove these attributes.


> > +pmw[1-3]_ramp_rate           RW      Ramp rate of PWM output. Determines how
> > +                                     fast the PWM duty-cycle will change
> > +                                     when the PWM is in automatic mode.
> > +                                     Expressed in ms per PWM step size.
>
> s/step size/step/

Sorry, I don't get this.


> > +pwm[1-3]_auto_channels_temp  RW      PWM output to temp input mapping.
> > +                                     Supported values are:
> > +                                             1: temp1
> > +                                             2: temp2
> > +                                             4: temp3
> > +                                             6: highest of temp[2-3]
> > +                                             7: highest of temp[1-3]
>
> Might be good mentioning that it's a bitfield, in case the reader
> doesn't notice.

OK.

Regards
...juerg

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new
  2007-03-22 16:47 [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC Juerg Haefliger
  2007-04-12 13:32 ` [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new Jean Delvare
  2007-04-12 22:57 ` Juerg Haefliger
@ 2007-04-13  8:43 ` Jean Delvare
  2007-05-07 21:26 ` [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC Juerg Haefliger
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Jean Delvare @ 2007-04-13  8:43 UTC (permalink / raw)
  To: lm-sensors

Hi Juerg,

On Thu, 12 Apr 2007 15:57:14 -0700, Juerg Haefliger wrote:
> > > +pwm[5-6]_enable                      RO      Enable of PWM outputs 5-6. Always
> > > +                                     returns 1 since these 2 outputs are
> > > +                                     hard-wired to manual mode.
> >
> > Note that other drivers do not create the file in this case. It is
> > assumed that PWM is always manual if pwmN exists and pwmN_enable
> > doesn't.
> 
> I tried to make it consistent for this driver. If it breaks a common
> standard I will remove these attributes.

No, I'm fine either way. It was only a random comment.

> > > +pmw[1-3]_ramp_rate           RW      Ramp rate of PWM output. Determines how
> > > +                                     fast the PWM duty-cycle will change
> > > +                                     when the PWM is in automatic mode.
> > > +                                     Expressed in ms per PWM step size.
> >
> > s/step size/step/
> 
> Sorry, I don't get this.

I don't think that "expressed in ms per PWM step size" makes much
sense, "expressed in ms per PWM step" sounds better.

-- 
Jean Delvare

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC
  2007-03-22 16:47 [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC Juerg Haefliger
                   ` (2 preceding siblings ...)
  2007-04-13  8:43 ` Jean Delvare
@ 2007-05-07 21:26 ` Juerg Haefliger
  2007-05-13  8:45 ` [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new Jean Delvare
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Juerg Haefliger @ 2007-05-07 21:26 UTC (permalink / raw)
  To: lm-sensors

[-- Attachment #1: Type: text/plain, Size: 117 bytes --]

This patch adds documentation for the new SMSC DME1737 driver.

Signed-off-by: Juerg Haefliger <juergh at gmail.com>

[-- Attachment #2: hwmon-dme1737-documentation.patch --]
[-- Type: text/x-patch, Size: 11166 bytes --]

diff -uprN -X linux-2.6.21-mm1/Documentation/dontdiff -x drivers -x include linux-2.6.21-mm1.orig/Documentation/hwmon/dme1737 linux-2.6.21-mm1/Documentation/hwmon/dme1737
--- linux-2.6.21-mm1.orig/Documentation/hwmon/dme1737	1969-12-31 16:00:00.000000000 -0800
+++ linux-2.6.21-mm1/Documentation/hwmon/dme1737	2007-05-07 12:21:14.000000000 -0700
@@ -0,0 +1,250 @@
+Kernel driver dme1737
+=====================
+
+Supported chips:
+  * SMSC DME1737 and compatibles, Asus A8000
+    Prefix: 'dme1737'
+    Addresses scanned: I2C 0x2c, 0x2d, 0x2e
+    Datasheet: Provided by SMSC upon request and under NDA
+
+Authors:
+    Juerg Haefliger <juergh@gmail.com>
+
+
+Module Parameters
+-----------------
+
+* 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.
+
+Note that there is no need to use this parameter if the driver loads without
+complaining. The driver will say so if it is necessary.
+
+
+Description
+-----------
+
+This driver implements support for the hardware monitoring capabilities of the
+SMSC DME1737 and Asus A8000 (which are the same) Super-I/O chips. This chip
+features monitoring of 3 temp sensors temp[1-3] (2 remote diodes and 1
+internal), 7 voltages in[0-6] (6 external and 1 internal) and 6 fan speeds
+fan[1-6]. Additionally, the chip implements 5 PWM outputs pwm[1-3,5-6] for
+controlling fan speeds both manually and automatically.
+
+Fan[3-6] and pwm[3,5-6] are optional features and their availability is
+dependent on the configuration of the chip. The driver will detect which
+features are present during initialization and create the sysfs attributes
+accordingly.
+
+
+Voltage Monitoring
+------------------
+
+The voltage inputs are sampled with 12-bit resolution and have internal
+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):
+
+	in0: +5VTR	(+5V standby)		0V - 6.64V
+	in1: Vccp	(processor core)	0V - 3V
+	in2: VCC	(internal +3.3V)	0V - 4.38V
+	in3: +5V				0V - 6.64V
+	in4: +12V				0V - 16V
+	in5: VTR	(+3.3V standby)		0V - 4.38V
+	in6: Vbat	(+3.0V)			0V - 4.38V
+
+Each voltage input has associated min and max limits which trigger an alarm
+when crossed.
+
+
+Temperature Monitoring
+----------------------
+
+Temperatures are measured with 12-bit resolution and reported in millidegree
+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):
+
+	temp1: Remote diode 1 (3904 type) temperature	-127C - +127C
+	temp2: DME1737 internal temperature		-127C - +127C
+	temp3: Remote diode 2 (3904 type) temperature	-127C - +127C
+
+Each temperature input has associated min and max limits which trigger an alarm
+when crossed. Additionally, each temperature input has a fault attribute that
+returns 1 when a faulty diode or an unconnected input is detected and 0
+otherwise.
+
+
+Fan Monitoring
+--------------
+
+Fan RPMs are measured with 16-bit resolution. The chip provides inputs for 6
+fan tachometers. All 6 inputs have an associated min limit which triggers an
+alarm when crossed. Fan inputs 1-4 provide type attributes that need to be set
+to the number of pulses per fan revolution that the connected tachometer
+generates. Supported values are 1, 2, and 3. Fan inputs 5-6 only support fans
+that generate 2 pulses per revolution. Fan inputs 5-6 also provide a max
+attribute that needs to be set to the maximum attainable RPM (fan at 100% duty-
+cycle) of the input. The chip adjusts the sampling rate based on this value.
+
+
+PWM Output Control
+------------------
+
+This chip features 5 PWM outputs. PWM outputs 1-3 are associated with fan
+inputs 1-3 and PWM outputs 5-6 are associated with fan inputs 5-6. PWM outputs
+1-3 can be configured to operate either in manual or automatic mode by setting
+the appropriate enable attribute accordingly. PWM outputs 5-6 can only operate
+in manual mode, their enable attributes are therefore read-only. When set to
+manual mode, the fan speed is set by writing the duty-cycle value to the
+appropriate PWM attribute. In automatic mode, the PWM attribute returns the
+current duty-cycle as set by the fan controller in the chip. All PWM outputs
+support the setting of the output frequency via the freq attribute.
+
+In automatic mode, the chip supports the setting of the PWM ramp rate which
+defines how fast the PWM output is adjusting to changes of the associated
+temperature input. Associating PWM outputs to temperature inputs is done via
+temperature zones. The chip features 3 zones whose assignments to temperature
+inputs is static and determined during initialization. These assignments can
+be retrieved via the zone[1-3]_auto_channels_temp attributes. Each PWM output
+is assigned to one (or hottest of multiple) temperature zone(s) through the 
+pwm[1-3]_auto_channels_temp attributes. Each PWM output has 3 distinct output
+duty-cycles: full, low, and off. Full is internally hard-wired to 255 (100%)
+and low and off can be programmed via the pwm[1-3]_auto_point[1-2]_pwm
+attributes. The thermal thresholds of the zones are programmed via
+zone[1-3]_auto_point[1-4]_temp:
+
+	pwm[1-3]_auto_point3_pwm	full-speed duty-cycle (255, i.e., 100%)
+	pwm[1-3]_auto_point2_pwm	low-speed duty-cycle
+	pwm[1-3]_auto_point1_pwm	off duty-cycle
+
+	zone[1-3]_auto_point4_temp	full-speed temp (all outputs)
+	zone[1-3]_auto_point3_temp	full-speed temp
+	zone[1-3]_auto_point2_temp	low-speed temp
+	zone[1-3]_auto_point1_temp	off temp
+
+The chip adjusts the output duty-cycle linearly in the range of auto_point2_pwm
+to auto_point3_pwm if the temperature of the associated zone is between
+auto_point2_temp and auto_point3_temp. If the temperature drops below the
+auto_point1_temp value, the output duty-cycle is set to the auto_point1_pwm
+value which only supports two values: 0 or auto_point2_pwm. That means that the
+fan either turns completely off or keeps spinning with the low-speed
+duty-cycle. If any of the temperatures rise above the auto_point4_temp value,
+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
+	-----------	-----------	------------
+	full-speed	full-speed	full-speed
+
+			< linearly adjusted duty-cycle >
+
+	low-speed	low-speed	low-speed
+			off		low-speed
+	off temp	off		off
+			off		off
+
+
+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
+					number.
+
+in[0-6]_input			RO	Measured voltage in millivolts.
+in[0-6]_min			RW	Low limit for voltage input.
+in[0-6]_max			RW	High limit for voltage input.
+in[0-6]_alarm			RO	Voltage input alarm. Returns 1 if
+					voltage input is or went outside the
+					associated min-max range, 0 otherwise.
+
+temp[1-3]_input			RO	Measured temperature in millidegree
+					Celsius.
+temp[1-3]_min			RW	Low limit for temp input.
+temp[1-3]_max			RW	High limit for temp input.
+temp[1-3]_offset		RW	Offset for temp input. This value will
+					be added by the chip to the measured
+					temperature.
+temp[1-3]_alarm			RO	Alarm for temp input. Returns 1 if temp
+					input is or went outside the associated
+					min-max range, 0 otherwise.
+temp[1-3]_fault			RO	Temp input fault. Returns 1 if the chip
+					detects a faulty thermal diode or an
+					unconnected temp input, 0 otherwise.
+
+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
+zone[1-3]_auto_point[1-4]_temp	RW	Auto PWM temp points. Auto_point1 is
+					the off temp, auto_point2 is the low-
+					speed temp, auto_point3 is the full-
+					speed temp and auto_point4 is the temp
+					at which all PWM outputs are set to
+					full-speed (100% duty-cycle).
+
+fan[1-6]_input			RO	Measured fan speed in RPM. 
+fan[1-6]_min			RW	Low limit for fan input.
+fan[1-6]_alarm			RO	Alarm for fan input. Returns 1 if fan
+					input is or went below the associated
+					min value, 0 otherwise.
+fan[1-4]_type			RW	Type of attached fan. Expressed in
+					number of pulses per revolution that
+					the fan generates. Supported values are
+					1, 2, and 3.
+fan[5-6]_max			RW	Max attainable RPM at 100% duty-cycle.
+					Required for chip to adjust the
+					sampling rate accordingly.
+
+pmw[1-3,5-6]			RO/RW	Duty-cycle of PWM output. Supported
+					values are 0-255 (0%-100%). Only
+					writeable if the associated PWM is in
+					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
+pwm[5-6]_enable			RO	Enable of PWM outputs 5-6. Always
+					returns 1 since these 2 outputs are
+					hard-wired to manual mode.
+pmw[1-3,5-6]_freq		RW	Frequency of PWM output. Supported
+					values are in the range 11Hz-30000Hz
+					(default is 25000Hz).
+pmw[1-3]_ramp_rate		RW	Ramp rate of PWM output. Determines how
+					fast the PWM duty-cycle will change
+					when the PWM is in automatic mode.
+					Expressed in ms per PWM step. Supported
+					values are in the range 0ms-206ms
+					(default is 0, which means the duty-
+					cycle changes instantly).
+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]
+pwm[1-3]_auto_point[1-2]_pwm	RW	Auto PWM pwm points. Auto_point1 is the
+					off duty-cycle and auto_point2 is the
+					low-speed duty-cycle.
+pwm[1-3]_auto_point3_pwm	RO	Auto PWM pwm point. Auto_point3 is the
+					full-speed duty-cycle which is hard-
+					wired to 255 (100% duty-cycle).
diff -uprN -X linux-2.6.21-mm1/Documentation/dontdiff -x drivers -x include linux-2.6.21-mm1.orig/MAINTAINERS linux-2.6.21-mm1/MAINTAINERS
--- linux-2.6.21-mm1.orig/MAINTAINERS	2007-05-07 12:16:20.000000000 -0700
+++ linux-2.6.21-mm1/MAINTAINERS	2007-05-07 12:25:53.000000000 -0700
@@ -1249,6 +1249,12 @@ M:	christopher.leech@intel.com
 L:	linux-kernel@vger.kernel.org
 S:	Maintained
 
+DME1737 HARDWARE MONITOR DRIVER
+P:	Juerg Haefliger
+M:	juergh@gmail.com
+L:	lm-sensors@lm-sensors.org
+S:	Maintained
+
 DOCBOOK FOR DOCUMENTATION
 P:	Randy Dunlap
 M:	rdunlap@xenotime.net

[-- Attachment #3: Type: text/plain, Size: 153 bytes --]

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new
  2007-03-22 16:47 [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC Juerg Haefliger
                   ` (3 preceding siblings ...)
  2007-05-07 21:26 ` [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC Juerg Haefliger
@ 2007-05-13  8:45 ` Jean Delvare
  2007-05-19 21:15 ` [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC Juerg Haefliger
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Jean Delvare @ 2007-05-13  8:45 UTC (permalink / raw)
  To: lm-sensors

Hi Juerg,

On Mon, 7 May 2007 14:26:28 -0700, Juerg Haefliger wrote:
> This patch adds documentation for the new SMSC DME1737 driver.
> 
> Signed-off-by: Juerg Haefliger <juergh at gmail.com>

> diff -uprN -X linux-2.6.21-mm1/Documentation/dontdiff -x drivers -x include linux-2.6.21-mm1.orig/Documentation/hwmon/dme1737 linux-2.6.21-mm1/Documentation/hwmon/dme1737
> --- linux-2.6.21-mm1.orig/Documentation/hwmon/dme1737	1969-12-31 16:00:00.000000000 -0800
> +++ linux-2.6.21-mm1/Documentation/hwmon/dme1737	2007-05-07 12:21:14.000000000 -0700
> @@ -0,0 +1,250 @@
> +Kernel driver dme1737
> +==========> +
> +Supported chips:
> +  * SMSC DME1737 and compatibles, Asus A8000

Confusing (as mentioned in the other part of the review already.)

> +    Prefix: 'dme1737'
> +    Addresses scanned: I2C 0x2c, 0x2d, 0x2e
> +    Datasheet: Provided by SMSC upon request and under NDA
> +
> +Authors:
> +    Juerg Haefliger <juergh@gmail.com>
> +
> +
> +Module Parameters
> +-----------------
> +
> +* 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.
> +
> +Note that there is no need to use this parameter if the driver loads without
> +complaining. The driver will say so if it is necessary.
> +
> +
> +Description
> +-----------
> +
> +This driver implements support for the hardware monitoring capabilities of the
> +SMSC DME1737 and Asus A8000 (which are the same) Super-I/O chips. This chip
> +features monitoring of 3 temp sensors temp[1-3] (2 remote diodes and 1
> +internal), 7 voltages in[0-6] (6 external and 1 internal) and 6 fan speeds
> +fan[1-6]. Additionally, the chip implements 5 PWM outputs pwm[1-3,5-6] for
> +controlling fan speeds both manually and automatically.
> +
> +Fan[3-6] and pwm[3,5-6] are optional features and their availability is
> +dependent on the configuration of the chip. The driver will detect which
> +features are present during initialization and create the sysfs attributes
> +accordingly.
> +
> +
> +Voltage Monitoring
> +------------------
> +
> +The voltage inputs are sampled with 12-bit resolution and have internal
> +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):
> +
> +	in0: +5VTR	(+5V standby)		0V - 6.64V
> +	in1: Vccp	(processor core)	0V - 3V
> +	in2: VCC	(internal +3.3V)	0V - 4.38V
> +	in3: +5V				0V - 6.64V
> +	in4: +12V				0V - 16V
> +	in5: VTR	(+3.3V standby)		0V - 4.38V
> +	in6: Vbat	(+3.0V)			0V - 4.38V
> +
> +Each voltage input has associated min and max limits which trigger an alarm
> +when crossed.
> +
> +
> +Temperature Monitoring
> +----------------------
> +
> +Temperatures are measured with 12-bit resolution and reported in millidegree
> +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):
> +
> +	temp1: Remote diode 1 (3904 type) temperature	-127C - +127C
> +	temp2: DME1737 internal temperature		-127C - +127C
> +	temp3: Remote diode 2 (3904 type) temperature	-127C - +127C
> +
> +Each temperature input has associated min and max limits which trigger an alarm
> +when crossed. Additionally, each temperature input has a fault attribute that
> +returns 1 when a faulty diode or an unconnected input is detected and 0
> +otherwise.
> +
> +
> +Fan Monitoring
> +--------------
> +
> +Fan RPMs are measured with 16-bit resolution. The chip provides inputs for 6
> +fan tachometers. All 6 inputs have an associated min limit which triggers an
> +alarm when crossed. Fan inputs 1-4 provide type attributes that need to be set
> +to the number of pulses per fan revolution that the connected tachometer
> +generates. Supported values are 1, 2, and 3. Fan inputs 5-6 only support fans

1, 2 or 4

> +that generate 2 pulses per revolution. Fan inputs 5-6 also provide a max
> +attribute that needs to be set to the maximum attainable RPM (fan at 100% duty-
> +cycle) of the input. The chip adjusts the sampling rate based on this value.
> +
> +
> +PWM Output Control
> +------------------
> +
> +This chip features 5 PWM outputs. PWM outputs 1-3 are associated with fan
> +inputs 1-3 and PWM outputs 5-6 are associated with fan inputs 5-6. PWM outputs
> +1-3 can be configured to operate either in manual or automatic mode by setting
> +the appropriate enable attribute accordingly. PWM outputs 5-6 can only operate
> +in manual mode, their enable attributes are therefore read-only. When set to
> +manual mode, the fan speed is set by writing the duty-cycle value to the
> +appropriate PWM attribute. In automatic mode, the PWM attribute returns the
> +current duty-cycle as set by the fan controller in the chip. All PWM outputs
> +support the setting of the output frequency via the freq attribute.
> +
> +In automatic mode, the chip supports the setting of the PWM ramp rate which
> +defines how fast the PWM output is adjusting to changes of the associated
> +temperature input. Associating PWM outputs to temperature inputs is done via
> +temperature zones. The chip features 3 zones whose assignments to temperature
> +inputs is static and determined during initialization. These assignments can
> +be retrieved via the zone[1-3]_auto_channels_temp attributes. Each PWM output
> +is assigned to one (or hottest of multiple) temperature zone(s) through the 
> +pwm[1-3]_auto_channels_temp attributes. Each PWM output has 3 distinct output

I think this is named pwm[1-3]_auto_channels_zone in the latest version
of the driver?

> +duty-cycles: full, low, and off. Full is internally hard-wired to 255 (100%)
> +and low and off can be programmed via the pwm[1-3]_auto_point[1-2]_pwm

Inconsistent with the list below which includes
pwm[1-3]_auto_point3_pwm.

> +attributes. The thermal thresholds of the zones are programmed via
> +zone[1-3]_auto_point[1-4]_temp:
> +
> +	pwm[1-3]_auto_point3_pwm	full-speed duty-cycle (255, i.e., 100%)
> +	pwm[1-3]_auto_point2_pwm	low-speed duty-cycle
> +	pwm[1-3]_auto_point1_pwm	off duty-cycle
> +
> +	zone[1-3]_auto_point4_temp	full-speed temp (all outputs)
> +	zone[1-3]_auto_point3_temp	full-speed temp
> +	zone[1-3]_auto_point2_temp	low-speed temp
> +	zone[1-3]_auto_point1_temp	off temp
> +
> +The chip adjusts the output duty-cycle linearly in the range of auto_point2_pwm
> +to auto_point3_pwm if the temperature of the associated zone is between
> +auto_point2_temp and auto_point3_temp. If the temperature drops below the
> +auto_point1_temp value, the output duty-cycle is set to the auto_point1_pwm
> +value which only supports two values: 0 or auto_point2_pwm. That means that the
> +fan either turns completely off or keeps spinning with the low-speed
> +duty-cycle. If any of the temperatures rise above the auto_point4_temp value,
> +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
> +	-----------	-----------	------------
> +	full-speed	full-speed	full-speed
> +
> +			< linearly adjusted duty-cycle >
> +
> +	low-speed	low-speed	low-speed
> +			off		low-speed
> +	off temp	off		off
> +			off		off

This is only true if pwm[1-3]_auto_point1_pwm is set to 0, right?

> +
> +
> +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
> +					number.
> +
> +in[0-6]_input			RO	Measured voltage in millivolts.
> +in[0-6]_min			RW	Low limit for voltage input.
> +in[0-6]_max			RW	High limit for voltage input.
> +in[0-6]_alarm			RO	Voltage input alarm. Returns 1 if
> +					voltage input is or went outside the
> +					associated min-max range, 0 otherwise.
> +
> +temp[1-3]_input			RO	Measured temperature in millidegree
> +					Celsius.
> +temp[1-3]_min			RW	Low limit for temp input.
> +temp[1-3]_max			RW	High limit for temp input.
> +temp[1-3]_offset		RW	Offset for temp input. This value will
> +					be added by the chip to the measured
> +					temperature.
> +temp[1-3]_alarm			RO	Alarm for temp input. Returns 1 if temp
> +					input is or went outside the associated
> +					min-max range, 0 otherwise.
> +temp[1-3]_fault			RO	Temp input fault. Returns 1 if the chip
> +					detects a faulty thermal diode or an
> +					unconnected temp input, 0 otherwise.
> +
> +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
> +zone[1-3]_auto_point[1-4]_temp	RW	Auto PWM temp points. Auto_point1 is
> +					the off temp, auto_point2 is the low-
> +					speed temp, auto_point3 is the full-
> +					speed temp and auto_point4 is the temp
> +					at which all PWM outputs are set to
> +					full-speed (100% duty-cycle).
> +
> +fan[1-6]_input			RO	Measured fan speed in RPM. 
> +fan[1-6]_min			RW	Low limit for fan input.
> +fan[1-6]_alarm			RO	Alarm for fan input. Returns 1 if fan
> +					input is or went below the associated
> +					min value, 0 otherwise.
> +fan[1-4]_type			RW	Type of attached fan. Expressed in
> +					number of pulses per revolution that
> +					the fan generates. Supported values are
> +					1, 2, and 3.
> +fan[5-6]_max			RW	Max attainable RPM at 100% duty-cycle.
> +					Required for chip to adjust the
> +					sampling rate accordingly.
> +
> +pmw[1-3,5-6]			RO/RW	Duty-cycle of PWM output. Supported
> +					values are 0-255 (0%-100%). Only
> +					writeable if the associated PWM is in
> +					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
> +pwm[5-6]_enable			RO	Enable of PWM outputs 5-6. Always
> +					returns 1 since these 2 outputs are
> +					hard-wired to manual mode.
> +pmw[1-3,5-6]_freq		RW	Frequency of PWM output. Supported
> +					values are in the range 11Hz-30000Hz
> +					(default is 25000Hz).
> +pmw[1-3]_ramp_rate		RW	Ramp rate of PWM output. Determines how
> +					fast the PWM duty-cycle will change
> +					when the PWM is in automatic mode.
> +					Expressed in ms per PWM step. Supported
> +					values are in the range 0ms-206ms
> +					(default is 0, which means the duty-
> +					cycle changes instantly).
> +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]
> +pwm[1-3]_auto_point[1-2]_pwm	RW	Auto PWM pwm points. Auto_point1 is the
> +					off duty-cycle and auto_point2 is the
> +					low-speed duty-cycle.
> +pwm[1-3]_auto_point3_pwm	RO	Auto PWM pwm point. Auto_point3 is the
> +					full-speed duty-cycle which is hard-
> +					wired to 255 (100% duty-cycle).
> diff -uprN -X linux-2.6.21-mm1/Documentation/dontdiff -x drivers -x include linux-2.6.21-mm1.orig/MAINTAINERS linux-2.6.21-mm1/MAINTAINERS
> --- linux-2.6.21-mm1.orig/MAINTAINERS	2007-05-07 12:16:20.000000000 -0700
> +++ linux-2.6.21-mm1/MAINTAINERS	2007-05-07 12:25:53.000000000 -0700
> @@ -1249,6 +1249,12 @@ M:	christopher.leech@intel.com
>  L:	linux-kernel@vger.kernel.org
>  S:	Maintained
>  
> +DME1737 HARDWARE MONITOR DRIVER
> +P:	Juerg Haefliger
> +M:	juergh@gmail.com
> +L:	lm-sensors@lm-sensors.org
> +S:	Maintained
> +
>  DOCBOOK FOR DOCUMENTATION
>  P:	Randy Dunlap
>  M:	rdunlap@xenotime.net


-- 
Jean Delvare

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC
  2007-03-22 16:47 [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC Juerg Haefliger
                   ` (4 preceding siblings ...)
  2007-05-13  8:45 ` [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new Jean Delvare
@ 2007-05-19 21:15 ` Juerg Haefliger
  2007-05-20  8:32 ` [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new Jean Delvare
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Juerg Haefliger @ 2007-05-19 21:15 UTC (permalink / raw)
  To: lm-sensors

[-- Attachment #1: Type: text/plain, Size: 172 bytes --]

Fixed remaining issues from Jean's latest review.

---
This patch adds documentation for the new SMSC DME1737 driver.

Signed-off-by: Juerg Haefliger <juergh at gmail.com>

[-- Attachment #2: hwmon-dme1737-documentation.patch --]
[-- Type: text/x-patch, Size: 11533 bytes --]

diff -uprN -X linux-2.6.21-mm1/Documentation/dontdiff -x drivers -x include linux-2.6.21-mm1.orig/Documentation/hwmon/dme1737 linux-2.6.21-mm1/Documentation/hwmon/dme1737
--- linux-2.6.21-mm1.orig/Documentation/hwmon/dme1737	1969-12-31 16:00:00.000000000 -0800
+++ linux-2.6.21-mm1/Documentation/hwmon/dme1737	2007-05-15 16:50:48.000000000 -0700
@@ -0,0 +1,257 @@
+Kernel driver dme1737
+=====================
+
+Supported chips:
+  * SMSC DME1737 and compatibles, Asus A8000
+    Prefix: 'dme1737'
+    Addresses scanned: I2C 0x2c, 0x2d, 0x2e
+    Datasheet: Provided by SMSC upon request and under NDA
+
+Authors:
+    Juerg Haefliger <juergh@gmail.com>
+
+
+Module Parameters
+-----------------
+
+* 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.
+
+Note that there is no need to use this parameter if the driver loads without
+complaining. The driver will say so if it is necessary.
+
+
+Description
+-----------
+
+This driver implements support for the hardware monitoring capabilities of the
+SMSC DME1737 and Asus A8000 (which are the same) Super-I/O chips. This chip
+features monitoring of 3 temp sensors temp[1-3] (2 remote diodes and 1
+internal), 7 voltages in[0-6] (6 external and 1 internal) and 6 fan speeds
+fan[1-6]. Additionally, the chip implements 5 PWM outputs pwm[1-3,5-6] for
+controlling fan speeds both manually and automatically.
+
+Fan[3-6] and pwm[3,5-6] are optional features and their availability is
+dependent on the configuration of the chip. The driver will detect which
+features are present during initialization and create the sysfs attributes
+accordingly.
+
+
+Voltage Monitoring
+------------------
+
+The voltage inputs are sampled with 12-bit resolution and have internal
+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):
+
+	in0: +5VTR	(+5V standby)		0V - 6.64V
+	in1: Vccp	(processor core)	0V - 3V
+	in2: VCC	(internal +3.3V)	0V - 4.38V
+	in3: +5V				0V - 6.64V
+	in4: +12V				0V - 16V
+	in5: VTR	(+3.3V standby)		0V - 4.38V
+	in6: Vbat	(+3.0V)			0V - 4.38V
+
+Each voltage input has associated min and max limits which trigger an alarm
+when crossed.
+
+
+Temperature Monitoring
+----------------------
+
+Temperatures are measured with 12-bit resolution and reported in millidegree
+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):
+
+	temp1: Remote diode 1 (3904 type) temperature	-127C - +127C
+	temp2: DME1737 internal temperature		-127C - +127C
+	temp3: Remote diode 2 (3904 type) temperature	-127C - +127C
+
+Each temperature input has associated min and max limits which trigger an alarm
+when crossed. Additionally, each temperature input has a fault attribute that
+returns 1 when a faulty diode or an unconnected input is detected and 0
+otherwise.
+
+
+Fan Monitoring
+--------------
+
+Fan RPMs are measured with 16-bit resolution. The chip provides inputs for 6
+fan tachometers. All 6 inputs have an associated min limit which triggers an
+alarm when crossed. Fan inputs 1-4 provide type attributes that need to be set
+to the number of pulses per fan revolution that the connected tachometer
+generates. Supported values are 1, 2, and 4. Fan inputs 5-6 only support fans
+that generate 2 pulses per revolution. Fan inputs 5-6 also provide a max
+attribute that needs to be set to the maximum attainable RPM (fan at 100% duty-
+cycle) of the input. The chip adjusts the sampling rate based on this value.
+
+
+PWM Output Control
+------------------
+
+This chip features 5 PWM outputs. PWM outputs 1-3 are associated with fan
+inputs 1-3 and PWM outputs 5-6 are associated with fan inputs 5-6. PWM outputs
+1-3 can be configured to operate either in manual or automatic mode by setting
+the appropriate enable attribute accordingly. PWM outputs 5-6 can only operate
+in manual mode, their enable attributes are therefore read-only. When set to
+manual mode, the fan speed is set by writing the duty-cycle value to the
+appropriate PWM attribute. In automatic mode, the PWM attribute returns the
+current duty-cycle as set by the fan controller in the chip. All PWM outputs
+support the setting of the output frequency via the freq attribute.
+
+In automatic mode, the chip supports the setting of the PWM ramp rate which
+defines how fast the PWM output is adjusting to changes of the associated
+temperature input. Associating PWM outputs to temperature inputs is done via
+temperature zones. The chip features 3 zones whose assignments to temperature
+inputs is static and determined during initialization. These assignments can
+be retrieved via the zone[1-3]_auto_channels_temp attributes. Each PWM output
+is assigned to one (or hottest of multiple) temperature zone(s) through the 
+pwm[1-3]_auto_channels_zone attributes. Each PWM output has 3 distinct output
+duty-cycles: full, low, and min. Full is internally hard-wired to 255 (100%)
+and low and min can be programmed via pwm[1-3]_auto_point1_pwm and
+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 and :
+
+	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
+
+	zone[1-3]_auto_point3_temp	full-speed temp (all outputs)
+	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
+auto_point1_temp and auto_point2_temp. If the temperature drops below the
+auto_point1_temp_hyst value, the output duty-cycle is set to the auto_pwm_min
+value which only supports two values: 0 or auto_point1_pwm. That means that the
+fan either turns completely off or keeps spinning with the low-speed
+duty-cycle. If any of the temperatures rise above the auto_point3_temp value,
+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
+	-----------	-----------	------------
+	full-speed	full-speed	full-speed
+
+			< linearly adjusted duty-cycle >
+
+	low-speed	low-speed	low-speed
+			min-speed	low-speed
+	min-speed	min-speed	min-speed
+			min-speed	min-speed
+
+
+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
+					number.
+
+in[0-6]_input			RO	Measured voltage in millivolts.
+in[0-6]_min			RW	Low limit for voltage input.
+in[0-6]_max			RW	High limit for voltage input.
+in[0-6]_alarm			RO	Voltage input alarm. Returns 1 if
+					voltage input is or went outside the
+					associated min-max range, 0 otherwise.
+
+temp[1-3]_input			RO	Measured temperature in millidegree
+					Celsius.
+temp[1-3]_min			RW	Low limit for temp input.
+temp[1-3]_max			RW	High limit for temp input.
+temp[1-3]_offset		RW	Offset for temp input. This value will
+					be added by the chip to the measured
+					temperature.
+temp[1-3]_alarm			RO	Alarm for temp input. Returns 1 if temp
+					input is or went outside the associated
+					min-max range, 0 otherwise.
+temp[1-3]_fault			RO	Temp input fault. Returns 1 if the chip
+					detects a faulty thermal diode or an
+					unconnected temp input, 0 otherwise.
+
+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
+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
+					falls below the auto_point1_temp_hyst
+					value.
+zone[1-3]_auto_point[1-3]_temp	RW	Auto PWM temp points. Auto_point1 is
+					the low-speed temp, auto_point2 is the
+					full-speed temp, and auto_point3 is the
+					temp at which all PWM outputs are set
+					to full-speed (100% duty-cycle).
+
+fan[1-6]_input			RO	Measured fan speed in RPM. 
+fan[1-6]_min			RW	Low limit for fan input.
+fan[1-6]_alarm			RO	Alarm for fan input. Returns 1 if fan
+					input is or went below the associated
+					min value, 0 otherwise.
+fan[1-4]_type			RW	Type of attached fan. Expressed in
+					number of pulses per revolution that
+					the fan generates. Supported values are
+					1, 2, and 4.
+fan[5-6]_max			RW	Max attainable RPM at 100% duty-cycle.
+					Required for chip to adjust the
+					sampling rate accordingly.
+
+pmw[1-3,5-6]			RO/RW	Duty-cycle of PWM output. Supported
+					values are 0-255 (0%-100%). Only
+					writeable if the associated PWM is in
+					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
+pwm[5-6]_enable			RO	Enable of PWM outputs 5-6. Always
+					returns 1 since these 2 outputs are
+					hard-wired to manual mode.
+pmw[1-3,5-6]_freq		RW	Frequency of PWM output. Supported
+					values are in the range 11Hz-30000Hz
+					(default is 25000Hz).
+pmw[1-3]_ramp_rate		RW	Ramp rate of PWM output. Determines how
+					fast the PWM duty-cycle will change
+					when the PWM is in automatic mode.
+					Expressed in ms per PWM step. Supported
+					values are in the range 0ms-206ms
+					(default is 0, which means the duty-
+					cycle changes instantly).
+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]
+pwm[1-3]_auto_pwm_min		RW	Auto PWM min pwm. Minimum PWM duty-
+					cycle. Supported values are 0 or
+					Auto_point1_pwm.
+pwm[1-3]_auto_point1_pwm	RW	Auto PWM pwm point. Auto_point1 is the
+					low-speed duty-cycle.
+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).
diff -uprN -X linux-2.6.21-mm1/Documentation/dontdiff -x drivers -x include linux-2.6.21-mm1.orig/MAINTAINERS linux-2.6.21-mm1/MAINTAINERS
--- linux-2.6.21-mm1.orig/MAINTAINERS	2007-05-07 12:16:20.000000000 -0700
+++ linux-2.6.21-mm1/MAINTAINERS	2007-05-07 12:25:53.000000000 -0700
@@ -1249,6 +1249,12 @@ M:	christopher.leech@intel.com
 L:	linux-kernel@vger.kernel.org
 S:	Maintained
 
+DME1737 HARDWARE MONITOR DRIVER
+P:	Juerg Haefliger
+M:	juergh@gmail.com
+L:	lm-sensors@lm-sensors.org
+S:	Maintained
+
 DOCBOOK FOR DOCUMENTATION
 P:	Randy Dunlap
 M:	rdunlap@xenotime.net

[-- Attachment #3: Type: text/plain, Size: 153 bytes --]

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new
  2007-03-22 16:47 [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC Juerg Haefliger
                   ` (5 preceding siblings ...)
  2007-05-19 21:15 ` [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC Juerg Haefliger
@ 2007-05-20  8:32 ` Jean Delvare
  2007-05-20 18:16 ` Juerg Haefliger
  2007-05-21  8:51 ` Jean Delvare
  8 siblings, 0 replies; 10+ messages in thread
From: Jean Delvare @ 2007-05-20  8:32 UTC (permalink / raw)
  To: lm-sensors

Hi Juerg,

On Sat, 19 May 2007 14:15:22 -0700, Juerg Haefliger wrote:
> Fixed remaining issues from Jean's latest review.
> 
> ---
> This patch adds documentation for the new SMSC DME1737 driver.
> 
> Signed-off-by: Juerg Haefliger <juergh at gmail.com>

> diff -uprN -X linux-2.6.21-mm1/Documentation/dontdiff -x drivers -x include linux-2.6.21-mm1.orig/Documentation/hwmon/dme1737 linux-2.6.21-mm1/Documentation/hwmon/dme1737
> --- linux-2.6.21-mm1.orig/Documentation/hwmon/dme1737	1969-12-31 16:00:00.000000000 -0800
> +++ linux-2.6.21-mm1/Documentation/hwmon/dme1737	2007-05-15 16:50:48.000000000 -0700
> @@ -0,0 +1,257 @@
> +Kernel driver dme1737
> +==========> +
> +Supported chips:
> +  * SMSC DME1737 and compatibles, Asus A8000

This too should be reworded, as the Kconfig help text was.

> +    Prefix: 'dme1737'
> +    Addresses scanned: I2C 0x2c, 0x2d, 0x2e
> +    Datasheet: Provided by SMSC upon request and under NDA
> +
> +Authors:
> +    Juerg Haefliger <juergh@gmail.com>
> +
> +
> +Module Parameters
> +-----------------
> +
> +* 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.
> +
> +Note that there is no need to use this parameter if the driver loads without
> +complaining. The driver will say so if it is necessary.
> +
> +
> +Description
> +-----------
> +
> +This driver implements support for the hardware monitoring capabilities of the
> +SMSC DME1737 and Asus A8000 (which are the same) Super-I/O chips. This chip
> +features monitoring of 3 temp sensors temp[1-3] (2 remote diodes and 1
> +internal), 7 voltages in[0-6] (6 external and 1 internal) and 6 fan speeds
> +fan[1-6]. Additionally, the chip implements 5 PWM outputs pwm[1-3,5-6] for
> +controlling fan speeds both manually and automatically.
> +
> +Fan[3-6] and pwm[3,5-6] are optional features and their availability is
> +dependent on the configuration of the chip. The driver will detect which
> +features are present during initialization and create the sysfs attributes
> +accordingly.
> +
> +
> +Voltage Monitoring
> +------------------
> +
> +The voltage inputs are sampled with 12-bit resolution and have internal
> +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):
> +
> +	in0: +5VTR	(+5V standby)		0V - 6.64V
> +	in1: Vccp	(processor core)	0V - 3V
> +	in2: VCC	(internal +3.3V)	0V - 4.38V
> +	in3: +5V				0V - 6.64V
> +	in4: +12V				0V - 16V
> +	in5: VTR	(+3.3V standby)		0V - 4.38V
> +	in6: Vbat	(+3.0V)			0V - 4.38V
> +
> +Each voltage input has associated min and max limits which trigger an alarm
> +when crossed.
> +
> +
> +Temperature Monitoring
> +----------------------
> +
> +Temperatures are measured with 12-bit resolution and reported in millidegree
> +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):
> +
> +	temp1: Remote diode 1 (3904 type) temperature	-127C - +127C
> +	temp2: DME1737 internal temperature		-127C - +127C
> +	temp3: Remote diode 2 (3904 type) temperature	-127C - +127C
> +
> +Each temperature input has associated min and max limits which trigger an alarm
> +when crossed. Additionally, each temperature input has a fault attribute that
> +returns 1 when a faulty diode or an unconnected input is detected and 0
> +otherwise.
> +
> +
> +Fan Monitoring
> +--------------
> +
> +Fan RPMs are measured with 16-bit resolution. The chip provides inputs for 6
> +fan tachometers. All 6 inputs have an associated min limit which triggers an
> +alarm when crossed. Fan inputs 1-4 provide type attributes that need to be set
> +to the number of pulses per fan revolution that the connected tachometer
> +generates. Supported values are 1, 2, and 4. Fan inputs 5-6 only support fans
> +that generate 2 pulses per revolution. Fan inputs 5-6 also provide a max
> +attribute that needs to be set to the maximum attainable RPM (fan at 100% duty-
> +cycle) of the input. The chip adjusts the sampling rate based on this value.
> +
> +
> +PWM Output Control
> +------------------
> +
> +This chip features 5 PWM outputs. PWM outputs 1-3 are associated with fan
> +inputs 1-3 and PWM outputs 5-6 are associated with fan inputs 5-6. PWM outputs
> +1-3 can be configured to operate either in manual or automatic mode by setting
> +the appropriate enable attribute accordingly. PWM outputs 5-6 can only operate
> +in manual mode, their enable attributes are therefore read-only. When set to
> +manual mode, the fan speed is set by writing the duty-cycle value to the
> +appropriate PWM attribute. In automatic mode, the PWM attribute returns the
> +current duty-cycle as set by the fan controller in the chip. All PWM outputs
> +support the setting of the output frequency via the freq attribute.
> +
> +In automatic mode, the chip supports the setting of the PWM ramp rate which
> +defines how fast the PWM output is adjusting to changes of the associated
> +temperature input. Associating PWM outputs to temperature inputs is done via
> +temperature zones. The chip features 3 zones whose assignments to temperature
> +inputs is static and determined during initialization. These assignments can
> +be retrieved via the zone[1-3]_auto_channels_temp attributes. Each PWM output
> +is assigned to one (or hottest of multiple) temperature zone(s) through the 
> +pwm[1-3]_auto_channels_zone attributes. Each PWM output has 3 distinct output
> +duty-cycles: full, low, and min. Full is internally hard-wired to 255 (100%)
> +and low and min can be programmed via pwm[1-3]_auto_point1_pwm and
> +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 and :

The trailing " and " shouldn't be there, should it?

> +
> +	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
> +
> +	zone[1-3]_auto_point3_temp	full-speed temp (all outputs)
> +	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
> +auto_point1_temp and auto_point2_temp. If the temperature drops below the
> +auto_point1_temp_hyst value, the output duty-cycle is set to the auto_pwm_min
> +value which only supports two values: 0 or auto_point1_pwm. That means that the
> +fan either turns completely off or keeps spinning with the low-speed
> +duty-cycle. If any of the temperatures rise above the auto_point3_temp value,
> +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
> +	-----------	-----------	------------
> +	full-speed	full-speed	full-speed
> +
> +			< linearly adjusted duty-cycle >
> +
> +	low-speed	low-speed	low-speed
> +			min-speed	low-speed
> +	min-speed	min-speed	min-speed
> +			min-speed	min-speed
> +
> +
> +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
> +					number.
> +
> +in[0-6]_input			RO	Measured voltage in millivolts.
> +in[0-6]_min			RW	Low limit for voltage input.
> +in[0-6]_max			RW	High limit for voltage input.
> +in[0-6]_alarm			RO	Voltage input alarm. Returns 1 if
> +					voltage input is or went outside the
> +					associated min-max range, 0 otherwise.
> +
> +temp[1-3]_input			RO	Measured temperature in millidegree
> +					Celsius.
> +temp[1-3]_min			RW	Low limit for temp input.
> +temp[1-3]_max			RW	High limit for temp input.
> +temp[1-3]_offset		RW	Offset for temp input. This value will
> +					be added by the chip to the measured
> +					temperature.
> +temp[1-3]_alarm			RO	Alarm for temp input. Returns 1 if temp
> +					input is or went outside the associated
> +					min-max range, 0 otherwise.
> +temp[1-3]_fault			RO	Temp input fault. Returns 1 if the chip
> +					detects a faulty thermal diode or an
> +					unconnected temp input, 0 otherwise.
> +
> +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
> +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
> +					falls below the auto_point1_temp_hyst
> +					value.
> +zone[1-3]_auto_point[1-3]_temp	RW	Auto PWM temp points. Auto_point1 is
> +					the low-speed temp, auto_point2 is the
> +					full-speed temp, and auto_point3 is the
> +					temp at which all PWM outputs are set
> +					to full-speed (100% duty-cycle).
> +
> +fan[1-6]_input			RO	Measured fan speed in RPM. 
> +fan[1-6]_min			RW	Low limit for fan input.
> +fan[1-6]_alarm			RO	Alarm for fan input. Returns 1 if fan
> +					input is or went below the associated
> +					min value, 0 otherwise.
> +fan[1-4]_type			RW	Type of attached fan. Expressed in
> +					number of pulses per revolution that
> +					the fan generates. Supported values are
> +					1, 2, and 4.
> +fan[5-6]_max			RW	Max attainable RPM at 100% duty-cycle.
> +					Required for chip to adjust the
> +					sampling rate accordingly.
> +
> +pmw[1-3,5-6]			RO/RW	Duty-cycle of PWM output. Supported
> +					values are 0-255 (0%-100%). Only
> +					writeable if the associated PWM is in
> +					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
> +pwm[5-6]_enable			RO	Enable of PWM outputs 5-6. Always
> +					returns 1 since these 2 outputs are
> +					hard-wired to manual mode.
> +pmw[1-3,5-6]_freq		RW	Frequency of PWM output. Supported
> +					values are in the range 11Hz-30000Hz
> +					(default is 25000Hz).
> +pmw[1-3]_ramp_rate		RW	Ramp rate of PWM output. Determines how
> +					fast the PWM duty-cycle will change
> +					when the PWM is in automatic mode.
> +					Expressed in ms per PWM step. Supported
> +					values are in the range 0ms-206ms
> +					(default is 0, which means the duty-
> +					cycle changes instantly).
> +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]
> +pwm[1-3]_auto_pwm_min		RW	Auto PWM min pwm. Minimum PWM duty-
> +					cycle. Supported values are 0 or
> +					Auto_point1_pwm.

auto_point1_pwm (no leading capital)?

> +pwm[1-3]_auto_point1_pwm	RW	Auto PWM pwm point. Auto_point1 is the
> +					low-speed duty-cycle.
> +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).
> diff -uprN -X linux-2.6.21-mm1/Documentation/dontdiff -x drivers -x include linux-2.6.21-mm1.orig/MAINTAINERS linux-2.6.21-mm1/MAINTAINERS
> --- linux-2.6.21-mm1.orig/MAINTAINERS	2007-05-07 12:16:20.000000000 -0700
> +++ linux-2.6.21-mm1/MAINTAINERS	2007-05-07 12:25:53.000000000 -0700
> @@ -1249,6 +1249,12 @@ M:	christopher.leech@intel.com
>  L:	linux-kernel@vger.kernel.org
>  S:	Maintained
>  
> +DME1737 HARDWARE MONITOR DRIVER
> +P:	Juerg Haefliger
> +M:	juergh@gmail.com
> +L:	lm-sensors@lm-sensors.org
> +S:	Maintained
> +
>  DOCBOOK FOR DOCUMENTATION
>  P:	Randy Dunlap
>  M:	rdunlap@xenotime.net

Other than that, it's OK and I'm taking the patch. I'll adjust it
manually based on your reply to my comments.

Thanks,
-- 
Jean Delvare

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new
  2007-03-22 16:47 [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC Juerg Haefliger
                   ` (6 preceding siblings ...)
  2007-05-20  8:32 ` [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new Jean Delvare
@ 2007-05-20 18:16 ` Juerg Haefliger
  2007-05-21  8:51 ` Jean Delvare
  8 siblings, 0 replies; 10+ messages in thread
From: Juerg Haefliger @ 2007-05-20 18:16 UTC (permalink / raw)
  To: lm-sensors

Hi Jean,


On 5/20/07, Jean Delvare <khali@linux-fr.org> wrote:
> Hi Juerg,
>
> On Sat, 19 May 2007 14:15:22 -0700, Juerg Haefliger wrote:
> > Fixed remaining issues from Jean's latest review.
> >
> > ---
> > This patch adds documentation for the new SMSC DME1737 driver.
> >
> > Signed-off-by: Juerg Haefliger <juergh at gmail.com>
>
> > diff -uprN -X linux-2.6.21-mm1/Documentation/dontdiff -x drivers -x include linux-2.6.21-mm1.orig/Documentation/hwmon/dme1737 linux-2.6.21-mm1/Documentation/hwmon/dme1737
> > --- linux-2.6.21-mm1.orig/Documentation/hwmon/dme1737 1969-12-31 16:00:00.000000000 -0800
> > +++ linux-2.6.21-mm1/Documentation/hwmon/dme1737      2007-05-15 16:50:48.000000000 -0700
> > @@ -0,0 +1,257 @@
> > +Kernel driver dme1737
> > +==========> > +
> > +Supported chips:
> > +  * SMSC DME1737 and compatibles, Asus A8000
>
> This too should be reworded, as the Kconfig help text was.

How about:
SMSC DME1737 and compatibles (like Asus A8000)


>
> > +    Prefix: 'dme1737'
> > +    Addresses scanned: I2C 0x2c, 0x2d, 0x2e
> > +    Datasheet: Provided by SMSC upon request and under NDA
> > +
> > +Authors:
> > +    Juerg Haefliger <juergh@gmail.com>
> > +
> > +
> > +Module Parameters
> > +-----------------
> > +
> > +* 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.
> > +
> > +Note that there is no need to use this parameter if the driver loads without
> > +complaining. The driver will say so if it is necessary.
> > +
> > +
> > +Description
> > +-----------
> > +
> > +This driver implements support for the hardware monitoring capabilities of the
> > +SMSC DME1737 and Asus A8000 (which are the same) Super-I/O chips. This chip
> > +features monitoring of 3 temp sensors temp[1-3] (2 remote diodes and 1
> > +internal), 7 voltages in[0-6] (6 external and 1 internal) and 6 fan speeds
> > +fan[1-6]. Additionally, the chip implements 5 PWM outputs pwm[1-3,5-6] for
> > +controlling fan speeds both manually and automatically.
> > +
> > +Fan[3-6] and pwm[3,5-6] are optional features and their availability is
> > +dependent on the configuration of the chip. The driver will detect which
> > +features are present during initialization and create the sysfs attributes
> > +accordingly.
> > +
> > +
> > +Voltage Monitoring
> > +------------------
> > +
> > +The voltage inputs are sampled with 12-bit resolution and have internal
> > +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):
> > +
> > +     in0: +5VTR      (+5V standby)           0V - 6.64V
> > +     in1: Vccp       (processor core)        0V - 3V
> > +     in2: VCC        (internal +3.3V)        0V - 4.38V
> > +     in3: +5V                                0V - 6.64V
> > +     in4: +12V                               0V - 16V
> > +     in5: VTR        (+3.3V standby)         0V - 4.38V
> > +     in6: Vbat       (+3.0V)                 0V - 4.38V
> > +
> > +Each voltage input has associated min and max limits which trigger an alarm
> > +when crossed.
> > +
> > +
> > +Temperature Monitoring
> > +----------------------
> > +
> > +Temperatures are measured with 12-bit resolution and reported in millidegree
> > +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):
> > +
> > +     temp1: Remote diode 1 (3904 type) temperature   -127C - +127C
> > +     temp2: DME1737 internal temperature             -127C - +127C
> > +     temp3: Remote diode 2 (3904 type) temperature   -127C - +127C
> > +
> > +Each temperature input has associated min and max limits which trigger an alarm
> > +when crossed. Additionally, each temperature input has a fault attribute that
> > +returns 1 when a faulty diode or an unconnected input is detected and 0
> > +otherwise.
> > +
> > +
> > +Fan Monitoring
> > +--------------
> > +
> > +Fan RPMs are measured with 16-bit resolution. The chip provides inputs for 6
> > +fan tachometers. All 6 inputs have an associated min limit which triggers an
> > +alarm when crossed. Fan inputs 1-4 provide type attributes that need to be set
> > +to the number of pulses per fan revolution that the connected tachometer
> > +generates. Supported values are 1, 2, and 4. Fan inputs 5-6 only support fans
> > +that generate 2 pulses per revolution. Fan inputs 5-6 also provide a max
> > +attribute that needs to be set to the maximum attainable RPM (fan at 100% duty-
> > +cycle) of the input. The chip adjusts the sampling rate based on this value.
> > +
> > +
> > +PWM Output Control
> > +------------------
> > +
> > +This chip features 5 PWM outputs. PWM outputs 1-3 are associated with fan
> > +inputs 1-3 and PWM outputs 5-6 are associated with fan inputs 5-6. PWM outputs
> > +1-3 can be configured to operate either in manual or automatic mode by setting
> > +the appropriate enable attribute accordingly. PWM outputs 5-6 can only operate
> > +in manual mode, their enable attributes are therefore read-only. When set to
> > +manual mode, the fan speed is set by writing the duty-cycle value to the
> > +appropriate PWM attribute. In automatic mode, the PWM attribute returns the
> > +current duty-cycle as set by the fan controller in the chip. All PWM outputs
> > +support the setting of the output frequency via the freq attribute.
> > +
> > +In automatic mode, the chip supports the setting of the PWM ramp rate which
> > +defines how fast the PWM output is adjusting to changes of the associated
> > +temperature input. Associating PWM outputs to temperature inputs is done via
> > +temperature zones. The chip features 3 zones whose assignments to temperature
> > +inputs is static and determined during initialization. These assignments can
> > +be retrieved via the zone[1-3]_auto_channels_temp attributes. Each PWM output
> > +is assigned to one (or hottest of multiple) temperature zone(s) through the
> > +pwm[1-3]_auto_channels_zone attributes. Each PWM output has 3 distinct output
> > +duty-cycles: full, low, and min. Full is internally hard-wired to 255 (100%)
> > +and low and min can be programmed via pwm[1-3]_auto_point1_pwm and
> > +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 and :
>
> The trailing " and " shouldn't be there, should it?

Correct, the 'and' is a copy-paste leftover.


> > +
> > +     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
> > +
> > +     zone[1-3]_auto_point3_temp      full-speed temp (all outputs)
> > +     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
> > +auto_point1_temp and auto_point2_temp. If the temperature drops below the
> > +auto_point1_temp_hyst value, the output duty-cycle is set to the auto_pwm_min
> > +value which only supports two values: 0 or auto_point1_pwm. That means that the
> > +fan either turns completely off or keeps spinning with the low-speed
> > +duty-cycle. If any of the temperatures rise above the auto_point3_temp value,
> > +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
> > +     -----------     -----------     ------------
> > +     full-speed      full-speed      full-speed
> > +
> > +                     < linearly adjusted duty-cycle >
> > +
> > +     low-speed       low-speed       low-speed
> > +                     min-speed       low-speed
> > +     min-speed       min-speed       min-speed
> > +                     min-speed       min-speed
> > +
> > +
> > +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
> > +                                     number.
> > +
> > +in[0-6]_input                        RO      Measured voltage in millivolts.
> > +in[0-6]_min                  RW      Low limit for voltage input.
> > +in[0-6]_max                  RW      High limit for voltage input.
> > +in[0-6]_alarm                        RO      Voltage input alarm. Returns 1 if
> > +                                     voltage input is or went outside the
> > +                                     associated min-max range, 0 otherwise.
> > +
> > +temp[1-3]_input                      RO      Measured temperature in millidegree
> > +                                     Celsius.
> > +temp[1-3]_min                        RW      Low limit for temp input.
> > +temp[1-3]_max                        RW      High limit for temp input.
> > +temp[1-3]_offset             RW      Offset for temp input. This value will
> > +                                     be added by the chip to the measured
> > +                                     temperature.
> > +temp[1-3]_alarm                      RO      Alarm for temp input. Returns 1 if temp
> > +                                     input is or went outside the associated
> > +                                     min-max range, 0 otherwise.
> > +temp[1-3]_fault                      RO      Temp input fault. Returns 1 if the chip
> > +                                     detects a faulty thermal diode or an
> > +                                     unconnected temp input, 0 otherwise.
> > +
> > +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
> > +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
> > +                                     falls below the auto_point1_temp_hyst
> > +                                     value.
> > +zone[1-3]_auto_point[1-3]_temp       RW      Auto PWM temp points. Auto_point1 is
> > +                                     the low-speed temp, auto_point2 is the
> > +                                     full-speed temp, and auto_point3 is the
> > +                                     temp at which all PWM outputs are set
> > +                                     to full-speed (100% duty-cycle).
> > +
> > +fan[1-6]_input                       RO      Measured fan speed in RPM.
> > +fan[1-6]_min                 RW      Low limit for fan input.
> > +fan[1-6]_alarm                       RO      Alarm for fan input. Returns 1 if fan
> > +                                     input is or went below the associated
> > +                                     min value, 0 otherwise.
> > +fan[1-4]_type                        RW      Type of attached fan. Expressed in
> > +                                     number of pulses per revolution that
> > +                                     the fan generates. Supported values are
> > +                                     1, 2, and 4.
> > +fan[5-6]_max                 RW      Max attainable RPM at 100% duty-cycle.
> > +                                     Required for chip to adjust the
> > +                                     sampling rate accordingly.
> > +
> > +pmw[1-3,5-6]                 RO/RW   Duty-cycle of PWM output. Supported
> > +                                     values are 0-255 (0%-100%). Only
> > +                                     writeable if the associated PWM is in
> > +                                     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
> > +pwm[5-6]_enable                      RO      Enable of PWM outputs 5-6. Always
> > +                                     returns 1 since these 2 outputs are
> > +                                     hard-wired to manual mode.
> > +pmw[1-3,5-6]_freq            RW      Frequency of PWM output. Supported
> > +                                     values are in the range 11Hz-30000Hz
> > +                                     (default is 25000Hz).
> > +pmw[1-3]_ramp_rate           RW      Ramp rate of PWM output. Determines how
> > +                                     fast the PWM duty-cycle will change
> > +                                     when the PWM is in automatic mode.
> > +                                     Expressed in ms per PWM step. Supported
> > +                                     values are in the range 0ms-206ms
> > +                                     (default is 0, which means the duty-
> > +                                     cycle changes instantly).
> > +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]
> > +pwm[1-3]_auto_pwm_min                RW      Auto PWM min pwm. Minimum PWM duty-
> > +                                     cycle. Supported values are 0 or
> > +                                     Auto_point1_pwm.
>
> auto_point1_pwm (no leading capital)?

Correct, all lower-case.


> > +pwm[1-3]_auto_point1_pwm     RW      Auto PWM pwm point. Auto_point1 is the
> > +                                     low-speed duty-cycle.
> > +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).
> > diff -uprN -X linux-2.6.21-mm1/Documentation/dontdiff -x drivers -x include linux-2.6.21-mm1.orig/MAINTAINERS linux-2.6.21-mm1/MAINTAINERS
> > --- linux-2.6.21-mm1.orig/MAINTAINERS 2007-05-07 12:16:20.000000000 -0700
> > +++ linux-2.6.21-mm1/MAINTAINERS      2007-05-07 12:25:53.000000000 -0700
> > @@ -1249,6 +1249,12 @@ M:     christopher.leech@intel.com
> >  L:   linux-kernel@vger.kernel.org
> >  S:   Maintained
> >
> > +DME1737 HARDWARE MONITOR DRIVER
> > +P:   Juerg Haefliger
> > +M:   juergh@gmail.com
> > +L:   lm-sensors@lm-sensors.org
> > +S:   Maintained
> > +
> >  DOCBOOK FOR DOCUMENTATION
> >  P:   Randy Dunlap
> >  M:   rdunlap@xenotime.net
>
> Other than that, it's OK and I'm taking the patch. I'll adjust it
> manually based on your reply to my comments.
>
> Thanks,
> --
> Jean Delvare
>

Thank you!
...juerg

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new
  2007-03-22 16:47 [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC Juerg Haefliger
                   ` (7 preceding siblings ...)
  2007-05-20 18:16 ` Juerg Haefliger
@ 2007-05-21  8:51 ` Jean Delvare
  8 siblings, 0 replies; 10+ messages in thread
From: Jean Delvare @ 2007-05-21  8:51 UTC (permalink / raw)
  To: lm-sensors

Hi Juerg,

On Sun, 20 May 2007 11:16:39 -0700, Juerg Haefliger wrote:
> On 5/20/07, Jean Delvare <khali@linux-fr.org> wrote:
> > Hi Juerg,
> >
> > On Sat, 19 May 2007 14:15:22 -0700, Juerg Haefliger wrote:
> > > Fixed remaining issues from Jean's latest review.
> > >
> > > ---
> > > This patch adds documentation for the new SMSC DME1737 driver.
> > >
> > > Signed-off-by: Juerg Haefliger <juergh at gmail.com>
> >
> > > diff -uprN -X linux-2.6.21-mm1/Documentation/dontdiff -x drivers -x include linux-2.6.21-mm1.orig/Documentation/hwmon/dme1737 linux-2.6.21-mm1/Documentation/hwmon/dme1737
> > > --- linux-2.6.21-mm1.orig/Documentation/hwmon/dme1737 1969-12-31 16:00:00.000000000 -0800
> > > +++ linux-2.6.21-mm1/Documentation/hwmon/dme1737      2007-05-15 16:50:48.000000000 -0700
> > > @@ -0,0 +1,257 @@
> > > +Kernel driver dme1737
> > > +==========> > > +
> > > +Supported chips:
> > > +  * SMSC DME1737 and compatibles, Asus A8000
> >
> > This too should be reworded, as the Kconfig help text was.
> 
> How about:
> SMSC DME1737 and compatibles (like Asus A8000)
> 
> 
> >
> > > +    Prefix: 'dme1737'
> > > +    Addresses scanned: I2C 0x2c, 0x2d, 0x2e
> > > +    Datasheet: Provided by SMSC upon request and under NDA
> > > +
> > > +Authors:
> > > +    Juerg Haefliger <juergh@gmail.com>
> > > +
> > > +
> > > +Module Parameters
> > > +-----------------
> > > +
> > > +* 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.
> > > +
> > > +Note that there is no need to use this parameter if the driver loads without
> > > +complaining. The driver will say so if it is necessary.
> > > +
> > > +
> > > +Description
> > > +-----------
> > > +
> > > +This driver implements support for the hardware monitoring capabilities of the
> > > +SMSC DME1737 and Asus A8000 (which are the same) Super-I/O chips. This chip
> > > +features monitoring of 3 temp sensors temp[1-3] (2 remote diodes and 1
> > > +internal), 7 voltages in[0-6] (6 external and 1 internal) and 6 fan speeds
> > > +fan[1-6]. Additionally, the chip implements 5 PWM outputs pwm[1-3,5-6] for
> > > +controlling fan speeds both manually and automatically.
> > > +
> > > +Fan[3-6] and pwm[3,5-6] are optional features and their availability is
> > > +dependent on the configuration of the chip. The driver will detect which
> > > +features are present during initialization and create the sysfs attributes
> > > +accordingly.
> > > +
> > > +
> > > +Voltage Monitoring
> > > +------------------
> > > +
> > > +The voltage inputs are sampled with 12-bit resolution and have internal
> > > +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):
> > > +
> > > +     in0: +5VTR      (+5V standby)           0V - 6.64V
> > > +     in1: Vccp       (processor core)        0V - 3V
> > > +     in2: VCC        (internal +3.3V)        0V - 4.38V
> > > +     in3: +5V                                0V - 6.64V
> > > +     in4: +12V                               0V - 16V
> > > +     in5: VTR        (+3.3V standby)         0V - 4.38V
> > > +     in6: Vbat       (+3.0V)                 0V - 4.38V
> > > +
> > > +Each voltage input has associated min and max limits which trigger an alarm
> > > +when crossed.
> > > +
> > > +
> > > +Temperature Monitoring
> > > +----------------------
> > > +
> > > +Temperatures are measured with 12-bit resolution and reported in millidegree
> > > +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):
> > > +
> > > +     temp1: Remote diode 1 (3904 type) temperature   -127C - +127C
> > > +     temp2: DME1737 internal temperature             -127C - +127C
> > > +     temp3: Remote diode 2 (3904 type) temperature   -127C - +127C
> > > +
> > > +Each temperature input has associated min and max limits which trigger an alarm
> > > +when crossed. Additionally, each temperature input has a fault attribute that
> > > +returns 1 when a faulty diode or an unconnected input is detected and 0
> > > +otherwise.
> > > +
> > > +
> > > +Fan Monitoring
> > > +--------------
> > > +
> > > +Fan RPMs are measured with 16-bit resolution. The chip provides inputs for 6
> > > +fan tachometers. All 6 inputs have an associated min limit which triggers an
> > > +alarm when crossed. Fan inputs 1-4 provide type attributes that need to be set
> > > +to the number of pulses per fan revolution that the connected tachometer
> > > +generates. Supported values are 1, 2, and 4. Fan inputs 5-6 only support fans
> > > +that generate 2 pulses per revolution. Fan inputs 5-6 also provide a max
> > > +attribute that needs to be set to the maximum attainable RPM (fan at 100% duty-
> > > +cycle) of the input. The chip adjusts the sampling rate based on this value.
> > > +
> > > +
> > > +PWM Output Control
> > > +------------------
> > > +
> > > +This chip features 5 PWM outputs. PWM outputs 1-3 are associated with fan
> > > +inputs 1-3 and PWM outputs 5-6 are associated with fan inputs 5-6. PWM outputs
> > > +1-3 can be configured to operate either in manual or automatic mode by setting
> > > +the appropriate enable attribute accordingly. PWM outputs 5-6 can only operate
> > > +in manual mode, their enable attributes are therefore read-only. When set to
> > > +manual mode, the fan speed is set by writing the duty-cycle value to the
> > > +appropriate PWM attribute. In automatic mode, the PWM attribute returns the
> > > +current duty-cycle as set by the fan controller in the chip. All PWM outputs
> > > +support the setting of the output frequency via the freq attribute.
> > > +
> > > +In automatic mode, the chip supports the setting of the PWM ramp rate which
> > > +defines how fast the PWM output is adjusting to changes of the associated
> > > +temperature input. Associating PWM outputs to temperature inputs is done via
> > > +temperature zones. The chip features 3 zones whose assignments to temperature
> > > +inputs is static and determined during initialization. These assignments can
> > > +be retrieved via the zone[1-3]_auto_channels_temp attributes. Each PWM output
> > > +is assigned to one (or hottest of multiple) temperature zone(s) through the
> > > +pwm[1-3]_auto_channels_zone attributes. Each PWM output has 3 distinct output
> > > +duty-cycles: full, low, and min. Full is internally hard-wired to 255 (100%)
> > > +and low and min can be programmed via pwm[1-3]_auto_point1_pwm and
> > > +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 and :
> >
> > The trailing " and " shouldn't be there, should it?
> 
> Correct, the 'and' is a copy-paste leftover.
> 
> 
> > > +
> > > +     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
> > > +
> > > +     zone[1-3]_auto_point3_temp      full-speed temp (all outputs)
> > > +     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
> > > +auto_point1_temp and auto_point2_temp. If the temperature drops below the
> > > +auto_point1_temp_hyst value, the output duty-cycle is set to the auto_pwm_min
> > > +value which only supports two values: 0 or auto_point1_pwm. That means that the
> > > +fan either turns completely off or keeps spinning with the low-speed
> > > +duty-cycle. If any of the temperatures rise above the auto_point3_temp value,
> > > +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
> > > +     -----------     -----------     ------------
> > > +     full-speed      full-speed      full-speed
> > > +
> > > +                     < linearly adjusted duty-cycle >
> > > +
> > > +     low-speed       low-speed       low-speed
> > > +                     min-speed       low-speed
> > > +     min-speed       min-speed       min-speed
> > > +                     min-speed       min-speed
> > > +
> > > +
> > > +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
> > > +                                     number.
> > > +
> > > +in[0-6]_input                        RO      Measured voltage in millivolts.
> > > +in[0-6]_min                  RW      Low limit for voltage input.
> > > +in[0-6]_max                  RW      High limit for voltage input.
> > > +in[0-6]_alarm                        RO      Voltage input alarm. Returns 1 if
> > > +                                     voltage input is or went outside the
> > > +                                     associated min-max range, 0 otherwise.
> > > +
> > > +temp[1-3]_input                      RO      Measured temperature in millidegree
> > > +                                     Celsius.
> > > +temp[1-3]_min                        RW      Low limit for temp input.
> > > +temp[1-3]_max                        RW      High limit for temp input.
> > > +temp[1-3]_offset             RW      Offset for temp input. This value will
> > > +                                     be added by the chip to the measured
> > > +                                     temperature.
> > > +temp[1-3]_alarm                      RO      Alarm for temp input. Returns 1 if temp
> > > +                                     input is or went outside the associated
> > > +                                     min-max range, 0 otherwise.
> > > +temp[1-3]_fault                      RO      Temp input fault. Returns 1 if the chip
> > > +                                     detects a faulty thermal diode or an
> > > +                                     unconnected temp input, 0 otherwise.
> > > +
> > > +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
> > > +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
> > > +                                     falls below the auto_point1_temp_hyst
> > > +                                     value.
> > > +zone[1-3]_auto_point[1-3]_temp       RW      Auto PWM temp points. Auto_point1 is
> > > +                                     the low-speed temp, auto_point2 is the
> > > +                                     full-speed temp, and auto_point3 is the
> > > +                                     temp at which all PWM outputs are set
> > > +                                     to full-speed (100% duty-cycle).
> > > +
> > > +fan[1-6]_input                       RO      Measured fan speed in RPM.
> > > +fan[1-6]_min                 RW      Low limit for fan input.
> > > +fan[1-6]_alarm                       RO      Alarm for fan input. Returns 1 if fan
> > > +                                     input is or went below the associated
> > > +                                     min value, 0 otherwise.
> > > +fan[1-4]_type                        RW      Type of attached fan. Expressed in
> > > +                                     number of pulses per revolution that
> > > +                                     the fan generates. Supported values are
> > > +                                     1, 2, and 4.
> > > +fan[5-6]_max                 RW      Max attainable RPM at 100% duty-cycle.
> > > +                                     Required for chip to adjust the
> > > +                                     sampling rate accordingly.
> > > +
> > > +pmw[1-3,5-6]                 RO/RW   Duty-cycle of PWM output. Supported
> > > +                                     values are 0-255 (0%-100%). Only
> > > +                                     writeable if the associated PWM is in
> > > +                                     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
> > > +pwm[5-6]_enable                      RO      Enable of PWM outputs 5-6. Always
> > > +                                     returns 1 since these 2 outputs are
> > > +                                     hard-wired to manual mode.
> > > +pmw[1-3,5-6]_freq            RW      Frequency of PWM output. Supported
> > > +                                     values are in the range 11Hz-30000Hz
> > > +                                     (default is 25000Hz).
> > > +pmw[1-3]_ramp_rate           RW      Ramp rate of PWM output. Determines how
> > > +                                     fast the PWM duty-cycle will change
> > > +                                     when the PWM is in automatic mode.
> > > +                                     Expressed in ms per PWM step. Supported
> > > +                                     values are in the range 0ms-206ms
> > > +                                     (default is 0, which means the duty-
> > > +                                     cycle changes instantly).
> > > +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]
> > > +pwm[1-3]_auto_pwm_min                RW      Auto PWM min pwm. Minimum PWM duty-
> > > +                                     cycle. Supported values are 0 or
> > > +                                     Auto_point1_pwm.
> >
> > auto_point1_pwm (no leading capital)?
> 
> Correct, all lower-case.
> 
> 
> > > +pwm[1-3]_auto_point1_pwm     RW      Auto PWM pwm point. Auto_point1 is the
> > > +                                     low-speed duty-cycle.
> > > +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).
> > > diff -uprN -X linux-2.6.21-mm1/Documentation/dontdiff -x drivers -x include linux-2.6.21-mm1.orig/MAINTAINERS linux-2.6.21-mm1/MAINTAINERS
> > > --- linux-2.6.21-mm1.orig/MAINTAINERS 2007-05-07 12:16:20.000000000 -0700
> > > +++ linux-2.6.21-mm1/MAINTAINERS      2007-05-07 12:25:53.000000000 -0700
> > > @@ -1249,6 +1249,12 @@ M:     christopher.leech@intel.com
> > >  L:   linux-kernel@vger.kernel.org
> > >  S:   Maintained
> > >
> > > +DME1737 HARDWARE MONITOR DRIVER
> > > +P:   Juerg Haefliger
> > > +M:   juergh@gmail.com
> > > +L:   lm-sensors@lm-sensors.org
> > > +S:   Maintained
> > > +
> > >  DOCBOOK FOR DOCUMENTATION
> > >  P:   Randy Dunlap
> > >  M:   rdunlap@xenotime.net
> >
> > Other than that, it's OK and I'm taking the patch. I'll adjust it
> > manually based on your reply to my comments.

OK, I've updated all three points. Thanks.

-- 
Jean Delvare

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2007-05-21  8:51 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-22 16:47 [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC Juerg Haefliger
2007-04-12 13:32 ` [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new Jean Delvare
2007-04-12 22:57 ` Juerg Haefliger
2007-04-13  8:43 ` Jean Delvare
2007-05-07 21:26 ` [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC Juerg Haefliger
2007-05-13  8:45 ` [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new Jean Delvare
2007-05-19 21:15 ` [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new SMSC Juerg Haefliger
2007-05-20  8:32 ` [lm-sensors] [PATCH 2/2 RESEND] hwmon: documentation for new Jean Delvare
2007-05-20 18:16 ` Juerg Haefliger
2007-05-21  8:51 ` Jean Delvare

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.