ACPISMBUS(4)

πŸ“¦ version 11.0, in nixpkgs unstable

🌸 NAME 🌸

okay so this is the ACPISMBUS(4) page from the Kernel Interfaces Manual, and the star of the show is acpismbus β€” the ACPI SMBus Control Method Interface. yes bestie, that's the whole name, no cap.

✨ SYNOPSIS ✨

the kernel-config vibe is literally just these two lines:

acpismbus* at acpi?
iic* at acpismbus?

πŸ’– DESCRIPTION πŸ’–

so the acpismbus driver supports instances of the ACPI SMBus Control Method Interface. that's the whole point. it gives you i2c access to bus segments that might not otherwise be accessible because the "native" driver support is missing. iconic workaround energy, honestly.

one very important vibe check: the SMBus Process Call protocol is not supported. sad but true. every other SMBus protocol? supported β€” but only to the extent that the underlying controller supports them. so it's giving "we can do it if the hardware can do it," not "we can do anything." periodt.

πŸ” SEE ALSO πŸ”

πŸ¦‹ HISTORY πŸ¦‹

the acpismbus driver appeared in NetBSD 6.0. a little retro, a little legendary. πŸ‘‘

πŸ’€ BUGS πŸ’€

okay bestie, listen up, because these are the fine-print warnings:

  • even though acpismbus SMBus Alerts can be associated with individual devices, this capability is ignored. when an acpismbus SMBus Alert is generated, all devices on the i2c bus segment which have registered an interrupt routine are notified. not just one. all of them. group chat behavior, honestly.
  • the SMBus CMI protocol defines a method to provide a list of devices on an i2c bus segment and their addresses. the acpismbus driver makes no attempt to retrieve or process this device list. it simply does not read the room.
  • there is currently no way to determine if the i2c controller managed by an instance of the ACPI SMBus CMI can also be accessed using a native device driver. therefore, the acpismbus driver should not be enabled by default. if both a native driver and the acpismbus driver attempt to access the same i2c bus segment, the results are undefined. and undefined is not a cute look. πŸ™ˆ

okay that's the page! source line says Debian, dated February 6, 2010 β€” bye bestie, go touch some i2c bus segments responsibly πŸ’…βœ¨

πŸ“¦ where this page comes from