Lines Matching +full:sub +full:- +full:messages

1 // SPDX-License-Identifier: GPL-2.0-only
3 * intel-mid_wdt: generic Intel MID SCU watchdog driver
6 * - Merrifield only
17 #include <linux/platform_data/intel-mid_wdt.h>
20 #include <asm/intel-mid.h>
29 /* SCU watchdog messages */
43 wdt_command(struct mid_wdt *mid, int sub, const void *in, size_t inlen, size_t size) in wdt_command() argument
45 struct intel_scu_ipc_dev *scu = mid->scu; in wdt_command()
47 return intel_scu_ipc_dev_command_with_size(scu, IPC_WATCHDOG, sub, in, in wdt_command()
55 int timeout = wd->timeout; in wdt_start()
59 } ipc_wd_start = { timeout - MID_WDT_PRETIMEOUT, timeout }; in wdt_start()
72 dev_crit(mid->dev, "error starting watchdog: %d\n", ret); in wdt_start()
84 dev_crit(mid->dev, "Error executing keepalive: %d\n", ret); in wdt_ping()
96 dev_crit(mid->dev, "Error stopping watchdog: %d\n", ret); in wdt_stop()
123 struct device *dev = &pdev->dev; in mid_wdt_probe()
125 struct intel_mid_wdt_pdata *pdata = dev->platform_data; in mid_wdt_probe()
131 return -EINVAL; in mid_wdt_probe()
134 if (pdata->probe) { in mid_wdt_probe()
135 ret = pdata->probe(pdev); in mid_wdt_probe()
142 return -ENOMEM; in mid_wdt_probe()
144 mid->dev = dev; in mid_wdt_probe()
145 wdt_dev = &mid->wd; in mid_wdt_probe()
147 wdt_dev->info = &mid_wdt_info; in mid_wdt_probe()
148 wdt_dev->ops = &mid_wdt_ops; in mid_wdt_probe()
149 wdt_dev->min_timeout = MID_WDT_TIMEOUT_MIN; in mid_wdt_probe()
150 wdt_dev->max_timeout = MID_WDT_TIMEOUT_MAX; in mid_wdt_probe()
151 wdt_dev->timeout = MID_WDT_DEFAULT_TIMEOUT; in mid_wdt_probe()
152 wdt_dev->parent = dev; in mid_wdt_probe()
157 mid->scu = devm_intel_scu_ipc_dev_get(dev); in mid_wdt_probe()
158 if (!mid->scu) in mid_wdt_probe()
159 return -EPROBE_DEFER; in mid_wdt_probe()
161 ret = devm_request_irq(dev, pdata->irq, mid_wdt_irq, in mid_wdt_probe()
165 dev_err(dev, "error requesting warning irq %d\n", pdata->irq); in mid_wdt_probe()
170 * The firmware followed by U-Boot leaves the watchdog running in mid_wdt_probe()
183 set_bit(WDOG_HW_RUNNING, &wdt_dev->status); in mid_wdt_probe()