pc87360.rst 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. Kernel driver pc87360
  2. =====================
  3. Supported chips:
  4. * National Semiconductor PC87360, PC87363, PC87364, PC87365 and PC87366
  5. Prefixes: 'pc87360', 'pc87363', 'pc87364', 'pc87365', 'pc87366'
  6. Addresses scanned: none, address read from Super I/O config space
  7. Datasheets: No longer available
  8. Authors: Jean Delvare <jdelvare@suse.de>
  9. Thanks to Sandeep Mehta, Tonko de Rooy and Daniel Ceregatti for testing.
  10. Thanks to Rudolf Marek for helping me investigate conversion issues.
  11. Module Parameters
  12. -----------------
  13. * init int
  14. Chip initialization level:
  15. - 0: None
  16. - **1**: Forcibly enable internal voltage and temperature channels,
  17. except in9
  18. - 2: Forcibly enable all voltage and temperature channels, except in9
  19. - 3: Forcibly enable all voltage and temperature channels, including in9
  20. Note that this parameter has no effect for the PC87360, PC87363 and PC87364
  21. chips.
  22. Also note that for the PC87366, initialization levels 2 and 3 don't enable
  23. all temperature channels, because some of them share pins with each other,
  24. so they can't be used at the same time.
  25. Description
  26. -----------
  27. The National Semiconductor PC87360 Super I/O chip contains monitoring and
  28. PWM control circuitry for two fans. The PC87363 chip is similar, and the
  29. PC87364 chip has monitoring and PWM control for a third fan.
  30. The National Semiconductor PC87365 and PC87366 Super I/O chips are complete
  31. hardware monitoring chipsets, not only controlling and monitoring three fans,
  32. but also monitoring eleven voltage inputs and two (PC87365) or up to four
  33. (PC87366) temperatures.
  34. =========== ======= ======= ======= ======= =====
  35. Chip #vin #fan #pwm #temp devid
  36. =========== ======= ======= ======= ======= =====
  37. PC87360 - 2 2 - 0xE1
  38. PC87363 - 2 2 - 0xE8
  39. PC87364 - 3 3 - 0xE4
  40. PC87365 11 3 3 2 0xE5
  41. PC87366 11 3 3 3-4 0xE9
  42. =========== ======= ======= ======= ======= =====
  43. The driver assumes that no more than one chip is present, and one of the
  44. standard Super I/O addresses is used (0x2E/0x2F or 0x4E/0x4F)
  45. Fan Monitoring
  46. --------------
  47. Fan rotation speeds are reported in RPM (revolutions per minute). An alarm
  48. is triggered if the rotation speed has dropped below a programmable limit.
  49. A different alarm is triggered if the fan speed is too low to be measured.
  50. Fan readings are affected by a programmable clock divider, giving the
  51. readings more range or accuracy. Usually, users have to learn how it works,
  52. but this driver implements dynamic clock divider selection, so you don't
  53. have to care no more.
  54. For reference, here are a few values about clock dividers:
  55. =========== =============== =============== ===========
  56. slowest accuracy highest
  57. measurable around 3000 accurate
  58. divider speed (RPM) RPM (RPM) speed (RPM)
  59. =========== =============== =============== ===========
  60. 1 1882 18 6928
  61. 2 941 37 4898
  62. 4 470 74 3464
  63. 8 235 150 2449
  64. =========== =============== =============== ===========
  65. For the curious, here is how the values above were computed:
  66. * slowest measurable speed: clock/(255*divider)
  67. * accuracy around 3000 RPM: 3000^2/clock
  68. * highest accurate speed: sqrt(clock*100)
  69. The clock speed for the PC87360 family is 480 kHz. I arbitrarily chose 100
  70. RPM as the lowest acceptable accuracy.
  71. As mentioned above, you don't have to care about this no more.
  72. Note that not all RPM values can be represented, even when the best clock
  73. divider is selected. This is not only true for the measured speeds, but
  74. also for the programmable low limits, so don't be surprised if you try to
  75. set, say, fan1_min to 2900 and it finally reads 2909.
  76. Fan Control
  77. -----------
  78. PWM (pulse width modulation) values range from 0 to 255, with 0 meaning
  79. that the fan is stopped, and 255 meaning that the fan goes at full speed.
  80. Be extremely careful when changing PWM values. Low PWM values, even
  81. non-zero, can stop the fan, which may cause irreversible damage to your
  82. hardware if temperature increases too much. When changing PWM values, go
  83. step by step and keep an eye on temperatures.
  84. One user reported problems with PWM. Changing PWM values would break fan
  85. speed readings. No explanation nor fix could be found.
  86. Temperature Monitoring
  87. ----------------------
  88. Temperatures are reported in degrees Celsius. Each temperature measured has
  89. associated low, high and overtemperature limits, each of which triggers an
  90. alarm when crossed.
  91. The first two temperature channels are external. The third one (PC87366
  92. only) is internal.
  93. The PC87366 has three additional temperature channels, based on
  94. thermistors (as opposed to thermal diodes for the first three temperature
  95. channels). For technical reasons, these channels are held by the VLM
  96. (voltage level monitor) logical device, not the TMS (temperature
  97. measurement) one. As a consequence, these temperatures are exported as
  98. voltages, and converted into temperatures in user-space.
  99. Note that these three additional channels share their pins with the
  100. external thermal diode channels, so you (physically) can't use them all at
  101. the same time. Although it should be possible to mix the two sensor types,
  102. the documents from National Semiconductor suggest that motherboard
  103. manufacturers should choose one type and stick to it. So you will more
  104. likely have either channels 1 to 3 (thermal diodes) or 3 to 6 (internal
  105. thermal diode, and thermistors).
  106. Voltage Monitoring
  107. ------------------
  108. Voltages are reported relatively to a reference voltage, either internal or
  109. external. Some of them (in7:Vsb, in8:Vdd and in10:AVdd) are divided by two
  110. internally, you will have to compensate in sensors.conf. Others (in0 to in6)
  111. are likely to be divided externally. The meaning of each of these inputs as
  112. well as the values of the resistors used for division is left to the
  113. motherboard manufacturers, so you will have to document yourself and edit
  114. sensors.conf accordingly. National Semiconductor has a document with
  115. recommended resistor values for some voltages, but this still leaves much
  116. room for per motherboard specificities, unfortunately. Even worse,
  117. motherboard manufacturers don't seem to care about National Semiconductor's
  118. recommendations.
  119. Each voltage measured has associated low and high limits, each of which
  120. triggers an alarm when crossed.
  121. When available, VID inputs are used to provide the nominal CPU Core voltage.
  122. The driver will default to VRM 9.0, but this can be changed from user-space.
  123. The chipsets can handle two sets of VID inputs (on dual-CPU systems), but
  124. the driver will only export one for now. This may change later if there is
  125. a need.
  126. General Remarks
  127. ---------------
  128. If an alarm triggers, it will remain triggered until the hardware register
  129. is read at least once. This means that the cause for the alarm may already
  130. have disappeared! Note that all hardware registers are read whenever any
  131. data is read (unless it is less than 2 seconds since the last update, in
  132. which case cached values are returned instead). As a consequence, when
  133. a once-only alarm triggers, it may take 2 seconds for it to show, and 2
  134. more seconds for it to disappear.
  135. Monitoring of in9 isn't enabled at lower init levels (<3) because that
  136. channel measures the battery voltage (Vbat). It is a known fact that
  137. repeatedly sampling the battery voltage reduces its lifetime. National
  138. Semiconductor smartly designed their chipset so that in9 is sampled only
  139. once every 1024 sampling cycles (that is every 34 minutes at the default
  140. sampling rate), so the effect is attenuated, but still present.
  141. Limitations
  142. -----------
  143. The datasheets suggests that some values (fan mins, fan dividers)
  144. shouldn't be changed once the monitoring has started, but we ignore that
  145. recommendation. We'll reconsider if it actually causes trouble.