The complete system can be classified into multiple domains for voltage control. Each domain is the logical group of one or more devices that have a single
voltage source. The action corresponding to the messages in this group controls
the voltage source which affects the device or the group of devices together
since those devices share the same voltage source. Each domain is identified by domain_id which is a 32 bit`
integer starting from 0
.
Below table lists the services in this group:
Service ID | Service Name | Request Type |
---|---|---|
0x01 |
ENABLE_NOTIFICATION |
NORMAL_REQUEST |
0x02 |
GET_NUM_DOMAINS |
NORMAL_REQUEST |
0x03 |
GET_DOMAIN_ATTRIBUTES |
NORMAL_REQUEST |
0x04 |
GET_DOMAIN_LEVELS |
NORMAL_REQUEST |
0x05 |
SET_DOMAIN_CONFIG |
NORMAL_REQUEST |
0x06 |
GET_DOMAIN_CONFIG |
NORMAL_REQUEST |
0x07 |
SET_DOMAIN_LEVEL |
NORMAL_REQUEST |
0x08 |
GET_DOMAIN_LEVEL |
NORMAL_REQUEST |
This service allows AP to subscribe to voltage service group notifications. Platform can optionally support notifications of events which might occur in the platform. PuC can send these notification messages to AP if they are implemented and AP has subscribed to these. Events supported are described above in Voltage Notifications.
Word | Name | Type | Description |
---|---|---|---|
0 |
EVENT_ID |
uint32 |
Event to be subscribed for notification. |
Word | Name | Type | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0 |
STATUS |
int32 |
Return Status Code
|
Request for number of domains available in the system.
-
NA
Word | Name | Type | Description | ||||
---|---|---|---|---|---|---|---|
0 |
STATUS |
int32 |
Return Status Code
|
||||
1 |
NUM_DOMAINS |
uint32 |
Number of Domains |
Each domain may have supported multiple voltage levels which are allowed by the
domain to operate. This message for each domain returns a domain name which is a
null terminated ASCII string of 16 byte
.
Number of levels represents the total number of voltage levels supported by a
voltage domain. Transition latency is the max time taken for voltage to
stabilize when changed on the regulator. Voltage levels depending on the
hardware can be of different formats and this service currently supports Simple
Linear, Multi-Linear and Discrete range. More voltage formats can be supported
in future if required.
Word | Name | Type | Description |
---|---|---|---|
0 |
DOMAIN_ID |
uint32 |
Voltage Domain ID |
Word | Name | Type | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0 |
STATUS |
int32 |
Return Status Code
|
||||||||
1 |
FLAGS |
uint32 |
|
||||||||
2 |
NUM_LEVELS |
uint32 |
Number of voltage levels supported by domain. Some values are dependent on the VOLTAGE_FORMAT.
|
||||||||
3 |
TRANSITION_LATENCY |
uint32 |
Transition Latency |
||||||||
4:7 |
VOLTAGE_DOMAIN_NAME |
uint8[16] |
Voltage domain name |
Each domain may support multiple voltage levels which are allowed by the domain to operate. Depending on the Power supply/Voltage Regulator the domain may support voltage levels which can be either discrete or stepwise range. Discrete voltage range will be in sequence starting from lower voltage value at the lowest index to higher voltage level with increasing index. Number of voltage levels returned depends on the format of the voltage level. Total words required for the number levels according to the format in one message cannot exceed the total words available in one message DATA field. If they exceed then PuC will return the number of levels which can be accommodated in one message and set the REMAINING field accordingly. AP, when REMAINING field is not 0 must call this service again with appropriate VOLTAGE_LEVEL_INDEX set to get the remaining voltage levels. It’s possible that multiple service calls may be required to get all the voltage levels.
Word | Name | Type | Description |
---|---|---|---|
0 |
DOMAIN_ID |
uint32 |
Voltage Domain ID |
1 |
VOLTAGE_LEVEL_INDEX |
uint32 |
Voltage level index |
Word | Name | Type | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0 |
STATUS |
int32 |
Return Status Code
|
||||||||
1 |
FLAGS |
uint32 |
Reserved and must be |
||||||||
2 |
REMAINING |
uint32 |
Remaining number of levels. |
||||||||
3 |
RETURNED |
uint32 |
Number of levels returned so far. |
||||||||
4 |
VOLTAGE[0] |
uint32 |
Voltage array where each entry in the array is a voltage level in microvolts(uV). N is specified by the GET_DOMAIN_ATTRIBUTES.NUM_LEVELS. Voltage represented in microvolt (uV). If the bits in GET_DOMAIN_ATTRIBUTES.FLAGS[31:30] are set to If the bits in GET_DOMAIN_ATTRIBUTES.FLAGS[31:30] are set to If the bits in GET_DOMAIN_ATTRIBUTES.FLAGS[31:30] are set to If the bits in GET_DOMAIN_ATTRIBUTES.FLAGS[31:30] are set to 3, it means that
the entry array contains discrete voltage levels listed in ascending numeric
order(Low index represents minimum voltage level, and high index represents
maximum voltage level supported). |
||||||||
5 |
VOLTAGE[1] |
int32 |
|||||||||
… |
VOLTAGE[N-1] |
int32 |
Set voltage config message enable or disable any domain. Enabling the voltage means applying the domain with the voltage level to operate normally. AP can enable the voltage to any domain without knowing the actual voltage levels. Disabling the voltage level means disabling the voltage supply to the domain.
CONFIG field encodes these discrete settings which do not require AP to know the voltage level
Word | Name | Type | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
0 |
DOMAIN_ID |
uint32 |
Voltage Domain ID |
||||||
1 |
CONFIG |
uint32 |
Voltage domain config
|
Word | Name | Type | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0 |
STATUS |
int32 |
Return Status Code
|
Get voltage config message request for the configuration of the voltage domain currently set.
Word | Name | Type | Description |
---|---|---|---|
0 |
DOMAIN_ID |
uint32 |
Voltage Domain ID |
Word | Name | Type | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
0 |
STATUS |
int32 |
Return Status Code
|
||||||
1 |
CONFIG |
uint32 |
Voltage domain config
|
Set the voltage level in microvolts(uV) of a voltage domain
Word | Name | Type | Description |
---|---|---|---|
0 |
DOMAIN_ID |
uint32 |
Voltage Domain ID |
1 |
VOLTAGE_LEVEL |
int32 |
Voltage level |
Word | Name | Type | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0 |
STATUS |
int32 |
Return Status Code
|
Get the current voltage level in microvolts(uV) of a voltage domain.
Word | Name | Type | Description |
---|---|---|---|
0 |
DOMAIN_ID |
uint32 |
Voltage Domain ID |
Word | Name | Type | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
0 |
STATUS |
int32 |
Return Status Code
|
||||||
1 |
VOLTAGE_LEVEL |
int32 |
Voltage Level |