summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/soc/qcom/watchdog_v2.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/soc/qcom/watchdog_v2.c b/drivers/soc/qcom/watchdog_v2.c
index 82e8219fb827..761259842393 100644
--- a/drivers/soc/qcom/watchdog_v2.c
+++ b/drivers/soc/qcom/watchdog_v2.c
@@ -386,6 +386,24 @@ static int msm_watchdog_remove(struct platform_device *pdev)
return 0;
}
+void msm_trigger_wdog_bite(void)
+{
+ if (!wdog_data)
+ return;
+ pr_info("Causing a watchdog bite!");
+ __raw_writel(1, wdog_data->base + WDT0_BITE_TIME);
+ mb();
+ __raw_writel(1, wdog_data->base + WDT0_RST);
+ mb();
+ /* Delay to make sure bite occurs */
+ mdelay(2000);
+ pr_err("Wdog - STS: 0x%x, CTL: 0x%x, BARK TIME: 0x%x, BITE TIME: 0x%x",
+ __raw_readl(wdog_data->base + WDT0_STS),
+ __raw_readl(wdog_data->base + WDT0_EN),
+ __raw_readl(wdog_data->base + WDT0_BARK_TIME),
+ __raw_readl(wdog_data->base + WDT0_BITE_TIME));
+}
+
static irqreturn_t wdog_bark_handler(int irq, void *dev_id)
{
struct msm_watchdog_data *wdog_dd = (struct msm_watchdog_data *)dev_id;