Commit | Line | Data |
---|---|---|
7f15b664 M |
1 | Kernel driver asb100 |
2 | ==================== | |
3 | ||
4 | Supported Chips: | |
b04f2f7d | 5 | |
7f15b664 | 6 | * Asus ASB100 and ASB100-A "Bach" |
b04f2f7d | 7 | |
7f15b664 | 8 | Prefix: 'asb100' |
b04f2f7d | 9 | |
7f15b664 | 10 | Addresses scanned: I2C 0x2d |
b04f2f7d | 11 | |
7f15b664 M |
12 | Datasheet: none released |
13 | ||
14 | Author: Mark M. Hoffman <mhoffman@lightlink.com> | |
15 | ||
16 | Description | |
17 | ----------- | |
18 | ||
19 | This driver implements support for the Asus ASB100 and ASB100-A "Bach". | |
20 | These are custom ASICs available only on Asus mainboards. Asus refuses to | |
21 | supply a datasheet for these chips. Thanks go to many people who helped | |
22 | investigate their hardware, including: | |
23 | ||
24 | Vitaly V. Bursov | |
25 | Alexander van Kaam (author of MBM for Windows) | |
26 | Bertrik Sikken | |
27 | ||
28 | The ASB100 implements seven voltage sensors, three fan rotation speed | |
29 | sensors, four temperature sensors, VID lines and alarms. In addition to | |
30 | these, the ASB100-A also implements a single PWM controller for fans 2 and | |
31 | 3 (i.e. one setting controls both.) If you have a plain ASB100, the PWM | |
32 | controller will simply not work (or maybe it will for you... it doesn't for | |
33 | me). | |
34 | ||
35 | Temperatures are measured and reported in degrees Celsius. | |
36 | ||
37 | Fan speeds are reported in RPM (rotations per minute). An alarm is | |
38 | triggered if the rotation speed has dropped below a programmable limit. | |
39 | ||
40 | Voltage sensors (also known as IN sensors) report values in volts. | |
41 | ||
42 | The VID lines encode the core voltage value: the voltage level your | |
43 | processor should work with. This is hardcoded by the mainboard and/or | |
44 | processor itself. It is a value in volts. | |
45 | ||
46 | Alarms: (TODO question marks indicate may or may not work) | |
47 | ||
b04f2f7d MCC |
48 | - 0x0001 => in0 (?) |
49 | - 0x0002 => in1 (?) | |
50 | - 0x0004 => in2 | |
51 | - 0x0008 => in3 | |
52 | - 0x0010 => temp1 [1]_ | |
53 | - 0x0020 => temp2 | |
54 | - 0x0040 => fan1 | |
55 | - 0x0080 => fan2 | |
56 | - 0x0100 => in4 | |
57 | - 0x0200 => in5 (?) [2]_ | |
58 | - 0x0400 => in6 (?) [2]_ | |
59 | - 0x0800 => fan3 | |
60 | - 0x1000 => chassis switch | |
61 | - 0x2000 => temp3 | |
62 | ||
63 | .. [1] This alarm will only trigger if the hysteresis value is 127C. | |
64 | I.e. it behaves the same as w83781d. | |
65 | ||
66 | .. [2] The min and max registers for these values appear to | |
67 | be read-only or otherwise stuck at 0x00. | |
7f15b664 M |
68 | |
69 | TODO: | |
b04f2f7d MCC |
70 | * Experiment with fan divisors > 8. |
71 | * Experiment with temp. sensor types. | |
72 | * Are there really 13 voltage inputs? Probably not... | |
73 | * Cleanups, no doubt... |