Acpi Prp0001 0 ⚡ Proven
static const struct of_device_id bmp280_of_match[] = .compatible = "bosch,bme280" , ; MODULE_DEVICE_TABLE(of, bmp280_of_match); static const struct acpi_device_id bmp280_acpi_match[] = "PRP0001", .driver_data = (kernel_ulong_t)&bmp280_of_match[0] , ; MODULE_DEVICE_TABLE(acpi, bmp280_acpi_match);
ACPI is the standard for device discovery, power management, and configuration in x86 systems (and increasingly ARM servers). When a PC boots, the BIOS/UEFI provides the OS with ACPI tables (DSDT, SSDT, etc.). These tables contain AML (ACPI Machine Language) bytecode that describes every device on the motherboard: PCIe slots, UARTs, I2C controllers, GPIOs, and more. acpi prp0001 0
[ 0.987654] ACPI: PRP0001:00: PRP0001 device Or a related error: static const struct of_device_id bmp280_of_match[] =
ls /sys/bus/i2c/devices/
Notice the trick: The ACPI ID is PRP0001 , but the driver uses a pointer to the OF match table. The kernel then tries each compatible string in the _DSD against that table. Problem: Device not created (error -16 or -19) Step 1: Confirm the device is actually enumerated .driver_data = (kernel_ulong_t)&bmp280_of_match[0]