From c177ea5d8ea30178a26b53d8a4e9948ac17f06e8 Mon Sep 17 00:00:00 2001 From: "Mark M. Hoffman" Date: Tue, 9 Dec 2003 06:17:04 +0000 Subject: [PATCH] Updated for ASB100 git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@2148 7894878c-1315-0410-8ee3-d5d059ff63e0 --- CHANGES | 4 +- doc/chips/asb100 | 80 ++++++++++++++++++++++++++++++++++++++ prog/detect/sensors-detect | 2 +- 3 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 doc/chips/asb100 diff --git a/CHANGES b/CHANGES index e277cb77..d93d361a 100644 --- a/CHANGES +++ b/CHANGES @@ -19,7 +19,8 @@ ask CVS about it: 2.8.2 (???) IMPORTANT: Limit initialization removed from all chip drivers! If you didn't run 'sensors -s' in the past you may need to now! - File sensors.conf.eg: Change lm75 scaling back to 1 + File sensors.conf.eg: Change lm75 scaling back to 1; + Add example for asb100 Library: Fix bmcsensors scaling, increase number of sensors; Add w83627thf support; Advance version to 3.0.0; Add hermes, ADM1032, ASB100 support; @@ -67,6 +68,7 @@ ask CVS about it: Reduce lm80 misdetects; remove PCFxxxx "detection" Detect VT8237 (KT600) Use VPD instead of DMI+ACPI for Thinkpad detection + Suggest new asb100 driver instead of w83781d 2.8.1 (20031005) diff --git a/doc/chips/asb100 b/doc/chips/asb100 new file mode 100644 index 00000000..58a07ef7 --- /dev/null +++ b/doc/chips/asb100 @@ -0,0 +1,80 @@ +Kernel driver `asb100.o' +======================== + +Status: Work in progress + +Supported Chips: + * Asus ASB100 and ASB100-A "Bach" + Addresses scanned: I2C 0x28-0x2f (inclusive) ISA (none) + Datasheet: none released + +Author: Mark M. Hoffman + +Module Parameters +----------------- + + + +Description +----------- + +This driver implements support for the Asus ASB100 and ASB100-A "Bach". These +are custom ASICs available only on Asus mainboards. Asus refuses to supply a +datasheet for these chips. Thanks go to many people who helped investigate +their hardware, including: + +Vitaly V. Bursov +Alexander van Kaam (author of MBM for Windows) +Bertrik Sikken + +The ASB100 implements seven voltage sensors, three fan rotation speed sensors, +four temperature sensors, VID lines and alarms. In addition to these, the +ASB100-A also implements a single PWM controller for fans 2 and 3 (i.e. one +setting controls both.) If you have a plain ASB100, the pwm controller will +simply not work (or maybe it will for you... it doesn't for me). + +Temperatures are measured and reported in degrees Celcius. + +Fan speeds are reported in RPM (rotations per minute). An alarm is triggered +if the rotation speed has dropped below a programmable limit. + +Voltage sensors (also known as IN sensors) report values in volts. + +The VID lines encode the core voltage value: the voltage level your processor +should work with. This is hardcoded by the mainboard and/or processor itself. +It is a value in volts. + +Alarms: (TODO question marks indicate may or may not work) + +0x0001 => in0 (?) +0x0002 => in1 (?) +0x0004 => in2 +0x0008 => in3 +0x0010 => temp1 (1) +0x0020 => temp2 +0x0040 => fan1 +0x0080 => fan2 +0x0100 => in4 +0x0200 => in5 (?) (2) +0x0400 => in6 (?) (2) +0x0800 => fan3 +0x1000 => chassis switch +0x2000 => temp3 + +Alarm Notes: + +(1) This alarm will only trigger if the hysteresis value is 127C. +I.e. it behaves the same as w83781d. + +(2) The min and max registers for these values appear to +be read-only or otherwise stuck at 0x00. + +TODO: +* Experiment with fan divisors > 8. +* Experiment with temp. sensor types. +* Are there really 13 voltage inputs? Probably not... +* Fix bogus client deregistration (like w83781d in 2.6). +* Fix fan divisor / fan minimum interaction (like lm78). +* Beeps are broken. +* Cleanups, no doubt... + diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect index 956ff253..55ffa657 100755 --- a/prog/detect/sensors-detect +++ b/prog/detect/sensors-detect @@ -940,7 +940,7 @@ use subs qw(mtp008_detect lm78_detect lm78_isa_detect lm78_alias_detect } , { name => "Asus ASB100 Bach", - driver => "w83781d", + driver => "asb100", i2c_addrs => [0x28..0x2f], i2c_detect => sub { w83781d_detect 6, @_}, } ,