platform/chrome: cros_ec_rpmsg: Add host command AP sleep state support
authorYilun Lin <yllin@chromium.org>
Wed, 14 Aug 2019 08:17:57 +0000 (16:17 +0800)
committerEnric Balletbo i Serra <enric.balletbo@collabora.com>
Tue, 27 Aug 2019 07:38:31 +0000 (09:38 +0200)
Add EC host command to inform EC of AP suspend/resume status.

Signed-off-by: Yilun Lin <yllin@chromium.org>
Tested-by: Pi-Hsun Shih <pihsun@chromium.org>
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
drivers/platform/chrome/cros_ec_rpmsg.c

index 5d3fb2a..6f34fe6 100644 (file)
@@ -236,6 +236,25 @@ static void cros_ec_rpmsg_remove(struct rpmsg_device *rpdev)
        cancel_work_sync(&ec_rpmsg->host_event_work);
 }
 
+#ifdef CONFIG_PM_SLEEP
+static int cros_ec_rpmsg_suspend(struct device *dev)
+{
+       struct cros_ec_device *ec_dev = dev_get_drvdata(dev);
+
+       return cros_ec_suspend(ec_dev);
+}
+
+static int cros_ec_rpmsg_resume(struct device *dev)
+{
+       struct cros_ec_device *ec_dev = dev_get_drvdata(dev);
+
+       return cros_ec_resume(ec_dev);
+}
+#endif
+
+static SIMPLE_DEV_PM_OPS(cros_ec_rpmsg_pm_ops, cros_ec_rpmsg_suspend,
+                        cros_ec_rpmsg_resume);
+
 static const struct of_device_id cros_ec_rpmsg_of_match[] = {
        { .compatible = "google,cros-ec-rpmsg", },
        { }
@@ -246,6 +265,7 @@ static struct rpmsg_driver cros_ec_driver_rpmsg = {
        .drv = {
                .name   = "cros-ec-rpmsg",
                .of_match_table = cros_ec_rpmsg_of_match,
+               .pm     = &cros_ec_rpmsg_pm_ops,
        },
        .probe          = cros_ec_rpmsg_probe,
        .remove         = cros_ec_rpmsg_remove,