[PATCH v1 2/2] i2c: designware-pci: Set ideal timing parameters for Elkhart Lake PSE

From: lakshmi . sowjanya . d
Date: Tue Nov 09 2021 - 05:36:06 EST


From: Lakshmi Sowjanya D <lakshmi.sowjanya.d@xxxxxxxxx>

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@xxxxxxxxx>
---
drivers/i2c/busses/i2c-designware-pcidrv.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)

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] = {
--
2.17.1