Lines Matching full:wdt

54 static inline u32 zx2967_wdt_readl(struct zx2967_wdt *wdt, u16 reg)  in zx2967_wdt_readl()  argument
56 return readl_relaxed(wdt->reg_base + reg); in zx2967_wdt_readl()
59 static inline void zx2967_wdt_writel(struct zx2967_wdt *wdt, u16 reg, u32 val) in zx2967_wdt_writel() argument
61 writel_relaxed(val | ZX2967_WDT_WRITEKEY, wdt->reg_base + reg); in zx2967_wdt_writel()
64 static void zx2967_wdt_refresh(struct zx2967_wdt *wdt) in zx2967_wdt_refresh() argument
68 val = zx2967_wdt_readl(wdt, ZX2967_WDT_REFRESH_REG); in zx2967_wdt_refresh()
76 zx2967_wdt_writel(wdt, ZX2967_WDT_REFRESH_REG, in zx2967_wdt_refresh()
83 struct zx2967_wdt *wdt = watchdog_get_drvdata(wdd); in zx2967_wdt_set_timeout() local
91 zx2967_wdt_writel(wdt, ZX2967_WDT_CFG_REG, in zx2967_wdt_set_timeout()
93 zx2967_wdt_writel(wdt, ZX2967_WDT_LOAD_REG, in zx2967_wdt_set_timeout()
95 zx2967_wdt_refresh(wdt); in zx2967_wdt_set_timeout()
101 static void __zx2967_wdt_start(struct zx2967_wdt *wdt) in __zx2967_wdt_start() argument
105 val = zx2967_wdt_readl(wdt, ZX2967_WDT_START_REG); in __zx2967_wdt_start()
107 zx2967_wdt_writel(wdt, ZX2967_WDT_START_REG, in __zx2967_wdt_start()
111 static void __zx2967_wdt_stop(struct zx2967_wdt *wdt) in __zx2967_wdt_stop() argument
115 val = zx2967_wdt_readl(wdt, ZX2967_WDT_START_REG); in __zx2967_wdt_stop()
117 zx2967_wdt_writel(wdt, ZX2967_WDT_START_REG, in __zx2967_wdt_stop()
123 struct zx2967_wdt *wdt = watchdog_get_drvdata(wdd); in zx2967_wdt_start() local
126 __zx2967_wdt_start(wdt); in zx2967_wdt_start()
133 struct zx2967_wdt *wdt = watchdog_get_drvdata(wdd); in zx2967_wdt_stop() local
135 __zx2967_wdt_stop(wdt); in zx2967_wdt_stop()
142 struct zx2967_wdt *wdt = watchdog_get_drvdata(wdd); in zx2967_wdt_keepalive() local
144 zx2967_wdt_refresh(wdt); in zx2967_wdt_keepalive()
172 "zte,wdt-reset-sysctrl", 3, 0, &out_args); in zx2967_wdt_reset_sysctrl()
198 struct zx2967_wdt *wdt; in zx2967_wdt_probe() local
202 wdt = devm_kzalloc(dev, sizeof(*wdt), GFP_KERNEL); in zx2967_wdt_probe()
203 if (!wdt) in zx2967_wdt_probe()
206 platform_set_drvdata(pdev, wdt); in zx2967_wdt_probe()
208 wdt->wdt_device.info = &zx2967_wdt_ident; in zx2967_wdt_probe()
209 wdt->wdt_device.ops = &zx2967_wdt_ops; in zx2967_wdt_probe()
210 wdt->wdt_device.timeout = ZX2967_WDT_DEFAULT_TIMEOUT; in zx2967_wdt_probe()
211 wdt->wdt_device.max_timeout = ZX2967_WDT_MAX_TIMEOUT; in zx2967_wdt_probe()
212 wdt->wdt_device.min_timeout = ZX2967_WDT_MIN_TIMEOUT; in zx2967_wdt_probe()
213 wdt->wdt_device.parent = dev; in zx2967_wdt_probe()
215 wdt->reg_base = devm_platform_ioremap_resource(pdev, 0); in zx2967_wdt_probe()
216 if (IS_ERR(wdt->reg_base)) in zx2967_wdt_probe()
217 return PTR_ERR(wdt->reg_base); in zx2967_wdt_probe()
221 wdt->clock = devm_clk_get(dev, NULL); in zx2967_wdt_probe()
222 if (IS_ERR(wdt->clock)) { in zx2967_wdt_probe()
224 return PTR_ERR(wdt->clock); in zx2967_wdt_probe()
227 ret = clk_prepare_enable(wdt->clock); in zx2967_wdt_probe()
233 wdt->clock); in zx2967_wdt_probe()
236 clk_set_rate(wdt->clock, ZX2967_WDT_CLK_FREQ); in zx2967_wdt_probe()
247 watchdog_set_drvdata(&wdt->wdt_device, wdt); in zx2967_wdt_probe()
248 watchdog_init_timeout(&wdt->wdt_device, in zx2967_wdt_probe()
250 watchdog_set_nowayout(&wdt->wdt_device, WATCHDOG_NOWAYOUT); in zx2967_wdt_probe()
252 ret = devm_watchdog_register_device(dev, &wdt->wdt_device); in zx2967_wdt_probe()
257 wdt->wdt_device.timeout, WATCHDOG_NOWAYOUT); in zx2967_wdt_probe()
263 { .compatible = "zte,zx296718-wdt", },
271 .name = "zx2967-wdt",