Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b5430a04 authored by Tomaz Mertelj's avatar Tomaz Mertelj Committed by Linus Torvalds
Browse files

hwmon: driver for Texas Instruments amc6821 chip



Signed-off-by: default avatar <tomaz.mertelj@guest.arnes.si>
Cc: Jean Delvare <khali@linux-fr.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 24f3c59e
Loading
Loading
Loading
Loading
+102 −0
Original line number Original line Diff line number Diff line
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.
+10 −0
Original line number Original line Diff line number Diff line
@@ -792,6 +792,16 @@ config SENSORS_ADS7828
	  This driver can also be built as a module.  If so, the module
	  This driver can also be built as a module.  If so, the module
	  will be called ads7828.
	  will be called ads7828.


config SENSORS_AMC6821
	tristate "Texas Instruments AMC6821"
	depends on I2C  && EXPERIMENTAL
	help
	  If you say yes here you get support for the Texas Instruments
	  AMC6821 hardware monitoring chips.

	  This driver can also be build as a module.  If so, the module
	  will be called amc6821.

config SENSORS_THMC50
config SENSORS_THMC50
	tristate "Texas Instruments THMC50 / Analog Devices ADM1022"
	tristate "Texas Instruments THMC50 / Analog Devices ADM1022"
	depends on I2C && EXPERIMENTAL
	depends on I2C && EXPERIMENTAL
+1 −0
Original line number Original line Diff line number Diff line
@@ -86,6 +86,7 @@ obj-$(CONFIG_SENSORS_SIS5595) += sis5595.o
obj-$(CONFIG_SENSORS_SMSC47B397)+= smsc47b397.o
obj-$(CONFIG_SENSORS_SMSC47B397)+= smsc47b397.o
obj-$(CONFIG_SENSORS_SMSC47M1)	+= smsc47m1.o
obj-$(CONFIG_SENSORS_SMSC47M1)	+= smsc47m1.o
obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o
obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o
obj-$(CONFIG_SENSORS_AMC6821)	+= amc6821.o
obj-$(CONFIG_SENSORS_THMC50)	+= thmc50.o
obj-$(CONFIG_SENSORS_THMC50)	+= thmc50.o
obj-$(CONFIG_SENSORS_TMP401)	+= tmp401.o
obj-$(CONFIG_SENSORS_TMP401)	+= tmp401.o
obj-$(CONFIG_SENSORS_TMP421)	+= tmp421.o
obj-$(CONFIG_SENSORS_TMP421)	+= tmp421.o
+1116 −0

File added.

Preview size limit exceeded, changes collapsed.