Back to home page

OSCL-LXR

 
 

    


0001 Kernel driver asb100
0002 ====================
0003 
0004 Supported Chips:
0005 
0006   * Asus ASB100 and ASB100-A "Bach"
0007 
0008     Prefix: 'asb100'
0009 
0010     Addresses scanned: I2C 0x2d
0011 
0012     Datasheet: none released
0013 
0014 Author: Mark M. Hoffman <mhoffman@lightlink.com>
0015 
0016 Description
0017 -----------
0018 
0019 This driver implements support for the Asus ASB100 and ASB100-A "Bach".
0020 These are custom ASICs available only on Asus mainboards. Asus refuses to
0021 supply a datasheet for these chips. Thanks go to many people who helped
0022 investigate their hardware, including:
0023 
0024 Vitaly V. Bursov
0025 Alexander van Kaam (author of MBM for Windows)
0026 Bertrik Sikken
0027 
0028 The ASB100 implements seven voltage sensors, three fan rotation speed
0029 sensors, four temperature sensors, VID lines and alarms. In addition to
0030 these, the ASB100-A also implements a single PWM controller for fans 2 and
0031 3 (i.e. one setting controls both.) If you have a plain ASB100, the PWM
0032 controller will simply not work (or maybe it will for you... it doesn't for
0033 me).
0034 
0035 Temperatures are measured and reported in degrees Celsius.
0036 
0037 Fan speeds are reported in RPM (rotations per minute). An alarm is
0038 triggered if the rotation speed has dropped below a programmable limit.
0039 
0040 Voltage sensors (also known as IN sensors) report values in volts.
0041 
0042 The VID lines encode the core voltage value: the voltage level your
0043 processor should work with. This is hardcoded by the mainboard and/or
0044 processor itself. It is a value in volts.
0045 
0046 Alarms: (TODO question marks indicate may or may not work)
0047 
0048 - 0x0001 => in0 (?)
0049 - 0x0002 => in1 (?)
0050 - 0x0004 => in2
0051 - 0x0008 => in3
0052 - 0x0010 => temp1 [1]_
0053 - 0x0020 => temp2
0054 - 0x0040 => fan1
0055 - 0x0080 => fan2
0056 - 0x0100 => in4
0057 - 0x0200 => in5 (?) [2]_
0058 - 0x0400 => in6 (?) [2]_
0059 - 0x0800 => fan3
0060 - 0x1000 => chassis switch
0061 - 0x2000 => temp3
0062 
0063 .. [1]  This alarm will only trigger if the hysteresis value is 127C.
0064         I.e. it behaves the same as w83781d.
0065 
0066 .. [2]  The min and max registers for these values appear to
0067         be read-only or otherwise stuck at 0x00.
0068 
0069 TODO:
0070   * Experiment with fan divisors > 8.
0071   * Experiment with temp. sensor types.
0072   * Are there really 13 voltage inputs? Probably not...
0073   * Cleanups, no doubt...