| 1 | Kernel driver `sis5595.o' |
|---|
| 2 | ========================= |
|---|
| 3 | |
|---|
| 4 | Status: Complete and tested |
|---|
| 5 | |
|---|
| 6 | Supported chips: |
|---|
| 7 | * Silicon Integrated Systems Corp. SiS5595 Southbridge Hardware Monitor |
|---|
| 8 | Prefix: sis5595 |
|---|
| 9 | Addresses scanned: ISA in PCI-space encoded address |
|---|
| 10 | Datasheet: Publicly available at the Silicon Integrated Systems Corp. site. |
|---|
| 11 | |
|---|
| 12 | Supports following revisions: |
|---|
| 13 | Version PCI ID PCI Revision |
|---|
| 14 | 1 1039/0008 01 |
|---|
| 15 | 2 1039/0008 C0 |
|---|
| 16 | |
|---|
| 17 | Author: Kyösti Mälkki <kmalkki@cc.hut.fi> |
|---|
| 18 | |
|---|
| 19 | Note: The chips below contain a 0008 device which is incompatible with the |
|---|
| 20 | 5595. We recognize these by the presence of the listed |
|---|
| 21 | "blacklist" PCI ID and refuse to load. |
|---|
| 22 | |
|---|
| 23 | NOT SUPPORTED PCI ID BLACKLIST PCI ID |
|---|
| 24 | 540 0008 0540 |
|---|
| 25 | 550 0008 0550 |
|---|
| 26 | 5513 0008 5511 |
|---|
| 27 | 5581 0008 5597 |
|---|
| 28 | 5582 0008 5597 |
|---|
| 29 | 5597 0008 5597 |
|---|
| 30 | 5598 0008 5597/5598 |
|---|
| 31 | 630 0008 0630 |
|---|
| 32 | 645 0008 0645 |
|---|
| 33 | 730 0008 0730 |
|---|
| 34 | 735 0008 0735 |
|---|
| 35 | |
|---|
| 36 | Module Parameters |
|---|
| 37 | ----------------- |
|---|
| 38 | force_addr=0xaddr Set the I/O base address. Useful for boards |
|---|
| 39 | that don't set the address in the BIOS. Does not do a |
|---|
| 40 | PCI force; the device must still be present in lspci. |
|---|
| 41 | Don't use this unless the driver complains that the |
|---|
| 42 | base address is not set. |
|---|
| 43 | Example: 'modprobe sis5595 force_addr=0x290' |
|---|
| 44 | |
|---|
| 45 | |
|---|
| 46 | Description |
|---|
| 47 | ----------- |
|---|
| 48 | |
|---|
| 49 | The Sis5595 southbridge has integrated hardware monitor functions. |
|---|
| 50 | It also has an I2C bus, but this driver only supports the hardware monitor. |
|---|
| 51 | For the I2C bus driver see i2c-sis5595. |
|---|
| 52 | |
|---|
| 53 | The SiS5595 implements zero or one temperature sensor, two fan speed |
|---|
| 54 | sensors, four or five voltage sensors, and alarms. |
|---|
| 55 | |
|---|
| 56 | On the first version of the chip, there are four voltage |
|---|
| 57 | sensors and one temperature sensor. |
|---|
| 58 | |
|---|
| 59 | On the second version of the chip, |
|---|
| 60 | the temperature sensor (temp) and the fifth voltage sensor (in4) share a pin |
|---|
| 61 | which is configurable, but not through the driver. Sorry. |
|---|
| 62 | The driver senses the configuration of the pin, which was hopefully |
|---|
| 63 | set by the BIOS. |
|---|
| 64 | If the temperature function is enabled, in4 will return 0. |
|---|
| 65 | If the in4 function is enabled, temp will return 0. |
|---|
| 66 | |
|---|
| 67 | Temperatures are measured in degrees Celsius. An alarm is triggered once |
|---|
| 68 | when the max is crossed; it is also triggered |
|---|
| 69 | when it drops below the min value. |
|---|
| 70 | Measurements are guaranteed |
|---|
| 71 | between -55 and +125 degrees, with a resolution of 1 degree. |
|---|
| 72 | |
|---|
| 73 | Fan rotation speeds are reported in RPM (rotations per minute). An alarm is |
|---|
| 74 | triggered if the rotation speed has dropped below a programmable limit. Fan |
|---|
| 75 | readings can be divided by a programmable divider (1, 2, 4 or 8) to give |
|---|
| 76 | the readings more range or accuracy. Not all RPM values can accurately be |
|---|
| 77 | represented, so some rounding is done. With a divider of 2, the lowest |
|---|
| 78 | representable value is around 2600 RPM. |
|---|
| 79 | |
|---|
| 80 | Voltage sensors (also known as IN sensors) report their values in volts. |
|---|
| 81 | An alarm is triggered if the voltage has crossed a programmable minimum |
|---|
| 82 | or maximum limit. Note that minimum in this case always means 'closest to |
|---|
| 83 | zero'; this is important for negative voltage measurements. All voltage |
|---|
| 84 | inputs can measure voltages between 0 and 4.08 volts, with a resolution |
|---|
| 85 | of 0.016 volt. |
|---|
| 86 | |
|---|
| 87 | In addition to the alarms described above, there is a BTI alarm, which gets |
|---|
| 88 | triggered when an external chip has crossed its limits. Usually, this is |
|---|
| 89 | connected to some LM75-like chip; if at least one crosses its limits, this |
|---|
| 90 | bit gets set. |
|---|
| 91 | |
|---|
| 92 | If an alarm triggers, it will remain triggered until the hardware register |
|---|
| 93 | is read at least once. This means that the cause for the alarm may |
|---|
| 94 | already have disappeared! Note that in the current implementation, all |
|---|
| 95 | hardware registers are read whenever any data is read (unless it is less |
|---|
| 96 | than 1.5 seconds since the last update). This means that you can easily |
|---|
| 97 | miss once-only alarms. |
|---|
| 98 | |
|---|
| 99 | The Sis5595 only updates its values each 1.5 seconds; reading it more often |
|---|
| 100 | will do no harm, but will return 'old' values. |
|---|
| 101 | |
|---|
| 102 | Problems |
|---|
| 103 | -------- |
|---|
| 104 | Some chips refuse to be enabled. We don't know why. |
|---|
| 105 | The driver will recognize this and print a message in dmesg. |
|---|
| 106 | |
|---|
| 107 | Chip Features |
|---|
| 108 | ------------- |
|---|
| 109 | |
|---|
| 110 | Chip `sis5595' |
|---|
| 111 | LABEL LABEL CLASS COMPUTE CLASS ACCESS MAGNITUDE |
|---|
| 112 | in0 NONE NONE R 2 |
|---|
| 113 | in1 NONE NONE R 2 |
|---|
| 114 | in2 NONE NONE R 2 |
|---|
| 115 | in3 NONE NONE R 2 |
|---|
| 116 | in4 NONE NONE R 2 |
|---|
| 117 | in0_min in0 in0 RW 2 |
|---|
| 118 | in1_min in1 in1 RW 2 |
|---|
| 119 | in2_min in2 in2 RW 2 |
|---|
| 120 | in3_min in3 in3 RW 2 |
|---|
| 121 | in4_min in4 in4 RW 2 |
|---|
| 122 | in0_max in0 in0 RW 2 |
|---|
| 123 | in1_max in1 in1 RW 2 |
|---|
| 124 | in2_max in2 in2 RW 2 |
|---|
| 125 | in3_max in3 in3 RW 2 |
|---|
| 126 | in4_max in4 in4 RW 2 |
|---|
| 127 | fan1 NONE NONE R 0 |
|---|
| 128 | fan2 NONE NONE R 0 |
|---|
| 129 | fan1_min fan1 fan1 RW 0 |
|---|
| 130 | fan2_min fan2 fan2 RW 0 |
|---|
| 131 | temp NONE NONE R 1 |
|---|
| 132 | temp_hyst temp temp RW 1 |
|---|
| 133 | temp_over temp temp RW 1 |
|---|
| 134 | fan1_div fan1 NONE RW 0 |
|---|
| 135 | fan2_div fan2 NONE RW 0 |
|---|
| 136 | alarms NONE NONE R 0 |
|---|
| 137 | |
|---|
| 138 | LABEL FEATURE SYMBOL SYSCTL FILE:NR |
|---|
| 139 | in0 SENSORS_SIS5595_IN0 in0:3 |
|---|
| 140 | in1 SENSORS_SIS5595_IN1 in1:3 |
|---|
| 141 | in2 SENSORS_SIS5595_IN2 in2:3 |
|---|
| 142 | in3 SENSORS_SIS5595_IN3 in3:3 |
|---|
| 143 | in4 SENSORS_SIS5595_IN4 in3:3 |
|---|
| 144 | in0_min SENSORS_SIS5595_IN0_MIN in0:1 |
|---|
| 145 | in1_min SENSORS_SIS5595_IN1_MIN in1:1 |
|---|
| 146 | in2_min SENSORS_SIS5595_IN2_MIN in2:1 |
|---|
| 147 | in3_min SENSORS_SIS5595_IN3_MIN in3:1 |
|---|
| 148 | in4_min SENSORS_SIS5595_IN4_MIN in4:1 |
|---|
| 149 | in0_max SENSORS_SIS5595_IN0_MAX in0:2 |
|---|
| 150 | in1_max SENSORS_SIS5595_IN1_MAX in1:2 |
|---|
| 151 | in2_max SENSORS_SIS5595_IN2_MAX in2:2 |
|---|
| 152 | in3_max SENSORS_SIS5595_IN3_MAX in3:2 |
|---|
| 153 | in4_max SENSORS_SIS5595_IN4_MAX in4:2 |
|---|
| 154 | fan1 SENSORS_SIS5595_FAN1 fan1:2 |
|---|
| 155 | fan2 SENSORS_SIS5595_FAN2 fan2:2 |
|---|
| 156 | fan1_min SENSORS_SIS5595_FAN1_MIN fan1:1 |
|---|
| 157 | fan2_min SENSORS_SIS5595_FAN2_MIN fan2:1 |
|---|
| 158 | temp SENSORS_SIS5595_TEMP temp:3 |
|---|
| 159 | temp_hyst SENSORS_SIS5595_TEMP_HYST temp:2 |
|---|
| 160 | temp_over SENSORS_SIS5595_TEMP_OVER temp:1 |
|---|
| 161 | fan1_div SENSORS_SIS5595_FAN1_DIV fan_div:1 |
|---|
| 162 | fan2_div SENSORS_SIS5595_FAN2_DIV fan_div:2 |
|---|
| 163 | alarms SENSORS_SIS5595_ALARMS alarms:1 |
|---|
| 164 | |
|---|
| 165 | |
|---|