Skip to content
Snippets Groups Projects
Commit 157a801e authored by Mika Westerberg's avatar Mika Westerberg Committed by Wolfram Sang
Browse files

i2c: designware-pci: Add Haswell PCI IDs


Intel Haswell has the same I2C host controller than Baytrail and it can
also be enumerated as a PCI device. Add the PCI IDs to the driver list.

Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
parent 1fc2fe20
No related merge requests found
...@@ -56,6 +56,7 @@ enum dw_pci_ctl_id_t { ...@@ -56,6 +56,7 @@ enum dw_pci_ctl_id_t {
medfield_5, medfield_5,
baytrail, baytrail,
haswell,
}; };
struct dw_scl_sda_cfg { struct dw_scl_sda_cfg {
...@@ -95,6 +96,15 @@ static struct dw_scl_sda_cfg byt_config = { ...@@ -95,6 +96,15 @@ static struct dw_scl_sda_cfg byt_config = {
.sda_hold = 0x6, .sda_hold = 0x6,
}; };
/* Haswell HCNT/LCNT/SDA hold time */
static struct dw_scl_sda_cfg hsw_config = {
.ss_hcnt = 0x01b0,
.fs_hcnt = 0x48,
.ss_lcnt = 0x01fb,
.fs_lcnt = 0xa0,
.sda_hold = 0x9,
};
static struct dw_pci_controller dw_pci_controllers[] = { static struct dw_pci_controller dw_pci_controllers[] = {
[moorestown_0] = { [moorestown_0] = {
.bus_num = 0, .bus_num = 0,
...@@ -168,6 +178,15 @@ static struct dw_pci_controller dw_pci_controllers[] = { ...@@ -168,6 +178,15 @@ static struct dw_pci_controller dw_pci_controllers[] = {
.functionality = I2C_FUNC_10BIT_ADDR, .functionality = I2C_FUNC_10BIT_ADDR,
.scl_sda_cfg = &byt_config, .scl_sda_cfg = &byt_config,
}, },
[haswell] = {
.bus_num = -1,
.bus_cfg = INTEL_MID_STD_CFG | DW_IC_CON_SPEED_FAST,
.tx_fifo_depth = 32,
.rx_fifo_depth = 32,
.clk_khz = 100000,
.functionality = I2C_FUNC_10BIT_ADDR,
.scl_sda_cfg = &hsw_config,
},
}; };
static struct i2c_algorithm i2c_dw_algo = { static struct i2c_algorithm i2c_dw_algo = {
.master_xfer = i2c_dw_xfer, .master_xfer = i2c_dw_xfer,
...@@ -328,6 +347,9 @@ static const struct pci_device_id i2_designware_pci_ids[] = { ...@@ -328,6 +347,9 @@ static const struct pci_device_id i2_designware_pci_ids[] = {
{ PCI_VDEVICE(INTEL, 0x0F45), baytrail }, { PCI_VDEVICE(INTEL, 0x0F45), baytrail },
{ PCI_VDEVICE(INTEL, 0x0F46), baytrail }, { PCI_VDEVICE(INTEL, 0x0F46), baytrail },
{ PCI_VDEVICE(INTEL, 0x0F47), baytrail }, { PCI_VDEVICE(INTEL, 0x0F47), baytrail },
/* Haswell */
{ PCI_VDEVICE(INTEL, 0x9c61), haswell },
{ PCI_VDEVICE(INTEL, 0x9c62), haswell },
{ 0,} { 0,}
}; };
MODULE_DEVICE_TABLE(pci, i2_designware_pci_ids); MODULE_DEVICE_TABLE(pci, i2_designware_pci_ids);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment