aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Kondratyev <wulf@FreeBSD.org>2021-02-23 22:20:36 +0000
committerVladimir Kondratyev <wulf@FreeBSD.org>2021-04-11 21:52:04 +0000
commit30b132ffe6999013e8b1cf5d85ed645495ac36d0 (patch)
tree49640a56f1b3f3126e5ccfb63e5c94006b500088
parent130abbf803644dd12ea97dd55cbd19b7cf416738 (diff)
downloadsrc-30b132ffe6999013e8b1cf5d85ed645495ac36d0.tar.gz
src-30b132ffe6999013e8b1cf5d85ed645495ac36d0.zip
ig4: Add PCI IDs for Intel Gemini Lake I2C controller.
Submitted by: Dmitry Luhtionov MFC after: 2 weeks
-rw-r--r--sys/dev/ichiic/ig4_iic.c6
-rw-r--r--sys/dev/ichiic/ig4_pci.c16
-rw-r--r--sys/dev/ichiic/ig4_var.h3
3 files changed, 24 insertions, 1 deletions
diff --git a/sys/dev/ichiic/ig4_iic.c b/sys/dev/ichiic/ig4_iic.c
index b684dc7d87cd..f24b26f53366 100644
--- a/sys/dev/ichiic/ig4_iic.c
+++ b/sys/dev/ichiic/ig4_iic.c
@@ -125,6 +125,12 @@ static const struct ig4_hw ig4iic_hw[] = {
.scl_fall_time = 208,
.sda_hold_time = 42,
},
+ [IG4_GEMINILAKE] = {
+ .ic_clock_rate = 133,
+ .sda_fall_time = 171,
+ .scl_fall_time = 290,
+ .sda_hold_time = 313,
+ },
};
static int ig4iic_set_config(ig4iic_softc_t *sc, bool reset);
diff --git a/sys/dev/ichiic/ig4_pci.c b/sys/dev/ichiic/ig4_pci.c
index 4667709e2fa2..2d80a8b1800a 100644
--- a/sys/dev/ichiic/ig4_pci.c
+++ b/sys/dev/ichiic/ig4_pci.c
@@ -136,6 +136,14 @@ static int ig4iic_pci_detach(device_t dev);
#define PCI_CHIP_TIGERLAKE_LP_I2C_5 0xa0e98086
#define PCI_CHIP_TIGERLAKE_LP_I2C_6 0xa0ea8086
#define PCI_CHIP_TIGERLAKE_LP_I2C_7 0xa0eb8086
+#define PCI_CHIP_GEMINILAKE_I2C_0 0x31ac8086
+#define PCI_CHIP_GEMINILAKE_I2C_1 0x31ae8086
+#define PCI_CHIP_GEMINILAKE_I2C_2 0x31b08086
+#define PCI_CHIP_GEMINILAKE_I2C_3 0x31b28086
+#define PCI_CHIP_GEMINILAKE_I2C_4 0x31b48086
+#define PCI_CHIP_GEMINILAKE_I2C_5 0x31b68086
+#define PCI_CHIP_GEMINILAKE_I2C_6 0x31b88086
+#define PCI_CHIP_GEMINILAKE_I2C_7 0x31ba8086
struct ig4iic_pci_device {
uint32_t devid;
@@ -214,6 +222,14 @@ static struct ig4iic_pci_device ig4iic_pci_devices[] = {
{ PCI_CHIP_TIGERLAKE_LP_I2C_5, "Intel Tiger Lake-LP I2C Controller-5", IG4_SKYLAKE},
{ PCI_CHIP_TIGERLAKE_LP_I2C_6, "Intel Tiger Lake-LP I2C Controller-6", IG4_SKYLAKE},
{ PCI_CHIP_TIGERLAKE_LP_I2C_7, "Intel Tiger Lake-LP I2C Controller-7", IG4_SKYLAKE},
+ { PCI_CHIP_GEMINILAKE_I2C_0, "Intel Gemini Lake I2C Controller-0", IG4_GEMINILAKE},
+ { PCI_CHIP_GEMINILAKE_I2C_1, "Intel Gemini Lake I2C Controller-1", IG4_GEMINILAKE},
+ { PCI_CHIP_GEMINILAKE_I2C_2, "Intel Gemini Lake I2C Controller-2", IG4_GEMINILAKE},
+ { PCI_CHIP_GEMINILAKE_I2C_3, "Intel Gemini Lake I2C Controller-3", IG4_GEMINILAKE},
+ { PCI_CHIP_GEMINILAKE_I2C_4, "Intel Gemini Lake I2C Controller-4", IG4_GEMINILAKE},
+ { PCI_CHIP_GEMINILAKE_I2C_5, "Intel Gemini Lake I2C Controller-5", IG4_GEMINILAKE},
+ { PCI_CHIP_GEMINILAKE_I2C_6, "Intel Gemini Lake I2C Controller-6", IG4_GEMINILAKE},
+ { PCI_CHIP_GEMINILAKE_I2C_7, "Intel Gemini Lake I2C Controller-7", IG4_GEMINILAKE},
};
static int
diff --git a/sys/dev/ichiic/ig4_var.h b/sys/dev/ichiic/ig4_var.h
index 7a94e4f5cffd..da81980039f1 100644
--- a/sys/dev/ichiic/ig4_var.h
+++ b/sys/dev/ichiic/ig4_var.h
@@ -49,7 +49,8 @@ enum ig4_vers {
IG4_SKYLAKE,
IG4_APL,
IG4_CANNONLAKE,
- IG4_TIGERLAKE
+ IG4_TIGERLAKE,
+ IG4_GEMINILAKE
};
/* Controller has additional registers */