power: reset: power key detection only when power off

1. In power off flow:
- detect power key is really released
- execute acpm_prepare_reboot
- AOSP send SMC to TF-A to do real power off action.

2. In cold reboot flow:
- skip power key detection
- execute acpm_prepare_reboot
- AOSP send SMC to TF-A to do real cold reboot action

Bug: 234066226
Signed-off-by: Jone Chou <jonechou@google.com>
Change-Id: Id9ace2c2b8a9841f5f5ac978b8650cad793c0d7a
(cherry picked from commit 4cc727a5900bc7473b8c0f3b075c6ae63d91e0f9)
diff --git a/exynos-gs201-reboot.c b/exynos-gs201-reboot.c
index 0e6b2b9..4917058 100644
--- a/exynos-gs201-reboot.c
+++ b/exynos-gs201-reboot.c
@@ -117,6 +117,27 @@
 {
 	exynos_reboot_parse(cmd);
 
+	if (mode != SYS_POWER_OFF)
+		return NOTIFY_DONE;
+
+	while (1) {
+		/* wait for power button release */
+		if (!pmic_read_pwrkey_status()) {
+#if IS_ENABLED(CONFIG_GS_ACPM)
+			acpm_prepare_reboot();
+#endif
+			pr_info("ready to do power off.\n");
+			break;
+		} else {
+			/*
+			 * if power button is not released,
+			 * wait and check TA again
+			 */
+			pr_info("PWR Key is not released.\n");
+		}
+		mdelay(1000);
+	}
+
 	return NOTIFY_DONE;
 }
 
@@ -141,27 +162,6 @@
 	.priority = 130,
 };
 
-static void exynos_power_off(struct platform_device *pdev)
-{
-	while (1) {
-		/* wait for power button release */
-		if (!pmic_read_pwrkey_status()) {
-#if IS_ENABLED(CONFIG_GS_ACPM)
-			acpm_prepare_reboot();
-#endif
-			pr_info("ready to do power off.\n");
-			break;
-		} else {
-			/*
-			 * if power button is not released,
-			 * wait and check TA again
-			 */
-			pr_info("PWR Key is not released.\n");
-		}
-		mdelay(1000);
-	}
-}
-
 static int exynos_reboot_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
@@ -223,7 +223,6 @@
 
 static struct platform_driver exynos_reboot_driver = {
 	.probe = exynos_reboot_probe,
-	.shutdown = exynos_power_off,
 	.driver = {
 		.name = "exynos-reboot",
 		.of_match_table = exynos_reboot_of_match,