+#ifdef CONFIG_PM
+static int rockchip_mbox_suspend(struct platform_device *pdev,
+ pm_message_t state)
+{
+ struct rockchip_mbox *mb = platform_get_drvdata(pdev);
+
+ if (scpi_sys_set_mcu_state_suspend())
+ dev_err(mb->mbox.dev, "scpi_sys_set_mcu_state_suspend timeout.\n");
+ return 0;
+}
+
+static int rockchip_mbox_resume(struct platform_device *pdev)
+{
+ struct rockchip_mbox *mb = platform_get_drvdata(pdev);
+
+ writel_relaxed((1 << mb->mbox.num_chans) - 1,
+ mb->mbox_base + MAILBOX_B2A_INTEN);
+
+ if (scpi_sys_set_mcu_state_resume())
+ dev_err(mb->mbox.dev, "scpi_sys_set_mcu_state_resume timeout.\n");
+ return 0;
+}
+#endif /* CONFIG_PM */
+