Commit 96c015b7 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging

* 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
  hwmon: (lm85) Don't bind to Winbond/Nuvoton WPCD377I
  hwmon: (pcf8591) Documentation clean-ups
  hwmon: Clearly mark ACPI drivers as such
  hwmon: Use resource_size
  hwmon: Include <linux/io.h> instead of <asm/io.h>
  hwmon: (tmp421) Add documentation
  hwmon: Add driver for Texas Instruments TMP421/422/423 sensor chips
  hwmon-vid: Ignore 6th VID pin of AMD family 0Fh processors
  hwmon: (asus_atk0110) Add maintainer information
  hwmon: (abituguru3) Support multiple DMI strings per chip ID
parents 3aee0605 5cfaf338
...@@ -2,11 +2,11 @@ Kernel driver pcf8591 ...@@ -2,11 +2,11 @@ Kernel driver pcf8591
===================== =====================
Supported chips: Supported chips:
* Philips PCF8591 * Philips/NXP PCF8591
Prefix: 'pcf8591' Prefix: 'pcf8591'
Addresses scanned: I2C 0x48 - 0x4f Addresses scanned: I2C 0x48 - 0x4f
Datasheet: Publicly available at the Philips Semiconductor website Datasheet: Publicly available at the NXP website
http://www.semiconductors.philips.com/pip/PCF8591P.html http://www.nxp.com/pip/PCF8591_6.html
Authors: Authors:
Aurelien Jarno <aurelien@aurel32.net> Aurelien Jarno <aurelien@aurel32.net>
...@@ -16,9 +16,10 @@ Authors: ...@@ -16,9 +16,10 @@ Authors:
Description Description
----------- -----------
The PCF8591 is an 8-bit A/D and D/A converter (4 analog inputs and one The PCF8591 is an 8-bit A/D and D/A converter (4 analog inputs and one
analog output) for the I2C bus produced by Philips Semiconductors. It analog output) for the I2C bus produced by Philips Semiconductors (now NXP).
is designed to provide a byte I2C interface to up to 4 separate devices. It is designed to provide a byte I2C interface to up to 4 separate devices.
The PCF8591 has 4 analog inputs programmable as single-ended or The PCF8591 has 4 analog inputs programmable as single-ended or
differential inputs : differential inputs :
...@@ -58,8 +59,8 @@ Accessing PCF8591 via /sys interface ...@@ -58,8 +59,8 @@ Accessing PCF8591 via /sys interface
------------------------------------- -------------------------------------
! Be careful ! ! Be careful !
The PCF8591 is plainly impossible to detect ! Stupid chip. The PCF8591 is plainly impossible to detect! Stupid chip.
So every chip with address in the interval [48..4f] is So every chip with address in the interval [0x48..0x4f] is
detected as PCF8591. If you have other chips in this address detected as PCF8591. If you have other chips in this address
range, the workaround is to load this module after the one range, the workaround is to load this module after the one
for your others chips. for your others chips.
...@@ -67,19 +68,20 @@ for your others chips. ...@@ -67,19 +68,20 @@ for your others chips.
On detection (i.e. insmod, modprobe et al.), directories are being On detection (i.e. insmod, modprobe et al.), directories are being
created for each detected PCF8591: created for each detected PCF8591:
/sys/bus/devices/<0>-<1>/ /sys/bus/i2c/devices/<0>-<1>/
where <0> is the bus the chip was detected on (e. g. i2c-0) where <0> is the bus the chip was detected on (e. g. i2c-0)
and <1> the chip address ([48..4f]) and <1> the chip address ([48..4f])
Inside these directories, there are such files: Inside these directories, there are such files:
in0, in1, in2, in3, out0_enable, out0_output, name in0_input, in1_input, in2_input, in3_input, out0_enable, out0_output, name
Name contains chip name. Name contains chip name.
The in0, in1, in2 and in3 files are RO. Reading gives the value of the The in0_input, in1_input, in2_input and in3_input files are RO. Reading gives
corresponding channel. Depending on the current analog inputs configuration, the value of the corresponding channel. Depending on the current analog inputs
files in2 and/or in3 do not exist. Values range are from 0 to 255 for single configuration, files in2_input and in3_input may not exist. Values range
ended inputs and -128 to +127 for differential inputs (8-bit ADC). from 0 to 255 for single ended inputs and -128 to +127 for differential inputs
(8-bit ADC).
The out0_enable file is RW. Reading gives "1" for analog output enabled and The out0_enable file is RW. Reading gives "1" for analog output enabled and
"0" for analog output disabled. Writing accepts "0" and "1" accordingly. "0" for analog output disabled. Writing accepts "0" and "1" accordingly.
......
Kernel driver tmp421
====================
Supported chips:
* Texas Instruments TMP421
Prefix: 'tmp421'
Addresses scanned: I2C 0x2a, 0x4c, 0x4d, 0x4e and 0x4f
Datasheet: http://focus.ti.com/docs/prod/folders/print/tmp421.html
* Texas Instruments TMP422
Prefix: 'tmp422'
Addresses scanned: I2C 0x2a, 0x4c, 0x4d, 0x4e and 0x4f
Datasheet: http://focus.ti.com/docs/prod/folders/print/tmp421.html
* Texas Instruments TMP423
Prefix: 'tmp423'
Addresses scanned: I2C 0x2a, 0x4c, 0x4d, 0x4e and 0x4f
Datasheet: http://focus.ti.com/docs/prod/folders/print/tmp421.html
Authors:
Andre Prendel <andre.prendel@gmx.de>
Description
-----------
This driver implements support for Texas Instruments TMP421, TMP422
and TMP423 temperature sensor chips. These chips implement one local
and up to one (TMP421), up to two (TMP422) or up to three (TMP423)
remote sensors. Temperature is measured in degrees Celsius. The chips
are wired over I2C/SMBus and specified over a temperature range of -40
to +125 degrees Celsius. Resolution for both the local and remote
channels is 0.0625 degree C.
The chips support only temperature measurement. The driver exports
the temperature values via the following sysfs files:
temp[1-4]_input
temp[2-4]_fault
...@@ -931,6 +931,12 @@ W: http://wireless.kernel.org/en/users/Drivers/ar9170 ...@@ -931,6 +931,12 @@ W: http://wireless.kernel.org/en/users/Drivers/ar9170
S: Maintained S: Maintained
F: drivers/net/wireless/ath/ar9170/ F: drivers/net/wireless/ath/ar9170/
ATK0110 HWMON DRIVER
M: Luca Tettamanti <kronos.it@gmail.com>
L: lm-sensors@lm-sensors.org
S: Maintained
F: drivers/hwmon/asus_atk0110.c
ATI_REMOTE2 DRIVER ATI_REMOTE2 DRIVER
M: Ville Syrjala <syrjala@sci.fi> M: Ville Syrjala <syrjala@sci.fi>
S: Maintained S: Maintained
......
...@@ -28,6 +28,17 @@ config HWMON_VID ...@@ -28,6 +28,17 @@ config HWMON_VID
tristate tristate
default n default n
config HWMON_DEBUG_CHIP
bool "Hardware Monitoring Chip debugging messages"
default n
help
Say Y here if you want the I2C chip drivers to produce a bunch of
debug messages to the system log. Select this if you are having
a problem with I2C support and want to see more of what is going
on.
comment "Native drivers"
config SENSORS_ABITUGURU config SENSORS_ABITUGURU
tristate "Abit uGuru (rev 1 & 2)" tristate "Abit uGuru (rev 1 & 2)"
depends on X86 && EXPERIMENTAL depends on X86 && EXPERIMENTAL
...@@ -248,18 +259,6 @@ config SENSORS_ASB100 ...@@ -248,18 +259,6 @@ config SENSORS_ASB100
This driver can also be built as a module. If so, the module This driver can also be built as a module. If so, the module
will be called asb100. will be called asb100.
config SENSORS_ATK0110
tristate "ASUS ATK0110 ACPI hwmon"
depends on X86 && ACPI && EXPERIMENTAL
help
If you say yes here you get support for the ACPI hardware
monitoring interface found in many ASUS motherboards. This
driver will provide readings of fans, voltages and temperatures
through the system firmware.
This driver can also be built as a module. If so, the module
will be called asus_atk0110.
config SENSORS_ATXP1 config SENSORS_ATXP1
tristate "Attansic ATXP1 VID controller" tristate "Attansic ATXP1 VID controller"
depends on I2C && EXPERIMENTAL depends on I2C && EXPERIMENTAL
...@@ -814,6 +813,16 @@ config SENSORS_TMP401 ...@@ -814,6 +813,16 @@ config SENSORS_TMP401
This driver can also be built as a module. If so, the module This driver can also be built as a module. If so, the module
will be called tmp401. will be called tmp401.
config SENSORS_TMP421
tristate "Texas Instruments TMP421 and compatible"
depends on I2C && EXPERIMENTAL
help
If you say yes here you get support for Texas Instruments TMP421,
TMP422 and TMP423 temperature sensor chips.
This driver can also be built as a module. If so, the module
will be called tmp421.
config SENSORS_VIA686A config SENSORS_VIA686A
tristate "VIA686A" tristate "VIA686A"
depends on PCI depends on PCI
...@@ -964,34 +973,6 @@ config SENSORS_HDAPS ...@@ -964,34 +973,6 @@ config SENSORS_HDAPS
Say Y here if you have an applicable laptop and want to experience Say Y here if you have an applicable laptop and want to experience
the awesome power of hdaps. the awesome power of hdaps.
config SENSORS_LIS3LV02D
tristate "STMicroeletronics LIS3LV02Dx three-axis digital accelerometer"
depends on ACPI && INPUT
select INPUT_POLLDEV
select NEW_LEDS
select LEDS_CLASS
default n
help
This driver provides support for the LIS3LV02Dx accelerometer. In
particular, it can be found in a number of HP laptops, which have the
"Mobile Data Protection System 3D" or "3D DriveGuard" feature. On such
systems the driver should load automatically (via ACPI). The
accelerometer might also be found in other systems, connected via SPI
or I2C. The accelerometer data is readable via
/sys/devices/platform/lis3lv02d.
This driver also provides an absolute input class device, allowing
the laptop to act as a pinball machine-esque joystick. On HP laptops,
if the led infrastructure is activated, support for a led indicating
disk protection will be provided as hp:red:hddprotection.
This driver can also be built as modules. If so, the core module
will be called lis3lv02d and a specific module for HP laptops will be
called hp_accel.
Say Y here if you have an applicable laptop and want to experience
the awesome power of lis3lv02d.
config SENSORS_LIS3_SPI config SENSORS_LIS3_SPI
tristate "STMicroeletronics LIS3LV02Dx three-axis digital accelerometer (SPI)" tristate "STMicroeletronics LIS3LV02Dx three-axis digital accelerometer (SPI)"
depends on !ACPI && SPI_MASTER && INPUT depends on !ACPI && SPI_MASTER && INPUT
...@@ -1034,13 +1015,50 @@ config SENSORS_APPLESMC ...@@ -1034,13 +1015,50 @@ config SENSORS_APPLESMC
Say Y here if you have an applicable laptop and want to experience Say Y here if you have an applicable laptop and want to experience
the awesome power of applesmc. the awesome power of applesmc.
config HWMON_DEBUG_CHIP if ACPI
bool "Hardware Monitoring Chip debugging messages"
comment "ACPI drivers"
config SENSORS_ATK0110
tristate "ASUS ATK0110"
depends on X86 && EXPERIMENTAL
help
If you say yes here you get support for the ACPI hardware
monitoring interface found in many ASUS motherboards. This
driver will provide readings of fans, voltages and temperatures
through the system firmware.
This driver can also be built as a module. If so, the module
will be called asus_atk0110.
config SENSORS_LIS3LV02D
tristate "STMicroeletronics LIS3LV02Dx three-axis digital accelerometer"
depends on INPUT
select INPUT_POLLDEV
select NEW_LEDS
select LEDS_CLASS
default n default n
help help
Say Y here if you want the I2C chip drivers to produce a bunch of This driver provides support for the LIS3LV02Dx accelerometer. In
debug messages to the system log. Select this if you are having particular, it can be found in a number of HP laptops, which have the
a problem with I2C support and want to see more of what is going "Mobile Data Protection System 3D" or "3D DriveGuard" feature. On such
on. systems the driver should load automatically (via ACPI). The
accelerometer might also be found in other systems, connected via SPI
or I2C. The accelerometer data is readable via
/sys/devices/platform/lis3lv02d.
This driver also provides an absolute input class device, allowing
the laptop to act as a pinball machine-esque joystick. On HP laptops,
if the led infrastructure is activated, support for a led indicating
disk protection will be provided as hp:red:hddprotection.
This driver can also be built as modules. If so, the core module
will be called lis3lv02d and a specific module for HP laptops will be
called hp_accel.
Say Y here if you have an applicable laptop and want to experience
the awesome power of lis3lv02d.
endif # ACPI
endif # HWMON endif # HWMON
...@@ -5,6 +5,10 @@ ...@@ -5,6 +5,10 @@
obj-$(CONFIG_HWMON) += hwmon.o obj-$(CONFIG_HWMON) += hwmon.o
obj-$(CONFIG_HWMON_VID) += hwmon-vid.o obj-$(CONFIG_HWMON_VID) += hwmon-vid.o
# APCI drivers
obj-$(CONFIG_SENSORS_ATK0110) += asus_atk0110.o
# Native drivers
# asb100, then w83781d go first, as they can override other drivers' addresses. # asb100, then w83781d go first, as they can override other drivers' addresses.
obj-$(CONFIG_SENSORS_ASB100) += asb100.o obj-$(CONFIG_SENSORS_ASB100) += asb100.o
obj-$(CONFIG_SENSORS_W83627HF) += w83627hf.o obj-$(CONFIG_SENSORS_W83627HF) += w83627hf.o
...@@ -29,10 +33,8 @@ obj-$(CONFIG_SENSORS_ADT7462) += adt7462.o ...@@ -29,10 +33,8 @@ obj-$(CONFIG_SENSORS_ADT7462) += adt7462.o
obj-$(CONFIG_SENSORS_ADT7470) += adt7470.o obj-$(CONFIG_SENSORS_ADT7470) += adt7470.o
obj-$(CONFIG_SENSORS_ADT7473) += adt7473.o obj-$(CONFIG_SENSORS_ADT7473) += adt7473.o
obj-$(CONFIG_SENSORS_ADT7475) += adt7475.o obj-$(CONFIG_SENSORS_ADT7475) += adt7475.o
obj-$(CONFIG_SENSORS_APPLESMC) += applesmc.o obj-$(CONFIG_SENSORS_APPLESMC) += applesmc.o
obj-$(CONFIG_SENSORS_AMS) += ams/ obj-$(CONFIG_SENSORS_AMS) += ams/
obj-$(CONFIG_SENSORS_ATK0110) += asus_atk0110.o
obj-$(CONFIG_SENSORS_ATXP1) += atxp1.o obj-$(CONFIG_SENSORS_ATXP1) += atxp1.o
obj-$(CONFIG_SENSORS_CORETEMP) += coretemp.o obj-$(CONFIG_SENSORS_CORETEMP) += coretemp.o
obj-$(CONFIG_SENSORS_DME1737) += dme1737.o obj-$(CONFIG_SENSORS_DME1737) += dme1737.o
...@@ -84,6 +86,7 @@ obj-$(CONFIG_SENSORS_SMSC47M1) += smsc47m1.o ...@@ -84,6 +86,7 @@ obj-$(CONFIG_SENSORS_SMSC47M1) += smsc47m1.o
obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o
obj-$(CONFIG_SENSORS_THMC50) += thmc50.o obj-$(CONFIG_SENSORS_THMC50) += thmc50.o
obj-$(CONFIG_SENSORS_TMP401) += tmp401.o obj-$(CONFIG_SENSORS_TMP401) += tmp401.o
obj-$(CONFIG_SENSORS_TMP421) += tmp421.o
obj-$(CONFIG_SENSORS_VIA686A) += via686a.o obj-$(CONFIG_SENSORS_VIA686A) += via686a.o
obj-$(CONFIG_SENSORS_VT1211) += vt1211.o obj-$(CONFIG_SENSORS_VT1211) += vt1211.o
obj-$(CONFIG_SENSORS_VT8231) += vt8231.o obj-$(CONFIG_SENSORS_VT8231) += vt8231.o
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
#include <linux/hwmon.h> #include <linux/hwmon.h>
#include <linux/hwmon-sysfs.h> #include <linux/hwmon-sysfs.h>
#include <linux/dmi.h> #include <linux/dmi.h>
#include <asm/io.h> #include <linux/io.h>
/* Banks */ /* Banks */
#define ABIT_UGURU_ALARM_BANK 0x20 /* 1x 3 bytes */ #define ABIT_UGURU_ALARM_BANK 0x20 /* 1x 3 bytes */
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
#include <linux/hwmon.h> #include <linux/hwmon.h>
#include <linux/hwmon-sysfs.h> #include <linux/hwmon-sysfs.h>
#include <linux/dmi.h> #include <linux/dmi.h>
#include <asm/io.h> #include <linux/io.h>
/* uGuru3 bank addresses */ /* uGuru3 bank addresses */
#define ABIT_UGURU3_SETTINGS_BANK 0x01 #define ABIT_UGURU3_SETTINGS_BANK 0x01
...@@ -117,9 +117,12 @@ struct abituguru3_sensor_info { ...@@ -117,9 +117,12 @@ struct abituguru3_sensor_info {
int offset; int offset;
}; };
/* Avoid use of flexible array members */
#define ABIT_UGURU3_MAX_DMI_NAMES 2
struct abituguru3_motherboard_info { struct abituguru3_motherboard_info {
u16 id; u16 id;
const char *dmi_name; const char *dmi_name[ABIT_UGURU3_MAX_DMI_NAMES + 1];
/* + 1 -> end of sensors indicated by a sensor with name == NULL */ /* + 1 -> end of sensors indicated by a sensor with name == NULL */
struct abituguru3_sensor_info sensors[ABIT_UGURU3_MAX_NO_SENSORS + 1]; struct abituguru3_sensor_info sensors[ABIT_UGURU3_MAX_NO_SENSORS + 1];
}; };
...@@ -164,7 +167,7 @@ struct abituguru3_data { ...@@ -164,7 +167,7 @@ struct abituguru3_data {
/* Constants */ /* Constants */
static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ 0x000C, NULL /* Unknown, need DMI string */, { { 0x000C, { NULL } /* Unknown, need DMI string */, {
{ "CPU Core", 0, 0, 10, 1, 0 }, { "CPU Core", 0, 0, 10, 1, 0 },
{ "DDR", 1, 0, 10, 1, 0 }, { "DDR", 1, 0, 10, 1, 0 },
{ "DDR VTT", 2, 0, 10, 1, 0 }, { "DDR VTT", 2, 0, 10, 1, 0 },
...@@ -186,7 +189,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { ...@@ -186,7 +189,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ "AUX1 Fan", 35, 2, 60, 1, 0 }, { "AUX1 Fan", 35, 2, 60, 1, 0 },
{ NULL, 0, 0, 0, 0, 0 } } { NULL, 0, 0, 0, 0, 0 } }
}, },
{ 0x000D, NULL /* Abit AW8, need DMI string */, { { 0x000D, { NULL } /* Abit AW8, need DMI string */, {
{ "CPU Core", 0, 0, 10, 1, 0 }, { "CPU Core", 0, 0, 10, 1, 0 },
{ "DDR", 1, 0, 10, 1, 0 }, { "DDR", 1, 0, 10, 1, 0 },
{ "DDR VTT", 2, 0, 10, 1, 0 }, { "DDR VTT", 2, 0, 10, 1, 0 },
...@@ -215,7 +218,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { ...@@ -215,7 +218,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ "AUX5 Fan", 39, 2, 60, 1, 0 }, { "AUX5 Fan", 39, 2, 60, 1, 0 },
{ NULL, 0, 0, 0, 0, 0 } } { NULL, 0, 0, 0, 0, 0 } }
}, },
{ 0x000E, NULL /* AL-8, need DMI string */, { { 0x000E, { NULL } /* AL-8, need DMI string */, {
{ "CPU Core", 0, 0, 10, 1, 0 }, { "CPU Core", 0, 0, 10, 1, 0 },
{ "DDR", 1, 0, 10, 1, 0 }, { "DDR", 1, 0, 10, 1, 0 },
{ "DDR VTT", 2, 0, 10, 1, 0 }, { "DDR VTT", 2, 0, 10, 1, 0 },
...@@ -236,7 +239,8 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { ...@@ -236,7 +239,8 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ "SYS Fan", 34, 2, 60, 1, 0 }, { "SYS Fan", 34, 2, 60, 1, 0 },
{ NULL, 0, 0, 0, 0, 0 } } { NULL, 0, 0, 0, 0, 0 } }
}, },
{ 0x000F, NULL /* Unknown, need DMI string */, { { 0x000F, { NULL } /* Unknown, need DMI string */, {
{ "CPU Core", 0, 0, 10, 1, 0 }, { "CPU Core", 0, 0, 10, 1, 0 },
{ "DDR", 1, 0, 10, 1, 0 }, { "DDR", 1, 0, 10, 1, 0 },
{ "DDR VTT", 2, 0, 10, 1, 0 }, { "DDR VTT", 2, 0, 10, 1, 0 },
...@@ -257,7 +261,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { ...@@ -257,7 +261,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ "SYS Fan", 34, 2, 60, 1, 0 }, { "SYS Fan", 34, 2, 60, 1, 0 },
{ NULL, 0, 0, 0, 0, 0 } } { NULL, 0, 0, 0, 0, 0 } }
}, },
{ 0x0010, NULL /* Abit NI8 SLI GR, need DMI string */, { { 0x0010, { NULL } /* Abit NI8 SLI GR, need DMI string */, {
{ "CPU Core", 0, 0, 10, 1, 0 }, { "CPU Core", 0, 0, 10, 1, 0 },
{ "DDR", 1, 0, 10, 1, 0 }, { "DDR", 1, 0, 10, 1, 0 },
{ "DDR VTT", 2, 0, 10, 1, 0 }, { "DDR VTT", 2, 0, 10, 1, 0 },
...@@ -279,7 +283,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { ...@@ -279,7 +283,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ "OTES1 Fan", 36, 2, 60, 1, 0 }, { "OTES1 Fan", 36, 2, 60, 1, 0 },
{ NULL, 0, 0, 0, 0, 0 } } { NULL, 0, 0, 0, 0, 0 } }
}, },
{ 0x0011, "AT8 32X", { { 0x0011, { "AT8 32X", NULL }, {
{ "CPU Core", 0, 0, 10, 1, 0 }, { "CPU Core", 0, 0, 10, 1, 0 },
{ "DDR", 1, 0, 20, 1, 0 }, { "DDR", 1, 0, 20, 1, 0 },
{ "DDR VTT", 2, 0, 10, 1, 0 }, { "DDR VTT", 2, 0, 10, 1, 0 },
...@@ -306,7 +310,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { ...@@ -306,7 +310,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ "AUX3 Fan", 37, 2, 60, 1, 0 }, { "AUX3 Fan", 37, 2, 60, 1, 0 },
{ NULL, 0, 0, 0, 0, 0 } } { NULL, 0, 0, 0, 0, 0 } }
}, },
{ 0x0012, NULL /* Abit AN8 32X, need DMI string */, { { 0x0012, { NULL } /* Abit AN8 32X, need DMI string */, {
{ "CPU Core", 0, 0, 10, 1, 0 }, { "CPU Core", 0, 0, 10, 1, 0 },
{ "DDR", 1, 0, 20, 1, 0 }, { "DDR", 1, 0, 20, 1, 0 },
{ "DDR VTT", 2, 0, 10, 1, 0 }, { "DDR VTT", 2, 0, 10, 1, 0 },
...@@ -328,7 +332,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { ...@@ -328,7 +332,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ "AUX1 Fan", 36, 2, 60, 1, 0 }, { "AUX1 Fan", 36, 2, 60, 1, 0 },
{ NULL, 0, 0, 0, 0, 0 } } { NULL, 0, 0, 0, 0, 0 } }
}, },
{ 0x0013, NULL /* Abit AW8D, need DMI string */, { { 0x0013, { NULL } /* Abit AW8D, need DMI string */, {
{ "CPU Core", 0, 0, 10, 1, 0 }, { "CPU Core", 0, 0, 10, 1, 0 },
{ "DDR", 1, 0, 10, 1, 0 }, { "DDR", 1, 0, 10, 1, 0 },
{ "DDR VTT", 2, 0, 10, 1, 0 }, { "DDR VTT", 2, 0, 10, 1, 0 },
...@@ -357,7 +361,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { ...@@ -357,7 +361,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ "AUX5 Fan", 39, 2, 60, 1, 0 }, { "AUX5 Fan", 39, 2, 60, 1, 0 },
{ NULL, 0, 0, 0, 0, 0 } } { NULL, 0, 0, 0, 0, 0 } }
}, },
{ 0x0014, "AB9", /* + AB9 Pro */ { { 0x0014, { "AB9", "AB9 Pro", NULL }, {
{ "CPU Core", 0, 0, 10, 1, 0 }, { "CPU Core", 0, 0, 10, 1, 0 },
{ "DDR", 1, 0, 10, 1, 0 }, { "DDR", 1, 0, 10, 1, 0 },
{ "DDR VTT", 2, 0, 10, 1, 0 }, { "DDR VTT", 2, 0, 10, 1, 0 },
...@@ -378,7 +382,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { ...@@ -378,7 +382,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ "SYS Fan", 34, 2, 60, 1, 0 }, { "SYS Fan", 34, 2, 60, 1, 0 },
{ NULL, 0, 0, 0, 0, 0 } } { NULL, 0, 0, 0, 0, 0 } }
}, },
{ 0x0015, NULL /* Unknown, need DMI string */, { { 0x0015, { NULL } /* Unknown, need DMI string */, {
{ "CPU Core", 0, 0, 10, 1, 0 }, { "CPU Core", 0, 0, 10, 1, 0 },
{ "DDR", 1, 0, 20, 1, 0 }, { "DDR", 1, 0, 20, 1, 0 },
{ "DDR VTT", 2, 0, 10, 1, 0 }, { "DDR VTT", 2, 0, 10, 1, 0 },
...@@ -402,7 +406,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { ...@@ -402,7 +406,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ "AUX3 Fan", 36, 2, 60, 1, 0 }, { "AUX3 Fan", 36, 2, 60, 1, 0 },
{ NULL, 0, 0, 0, 0, 0 } } { NULL, 0, 0, 0, 0, 0 } }
}, },
{ 0x0016, "AW9D-MAX", { { 0x0016, { "AW9D-MAX", NULL }, {
{ "CPU Core", 0, 0, 10, 1, 0 }, { "CPU Core", 0, 0, 10, 1, 0 },
{ "DDR2", 1, 0, 20, 1, 0 }, { "DDR2", 1, 0, 20, 1, 0 },
{ "DDR2 VTT", 2, 0, 10, 1, 0 }, { "DDR2 VTT", 2, 0, 10, 1, 0 },
...@@ -430,7 +434,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { ...@@ -430,7 +434,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ "OTES1 Fan", 38, 2, 60, 1, 0 }, { "OTES1 Fan", 38, 2, 60, 1, 0 },
{ NULL, 0, 0, 0, 0, 0 } } { NULL, 0, 0, 0, 0, 0 } }
}, },
{ 0x0017, NULL /* Unknown, need DMI string */, { { 0x0017, { NULL } /* Unknown, need DMI string */, {
{ "CPU Core", 0, 0, 10, 1, 0 }, { "CPU Core", 0, 0, 10, 1, 0 },
{ "DDR2", 1, 0, 20, 1, 0 }, { "DDR2", 1, 0, 20, 1, 0 },
{ "DDR2 VTT", 2, 0, 10, 1, 0 }, { "DDR2 VTT", 2, 0, 10, 1, 0 },
...@@ -455,7 +459,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { ...@@ -455,7 +459,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ "AUX3 FAN", 37, 2, 60, 1, 0 }, { "AUX3 FAN", 37, 2, 60, 1, 0 },
{ NULL, 0, 0, 0, 0, 0 } } { NULL, 0, 0, 0, 0, 0 } }
}, },
{ 0x0018, "AB9 QuadGT", { { 0x0018, { "AB9 QuadGT", NULL }, {
{ "CPU Core", 0, 0, 10, 1, 0 }, { "CPU Core", 0, 0, 10, 1, 0 },
{ "DDR2", 1, 0, 20, 1, 0 }, { "DDR2", 1, 0, 20, 1, 0 },
{ "DDR2 VTT", 2, 0, 10, 1, 0 }, { "DDR2 VTT", 2, 0, 10, 1, 0 },
...@@ -482,7 +486,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { ...@@ -482,7 +486,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ "AUX3 Fan", 36, 2, 60, 1, 0 }, { "AUX3 Fan", 36, 2, 60, 1, 0 },
{ NULL, 0, 0, 0, 0, 0 } } { NULL, 0, 0, 0, 0, 0 } }
}, },
{ 0x0019, "IN9 32X MAX", { { 0x0019, { "IN9 32X MAX", NULL }, {
{ "CPU Core", 7, 0, 10, 1, 0 }, { "CPU Core", 7, 0, 10, 1, 0 },
{ "DDR2", 13, 0, 20, 1, 0 }, { "DDR2", 13, 0, 20, 1, 0 },
{ "DDR2 VTT", 14, 0, 10, 1, 0 }, { "DDR2 VTT", 14, 0, 10, 1, 0 },
...@@ -509,7 +513,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { ...@@ -509,7 +513,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ "AUX3 FAN", 36, 2, 60, 1, 0 }, { "AUX3 FAN", 36, 2, 60, 1, 0 },
{ NULL, 0, 0, 0, 0, 0 } } { NULL, 0, 0, 0, 0, 0 } }
}, },
{ 0x001A, "IP35 Pro", { { 0x001A, { "IP35 Pro", "IP35 Pro XE", NULL }, {
{ "CPU Core", 0, 0, 10, 1, 0 }, { "CPU Core", 0, 0, 10, 1, 0 },
{ "DDR2", 1, 0, 20, 1, 0 }, { "DDR2", 1, 0, 20, 1, 0 },
{ "DDR2 VTT", 2, 0, 10, 1, 0 }, { "DDR2 VTT", 2, 0, 10, 1, 0 },
...@@ -537,7 +541,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = { ...@@ -537,7 +541,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
{ "AUX4 Fan", 37, 2, 60, 1, 0 }, { "AUX4 Fan", 37, 2, 60, 1, 0 },
{ NULL, 0, 0, 0, 0, 0 } } { NULL, 0, 0, 0, 0, 0 } }
}, },