Lines Matching refs:wdt

47 #define wdt_read(wdt, field) \  argument
48 readl_relaxed((wdt)->reg_base + (field))
51 writel_relaxed((val), (wdt)->reg_base + (field))
55 struct sama5d4_wdt *wdt = watchdog_get_drvdata(wdd); in sama5d4_wdt_start() local
58 reg = wdt_read(wdt, AT91_WDT_MR); in sama5d4_wdt_start()
60 wdt_write(wdt, AT91_WDT_MR, reg); in sama5d4_wdt_start()
67 struct sama5d4_wdt *wdt = watchdog_get_drvdata(wdd); in sama5d4_wdt_stop() local
70 reg = wdt_read(wdt, AT91_WDT_MR); in sama5d4_wdt_stop()
72 wdt_write(wdt, AT91_WDT_MR, reg); in sama5d4_wdt_stop()
79 struct sama5d4_wdt *wdt = watchdog_get_drvdata(wdd); in sama5d4_wdt_ping() local
81 wdt_write(wdt, AT91_WDT_CR, AT91_WDT_KEY | AT91_WDT_WDRSTT); in sama5d4_wdt_ping()
89 struct sama5d4_wdt *wdt = watchdog_get_drvdata(wdd); in sama5d4_wdt_set_timeout() local
93 reg = wdt_read(wdt, AT91_WDT_MR); in sama5d4_wdt_set_timeout()
98 wdt_write(wdt, AT91_WDT_MR, reg); in sama5d4_wdt_set_timeout()
120 struct sama5d4_wdt *wdt = platform_get_drvdata(dev_id); in sama5d4_wdt_irq_handler() local
122 if (wdt_read(wdt, AT91_WDT_SR)) { in sama5d4_wdt_irq_handler()
131 static int of_sama5d4_wdt_init(struct device_node *np, struct sama5d4_wdt *wdt) in of_sama5d4_wdt_init() argument
135 wdt->config = AT91_WDT_WDDIS; in of_sama5d4_wdt_init()
139 wdt->config |= AT91_WDT_WDFIEN; in of_sama5d4_wdt_init()
141 wdt->config |= AT91_WDT_WDRSTEN; in of_sama5d4_wdt_init()
144 wdt->config |= AT91_WDT_WDIDLEHLT; in of_sama5d4_wdt_init()
147 wdt->config |= AT91_WDT_WDDBGHLT; in of_sama5d4_wdt_init()
152 static int sama5d4_wdt_init(struct sama5d4_wdt *wdt) in sama5d4_wdt_init() argument
154 struct watchdog_device *wdd = &wdt->wdd; in sama5d4_wdt_init()
162 reg = wdt_read(wdt, AT91_WDT_MR); in sama5d4_wdt_init()
164 wdt_write(wdt, AT91_WDT_MR, reg); in sama5d4_wdt_init()
166 reg = wdt->config; in sama5d4_wdt_init()
170 wdt_write(wdt, AT91_WDT_MR, reg); in sama5d4_wdt_init()
178 struct sama5d4_wdt *wdt; in sama5d4_wdt_probe() local
184 wdt = devm_kzalloc(&pdev->dev, sizeof(*wdt), GFP_KERNEL); in sama5d4_wdt_probe()
185 if (!wdt) in sama5d4_wdt_probe()
188 wdd = &wdt->wdd; in sama5d4_wdt_probe()
195 watchdog_set_drvdata(wdd, wdt); in sama5d4_wdt_probe()
202 wdt->reg_base = regs; in sama5d4_wdt_probe()
209 ret = of_sama5d4_wdt_init(pdev->dev.of_node, wdt); in sama5d4_wdt_probe()
214 if ((wdt->config & AT91_WDT_WDFIEN) && irq) { in sama5d4_wdt_probe()
231 ret = sama5d4_wdt_init(wdt); in sama5d4_wdt_probe()
243 platform_set_drvdata(pdev, wdt); in sama5d4_wdt_probe()
253 struct sama5d4_wdt *wdt = platform_get_drvdata(pdev); in sama5d4_wdt_remove() local
255 sama5d4_wdt_stop(&wdt->wdd); in sama5d4_wdt_remove()
257 watchdog_unregister_device(&wdt->wdd); in sama5d4_wdt_remove()