class SetPowerState
Defined at line 155 of file fidling/gen/sdk/fidl/fuchsia.hardware.ufs.phy/fuchsia.hardware.ufs.phy/cpp/fidl/fuchsia.hardware.ufs.phy/cpp/markers.h
Transitions the PHY to `state`. See [`PowerState`] for the hardware preconditions of each
target state.
## Power States and Held Resources
Each lower power state holds a strict subset of the resources held by the state above it:
| State | Power Domains | Core Clocks
&
Rails | M-PHY Low-V Rail | Aux Clock |
|-------------------|---------------|---------------------|------------------|-----------|
| `ACTIVE` | ON | ON | ON | ON |
| `LINK_IDLE` | ON | ON | ON | OFF |
| `HIBERNATE_SLEEP` | ON | ON | OFF | OFF |
| `POWER_DOWN` | OFF | OFF | OFF | OFF |
## Allowed Transitions
- **Same state (`S -> S`)**: Always idempotent; returns `ZX_OK` without modifying hardware.
- **Higher power to lower power (`ACTIVE -> LINK_IDLE`, `ACTIVE/LINK_IDLE ->
HIBERNATE_SLEEP`, or `ACTIVE/LINK_IDLE/HIBERNATE_SLEEP -> POWER_DOWN`)**: Allowed.
Releases the additional resources not required in the target state.
- **Any lower power state to `ACTIVE` (`LINK_IDLE/HIBERNATE_SLEEP/POWER_DOWN -> ACTIVE`)**:
Allowed. Restores all resources required for `ACTIVE`.
- **Lower power to a higher non-`ACTIVE` state (`POWER_DOWN -> LINK_IDLE`, `POWER_DOWN ->
HIBERNATE_SLEEP`, or `HIBERNATE_SLEEP -> LINK_IDLE`)**: Rejected with `ZX_ERR_BAD_STATE`.
The caller must transition to `ACTIVE` first.
## Error Semantics
- **Transitions to `ACTIVE`, `LINK_IDLE`, or `HIBERNATE_SLEEP`**: On failure, the PHY rolls
back any partial changes (best-effort) and remains in its previous state.
- **Transitions to `POWER_DOWN`**: Every power-down step is attempted even if an earlier
step fails, the first error is returned, and the PHY transitions to `POWER_DOWN`.
Public Members
static const bool kHasClientToServer
static const bool kHasClientToServerBody
static const bool kHasServerToClient
static const bool kHasServerToClientBody
static const bool kHasNonEmptyUserFacingResponse
static const bool kHasDomainError
static const bool kHasFrameworkError
static const uint64_t kOrdinal