Lines Matching +full:pre +full:- +full:timeout

1 // SPDX-License-Identifier: GPL-2.0-or-later
19 #include <asm/mach-pic32/pic32.h>
49 writel(DMT_ON, PIC32_SET(dmt->regs + DMTCON_REG)); in dmt_enable()
54 writel(DMT_ON, PIC32_CLR(dmt->regs + DMTCON_REG)); in dmt_disable()
66 val = readl(dmt->regs + DMTSTAT_REG); in dmt_bad_status()
69 return -EAGAIN; in dmt_bad_status()
77 u32 timeout = 500; in dmt_keepalive() local
79 /* set pre-clear key */ in dmt_keepalive()
80 writel(DMT_STEP1_KEY << 8, dmt->regs + DMTPRECLR_REG); in dmt_keepalive()
83 while (--timeout) { in dmt_keepalive()
84 v = readl(dmt->regs + DMTSTAT_REG) & DMTSTAT_WINOPN; in dmt_keepalive()
90 writel(DMT_STEP2_KEY, dmt->regs + DMTCLR_REG); in dmt_keepalive()
100 rate = clk_get_rate(dmt->clk); in pic32_dmt_get_timeout_secs()
102 return readl(dmt->regs + DMTPSCNT_REG) / rate; in pic32_dmt_get_timeout_secs()
168 struct device *dev = &pdev->dev; in pic32_dmt_probe()
175 return -ENOMEM; in pic32_dmt_probe()
177 dmt->regs = devm_platform_ioremap_resource(pdev, 0); in pic32_dmt_probe()
178 if (IS_ERR(dmt->regs)) in pic32_dmt_probe()
179 return PTR_ERR(dmt->regs); in pic32_dmt_probe()
181 dmt->clk = devm_clk_get_enabled(dev, NULL); in pic32_dmt_probe()
182 if (IS_ERR(dmt->clk)) { in pic32_dmt_probe()
184 return PTR_ERR(dmt->clk); in pic32_dmt_probe()
187 wdd->timeout = pic32_dmt_get_timeout_secs(dmt); in pic32_dmt_probe()
188 if (!wdd->timeout) { in pic32_dmt_probe()
189 dev_err(dev, "failed to read watchdog register timeout\n"); in pic32_dmt_probe()
190 return -EINVAL; in pic32_dmt_probe()
193 dev_info(dev, "timeout %d\n", wdd->timeout); in pic32_dmt_probe()
195 wdd->bootstatus = pic32_dmt_bootstatus(dmt) ? WDIOF_CARDRESET : 0; in pic32_dmt_probe()
209 { .compatible = "microchip,pic32mzda-dmt",},
217 .name = "pic32-dmt",