From 5eb8aa161d685768623c11ee3753321f23ac74e5 Mon Sep 17 00:00:00 2001 From: Rudolf Marek Date: Tue, 23 May 2006 11:23:53 +0000 Subject: [PATCH] Add ICH8 support. 2.6 backport git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@3304 7894878c-1315-0410-8ee3-d5d059ff63e0 --- CHANGES | 1 + doc/busses/i2c-i801 | 4 ++-- kernel/busses/i2c-i801.c | 16 +++++++++++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index b6d75eec..9f0495f9 100644 --- a/CHANGES +++ b/CHANGES @@ -13,6 +13,7 @@ lm_sensors CHANGES file Module i2c-amd756-s4882: Improve static semaphore initialization (2.6 backport) Module i2c-i801: Disable PEC mode after every transaction (2.6 backport) + Add ICH8 support (2.6 backport) Module i2c-piix4: Add ServerWorks HT-1000 support (2.6 backport) Module w83781d: Use real-time alarm registers when possible (2.6 backport) Program decode-dimms.pl: Decode depending on the memory type diff --git a/doc/busses/i2c-i801 b/doc/busses/i2c-i801 index f1a429c8..20e6346d 100644 --- a/doc/busses/i2c-i801 +++ b/doc/busses/i2c-i801 @@ -12,9 +12,9 @@ Supported adapters: * Intel 82801CA/CAM (ICH3) * Intel 82801DB (ICH4) * Intel 82801EB/ER (ICH5) - * Intel 6300ESB + * Intel 6300ESB/ESB2 * Intel 82801FB/FR/FW/FRW (ICH6) - * Intel ICH7 + * Intel ICH7/ICH8 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 4fc5e385..ed72d27a 100644 --- a/kernel/busses/i2c-i801.c +++ b/kernel/busses/i2c-i801.c @@ -32,6 +32,8 @@ ICH6 266A ("") ICH7 27DA ("") ESB2 269B ("") + ICH8 283E ("") + 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. @@ -91,6 +93,11 @@ #define PCI_DEVICE_ID_INTEL_ICH7_17 0x27da #endif +/* ICH8 is undefined */ +#ifndef PCI_DEVICE_ID_INTEL_ICH8_5 +#define PCI_DEVICE_ID_INTEL_ICH8_5 0x283e +#endif + #ifdef I2C_CLIENT_PEC #define HAVE_PEC #endif @@ -169,7 +176,8 @@ static int i801_setup(struct pci_dev *dev) dev->device == PCI_DEVICE_ID_INTEL_ESB_4 || dev->device == PCI_DEVICE_ID_INTEL_ESB2_17 || dev->device == PCI_DEVICE_ID_INTEL_ICH6_16 || - dev->device == PCI_DEVICE_ID_INTEL_ICH7_17) + dev->device == PCI_DEVICE_ID_INTEL_ICH7_17 || + dev->device == PCI_DEVICE_ID_INTEL_ICH8_5) isich4 = 1; else isich4 = 0; @@ -665,6 +673,12 @@ 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_ICH8_5, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + }, { 0, } };