Kernel driver w83793

Supported chips:

  • Winbond W83793G/W83793R

    Prefix: ‘w83793’

    Addresses scanned: I2C 0x2c - 0x2f

    Datasheet: Still not published

Authors:

Module parameters

  • reset int

    (default 0)

    This parameter is not recommended, it will lose motherboard specificsettings. 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 ofa certain chip. Typical usage isforce_subclients=0,0x2f,0x4a,0x4bto force the subclients of chip 0x2f on bus 0 to i2c addresses0x4a 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, 2sets of 6-pin CPU VID input.

  • Sensor resolutions

    If your motherboard maker used the reference design, the resolution ofvoltage0-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 sensorin Intel CPU and get result by PECI.

    Temp5-6 can be connected to external thermistors (value oftemp[5-6]_type is 4).

  • Alarm mechanism

    For voltage sensors, an alarm triggers if the measured value is belowthe low voltage limit or over the high voltage limit.For temperature sensors, an alarm triggers if the measured value goesabove the high temperature limit, and wears off only after the measuredvalue drops below the hysteresis value.For fan sensors, an alarm triggers if the measured value is below thelow speed limit.

  • SmartFan/PWM control

    If you want to set a pwm fan to manual mode, you just need to make sure itis not controlled by any temp channel, for example, you want to set fan1to manual mode, you need to check the value of temp[1-6]_fan_map, makesure bit 0 is cleared in the 6 values. And then set the pwm1 value tocontrol the fan.

    Each temperature channel can control all the 8 PWM outputs (by setting thecorresponding bit in tempX_fan_map), you can set the temperature channelmode using temp[1-6]_pwm_enable, 2 is Thermal Cruise mode and 3is the SmartFanII mode. Temperature channels will try to speed up orslow down all controlled fans, this means one fan can receive differentPWM value requests from different temperature channels, but the chipwill always pick the safest (max) PWM value for each fan.

    In Thermal Cruise mode, the chip attempts to keep the temperature at apredefined 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 decreasethe PWM value. If the temperature is within the tolerance range, the PWMvalue is left unchanged.

    SmartFanII works differently, you have to define up to 7 PWM, temperaturetrip points, defining a PWM/temperature curve which the chip will follow.While not fundamentally different from the Thermal Cruise mode, theimplementation is quite different, giving you a finer-grained control.

  • Chassis

    If the case open alarm triggers, it will stay in this state unless clearedby writing 0 to the sysfs file “intrusion0_alarm”.

  • VID and VRM

    The VRM version is detected automatically, don’t modify the it unless youdo 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 andPWM outputs may or may not exist depending on the chip pin configuration.