該結構體內含的 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(in uV) 和 max_supported_voltage(in 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]
|
無預設 |
ENUMS
PowerDomainStatus 嚴格
類型:uint8
定義於 fuchsia.hardware.power/power.fidl
名稱 | 物超所值 | 說明 |
---|---|---|
DISABLED |
1 |
|
已啟用 |
2 |
RequirementType strict
類型: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
和人類可讀的 ID。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]
|
轉場
如 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
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Device_GetCurrentVoltage_Response
|
|
2 |
err |
zx/Status
|
Device_GetPowerDomainStatus_Result 嚴格
如 fuchsia.hardware.power/power.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Device_GetPowerDomainStatus_Response
|
|
2 |
err |
zx/Status
|
Device_GetSupportedVoltageRange_Result 嚴格
如 fuchsia.hardware.power/power.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Device_GetSupportedVoltageRange_Response
|
|
2 |
err |
zx/Status
|
Device_ReadPmicCtrlReg_Result 嚴格
如 fuchsia.hardware.power/power.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Device_ReadPmicCtrlReg_Response
|
|
2 |
err |
zx/Status
|
Device_RegisterPowerDomain_Result 嚴格
如 fuchsia.hardware.power/power.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Device_RegisterPowerDomain_Response
|
|
2 |
err |
zx/Status
|
Device_RequestVoltage_Result 嚴格
如 fuchsia.hardware.power/power.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Device_RequestVoltage_Response
|
|
2 |
err |
zx/Status
|
Device_UnregisterPowerDomain_Result 嚴格
如 fuchsia.hardware.power/power.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Device_UnregisterPowerDomain_Response
|
|
2 |
err |
zx/Status
|
Device_WritePmicCtrlReg_Result 嚴格
如 fuchsia.hardware.power/power.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Device_WritePmicCtrlReg_Response
|
|
2 |
err |
zx/Status
|
父項元素嚴格
如 fuchsia.hardware.power/config.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
name |
string[63]
|
|
2 |
sag |
SagElement
|
PowerTokenProvider_GetToken_Result 嚴格 資源
如 fuchsia.hardware.power/config.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
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
名稱 | 類型 | 傳輸 |
---|---|---|
device |
fuchsia.hardware.power/Device
|
版本 |