+/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Copyright 2017 Google, Inc
- *
- * SPDX-License-Identifier: GPL-2.0+
*/
#ifndef _WDT_H_
#define _WDT_H_
+struct udevice;
+
/*
* Implement a simple watchdog uclass. Watchdog is basically a timer that
* is used to detect or recover from malfunction. During normal operation
* Start the timer
*
* @dev: WDT Device
- * @timeout: Number of ticks before timer expires
+ * @timeout_ms: Number of ticks (milliseconds) before timer expires
* @flags: Driver specific flags. This might be used to specify
* which action needs to be executed when the timer expires
* @return: 0 if OK, -ve on error
*/
-int wdt_start(struct udevice *dev, u64 timeout, ulong flags);
+int wdt_start(struct udevice *dev, u64 timeout_ms, ulong flags);
/*
* Stop the timer, thus disabling the Watchdog. Use wdt_start to start it again.
int wdt_stop(struct udevice *dev);
/*
+ * Stop all registered watchdog devices.
+ *
+ * @return: 0 if ok, first error encountered otherwise (but wdt_stop()
+ * is still called on following devices)
+ */
+int wdt_stop_all(void);
+
+/*
* Reset the timer, typically restoring the counter to
* the value configured by start()
*
*
* @dev: WDT Device
* @flags: Driver specific flags
- * @return 0 if OK -ve on error. If wdt action is system reset,
+ * Return: 0 if OK -ve on error. If wdt action is system reset,
* this function may never return.
*/
int wdt_expire_now(struct udevice *dev, ulong flags);
* Start the timer
*
* @dev: WDT Device
- * @timeout: Number of ticks before the timer expires
+ * @timeout_ms: Number of ticks (milliseconds) before the timer expires
* @flags: Driver specific flags. This might be used to specify
* which action needs to be executed when the timer expires
* @return: 0 if OK, -ve on error
*/
- int (*start)(struct udevice *dev, u64 timeout, ulong flags);
+ int (*start)(struct udevice *dev, u64 timeout_ms, ulong flags);
/*
* Stop the timer
*
int (*expire_now)(struct udevice *dev, ulong flags);
};
+int initr_watchdog(void);
+
#endif /* _WDT_H_ */