blob: 5f736dcbf04ff03c43c24b77dfaf3f7ed371aa2c [file] [log] [blame]
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* Copyright 2019 Broadcom.
*/
#ifndef DRIVERS_WDT_H
#define DRIVERS_WDT_H
#include <kernel/interrupt.h>
#include <tee_api_types.h>
struct wdt_chip {
const struct wdt_ops *ops;
struct itr_handler *wdt_itr;
};
/*
* struct wdt_ops - The watchdog device operations
*
* @start: The routine for starting the watchdog device.
* @stop: The routine for stopping the watchdog device.
* @ping: The routine that sends a keepalive ping to the watchdog device.
* @set_timeout:The routine that finds the load value that will reset system in
* required timeout (in seconds).
*
* The wdt_ops structure contains a list of low-level operations
* that control a watchdog device.
*/
struct wdt_ops {
void (*start)(struct wdt_chip *chip);
void (*stop)(struct wdt_chip *chip);
void (*ping)(struct wdt_chip *chip);
TEE_Result (*set_timeout)(struct wdt_chip *chip, unsigned long timeout);
};
#endif /* DRIVERS_WDT_H */