1*4882a593SmuzhiyunKernel driver w83793 2*4882a593Smuzhiyun==================== 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunSupported chips: 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun * Winbond W83793G/W83793R 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun Prefix: 'w83793' 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun Addresses scanned: I2C 0x2c - 0x2f 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun Datasheet: Still not published 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunAuthors: 15*4882a593Smuzhiyun - Yuan Mu (Winbond Electronics) 16*4882a593Smuzhiyun - Rudolf Marek <r.marek@assembler.cz> 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun 19*4882a593SmuzhiyunModule parameters 20*4882a593Smuzhiyun----------------- 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun* reset int 23*4882a593Smuzhiyun (default 0) 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun This parameter is not recommended, it will lose motherboard specific 26*4882a593Smuzhiyun settings. Use 'reset=1' to reset the chip when loading this module. 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun* force_subclients=bus,caddr,saddr1,saddr2 29*4882a593Smuzhiyun This is used to force the i2c addresses for subclients of 30*4882a593Smuzhiyun a certain chip. Typical usage is `force_subclients=0,0x2f,0x4a,0x4b` 31*4882a593Smuzhiyun to force the subclients of chip 0x2f on bus 0 to i2c addresses 32*4882a593Smuzhiyun 0x4a and 0x4b. 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun 35*4882a593SmuzhiyunDescription 36*4882a593Smuzhiyun----------- 37*4882a593Smuzhiyun 38*4882a593SmuzhiyunThis driver implements support for Winbond W83793G/W83793R chips. 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun* Exported features 41*4882a593Smuzhiyun This driver exports 10 voltage sensors, up to 12 fan tachometer inputs, 42*4882a593Smuzhiyun 6 remote temperatures, up to 8 sets of PWM fan controls, SmartFan 43*4882a593Smuzhiyun (automatic fan speed control) on all temperature/PWM combinations, 2 44*4882a593Smuzhiyun sets of 6-pin CPU VID input. 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun* Sensor resolutions 47*4882a593Smuzhiyun If your motherboard maker used the reference design, the resolution of 48*4882a593Smuzhiyun voltage0-2 is 2mV, resolution of voltage3/4/5 is 16mV, 8mV for voltage6, 49*4882a593Smuzhiyun 24mV for voltage7/8. Temp1-4 have a 0.25 degree Celsius resolution, 50*4882a593Smuzhiyun temp5-6 have a 1 degree Celsiis resolution. 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun* Temperature sensor types 53*4882a593Smuzhiyun Temp1-4 have 2 possible types. It can be read from (and written to) 54*4882a593Smuzhiyun temp[1-4]_type. 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun - If the value is 3, it starts monitoring using a remote termal diode 57*4882a593Smuzhiyun (default). 58*4882a593Smuzhiyun - If the value is 6, it starts monitoring using the temperature sensor 59*4882a593Smuzhiyun in Intel CPU and get result by PECI. 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun Temp5-6 can be connected to external thermistors (value of 62*4882a593Smuzhiyun temp[5-6]_type is 4). 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun* Alarm mechanism 65*4882a593Smuzhiyun For voltage sensors, an alarm triggers if the measured value is below 66*4882a593Smuzhiyun the low voltage limit or over the high voltage limit. 67*4882a593Smuzhiyun For temperature sensors, an alarm triggers if the measured value goes 68*4882a593Smuzhiyun above the high temperature limit, and wears off only after the measured 69*4882a593Smuzhiyun value drops below the hysteresis value. 70*4882a593Smuzhiyun For fan sensors, an alarm triggers if the measured value is below the 71*4882a593Smuzhiyun low speed limit. 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun* SmartFan/PWM control 74*4882a593Smuzhiyun If you want to set a pwm fan to manual mode, you just need to make sure it 75*4882a593Smuzhiyun is not controlled by any temp channel, for example, you want to set fan1 76*4882a593Smuzhiyun to manual mode, you need to check the value of temp[1-6]_fan_map, make 77*4882a593Smuzhiyun sure bit 0 is cleared in the 6 values. And then set the pwm1 value to 78*4882a593Smuzhiyun control the fan. 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun Each temperature channel can control all the 8 PWM outputs (by setting the 81*4882a593Smuzhiyun corresponding bit in tempX_fan_map), you can set the temperature channel 82*4882a593Smuzhiyun mode using temp[1-6]_pwm_enable, 2 is Thermal Cruise mode and 3 83*4882a593Smuzhiyun is the SmartFanII mode. Temperature channels will try to speed up or 84*4882a593Smuzhiyun slow down all controlled fans, this means one fan can receive different 85*4882a593Smuzhiyun PWM value requests from different temperature channels, but the chip 86*4882a593Smuzhiyun will always pick the safest (max) PWM value for each fan. 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun In Thermal Cruise mode, the chip attempts to keep the temperature at a 89*4882a593Smuzhiyun predefined value, within a tolerance margin. So if tempX_input > 90*4882a593Smuzhiyun thermal_cruiseX + toleranceX, the chip will increase the PWM value, 91*4882a593Smuzhiyun if tempX_input < thermal_cruiseX - toleranceX, the chip will decrease 92*4882a593Smuzhiyun the PWM value. If the temperature is within the tolerance range, the PWM 93*4882a593Smuzhiyun value is left unchanged. 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun SmartFanII works differently, you have to define up to 7 PWM, temperature 96*4882a593Smuzhiyun trip points, defining a PWM/temperature curve which the chip will follow. 97*4882a593Smuzhiyun While not fundamentally different from the Thermal Cruise mode, the 98*4882a593Smuzhiyun implementation is quite different, giving you a finer-grained control. 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun* Chassis 101*4882a593Smuzhiyun If the case open alarm triggers, it will stay in this state unless cleared 102*4882a593Smuzhiyun by writing 0 to the sysfs file "intrusion0_alarm". 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun* VID and VRM 105*4882a593Smuzhiyun The VRM version is detected automatically, don't modify the it unless you 106*4882a593Smuzhiyun *do* know the cpu VRM version and it's not properly detected. 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun 109*4882a593SmuzhiyunNotes 110*4882a593Smuzhiyun----- 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun Only Fan1-5 and PWM1-3 are guaranteed to always exist, other fan inputs and 113*4882a593Smuzhiyun PWM outputs may or may not exist depending on the chip pin configuration. 114