aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/i2c
diff options
context:
space:
mode:
authorLakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com>2021-11-09 16:05:52 +0530
committerWolfram Sang <wsa@kernel.org>2021-11-29 17:55:32 +0100
commit36af188f795bd1b0d794dd735623979dc6b698d3 (patch)
treee2022b9188e6bfe866df90a6c9e7b6960bb9abed /drivers/i2c
parenti2c: designware-pci: Add support for Fast Mode Plus and High Speed Mode (diff)
downloadlinux-dev-36af188f795bd1b0d794dd735623979dc6b698d3.tar.xz
linux-dev-36af188f795bd1b0d794dd735623979dc6b698d3.zip
i2c: designware-pci: Set ideal timing parameters for Elkhart Lake PSE
Set optimal HCNT, LCNT and hold time values for all the speeds supported in Intel Programmable Service Engine I2C controller in Intel Elkhart Lake. Signed-off-by: Lakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com> Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Wolfram Sang <wsa@kernel.org>
Diffstat (limited to 'drivers/i2c')
-rw-r--r--drivers/i2c/busses/i2c-designware-pcidrv.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/i2c/busses/i2c-designware-pcidrv.c b/drivers/i2c/busses/i2c-designware-pcidrv.c
index 174938fc7a7e..3418148f8bb5 100644
--- a/drivers/i2c/busses/i2c-designware-pcidrv.c
+++ b/drivers/i2c/busses/i2c-designware-pcidrv.c
@@ -84,6 +84,19 @@ static struct dw_scl_sda_cfg hsw_config = {
.sda_hold = 0x9,
};
+/* Elkhart Lake HCNT/LCNT/SDA hold time */
+static struct dw_scl_sda_cfg ehl_config = {
+ .ss_hcnt = 0x190,
+ .fs_hcnt = 0x4E,
+ .fp_hcnt = 0x1A,
+ .hs_hcnt = 0x1F,
+ .ss_lcnt = 0x1d6,
+ .fs_lcnt = 0x96,
+ .fp_lcnt = 0x32,
+ .hs_lcnt = 0x36,
+ .sda_hold = 0x1E,
+};
+
/* NAVI-AMD HCNT/LCNT/SDA hold time */
static struct dw_scl_sda_cfg navi_amd_config = {
.ss_hcnt = 0x1ae,
@@ -200,6 +213,7 @@ static struct dw_pci_controller dw_pci_controllers[] = {
},
[elkhartlake] = {
.bus_num = -1,
+ .scl_sda_cfg = &ehl_config,
.get_clk_rate_khz = ehl_get_clk_rate_khz,
},
[navi_amd] = {