For years, Linux drivers were split. A driver written for an ARM embedded sensor used Device Tree. A driver written for an x86 laptop sensor used ACPI. Rewriting drivers to support both ecosystems resulted in massive code duplication. 🌉 Enter PRP0001 : The Universal Translator
On a typical Linux kernel (v4.10+ through v6.x), the default behavior is:
It allows for embedding Device Tree-like structures inside ACPI tables, which is useful when BIOS/firmware developers prefer ACPI but the driver community prefers DT. Troubleshooting PRP0001 in Linux
Since it relies on the unified device property API, it is generally very stable, provided the kernel/OS supports the underlying hardware. ⚠️ Common Issues & Troubleshooting acpi prp0001 0
Manufacturers can support new hardware on x86 platforms without registering a formal ACPI ID.
When hardware vendors began crossing these ecosystems—such as embedding ARM-style components (like I2C or SPI audio chips and touch controllers) into x86 platforms—they ran into a problem: writing entirely new ACPI-compliant Windows or Linux drivers for pre-existing Open Firmware (OF) hardware components is incredibly expensive and redundant.
Primarily associated with hardware and the Steam Deck , this ID allows modern operating systems to identify and communicate with specialized hardware components—such as audio SPI devices , touchpads , or custom APU chips —that don't have a standard "Plug and Play" ID. What is ACPI PRP0001 0? For years, Linux drivers were split
A tricky bug surfaced regarding module autoloading. When an ACPI device uses PRP0001 , the udev system might generate an OF-style modalias (e.g., of:NdeviceT<compatible> ) instead of an ACPI one ( acpi:PRP0001 ). This caused the system to attempt to load the OF driver variant (e.g., i2c-hid-of ), which would fail, instead of the correct ACPI driver ( i2c-hid-acpi ). A 2024 patch fixed this by adding a MODULE_ALIAS to ensure the proper driver was loaded for PRP0001 I2C HID devices.
This process effectively tricks the kernel's driver binding mechanism. The device appears to the driver as a DT node, even though its description is embedded within an ACPI table.
Often causes "Unknown Device" confusion for Windows users who aren't using an official OEM image. Rewriting drivers to support both ecosystems resulted in
In deep technical terms, it is a bridge allowing OS drivers—particularly in Linux—to use modern, structured device descriptions (
(Note: The name in sysfs usually capitalizes it).
: Ensure your OS is up-to-date, as newer versions may have better support for ACPI devices.