Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7d896aac authored by Jonghwan Choi's avatar Jonghwan Choi Committed by Kukjin Kim
Browse files

ARM: EXYNOS: Clear SYS_WDTRESET bit to use watchdog reset



When SYS_WDTRESET is set, watchdog timer reset request
is ignored by power management unit.

Signed-off-by: default avatarJonghwan Choi <jhbird.choi@samsung.com>
Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
parent 485802a6
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -232,6 +232,11 @@


#define EXYNOS5_USB_CFG						S5P_PMUREG(0x0230)
#define EXYNOS5_USB_CFG						S5P_PMUREG(0x0230)


#define EXYNOS5_AUTO_WDTRESET_DISABLE				S5P_PMUREG(0x0408)
#define EXYNOS5_MASK_WDTRESET_REQUEST				S5P_PMUREG(0x040C)

#define EXYNOS5_SYS_WDTRESET					(1 << 20)

#define EXYNOS5_ARM_CORE0_SYS_PWR_REG				S5P_PMUREG(0x1000)
#define EXYNOS5_ARM_CORE0_SYS_PWR_REG				S5P_PMUREG(0x1000)
#define EXYNOS5_DIS_IRQ_ARM_CORE0_LOCAL_SYS_PWR_REG		S5P_PMUREG(0x1004)
#define EXYNOS5_DIS_IRQ_ARM_CORE0_LOCAL_SYS_PWR_REG		S5P_PMUREG(0x1004)
#define EXYNOS5_DIS_IRQ_ARM_CORE0_CENTRAL_SYS_PWR_REG		S5P_PMUREG(0x1008)
#define EXYNOS5_DIS_IRQ_ARM_CORE0_CENTRAL_SYS_PWR_REG		S5P_PMUREG(0x1008)
+14 −0
Original line number Original line Diff line number Diff line
@@ -390,6 +390,8 @@ void exynos_sys_powerdown_conf(enum sys_powerdown mode)


static int __init exynos_pmu_init(void)
static int __init exynos_pmu_init(void)
{
{
	unsigned int value;

	exynos_pmu_config = exynos4210_pmu_config;
	exynos_pmu_config = exynos4210_pmu_config;


	if (soc_is_exynos4210()) {
	if (soc_is_exynos4210()) {
@@ -399,6 +401,18 @@ static int __init exynos_pmu_init(void)
		exynos_pmu_config = exynos4x12_pmu_config;
		exynos_pmu_config = exynos4x12_pmu_config;
		pr_info("EXYNOS4x12 PMU Initialize\n");
		pr_info("EXYNOS4x12 PMU Initialize\n");
	} else if (soc_is_exynos5250()) {
	} else if (soc_is_exynos5250()) {
		/*
		 * When SYS_WDTRESET is set, watchdog timer reset request
		 * is ignored by power management unit.
		 */
		value = __raw_readl(EXYNOS5_AUTO_WDTRESET_DISABLE);
		value &= ~EXYNOS5_SYS_WDTRESET;
		__raw_writel(value, EXYNOS5_AUTO_WDTRESET_DISABLE);

		value = __raw_readl(EXYNOS5_MASK_WDTRESET_REQUEST);
		value &= ~EXYNOS5_SYS_WDTRESET;
		__raw_writel(value, EXYNOS5_MASK_WDTRESET_REQUEST);

		exynos_pmu_config = exynos5250_pmu_config;
		exynos_pmu_config = exynos5250_pmu_config;
		pr_info("EXYNOS5250 PMU Initialize\n");
		pr_info("EXYNOS5250 PMU Initialize\n");
	} else {
	} else {