mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 11:03:14 +00:00 
			
		
		
		
	 46bed4dfe5
			
		
	
	
		46bed4dfe5
		
	
	
	
	
		
			
			Ignore the temperature readings when its channel is disabled, ignore AMDSI readings. Signed-off-by: Gong Jun <jgong@winbond.com> Signed-off-by: Rudolf Marek <r.marek@assembler.cz> Signed-off-by: Jean Delvare <khali@linux-fr.org>
		
			
				
	
	
		
			107 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Kernel driver w83793
 | |
| ====================
 | |
| 
 | |
| Supported chips:
 | |
|   * Winbond W83793G/W83793R
 | |
|     Prefix: 'w83793'
 | |
|     Addresses scanned: I2C 0x2c - 0x2f
 | |
|     Datasheet: Still not published
 | |
| 
 | |
| Authors:
 | |
|     Yuan Mu (Winbond Electronics)
 | |
|     Rudolf Marek <r.marek@assembler.cz>
 | |
| 
 | |
| 
 | |
| Module parameters
 | |
| -----------------
 | |
| 
 | |
| * reset int
 | |
|   (default 0)
 | |
|   This parameter is not recommended, it will lose motherboard specific
 | |
|   settings. Use 'reset=1' to reset the chip when loading this module.
 | |
| 
 | |
| * force_subclients=bus,caddr,saddr1,saddr2
 | |
|   This is used to force the i2c addresses for subclients of
 | |
|   a certain chip. Typical usage is `force_subclients=0,0x2f,0x4a,0x4b'
 | |
|   to force the subclients of chip 0x2f on bus 0 to i2c addresses
 | |
|   0x4a and 0x4b.
 | |
| 
 | |
| 
 | |
| Description
 | |
| -----------
 | |
| 
 | |
| This driver implements support for Winbond W83793G/W83793R chips.
 | |
| 
 | |
| * Exported features
 | |
|   This driver exports 10 voltage sensors, up to 12 fan tachometer inputs,
 | |
|   6 remote temperatures, up to 8 sets of PWM fan controls, SmartFan
 | |
|   (automatic fan speed control) on all temperature/PWM combinations, 2
 | |
|   sets of 6-pin CPU VID input.
 | |
| 
 | |
| * Sensor resolutions
 | |
|   If your motherboard maker used the reference design, the resolution of
 | |
|   voltage0-2 is 2mV, resolution of voltage3/4/5 is 16mV, 8mV for voltage6,
 | |
|   24mV for voltage7/8. Temp1-4 have a 0.25 degree Celsius resolution,
 | |
|   temp5-6 have a 1 degree Celsiis resolution.
 | |
| 
 | |
| * Temperature sensor types
 | |
|   Temp1-4 have 2 possible types. It can be read from (and written to)
 | |
|   temp[1-4]_type.
 | |
|   - If the value is 3, it starts monitoring using a remote termal diode
 | |
|     (default).
 | |
|   - If the value is 6, it starts monitoring using the temperature sensor
 | |
|     in Intel CPU and get result by PECI.
 | |
|   Temp5-6 can be connected to external thermistors (value of
 | |
|   temp[5-6]_type is 4).
 | |
| 
 | |
| * Alarm mechanism
 | |
|   For voltage sensors, an alarm triggers if the measured value is below
 | |
|   the low voltage limit or over the high voltage limit.
 | |
|   For temperature sensors, an alarm triggers if the measured value goes
 | |
|   above the high temperature limit, and wears off only after the measured
 | |
|   value drops below the hysteresis value.
 | |
|   For fan sensors, an alarm triggers if the measured value is below the
 | |
|   low speed limit.
 | |
| 
 | |
| * SmartFan/PWM control
 | |
|   If you want to set a pwm fan to manual mode, you just need to make sure it
 | |
|   is not controlled by any temp channel, for example, you want to set fan1
 | |
|   to manual mode, you need to check the value of temp[1-6]_fan_map, make
 | |
|   sure bit 0 is cleared in the 6 values. And then set the pwm1 value to
 | |
|   control the fan.
 | |
| 
 | |
|   Each temperature channel can control all the 8 PWM outputs (by setting the
 | |
|   corresponding bit in tempX_fan_map), you can set the temperature channel
 | |
|   mode using temp[1-6]_pwm_enable, 2 is Thermal Cruise mode and 3
 | |
|   is the SmartFanII mode. Temperature channels will try to speed up or
 | |
|   slow down all controlled fans, this means one fan can receive different
 | |
|   PWM value requests from different temperature channels, but the chip
 | |
|   will always pick the safest (max) PWM value for each fan.
 | |
| 
 | |
|   In Thermal Cruise mode, the chip attempts to keep the temperature at a
 | |
|   predefined value, within a tolerance margin. So if tempX_input >
 | |
|   thermal_cruiseX + toleranceX, the chip will increase the PWM value,
 | |
|   if tempX_input < thermal_cruiseX - toleranceX, the chip will decrease
 | |
|   the PWM value. If the temperature is within the tolerance range, the PWM
 | |
|   value is left unchanged.
 | |
| 
 | |
|   SmartFanII works differently, you have to define up to 7 PWM, temperature
 | |
|   trip points, defining a PWM/temperature curve which the chip will follow.
 | |
|   While not fundamentally different from the Thermal Cruise mode, the
 | |
|   implementation is quite different, giving you a finer-grained control.
 | |
| 
 | |
| * Chassis
 | |
|   If the case open alarm triggers, it will stay in this state unless cleared
 | |
|   by any write to the sysfs file "chassis".
 | |
| 
 | |
| * VID and VRM
 | |
|   The VRM version is detected automatically, don't modify the it unless you
 | |
|   *do* know the cpu VRM version and it's not properly detected.
 | |
| 
 | |
| 
 | |
| Notes
 | |
| -----
 | |
| 
 | |
|   Only Fan1-5 and PWM1-3 are guaranteed to always exist, other fan inputs and
 | |
|   PWM outputs may or may not exist depending on the chip pin configuration.
 |