lpc18xx_wdt 63 drivers/watchdog/lpc18xx_wdt.c struct lpc18xx_wdt_dev *lpc18xx_wdt = watchdog_get_drvdata(wdt_dev); lpc18xx_wdt 70 drivers/watchdog/lpc18xx_wdt.c spin_lock_irqsave(&lpc18xx_wdt->lock, flags); lpc18xx_wdt 71 drivers/watchdog/lpc18xx_wdt.c writel(LPC18XX_WDT_FEED_MAGIC1, lpc18xx_wdt->base + LPC18XX_WDT_FEED); lpc18xx_wdt 72 drivers/watchdog/lpc18xx_wdt.c writel(LPC18XX_WDT_FEED_MAGIC2, lpc18xx_wdt->base + LPC18XX_WDT_FEED); lpc18xx_wdt 73 drivers/watchdog/lpc18xx_wdt.c spin_unlock_irqrestore(&lpc18xx_wdt->lock, flags); lpc18xx_wdt 80 drivers/watchdog/lpc18xx_wdt.c struct lpc18xx_wdt_dev *lpc18xx_wdt = from_timer(lpc18xx_wdt, t, timer); lpc18xx_wdt 81 drivers/watchdog/lpc18xx_wdt.c struct watchdog_device *wdt_dev = &lpc18xx_wdt->wdt_dev; lpc18xx_wdt 86 drivers/watchdog/lpc18xx_wdt.c mod_timer(&lpc18xx_wdt->timer, jiffies + lpc18xx_wdt 96 drivers/watchdog/lpc18xx_wdt.c struct lpc18xx_wdt_dev *lpc18xx_wdt = watchdog_get_drvdata(wdt_dev); lpc18xx_wdt 98 drivers/watchdog/lpc18xx_wdt.c lpc18xx_wdt_timer_feed(&lpc18xx_wdt->timer); lpc18xx_wdt 103 drivers/watchdog/lpc18xx_wdt.c static void __lpc18xx_wdt_set_timeout(struct lpc18xx_wdt_dev *lpc18xx_wdt) lpc18xx_wdt 107 drivers/watchdog/lpc18xx_wdt.c val = DIV_ROUND_UP(lpc18xx_wdt->wdt_dev.timeout * lpc18xx_wdt->clk_rate, lpc18xx_wdt 109 drivers/watchdog/lpc18xx_wdt.c writel(val, lpc18xx_wdt->base + LPC18XX_WDT_TC); lpc18xx_wdt 115 drivers/watchdog/lpc18xx_wdt.c struct lpc18xx_wdt_dev *lpc18xx_wdt = watchdog_get_drvdata(wdt_dev); lpc18xx_wdt 117 drivers/watchdog/lpc18xx_wdt.c lpc18xx_wdt->wdt_dev.timeout = new_timeout; lpc18xx_wdt 118 drivers/watchdog/lpc18xx_wdt.c __lpc18xx_wdt_set_timeout(lpc18xx_wdt); lpc18xx_wdt 125 drivers/watchdog/lpc18xx_wdt.c struct lpc18xx_wdt_dev *lpc18xx_wdt = watchdog_get_drvdata(wdt_dev); lpc18xx_wdt 128 drivers/watchdog/lpc18xx_wdt.c val = readl(lpc18xx_wdt->base + LPC18XX_WDT_TV); lpc18xx_wdt 129 drivers/watchdog/lpc18xx_wdt.c return (val * LPC18XX_WDT_CLK_DIV) / lpc18xx_wdt->clk_rate; lpc18xx_wdt 134 drivers/watchdog/lpc18xx_wdt.c struct lpc18xx_wdt_dev *lpc18xx_wdt = watchdog_get_drvdata(wdt_dev); lpc18xx_wdt 137 drivers/watchdog/lpc18xx_wdt.c if (timer_pending(&lpc18xx_wdt->timer)) lpc18xx_wdt 138 drivers/watchdog/lpc18xx_wdt.c del_timer(&lpc18xx_wdt->timer); lpc18xx_wdt 140 drivers/watchdog/lpc18xx_wdt.c val = readl(lpc18xx_wdt->base + LPC18XX_WDT_MOD); lpc18xx_wdt 143 drivers/watchdog/lpc18xx_wdt.c writel(val, lpc18xx_wdt->base + LPC18XX_WDT_MOD); lpc18xx_wdt 158 drivers/watchdog/lpc18xx_wdt.c struct lpc18xx_wdt_dev *lpc18xx_wdt = watchdog_get_drvdata(wdt_dev); lpc18xx_wdt 165 drivers/watchdog/lpc18xx_wdt.c spin_lock_irqsave(&lpc18xx_wdt->lock, flags); lpc18xx_wdt 167 drivers/watchdog/lpc18xx_wdt.c val = readl(lpc18xx_wdt->base + LPC18XX_WDT_MOD); lpc18xx_wdt 170 drivers/watchdog/lpc18xx_wdt.c writel(val, lpc18xx_wdt->base + LPC18XX_WDT_MOD); lpc18xx_wdt 172 drivers/watchdog/lpc18xx_wdt.c writel(LPC18XX_WDT_FEED_MAGIC1, lpc18xx_wdt->base + LPC18XX_WDT_FEED); lpc18xx_wdt 173 drivers/watchdog/lpc18xx_wdt.c writel(LPC18XX_WDT_FEED_MAGIC2, lpc18xx_wdt->base + LPC18XX_WDT_FEED); lpc18xx_wdt 175 drivers/watchdog/lpc18xx_wdt.c writel(LPC18XX_WDT_FEED_MAGIC1, lpc18xx_wdt->base + LPC18XX_WDT_FEED); lpc18xx_wdt 176 drivers/watchdog/lpc18xx_wdt.c writel(LPC18XX_WDT_FEED_MAGIC1, lpc18xx_wdt->base + LPC18XX_WDT_FEED); lpc18xx_wdt 178 drivers/watchdog/lpc18xx_wdt.c spin_unlock_irqrestore(&lpc18xx_wdt->lock, flags); lpc18xx_wdt 207 drivers/watchdog/lpc18xx_wdt.c struct lpc18xx_wdt_dev *lpc18xx_wdt; lpc18xx_wdt 211 drivers/watchdog/lpc18xx_wdt.c lpc18xx_wdt = devm_kzalloc(dev, sizeof(*lpc18xx_wdt), GFP_KERNEL); lpc18xx_wdt 212 drivers/watchdog/lpc18xx_wdt.c if (!lpc18xx_wdt) lpc18xx_wdt 215 drivers/watchdog/lpc18xx_wdt.c lpc18xx_wdt->base = devm_platform_ioremap_resource(pdev, 0); lpc18xx_wdt 216 drivers/watchdog/lpc18xx_wdt.c if (IS_ERR(lpc18xx_wdt->base)) lpc18xx_wdt 217 drivers/watchdog/lpc18xx_wdt.c return PTR_ERR(lpc18xx_wdt->base); lpc18xx_wdt 219 drivers/watchdog/lpc18xx_wdt.c lpc18xx_wdt->reg_clk = devm_clk_get(dev, "reg"); lpc18xx_wdt 220 drivers/watchdog/lpc18xx_wdt.c if (IS_ERR(lpc18xx_wdt->reg_clk)) { lpc18xx_wdt 222 drivers/watchdog/lpc18xx_wdt.c return PTR_ERR(lpc18xx_wdt->reg_clk); lpc18xx_wdt 225 drivers/watchdog/lpc18xx_wdt.c lpc18xx_wdt->wdt_clk = devm_clk_get(dev, "wdtclk"); lpc18xx_wdt 226 drivers/watchdog/lpc18xx_wdt.c if (IS_ERR(lpc18xx_wdt->wdt_clk)) { lpc18xx_wdt 228 drivers/watchdog/lpc18xx_wdt.c return PTR_ERR(lpc18xx_wdt->wdt_clk); lpc18xx_wdt 231 drivers/watchdog/lpc18xx_wdt.c ret = clk_prepare_enable(lpc18xx_wdt->reg_clk); lpc18xx_wdt 237 drivers/watchdog/lpc18xx_wdt.c lpc18xx_wdt->reg_clk); lpc18xx_wdt 241 drivers/watchdog/lpc18xx_wdt.c ret = clk_prepare_enable(lpc18xx_wdt->wdt_clk); lpc18xx_wdt 247 drivers/watchdog/lpc18xx_wdt.c lpc18xx_wdt->wdt_clk); lpc18xx_wdt 252 drivers/watchdog/lpc18xx_wdt.c lpc18xx_wdt->clk_rate = clk_get_rate(lpc18xx_wdt->wdt_clk); lpc18xx_wdt 253 drivers/watchdog/lpc18xx_wdt.c if (lpc18xx_wdt->clk_rate == 0) { lpc18xx_wdt 258 drivers/watchdog/lpc18xx_wdt.c lpc18xx_wdt->wdt_dev.info = &lpc18xx_wdt_info; lpc18xx_wdt 259 drivers/watchdog/lpc18xx_wdt.c lpc18xx_wdt->wdt_dev.ops = &lpc18xx_wdt_ops; lpc18xx_wdt 261 drivers/watchdog/lpc18xx_wdt.c lpc18xx_wdt->wdt_dev.min_timeout = DIV_ROUND_UP(LPC18XX_WDT_TC_MIN * lpc18xx_wdt 262 drivers/watchdog/lpc18xx_wdt.c LPC18XX_WDT_CLK_DIV, lpc18xx_wdt->clk_rate); lpc18xx_wdt 264 drivers/watchdog/lpc18xx_wdt.c lpc18xx_wdt->wdt_dev.max_timeout = (LPC18XX_WDT_TC_MAX * lpc18xx_wdt 265 drivers/watchdog/lpc18xx_wdt.c LPC18XX_WDT_CLK_DIV) / lpc18xx_wdt->clk_rate; lpc18xx_wdt 267 drivers/watchdog/lpc18xx_wdt.c lpc18xx_wdt->wdt_dev.timeout = min(lpc18xx_wdt->wdt_dev.max_timeout, lpc18xx_wdt 270 drivers/watchdog/lpc18xx_wdt.c spin_lock_init(&lpc18xx_wdt->lock); lpc18xx_wdt 272 drivers/watchdog/lpc18xx_wdt.c lpc18xx_wdt->wdt_dev.parent = dev; lpc18xx_wdt 273 drivers/watchdog/lpc18xx_wdt.c watchdog_set_drvdata(&lpc18xx_wdt->wdt_dev, lpc18xx_wdt); lpc18xx_wdt 275 drivers/watchdog/lpc18xx_wdt.c watchdog_init_timeout(&lpc18xx_wdt->wdt_dev, heartbeat, dev); lpc18xx_wdt 277 drivers/watchdog/lpc18xx_wdt.c __lpc18xx_wdt_set_timeout(lpc18xx_wdt); lpc18xx_wdt 279 drivers/watchdog/lpc18xx_wdt.c timer_setup(&lpc18xx_wdt->timer, lpc18xx_wdt_timer_feed, 0); lpc18xx_wdt 281 drivers/watchdog/lpc18xx_wdt.c watchdog_set_nowayout(&lpc18xx_wdt->wdt_dev, nowayout); lpc18xx_wdt 282 drivers/watchdog/lpc18xx_wdt.c watchdog_set_restart_priority(&lpc18xx_wdt->wdt_dev, 128); lpc18xx_wdt 284 drivers/watchdog/lpc18xx_wdt.c platform_set_drvdata(pdev, lpc18xx_wdt); lpc18xx_wdt 286 drivers/watchdog/lpc18xx_wdt.c watchdog_stop_on_reboot(&lpc18xx_wdt->wdt_dev); lpc18xx_wdt 287 drivers/watchdog/lpc18xx_wdt.c return devm_watchdog_register_device(dev, &lpc18xx_wdt->wdt_dev); lpc18xx_wdt 292 drivers/watchdog/lpc18xx_wdt.c struct lpc18xx_wdt_dev *lpc18xx_wdt = platform_get_drvdata(pdev); lpc18xx_wdt 295 drivers/watchdog/lpc18xx_wdt.c del_timer(&lpc18xx_wdt->timer);