External (_SB_.I2C0, DeviceObj) Scope (_SB.I2C0) Device (SENS) Name (_HID, "PRP0001") Name (_DSD, Package () ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), Package () Package () "compatible", "bosch,bme280" , Package () "reg", 0x77 , )
ls /sys/bus/i2c/devices/
cat /proc/iomem | grep -i prp cat /proc/interrupts If another driver grabbed the interrupt or memory region, you might need to blacklist that driver. Verify the compatible string in _DSD matches the driver’s of_match_table exactly. A trailing space or wrong vendor prefix (e.g., bosch,bme280 vs bmp,bme280 ) will cause a mismatch. Part 9: Fixing ACPI Tables – Adding PRP0001 Yourself Advanced users and firmware developers can add a PRP0001 device to their ACPI tables using an SSDT (Secondary System Description Table). With iasl , you can write: acpi prp0001 0
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); External (_SB_
For an I2C device, ensure the I2C controller driver is bound: Part 9: Fixing ACPI Tables – Adding PRP0001
[ 0.987654] ACPI: PRP0001:00: PRP0001 device Or a related error: