On Fri, Apr 14, 2023 at 03:53:42PM +0530, Bharat Bhushan wrote: > GTI watchdog timer are programmed in "interrupt + del3t + reset mode" > and del3t traps are not enabled. > GTI watchdog exception flow is: > - 1st timer expiration generates watchdog interrupt. > - 2nd timer expiration is ignored > - On 3rd timer expiration will trigger a system-wide core reset. > > Signed-off-by: Bharat Bhushan <bbhushan2@xxxxxxxxxxx> > --- > drivers/watchdog/Kconfig | 9 ++ > drivers/watchdog/Makefile | 1 + > drivers/watchdog/octeontx2_wdt.c | 238 +++++++++++++++++++++++++++++++ > 3 files changed, 248 insertions(+) > create mode 100644 drivers/watchdog/octeontx2_wdt.c > > diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig > index f0872970daf9..31ff282c62ad 100644 > --- a/drivers/watchdog/Kconfig > +++ b/drivers/watchdog/Kconfig > @@ -2212,4 +2212,13 @@ config KEEMBAY_WATCHDOG > To compile this driver as a module, choose M here: the > module will be called keembay_wdt. > > +config OCTEONTX2_WATCHDOG > + tristate "OCTEONTX2 Watchdog driver" > + depends on ARCH_THUNDER || (COMPILE_TEST && 64BIT) > + help > + OCTEONTX2 GTI hardware supports watchdog timer. This watchdog timer are > + programmed in "interrupt + del3t + reset" mode. On first expiry it will > + generate interrupt. Second expiry (del3t) is ignored and system will reset > + on final timer expiry. > + > endif # WATCHDOG > diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile > index 9cbf6580f16c..aa1b813ad1f9 100644 > --- a/drivers/watchdog/Makefile > +++ b/drivers/watchdog/Makefile > @@ -230,3 +230,4 @@ obj-$(CONFIG_MENZ069_WATCHDOG) += menz69_wdt.o > obj-$(CONFIG_RAVE_SP_WATCHDOG) += rave-sp-wdt.o > obj-$(CONFIG_STPMIC1_WATCHDOG) += stpmic1_wdt.o > obj-$(CONFIG_SL28CPLD_WATCHDOG) += sl28cpld_wdt.o > +obj-$(CONFIG_OCTEONTX2_WATCHDOG) += octeontx2_wdt.o > diff --git a/drivers/watchdog/octeontx2_wdt.c b/drivers/watchdog/octeontx2_wdt.c > new file mode 100644 > index 000000000000..7b78a092e83f > --- /dev/null > +++ b/drivers/watchdog/octeontx2_wdt.c > @@ -0,0 +1,238 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* Marvell Octeontx2 Watchdog driver > + * > + * Copyright (C) 2023 Marvell International Ltd. > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + */ > + > +#include <linux/module.h> > +#include <linux/cpu.h> > +#include <linux/interrupt.h> > +#include <linux/of_platform.h> It's doubtful you need anything from of_platform.h other than implicit includes. Use the header(s) you need directly. Rob