i2c-piix4: Add AMD SB900 SMBus device ID
Crane Cai [Fri, 18 Sep 2009 20:45:50 +0000 (22:45 +0200)]
Add new SMBus device ID for AMD SB900.

Signed-off-by: Crane Cai <crane.cai@amd.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>

Documentation/i2c/busses/i2c-piix4
drivers/i2c/busses/Kconfig
drivers/i2c/busses/i2c-piix4.c
include/linux/pci_ids.h

index f889481..c5b37c5 100644 (file)
@@ -8,6 +8,8 @@ Supported adapters:
     Datasheet: Only available via NDA from ServerWorks
   * ATI IXP200, IXP300, IXP400, SB600, SB700 and SB800 southbridges
     Datasheet: Not publicly available
+  * AMD SB900
+    Datasheet: Not publicly available
   * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge
     Datasheet: Publicly available at the SMSC website http://www.smsc.com
 
index 8206442..bb216c5 100644 (file)
@@ -113,7 +113,7 @@ config I2C_ISCH
          will be called i2c-isch.
 
 config I2C_PIIX4
-       tristate "Intel PIIX4 and compatible (ATI/Serverworks/Broadcom/SMSC)"
+       tristate "Intel PIIX4 and compatible (ATI/AMD/Serverworks/Broadcom/SMSC)"
        depends on PCI
        help
          If you say yes to this option, support will be included for the Intel
@@ -128,6 +128,7 @@ config I2C_PIIX4
            ATI SB600
            ATI SB700
            ATI SB800
+           AMD SB900
            Serverworks OSB4
            Serverworks CSB5
            Serverworks CSB6
index 0249a7d..a782c7a 100644 (file)
@@ -22,6 +22,7 @@
        Intel PIIX4, 440MX
        Serverworks OSB4, CSB5, CSB6, HT-1000, HT-1100
        ATI IXP200, IXP300, IXP400, SB600, SB700, SB800
+       AMD SB900
        SMSC Victory66
 
    Note: we assume there can only be one device, with one SMBus interface.
@@ -479,6 +480,7 @@ static struct pci_device_id piix4_ids[] = {
        { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP300_SMBUS) },
        { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP400_SMBUS) },
        { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS) },
+       { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_SB900_SMBUS) },
        { PCI_DEVICE(PCI_VENDOR_ID_SERVERWORKS,
                     PCI_DEVICE_ID_SERVERWORKS_OSB4) },
        { PCI_DEVICE(PCI_VENDOR_ID_SERVERWORKS,
@@ -499,9 +501,10 @@ static int __devinit piix4_probe(struct pci_dev *dev,
 {
        int retval;
 
-       if ((dev->vendor == PCI_VENDOR_ID_ATI) &&
-           (dev->device == PCI_DEVICE_ID_ATI_SBX00_SMBUS) &&
-           (dev->revision >= 0x40))
+       if ((dev->vendor == PCI_VENDOR_ID_ATI &&
+            dev->device == PCI_DEVICE_ID_ATI_SBX00_SMBUS &&
+            dev->revision >= 0x40) ||
+           dev->vendor == PCI_VENDOR_ID_AMD)
                /* base address location etc changed in SB800 */
                retval = piix4_setup_sb800(dev, id);
        else
index 3b6b788..7803565 100644 (file)
 #define PCI_DEVICE_ID_AMD_8131_BRIDGE  0x7450
 #define PCI_DEVICE_ID_AMD_8131_APIC    0x7451
 #define PCI_DEVICE_ID_AMD_8132_BRIDGE  0x7458
+#define PCI_DEVICE_ID_AMD_SB900_SMBUS  0x780b
 #define PCI_DEVICE_ID_AMD_CS5535_IDE    0x208F
 #define PCI_DEVICE_ID_AMD_CS5536_ISA    0x2090
 #define PCI_DEVICE_ID_AMD_CS5536_FLASH  0x2091