power: reset: gs101: use PMU_INFORM2 for dump_gpr_mode

Set DUMP_GPR_MODE to PMU_INFORM2 for all warm reset cases.

Bug: 276356519
Signed-off-by: Jone Chou <jonechou@google.com>
Change-Id: Ibfc017a71206f2472ef98d5b6d65a4887827eef2
diff --git a/exynos-gs101-reboot.c b/exynos-gs101-reboot.c
index c9bd602..834b4e8 100644
--- a/exynos-gs101-reboot.c
+++ b/exynos-gs101-reboot.c
@@ -31,11 +31,14 @@
 
 #define BMS_RSBM_VALID			BIT(31)
 
+#define DUMP_GPR_MODE			(0xDAB)
+
 static struct regmap *pmureg;
 static u32 warm_reboot_offset, warm_reboot_trigger;
 static u32 cold_reboot_offset, cold_reboot_trigger;
 static u32 reboot_cmd_offset;
 static u32 shutdown_offset, shutdown_trigger;
+static u32 dump_gpr_offset;
 static phys_addr_t pmu_alive_base;
 static bool rsbm_supported;
 static bool force_warm_reboot_on_thermal_shutdown;
@@ -199,6 +202,11 @@
 	/* Do S/W Reset */
 	pr_emerg("%s: Exynos SoC reset right now\n", __func__);
 
+	if (reboot_mode == REBOOT_WARM || reboot_mode == REBOOT_SOFT)
+		set_priv_reg(pmu_alive_base + dump_gpr_offset, DUMP_GPR_MODE);
+	else
+		set_priv_reg(pmu_alive_base + dump_gpr_offset, 0x0);
+
 	if (s2mpg10_get_rev_id() == S2MPG10_EVT0 || !rsbm_supported ||
 	    reboot_mode == REBOOT_WARM || reboot_mode == REBOOT_SOFT) {
 		set_priv_reg(pmu_alive_base + warm_reboot_offset, warm_reboot_trigger);
@@ -274,6 +282,11 @@
 		reboot_cmd_offset = EXYNOS_PMU_SYSIP_DAT0;
 	}
 
+	if (of_property_read_u32(np, "dump-gpr-offset", &dump_gpr_offset) < 0) {
+		dev_err(dev, "failed to find dump-gpr-offset property\n");
+		return -EINVAL;
+	}
+
 	force_warm_reboot_on_thermal_shutdown = of_property_read_bool(np,
 						"force-warm-reboot-on-thermal-shutdown");