juno: Implement SCPI Set CSS Power State command
Signed-off-by: Jon Medhurst <tixy@linaro.org>
This commit is contained in:
parent
0aadcc0f19
commit
dbf5789ea6
|
@ -112,3 +112,14 @@ int scpi_wait_ready(void)
|
|||
|
||||
return response == SCP_OK ? 0 : -1;
|
||||
}
|
||||
|
||||
void scpi_set_css_power_state(unsigned mpidr, scpi_power_state cpu_state,
|
||||
scpi_power_state cluster_state, scpi_power_state css_state)
|
||||
{
|
||||
uint32_t state = mpidr & 0x0f; /* CPU ID */
|
||||
state |= (mpidr & 0xf00) >> 4; /* Cluster ID */
|
||||
state |= cpu_state << 8;
|
||||
state |= cluster_state << 12;
|
||||
state |= css_state << 16;
|
||||
scpi_secure_send32(SCPI_CMD_SET_CSS_POWER_STATE, state);
|
||||
}
|
||||
|
|
|
@ -58,8 +58,17 @@ typedef uint32_t spci_status;
|
|||
|
||||
typedef enum {
|
||||
SCPI_CMD_SCP_READY = 0x01,
|
||||
SCPI_CMD_SET_CSS_POWER_STATE = 0x04,
|
||||
} spci_command;
|
||||
|
||||
typedef enum {
|
||||
scpi_power_on = 0,
|
||||
scpi_power_retention = 1,
|
||||
scpi_power_off = 3,
|
||||
} scpi_power_state;
|
||||
|
||||
extern int scpi_wait_ready(void);
|
||||
extern void scpi_set_css_power_state(unsigned mpidr, scpi_power_state cpu_state,
|
||||
scpi_power_state cluster_state, scpi_power_state css_state);
|
||||
|
||||
#endif /* __SCPI_H__ */
|
||||
|
|
Loading…
Reference in New Issue