From 6773d8e4e0bc0ca5b2951393fdee0306465b578b Mon Sep 17 00:00:00 2001 From: "Mark D. Studebaker" Date: Wed, 8 Dec 2004 21:20:13 +0000 Subject: [PATCH] add support for upcoming ICH7 based on information from Jason Gaston git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@2793 7894878c-1315-0410-8ee3-d5d059ff63e0 --- CHANGES | 5 ++++- doc/busses/i2c-i801 | 19 ++++++++++++------- kernel/busses/i2c-i801.c | 10 +++++++++- prog/detect/sensors-detect | 10 +++++++++- 4 files changed, 34 insertions(+), 10 deletions(-) diff --git a/CHANGES b/CHANGES index c57050af..dcc33a6c 100644 --- a/CHANGES +++ b/CHANGES @@ -30,6 +30,9 @@ ask CVS about it: Module bmcsensors: Support function 1/x Module i2c-amd756: Display the real bus name Module i2c-amd756-s4882: New; SMBus multiplexing on the Tyan S4882 + Module i2c-i801: Support i2c block read (ICH5 and higher) + Add PEC support for ICH6 + Add support for ICH7 Module i2c-ipmb: Remove from build since it doesn't work Module icspll: Fix compilation Module lm63: New driver for the National Semiconductor LM63 @@ -62,7 +65,7 @@ ask CVS about it: Simplify the configuration file opening code Program sensors-detect: Improve LM63 detection Discard IBM Thinkpad detection code - Add PCA9556, LPC47B397 detection + Add PCA9556, LPC47B397, ICH7 detection 2.8.8 (20041007) diff --git a/doc/busses/i2c-i801 b/doc/busses/i2c-i801 index a82cfbd7..f1a429c8 100644 --- a/doc/busses/i2c-i801 +++ b/doc/busses/i2c-i801 @@ -2,7 +2,8 @@ Kernel driver `i2c-i801.o' Status: Tested and stable. Block reads/writes lightly tested. - ICH4 HW PEC support Beta. + HW PEC support Beta. + I2C Block Read support Beta. Supported adapters: * Intel 82801AA and 82801AB (ICH and ICH0 - part of the @@ -10,13 +11,14 @@ Supported adapters: * Intel 82801BA (ICH2 - part of the '815E' chipset) * Intel 82801CA/CAM (ICH3) * Intel 82801DB (ICH4) - * Intel 82801EB (ICH5) + * Intel 82801EB/ER (ICH5) * Intel 6300ESB - * Intel ICH6 + * Intel 82801FB/FR/FW/FRW (ICH6) + * Intel ICH7 Datasheets: Publicly available at the Intel website -Author: Frodo Looijaard , Philip Edelbrock - , and Mark Studebaker +Authors: Frodo Looijaard , Philip Edelbrock + , and Mark Studebaker Module Parameters @@ -30,7 +32,8 @@ Description ----------- The ICH (properly known as the 82801AA), ICH0 (82801AB), -ICH2 (82801BA) and ICH3 (82801CA/CAM) are Intel chips that are a part of +ICH2 (82801BA), ICH3 (82801CA/CAM) and later devices +are Intel chips that are a part of Intel's '810' chipset for Celeron-based PCs, '810E' chipset for Pentium-based PCs, '815E' chipset, and others. @@ -67,10 +70,12 @@ Not supported. I2C Block Read Support ---------------------- -The devices support a special 3-byte address (command code +The ICH4 supports a special 3-byte address (command code plus 2 more bytes) I2C block read. The driver and the kernel i2c protocol stack do not support this. +The ICH5 and higher support a standard 1-byte address (command code) +I2C block read. The driver does support this. SMBus 2.0 Support diff --git a/kernel/busses/i2c-i801.c b/kernel/busses/i2c-i801.c index a66fbba7..022d30e4 100644 --- a/kernel/busses/i2c-i801.c +++ b/kernel/busses/i2c-i801.c @@ -30,6 +30,7 @@ 82801EB 24D3 (HW PEC supported, 32 byte buffer not supported) 6300ESB 25A4 ("") ICH6 266A ("") + ICH7 27DA ("") This driver supports several versions of Intel's I/O Controller Hubs (ICH). For SMBus support, they are similar to the PIIX4 and are part of Intel's '810' and other chipsets. @@ -134,7 +135,8 @@ static int i801_setup(struct pci_dev *dev) if (dev->device == PCI_DEVICE_ID_INTEL_82801DB_3 || dev->device == 0x24d3 || dev->device == 0x25a4 || - dev->device == 0x266a) + dev->device == 0x266a || + dev->device == 0x27da) isich4 = 1; else isich4 = 0; @@ -633,6 +635,12 @@ static struct pci_device_id i801_ids[] __devinitdata = { .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, }, + { + .vendor = PCI_VENDOR_ID_INTEL, + .device = 0x27da, /* ICH7 */ + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + }, { 0, } }; diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect index af9f0205..637b4e04 100755 --- a/prog/detect/sensors-detect +++ b/prog/detect/sensors-detect @@ -134,7 +134,15 @@ use vars qw(@pci_adapters @chip_ids @superio_ids); vendid => 0x8086, devid => 0x266A, func => 3, - procid => "Intel ICH6", + procid => "Intel 82801FB ICH6", + driver => "i2c-i801", + match => sub { $_[0] =~ /^SMBus I801 adapter at [0-9a-f]{4}/ }, + } , + { + vendid => 0x8086, + devid => 0x27DA, + func => 3, + procid => "Intel ICH7", driver => "i2c-i801", match => sub { $_[0] =~ /^SMBus I801 adapter at [0-9a-f]{4}/ }, } ,