ACPI SSDT Overlays

Here are some notes from my playing with ACPI SSDT Overlays.

  • In the ARM world people load things with DeviceTree overlay.
  • The equivalent in x64 is SSDT Overlay.
  • The kernel has some more docs about this equivalence.
  • I needed to manually modprobe acpi_configfs for ` /sys/kernel/config/acpi` to appear.
  • Intel has some decent examples in meta-acpi, like this one.
  • Contrary to other drivres I’ve tried, spi-gpio doesn’t support SSD Overlays, because it has the devicetree behind a CONFIG_OF.
  • The path to the GPIO controller on my Netgear RN516 is \\_SB.PCI0.LPCB.
  • (re-)Loading the overlay becomes active immediately and should triggering modules loading.
  • /sys/bus/acpi/devices/PRP0001\:00/modalias shows the modalias, of:NspigTCspi-gpio for instance, and this is matched with “/lib/modules/`uname -r`/modules.alias”.
  • MODULE_DEVICE_TABLE(of, spi_gpio_dt_ids); is a macro that ends up in filling the lib/modules/modules.alias.
  • of_match_ptr() is set to NULL when CONFIG_OF is not set. Doh.