| 1 | | This file documents the gl518sm directories. |
|---|
| 2 | | |
|---|
| 3 | | There will be one directory created for each detected GL518SM chip. Chips |
|---|
| 4 | | can only be connected to the SMBus. Directories are called |
|---|
| 5 | | gl518sm-r??-i2c-?-??, where the first two question marks are the revision |
|---|
| 6 | | number, the question mark after i2c equals the I2C bus number, and the I2C |
|---|
| 7 | | address is at the end. |
|---|
| 8 | | At this moment, revisions 0x00 and 0x80 are known and supported. Revision |
|---|
| 9 | | 0x00 chips can only display the VIN3 value; revision 0x80 can also |
|---|
| 10 | | display the VIN1, VIN2 and VDD values. |
|---|
| 11 | | |
|---|
| 12 | | Experimental: |
|---|
| 13 | | You can insert the module with parameter 'readall=1' to use an iteration |
|---|
| 14 | | code to show all the voltages for rev 00 chip, too. This will cause a delay |
|---|
| 15 | | of about 10 seconds, and is currently only available through /proc system. |
|---|
| 16 | | |
|---|
| 17 | | /proc/sys/dev/sensors/chips contains the SYSCTL values for all chip |
|---|
| 18 | | directories. |
|---|
| 19 | | |
|---|
| 20 | | Within each GL518 directory, you can find the following files: |
|---|
| 21 | | * alarms (GL518_SYSCTL_ALARMS) |
|---|
| 22 | | A number which indicates which alarms are on. An alarm gets triggered when |
|---|
| 23 | | some limit has been crossed. Even if the cause of the alarm is over, it |
|---|
| 24 | | stays triggered until it has been read at least once. Because the LM78 |
|---|
| 25 | | values are updated at most once every 1.5 seconds, this means the alarm |
|---|
| 26 | | can be read several times before it is erased. |
|---|
| 27 | | This file can not be written to. |
|---|
| 28 | | The number is the logical OR of the following components: |
|---|
| 29 | | - GL518_ALARM_VDD |
|---|
| 30 | | Gets triggered when the VDD value is higher or lower than its limits |
|---|
| 31 | | - GL518_ALARM_VIN[1-3] |
|---|
| 32 | | Gets triggered when the corresponding VIN value is higher or lower than |
|---|
| 33 | | its limits. |
|---|
| 34 | | - GL518_ALARM_TEMP |
|---|
| 35 | | Gets triggered when the temp value has crossed its limits. See the |
|---|
| 36 | | description under temp. |
|---|
| 37 | | - GAL518_ALARM_FAN[1-2] |
|---|
| 38 | | Gets triggered when the corresponding FAN value drops below its limit. |
|---|
| 39 | | If accessed through sysctl, this value is a long. |
|---|
| 40 | | * beep (GL518_SYSCTL_BEEP) |
|---|
| 41 | | Two numbers. The first is 0 if all sound signals are disabled; it is 1 if |
|---|
| 42 | | they are enabled. The second number determines which alarms will cause |
|---|
| 43 | | a sound signal, if the first number is set to 1. The encoding of the |
|---|
| 44 | | second number is the same as that in alarms. |
|---|
| 45 | | * fan[1-2] (GL518_SYSCTL_FAN[1-2]) |
|---|
| 46 | | A list of two numbers. The first is the minimum fan rotation limit; the |
|---|
| 47 | | second is the current fan rotation speed. Both are in RPM (rotation per |
|---|
| 48 | | minute). An alarm is triggered if the rotation speed drops below the |
|---|
| 49 | | limit. The first value can be changed. Not all RPM values can accurately |
|---|
| 50 | | be represented, so some rounding is done. |
|---|
| 51 | | If accessed through sysctl, this is a list of longs. |
|---|
| 52 | | * fan_div (GL518_SYSCTL_FAN_DIV) |
|---|
| 53 | | A list of two numbers, one for each fan. Each number can be either 1, 2, |
|---|
| 54 | | 4 or 8. It is the internal scaling factor used for the FAN rotations. If |
|---|
| 55 | | you change this number, the FAN readings get more or less detailed, but |
|---|
| 56 | | the range in which they can be read too. Higher numbers give better |
|---|
| 57 | | resolution, but less range. The first two numbers can be changed, the |
|---|
| 58 | | third not. |
|---|
| 59 | | If accessed through sysctl, this is a list of longs. |
|---|
| 60 | | * vin[1-3] and vdd (GL518_SYSCTL_VIN[1-3] and GL518_SYSCTL_VDD) |
|---|
| 61 | | A list of three numbers. The first is the minimum limit, the second is the |
|---|
| 62 | | maximum limit, and the third is the current value. If you have a weird |
|---|
| 63 | | mainboard, all values may be off because some other scaling factor has |
|---|
| 64 | | to be used; user-space programs should compensate for this. Note that |
|---|
| 65 | | minimum means 'closest to zero'; so if the normal value equals -10, a |
|---|
| 66 | | minimum could equal -9, and a maximum -11. |
|---|
| 67 | | On GL518SM revision 0 chips, only VIN3 is readable; for the others, |
|---|
| 68 | | you can set limits, but you can not read the current values. |
|---|
| 69 | | The first two numbers can be changed, the third not. |
|---|
| 70 | | If accessed through sysctl, this is a list of longs, each being the voltage |
|---|
| 71 | | times 100. |
|---|
| 72 | | * temp |
|---|
| 73 | | A list of three numbers. The first number is the Overtemperature Shutdown |
|---|
| 74 | | value; the second is the Hysteris value and the third number is the |
|---|
| 75 | | current value. The first two values can be modified. All values are in |
|---|
| 76 | | degrees Celcius. |
|---|
| 77 | | An alarm is issued when the temperature gets higher then the |
|---|
| 78 | | Overtemperature Shutdown value; it stays on until the temperature falls |
|---|
| 79 | | below the Hysteris value. |
|---|
| 80 | | The first two numbers can be changed, the third not. |
|---|
| 81 | | If accessed through sysctl, this is a list of longs, each being the |
|---|
| 82 | | temperature times 10. |
|---|
| 83 | | |
|---|
| 84 | | The data for each GL518SM is updated each 1.5 seconds, but only if it is |
|---|
| 85 | | actually read. |
|---|
| | 1 | Kernel driver `gl518sm.o' |
|---|
| | 2 | ========================= |
|---|
| | 3 | |
|---|
| | 4 | Status: Complete and well-tested |
|---|
| | 5 | |
|---|
| | 6 | Supported chips: |
|---|
| | 7 | * Genesys Logic GL518SM release 0x00 |
|---|
| | 8 | Prefix `gl518sm-r00' |
|---|
| | 9 | Addresses scanned: I2C 0x2c and 0x2d |
|---|
| | 10 | Datasheet: Not openly available |
|---|
| | 11 | * Genesys Logic GL518SM release 0x80 |
|---|
| | 12 | Prefix `gl518sm-r80' |
|---|
| | 13 | Addresses scanned: I2C 0x2c and 0x2d |
|---|
| | 14 | Datasheet: Not available at all, as far as we know |
|---|
| | 15 | |
|---|
| | 16 | Author: Frodo Looijaard <frodol@dds.nl> |
|---|
| | 17 | |
|---|
| | 18 | |
|---|
| | 19 | Module Parameters |
|---|
| | 20 | ----------------- |
|---|
| | 21 | |
|---|
| | 22 | * force: short array (min = 1, max = 48) |
|---|
| | 23 | List of adapter,address pairs to boldly assume to be present |
|---|
| | 24 | * force_gl518sm_r00: short array (min = 1, max = 48) |
|---|
| | 25 | List of adapter,address pairs which are unquestionably assumed to contain |
|---|
| | 26 | a `gl518sm_r00' chip |
|---|
| | 27 | * force_gl518sm_r80: short array (min = 1, max = 48) |
|---|
| | 28 | List of adapter,address pairs which are unquestionably assumed to contain |
|---|
| | 29 | a `gl518sm_r80' chip |
|---|
| | 30 | * ignore: short array (min = 1, max = 48) |
|---|
| | 31 | List of adapter,address pairs not to scan |
|---|
| | 32 | * ignore_range: short array (min = 1, max = 48) |
|---|
| | 33 | List of adapter,start-addr,end-addr triples not to scan |
|---|
| | 34 | * probe: short array (min = 1, max = 48) |
|---|
| | 35 | List of adapter,address pairs to scan additionally |
|---|
| | 36 | * probe_range: short array (min = 1, max = 48) |
|---|
| | 37 | List of adapter,start-addr,end-addr triples to scan additionally |
|---|
| | 38 | * readall: int |
|---|
| | 39 | Enable the experimental code, which tries to find the voltages of |
|---|
| | 40 | revision zero chips by slow (10 seconds) interpolation |
|---|
| | 41 | |
|---|
| | 42 | |
|---|
| | 43 | Description |
|---|
| | 44 | ----------- |
|---|
| | 45 | |
|---|
| | 46 | This driver supports the Genesys Logic GL518SM chip. There are at least |
|---|
| | 47 | two revision of this chip, which we call revision 0x00 and 0x80. Revision |
|---|
| | 48 | 0x80 chips support the reading of voltages directly, 0x00 only for VIN3. |
|---|
| | 49 | |
|---|
| | 50 | The GL518SM implements one temperature sensor, two FAN rotation speed |
|---|
| | 51 | sensors, and four voltage sensors. It can report alarms through the |
|---|
| | 52 | computer speakers. |
|---|
| | 53 | |
|---|
| | 54 | Temperatures are measured in degrees Celcius. An alarm goes off while the |
|---|
| | 55 | temperature is above the over temperature limit, and has not yet dropped |
|---|
| | 56 | below the hysteris limit. The alarm always reflects the current situation. |
|---|
| | 57 | Measurements are guaranteed between -40 degrees and +125 degrees, with |
|---|
| | 58 | a resolution of 1 degree. |
|---|
| | 59 | |
|---|
| | 60 | FAN rotation speeds are reported in RPM (rotations per minute). An alarm is |
|---|
| | 61 | triggered if the rotation speed has dropped below a programmable limit. FAN |
|---|
| | 62 | readings can be divided by a programmable divider (1, 2, 4 or 8) to give |
|---|
| | 63 | the readings more range or accuracy. This is important because some FANs |
|---|
| | 64 | report only one 'tick' each rotation, while others report two - making |
|---|
| | 65 | all readings twice as high. Not all RPM values can accurately be represented, |
|---|
| | 66 | so some rounding is done. With a divider of 2, the lowest representable |
|---|
| | 67 | value is around 1900 RPM. |
|---|
| | 68 | |
|---|
| | 69 | Voltage sensors (also known as VIN sensors) report their values in volts. |
|---|
| | 70 | An alarm is triggered if the voltage has crossed a programmable minimum |
|---|
| | 71 | or maximum limit. Note that minimum in this case always means 'closest to |
|---|
| | 72 | zero'; this is important for negative voltage measurements. The VDD input |
|---|
| | 73 | measures voltages between 0.000 and 5.865 volt, with a resolution of 0.023 |
|---|
| | 74 | volt. The other inputs measure voltages between 0.000 and 4.845 volt, with |
|---|
| | 75 | a resolution of 0.019 volt. Note that revision 0x00 chips do not support |
|---|
| | 76 | reading the current voltage of any input except for VIN3; limit setting |
|---|
| | 77 | and alarms work fine, though. Yes, this is weird. There is experimental |
|---|
| | 78 | code to compute them by interpolation; see the 'readall' module parameter. |
|---|
| | 79 | |
|---|
| | 80 | When an alarm goes off, you can be warned by a beeping signal through |
|---|
| | 81 | your computer speaker. It is possible to enable all beeping globally, |
|---|
| | 82 | or only the beeping for some alarms. |
|---|
| | 83 | |
|---|
| | 84 | If an alarm triggers, it will remain triggered until the hardware register |
|---|
| | 85 | is read at least once (except for temperature alarms). This means that the |
|---|
| | 86 | cause for the alarm may already have disappeared! Note that in the current |
|---|
| | 87 | implementation, all hardware registers are read whenever any data is read |
|---|
| | 88 | (unless it is less than 1.5 seconds since the last update). This means that |
|---|
| | 89 | you can easily miss once-only alarms. |
|---|
| | 90 | |
|---|
| | 91 | The GL518SM only updates its values each 1.5 seconds; reading it more often |
|---|
| | 92 | will do no harm, but will return 'old' values. |
|---|
| | 93 | |
|---|
| | 94 | Not supported is the option to use only one fan, and to enable/disable the |
|---|
| | 95 | speed of that fan automatically as function of the current temperature. |
|---|
| | 96 | |
|---|
| | 97 | |
|---|
| | 98 | Chip Features |
|---|
| | 99 | ------------- |
|---|
| | 100 | |
|---|
| | 101 | Chip `gl518sm-r00' |
|---|
| | 102 | LABEL LABEL CLASS COMPUTE CLASS ACCESS MAGNITUDE |
|---|
| | 103 | vdd NONE NONE R 2 |
|---|
| | 104 | vin1 NONE NONE R 2 |
|---|
| | 105 | vin2 NONE NONE R 2 |
|---|
| | 106 | vin3 NONE NONE R 2 |
|---|
| | 107 | vdd_min vdd vdd RW 2 |
|---|
| | 108 | vin1_min vin1 vin1 RW 2 |
|---|
| | 109 | vin2_min vin2 vin2 RW 2 |
|---|
| | 110 | vin3_min vin3 vin3 RW 2 |
|---|
| | 111 | vdd_max vdd vdd RW 2 |
|---|
| | 112 | vin1_max vin1 vin1 RW 2 |
|---|
| | 113 | vin2_max vin2 vin2 RW 2 |
|---|
| | 114 | vin3_max vin3 vin3 RW 2 |
|---|
| | 115 | fan1 NONE NONE R 0 |
|---|
| | 116 | fan2 NONE NONE R 0 |
|---|
| | 117 | fan1_min fan1 fan1 RW 0 |
|---|
| | 118 | fan2_min fan2 fan2 RW 0 |
|---|
| | 119 | temp NONE NONE R 1 |
|---|
| | 120 | temp_hyst temp temp RW 1 |
|---|
| | 121 | temp_over temp temp RW 1 |
|---|
| | 122 | fan1_div fan1 NONE RW 0 |
|---|
| | 123 | fan2_div fan2 NONE RW 0 |
|---|
| | 124 | alarms NONE NONE R 0 |
|---|
| | 125 | beep_enable alarms NONE RW 0 |
|---|
| | 126 | beeps alarms alarms RW 0 |
|---|
| | 127 | |
|---|
| | 128 | LABEL FEATURE SYMBOL SYSCTL FILE:NR |
|---|
| | 129 | vdd SENSORS_GL518R00_VDD vdd:3 |
|---|
| | 130 | vin1 SENSORS_GL518R00_VIN1 vin1:3 |
|---|
| | 131 | vin2 SENSORS_GL518R00_VIN2 vin2:3 |
|---|
| | 132 | vin3 SENSORS_GL518R00_VIN3 vin3:3 |
|---|
| | 133 | vdd_min SENSORS_GL518R00_VDD_MIN vdd:1 |
|---|
| | 134 | vin1_min SENSORS_GL518R00_VIN1_MIN vin1:1 |
|---|
| | 135 | vin2_min SENSORS_GL518R00_VIN2_MIN vin2:1 |
|---|
| | 136 | vin3_min SENSORS_GL518R00_VIN3_MIN vin3:1 |
|---|
| | 137 | vdd_max SENSORS_GL518R00_VDD_MAX vdd:2 |
|---|
| | 138 | vin1_max SENSORS_GL518R00_VIN1_MAX vin1:2 |
|---|
| | 139 | vin2_max SENSORS_GL518R00_VIN2_MAX vin2:2 |
|---|
| | 140 | vin3_max SENSORS_GL518R00_VIN3_MAX vin3:2 |
|---|
| | 141 | fan1 SENSORS_GL518R00_FAN1 fan1:2 |
|---|
| | 142 | fan2 SENSORS_GL518R00_FAN2 fan2:2 |
|---|
| | 143 | fan1_min SENSORS_GL518R00_FAN1_MIN fan1:1 |
|---|
| | 144 | fan2_min SENSORS_GL518R00_FAN2_MIN fan2:1 |
|---|
| | 145 | temp SENSORS_GL518R00_TEMP temp:3 |
|---|
| | 146 | temp_hyst SENSORS_GL518R00_TEMP_HYST temp:2 |
|---|
| | 147 | temp_over SENSORS_GL518R00_TEMP_OVER temp:1 |
|---|
| | 148 | fan1_div SENSORS_GL518R00_FAN1_DIV fan_div:1 |
|---|
| | 149 | fan2_div SENSORS_GL518R00_FAN2_DIV fan_div:2 |
|---|
| | 150 | alarms SENSORS_GL518R00_ALARMS alarms:1 |
|---|
| | 151 | beep_enable SENSORS_GL518R00_BEEP_ENABLE beep:1 |
|---|
| | 152 | beeps SENSORS_GL518R00_BEEPS beep:2 |
|---|
| | 153 | |
|---|
| | 154 | |
|---|
| | 155 | Chip `gl518sm-r80' |
|---|
| | 156 | LABEL LABEL CLASS COMPUTE CLASS ACCESS MAGNITUDE |
|---|
| | 157 | vdd NONE NONE R 2 |
|---|
| | 158 | vin1 NONE NONE R 2 |
|---|
| | 159 | vin2 NONE NONE R 2 |
|---|
| | 160 | vin3 NONE NONE R 2 |
|---|
| | 161 | vdd_min vdd vdd RW 2 |
|---|
| | 162 | vin1_min vin1 vin1 RW 2 |
|---|
| | 163 | vin2_min vin2 vin2 RW 2 |
|---|
| | 164 | vin3_min vin3 vin3 RW 2 |
|---|
| | 165 | vdd_max vdd vdd RW 2 |
|---|
| | 166 | vin1_max vin1 vin1 RW 2 |
|---|
| | 167 | vin2_max vin2 vin2 RW 2 |
|---|
| | 168 | vin3_max vin3 vin3 RW 2 |
|---|
| | 169 | fan1 NONE NONE R 0 |
|---|
| | 170 | fan2 NONE NONE R 0 |
|---|
| | 171 | fan1_min fan1 fan1 RW 0 |
|---|
| | 172 | fan2_min fan2 fan2 RW 0 |
|---|
| | 173 | temp NONE NONE R 1 |
|---|
| | 174 | temp_hyst temp temp RW 1 |
|---|
| | 175 | temp_over temp temp RW 1 |
|---|
| | 176 | fan1_div fan1 NONE RW 0 |
|---|
| | 177 | fan2_div fan2 NONE RW 0 |
|---|
| | 178 | alarms NONE NONE R 0 |
|---|
| | 179 | beep_enable alarms NONE RW 0 |
|---|
| | 180 | beeps alarms alarms RW 0 |
|---|
| | 181 | |
|---|
| | 182 | LABEL FEATURE SYMBOL SYSCTL FILE:NR |
|---|
| | 183 | vdd SENSORS_GL518R80_VDD vdd:3 |
|---|
| | 184 | vin1 SENSORS_GL518R80_VIN1 vin1:3 |
|---|
| | 185 | vin2 SENSORS_GL518R80_VIN2 vin2:3 |
|---|
| | 186 | vin3 SENSORS_GL518R80_VIN3 vin3:3 |
|---|
| | 187 | vdd_min SENSORS_GL518R80_VDD_MIN vdd:1 |
|---|
| | 188 | vin1_min SENSORS_GL518R80_VIN1_MIN vin1:1 |
|---|
| | 189 | vin2_min SENSORS_GL518R80_VIN2_MIN vin2:1 |
|---|
| | 190 | vin3_min SENSORS_GL518R80_VIN3_MIN vin3:1 |
|---|
| | 191 | vdd_max SENSORS_GL518R80_VDD_MAX vdd:2 |
|---|
| | 192 | vin1_max SENSORS_GL518R80_VIN1_MAX vin1:2 |
|---|
| | 193 | vin2_max SENSORS_GL518R80_VIN2_MAX vin2:2 |
|---|
| | 194 | vin3_max SENSORS_GL518R80_VIN3_MAX vin3:2 |
|---|
| | 195 | fan1 SENSORS_GL518R80_FAN1 fan1:2 |
|---|
| | 196 | fan2 SENSORS_GL518R80_FAN2 fan2:2 |
|---|
| | 197 | fan1_min SENSORS_GL518R80_FAN1_MIN fan1:1 |
|---|
| | 198 | fan2_min SENSORS_GL518R80_FAN2_MIN fan2:1 |
|---|
| | 199 | temp SENSORS_GL518R80_TEMP temp:3 |
|---|
| | 200 | temp_hyst SENSORS_GL518R80_TEMP_HYST temp:2 |
|---|
| | 201 | temp_over SENSORS_GL518R80_TEMP_OVER temp:1 |
|---|
| | 202 | fan1_div SENSORS_GL518R80_FAN1_DIV fan_div:1 |
|---|
| | 203 | fan2_div SENSORS_GL518R80_FAN2_DIV fan_div:2 |
|---|
| | 204 | alarms SENSORS_GL518R80_ALARMS alarms:1 |
|---|
| | 205 | beep_enable SENSORS_GL518R80_BEEP_ENABLE beep:1 |
|---|
| | 206 | beeps SENSORS_GL518R80_BEEPS beep:2 |
|---|
| | 207 | |
|---|
| | 208 | |
|---|