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 <[email protected]> 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");