git: 886a35528da9 - stable/14 - ig4(4): Add an EMAG device type
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 27 Sep 2026 12:20:40 UTC
The branch stable/14 has been updated by wulf:
URL: https://cgit.FreeBSD.org/src/commit/?id=886a35528da941d2a811db533d21b16511d11625
commit 886a35528da941d2a811db533d21b16511d11625
Author: Andrew Gallatin <gallatin@FreeBSD.org>
AuthorDate: 2023-11-16 00:51:28 +0000
Commit: Vladimir Kondratyev <wulf@FreeBSD.org>
CommitDate: 2026-09-27 12:19:38 +0000
ig4(4): Add an EMAG device type
Sponsored by: Ampere Computing LLC, Netflix
Submitted by: allanjude
Differential Revision: https://reviews.freebsd.org/D28746
Reviewed by: imp
(cherry picked from commit 5972ffde919ab65ba29d4d51ccf735da18d52719)
---
sys/dev/ichiic/ig4_acpi.c | 12 ++++++++++--
sys/dev/ichiic/ig4_iic.c | 3 +++
sys/dev/ichiic/ig4_var.h | 1 +
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/sys/dev/ichiic/ig4_acpi.c b/sys/dev/ichiic/ig4_acpi.c
index 729e63a54ffa..1275790a4412 100644
--- a/sys/dev/ichiic/ig4_acpi.c
+++ b/sys/dev/ichiic/ig4_acpi.c
@@ -84,13 +84,21 @@ static int
ig4iic_acpi_attach(device_t dev)
{
ig4iic_softc_t *sc;
+ char *str;
int error;
sc = device_get_softc(dev);
sc->dev = dev;
- /* All the HIDs matched are Atom SOCs. */
- sc->version = IG4_ATOM;
+ error = ACPI_ID_PROBE(device_get_parent(dev), dev, ig4iic_ids, &str);
+ if (error > 0)
+ return (error);
+ if (strcmp(str, "APMC0D0F") == 0) {
+ sc->version = IG4_EMAG;
+ } else {
+ /* All the other HIDs matched are Atom SOCs. */
+ sc->version = IG4_ATOM;
+ }
sc->regs_rid = 0;
sc->regs_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY,
&sc->regs_rid, RF_ACTIVE);
diff --git a/sys/dev/ichiic/ig4_iic.c b/sys/dev/ichiic/ig4_iic.c
index 31b097fd68bb..6f957f900944 100644
--- a/sys/dev/ichiic/ig4_iic.c
+++ b/sys/dev/ichiic/ig4_iic.c
@@ -89,6 +89,9 @@
* Ig4 hardware parameters except Haswell are taken from intel_lpss driver
*/
static const struct ig4_hw ig4iic_hw[] = {
+ [IG4_EMAG] = {
+ .ic_clock_rate = 100, /* MHz */
+ },
[IG4_HASWELL] = {
.ic_clock_rate = 100, /* MHz */
.sda_hold_time = 90, /* nsec */
diff --git a/sys/dev/ichiic/ig4_var.h b/sys/dev/ichiic/ig4_var.h
index cb44a1e7cd58..0d000ab34c1d 100644
--- a/sys/dev/ichiic/ig4_var.h
+++ b/sys/dev/ichiic/ig4_var.h
@@ -42,6 +42,7 @@
#include "iicbus_if.h"
enum ig4_vers {
+ IG4_EMAG,
IG4_HASWELL,
IG4_ATOM,
IG4_SKYLAKE,