[Bug 221777] merge the latest changes to the ig4 module from DragonFly BSD and add Kaby Lake / Intel 100 series platform support
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sun Aug 12 20:09:02 UTC 2018
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=221777
--- Comment #7 from marc.priggemeyer at gmail.com ---
(In reply to Oleksandr Tymoshenko from comment #6)
Please consider these two parts from the patch I provided last year:
In ig4_reg.h:
+/* Newer versions of the I2C controller allow to check whether
+ * the above ASSERT/DEASSERT is necessary by querying the DEVIDLE_CONTROL
+ * register.
+ *
+ * the RESTORE_REQUIRED bit can be cleared by writing 1
+ * the DEVICE_IDLE status can be set to put the controller in an idle state
+ * */
+
+#define IG4_RESTORE_REQUIRED 0x0008
+#define IG4_DEVICE_IDLE 0x0004
and in ig4_iic.c
+ v = reg_read(sc, IG4_REG_DEVIDLE_CTRL);
+ if (sc->version == IG4_SKYLAKE && (v & IG4_RESTORE_REQUIRED) ) {
+ reg_write(sc, IG4_REG_DEVIDLE_CTRL, IG4_DEVICE_IDLE |
IG4_RESTORE_REQUIRED);
+ reg_write(sc, IG4_REG_DEVIDLE_CTRL, 0);
+
+ reg_write(sc, IG4_REG_RESETS_SKL, IG4_RESETS_ASSERT_SKL);
+ reg_write(sc, IG4_REG_RESETS_SKL, IG4_RESETS_DEASSERT_SKL);
+ DELAY(1000);
+ }
This reinitialization makes sure to activate the I2C controller after power
down if necessary. It is based on the Intel 100 series PCH documentation.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list