€•ÿkŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ /translations/zh_CN/hwmon/w83793”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ /translations/zh_TW/hwmon/w83793”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ /translations/it_IT/hwmon/w83793”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ /translations/ja_JP/hwmon/w83793”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ /translations/ko_KR/hwmon/w83793”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ /translations/pt_BR/hwmon/w83793”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ /translations/sp_SP/hwmon/w83793”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒKernel driver w83793”h]”hŒKernel driver w83793”…””}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³Œ:/var/lib/git/docbuild/linux/Documentation/hwmon/w83793.rst”h´KubhŒ paragraph”“”)”}”(hŒSupported chips:”h]”hŒSupported chips:”…””}”(hhÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhŒ block_quote”“”)”}”(hŒv* Winbond W83793G/W83793R Prefix: 'w83793' Addresses scanned: I2C 0x2c - 0x2f Datasheet: Still not published ”h]”hŒ bullet_list”“”)”}”(hhh]”hŒ list_item”“”)”}”(hŒnWinbond W83793G/W83793R Prefix: 'w83793' Addresses scanned: I2C 0x2c - 0x2f Datasheet: Still not published ”h]”(hÌ)”}”(hŒWinbond W83793G/W83793R”h]”hŒWinbond W83793G/W83793R”…””}”(hhìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KhhèubhÌ)”}”(hŒPrefix: 'w83793'”h]”hŒPrefix: ‘w83793’”…””}”(hhúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KhhèubhÌ)”}”(hŒ"Addresses scanned: I2C 0x2c - 0x2f”h]”hŒ"Addresses scanned: I2C 0x2c - 0x2f”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hhèubhÌ)”}”(hŒDatasheet: Still not published”h]”hŒDatasheet: Still not published”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hhèubeh}”(h]”h ]”h"]”h$]”h&]”uh1hæhhãubah}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1háh³hÊh´KhhÝubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛh³hÊh´Khh·h²hubhŒdefinition_list”“”)”}”(hhh]”hŒdefinition_list_item”“”)”}”(hŒPAuthors: - Yuan Mu (Winbond Electronics) - Rudolf Marek ”h]”(hŒterm”“”)”}”(hŒAuthors:”h]”hŒAuthors:”…””}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jCh³hÊh´Khj?ubhŒ definition”“”)”}”(hhh]”hâ)”}”(hhh]”(hç)”}”(hŒYuan Mu (Winbond Electronics)”h]”hÌ)”}”(hj]h]”hŒYuan Mu (Winbond Electronics)”…””}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjXubhç)”}”(hŒ%Rudolf Marek ”h]”hÌ)”}”(hŒ#Rudolf Marek ”h]”(hŒRudolf Marek <”…””}”(hjvh²hh³Nh´NubhŒ reference”“”)”}”(hŒr.marek@assembler.cz”h]”hŒr.marek@assembler.cz”…””}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:r.marek@assembler.cz”uh1j~hjvubhŒ>”…””}”(hjvh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjrubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjXubeh}”(h]”h ]”h"]”h$]”h&]”j0Œ-”uh1háh³hÊh´KhjUubah}”(h]”h ]”h"]”h$]”h&]”uh1jShj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j=h³hÊh´Khj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hh·h²hh³Nh´Nubh¶)”}”(hhh]”(h»)”}”(hŒModule parameters”h]”hŒModule parameters”…””}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj¹h²hh³hÊh´Kubhâ)”}”(hhh]”(hç)”}”(hŒ¦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. ”h]”j9)”}”(hhh]”j>)”}”(hŒ 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. ”h]”(jD)”}”(hŒ reset int”h]”hŒ reset int”…””}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jCh³hÊh´KhjÔubjT)”}”(hhh]”(hÌ)”}”(hŒ (default 0)”h]”hŒ (default 0)”…””}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KhjæubhÌ)”}”(hŒˆThis parameter is not recommended, it will lose motherboard specific settings. Use 'reset=1' to reset the chip when loading this module.”h]”hŒŒThis parameter is not recommended, it will lose motherboard specific settings. Use ‘reset=1’ to reset the chip when loading this module.”…””}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjæubeh}”(h]”h ]”h"]”h$]”h&]”uh1jShjÔubeh}”(h]”h ]”h"]”h$]”h&]”uh1j=h³hÊh´KhjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjÊh²hh³Nh´Nubhç)”}”(hŒÿ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. ”h]”j9)”}”(hhh]”j>)”}”(hŒ÷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. ”h]”(jD)”}”(hŒ(force_subclients=bus,caddr,saddr1,saddr2”h]”hŒ(force_subclients=bus,caddr,saddr1,saddr2”…””}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jCh³hÊh´K!hj$ubjT)”}”(hhh]”hÌ)”}”(hŒÌ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.”h]”(hŒ[This is used to force the i2c addresses for subclients of a certain chip. Typical usage is ”…””}”(hj9h²hh³Nh´NubhŒtitle_reference”“”)”}”(hŒ#`force_subclients=0,0x2f,0x4a,0x4b`”h]”hŒ!force_subclients=0,0x2f,0x4a,0x4b”…””}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jAhj9ubhŒN to force the subclients of chip 0x2f on bus 0 to i2c addresses 0x4a and 0x4b.”…””}”(hj9h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jShj$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j=h³hÊh´K!hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjÊh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j0j1uh1háh³hÊh´Khj¹h²hubeh}”(h]”Œmodule-parameters”ah ]”h"]”Œmodule parameters”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)”}”(hhh]”(h»)”}”(hŒ Description”h]”hŒ Description”…””}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjh²hh³hÊh´K$ubhÌ)”}”(hŒAThis driver implements support for Winbond W83793G/W83793R chips.”h]”hŒAThis driver implements support for Winbond W83793G/W83793R chips.”…””}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K&hjh²hubhâ)”}”(hhh]”(hç)”}”(hXExported 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. ”h]”j9)”}”(hhh]”j>)”}”(hŒþ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. ”h]”(jD)”}”(hŒExported features”h]”hŒExported features”…””}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jCh³hÊh´K,hjªubjT)”}”(hhh]”hÌ)”}”(hŒë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.”h]”hŒë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.”…””}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K)hj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jShjªubeh}”(h]”h ]”h"]”h$]”h&]”uh1j=h³hÊh´K,hj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj h²hh³Nh´Nubhç)”}”(hXSensor 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. ”h]”j9)”}”(hhh]”j>)”}”(hXSensor 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. ”h]”(jD)”}”(hŒSensor resolutions”h]”hŒSensor resolutions”…””}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jCh³hÊh´K2hjìubjT)”}”(hhh]”hÌ)”}”(hŒÿ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.”h]”hŒÿ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.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K/hjþubah}”(h]”h ]”h"]”h$]”h&]”uh1jShjìubeh}”(h]”h ]”h"]”h$]”h&]”uh1j=h³hÊh´K2hjéubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hjåubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj h²hh³Nh´Nubhç)”}”(hX‘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). ”h]”j9)”}”(hhh]”j>)”}”(hXTemperature 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). ”h]”(jD)”}”(hŒTemperature sensor types”h]”hŒTemperature sensor types”…””}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jCh³hÊh´K>hj.ubjT)”}”(hhh]”(hÌ)”}”(hŒSTemp1-4 have 2 possible types. It can be read from (and written to) temp[1-4]_type.”h]”hŒSTemp1-4 have 2 possible types. It can be read from (and written to) temp[1-4]_type.”…””}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K5hj@ubhâ)”}”(hhh]”(hç)”}”(hŒNIf the value is 3, it starts monitoring using a remote termal diode (default).”h]”hÌ)”}”(hŒNIf the value is 3, it starts monitoring using a remote termal diode (default).”h]”hŒNIf the value is 3, it starts monitoring using a remote termal diode (default).”…””}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K8hjTubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjQubhç)”}”(hŒjIf the value is 6, it starts monitoring using the temperature sensor in Intel CPU and get result by PECI. ”h]”hÌ)”}”(hŒiIf the value is 6, it starts monitoring using the temperature sensor in Intel CPU and get result by PECI.”h]”hŒiIf the value is 6, it starts monitoring using the temperature sensor in Intel CPU and get result by PECI.”…””}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K:hjlubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhjQubeh}”(h]”h ]”h"]”h$]”h&]”j0j¦uh1háh³hÊh´K8hj@ubhÌ)”}”(hŒPTemp5-6 can be connected to external thermistors (value of temp[5-6]_type is 4).”h]”hŒPTemp5-6 can be connected to external thermistors (value of temp[5-6]_type is 4).”…””}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K=hj@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jShj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j=h³hÊh´K>hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj h²hh³Nh´Nubhç)”}”(hX§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. ”h]”j9)”}”(hhh]”j>)”}”(hX™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. ”h]”(jD)”}”(hŒAlarm mechanism”h]”hŒAlarm mechanism”…””}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jCh³hÊh´KGhj·ubjT)”}”(hhh]”hÌ)”}”(hXˆ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.”h]”hXˆ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.”…””}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KAhjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jShj·ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j=h³hÊh´KGhj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj h²hh³Nh´Nubhç)”}”(hXé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. ”h]”j9)”}”(hhh]”j>)”}”(hX½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. ”h]”(jD)”}”(hŒSmartFan/PWM control”h]”hŒSmartFan/PWM control”…””}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jCh³hÊh´KbhjùubjT)”}”(hhh]”(hÌ)”}”(hX1If 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.”h]”hX1If 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.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KJhj ubhÌ)”}”(hXß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.”h]”hXß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.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KPhj ubhÌ)”}”(hXsIn 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.”h]”hXsIn 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.”…””}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KXhj ubhÌ)”}”(hXSmartFanII 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.”h]”hXSmartFanII 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.”…””}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K_hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jShjùubeh}”(h]”h ]”h"]”h$]”h&]”uh1j=h³hÊh´Kbhjöubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hjòubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj h²hh³Nh´Nubhç)”}”(hŒŠChassis If the case open alarm triggers, it will stay in this state unless cleared by writing 0 to the sysfs file "intrusion0_alarm". ”h]”j9)”}”(hhh]”j>)”}”(hŒ†Chassis If the case open alarm triggers, it will stay in this state unless cleared by writing 0 to the sysfs file "intrusion0_alarm". ”h]”(jD)”}”(hŒChassis”h]”hŒChassis”…””}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jCh³hÊh´KfhjeubjT)”}”(hhh]”hÌ)”}”(hŒ}If the case open alarm triggers, it will stay in this state unless cleared by writing 0 to the sysfs file "intrusion0_alarm".”h]”hŒIf the case open alarm triggers, it will stay in this state unless cleared by writing 0 to the sysfs file “intrusion0_alarmâ€.”…””}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kehjwubah}”(h]”h ]”h"]”h$]”h&]”uh1jShjeubeh}”(h]”h ]”h"]”h$]”h&]”uh1j=h³hÊh´Kfhjbubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj h²hh³Nh´Nubhç)”}”(hŒ™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. ”h]”j9)”}”(hhh]”j>)”}”(hŒ•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. ”h]”(jD)”}”(hŒ VID and VRM”h]”hŒ VID and VRM”…””}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jCh³hÊh´Kkhj§ubjT)”}”(hhh]”hÌ)”}”(hŒ‡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.”h]”(hŒLThe VRM version is detected automatically, don’t modify the it unless you ”…””}”(hj¼h²hh³Nh´NubhŒemphasis”“”)”}”(hŒ*do*”h]”hŒdo”…””}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÄhj¼ubhŒ; know the cpu VRM version and it’s not properly detected.”…””}”(hj¼h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kihj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jShj§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j=h³hÊh´Kkhj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1j8hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hæhj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j0j1uh1háh³hÊh´K(hjh²hubeh}”(h]”Œ description”ah ]”h"]”Œ description”ah$]”h&]”uh1hµhh·h²hh³hÊh´K$ubh¶)”}”(hhh]”(h»)”}”(hŒNotes”h]”hŒNotes”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjh²hh³hÊh´KnubhÜ)”}”(hŒ•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.”h]”hÌ)”}”(hŒ•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.”h]”hŒ•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.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kphjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛh³hÊh´Kphjh²hubeh}”(h]”Œnotes”ah ]”h"]”Œnotes”ah$]”h&]”uh1hµhh·h²hh³hÊh´Knubeh}”(h]”Œkernel-driver-w83793”ah ]”h"]”Œkernel driver w83793”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j`Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j:j7j~j{jjþj2j/uŒ nametypes”}”(j:‰j~‰j‰j2‰uh}”(j7h·j{j¹jþjj/juŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.