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