brintos

brintos / linux-shallow public Read only

0
0
Text · 10.0 KiB · b5a9fad Raw
327 lines · plain
1=====================2Kernel driver asc76213=====================4 5Supported chips:6 7    Andigilog aSC7621 and aSC7621a8 9    Prefix: 'asc7621'10 11    Addresses scanned: I2C 0x2c, 0x2d, 0x2e12 13    Datasheet: http://www.fairview5.com/linux/asc7621/asc7621.pdf14 15Author:16		George Joseph17 18Description provided by Dave Pivin @ Andigilog:19 20Andigilog has both the PECI and pre-PECI versions of the Heceta-6, as21Intel calls them. Heceta-6e has high frequency PWM and Heceta-6p has22added PECI and a 4th thermal zone. The Andigilog aSC7611 is the23Heceta-6e part and aSC7621 is the Heceta-6p part. They are both in24volume production, shipping to Intel and their subs.25 26We have enhanced both parts relative to the governing Intel27specification. First enhancement is temperature reading resolution. We28have used registers below 20h for vendor-specific functions in addition29to those in the Intel-specified vendor range.30 31Our conversion process produces a result that is reported as two bytes.32The fan speed control uses this finer value to produce a "step-less" fan33PWM output. These two bytes are "read-locked" to guarantee that once a34high or low byte is read, the other byte is locked-in until after the35next read of any register. So to get an atomic reading, read high or low36byte, then the very next read should be the opposite byte. Our data37sheet says 10-bits of resolution, although you may find the lower bits38are active, they are not necessarily reliable or useful externally. We39chose not to mask them.40 41We employ significant filtering that is user tunable as described in the42data sheet. Our temperature reports and fan PWM outputs are very smooth43when compared to the competition, in addition to the higher resolution44temperature reports. The smoother PWM output does not require user45intervention.46 47We offer GPIO features on the former VID pins. These are open-drain48outputs or inputs and may be used as general purpose I/O or as alarm49outputs that are based on temperature limits. These are in 19h and 1Ah.50 51We offer flexible mapping of temperature readings to thermal zones. Any52temperature may be mapped to any zone, which has a default assignment53that follows Intel's specs.54 55Since there is a fan to zone assignment that allows for the "hotter" of56a set of zones to control the PWM of an individual fan, but there is no57indication to the user, we have added an indicator that shows which zone58is currently controlling the PWM for a given fan. This is in register5900h.60 61Both remote diode temperature readings may be given an offset value such62that the reported reading as well as the temperature used to determine63PWM may be offset for system calibration purposes.64 65PECI Extended configuration allows for having more than two domains per66PECI address and also provides an enabling function for each PECI67address. One could use our flexible zone assignment to have a zone68assigned to up to 4 PECI addresses. This is not possible in the default69Intel configuration. This would be useful in multi-CPU systems with70individual fans on each that would benefit from individual fan control.71This is in register 0Eh.72 73The tachometer measurement system is flexible and able to adapt to many74fan types. We can also support pulse-stretched PWM so that 3-wire fans75may be used. These characteristics are in registers 04h to 07h.76 77Finally, we have added a tach disable function that turns off the tach78measurement system for individual tachs in order to save power. That is79in register 75h.80 81--------------------------------------------------------------------------82 83aSC7621 Product Description84===========================85 86The aSC7621 has a two wire digital interface compatible with SMBus 2.0.87Using a 10-bit ADC, the aSC7621 measures the temperature of two remote diode88connected transistors as well as its own die. Support for Platform89Environmental Control Interface (PECI) is included.90 91Using temperature information from these four zones, an automatic fan speed92control algorithm is employed to minimize acoustic impact while achieving93recommended CPU temperature under varying operational loads.94 95To set fan speed, the aSC7621 has three independent pulse width modulation96(PWM) outputs that are controlled by one, or a combination of three,97temperature zones. Both high- and low-frequency PWM ranges are supported.98 99The aSC7621 also includes a digital filter that can be invoked to smooth100temperature readings for better control of fan speed and minimum acoustic101impact.102 103The aSC7621 has tachometer inputs to measure fan speed on up to four fans.104Limit and status registers for all measured values are included to alert105the system host that any measurements are outside of programmed limits106via status registers.107 108System voltages of VCCP, 2.5V, 3.3V, 5.0V, and 12V motherboard power are109monitored efficiently with internal scaling resistors.110 111Features112--------113 114- Supports PECI interface and monitors internal and remote thermal diodes115- 2-wire, SMBus 2.0 compliant, serial interface116- 10-bit ADC117- Monitors VCCP, 2.5V, 3.3V, 5.0V, and 12V motherboard/processor supplies118- Programmable autonomous fan control based on temperature readings119- Noise filtering of temperature reading for fan speed control120- 0.25C digital temperature sensor resolution121- 3 PWM fan speed control outputs for 2-, 3- or 4-wire fans and up to 4 fan122  tachometer inputs123- Enhanced measured temperature to Temperature Zone assignment.124- Provides high and low PWM frequency ranges125- 3 GPIO pins for custom use126- 24-Lead QSOP package127 128Configuration Notes129===================130 131Except where noted below, the sysfs entries created by this driver follow132the standards defined in "sysfs-interface".133 134temp1_source135	=	===============================================136	0 	(default) peci_legacy = 0, Remote 1 Temperature137		peci_legacy = 1, PECI Processor Temperature 0138	1 	Remote 1 Temperature139	2 	Remote 2 Temperature140	3 	Internal Temperature141	4 	PECI Processor Temperature 0142	5 	PECI Processor Temperature 1143	6 	PECI Processor Temperature 2144	7	PECI Processor Temperature 3145	=	===============================================146 147temp2_source148	=	===============================================149	0 	(default) Internal Temperature150	1 	Remote 1 Temperature151	2 	Remote 2 Temperature152	3 	Internal Temperature153	4 	PECI Processor Temperature 0154	5 	PECI Processor Temperature 1155	6 	PECI Processor Temperature 2156	7 	PECI Processor Temperature 3157	=	===============================================158 159temp3_source160	=	===============================================161	0 	(default) Remote 2 Temperature162	1 	Remote 1 Temperature163	2 	Remote 2 Temperature164	3 	Internal Temperature165	4 	PECI Processor Temperature 0166	5 	PECI Processor Temperature 1167	6 	PECI Processor Temperature 2168	7 	PECI Processor Temperature 3169	=	===============================================170 171temp4_source172	=	===============================================173	0 	(default) peci_legacy = 0, PECI Processor Temperature 0174		peci_legacy = 1, Remote 1 Temperature175	1 	Remote 1 Temperature176	2 	Remote 2 Temperature177	3 	Internal Temperature178	4 	PECI Processor Temperature 0179	5 	PECI Processor Temperature 1180	6 	PECI Processor Temperature 2181	7 	PECI Processor Temperature 3182	=	===============================================183 184temp[1-4]_smoothing_enable / temp[1-4]_smoothing_time185	Smooths spikes in temp readings caused by noise.186	Valid values in milliseconds are:187 188	* 35000189	* 17600190	* 11800191	*  7000192	*  4400193	*  3000194	*  1600195	*   800196 197temp[1-4]_crit198	When the corresponding zone temperature reaches this value,199	ALL pwm outputs will got to 100%.200 201temp[5-8]_input / temp[5-8]_enable202	The aSC7621 can also read temperatures provided by the processor203	via the PECI bus.  Usually these are "core" temps and are relative204	to the point where the automatic thermal control circuit starts205	throttling.  This means that these are usually negative numbers.206 207pwm[1-3]_enable208	=============== ========================================================209	0		Fan off.210	1		Fan on manual control.211	2		Fan on automatic control and will run at the minimum pwm212			if the temperature for the zone is below the minimum.213	3		Fan on automatic control but will be off if the214			temperature for the zone is below the minimum.215	4-254		Ignored.216	255		Fan on full.217	=============== ========================================================218 219pwm[1-3]_auto_channels220	Bitmap as described in sysctl-interface with the following221	exceptions...222 223	Only the following combination of zones (and their corresponding masks)224	are valid:225 226	* 1227	* 2228	* 3229	* 2,3230	* 1,2,3231	* 4232	* 1,2,3,4233 234	* Special values:235 236	  ==		======================237	  0		Disabled.238	  16		Fan on manual control.239	  31		Fan on full.240	  ==		======================241 242 243pwm[1-3]_invert244	When set, inverts the meaning of pwm[1-3].245	i.e.  when pwm = 0, the fan will be on full and246	when pwm = 255 the fan will be off.247 248pwm[1-3]_freq249	PWM frequency in Hz250	Valid values in Hz are:251 252	* 10253	* 15254	* 23255	* 30  (default)256	* 38257	* 47258	* 62259	* 94260	* 23000261	* 24000262	* 25000263	* 26000264	* 27000265	* 28000266	* 29000267	* 30000268 269	Setting any other value will be ignored.270 271peci_enable272	Enables or disables PECI273 274peci_avg275	Input filter average time.276 277	* 0 	0 Sec. (no Smoothing) (default)278	* 1 	0.25 Sec.279	* 2 	0.5 Sec.280	* 3 	1.0 Sec.281	* 4 	2.0 Sec.282	* 5 	4.0 Sec.283	* 6 	8.0 Sec.284	* 7 	0.0 Sec.285 286peci_legacy287	=	============================================288	0	Standard Mode (default)289		Remote Diode 1 reading is associated with290		Temperature Zone 1, PECI is associated with291		Zone 4292 293	1	Legacy Mode294		PECI is associated with Temperature Zone 1,295		Remote Diode 1 is associated with Zone 4296	=	============================================297 298peci_diode299	Diode filter300 301	=	====================302	0	0.25 Sec.303	1 	1.1 Sec.304	2 	2.4 Sec.  (default)305	3 	3.4 Sec.306	4 	5.0 Sec.307	5 	6.8 Sec.308	6 	10.2 Sec.309	7 	16.4 Sec.310	=	====================311 312peci_4domain313	Four domain enable314 315	=	===============================================316	0 	1 or 2 Domains for enabled processors (default)317	1 	3 or 4 Domains for enabled processors318	=	===============================================319 320peci_domain321	Domain322 323	=	==================================================324	0 	Processor contains a single domain (0) 	 (default)325	1 	Processor contains two domains (0,1)326	=	==================================================327