PowerElementConfiguration 和该结构体中包含的类型定义
驱动程序可以从板级驱动程序获得的配置。本次
都会体现到
电源管理系统。
PowerTokenService 是驱动程序为提供其
具有访问驱动程序电源元素的子项。
PROTOCOLS
设备
在 fuchsia.hardware.power/power.fidl 中定义
GetCurrentVoltage
获取当前电压(以 uV 为单位)。
请求
| 名称 | 类型 | 
|---|---|
| index | uint32 | 
响应
| 名称 | 类型 | 
|---|---|
| payload | Device_GetCurrentVoltage_Result | 
GetPowerDomainStatus
获取电源网域状态
请求
<空>
响应
| 名称 | 类型 | 
|---|---|
| payload | Device_GetPowerDomainStatus_Result | 
GetSupportedVoltageRange
获取支持的电压范围。最小值和最大值以 micorVolts(uV) 为单位
请求
<空>
响应
| 名称 | 类型 | 
|---|---|
| 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 是供电域 在考虑所有已登记的电压范围后, 依赖项。“voltage”应为 uV。
请求
| 名称 | 类型 | 
|---|---|
| voltage | uint32 | 
响应
| 名称 | 类型 | 
|---|---|
| payload | Device_RequestVoltage_Result | 
UnregisterPowerDomain
为该电源网域取消注册被调用方。被呼叫者不再被视为 该电源域的依赖性。
请求
<空>
响应
| 名称 | 类型 | 
|---|---|
| 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 搭配使用的令牌,以便
在该驱动单元的电源元件和
词元。
请求
<空>
响应
| 名称 | 类型 | 
|---|---|
| payload | PowerTokenProvider_GetToken_Result | 
结构体
ComponentPowerConfiguration
在 fuchsia.hardware.power/config.fidl 中定义
组件电源元素的配置。
| 字段 | 类型 | 说明 | 默认 | 
|---|---|---|---|
| power_elements | vector<PowerElementConfiguration>[32] | 无默认设置 | 
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 中定义
<空>
Device_RequestVoltage_Response
在 fuchsia.hardware.power/power.fidl 中定义
| 字段 | 类型 | 说明 | 默认 | 
|---|---|---|---|
| actual_voltage | uint32 | 无默认设置 | 
Device_UnregisterPowerDomain_Response
在 fuchsia.hardware.power/power.fidl 中定义
<空>
Device_WritePmicCtrlReg_Response
在 fuchsia.hardware.power/power.fidl 中定义
<空>
PowerTokenProvider_GetToken_Response 资源
在 fuchsia.hardware.power/config.fidl 中定义
| 字段 | 类型 | 说明 | 默认 | 
|---|---|---|---|
| handle | handle<event> | 无默认设置 | 
精英
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 中定义
与电源域相关的信息。
| Ordinal | 字段 | 类型 | 说明 | 
|---|---|---|---|
| 1 | id | uint32 | 网域 ID 在同一级别的所有电源网域中应该是唯一的。 用于关联属于同一电源网域的高级使用方。 | 
DomainMetadata
在 fuchsia.hardware.power/metadata.fidl 中定义
作为 DEVICE_METADATA_POWER_DOMAINS 在元数据中传递给电源核心驱动程序。
| Ordinal | 字段 | 类型 | 说明 | 
|---|---|---|---|
| 1 | domains | vector<Domain> | 要由此电源驱动程序管理的电源域的列表。 | 
LevelTuple
在 fuchsia.hardware.power/config.fidl 中定义
表示两个不同功率等级之间的依赖关系,
PowerElement。
| Ordinal | 字段 | 类型 | 说明 | 
|---|---|---|---|
| 1 | child_level | uint8 | |
| 2 | parent_level | uint8 | 
PowerDependency
在 fuchsia.hardware.power/config.fidl 中定义
描述两个变量的 PowerLevel 之间的关系
PowerElement。child 是 PowerElement 的名称,
依赖于 parent 的 PowerLevel。
- child是驱动程序拥有的- PowerElement的名称。
- parent是驾驶员有权访问的- PowerElement的名称
- level_deps是从- child到- parent的级别依赖项的映射。
| Ordinal | 字段 | 类型 | 说明 | 
|---|---|---|---|
| 1 | child | string[63] | |
| 2 | parent | ParentElement | |
| 3 | level_deps | vector<LevelTuple>[128] | |
| 4 | strength | RequirementType | 
PowerElement
在 fuchsia.hardware.power/config.fidl 中定义
一组 PowerLevel 和一个直观易懂的标识符。PowerLevel 本身
包含有关超出该级别的有效转换的信息。
| Ordinal | 字段 | 类型 | 说明 | 
|---|---|---|---|
| 1 | name | string[63] | |
| 2 | levels | vector<PowerLevel>[128] | 
PowerElementConfiguration
在 fuchsia.hardware.power/config.fidl 中定义
包含 PowerElement 说明及其任何依赖项
其他 PowerElement。
| Ordinal | 字段 | 类型 | 说明 | 
|---|---|---|---|
| 1 | element | PowerElement | |
| 2 | dependencies | vector<PowerDependency>[128] | 
PowerLevel
在 fuchsia.hardware.power/config.fidl 中定义
设备可以假定的一组零索引等级。
- level是此- PowerLevel的零索引级别。
- name是此- PowerLevel的直观易懂的标签,仅用于 调试。
- transitions描述从该模式进行的有效转换的级别- PowerLevel。
| Ordinal | 字段 | 类型 | 说明 | 
|---|---|---|---|
| 1 | level | uint8 | |
| 2 | name | string[63] | |
| 3 | transitions | vector<Transition>[127] | 
过渡
在 fuchsia.hardware.power/config.fidl 中定义
提升到一个战力水平所需的时间。
- target_level是我们要移至的电量。
- latency_us是升到该级别所需的时间(以微秒为单位)。
| Ordinal | 字段 | 类型 | 说明 | 
|---|---|---|---|
| 1 | target_level | uint8 | |
| 2 | latency_us | uint32 | 
联合体
Device_GetCurrentVoltage_Result 严格
在 fuchsia.hardware.power/power.fidl 中定义
| Ordinal | 变体 | 类型 | 说明 | 
|---|---|---|---|
| 1 | response | Device_GetCurrentVoltage_Response | |
| 2 | err | zx/Status | 
Device_GetPowerDomainStatus_Result strict
在 fuchsia.hardware.power/power.fidl 中定义
| Ordinal | 变体 | 类型 | 说明 | 
|---|---|---|---|
| 1 | response | Device_GetPowerDomainStatus_Response | |
| 2 | err | zx/Status | 
Device_GetSupportedVoltageRange_Result 严格
在 fuchsia.hardware.power/power.fidl 中定义
| Ordinal | 变体 | 类型 | 说明 | 
|---|---|---|---|
| 1 | response | Device_GetSupportedVoltageRange_Response | |
| 2 | err | zx/Status | 
Device_ReadPmicCtrlReg_Result 严格
在 fuchsia.hardware.power/power.fidl 中定义
| Ordinal | 变体 | 类型 | 说明 | 
|---|---|---|---|
| 1 | response | Device_ReadPmicCtrlReg_Response | |
| 2 | err | zx/Status | 
Device_RegisterPowerDomain_Result strict
在 fuchsia.hardware.power/power.fidl 中定义
| Ordinal | 变体 | 类型 | 说明 | 
|---|---|---|---|
| 1 | response | Device_RegisterPowerDomain_Response | |
| 2 | err | zx/Status | 
Device_RequestVoltage_Result 严格
在 fuchsia.hardware.power/power.fidl 中定义
| Ordinal | 变体 | 类型 | 说明 | 
|---|---|---|---|
| 1 | response | Device_RequestVoltage_Response | |
| 2 | err | zx/Status | 
Device_UnregisterPowerDomain_Result strict
在 fuchsia.hardware.power/power.fidl 中定义
| Ordinal | 变体 | 类型 | 说明 | 
|---|---|---|---|
| 1 | response | Device_UnregisterPowerDomain_Response | |
| 2 | err | zx/Status | 
Device_WritePmicCtrlReg_Result strict
在 fuchsia.hardware.power/power.fidl 中定义
| Ordinal | 变体 | 类型 | 说明 | 
|---|---|---|---|
| 1 | response | Device_WritePmicCtrlReg_Response | |
| 2 | err | zx/Status | 
ParentElement 采用严格的规范
在 fuchsia.hardware.power/config.fidl 中定义
作为另一个元素的父元素的标识符,换句话说 另一个元素所依赖的元素。
| Ordinal | 变体 | 类型 | 说明 | 
|---|---|---|---|
| 1 | sag | SagElement | 父元素是 SAG 的元素之一,访问令牌应 通过与 SAG 相关的相应协议获得。 | 
| 2 | instance_name | string[63] | 父元素的访问令牌应可从以下位置获得:
 | 
PowerTokenProvider_GetToken_Result 严格的 资源
在 fuchsia.hardware.power/config.fidl 中定义
| Ordinal | 变体 | 类型 | 说明 | 
|---|---|---|---|
| 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_POWER_ELEMENTS | 32 | 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 | 频道 |