summaryrefslogtreecommitdiff
path: root/chip/ish/watchdog.c
diff options
context:
space:
mode:
Diffstat (limited to 'chip/ish/watchdog.c')
-rw-r--r--chip/ish/watchdog.c66
1 files changed, 0 insertions, 66 deletions
diff --git a/chip/ish/watchdog.c b/chip/ish/watchdog.c
deleted file mode 100644
index bf78f49312..0000000000
--- a/chip/ish/watchdog.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- *
- * Watchdog Timer
- *
- * In ISH, there is a watchdog timer available from the hardware. It is
- * controlled by a few registers:
- *
- * - WDT_CONTROL (consists of enable bit, T1, and T2 values): When T1
- * reaches 0, a warning is fired. After T2 then reaches 0, the system
- * will reset.
- * - WDT_RELOAD: Pet the watchdog by setting to 1
- * - WDT_VALUES: Gives software access to T1 and T2 if needed
- *
- * For ISH implementation, we wish to reset only the ISH. Waiting until
- * T2 expires will kill the whole system. The functionality of T2 is
- * ignored, and we simply call system_reset when T1 expires. T2 will
- * only be used if the system cannot reset when T1 expires.
- */
-
-#include "common.h"
-#include "ec_commands.h"
-#include "hooks.h"
-#include "ish_persistent_data.h"
-#include "task.h"
-#include "registers.h"
-#include "system.h"
-#include "watchdog.h"
-
-/* Units are hundreds of milliseconds */
-#define WDT_T1_PERIOD (100) /* 10 seconds */
-#define WDT_T2_PERIOD (10) /* 1 second */
-
-int watchdog_init(void)
-{
- /*
- * Put reset counter back at zero if last reset was not caused
- * by watchdog
- */
- if ((system_get_reset_flags() & EC_RESET_FLAG_WATCHDOG) == 0)
- ish_persistent_data.watchdog_counter = 0;
-
- /* Initialize WDT clock divider */
- CCU_WDT_CD = WDT_CLOCK_HZ / 10; /* 10 Hz => 100 ms period */
-
- /* Enable the watchdog timer and set initial T1/T2 values */
- WDT_CONTROL = WDT_CONTROL_ENABLE_BIT
- | (WDT_T2_PERIOD << 8)
- | WDT_T1_PERIOD;
-
- task_enable_irq(ISH_WDT_IRQ);
-
- return EC_SUCCESS;
-}
-
-void watchdog_reload(void)
-{
- /*
- * ISH Supplemental Registers Info, 1.2.6.2:
- * "When firmware writes a 1 to this bit, hardware reloads
- * the values in WDT_T1 and WDT_T2..."
- */
- WDT_RELOAD = 1;
-}
-DECLARE_HOOK(HOOK_TICK, watchdog_reload, HOOK_PRIO_DEFAULT);