PowerElementConfiguration
及该结构体中包含的类型定义了驱动程序可以从板驱动程序中获取的配置。此配置信息旨在由该配置的接收器反映到电源管理系统中。
PowerTokenService
是驱动程序应实现的内容,为子项提供对驱动程序电源元素的访问权限。
协议
设备
在 fuchsia.hardware.power/power.fidl 中定义
GetCurrentVoltage
获取电流电压(以 uV 为单位)。
请求
名称 | 类型 |
---|---|
index |
uint32
|
响应
名称 | 类型 |
---|---|
payload |
Device_GetCurrentVoltage_Result
|
GetPowerDomainStatus
获取电源网域状态
请求
<EMPTY>
响应
名称 | 类型 |
---|---|
payload |
Device_GetPowerDomainStatus_Result
|
GetSupportedVoltageRange
获取支持电压范围。最小值和最大值以 micorVolts(uV) 为单位
请求
<EMPTY>
响应
名称 | 类型 |
---|---|
payload |
Device_GetSupportedVoltageRange_Result
|
ReadPmicCtrlReg
读取 PMIC 的 Ctrl 寄存器
请求
名称 | 类型 |
---|---|
reg_addr |
uint32
|
响应
名称 | 类型 |
---|---|
payload |
Device_ReadPmicCtrlReg_Result
|
RegisterPowerDomain
为该电源域注册被调用方。在调用 UnregisterPowerDomain 之前,被调用方将一直保持注册状态。对电源域的任何电压变化都将考虑此处发布的 min_needed_voltage(以 uV 为单位)和 max_supported_voltage(以 uV 为单位)。如果提到的电压超出支持的电压范围(通过调用 GetSupportedVoltageRange 获得),则被调用方将注册支持的电压范围。
请求
名称 | 类型 |
---|---|
min_needed_voltage |
uint32
|
max_supported_voltage |
uint32
|
响应
名称 | 类型 |
---|---|
payload |
Device_RegisterPowerDomain_Result
|
RequestVoltage
请求使用特定电压。Real_voltage 是指在考虑所有注册从属项的支持电压范围后,电源域转换到的电压。“电压”应以 uV 为单位。
请求
名称 | 类型 |
---|---|
voltage |
uint32
|
响应
名称 | 类型 |
---|---|
payload |
Device_RequestVoltage_Result
|
UnregisterPowerDomain
取消注册此电源网域的被调用方。被调用方将不再被视为从此电源域的从属者。
请求
<EMPTY>
响应
名称 | 类型 |
---|---|
payload |
Device_UnregisterPowerDomain_Result
|
WritePmicCtrlReg
写入 PMIC 的 Ctrl 寄存器
请求
名称 | 类型 |
---|---|
reg_addr |
uint32
|
value |
uint32
|
响应
名称 | 类型 |
---|---|
payload |
Device_WritePmicCtrlReg_Result
|
PowerTokenProvider
在 fuchsia.hardware.power/config.fidl 中定义
GetToken
返回一个令牌,该令牌可与 fuchsia.power.broker
API 配合使用,以便在此驱动程序的电源元素和与此令牌关联的电源元素之间创建关系。
请求
<EMPTY>
响应
名称 | 类型 |
---|---|
payload |
PowerTokenProvider_GetToken_Result
|
结构
Device_GetCurrentVoltage_Response
在 fuchsia.hardware.power/power.fidl 中定义
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
current_voltage |
uint32
|
无默认取景方式 |
Device_GetPowerDomainStatus_Response
在 fuchsia.hardware.power/power.fidl 中定义
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
status |
PowerDomainStatus
|
无默认取景方式 |
Device_GetSupportedVoltageRange_Response
在 fuchsia.hardware.power/power.fidl 中定义
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
min |
uint32
|
无默认取景方式 | |
max |
uint32
|
无默认取景方式 |
Device_ReadPmicCtrlReg_Response
在 fuchsia.hardware.power/power.fidl 中定义
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
value |
uint32
|
无默认取景方式 |
Device_RegisterPowerDomain_Response
在 fuchsia.hardware.power/power.fidl 中定义
<EMPTY>
Device_RequestVoltage_Response
在 fuchsia.hardware.power/power.fidl 中定义
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
actual_voltage |
uint32
|
无默认取景方式 |
Device_UnregisterPowerDomain_Response
在 fuchsia.hardware.power/power.fidl 中定义
<EMPTY>
Device_WritePmicCtrlReg_Response
在 fuchsia.hardware.power/power.fidl 中定义
<EMPTY>
PowerTokenProvider_GetToken_Response 资源
在 fuchsia.hardware.power/config.fidl 中定义
野战 | 类型 | 说明 | 默认 |
---|---|---|---|
handle |
handle<event>
|
无默认取景方式 | |
name |
string[63]
|
无默认取景方式 |
枚举
PowerDomainStatus 严格
类型:uint8
在 fuchsia.hardware.power/power.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
已停用 |
1 |
|
已启用 |
2 |
RequirementType 严格
类型:uint32
在 fuchsia.hardware.power/config.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
有效 |
1 |
|
被动 |
2 |
SagElement 严格
类型:uint32
在 fuchsia.hardware.power/config.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
EXECUTION_STATE |
1 |
|
EXECUTION_RESUME_LATENCY |
2 |
|
WAKE_HANDLING |
3 |
|
APPLICATION_ACTIVITY |
4 |
表
域
在 fuchsia.hardware.power/metadata.fidl 中定义
与电源域相关的信息。
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
id |
uint32
|
网域 ID 在同一级别的所有电源网域之间应该是唯一的。 用于关联属于同一电源域的电源耗电。 |
DomainMetadata
在 fuchsia.hardware.power/metadata.fidl 中定义
以 DEVICE_METADATA_POWER_DOMAINS 的形式传递给元数据中的电源核心驱动程序。
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
domains |
vector<Domain>
|
要由此电源驱动程序管理的电源域列表。 |
LevelTuple
在 fuchsia.hardware.power/config.fidl 中定义
表示两个不同 PowerElement
的两个功率等级之间的依赖关系。
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
child_level |
uint8
|
|
2 |
parent_level |
uint8
|
PowerDependency
在 fuchsia.hardware.power/config.fidl 中定义
描述两个 PowerElement
的 PowerLevel
之间的关系。child
是 PowerElement
的名称,它具有依赖于 parent
的 PowerLevel
。+ child
是驱动程序拥有的 PowerElement
的名称。+ parent
是驱动程序有权访问的 PowerElement
的名称 + level_deps
是从 child
到 parent
的级别依赖项映射。
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
child |
string[63]
|
|
2 |
parent |
ParentElement
|
|
3 |
level_deps |
vector<LevelTuple>[128]
|
|
4 |
strength |
RequirementType
|
PowerElement
在 fuchsia.hardware.power/config.fidl 中定义
一组 PowerLevel
和一个人类可读的标识符。PowerLevel
本身包含有关从该级别发出的有效转换的信息。
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
name |
string[63]
|
|
2 |
levels |
vector<PowerLevel>[128]
|
PowerElementConfiguration
在 fuchsia.hardware.power/config.fidl 中定义
包含 PowerElement
说明及其对其他 PowerElement
的任何依赖项。
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
element |
PowerElement
|
|
2 |
dependencies |
vector<PowerDependency>[128]
|
PowerLevel
在 fuchsia.hardware.power/config.fidl 中定义
设备可以假定的一组零索引级别。
+ level
是此 PowerLevel
的零索引级别。+ name
是此 PowerLevel
的人类可读标签,仅用于调试。
+ transitions
描述了从该 PowerLevel
的有效转换的级别。
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
level |
uint8
|
|
2 |
name |
string[63]
|
|
3 |
transitions |
vector<Transition>[127]
|
Transition
在 fuchsia.hardware.power/config.fidl 中定义
进入能量等级所需的时间。
+ target_level
是我们将要转移到的功率等级。
+ latency_us
是进入该级别所需的时间(以微秒为单位)。
序数 | 野战 | 类型 | 说明 |
---|---|---|---|
1 |
target_level |
uint8
|
|
2 |
latency_us |
uint32
|
联合
Device_GetCurrentVoltage_Result 严格
在 fuchsia.hardware.power/power.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Device_GetCurrentVoltage_Response
|
|
2 |
err |
zx/Status
|
Device_GetPowerDomainStatus_Result 严格
在 fuchsia.hardware.power/power.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Device_GetPowerDomainStatus_Response
|
|
2 |
err |
zx/Status
|
Device_GetSupportedVoltageRange_Result 严格
在 fuchsia.hardware.power/power.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Device_GetSupportedVoltageRange_Response
|
|
2 |
err |
zx/Status
|
Device_ReadPmicCtrlReg_Result 严格
在 fuchsia.hardware.power/power.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Device_ReadPmicCtrlReg_Response
|
|
2 |
err |
zx/Status
|
Device_RegisterPowerDomain_Result 严格
在 fuchsia.hardware.power/power.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Device_RegisterPowerDomain_Response
|
|
2 |
err |
zx/Status
|
Device_RequestVoltage_Result 严格
在 fuchsia.hardware.power/power.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Device_RequestVoltage_Response
|
|
2 |
err |
zx/Status
|
Device_UnregisterPowerDomain_Result 严格
在 fuchsia.hardware.power/power.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Device_UnregisterPowerDomain_Response
|
|
2 |
err |
zx/Status
|
Device_WritePmicCtrlReg_Result 严格
在 fuchsia.hardware.power/power.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
Device_WritePmicCtrlReg_Response
|
|
2 |
err |
zx/Status
|
ParentElement 严格
在 fuchsia.hardware.power/config.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
name |
string[63]
|
|
2 |
sag |
SagElement
|
PowerTokenProvider_GetToken_Result 严格 资源
在 fuchsia.hardware.power/config.fidl 中定义
序数 | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
PowerTokenProvider_GetToken_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
常量
名称 | 值 | 类型 | 说明 |
---|---|---|---|
MAX_DEPENDENCIES |
128
|
uint16 |
|
MAX_LEVELS |
128
|
uint16 |
应该是 MAX_TRANSITIONS + 1 |
MAX_NAME_LENGTH |
63
|
uint16 |
|
MAX_TRANSITIONS |
127
|
uint16 |
这意味着我们最多可以有 128 个功率级,这似乎足够了。 |
服务
PowerTokenService
在 fuchsia.hardware.power/config.fidl 中定义
名称 | 类型 | 传输 |
---|---|---|
token_provider |
fuchsia.hardware.power/PowerTokenProvider
|
频道 |
服务
在 fuchsia.hardware.power/power.fidl 中定义
名称 | 类型 | 传输 |
---|---|---|
设备 |
fuchsia.hardware.power/Device
|
频道 |