i2c: designware-pci: Set ideal timing parameters for Elkhart Lake PSE
authorLakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com>
Tue, 9 Nov 2021 10:35:52 +0000 (16:05 +0530)
committerWolfram Sang <wsa@kernel.org>
Mon, 29 Nov 2021 16:55:32 +0000 (17:55 +0100)
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>
drivers/i2c/busses/i2c-designware-pcidrv.c

index 174938f..3418148 100644 (file)
@@ -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] = {