Kernel driver amc6821
=====================

Supported chips:
	Texas Instruments AMC6821
	Prefix: 'amc6821'
	Addresses scanned: 0x18, 0x19, 0x1a, 0x2c, 0x2d, 0x2e, 0x4c, 0x4d, 0x4e
	Datasheet: http://focus.ti.com/docs/prod/folders/print/amc6821.html

Authors:
	Tomaz Mertelj <tomaz.mertelj@guest.arnes.si>


Description
-----------

This driver implements support for the Texas Instruments amc6821 chip.
The chip has one on-chip and one remote temperature sensor and one pwm fan
regulator.
The pwm can be controlled either from software or automatically.

The driver provides the following sensor accesses in sysfs:

temp1_input		ro	on-chip temperature
temp1_min		rw	"
temp1_max		rw	"
temp1_crit	 	rw	"
temp1_min_alarm		ro	"
temp1_max_alarm		ro	"
temp1_crit_alarm	ro	"

temp2_input		ro	remote temperature
temp2_min		rw	"
temp2_max		rw	"
temp2_crit	 	rw	"
temp2_min_alarm		ro	"
temp2_max_alarm		ro	"
temp2_crit_alarm	ro	"
temp2_fault		ro	"

fan1_input	 	ro	tachometer speed
fan1_min		rw	"
fan1_max		rw	"
fan1_fault	 	ro	"
fan1_div		rw	Fan divisor can be either 2 or 4.

pwm1			rw	pwm1
pwm1_enable		rw	regulator mode, 1=open loop, 2=fan controlled
				by remote temperature, 3=fan controlled by
				combination of the on-chip temperature and
				remote-sensor temperature,
pwm1_auto_channels_temp ro	1 if pwm_enable==2, 3 if pwm_enable==3
pwm1_auto_point1_pwm	ro	Hardwired to 0, shared for both
				temperature channels.
pwm1_auto_point2_pwm	rw	This value is shared for both temperature
				channels.
pwm1_auto_point3_pwm	rw	Hardwired to 255, shared for both
				temperature channels.

temp1_auto_point1_temp	ro	Hardwired to temp2_auto_point1_temp
				which is rw. Below this temperature fan stops.
temp1_auto_point2_temp	rw	The low-temperature limit of the proportional
				range. Below this temperature
				pwm1 = pwm1_auto_point2_pwm. It can go from
				0 degree C to 124 degree C in steps of
				4 degree C. Read it out after writing to get
				the actual value.
temp1_auto_point3_temp	rw	Above this temperature fan runs at maximum
				speed. It can go from temp1_auto_point2_temp.
				It can only have certain discrete values
				which depend on temp1_auto_point2_temp and
				pwm1_auto_point2_pwm. Read it out after
				writing to get the actual value.

temp2_auto_point1_temp	rw	Must be between 0 degree C and 63 degree C and
				it defines the passive cooling temperature.
				Below this temperature the fan stops in
				the closed loop mode.
temp2_auto_point2_temp	rw	The low-temperature limit of the proportional
				range. Below this temperature
				pwm1 = pwm1_auto_point2_pwm. It can go from
				0 degree C to 124 degree C in steps
				of 4 degree C.

temp2_auto_point3_temp	rw	Above this temperature fan runs at maximum
				speed. It can only have certain discrete
				values which depend on temp2_auto_point2_temp
				and pwm1_auto_point2_pwm. Read it out after
				writing to get actual value.


Module parameters
-----------------

If your board has a BIOS that initializes the amc6821 correctly, you should
load the module with: init=0.

If your board BIOS doesn't initialize the chip, or you want
different settings, you can set the following parameters:
init=1,
pwminv: 0 default pwm output, 1 inverts pwm output.

