Lines Matching refs:xdev
52 struct xwdt_device *xdev = watchdog_get_drvdata(wdd); in xilinx_wdt_start() local
54 ret = clk_enable(xdev->clk); in xilinx_wdt_start()
60 spin_lock(&xdev->spinlock); in xilinx_wdt_start()
63 control_status_reg = ioread32(xdev->base + XWT_TWCSR0_OFFSET); in xilinx_wdt_start()
67 xdev->base + XWT_TWCSR0_OFFSET); in xilinx_wdt_start()
69 iowrite32(XWT_CSRX_EWDT2_MASK, xdev->base + XWT_TWCSR1_OFFSET); in xilinx_wdt_start()
71 spin_unlock(&xdev->spinlock); in xilinx_wdt_start()
81 struct xwdt_device *xdev = watchdog_get_drvdata(wdd); in xilinx_wdt_stop() local
83 spin_lock(&xdev->spinlock); in xilinx_wdt_stop()
85 control_status_reg = ioread32(xdev->base + XWT_TWCSR0_OFFSET); in xilinx_wdt_stop()
88 xdev->base + XWT_TWCSR0_OFFSET); in xilinx_wdt_stop()
90 iowrite32(0, xdev->base + XWT_TWCSR1_OFFSET); in xilinx_wdt_stop()
92 spin_unlock(&xdev->spinlock); in xilinx_wdt_stop()
94 clk_disable(xdev->clk); in xilinx_wdt_stop()
104 struct xwdt_device *xdev = watchdog_get_drvdata(wdd); in xilinx_wdt_keepalive() local
106 spin_lock(&xdev->spinlock); in xilinx_wdt_keepalive()
108 control_status_reg = ioread32(xdev->base + XWT_TWCSR0_OFFSET); in xilinx_wdt_keepalive()
110 iowrite32(control_status_reg, xdev->base + XWT_TWCSR0_OFFSET); in xilinx_wdt_keepalive()
112 spin_unlock(&xdev->spinlock); in xilinx_wdt_keepalive()
131 static u32 xwdt_selftest(struct xwdt_device *xdev) in xwdt_selftest() argument
137 spin_lock(&xdev->spinlock); in xwdt_selftest()
139 timer_value1 = ioread32(xdev->base + XWT_TBR_OFFSET); in xwdt_selftest()
140 timer_value2 = ioread32(xdev->base + XWT_TBR_OFFSET); in xwdt_selftest()
145 timer_value2 = ioread32(xdev->base + XWT_TBR_OFFSET); in xwdt_selftest()
148 spin_unlock(&xdev->spinlock); in xwdt_selftest()
161 struct xwdt_device *xdev; in xwdt_probe() local
164 xdev = devm_kzalloc(dev, sizeof(*xdev), GFP_KERNEL); in xwdt_probe()
165 if (!xdev) in xwdt_probe()
168 xilinx_wdt_wdd = &xdev->xilinx_wdt_wdd; in xwdt_probe()
173 xdev->base = devm_platform_ioremap_resource(pdev, 0); in xwdt_probe()
174 if (IS_ERR(xdev->base)) in xwdt_probe()
175 return PTR_ERR(xdev->base); in xwdt_probe()
178 &xdev->wdt_interval); in xwdt_probe()
190 xdev->clk = devm_clk_get_prepared(dev, NULL); in xwdt_probe()
191 if (IS_ERR(xdev->clk)) { in xwdt_probe()
192 if (PTR_ERR(xdev->clk) != -ENOENT) in xwdt_probe()
193 return PTR_ERR(xdev->clk); in xwdt_probe()
199 xdev->clk = NULL; in xwdt_probe()
207 pfreq = clk_get_rate(xdev->clk); in xwdt_probe()
214 if (pfreq && xdev->wdt_interval) in xwdt_probe()
215 xilinx_wdt_wdd->timeout = 2 * ((1 << xdev->wdt_interval) / in xwdt_probe()
218 spin_lock_init(&xdev->spinlock); in xwdt_probe()
219 watchdog_set_drvdata(xilinx_wdt_wdd, xdev); in xwdt_probe()
221 rc = clk_enable(xdev->clk); in xwdt_probe()
227 rc = xwdt_selftest(xdev); in xwdt_probe()
230 clk_disable(xdev->clk); in xwdt_probe()
234 clk_disable(xdev->clk); in xwdt_probe()
243 platform_set_drvdata(pdev, xdev); in xwdt_probe()
256 struct xwdt_device *xdev = dev_get_drvdata(dev); in xwdt_suspend() local
258 if (watchdog_active(&xdev->xilinx_wdt_wdd)) in xwdt_suspend()
259 xilinx_wdt_stop(&xdev->xilinx_wdt_wdd); in xwdt_suspend()
272 struct xwdt_device *xdev = dev_get_drvdata(dev); in xwdt_resume() local
275 if (watchdog_active(&xdev->xilinx_wdt_wdd)) in xwdt_resume()
276 ret = xilinx_wdt_start(&xdev->xilinx_wdt_wdd); in xwdt_resume()