Lines Matching refs:wdt
57 static bool bcm2835_wdt_is_running(struct bcm2835_wdt *wdt)
61 cur = readl(wdt->base + PM_RSTC);
68 struct bcm2835_wdt *wdt = watchdog_get_drvdata(wdog);
72 spin_lock_irqsave(&wdt->lock, flags);
75 PM_WDOG_TIME_SET), wdt->base + PM_WDOG);
76 cur = readl_relaxed(wdt->base + PM_RSTC);
78 PM_RSTC_WRCFG_FULL_RESET, wdt->base + PM_RSTC);
80 spin_unlock_irqrestore(&wdt->lock, flags);
87 struct bcm2835_wdt *wdt = watchdog_get_drvdata(wdog);
89 writel_relaxed(PM_PASSWORD | PM_RSTC_RESET, wdt->base + PM_RSTC);
95 struct bcm2835_wdt *wdt = watchdog_get_drvdata(wdog);
97 uint32_t ret = readl_relaxed(wdt->base + PM_WDOG);
101 static void __bcm2835_restart(struct bcm2835_wdt *wdt)
106 writel_relaxed(10 | PM_PASSWORD, wdt->base + PM_WDOG);
107 val = readl_relaxed(wdt->base + PM_RSTC);
110 writel_relaxed(val, wdt->base + PM_RSTC);
119 struct bcm2835_wdt *wdt = watchdog_get_drvdata(wdog);
121 __bcm2835_restart(wdt);
155 struct bcm2835_wdt *wdt = bcm2835_power_off_wdt;
163 val = readl_relaxed(wdt->base + PM_RSTS);
165 writel_relaxed(val, wdt->base + PM_RSTS);
168 __bcm2835_restart(wdt);
175 struct bcm2835_wdt *wdt;
178 wdt = devm_kzalloc(dev, sizeof(struct bcm2835_wdt), GFP_KERNEL);
179 if (!wdt)
182 spin_lock_init(&wdt->lock);
184 wdt->base = pm->base;
186 watchdog_set_drvdata(&bcm2835_wdt_wdd, wdt);
190 if (bcm2835_wdt_is_running(wdt)) {
212 bcm2835_power_off_wdt = wdt;
232 .name = "bcm2835-wdt",
244 MODULE_ALIAS("platform:bcm2835-wdt");