diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/soc/qcom/watchdog_v2.c | 18 |
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; |