About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / hwmon / dme1737


Based on kernel version 4.16.1. Page generated on 2018-04-09 11:53 EST.

1	Kernel driver dme1737
2	=====================
3	
4	Supported chips:
5	  * SMSC DME1737 and compatibles (like Asus A8000)
6	    Prefix: 'dme1737'
7	    Addresses scanned: I2C 0x2c, 0x2d, 0x2e
8	    Datasheet: Provided by SMSC upon request and under NDA
9	  * SMSC SCH3112, SCH3114, SCH3116
10	    Prefix: 'sch311x'
11	    Addresses scanned: none, address read from Super-I/O config space
12	    Datasheet: Available on the Internet
13	  * SMSC SCH5027
14	    Prefix: 'sch5027'
15	    Addresses scanned: I2C 0x2c, 0x2d, 0x2e
16	    Datasheet: Provided by SMSC upon request and under NDA
17	  * SMSC SCH5127
18	    Prefix: 'sch5127'
19	    Addresses scanned: none, address read from Super-I/O config space
20	    Datasheet: Provided by SMSC upon request and under NDA
21	
22	Authors:
23	    Juerg Haefliger <juergh@gmail.com>
24	
25	
26	Module Parameters
27	-----------------
28	
29	* force_start: bool	Enables the monitoring of voltage, fan and temp inputs
30				and PWM output control functions. Using this parameter
31				shouldn't be required since the BIOS usually takes care
32				of this.
33	* probe_all_addr: bool	Include non-standard LPC addresses 0x162e and 0x164e
34				when probing for ISA devices. This is required for the
35				following boards:
36				- VIA EPIA SN18000
37	
38	
39	Description
40	-----------
41	
42	This driver implements support for the hardware monitoring capabilities of the
43	SMSC DME1737 and Asus A8000 (which are the same), SMSC SCH5027, SCH311x,
44	and SCH5127 Super-I/O chips. These chips feature monitoring of 3 temp sensors
45	temp[1-3] (2 remote diodes and 1 internal), 8 voltages in[0-7] (7 external and
46	1 internal) and up to 6 fan speeds fan[1-6]. Additionally, the chips implement
47	up to 5 PWM outputs pwm[1-3,5-6] for controlling fan speeds both manually and
48	automatically.
49	
50	For the DME1737, A8000 and SCH5027, fan[1-2] and pwm[1-2] are always present.
51	Fan[3-6] and pwm[3,5-6] are optional features and their availability depends on
52	the configuration of the chip. The driver will detect which features are
53	present during initialization and create the sysfs attributes accordingly.
54	
55	For the SCH311x and SCH5127, fan[1-3] and pwm[1-3] are always present and
56	fan[4-6] and pwm[5-6] don't exist.
57	
58	The hardware monitoring features of the DME1737, A8000, and SCH5027 are only
59	accessible via SMBus, while the SCH311x and SCH5127 only provide access via
60	the ISA bus. The driver will therefore register itself as an I2C client driver
61	if it detects a DME1737, A8000, or SCH5027 and as a platform driver if it
62	detects a SCH311x or SCH5127 chip.
63	
64	
65	Voltage Monitoring
66	------------------
67	
68	The voltage inputs are sampled with 12-bit resolution and have internal
69	scaling resistors. The values returned by the driver therefore reflect true
70	millivolts and don't need scaling. The voltage inputs are mapped as follows
71	(the last column indicates the input ranges):
72	
73	DME1737, A8000:
74		in0: +5VTR	(+5V standby)		0V - 6.64V
75		in1: Vccp	(processor core)	0V - 3V
76		in2: VCC	(internal +3.3V)	0V - 4.38V
77		in3: +5V				0V - 6.64V
78		in4: +12V				0V - 16V
79		in5: VTR	(+3.3V standby)		0V - 4.38V
80		in6: Vbat	(+3.0V)			0V - 4.38V
81	
82	SCH311x:
83		in0: +2.5V				0V - 3.32V
84		in1: Vccp	(processor core)	0V - 2V
85		in2: VCC	(internal +3.3V)	0V - 4.38V
86		in3: +5V				0V - 6.64V
87		in4: +12V				0V - 16V
88		in5: VTR	(+3.3V standby)		0V - 4.38V
89		in6: Vbat	(+3.0V)			0V - 4.38V
90	
91	SCH5027:
92		in0: +5VTR	(+5V standby)		0V - 6.64V
93		in1: Vccp	(processor core)	0V - 3V
94		in2: VCC	(internal +3.3V)	0V - 4.38V
95		in3: V2_IN				0V - 1.5V
96		in4: V1_IN				0V - 1.5V
97		in5: VTR	(+3.3V standby)		0V - 4.38V
98		in6: Vbat	(+3.0V)			0V - 4.38V
99	
100	SCH5127:
101		in0: +2.5				0V - 3.32V
102		in1: Vccp	(processor core)	0V - 3V
103		in2: VCC	(internal +3.3V)	0V - 4.38V
104		in3: V2_IN				0V - 1.5V
105		in4: V1_IN				0V - 1.5V
106		in5: VTR	(+3.3V standby)		0V - 4.38V
107		in6: Vbat	(+3.0V)			0V - 4.38V
108		in7: Vtrip	(+1.5V)			0V - 1.99V
109	
110	Each voltage input has associated min and max limits which trigger an alarm
111	when crossed.
112	
113	
114	Temperature Monitoring
115	----------------------
116	
117	Temperatures are measured with 12-bit resolution and reported in millidegree
118	Celsius. The chip also features offsets for all 3 temperature inputs which -
119	when programmed - get added to the input readings. The chip does all the
120	scaling by itself and the driver therefore reports true temperatures that don't
121	need any user-space adjustments. The temperature inputs are mapped as follows
122	(the last column indicates the input ranges):
123	
124		temp1: Remote diode 1 (3904 type) temperature	-127C - +127C
125		temp2: DME1737 internal temperature		-127C - +127C
126		temp3: Remote diode 2 (3904 type) temperature	-127C - +127C
127	
128	Each temperature input has associated min and max limits which trigger an alarm
129	when crossed. Additionally, each temperature input has a fault attribute that
130	returns 1 when a faulty diode or an unconnected input is detected and 0
131	otherwise.
132	
133	
134	Fan Monitoring
135	--------------
136	
137	Fan RPMs are measured with 16-bit resolution. The chip provides inputs for 6
138	fan tachometers. All 6 inputs have an associated min limit which triggers an
139	alarm when crossed. Fan inputs 1-4 provide type attributes that need to be set
140	to the number of pulses per fan revolution that the connected tachometer
141	generates. Supported values are 1, 2, and 4. Fan inputs 5-6 only support fans
142	that generate 2 pulses per revolution. Fan inputs 5-6 also provide a max
143	attribute that needs to be set to the maximum attainable RPM (fan at 100% duty-
144	cycle) of the input. The chip adjusts the sampling rate based on this value.
145	
146	
147	PWM Output Control
148	------------------
149	
150	This chip features 5 PWM outputs. PWM outputs 1-3 are associated with fan
151	inputs 1-3 and PWM outputs 5-6 are associated with fan inputs 5-6. PWM outputs
152	1-3 can be configured to operate either in manual or automatic mode by setting
153	the appropriate enable attribute accordingly. PWM outputs 5-6 can only operate
154	in manual mode, their enable attributes are therefore read-only. When set to
155	manual mode, the fan speed is set by writing the duty-cycle value to the
156	appropriate PWM attribute. In automatic mode, the PWM attribute returns the
157	current duty-cycle as set by the fan controller in the chip. All PWM outputs
158	support the setting of the output frequency via the freq attribute.
159	
160	In automatic mode, the chip supports the setting of the PWM ramp rate which
161	defines how fast the PWM output is adjusting to changes of the associated
162	temperature input. Associating PWM outputs to temperature inputs is done via
163	temperature zones. The chip features 3 zones whose assignments to temperature
164	inputs is static and determined during initialization. These assignments can
165	be retrieved via the zone[1-3]_auto_channels_temp attributes. Each PWM output
166	is assigned to one (or hottest of multiple) temperature zone(s) through the
167	pwm[1-3]_auto_channels_zone attributes. Each PWM output has 3 distinct output
168	duty-cycles: full, low, and min. Full is internally hard-wired to 255 (100%)
169	and low and min can be programmed via pwm[1-3]_auto_point1_pwm and
170	pwm[1-3]_auto_pwm_min, respectively. The thermal thresholds of the zones are
171	programmed via zone[1-3]_auto_point[1-3]_temp and
172	zone[1-3]_auto_point1_temp_hyst:
173	
174		pwm[1-3]_auto_point2_pwm	full-speed duty-cycle (255, i.e., 100%)
175		pwm[1-3]_auto_point1_pwm	low-speed duty-cycle
176		pwm[1-3]_auto_pwm_min		min-speed duty-cycle
177	
178		zone[1-3]_auto_point3_temp	full-speed temp (all outputs)
179		zone[1-3]_auto_point2_temp	full-speed temp
180		zone[1-3]_auto_point1_temp	low-speed temp
181		zone[1-3]_auto_point1_temp_hyst	min-speed temp
182	
183	The chip adjusts the output duty-cycle linearly in the range of auto_point1_pwm
184	to auto_point2_pwm if the temperature of the associated zone is between
185	auto_point1_temp and auto_point2_temp. If the temperature drops below the
186	auto_point1_temp_hyst value, the output duty-cycle is set to the auto_pwm_min
187	value which only supports two values: 0 or auto_point1_pwm. That means that the
188	fan either turns completely off or keeps spinning with the low-speed
189	duty-cycle. If any of the temperatures rise above the auto_point3_temp value,
190	all PWM outputs are set to 100% duty-cycle.
191	
192	Following is another representation of how the chip sets the output duty-cycle
193	based on the temperature of the associated thermal zone:
194	
195				Duty-Cycle	Duty-Cycle
196		Temperature	Rising Temp	Falling Temp
197		-----------	-----------	------------
198		full-speed	full-speed	full-speed
199	
200				< linearly adjusted duty-cycle >
201	
202		low-speed	low-speed	low-speed
203				min-speed	low-speed
204		min-speed	min-speed	min-speed
205				min-speed	min-speed
206	
207	
208	Sysfs Attributes
209	----------------
210	
211	Following is a list of all sysfs attributes that the driver provides, their
212	permissions and a short description:
213	
214	Name				Perm	Description
215	----				----	-----------
216	cpu0_vid			RO	CPU core reference voltage in
217						millivolts.
218	vrm				RW	Voltage regulator module version
219						number.
220	
221	in[0-7]_input			RO	Measured voltage in millivolts.
222	in[0-7]_min			RW	Low limit for voltage input.
223	in[0-7]_max			RW	High limit for voltage input.
224	in[0-7]_alarm			RO	Voltage input alarm. Returns 1 if
225						voltage input is or went outside the
226						associated min-max range, 0 otherwise.
227	
228	temp[1-3]_input			RO	Measured temperature in millidegree
229						Celsius.
230	temp[1-3]_min			RW	Low limit for temp input.
231	temp[1-3]_max			RW	High limit for temp input.
232	temp[1-3]_offset		RW	Offset for temp input. This value will
233						be added by the chip to the measured
234						temperature.
235	temp[1-3]_alarm			RO	Alarm for temp input. Returns 1 if temp
236						input is or went outside the associated
237						min-max range, 0 otherwise.
238	temp[1-3]_fault			RO	Temp input fault. Returns 1 if the chip
239						detects a faulty thermal diode or an
240						unconnected temp input, 0 otherwise.
241	
242	zone[1-3]_auto_channels_temp	RO	Temperature zone to temperature input
243						mapping. This attribute is a bitfield
244						and supports the following values:
245							1: temp1
246							2: temp2
247							4: temp3
248	zone[1-3]_auto_point1_temp_hyst	RW	Auto PWM temp point1 hysteresis. The
249						output of the corresponding PWM is set
250						to the pwm_auto_min value if the temp
251						falls below the auto_point1_temp_hyst
252						value.
253	zone[1-3]_auto_point[1-3]_temp	RW	Auto PWM temp points. Auto_point1 is
254						the low-speed temp, auto_point2 is the
255						full-speed temp, and auto_point3 is the
256						temp at which all PWM outputs are set
257						to full-speed (100% duty-cycle).
258	
259	fan[1-6]_input			RO	Measured fan speed in RPM.
260	fan[1-6]_min			RW	Low limit for fan input.
261	fan[1-6]_alarm			RO	Alarm for fan input. Returns 1 if fan
262						input is or went below the associated
263						min value, 0 otherwise.
264	fan[1-4]_type			RW	Type of attached fan. Expressed in
265						number of pulses per revolution that
266						the fan generates. Supported values are
267						1, 2, and 4.
268	fan[5-6]_max			RW	Max attainable RPM at 100% duty-cycle.
269						Required for chip to adjust the
270						sampling rate accordingly.
271	
272	pmw[1-3,5-6]			RO/RW	Duty-cycle of PWM output. Supported
273						values are 0-255 (0%-100%). Only
274						writeable if the associated PWM is in
275						manual mode.
276	pwm[1-3]_enable			RW	Enable of PWM outputs 1-3. Supported
277						values are:
278							 0: turned off (output @ 100%)
279							 1: manual mode
280							 2: automatic mode
281	pwm[5-6]_enable			RO	Enable of PWM outputs 5-6. Always
282						returns 1 since these 2 outputs are
283						hard-wired to manual mode.
284	pmw[1-3,5-6]_freq		RW	Frequency of PWM output. Supported
285						values are in the range 11Hz-30000Hz
286						(default is 25000Hz).
287	pmw[1-3]_ramp_rate		RW	Ramp rate of PWM output. Determines how
288						fast the PWM duty-cycle will change
289						when the PWM is in automatic mode.
290						Expressed in ms per PWM step. Supported
291						values are in the range 0ms-206ms
292						(default is 0, which means the duty-
293						cycle changes instantly).
294	pwm[1-3]_auto_channels_zone	RW	PWM output to temperature zone mapping.
295						This attribute is a bitfield and
296						supports the following values:
297							1: zone1
298							2: zone2
299							4: zone3
300							6: highest of zone[2-3]
301							7: highest of zone[1-3]
302	pwm[1-3]_auto_pwm_min		RW	Auto PWM min pwm. Minimum PWM duty-
303						cycle. Supported values are 0 or
304						auto_point1_pwm.
305	pwm[1-3]_auto_point1_pwm	RW	Auto PWM pwm point. Auto_point1 is the
306						low-speed duty-cycle.
307	pwm[1-3]_auto_point2_pwm	RO	Auto PWM pwm point. Auto_point2 is the
308						full-speed duty-cycle which is hard-
309						wired to 255 (100% duty-cycle).
310	
311	Chip Differences
312	----------------
313	
314	Feature			dme1737	sch311x	sch5027	sch5127
315	-------------------------------------------------------
316	temp[1-3]_offset	yes	yes
317	vid			yes
318	zone3			yes	yes	yes
319	zone[1-3]_hyst		yes	yes
320	pwm min/off		yes	yes
321	fan3			opt	yes	opt	yes
322	pwm3			opt	yes	opt	yes
323	fan4			opt		opt
324	fan5			opt		opt
325	pwm5			opt		opt
326	fan6			opt		opt
327	pwm6			opt		opt
328	in7						yes
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog