asc7621.rst 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. =====================
  2. Kernel driver asc7621
  3. =====================
  4. Supported chips:
  5. Andigilog aSC7621 and aSC7621a
  6. Prefix: 'asc7621'
  7. Addresses scanned: I2C 0x2c, 0x2d, 0x2e
  8. Datasheet: http://www.fairview5.com/linux/asc7621/asc7621.pdf
  9. Author:
  10. George Joseph
  11. Description provided by Dave Pivin @ Andigilog:
  12. Andigilog has both the PECI and pre-PECI versions of the Heceta-6, as
  13. Intel calls them. Heceta-6e has high frequency PWM and Heceta-6p has
  14. added PECI and a 4th thermal zone. The Andigilog aSC7611 is the
  15. Heceta-6e part and aSC7621 is the Heceta-6p part. They are both in
  16. volume production, shipping to Intel and their subs.
  17. We have enhanced both parts relative to the governing Intel
  18. specification. First enhancement is temperature reading resolution. We
  19. have used registers below 20h for vendor-specific functions in addition
  20. to those in the Intel-specified vendor range.
  21. Our conversion process produces a result that is reported as two bytes.
  22. The fan speed control uses this finer value to produce a "step-less" fan
  23. PWM output. These two bytes are "read-locked" to guarantee that once a
  24. high or low byte is read, the other byte is locked-in until after the
  25. next read of any register. So to get an atomic reading, read high or low
  26. byte, then the very next read should be the opposite byte. Our data
  27. sheet says 10-bits of resolution, although you may find the lower bits
  28. are active, they are not necessarily reliable or useful externally. We
  29. chose not to mask them.
  30. We employ significant filtering that is user tunable as described in the
  31. data sheet. Our temperature reports and fan PWM outputs are very smooth
  32. when compared to the competition, in addition to the higher resolution
  33. temperature reports. The smoother PWM output does not require user
  34. intervention.
  35. We offer GPIO features on the former VID pins. These are open-drain
  36. outputs or inputs and may be used as general purpose I/O or as alarm
  37. outputs that are based on temperature limits. These are in 19h and 1Ah.
  38. We offer flexible mapping of temperature readings to thermal zones. Any
  39. temperature may be mapped to any zone, which has a default assignment
  40. that follows Intel's specs.
  41. Since there is a fan to zone assignment that allows for the "hotter" of
  42. a set of zones to control the PWM of an individual fan, but there is no
  43. indication to the user, we have added an indicator that shows which zone
  44. is currently controlling the PWM for a given fan. This is in register
  45. 00h.
  46. Both remote diode temperature readings may be given an offset value such
  47. that the reported reading as well as the temperature used to determine
  48. PWM may be offset for system calibration purposes.
  49. PECI Extended configuration allows for having more than two domains per
  50. PECI address and also provides an enabling function for each PECI
  51. address. One could use our flexible zone assignment to have a zone
  52. assigned to up to 4 PECI addresses. This is not possible in the default
  53. Intel configuration. This would be useful in multi-CPU systems with
  54. individual fans on each that would benefit from individual fan control.
  55. This is in register 0Eh.
  56. The tachometer measurement system is flexible and able to adapt to many
  57. fan types. We can also support pulse-stretched PWM so that 3-wire fans
  58. may be used. These characteristics are in registers 04h to 07h.
  59. Finally, we have added a tach disable function that turns off the tach
  60. measurement system for individual tachs in order to save power. That is
  61. in register 75h.
  62. --------------------------------------------------------------------------
  63. aSC7621 Product Description
  64. ===========================
  65. The aSC7621 has a two wire digital interface compatible with SMBus 2.0.
  66. Using a 10-bit ADC, the aSC7621 measures the temperature of two remote diode
  67. connected transistors as well as its own die. Support for Platform
  68. Environmental Control Interface (PECI) is included.
  69. Using temperature information from these four zones, an automatic fan speed
  70. control algorithm is employed to minimize acoustic impact while achieving
  71. recommended CPU temperature under varying operational loads.
  72. To set fan speed, the aSC7621 has three independent pulse width modulation
  73. (PWM) outputs that are controlled by one, or a combination of three,
  74. temperature zones. Both high- and low-frequency PWM ranges are supported.
  75. The aSC7621 also includes a digital filter that can be invoked to smooth
  76. temperature readings for better control of fan speed and minimum acoustic
  77. impact.
  78. The aSC7621 has tachometer inputs to measure fan speed on up to four fans.
  79. Limit and status registers for all measured values are included to alert
  80. the system host that any measurements are outside of programmed limits
  81. via status registers.
  82. System voltages of VCCP, 2.5V, 3.3V, 5.0V, and 12V motherboard power are
  83. monitored efficiently with internal scaling resistors.
  84. Features
  85. --------
  86. - Supports PECI interface and monitors internal and remote thermal diodes
  87. - 2-wire, SMBus 2.0 compliant, serial interface
  88. - 10-bit ADC
  89. - Monitors VCCP, 2.5V, 3.3V, 5.0V, and 12V motherboard/processor supplies
  90. - Programmable autonomous fan control based on temperature readings
  91. - Noise filtering of temperature reading for fan speed control
  92. - 0.25C digital temperature sensor resolution
  93. - 3 PWM fan speed control outputs for 2-, 3- or 4-wire fans and up to 4 fan
  94. tachometer inputs
  95. - Enhanced measured temperature to Temperature Zone assignment.
  96. - Provides high and low PWM frequency ranges
  97. - 3 GPIO pins for custom use
  98. - 24-Lead QSOP package
  99. Configuration Notes
  100. ===================
  101. Except where noted below, the sysfs entries created by this driver follow
  102. the standards defined in "sysfs-interface".
  103. temp1_source
  104. = ===============================================
  105. 0 (default) peci_legacy = 0, Remote 1 Temperature
  106. peci_legacy = 1, PECI Processor Temperature 0
  107. 1 Remote 1 Temperature
  108. 2 Remote 2 Temperature
  109. 3 Internal Temperature
  110. 4 PECI Processor Temperature 0
  111. 5 PECI Processor Temperature 1
  112. 6 PECI Processor Temperature 2
  113. 7 PECI Processor Temperature 3
  114. = ===============================================
  115. temp2_source
  116. = ===============================================
  117. 0 (default) Internal Temperature
  118. 1 Remote 1 Temperature
  119. 2 Remote 2 Temperature
  120. 3 Internal Temperature
  121. 4 PECI Processor Temperature 0
  122. 5 PECI Processor Temperature 1
  123. 6 PECI Processor Temperature 2
  124. 7 PECI Processor Temperature 3
  125. = ===============================================
  126. temp3_source
  127. = ===============================================
  128. 0 (default) Remote 2 Temperature
  129. 1 Remote 1 Temperature
  130. 2 Remote 2 Temperature
  131. 3 Internal Temperature
  132. 4 PECI Processor Temperature 0
  133. 5 PECI Processor Temperature 1
  134. 6 PECI Processor Temperature 2
  135. 7 PECI Processor Temperature 3
  136. = ===============================================
  137. temp4_source
  138. = ===============================================
  139. 0 (default) peci_legacy = 0, PECI Processor Temperature 0
  140. peci_legacy = 1, Remote 1 Temperature
  141. 1 Remote 1 Temperature
  142. 2 Remote 2 Temperature
  143. 3 Internal Temperature
  144. 4 PECI Processor Temperature 0
  145. 5 PECI Processor Temperature 1
  146. 6 PECI Processor Temperature 2
  147. 7 PECI Processor Temperature 3
  148. = ===============================================
  149. temp[1-4]_smoothing_enable / temp[1-4]_smoothing_time
  150. Smooths spikes in temp readings caused by noise.
  151. Valid values in milliseconds are:
  152. * 35000
  153. * 17600
  154. * 11800
  155. * 7000
  156. * 4400
  157. * 3000
  158. * 1600
  159. * 800
  160. temp[1-4]_crit
  161. When the corresponding zone temperature reaches this value,
  162. ALL pwm outputs will got to 100%.
  163. temp[5-8]_input / temp[5-8]_enable
  164. The aSC7621 can also read temperatures provided by the processor
  165. via the PECI bus. Usually these are "core" temps and are relative
  166. to the point where the automatic thermal control circuit starts
  167. throttling. This means that these are usually negative numbers.
  168. pwm[1-3]_enable
  169. =============== ========================================================
  170. 0 Fan off.
  171. 1 Fan on manual control.
  172. 2 Fan on automatic control and will run at the minimum pwm
  173. if the temperature for the zone is below the minimum.
  174. 3 Fan on automatic control but will be off if the
  175. temperature for the zone is below the minimum.
  176. 4-254 Ignored.
  177. 255 Fan on full.
  178. =============== ========================================================
  179. pwm[1-3]_auto_channels
  180. Bitmap as described in sysctl-interface with the following
  181. exceptions...
  182. Only the following combination of zones (and their corresponding masks)
  183. are valid:
  184. * 1
  185. * 2
  186. * 3
  187. * 2,3
  188. * 1,2,3
  189. * 4
  190. * 1,2,3,4
  191. * Special values:
  192. == ======================
  193. 0 Disabled.
  194. 16 Fan on manual control.
  195. 31 Fan on full.
  196. == ======================
  197. pwm[1-3]_invert
  198. When set, inverts the meaning of pwm[1-3].
  199. i.e. when pwm = 0, the fan will be on full and
  200. when pwm = 255 the fan will be off.
  201. pwm[1-3]_freq
  202. PWM frequency in Hz
  203. Valid values in Hz are:
  204. * 10
  205. * 15
  206. * 23
  207. * 30 (default)
  208. * 38
  209. * 47
  210. * 62
  211. * 94
  212. * 23000
  213. * 24000
  214. * 25000
  215. * 26000
  216. * 27000
  217. * 28000
  218. * 29000
  219. * 30000
  220. Setting any other value will be ignored.
  221. peci_enable
  222. Enables or disables PECI
  223. peci_avg
  224. Input filter average time.
  225. * 0 0 Sec. (no Smoothing) (default)
  226. * 1 0.25 Sec.
  227. * 2 0.5 Sec.
  228. * 3 1.0 Sec.
  229. * 4 2.0 Sec.
  230. * 5 4.0 Sec.
  231. * 6 8.0 Sec.
  232. * 7 0.0 Sec.
  233. peci_legacy
  234. = ============================================
  235. 0 Standard Mode (default)
  236. Remote Diode 1 reading is associated with
  237. Temperature Zone 1, PECI is associated with
  238. Zone 4
  239. 1 Legacy Mode
  240. PECI is associated with Temperature Zone 1,
  241. Remote Diode 1 is associated with Zone 4
  242. = ============================================
  243. peci_diode
  244. Diode filter
  245. = ====================
  246. 0 0.25 Sec.
  247. 1 1.1 Sec.
  248. 2 2.4 Sec. (default)
  249. 3 3.4 Sec.
  250. 4 5.0 Sec.
  251. 5 6.8 Sec.
  252. 6 10.2 Sec.
  253. 7 16.4 Sec.
  254. = ====================
  255. peci_4domain
  256. Four domain enable
  257. = ===============================================
  258. 0 1 or 2 Domains for enabled processors (default)
  259. 1 3 or 4 Domains for enabled processors
  260. = ===============================================
  261. peci_domain
  262. Domain
  263. = ==================================================
  264. 0 Processor contains a single domain (0) (default)
  265. 1 Processor contains two domains (0,1)
  266. = ==================================================