diff options
-rw-r--r-- | Documentation/i2c/busses/i2c-piix4 | 2 | ||||
-rw-r--r-- | drivers/i2c/busses/Kconfig | 3 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-piix4.c | 9 | ||||
-rw-r--r-- | include/linux/pci_ids.h | 1 |
4 files changed, 11 insertions, 4 deletions
diff --git a/Documentation/i2c/busses/i2c-piix4 b/Documentation/i2c/busses/i2c-piix4 index f889481762b5..c5b37c570554 100644 --- a/Documentation/i2c/busses/i2c-piix4 +++ b/Documentation/i2c/busses/i2c-piix4 | |||
@@ -8,6 +8,8 @@ Supported adapters: | |||
8 | Datasheet: Only available via NDA from ServerWorks | 8 | Datasheet: Only available via NDA from ServerWorks |
9 | * ATI IXP200, IXP300, IXP400, SB600, SB700 and SB800 southbridges | 9 | * ATI IXP200, IXP300, IXP400, SB600, SB700 and SB800 southbridges |
10 | Datasheet: Not publicly available | 10 | Datasheet: Not publicly available |
11 | * AMD SB900 | ||
12 | Datasheet: Not publicly available | ||
11 | * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge | 13 | * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge |
12 | Datasheet: Publicly available at the SMSC website http://www.smsc.com | 14 | Datasheet: Publicly available at the SMSC website http://www.smsc.com |
13 | 15 | ||
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig index 8206442fbabd..bb216c5fe30e 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig | |||
@@ -113,7 +113,7 @@ config I2C_ISCH | |||
113 | will be called i2c-isch. | 113 | will be called i2c-isch. |
114 | 114 | ||
115 | config I2C_PIIX4 | 115 | config I2C_PIIX4 |
116 | tristate "Intel PIIX4 and compatible (ATI/Serverworks/Broadcom/SMSC)" | 116 | tristate "Intel PIIX4 and compatible (ATI/AMD/Serverworks/Broadcom/SMSC)" |
117 | depends on PCI | 117 | depends on PCI |
118 | help | 118 | help |
119 | If you say yes to this option, support will be included for the Intel | 119 | If you say yes to this option, support will be included for the Intel |
@@ -128,6 +128,7 @@ config I2C_PIIX4 | |||
128 | ATI SB600 | 128 | ATI SB600 |
129 | ATI SB700 | 129 | ATI SB700 |
130 | ATI SB800 | 130 | ATI SB800 |
131 | AMD SB900 | ||
131 | Serverworks OSB4 | 132 | Serverworks OSB4 |
132 | Serverworks CSB5 | 133 | Serverworks CSB5 |
133 | Serverworks CSB6 | 134 | Serverworks CSB6 |
diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c index 0249a7d762b9..a782c7a08f9e 100644 --- a/drivers/i2c/busses/i2c-piix4.c +++ b/drivers/i2c/busses/i2c-piix4.c | |||
@@ -22,6 +22,7 @@ | |||
22 | Intel PIIX4, 440MX | 22 | Intel PIIX4, 440MX |
23 | Serverworks OSB4, CSB5, CSB6, HT-1000, HT-1100 | 23 | Serverworks OSB4, CSB5, CSB6, HT-1000, HT-1100 |
24 | ATI IXP200, IXP300, IXP400, SB600, SB700, SB800 | 24 | ATI IXP200, IXP300, IXP400, SB600, SB700, SB800 |
25 | AMD SB900 | ||
25 | SMSC Victory66 | 26 | SMSC Victory66 |
26 | 27 | ||
27 | Note: we assume there can only be one device, with one SMBus interface. | 28 | Note: we assume there can only be one device, with one SMBus interface. |
@@ -479,6 +480,7 @@ static struct pci_device_id piix4_ids[] = { | |||
479 | { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP300_SMBUS) }, | 480 | { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP300_SMBUS) }, |
480 | { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP400_SMBUS) }, | 481 | { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP400_SMBUS) }, |
481 | { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS) }, | 482 | { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS) }, |
483 | { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_SB900_SMBUS) }, | ||
482 | { PCI_DEVICE(PCI_VENDOR_ID_SERVERWORKS, | 484 | { PCI_DEVICE(PCI_VENDOR_ID_SERVERWORKS, |
483 | PCI_DEVICE_ID_SERVERWORKS_OSB4) }, | 485 | PCI_DEVICE_ID_SERVERWORKS_OSB4) }, |
484 | { PCI_DEVICE(PCI_VENDOR_ID_SERVERWORKS, | 486 | { PCI_DEVICE(PCI_VENDOR_ID_SERVERWORKS, |
@@ -499,9 +501,10 @@ static int __devinit piix4_probe(struct pci_dev *dev, | |||
499 | { | 501 | { |
500 | int retval; | 502 | int retval; |
501 | 503 | ||
502 | if ((dev->vendor == PCI_VENDOR_ID_ATI) && | 504 | if ((dev->vendor == PCI_VENDOR_ID_ATI && |
503 | (dev->device == PCI_DEVICE_ID_ATI_SBX00_SMBUS) && | 505 | dev->device == PCI_DEVICE_ID_ATI_SBX00_SMBUS && |
504 | (dev->revision >= 0x40)) | 506 | dev->revision >= 0x40) || |
507 | dev->vendor == PCI_VENDOR_ID_AMD) | ||
505 | /* base address location etc changed in SB800 */ | 508 | /* base address location etc changed in SB800 */ |
506 | retval = piix4_setup_sb800(dev, id); | 509 | retval = piix4_setup_sb800(dev, id); |
507 | else | 510 | else |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 3b6b788fe2b5..7803565aa877 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -543,6 +543,7 @@ | |||
543 | #define PCI_DEVICE_ID_AMD_8131_BRIDGE 0x7450 | 543 | #define PCI_DEVICE_ID_AMD_8131_BRIDGE 0x7450 |
544 | #define PCI_DEVICE_ID_AMD_8131_APIC 0x7451 | 544 | #define PCI_DEVICE_ID_AMD_8131_APIC 0x7451 |
545 | #define PCI_DEVICE_ID_AMD_8132_BRIDGE 0x7458 | 545 | #define PCI_DEVICE_ID_AMD_8132_BRIDGE 0x7458 |
546 | #define PCI_DEVICE_ID_AMD_SB900_SMBUS 0x780b | ||
546 | #define PCI_DEVICE_ID_AMD_CS5535_IDE 0x208F | 547 | #define PCI_DEVICE_ID_AMD_CS5535_IDE 0x208F |
547 | #define PCI_DEVICE_ID_AMD_CS5536_ISA 0x2090 | 548 | #define PCI_DEVICE_ID_AMD_CS5536_ISA 0x2090 |
548 | #define PCI_DEVICE_ID_AMD_CS5536_FLASH 0x2091 | 549 | #define PCI_DEVICE_ID_AMD_CS5536_FLASH 0x2091 |