Lines Matching refs:meson_wdt
55 struct meson_wdt_dev *meson_wdt = container_of(this, in meson_restart_handle() local
60 writel(tc_reboot, meson_wdt->wdt_base + MESON_WDT_TC); in meson_restart_handle()
69 struct meson_wdt_dev *meson_wdt = watchdog_get_drvdata(wdt_dev); in meson_wdt_ping() local
71 writel(0, meson_wdt->wdt_base + MESON_WDT_RESET); in meson_wdt_ping()
79 struct meson_wdt_dev *meson_wdt = watchdog_get_drvdata(wdt_dev); in meson_wdt_change_timeout() local
82 reg = readl(meson_wdt->wdt_base + MESON_WDT_TC); in meson_wdt_change_timeout()
85 writel(reg, meson_wdt->wdt_base + MESON_WDT_TC); in meson_wdt_change_timeout()
101 struct meson_wdt_dev *meson_wdt = watchdog_get_drvdata(wdt_dev); in meson_wdt_stop() local
104 reg = readl(meson_wdt->wdt_base + MESON_WDT_TC); in meson_wdt_stop()
106 writel(reg, meson_wdt->wdt_base + MESON_WDT_TC); in meson_wdt_stop()
113 struct meson_wdt_dev *meson_wdt = watchdog_get_drvdata(wdt_dev); in meson_wdt_start() local
116 meson_wdt_change_timeout(wdt_dev, meson_wdt->wdt_dev.timeout); in meson_wdt_start()
119 reg = readl(meson_wdt->wdt_base + MESON_WDT_TC); in meson_wdt_start()
121 writel(reg, meson_wdt->wdt_base + MESON_WDT_TC); in meson_wdt_start()
144 struct meson_wdt_dev *meson_wdt; in meson_wdt_probe() local
147 meson_wdt = devm_kzalloc(&pdev->dev, sizeof(*meson_wdt), GFP_KERNEL); in meson_wdt_probe()
148 if (!meson_wdt) in meson_wdt_probe()
152 meson_wdt->wdt_base = devm_ioremap_resource(&pdev->dev, res); in meson_wdt_probe()
153 if (IS_ERR(meson_wdt->wdt_base)) in meson_wdt_probe()
154 return PTR_ERR(meson_wdt->wdt_base); in meson_wdt_probe()
156 meson_wdt->wdt_dev.parent = &pdev->dev; in meson_wdt_probe()
157 meson_wdt->wdt_dev.info = &meson_wdt_info; in meson_wdt_probe()
158 meson_wdt->wdt_dev.ops = &meson_wdt_ops; in meson_wdt_probe()
159 meson_wdt->wdt_dev.timeout = MESON_WDT_TIMEOUT; in meson_wdt_probe()
160 meson_wdt->wdt_dev.max_timeout = MESON_WDT_MAX_TIMEOUT; in meson_wdt_probe()
161 meson_wdt->wdt_dev.min_timeout = MESON_WDT_MIN_TIMEOUT; in meson_wdt_probe()
163 watchdog_set_drvdata(&meson_wdt->wdt_dev, meson_wdt); in meson_wdt_probe()
165 watchdog_init_timeout(&meson_wdt->wdt_dev, timeout, &pdev->dev); in meson_wdt_probe()
166 watchdog_set_nowayout(&meson_wdt->wdt_dev, nowayout); in meson_wdt_probe()
168 meson_wdt_stop(&meson_wdt->wdt_dev); in meson_wdt_probe()
170 err = watchdog_register_device(&meson_wdt->wdt_dev); in meson_wdt_probe()
174 platform_set_drvdata(pdev, meson_wdt); in meson_wdt_probe()
176 meson_wdt->restart_handler.notifier_call = meson_restart_handle; in meson_wdt_probe()
177 meson_wdt->restart_handler.priority = 128; in meson_wdt_probe()
178 err = register_restart_handler(&meson_wdt->restart_handler); in meson_wdt_probe()
184 meson_wdt->wdt_dev.timeout, nowayout); in meson_wdt_probe()
191 struct meson_wdt_dev *meson_wdt = platform_get_drvdata(pdev); in meson_wdt_remove() local
193 unregister_restart_handler(&meson_wdt->restart_handler); in meson_wdt_remove()
195 watchdog_unregister_device(&meson_wdt->wdt_dev); in meson_wdt_remove()
202 struct meson_wdt_dev *meson_wdt = platform_get_drvdata(pdev); in meson_wdt_shutdown() local
204 meson_wdt_stop(&meson_wdt->wdt_dev); in meson_wdt_shutdown()