Lines Matching refs:wdt

47 	struct pm8916_wdt *wdt = watchdog_get_drvdata(wdev);
49 return regmap_update_bits(wdt->regmap,
50 wdt->baseaddr + PON_PMIC_WD_RESET_S2_CTL2,
56 struct pm8916_wdt *wdt = watchdog_get_drvdata(wdev);
58 return regmap_update_bits(wdt->regmap,
59 wdt->baseaddr + PON_PMIC_WD_RESET_S2_CTL2,
65 struct pm8916_wdt *wdt = watchdog_get_drvdata(wdev);
67 return regmap_write(wdt->regmap, wdt->baseaddr + PON_PMIC_WD_RESET_PET,
73 struct pm8916_wdt *wdt = watchdog_get_drvdata(wdev);
76 err = regmap_write(wdt->regmap,
77 wdt->baseaddr + PON_PMIC_WD_RESET_S1_TIMER,
82 return regmap_write(wdt->regmap,
83 wdt->baseaddr + PON_PMIC_WD_RESET_S2_TIMER,
105 struct pm8916_wdt *wdt = arg;
108 err = regmap_read(wdt->regmap, wdt->baseaddr + PON_INT_RT_STS, &sts);
113 watchdog_notify_pretimeout(&wdt->wdev);
143 struct pm8916_wdt *wdt;
149 wdt = devm_kzalloc(dev, sizeof(*wdt), GFP_KERNEL);
150 if (!wdt)
156 * The pm8916-pon-wdt is a child of the pon device, which is a child
161 wdt->regmap = dev_get_regmap(parent->parent, NULL);
162 if (!wdt->regmap) {
167 err = device_property_read_u32(parent, "reg", &wdt->baseaddr);
176 "pm8916_wdt", wdt);
180 wdt->wdev.info = &pm8916_wdt_pt_ident;
185 wdt->wdev.info = &pm8916_wdt_ident;
188 err = regmap_bulk_read(wdt->regmap, wdt->baseaddr + PON_POFF_REASON1,
197 wdt->wdev.bootstatus |= WDIOF_CARDRESET;
199 wdt->wdev.bootstatus |= WDIOF_POWERUNDER;
201 wdt->wdev.bootstatus |= WDIOF_OVERHEAT;
203 err = regmap_read(wdt->regmap, wdt->baseaddr + PON_PMIC_WD_RESET_S2_CTL2,
210 set_bit(WDOG_HW_RUNNING, &wdt->wdev.status);
213 err = regmap_write(wdt->regmap,
214 wdt->baseaddr + PON_PMIC_WD_RESET_S2_CTL,
221 wdt->wdev.ops = &pm8916_wdt_ops,
222 wdt->wdev.parent = dev;
223 wdt->wdev.min_timeout = PM8916_WDT_MIN_TIMEOUT;
224 wdt->wdev.max_timeout = PM8916_WDT_MAX_TIMEOUT;
225 wdt->wdev.timeout = PM8916_WDT_DEFAULT_TIMEOUT;
226 wdt->wdev.pretimeout = 0;
227 watchdog_set_drvdata(&wdt->wdev, wdt);
228 platform_set_drvdata(pdev, wdt);
230 watchdog_init_timeout(&wdt->wdev, 0, dev);
231 pm8916_wdt_configure_timers(&wdt->wdev);
233 return devm_watchdog_register_device(dev, &wdt->wdev);
238 struct pm8916_wdt *wdt = dev_get_drvdata(dev);
240 if (watchdog_active(&wdt->wdev))
241 return pm8916_wdt_stop(&wdt->wdev);
248 struct pm8916_wdt *wdt = dev_get_drvdata(dev);
250 if (watchdog_active(&wdt->wdev))
251 return pm8916_wdt_start(&wdt->wdev);
260 { .compatible = "qcom,pm8916-wdt" },
268 .name = "pm8916-wdt",