i2c: i801: Add support for Intel Emmitsburg PCH
authorMika Westerberg <mika.westerberg@linux.intel.com>
Thu, 18 Jun 2020 13:42:39 +0000 (16:42 +0300)
committerWolfram Sang <wsa@kernel.org>
Wed, 5 Aug 2020 09:52:28 +0000 (11:52 +0200)
Add support for SMBus controller on Intel Emmitsburg PCH. This is the
same IP as used in Cannon Lake and derivatives.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Documentation/i2c/busses/i2c-i801.rst
drivers/i2c/busses/Kconfig
drivers/i2c/busses/i2c-i801.c

index b83da0e..faf3233 100644 (file)
@@ -43,6 +43,7 @@ Supported adapters:
   * Intel Elkhart Lake (PCH)
   * Intel Tiger Lake (PCH)
   * Intel Jasper Lake (SOC)
+  * Intel Emmitsburg (PCH)
 
    Datasheets: Publicly available at the Intel website
 
index 735bf31..085ca9b 100644 (file)
@@ -146,6 +146,7 @@ config I2C_I801
            Elkhart Lake (PCH)
            Tiger Lake (PCH)
            Jasper Lake (SOC)
+           Emmitsburg (PCH)
 
          This driver can also be built as a module.  If so, the module
          will be called i2c-i801.
index 638e7f7..63b0c9d 100644 (file)
@@ -54,6 +54,7 @@
  * Sunrise Point-H (PCH)       0xa123  32      hard    yes     yes     yes
  * Sunrise Point-LP (PCH)      0x9d23  32      hard    yes     yes     yes
  * DNV (SOC)                   0x19df  32      hard    yes     yes     yes
+ * Emmitsburg (PCH)            0x1bc9  32      hard    yes     yes     yes
  * Broxton (SOC)               0x5ad4  32      hard    yes     yes     yes
  * Lewisburg (PCH)             0xa1a3  32      hard    yes     yes     yes
  * Lewisburg Supersku (PCH)    0xa223  32      hard    yes     yes     yes
 #define PCI_DEVICE_ID_INTEL_BAYTRAIL_SMBUS             0x0f12
 #define PCI_DEVICE_ID_INTEL_CDF_SMBUS                  0x18df
 #define PCI_DEVICE_ID_INTEL_DNV_SMBUS                  0x19df
+#define PCI_DEVICE_ID_INTEL_EBG_SMBUS                  0x1bc9
 #define PCI_DEVICE_ID_INTEL_COUGARPOINT_SMBUS          0x1c22
 #define PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS             0x1d22
 /* Patsburg also has three 'Integrated Device Function' SMBus controllers */
@@ -1062,6 +1064,7 @@ static const struct pci_device_id i801_ids[] = {
        { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SUNRISEPOINT_LP_SMBUS) },
        { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_CDF_SMBUS) },
        { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_DNV_SMBUS) },
+       { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_EBG_SMBUS) },
        { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_BROXTON_SMBUS) },
        { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_LEWISBURG_SMBUS) },
        { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_LEWISBURG_SSKU_SMBUS) },
@@ -1749,6 +1752,7 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
        case PCI_DEVICE_ID_INTEL_ELKHART_LAKE_SMBUS:
        case PCI_DEVICE_ID_INTEL_TIGERLAKE_LP_SMBUS:
        case PCI_DEVICE_ID_INTEL_JASPER_LAKE_SMBUS:
+       case PCI_DEVICE_ID_INTEL_EBG_SMBUS:
                priv->features |= FEATURE_BLOCK_PROC;
                priv->features |= FEATURE_I2C_BLOCK_READ;
                priv->features |= FEATURE_IRQ;