juno: Implement SCPI Set CSS Power State command

Signed-off-by: Jon Medhurst <tixy@linaro.org>
This commit is contained in:
Jon Medhurst 2014-02-11 09:46:14 +00:00 committed by Sandrine Bailleux
parent 0aadcc0f19
commit dbf5789ea6
2 changed files with 20 additions and 0 deletions

View File

@ -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);
}

View File

@ -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__ */