Lines Matching refs:ddata

72 static void mpc8xxx_wdt_keepalive(struct mpc8xxx_wdt_ddata *ddata)
75 spin_lock(&ddata->lock);
76 out_be16(&ddata->base->swsrr, 0x556c);
77 out_be16(&ddata->base->swsrr, 0xaa39);
78 spin_unlock(&ddata->lock);
83 struct mpc8xxx_wdt_ddata *ddata =
85 u32 tmp = in_be32(&ddata->base->swcrr);
89 tmp |= SWCRR_SWEN | SWCRR_SWPR | (ddata->swtc << 16);
94 out_be32(&ddata->base->swcrr, tmp);
96 tmp = in_be32(&ddata->base->swcrr);
100 ddata->swtc = tmp >> 16;
101 set_bit(WDOG_HW_RUNNING, &ddata->wdd.status);
108 struct mpc8xxx_wdt_ddata *ddata =
111 mpc8xxx_wdt_keepalive(ddata);
132 struct mpc8xxx_wdt_ddata *ddata;
144 ddata = devm_kzalloc(dev, sizeof(*ddata), GFP_KERNEL);
145 if (!ddata)
148 ddata->base = devm_platform_ioremap_resource(ofdev, 0);
149 if (IS_ERR(ddata->base))
150 return PTR_ERR(ddata->base);
152 enabled = in_be32(&ddata->base->swcrr) & SWCRR_SWEN;
167 ddata->wdd.bootstatus = status ? WDIOF_CARDRESET : 0;
176 spin_lock_init(&ddata->lock);
178 ddata->wdd.info = &mpc8xxx_wdt_info;
179 ddata->wdd.ops = &mpc8xxx_wdt_ops;
181 ddata->wdd.timeout = WATCHDOG_TIMEOUT;
182 watchdog_init_timeout(&ddata->wdd, timeout, dev);
184 watchdog_set_nowayout(&ddata->wdd, nowayout);
186 ddata->swtc = min(ddata->wdd.timeout * freq / wdt_type->prescaler,
195 mpc8xxx_wdt_start(&ddata->wdd);
197 ddata->wdd.max_hw_heartbeat_ms = (ddata->swtc * wdt_type->prescaler) /
199 ddata->wdd.min_timeout = ddata->wdd.max_hw_heartbeat_ms / 1000;
200 if (ddata->wdd.timeout < ddata->wdd.min_timeout)
201 ddata->wdd.timeout = ddata->wdd.min_timeout;
203 ret = devm_watchdog_register_device(dev, &ddata->wdd);
209 reset ? "reset" : "interrupt", ddata->wdd.timeout);
211 platform_set_drvdata(ofdev, ddata);