Lines Matching refs:wdt

43 	struct qcom_wdt *wdt = to_qcom_wdt(wdd);  in qcom_wdt_start()  local
45 writel(0, wdt->base + WDT_EN); in qcom_wdt_start()
46 writel(1, wdt->base + WDT_RST); in qcom_wdt_start()
47 writel(wdd->timeout * wdt->rate, wdt->base + WDT_BITE_TIME); in qcom_wdt_start()
48 writel(1, wdt->base + WDT_EN); in qcom_wdt_start()
54 struct qcom_wdt *wdt = to_qcom_wdt(wdd); in qcom_wdt_stop() local
56 writel(0, wdt->base + WDT_EN); in qcom_wdt_stop()
62 struct qcom_wdt *wdt = to_qcom_wdt(wdd); in qcom_wdt_ping() local
64 writel(1, wdt->base + WDT_RST); in qcom_wdt_ping()
93 struct qcom_wdt *wdt = container_of(nb, struct qcom_wdt, restart_nb); in qcom_wdt_restart() local
100 timeout = 128 * wdt->rate / 1000; in qcom_wdt_restart()
102 writel(0, wdt->base + WDT_EN); in qcom_wdt_restart()
103 writel(1, wdt->base + WDT_RST); in qcom_wdt_restart()
104 writel(timeout, wdt->base + WDT_BITE_TIME); in qcom_wdt_restart()
105 writel(1, wdt->base + WDT_EN); in qcom_wdt_restart()
118 struct qcom_wdt *wdt; in qcom_wdt_probe() local
124 wdt = devm_kzalloc(&pdev->dev, sizeof(*wdt), GFP_KERNEL); in qcom_wdt_probe()
125 if (!wdt) in qcom_wdt_probe()
137 wdt->base = devm_ioremap_resource(&pdev->dev, res); in qcom_wdt_probe()
138 if (IS_ERR(wdt->base)) in qcom_wdt_probe()
139 return PTR_ERR(wdt->base); in qcom_wdt_probe()
141 wdt->clk = devm_clk_get(&pdev->dev, NULL); in qcom_wdt_probe()
142 if (IS_ERR(wdt->clk)) { in qcom_wdt_probe()
144 return PTR_ERR(wdt->clk); in qcom_wdt_probe()
147 ret = clk_prepare_enable(wdt->clk); in qcom_wdt_probe()
161 wdt->rate = clk_get_rate(wdt->clk); in qcom_wdt_probe()
162 if (wdt->rate == 0 || in qcom_wdt_probe()
163 wdt->rate > 0x10000000U) { in qcom_wdt_probe()
169 wdt->wdd.dev = &pdev->dev; in qcom_wdt_probe()
170 wdt->wdd.info = &qcom_wdt_info; in qcom_wdt_probe()
171 wdt->wdd.ops = &qcom_wdt_ops; in qcom_wdt_probe()
172 wdt->wdd.min_timeout = 1; in qcom_wdt_probe()
173 wdt->wdd.max_timeout = 0x10000000U / wdt->rate; in qcom_wdt_probe()
180 wdt->wdd.timeout = min(wdt->wdd.max_timeout, 30U); in qcom_wdt_probe()
181 watchdog_init_timeout(&wdt->wdd, 0, &pdev->dev); in qcom_wdt_probe()
183 ret = watchdog_register_device(&wdt->wdd); in qcom_wdt_probe()
192 wdt->restart_nb.notifier_call = qcom_wdt_restart; in qcom_wdt_probe()
193 ret = register_restart_handler(&wdt->restart_nb); in qcom_wdt_probe()
197 platform_set_drvdata(pdev, wdt); in qcom_wdt_probe()
201 clk_disable_unprepare(wdt->clk); in qcom_wdt_probe()
207 struct qcom_wdt *wdt = platform_get_drvdata(pdev); in qcom_wdt_remove() local
209 unregister_restart_handler(&wdt->restart_nb); in qcom_wdt_remove()
210 watchdog_unregister_device(&wdt->wdd); in qcom_wdt_remove()
211 clk_disable_unprepare(wdt->clk); in qcom_wdt_remove()