aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/i2c/busses/i2c-i801.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/i2c/busses/i2c-i801.c')
-rw-r--r--drivers/i2c/busses/i2c-i801.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
index 6abc00d59881..1e73638225e1 100644
--- a/drivers/i2c/busses/i2c-i801.c
+++ b/drivers/i2c/busses/i2c-i801.c
@@ -81,6 +81,7 @@
81#include <linux/slab.h> 81#include <linux/slab.h>
82#include <linux/wait.h> 82#include <linux/wait.h>
83#include <linux/err.h> 83#include <linux/err.h>
84#include <linux/of_i2c.h>
84 85
85#if (defined CONFIG_I2C_MUX_GPIO || defined CONFIG_I2C_MUX_GPIO_MODULE) && \ 86#if (defined CONFIG_I2C_MUX_GPIO || defined CONFIG_I2C_MUX_GPIO_MODULE) && \
86 defined CONFIG_DMI 87 defined CONFIG_DMI
@@ -1108,6 +1109,7 @@ static int __devinit i801_probe(struct pci_dev *dev,
1108 /* fall through */ 1109 /* fall through */
1109 default: 1110 default:
1110 priv->features |= FEATURE_I2C_BLOCK_READ; 1111 priv->features |= FEATURE_I2C_BLOCK_READ;
1112 priv->features |= FEATURE_IRQ;
1111 /* fall through */ 1113 /* fall through */
1112 case PCI_DEVICE_ID_INTEL_82801DB_3: 1114 case PCI_DEVICE_ID_INTEL_82801DB_3:
1113 priv->features |= FEATURE_SMBUS_PEC; 1115 priv->features |= FEATURE_SMBUS_PEC;
@@ -1120,16 +1122,6 @@ static int __devinit i801_probe(struct pci_dev *dev,
1120 break; 1122 break;
1121 } 1123 }
1122 1124
1123 /* IRQ processing tested on CougarPoint PCH, ICH5, ICH7-M and ICH10 */
1124 if (dev->device == PCI_DEVICE_ID_INTEL_COUGARPOINT_SMBUS ||
1125 dev->device == PCI_DEVICE_ID_INTEL_82801EB_3 ||
1126 dev->device == PCI_DEVICE_ID_INTEL_ICH7_17 ||
1127 dev->device == PCI_DEVICE_ID_INTEL_ICH8_5 ||
1128 dev->device == PCI_DEVICE_ID_INTEL_ICH9_6 ||
1129 dev->device == PCI_DEVICE_ID_INTEL_ICH10_4 ||
1130 dev->device == PCI_DEVICE_ID_INTEL_ICH10_5)
1131 priv->features |= FEATURE_IRQ;
1132
1133 /* Disable features on user request */ 1125 /* Disable features on user request */
1134 for (i = 0; i < ARRAY_SIZE(i801_feature_names); i++) { 1126 for (i = 0; i < ARRAY_SIZE(i801_feature_names); i++) {
1135 if (priv->features & disable_features & (1 << i)) 1127 if (priv->features & disable_features & (1 << i))
@@ -1215,6 +1207,7 @@ static int __devinit i801_probe(struct pci_dev *dev,
1215 goto exit_free_irq; 1207 goto exit_free_irq;
1216 } 1208 }
1217 1209
1210 of_i2c_register_devices(&priv->adapter);
1218 i801_probe_optional_slaves(priv); 1211 i801_probe_optional_slaves(priv);
1219 /* We ignore errors - multiplexing is optional */ 1212 /* We ignore errors - multiplexing is optional */
1220 i801_add_mux(priv); 1213 i801_add_mux(priv);