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...