diff options
Diffstat (limited to 'drivers/i2c/busses/i2c-i801.c')
| -rw-r--r-- | drivers/i2c/busses/i2c-i801.c | 13 |
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); |
