PROTOCOLS
UfsPhy
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
GetProperties
Returns the PHY driver's static capabilities. The controller driver calls this once at initialization to decide which power-management features it may use. A PHY driver that does not implement this method is treated as supporting none of the optional features.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
payload |
UfsPhy_GetProperties_Result
|
Init
Perform the UFS PHY specific initialization which happens before link startup.
Request
| Name | Type |
|---|---|
ufs_hci |
client_end:Ufshci
|
Response
| Name | Type |
|---|---|
payload |
UfsPhy_Init_Result
|
PrePowerModeChange
Perform PHY calibration and configuration prior to power mode / gear change.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
payload |
UfsPhy_PrePowerModeChange_Result
|
Resume
Powers up the UFS power domains and clocks prior to host controller enable and link startup.
Calling Resume while not suspended is a no-op that returns success. On failure the PHY
must release anything it acquired during the attempt and remain suspended, so that the
caller may either call Suspend or retry Resume.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
payload |
UfsPhy_Resume_Result
|
Suspend
Powers down the UFS device rails, PHY reset, regulators, clocks, and power domains.
The caller must have stopped the host controller (HCE = 0) before calling this; after it
returns the UFSHCI register space must not be accessed until Resume has succeeded.
Calling Suspend while already suspended is a no-op. On failure the PHY is still
considered suspended (every step is attempted and the first error reported), so the caller
must go through Resume to bring it back. Only resources that are actually held are
released, so Suspend is also safe to call after a failed Resume (which has already
released what it acquired). The host controller is stopped for the whole duration of
Suspend and Resume, so Ufshci calls made from within them fail with ZX_ERR_BAD_STATE.
Request
<EMPTY>
Response
| Name | Type |
|---|---|
payload |
UfsPhy_Suspend_Result
|
Ufshci
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
Interface provided by the UFS MAC (controller driver) to the PHY driver, allowing the PHY driver to send UIC commands (like DME_SET) or access MAC-level registers required for PHY initialization.
DmeGet
Send a UIC DME_GET command to the UFS controller. If the MIB attribute's value has not been set via the DME_SET command, a hardware reset default value is returned by the device. For invalid mib_attribute or gen_selector_index values, a ZX_ERR_INTERNAL error is returned.
Request
| Name | Type |
|---|---|
mib_attribute |
uint16
|
gen_selector_index |
uint16
|
Response
| Name | Type |
|---|---|
payload |
Ufshci_DmeGet_Result
|
DmeSet
Send a UIC DME_SET command to the UFS controller.
Request
| Name | Type |
|---|---|
mib_attribute |
uint16
|
gen_selector_index |
uint16
|
value |
uint32
|
Response
| Name | Type |
|---|---|
payload |
Ufshci_DmeSet_Result
|
STRUCTS
UfsPhy_Init_Response
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
<EMPTY>
UfsPhy_PrePowerModeChange_Response
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
<EMPTY>
UfsPhy_Resume_Response
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
<EMPTY>
UfsPhy_Suspend_Response
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
<EMPTY>
Ufshci_DmeGet_Response
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
| Field | Type | Description | Default |
|---|---|---|---|
value |
uint32
|
No default |
Ufshci_DmeSet_Response
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
<EMPTY>
TABLES
UfsPhy_GetProperties_Response
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
| Ordinal | Field | Type | Description |
|---|---|---|---|
1 |
supports_suspend_resume |
bool
|
Whether |
UNIONS
UfsPhy_GetProperties_Result strict
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
| Ordinal | Variant | Type | Description |
|---|---|---|---|
1 |
response |
UfsPhy_GetProperties_Response
|
|
3 |
framework_err |
internal
|
UfsPhy_Init_Result strict
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
| Ordinal | Variant | Type | Description |
|---|---|---|---|
1 |
response |
UfsPhy_Init_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
UfsPhy_PrePowerModeChange_Result strict
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
| Ordinal | Variant | Type | Description |
|---|---|---|---|
1 |
response |
UfsPhy_PrePowerModeChange_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
UfsPhy_Resume_Result strict
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
| Ordinal | Variant | Type | Description |
|---|---|---|---|
1 |
response |
UfsPhy_Resume_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
UfsPhy_Suspend_Result strict
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
| Ordinal | Variant | Type | Description |
|---|---|---|---|
1 |
response |
UfsPhy_Suspend_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Ufshci_DmeGet_Result strict
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
| Ordinal | Variant | Type | Description |
|---|---|---|---|
1 |
response |
Ufshci_DmeGet_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Ufshci_DmeSet_Result strict
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
| Ordinal | Variant | Type | Description |
|---|---|---|---|
1 |
response |
Ufshci_DmeSet_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
SERVICES
Service
Defined in fuchsia.hardware.ufs.phy/ufs_phy.fidl
| Name | Type | Transport |
|---|---|---|
| phy |
fuchsia.hardware.ufs.phy/UfsPhy
|
Channel |
| inline_crypto |
fuchsia.hardware.inlineencryption/Controller
|
Channel |