Power Resource in ACPI
How ACPI PowerResource objects model shared rails and why wrong _ON/_OFF ordering can break Wi-Fi, camera, Bluetooth, and resume behavior.
A device does not always own its power rail alone.
A camera, Wi-Fi module, Bluetooth function, sensor hub, or touch controller may depend on a shared regulator, clock, reset line, or GPIO-controlled power enable.
ACPI models some of these shared dependencies with PowerResource.
PowerResource (PWR1, 0x00, 0x0000)
{
Method (_ON, 0, Serialized)
{
Store (One, PWEN)
Sleep (10)
}
Method (_OFF, 0, Serialized)
{
Store (Zero, PWEN)
}
}
Why PowerResource exists
Device power is not only D0/D3. A device may need:
- a shared voltage rail
- reset deassertion
- clock enable
- GPIO power enable
- EC command
- sequencing delay
PowerResource gives AML a way to describe power dependencies and transitions.
| Item | Value | Note |
|---|---|---|
| PowerResource() | Defines a shared power object | Can be referenced by one or more devices. |
| _ON | Turn resource on | Usually enables GPIO/regulator/EC-controlled rail. |
| _OFF | Turn resource off | Must avoid breaking other active consumers. |
| _STA | Resource status | Can report whether the power resource is on. |
| _PR0 | Resources needed for D0 | Device references power resources needed when fully on. |
| _PR3 | Resources related to D3 | Device references resources for low-power/off state. |
Debug Diary: camera missing after resume
Symptom:
Cold boot: camera works
After sleep/resume: camera missing
Driver error: device not responding
Possible ACPI path:
Resume
↓
OS powers device to D0
↓
_PR0 references PWR1
↓
PWR1._ON toggles GPIO power enable
↓
Reset delay too short or wrong GPIO polarity
↓
Camera fails probe
Common Pitfall: shared rail ownership
If two devices share one PowerResource, turning it off for one device can break the other.
Camera and sensor hub share PWR1
Camera enters low power
PWR1._OFF runs
Sensor hub unexpectedly loses power
PowerResource review checklist
Related notes
Found this useful?
Save it or share it with someone learning firmware, BIOS/UEFI, and embedded systems.
Nội dung liên quan
Một số bài viết, ghi chú hoặc project có liên quan đến nội dung bạn vừa đọc.
What is GPIO in platform firmware?
Quick note explaining GPIO in platform firmware for BIOS/UEFI and embedded firmware readers.
ACPI Architecture Overview
How firmware describes platform hardware to the operating system through ACPI tables, AML, namespace objects, and device methods.
ACPI Debug Playbook
Symptom-driven ACPI debug guide connecting missing devices, driver binding issues, resource conflicts, EC failures, GPIO wake bugs, and power-resource problems.
Biến note thành bài viết hoàn chỉnh
Notes là nơi ghi nhanh khái niệm.