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;
|
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 {
|
typedef enum {
|
||||||
SCPI_CMD_SCP_READY = 0x01,
|
SCPI_CMD_SCP_READY = 0x01,
|
||||||
|
SCPI_CMD_SET_CSS_POWER_STATE = 0x04,
|
||||||
} spci_command;
|
} 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 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__ */
|
#endif /* __SCPI_H__ */
|
||||||
|
|
Loading…
Reference in New Issue