Commit 83531703 authored by Soren Brinkmann's avatar Soren Brinkmann
Browse files

zynqmp: PM: Migrate to new shutdown interface


Signed-off-by: default avatarSoren Brinkmann <soren.brinkmann@xilinx.com>
parent 46cb684f
...@@ -270,7 +270,8 @@ static void __dead2 zynqmp_system_off(void) ...@@ -270,7 +270,8 @@ static void __dead2 zynqmp_system_off(void)
plat_arm_interconnect_exit_coherency(); plat_arm_interconnect_exit_coherency();
/* Send the power down request to the PMU */ /* Send the power down request to the PMU */
pm_system_shutdown(0); pm_system_shutdown(PMF_SHUTDOWN_TYPE_SHUTDOWN,
PMF_SHUTDOWN_SUBTYPE_SUBSYSTEM);
while (1) while (1)
wfi(); wfi();
...@@ -304,7 +305,8 @@ static void __dead2 zynqmp_system_reset(void) ...@@ -304,7 +305,8 @@ static void __dead2 zynqmp_system_reset(void)
plat_arm_interconnect_exit_coherency(); plat_arm_interconnect_exit_coherency();
/* Send the system reset request to the PMU */ /* Send the system reset request to the PMU */
pm_system_shutdown(1); pm_system_shutdown(PMF_SHUTDOWN_TYPE_RESET,
PMF_SHUTDOWN_SUBTYPE_SUBSYSTEM);
while (1) while (1)
wfi(); wfi();
......
...@@ -243,11 +243,11 @@ enum pm_ret_status pm_set_wakeup_source(enum pm_node_id target, ...@@ -243,11 +243,11 @@ enum pm_ret_status pm_set_wakeup_source(enum pm_node_id target,
* *
* @return Returns status, either success or error+reason * @return Returns status, either success or error+reason
*/ */
enum pm_ret_status pm_system_shutdown(unsigned int restart) enum pm_ret_status pm_system_shutdown(unsigned int type, unsigned int subtype)
{ {
uint32_t payload[PAYLOAD_ARG_CNT]; uint32_t payload[PAYLOAD_ARG_CNT];
PM_PACK_PAYLOAD2(payload, PM_SYSTEM_SHUTDOWN, restart); PM_PACK_PAYLOAD3(payload, PM_SYSTEM_SHUTDOWN, type, subtype);
return pm_ipi_send(primary_proc, payload); return pm_ipi_send(primary_proc, payload);
} }
......
...@@ -61,7 +61,7 @@ enum pm_ret_status pm_set_wakeup_source(enum pm_node_id target, ...@@ -61,7 +61,7 @@ enum pm_ret_status pm_set_wakeup_source(enum pm_node_id target,
enum pm_node_id wkup_node, enum pm_node_id wkup_node,
unsigned int enable); unsigned int enable);
enum pm_ret_status pm_system_shutdown(unsigned int restart); enum pm_ret_status pm_system_shutdown(unsigned int type, unsigned int subtype);
enum pm_ret_status pm_init_suspend_cb(enum pm_suspend_reason reason, enum pm_ret_status pm_init_suspend_cb(enum pm_suspend_reason reason,
unsigned int latency, unsigned int latency,
......
...@@ -225,4 +225,15 @@ enum pm_boot_status { ...@@ -225,4 +225,15 @@ enum pm_boot_status {
PM_BOOT_ERROR, PM_BOOT_ERROR,
}; };
enum pm_shutdown_type {
PMF_SHUTDOWN_TYPE_SHUTDOWN,
PMF_SHUTDOWN_TYPE_RESET,
};
enum pm_shutdown_subtype {
PMF_SHUTDOWN_SUBTYPE_SUBSYSTEM,
PMF_SHUTDOWN_SUBTYPE_PS_ONLY,
PMF_SHUTDOWN_SUBTYPE_SYSTEM,
};
#endif /* _PM_DEFS_H_ */ #endif /* _PM_DEFS_H_ */
...@@ -152,7 +152,7 @@ uint64_t pm_smc_handler(uint32_t smc_fid, uint64_t x1, uint64_t x2, uint64_t x3, ...@@ -152,7 +152,7 @@ uint64_t pm_smc_handler(uint32_t smc_fid, uint64_t x1, uint64_t x2, uint64_t x3,
SMC_RET1(handle, (uint64_t)ret); SMC_RET1(handle, (uint64_t)ret);
case PM_SYSTEM_SHUTDOWN: case PM_SYSTEM_SHUTDOWN:
ret = pm_system_shutdown(pm_arg[0]); ret = pm_system_shutdown(pm_arg[0], pm_arg[1]);
SMC_RET1(handle, (uint64_t)ret); SMC_RET1(handle, (uint64_t)ret);
case PM_REQ_NODE: case PM_REQ_NODE:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment