This file documents the gl518sm directories.

There will be one directory created for each detected GL518SM chip. Chips
can only be connected to the SMBus. Directories are called 
gl518sm-r??-i2c-?-??, where the first two question marks are the revision
number, the question mark after i2c equals the I2C bus number, and the I2C
address is at the end.
At this moment, revisions 0x00 and 0x80 are known and supported. Revision
0x00 chips can only display the VIN3 value; revision 0x80 can also 
display the VIN1, VIN2 and VDD values.
/proc/sys/dev/sensors/chips contains the SYSCTL values for all chip
directories.

Within each LM78 directory, you can find the following files:
* alarms (GL518_SYSCTL_ALARMS)
  A number which indicates which alarms are on. An alarm gets triggered when
  some limit has been crossed. Even if the cause of the alarm is over, it
  stays triggered until it has been read at least once. Because the LM78
  values are updated at most once every 1.5 seconds, this means the alarm
  can be read several times before it is erased.
  This file can not be written to.
  The number is the logical OR of the following components:
  - GL518_ALARM_VDD
    Gets triggered when the VDD value is higher or lower than its limits
  - LM78_ALARM_VIN[1-3]
    Gets triggered when the corresponding VIN value is higher or lower than
    its limits.
  - LM78_ALARM_TEMP
    Gets triggered when the temp value has crossed its limits. See the 
    description under temp.
  - LM78_ALARM_FAN[1-2]
    Gets triggered when the corresponding FAN value drops below its limit.
  If accessed through sysctl, this value is a long.
* beep (GL518_SYSCTL_BEEP)
  Two numbers. The first is 0 if all sound signals are disabled; it is 1 if
  they are enabled. The second number determines which alarms will cause
  a sound signal, if the first number is set to 1. The encoding of the
  second number is the same as that in alarms.
* fan[1-2] (GL518_SYSCTL_FAN[1-2])
  A list of two numbers. The first is the minimum fan rotation limit; the
  second is the current fan rotation speed. Both are in RPM (rotation per
  minute). An alarm is triggered if the rotation speed drops below the
  limit. The first value can be changed. Not all RPM values can accurately
  be represented, so some rounding is done.
  If accessed through sysctl, this is a list of longs.
* fan_div (GL518_SYSCTL_FAN_DIV)
  A list of two numbers, one for each fan. Each number can be either 1, 2,
  4 or 8. It is the internal scaling factor used for the FAN rotations. If
  you change this number, the FAN readings get more or less detailed, but
  the range in which they can be read too. Higher numbers give better 
  resolution, but less range. The first two numbers can be changed, the
  third not.
  If accessed through sysctl, this is a list of longs.
* vin[1-3] and vdd (LM78_SYSCTL_VIN[1-3] and GL518_SYSCTL_VDD)
  A list of three numbers. The first is the minimum limit, the second is the
  maximum limit, and the third is the current value. If you have a weird
  mainboard, all values may be off because some other scaling factor has
  to be used; user-space programs should compensate for this. Note that
  minimum means 'closest to zero'; so if the normal value equals -10, a
  minimum could equal -9, and a maximum -11. 
  On GL518SM revision 0 chips, only VIN3 is readable; for the others,
  you can set limits, but you can not read the current values.
  The first two numbers can be changed, the third not.
  If accessed through sysctl, this is a list of longs, each being the voltage
  times 100.
* temp
  A list of three numbers. The first number is the Overtemperature Shutdown
  value; the second is the Hysteris value and the third number is the
  current value. The first two values can be modified. All values are in
  degrees Celcius.
  An alarm is issued when the temperature gets higher then the
  Overtemperature Shutdown value; it stays on until the temperature falls
  below the Hysteris value.
  The first two numbers can be changed, the third not.
  If accessed through sysctl, this is a list of longs, each being the
  temperature times 10.

The data for each GL518SM is updated each 1.5 seconds, but only if it is
actually read.
