diff --git a/CHANGES b/CHANGES index 061ae4e3..5c170a92 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,7 @@ SVN-HEAD Module asb100: Remove some dead code (2.6 backport) Module i2c-amd756-s4882: Fix an error path (2.6 backport) Module i2c-i801: Drop broken I2C block read support + Add ICH10 support Module i2c-piix4: Minor cleanups (2.6 backport) Module i2c-sis5595: Minor cleanups (2.6 backport) Module lm75: Fix an incorrect comment (2.6 backport) diff --git a/README b/README index 40576fd9..7834073a 100644 --- a/README +++ b/README @@ -51,7 +51,7 @@ At least the following I2C/SMBus adapters are supported: DEC 21272/21274 (Tsunami/Typhoon - on Alpha boards) Intel ICH/ICH0/ICH2/ICH3/ICH4/ICH5/ICH6/ICH7/ICH8/ICH9 (82801xx) Intel 6300ESB, 631xESB/632xESB (ESB2) - Intel Tolapai + Intel Tolapai, ICH10 Intel PIIX4 (used in many Intel chipsets) Intel I810/I810E/I815/I845G GMCH Intel 82443MX (440MX) diff --git a/doc/busses/i2c-i801 b/doc/busses/i2c-i801 index 831bfee0..831dd816 100644 --- a/doc/busses/i2c-i801 +++ b/doc/busses/i2c-i801 @@ -16,6 +16,7 @@ Supported adapters: * Intel 82801FB/FR/FW/FRW (ICH6) * Intel ICH7/ICH8/ICH9 * Intel Tolapai + * Intel ICH10 Datasheets: Publicly available at the Intel website Authors: Frodo Looijaard , Philip Edelbrock diff --git a/kernel/busses/i2c-i801.c b/kernel/busses/i2c-i801.c index f389b3a8..2ca74164 100644 --- a/kernel/busses/i2c-i801.c +++ b/kernel/busses/i2c-i801.c @@ -34,6 +34,9 @@ ESB2 269B ("") ICH8 283E ("") ICH9 2930 ("") + Tolapai 5032 ("") + ICH10 3A30 ("") + ICH10 3A60 ("") 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 @@ -108,6 +111,14 @@ #define PCI_DEVICE_ID_INTEL_TOLAPAI_1 0x5032 #endif +#ifndef PCI_DEVICE_ID_INTEL_ICH10_4 +#define PCI_DEVICE_ID_INTEL_ICH10_4 0x3a30 +#endif + +#ifndef PCI_DEVICE_ID_INTEL_ICH10_5 +#define PCI_DEVICE_ID_INTEL_ICH10_5 0x3a60 +#endif + #ifdef I2C_CLIENT_PEC #define HAVE_PEC #endif @@ -179,7 +190,9 @@ static int __devinit i801_setup(struct pci_dev *dev) dev->device == PCI_DEVICE_ID_INTEL_ICH7_17 || dev->device == PCI_DEVICE_ID_INTEL_ICH8_5 || dev->device == PCI_DEVICE_ID_INTEL_ICH9_6 || - dev->device == PCI_DEVICE_ID_INTEL_TOLAPAI_1) + dev->device == PCI_DEVICE_ID_INTEL_TOLAPAI_1 || + dev->device == PCI_DEVICE_ID_INTEL_ICH10_4 || + dev->device == PCI_DEVICE_ID_INTEL_ICH10_5) isich4 = 1; else isich4 = 0; @@ -677,6 +690,18 @@ static struct pci_device_id i801_ids[] __devinitdata = { .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, }, + { + .vendor = PCI_VENDOR_ID_INTEL, + .device = PCI_DEVICE_ID_INTEL_ICH10_4, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + }, + { + .vendor = PCI_VENDOR_ID_INTEL, + .device = PCI_DEVICE_ID_INTEL_ICH10_5, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + }, { 0, } };