adt7462: new hwmon driver
New driver to play with. As Jean mentioned a couple of years ago, this chip is a beast with odd combinations of 8 fans, 4 temperatures, and 13 voltage sensors. This driver has been tested on an IntelliStation Z30. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Cc: Jean Delvare <khali@linux-fr.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									455fbdd376
								
							
						
					
					
						commit
						c0b4e3ab0c
					
				
							
								
								
									
										67
									
								
								Documentation/hwmon/adt7462
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								Documentation/hwmon/adt7462
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,67 @@ | ||||
| Kernel driver adt7462 | ||||
| ====================== | ||||
| 
 | ||||
| Supported chips: | ||||
|   * Analog Devices ADT7462 | ||||
|     Prefix: 'adt7462' | ||||
|     Addresses scanned: I2C 0x58, 0x5C | ||||
|     Datasheet: Publicly available at the Analog Devices website | ||||
| 
 | ||||
| Author: Darrick J. Wong | ||||
| 
 | ||||
| Description | ||||
| ----------- | ||||
| 
 | ||||
| This driver implements support for the Analog Devices ADT7462 chip family. | ||||
| 
 | ||||
| This chip is a bit of a beast.  It has 8 counters for measuring fan speed.  It | ||||
| can also measure 13 voltages or 4 temperatures, or various combinations of the | ||||
| two.  See the chip documentation for more details about the exact set of | ||||
| configurations.  This driver does not allow one to configure the chip; that is | ||||
| left to the system designer. | ||||
| 
 | ||||
| A sophisticated control system for the PWM outputs is designed into the ADT7462 | ||||
| that allows fan speed to be adjusted automatically based on any of the three | ||||
| temperature sensors. Each PWM output is individually adjustable and | ||||
| programmable. Once configured, the ADT7462 will adjust the PWM outputs in | ||||
| response to the measured temperatures without further host intervention.  This | ||||
| feature can also be disabled for manual control of the PWM's. | ||||
| 
 | ||||
| Each of the measured inputs (voltage, temperature, fan speed) has | ||||
| corresponding high/low limit values. The ADT7462 will signal an ALARM if | ||||
| any measured value exceeds either limit. | ||||
| 
 | ||||
| The ADT7462 samples all inputs continuously. The driver will not read | ||||
| the registers more often than once every other second. Further, | ||||
| configuration data is only read once per minute. | ||||
| 
 | ||||
| Special Features | ||||
| ---------------- | ||||
| 
 | ||||
| The ADT7462 have a 10-bit ADC and can therefore measure temperatures | ||||
| with 0.25 degC resolution. | ||||
| 
 | ||||
| The Analog Devices datasheet is very detailed and describes a procedure for | ||||
| determining an optimal configuration for the automatic PWM control. | ||||
| 
 | ||||
| The driver will report sensor labels when it is able to determine that | ||||
| information from the configuration registers. | ||||
| 
 | ||||
| Configuration Notes | ||||
| ------------------- | ||||
| 
 | ||||
| Besides standard interfaces driver adds the following: | ||||
| 
 | ||||
| * PWM Control | ||||
| 
 | ||||
| * pwm#_auto_point1_pwm and temp#_auto_point1_temp and | ||||
| * pwm#_auto_point2_pwm and temp#_auto_point2_temp - | ||||
| 
 | ||||
| point1: Set the pwm speed at a lower temperature bound. | ||||
| point2: Set the pwm speed at a higher temperature bound. | ||||
| 
 | ||||
| The ADT7462 will scale the pwm between the lower and higher pwm speed when | ||||
| the temperature is between the two temperature boundaries.  PWM values range | ||||
| from 0 (off) to 255 (full speed).  Fan speed will be set to maximum when the | ||||
| temperature sensor associated with the PWM control exceeds temp#_max. | ||||
| 
 | ||||
| @ -159,6 +159,16 @@ config SENSORS_ADM9240 | ||||
| 	  This driver can also be built as a module.  If so, the module | ||||
| 	  will be called adm9240. | ||||
| 
 | ||||
| config SENSORS_ADT7462 | ||||
| 	tristate "Analog Devices ADT7462" | ||||
| 	depends on I2C && EXPERIMENTAL | ||||
| 	help | ||||
| 	  If you say yes here you get support for the Analog Devices | ||||
| 	  ADT7462 temperature monitoring chips. | ||||
| 
 | ||||
| 	  This driver can also be built as a module. If so, the module | ||||
| 	  will be called adt7462. | ||||
| 
 | ||||
| config SENSORS_ADT7470 | ||||
| 	tristate "Analog Devices ADT7470" | ||||
| 	depends on I2C && EXPERIMENTAL | ||||
|  | ||||
| @ -25,6 +25,7 @@ obj-$(CONFIG_SENSORS_ADM1029)	+= adm1029.o | ||||
| obj-$(CONFIG_SENSORS_ADM1031)	+= adm1031.o | ||||
| obj-$(CONFIG_SENSORS_ADM9240)	+= adm9240.o | ||||
| obj-$(CONFIG_SENSORS_ADS7828)	+= ads7828.o | ||||
| obj-$(CONFIG_SENSORS_ADT7462)	+= adt7462.o | ||||
| obj-$(CONFIG_SENSORS_ADT7470)	+= adt7470.o | ||||
| obj-$(CONFIG_SENSORS_ADT7473)	+= adt7473.o | ||||
| obj-$(CONFIG_SENSORS_APPLESMC)	+= applesmc.o | ||||
|  | ||||
							
								
								
									
										2002
									
								
								drivers/hwmon/adt7462.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2002
									
								
								drivers/hwmon/adt7462.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user