asb100.rst 2.1 KB

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