xref: /linux/drivers/watchdog/Kconfig (revision 90d32e92011eaae8e70a9169b4e7acf4ca8f9d3a)
1# SPDX-License-Identifier: GPL-2.0-only
2
3#
4# Watchdog device configuration
5#
6
7menuconfig WATCHDOG
8	bool "Watchdog Timer Support"
9	help
10	  If you say Y here (and to one of the following options) and create a
11	  character special file /dev/watchdog with major number 10 and minor
12	  number 130 using mknod ("man mknod"), you will get a watchdog, i.e.:
13	  subsequently opening the file and then failing to write to it for
14	  longer than 1 minute will result in rebooting the machine. This
15	  could be useful for a networked machine that needs to come back
16	  on-line as fast as possible after a lock-up. There's both a watchdog
17	  implementation entirely in software (which can sometimes fail to
18	  reboot the machine) and a driver for hardware watchdog boards, which
19	  are more robust and can also keep track of the temperature inside
20	  your computer. For details, read
21	  <file:Documentation/watchdog/watchdog-api.rst> in the kernel source.
22
23	  The watchdog is usually used together with the watchdog daemon
24	  which is available from
25	  <https://ibiblio.org/pub/Linux/system/daemons/watchdog/>. This daemon
26	  can also monitor NFS connections and can reboot the machine when the
27	  process table is full.
28
29	  If unsure, say N.
30
31if WATCHDOG
32
33config WATCHDOG_CORE
34	tristate "WatchDog Timer Driver Core"
35	help
36	  Say Y here if you want to use the new watchdog timer driver core.
37	  This driver provides a framework for all watchdog timer drivers
38	  and gives them the /dev/watchdog interface (and later also the
39	  sysfs interface).
40
41config WATCHDOG_NOWAYOUT
42	bool "Disable watchdog shutdown on close"
43	help
44	  The default watchdog behaviour (which you get if you say N here) is
45	  to stop the timer if the process managing it closes the file
46	  /dev/watchdog. It's always remotely possible that this process might
47	  get killed. If you say Y here, the watchdog cannot be stopped once
48	  it has been started.
49
50config WATCHDOG_HANDLE_BOOT_ENABLED
51	bool "Update boot-enabled watchdog until userspace takes over"
52	default y
53	help
54	  The default watchdog behaviour (which you get if you say Y here) is
55	  to ping watchdog devices that were enabled before the driver has
56	  been loaded until control is taken over from userspace using the
57	  /dev/watchdog file. If you say N here, the kernel will not update
58	  the watchdog on its own. Thus if your userspace does not start fast
59	  enough your device will reboot.
60
61config WATCHDOG_OPEN_TIMEOUT
62	int "Timeout value for opening watchdog device"
63	default 0
64	help
65	  The maximum time, in seconds, for which the watchdog framework takes
66	  care of pinging a hardware watchdog.  A value of 0 means infinite. The
67	  value set here can be overridden by the commandline parameter
68	  "watchdog.open_timeout".
69
70config WATCHDOG_SYSFS
71	bool "Read different watchdog information through sysfs"
72	help
73	  Say Y here if you want to enable watchdog device status read through
74	  sysfs attributes.
75
76config WATCHDOG_HRTIMER_PRETIMEOUT
77	bool "Enable watchdog hrtimer-based pretimeouts"
78	help
79	  Enable this if you want to use a hrtimer timer based pretimeout for
80	  watchdogs that do not natively support pretimeout support. Be aware
81	  that because this pretimeout functionality uses hrtimers, it may not
82	  be able to fire before the actual watchdog fires in some situations.
83
84comment "Watchdog Pretimeout Governors"
85
86config WATCHDOG_PRETIMEOUT_GOV
87	bool "Enable watchdog pretimeout governors"
88	depends on WATCHDOG_CORE
89	help
90	  The option allows to select watchdog pretimeout governors.
91
92config WATCHDOG_PRETIMEOUT_GOV_SEL
93	tristate
94	depends on WATCHDOG_PRETIMEOUT_GOV
95	default m
96	select WATCHDOG_PRETIMEOUT_GOV_PANIC if WATCHDOG_PRETIMEOUT_GOV_NOOP=n
97
98if WATCHDOG_PRETIMEOUT_GOV
99
100config WATCHDOG_PRETIMEOUT_GOV_NOOP
101	tristate "Noop watchdog pretimeout governor"
102	depends on WATCHDOG_CORE
103	default WATCHDOG_CORE
104	help
105	  Noop watchdog pretimeout governor, only an informational
106	  message is added to kernel log buffer.
107
108config WATCHDOG_PRETIMEOUT_GOV_PANIC
109	tristate "Panic watchdog pretimeout governor"
110	depends on WATCHDOG_CORE
111	default WATCHDOG_CORE
112	help
113	  Panic watchdog pretimeout governor, on watchdog pretimeout
114	  event put the kernel into panic.
115
116choice
117	prompt "Default Watchdog Pretimeout Governor"
118	default WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC
119	help
120	  This option selects a default watchdog pretimeout governor.
121	  The governor takes its action, if a watchdog is capable
122	  to report a pretimeout event.
123
124config WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP
125	bool "noop"
126	depends on WATCHDOG_PRETIMEOUT_GOV_NOOP
127	help
128	  Use noop watchdog pretimeout governor by default. If noop
129	  governor is selected by a user, write a short message to
130	  the kernel log buffer and don't do any system changes.
131
132config WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC
133	bool "panic"
134	depends on WATCHDOG_PRETIMEOUT_GOV_PANIC
135	help
136	  Use panic watchdog pretimeout governor by default, if
137	  a watchdog pretimeout event happens, consider that
138	  a watchdog feeder is dead and reboot is unavoidable.
139
140endchoice
141
142endif # WATCHDOG_PRETIMEOUT_GOV
143
144#
145# General Watchdog drivers
146#
147
148comment "Watchdog Device Drivers"
149
150# Architecture Independent
151
152config SOFT_WATCHDOG
153	tristate "Software watchdog"
154	select WATCHDOG_CORE
155	help
156	  A software monitoring watchdog. This will fail to reboot your system
157	  from some situations that the hardware watchdog will recover
158	  from. Equally it's a lot cheaper to install.
159
160	  To compile this driver as a module, choose M here: the
161	  module will be called softdog.
162
163config SOFT_WATCHDOG_PRETIMEOUT
164	bool "Software watchdog pretimeout governor support"
165	depends on SOFT_WATCHDOG && WATCHDOG_PRETIMEOUT_GOV
166	help
167	  Enable this if you want to use pretimeout governors with the software
168	  watchdog. Be aware that governors might affect the watchdog because it
169	  is purely software, e.g. the panic governor will stall it!
170
171config BD957XMUF_WATCHDOG
172	tristate "ROHM BD9576MUF and BD9573MUF PMIC Watchdog"
173	depends on MFD_ROHM_BD957XMUF
174	select WATCHDOG_CORE
175	help
176	  Support for the watchdog in the ROHM BD9576 and BD9573 PMICs.
177	  These PMIC ICs contain watchdog block which can be configured
178	  to toggle reset line if SoC fails to ping watchdog via GPIO.
179
180	  Say Y here to include support for the ROHM BD9576 or BD9573
181	  watchdog. Alternatively say M to compile the driver as a module,
182	  which will be called bd9576_wdt.
183
184config CROS_EC_WATCHDOG
185	tristate "ChromeOS EC-based watchdog"
186	select WATCHDOG_CORE
187	depends on CROS_EC
188	help
189	  Watchdog driver for Chromebook devices equipped with embedded controller.
190	  Trigger event is recorded in EC and checked on the subsequent boot.
191
192	  To compile this driver as a module, choose M here: the
193	  module will be called cros_ec_wdt.
194
195config DA9052_WATCHDOG
196	tristate "Dialog DA9052 Watchdog"
197	depends on PMIC_DA9052 || COMPILE_TEST
198	select WATCHDOG_CORE
199	help
200	  Support for the watchdog in the DA9052 PMIC. Watchdog trigger
201	  cause system reset.
202
203	  Say Y here to include support for the DA9052 watchdog.
204	  Alternatively say M to compile the driver as a module,
205	  which will be called da9052_wdt.
206
207config DA9055_WATCHDOG
208	tristate "Dialog Semiconductor DA9055 Watchdog"
209	depends on MFD_DA9055 || COMPILE_TEST
210	select WATCHDOG_CORE
211	help
212	  If you say yes here you get support for watchdog on the Dialog
213	  Semiconductor DA9055 PMIC.
214
215	  This driver can also be built as a module.  If so, the module
216	  will be called da9055_wdt.
217
218config DA9063_WATCHDOG
219	tristate "Dialog DA9063 Watchdog"
220	depends on MFD_DA9063 || COMPILE_TEST
221	depends on I2C
222	select WATCHDOG_CORE
223	help
224	  Support for the watchdog in the DA9063 PMIC.
225
226	  This driver can be built as a module. The module name is da9063_wdt.
227
228config DA9062_WATCHDOG
229	tristate "Dialog DA9062/61 Watchdog"
230	depends on MFD_DA9062 || COMPILE_TEST
231	depends on I2C
232	select WATCHDOG_CORE
233	help
234	  Support for the watchdog in the DA9062 and DA9061 PMICs.
235
236	  This driver can be built as a module. The module name is da9062_wdt.
237
238config GPIO_WATCHDOG
239	tristate "Watchdog device controlled through GPIO-line"
240	depends on OF_GPIO
241	select WATCHDOG_CORE
242	help
243	  If you say yes here you get support for watchdog device
244	  controlled through GPIO-line.
245
246config GPIO_WATCHDOG_ARCH_INITCALL
247	bool "Register the watchdog as early as possible"
248	depends on GPIO_WATCHDOG=y
249	help
250	  In some situations, the default initcall level (module_init)
251	  in not early enough in the boot process to avoid the watchdog
252	  to be triggered.
253	  If you say yes here, the initcall level would be raised to
254	  arch_initcall.
255	  If in doubt, say N.
256
257config LENOVO_SE10_WDT
258	tristate "Lenovo SE10 Watchdog"
259	depends on (X86 && DMI) || COMPILE_TEST
260	select WATCHDOG_CORE
261	help
262	  If you say yes here you get support for the watchdog
263	  functionality for the Lenovo SE10 platform.
264
265	  This driver can also be built as a module. If so, the module
266	  will be called lenovo-se10-wdt.
267
268config MENF21BMC_WATCHDOG
269	tristate "MEN 14F021P00 BMC Watchdog"
270	depends on MFD_MENF21BMC || COMPILE_TEST
271	depends on I2C
272	select WATCHDOG_CORE
273	help
274	  Say Y here to include support for the MEN 14F021P00 BMC Watchdog.
275
276	  This driver can also be built as a module. If so the module
277	  will be called menf21bmc_wdt.
278
279config MENZ069_WATCHDOG
280	tristate "MEN 16Z069 Watchdog"
281	depends on MCB
282	select WATCHDOG_CORE
283	help
284	  Say Y here to include support for the MEN 16Z069 Watchdog.
285
286	  This driver can also be built as a module. If so the module
287	  will be called menz069_wdt.
288
289config WDAT_WDT
290	tristate "ACPI Watchdog Action Table (WDAT)"
291	depends on ACPI
292	select WATCHDOG_CORE
293	select ACPI_WATCHDOG
294	help
295	  This driver adds support for systems with ACPI Watchdog Action
296	  Table (WDAT) table. Servers typically have this but it can be
297	  found on some desktop machines as well. This driver will take
298	  over the native iTCO watchdog driver found on many Intel CPUs.
299
300	  To compile this driver as module, choose M here: the module will
301	  be called wdat_wdt.
302
303config WM831X_WATCHDOG
304	tristate "WM831x watchdog"
305	depends on MFD_WM831X
306	select WATCHDOG_CORE
307	help
308	  Support for the watchdog in the WM831x AudioPlus PMICs.  When
309	  the watchdog triggers the system will be reset.
310
311config WM8350_WATCHDOG
312	tristate "WM8350 watchdog"
313	depends on MFD_WM8350
314	select WATCHDOG_CORE
315	help
316	  Support for the watchdog in the WM8350 AudioPlus PMIC.  When
317	  the watchdog triggers the system will be reset.
318
319config XILINX_WATCHDOG
320	tristate "Xilinx Watchdog timer"
321	depends on HAS_IOMEM
322	select WATCHDOG_CORE
323	help
324	  Watchdog driver for the xps_timebase_wdt IP core.
325
326	  To compile this driver as a module, choose M here: the
327	  module will be called of_xilinx_wdt.
328
329config XILINX_WINDOW_WATCHDOG
330	tristate "Xilinx window watchdog timer"
331	depends on HAS_IOMEM
332	depends on ARM64 || COMPILE_TEST
333	select WATCHDOG_CORE
334	help
335	  Window watchdog driver for the versal_wwdt IP core.
336	  Window watchdog timer(WWDT) contains closed(first) and
337	  open(second) window with 32 bit width. Write to the watchdog
338	  timer within predefined window periods of time. This means
339	  a period that is not too soon and a period that is not too
340	  late. The WWDT has to be restarted within the open window time.
341	  If software tries to restart WWDT outside of the open window
342	  time period, it generates a reset.
343
344	  To compile this driver as a module, choose M here: the
345	  module will be called xilinx_wwdt.
346
347config ZIIRAVE_WATCHDOG
348	tristate "Zodiac RAVE Watchdog Timer"
349	depends on I2C
350	select WATCHDOG_CORE
351	help
352	  Watchdog driver for the Zodiac Aerospace RAVE Switch Watchdog
353	  Processor.
354
355	  To compile this driver as a module, choose M here: the
356	  module will be called ziirave_wdt.
357
358config RAVE_SP_WATCHDOG
359	tristate "RAVE SP Watchdog timer"
360	depends on RAVE_SP_CORE
361	depends on NVMEM || !NVMEM
362	select WATCHDOG_CORE
363	help
364	  Support for the watchdog on RAVE SP device.
365
366config MLX_WDT
367	tristate "Mellanox Watchdog"
368	depends on MELLANOX_PLATFORM || COMPILE_TEST
369	select WATCHDOG_CORE
370	select REGMAP
371	help
372	  This is the driver for the hardware watchdog on Mellanox systems.
373	  If you are going to use it, say Y here, otherwise N.
374	  This driver can be used together with the watchdog daemon.
375	  It can also watch your kernel to make sure it doesn't freeze,
376	  and if it does, it reboots your system after a certain amount of
377	  time.
378
379	  To compile this driver as a module, choose M here: the
380	  module will be called mlx-wdt.
381
382config SL28CPLD_WATCHDOG
383	tristate "Kontron sl28cpld Watchdog"
384	depends on MFD_SL28CPLD || COMPILE_TEST
385	select WATCHDOG_CORE
386	help
387	  Say Y here to include support for the watchdog timer
388	  on the Kontron sl28 CPLD.
389
390	  To compile this driver as a module, choose M here: the
391	  module will be called sl28cpld_wdt.
392
393# ALPHA Architecture
394
395# ARM Architecture
396
397config ARM_SP805_WATCHDOG
398	tristate "ARM SP805 Watchdog"
399	depends on (ARM || ARM64 || COMPILE_TEST) && ARM_AMBA
400	select WATCHDOG_CORE
401	help
402	  ARM Primecell SP805 Watchdog timer. This will reboot your system when
403	  the timeout is reached.
404
405config ARM_SBSA_WATCHDOG
406	tristate "ARM SBSA Generic Watchdog"
407	depends on ARM64
408	depends on ARM_ARCH_TIMER
409	select WATCHDOG_CORE
410	help
411	  ARM SBSA Generic Watchdog has two stage timeouts:
412	  the first signal (WS0) is for alerting the system by interrupt,
413	  the second one (WS1) is a real hardware reset.
414	  More details: ARM DEN0029B - Server Base System Architecture (SBSA)
415
416	  This driver can operate ARM SBSA Generic Watchdog as a single stage
417	  or a two stages watchdog, it depends on the module parameter "action".
418
419	  Note: the maximum timeout in the two stages mode is half of that in
420	  the single stage mode.
421
422	  To compile this driver as module, choose M here: The module
423	  will be called sbsa_gwdt.
424
425config ARMADA_37XX_WATCHDOG
426	tristate "Armada 37xx watchdog"
427	depends on ARCH_MVEBU || COMPILE_TEST
428	depends on HAS_IOMEM
429	select MFD_SYSCON
430	select WATCHDOG_CORE
431	help
432	   Say Y here to include support for the watchdog timer found on
433	   Marvell Armada 37xx SoCs.
434	   To compile this driver as a module, choose M here: the
435	   module will be called armada_37xx_wdt.
436
437config ASM9260_WATCHDOG
438	tristate "Alphascale ASM9260 watchdog"
439	depends on MACH_ASM9260 || COMPILE_TEST
440	depends on OF
441	select WATCHDOG_CORE
442	select RESET_CONTROLLER
443	help
444	  Watchdog timer embedded into Alphascale asm9260 chips. This will
445	  reboot your system when the timeout is reached.
446
447config AT91RM9200_WATCHDOG
448	tristate "AT91RM9200 watchdog"
449	depends on (SOC_AT91RM9200 && MFD_SYSCON) || COMPILE_TEST
450	help
451	  Watchdog timer embedded into AT91RM9200 chips. This will reboot your
452	  system when the timeout is reached.
453
454config AT91SAM9X_WATCHDOG
455	tristate "AT91SAM9X / AT91CAP9 watchdog"
456	depends on ARCH_AT91 || COMPILE_TEST
457	select WATCHDOG_CORE
458	help
459	  Watchdog timer embedded into AT91SAM9X and AT91CAP9 chips. This will
460	  reboot your system when the timeout is reached.
461
462config SAMA5D4_WATCHDOG
463	tristate "Atmel SAMA5D4 Watchdog Timer"
464	depends on ARCH_AT91 || COMPILE_TEST
465	select WATCHDOG_CORE
466	help
467	  Atmel SAMA5D4 watchdog timer is embedded into SAMA5D4 chips.
468	  Its Watchdog Timer Mode Register can be written more than once.
469	  This will reboot your system when the timeout is reached.
470
471config CADENCE_WATCHDOG
472	tristate "Cadence Watchdog Timer"
473	depends on HAS_IOMEM
474	select WATCHDOG_CORE
475	help
476	  Say Y here if you want to include support for the watchdog
477	  timer in the Xilinx Zynq.
478
479config 21285_WATCHDOG
480	tristate "DC21285 watchdog"
481	depends on FOOTBRIDGE
482	help
483	  The Intel Footbridge chip contains a built-in watchdog circuit. Say Y
484	  here if you wish to use this. Alternatively say M to compile the
485	  driver as a module, which will be called wdt285.
486
487	  This driver does not work on all machines. In particular, early CATS
488	  boards have hardware problems that will cause the machine to simply
489	  lock up if the watchdog fires.
490
491	  "If in doubt, leave it out" - say N.
492
493config 977_WATCHDOG
494	tristate "NetWinder WB83C977 watchdog"
495	depends on (FOOTBRIDGE && ARCH_NETWINDER) || (ARM && COMPILE_TEST)
496	depends on HAS_IOPORT
497	help
498	  Say Y here to include support for the WB977 watchdog included in
499	  NetWinder machines. Alternatively say M to compile the driver as
500	  a module, which will be called wdt977.
501
502	  Not sure? It's safe to say N.
503
504config FTWDT010_WATCHDOG
505	tristate "Faraday Technology FTWDT010 watchdog"
506	depends on ARM || COMPILE_TEST
507	select WATCHDOG_CORE
508	default ARCH_GEMINI
509	help
510	  Say Y here if to include support for the Faraday Technology
511	  FTWDT010 watchdog timer embedded in the Cortina Systems Gemini
512	  family of devices.
513
514	  To compile this driver as a module, choose M here: the
515	  module will be called ftwdt010_wdt.
516
517config IXP4XX_WATCHDOG
518	tristate "IXP4xx Watchdog"
519	depends on ARCH_IXP4XX || (ARM && COMPILE_TEST)
520	select WATCHDOG_CORE
521	help
522	  Say Y here if to include support for the watchdog timer
523	  in the Intel IXP4xx network processors. This driver can
524	  be built as a module by choosing M. The module will
525	  be called ixp4xx_wdt.
526
527	  Note: The internal IXP4xx watchdog does a soft CPU reset
528	  which doesn't reset any peripherals. There are circumstances
529	  where the watchdog will fail to reset the board correctly
530	  (e.g., if the boot ROM is in an unreadable state).
531
532	  Say N if you are unsure.
533
534config S3C2410_WATCHDOG
535	tristate "S3C6410/S5Pv210/Exynos Watchdog"
536	depends on ARCH_S3C64XX || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
537	select WATCHDOG_CORE
538	help
539	  Watchdog timer block in the Samsung S3C64xx, S5Pv210 and Exynos
540	  SoCs. This will reboot the system when the timer expires with
541	  the watchdog enabled.
542
543	  The driver is limited by the speed of the system's PCLK
544	  signal, so with reasonably fast systems (PCLK around 50-66MHz)
545	  then watchdog intervals of over approximately 20seconds are
546	  unavailable.
547
548	  Choose Y/M here only if you build for such Samsung SoC.
549	  The driver can be built as a module by choosing M, and will
550	  be called s3c2410_wdt.
551
552config SA1100_WATCHDOG
553	tristate "SA1100/PXA2xx watchdog"
554	depends on ARCH_SA1100 || ARCH_PXA || COMPILE_TEST
555	help
556	  Watchdog timer embedded into SA11x0 and PXA2xx chips. This will
557	  reboot your system when timeout is reached.
558
559	  NOTE: once enabled, this timer cannot be disabled.
560
561	  To compile this driver as a module, choose M here: the
562	  module will be called sa1100_wdt.
563
564config DW_WATCHDOG
565	tristate "Synopsys DesignWare watchdog"
566	depends on HAS_IOMEM
567	select WATCHDOG_CORE
568	help
569	  Say Y here if to include support for the Synopsys DesignWare
570	  watchdog timer found in many chips.
571	  To compile this driver as a module, choose M here: the
572	  module will be called dw_wdt.
573
574config EP93XX_WATCHDOG
575	tristate "EP93xx Watchdog"
576	depends on ARCH_EP93XX || COMPILE_TEST
577	select WATCHDOG_CORE
578	help
579	  Say Y here if to include support for the watchdog timer
580	  embedded in the Cirrus Logic EP93xx family of devices.
581
582	  To compile this driver as a module, choose M here: the
583	  module will be called ep93xx_wdt.
584
585config OMAP_WATCHDOG
586	tristate "OMAP Watchdog"
587	depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS || COMPILE_TEST
588	select WATCHDOG_CORE
589	help
590	  Support for TI OMAP1610/OMAP1710/OMAP2420/OMAP3430/OMAP4430 watchdog.
591	  Say 'Y' here to enable the
592	  OMAP1610/OMAP1710/OMAP2420/OMAP3430/OMAP4430 watchdog timer.
593
594config PNX4008_WATCHDOG
595	tristate "LPC32XX Watchdog"
596	depends on ARCH_LPC32XX || COMPILE_TEST
597	select WATCHDOG_CORE
598	help
599	  Say Y here if to include support for the watchdog timer
600	  in the LPC32XX processor.
601	  This driver can be built as a module by choosing M. The module
602	  will be called pnx4008_wdt.
603
604	  Say N if you are unsure.
605
606config DAVINCI_WATCHDOG
607	tristate "DaVinci watchdog"
608	depends on ARCH_DAVINCI || ARCH_KEYSTONE || COMPILE_TEST
609	select WATCHDOG_CORE
610	help
611	  Say Y here if to include support for the watchdog timer
612	  in the DaVinci DM644x/DM646x or Keystone processors.
613	  To compile this driver as a module, choose M here: the
614	  module will be called davinci_wdt.
615
616	  NOTE: once enabled, this timer cannot be disabled.
617	  Say N if you are unsure.
618
619config K3_RTI_WATCHDOG
620	tristate "Texas Instruments K3 RTI watchdog"
621	depends on ARCH_K3 || COMPILE_TEST
622	select WATCHDOG_CORE
623	help
624	  Say Y here if you want to include support for the K3 watchdog
625	  timer (RTI module) available in the K3 generation of processors.
626
627config ORION_WATCHDOG
628	tristate "Orion watchdog"
629	depends on ARCH_ORION5X || ARCH_DOVE || MACH_DOVE || ARCH_MVEBU || COMPILE_TEST
630	depends on ARM
631	select WATCHDOG_CORE
632	help
633	  Say Y here if to include support for the watchdog timer
634	  in the Marvell Orion5x and Kirkwood ARM SoCs.
635	  To compile this driver as a module, choose M here: the
636	  module will be called orion_wdt.
637
638config RN5T618_WATCHDOG
639	tristate "Ricoh RN5T618 watchdog"
640	depends on MFD_RN5T618 || COMPILE_TEST
641	select WATCHDOG_CORE
642	help
643	  If you say yes here you get support for watchdog on the Ricoh
644	  RN5T618 PMIC.
645
646	  This driver can also be built as a module.  If so, the module
647	  will be called rn5t618_wdt.
648
649config SUNXI_WATCHDOG
650	tristate "Allwinner SoCs watchdog support"
651	depends on ARCH_SUNXI || COMPILE_TEST
652	select WATCHDOG_CORE
653	help
654	  Say Y here to include support for the watchdog timer
655	  in Allwinner SoCs.
656	  To compile this driver as a module, choose M here: the
657	  module will be called sunxi_wdt.
658
659config NPCM7XX_WATCHDOG
660	tristate "Nuvoton NPCM750 watchdog"
661	depends on ARCH_NPCM || COMPILE_TEST
662	default y if ARCH_NPCM7XX
663	select WATCHDOG_CORE
664	help
665	  Say Y here to include Watchdog timer support for the
666	  watchdog embedded into the NPCM7xx.
667	  This watchdog is used to reset the system and thus cannot be
668	  compiled as a module.
669
670config TWL4030_WATCHDOG
671	tristate "TWL4030 Watchdog"
672	depends on TWL4030_CORE
673	select WATCHDOG_CORE
674	help
675	  Support for TI TWL4030 watchdog.  Say 'Y' here to enable the
676	  watchdog timer support for TWL4030 chips.
677
678config STMP3XXX_RTC_WATCHDOG
679	tristate "Freescale STMP3XXX & i.MX23/28 watchdog"
680	depends on RTC_DRV_STMP || COMPILE_TEST
681	select WATCHDOG_CORE
682	help
683	  Say Y here to include support for the watchdog timer inside
684	  the RTC for the STMP37XX/378X or i.MX23/28 SoC.
685	  To compile this driver as a module, choose M here: the
686	  module will be called stmp3xxx_rtc_wdt.
687
688config TS4800_WATCHDOG
689	tristate "TS-4800 Watchdog"
690	depends on HAS_IOMEM && OF
691	depends on SOC_IMX51 || COMPILE_TEST
692	select WATCHDOG_CORE
693	select MFD_SYSCON
694	help
695	  Technologic Systems TS-4800 has watchdog timer implemented in
696	  an external FPGA. Say Y here if you want to support for the
697	  watchdog timer on TS-4800 board.
698
699config TS72XX_WATCHDOG
700	tristate "TS-72XX SBC Watchdog"
701	depends on MACH_TS72XX || COMPILE_TEST
702	select WATCHDOG_CORE
703	help
704	  Technologic Systems TS-7200, TS-7250 and TS-7260 boards have
705	  watchdog timer implemented in a external CPLD chip. Say Y here
706	  if you want to support for the watchdog timer on TS-72XX boards.
707
708	  To compile this driver as a module, choose M here: the
709	  module will be called ts72xx_wdt.
710
711config MAX63XX_WATCHDOG
712	tristate "Max63xx watchdog"
713	depends on HAS_IOMEM
714	select WATCHDOG_CORE
715	help
716	  Support for memory mapped max63{69,70,71,72,73,74} watchdog timer.
717
718config MAX77620_WATCHDOG
719	tristate "Maxim Max77620 Watchdog Timer"
720	depends on MFD_MAX77620 || MFD_MAX77714 || COMPILE_TEST
721	select WATCHDOG_CORE
722	help
723	  This is the driver for the Max77620 watchdog timer.
724	  Say 'Y' here to enable the watchdog timer support for
725	  MAX77620 chips. To compile this driver as a module,
726	  choose M here: the module will be called max77620_wdt.
727
728config IMX2_WDT
729	tristate "IMX2+ Watchdog"
730	depends on ARCH_MXC || ARCH_LAYERSCAPE || COMPILE_TEST
731	select REGMAP_MMIO
732	select WATCHDOG_CORE
733	help
734	  This is the driver for the hardware watchdog
735	  on the Freescale IMX2 and later processors.
736	  If you have one of these processors and wish to have
737	  watchdog support enabled, say Y, otherwise say N.
738
739	  To compile this driver as a module, choose M here: the
740	  module will be called imx2_wdt.
741
742config IMX_SC_WDT
743	tristate "IMX SC Watchdog"
744	depends on HAVE_ARM_SMCCC
745	depends on IMX_SCU || COMPILE_TEST
746	select WATCHDOG_CORE
747	help
748	  This is the driver for the system controller watchdog
749	  on the NXP i.MX SoCs with system controller inside, the
750	  watchdog driver will call ARM SMC API and trap into
751	  ARM-Trusted-Firmware for operations, ARM-Trusted-Firmware
752	  will request system controller to execute the operations.
753	  If you have one of these processors and wish to have
754	  watchdog support enabled, say Y, otherwise say N.
755
756	  To compile this driver as a module, choose M here: the
757	  module will be called imx_sc_wdt.
758
759config IMX7ULP_WDT
760	tristate "IMX7ULP Watchdog"
761	depends on ARCH_MXC || COMPILE_TEST
762	select WATCHDOG_CORE
763	help
764	  This is the driver for the hardware watchdog on the Freescale
765	  IMX7ULP and later processors. If you have one of these
766	  processors and wish to have watchdog support enabled,
767	  say Y, otherwise say N.
768
769	  To compile this driver as a module, choose M here: the
770	  module will be called imx7ulp_wdt.
771
772config DB500_WATCHDOG
773	tristate "ST-Ericsson DB800 watchdog"
774	depends on MFD_DB8500_PRCMU
775	select WATCHDOG_CORE
776	default y
777	help
778	  Say Y here to include Watchdog timer support for the watchdog
779	  existing in the prcmu of ST-Ericsson DB8500 platform.
780
781	  To compile this driver as a module, choose M here: the
782	  module will be called db500_wdt.
783
784config RETU_WATCHDOG
785	tristate "Retu watchdog"
786	depends on MFD_RETU
787	select WATCHDOG_CORE
788	help
789	  Retu watchdog driver for Nokia Internet Tablets (770, N800,
790	  N810). At least on N800 the watchdog cannot be disabled, so
791	  this driver is essential and you should enable it.
792
793	  To compile this driver as a module, choose M here: the
794	  module will be called retu_wdt.
795
796config MOXART_WDT
797	tristate "MOXART watchdog"
798	depends on ARCH_MOXART || COMPILE_TEST
799	help
800	  Say Y here to include Watchdog timer support for the watchdog
801	  existing on the MOXA ART SoC series platforms.
802
803	  To compile this driver as a module, choose M here: the
804	  module will be called moxart_wdt.
805
806config ST_LPC_WATCHDOG
807	tristate "STMicroelectronics LPC Watchdog"
808	depends on ARCH_STI || COMPILE_TEST
809	depends on OF
810	select WATCHDOG_CORE
811	help
812	  Say Y here to include STMicroelectronics Low Power Controller
813	  (LPC) based Watchdog timer support.
814
815	  To compile this driver as a module, choose M here: the
816	  module will be called st_lpc_wdt.
817
818config TEGRA_WATCHDOG
819	tristate "Tegra watchdog"
820	depends on (ARCH_TEGRA || COMPILE_TEST) && HAS_IOMEM
821	select WATCHDOG_CORE
822	help
823	  Say Y here to include support for the watchdog timer
824	  embedded in NVIDIA Tegra SoCs.
825
826	  To compile this driver as a module, choose M here: the
827	  module will be called tegra_wdt.
828
829config QCOM_WDT
830	tristate "QCOM watchdog"
831	depends on HAS_IOMEM
832	depends on ARCH_QCOM || COMPILE_TEST
833	select WATCHDOG_CORE
834	help
835	  Say Y here to include Watchdog timer support for the watchdog found
836	  on QCOM chipsets.  Currently supported targets are the MSM8960,
837	  APQ8064, and IPQ8064.
838
839	  To compile this driver as a module, choose M here: the
840	  module will be called qcom_wdt.
841
842config MESON_GXBB_WATCHDOG
843	tristate "Amlogic Meson GXBB SoCs watchdog support"
844	depends on ARCH_MESON || COMPILE_TEST
845	select WATCHDOG_CORE
846	help
847	  Say Y here to include support for the watchdog timer
848	  in Amlogic Meson GXBB SoCs.
849	  To compile this driver as a module, choose M here: the
850	  module will be called meson_gxbb_wdt.
851
852config MESON_WATCHDOG
853	tristate "Amlogic Meson SoCs watchdog support"
854	depends on ARCH_MESON || COMPILE_TEST
855	select WATCHDOG_CORE
856	help
857	  Say Y here to include support for the watchdog timer
858	  in Amlogic Meson SoCs.
859	  To compile this driver as a module, choose M here: the
860	  module will be called meson_wdt.
861
862config MEDIATEK_WATCHDOG
863	tristate "Mediatek SoCs watchdog support"
864	depends on ARCH_MEDIATEK || COMPILE_TEST
865	default ARCH_MEDIATEK
866	select WATCHDOG_CORE
867	select RESET_CONTROLLER
868	help
869	  Say Y here to include support for the watchdog timer
870	  in Mediatek SoCs.
871	  To compile this driver as a module, choose M here: the
872	  module will be called mtk_wdt.
873
874config DIGICOLOR_WATCHDOG
875	tristate "Conexant Digicolor SoCs watchdog support"
876	depends on ARCH_DIGICOLOR || COMPILE_TEST
877	select WATCHDOG_CORE
878	help
879	  Say Y here to include support for the watchdog timer
880	  in Conexant Digicolor SoCs.
881	  To compile this driver as a module, choose M here: the
882	  module will be called digicolor_wdt.
883
884config ARM_SMC_WATCHDOG
885	tristate "ARM Secure Monitor Call based watchdog support"
886	depends on ARM || ARM64
887	depends on OF
888	depends on HAVE_ARM_SMCCC
889	select WATCHDOG_CORE
890	help
891	  Say Y here to include support for a watchdog timer
892	  implemented by the EL3 Secure Monitor on ARM platforms.
893	  Requires firmware support.
894	  To compile this driver as a module, choose M here: the
895	  module will be called arm_smc_wdt.
896
897config LPC18XX_WATCHDOG
898	tristate "LPC18xx/43xx Watchdog"
899	depends on ARCH_LPC18XX || COMPILE_TEST
900	depends on HAS_IOMEM
901	select WATCHDOG_CORE
902	help
903	  Say Y here if to include support for the watchdog timer
904	  in NXP LPC SoCs family, which includes LPC18xx/LPC43xx
905	  processors.
906	  To compile this driver as a module, choose M here: the
907	  module will be called lpc18xx_wdt.
908
909config RENESAS_WDT
910	tristate "Renesas WDT Watchdog"
911	depends on ARCH_RENESAS || COMPILE_TEST
912	select WATCHDOG_CORE
913	help
914	  This driver adds watchdog support for the integrated watchdogs in the
915	  Renesas R-Car and other SH-Mobile SoCs (usually named RWDT or SWDT).
916
917config RENESAS_RZAWDT
918	tristate "Renesas RZ/A WDT Watchdog"
919	depends on ARCH_RENESAS || COMPILE_TEST
920	select WATCHDOG_CORE
921	help
922	  This driver adds watchdog support for the integrated watchdogs in the
923	  Renesas RZ/A SoCs. These watchdogs can be used to reset a system.
924
925config RENESAS_RZN1WDT
926	tristate "Renesas RZ/N1 watchdog"
927	depends on ARCH_RENESAS || COMPILE_TEST
928	select WATCHDOG_CORE
929	help
930	  This driver adds watchdog support for the integrated watchdogs in the
931	  Renesas RZ/N1 SoCs. These watchdogs can be used to reset a system.
932
933config RENESAS_RZG2LWDT
934	tristate "Renesas RZ/G2L WDT Watchdog"
935	depends on ARCH_RENESAS || COMPILE_TEST
936	select WATCHDOG_CORE
937	help
938	  This driver adds watchdog support for the integrated watchdogs in the
939	  Renesas RZ/G2L SoCs. These watchdogs can be used to reset a system.
940
941config ASPEED_WATCHDOG
942	tristate "Aspeed BMC watchdog support"
943	depends on ARCH_ASPEED || COMPILE_TEST
944	select WATCHDOG_CORE
945	help
946	  Say Y here to include support for the watchdog timer
947	  in Aspeed BMC SoCs.
948
949	  This driver is required to reboot the SoC.
950
951	  To compile this driver as a module, choose M here: the
952	  module will be called aspeed_wdt.
953
954config STM32_WATCHDOG
955	tristate "STM32 Independent WatchDoG (IWDG) support"
956	depends on ARCH_STM32 || COMPILE_TEST
957	select WATCHDOG_CORE
958	default y
959	help
960	  Say Y here to include support for the watchdog timer
961	  in stm32 SoCs.
962
963	  To compile this driver as a module, choose M here: the
964	  module will be called stm32_iwdg.
965
966config STPMIC1_WATCHDOG
967	tristate "STPMIC1 PMIC watchdog support"
968	depends on MFD_STPMIC1
969	select WATCHDOG_CORE
970	help
971	  Say Y here to include watchdog support embedded into STPMIC1 PMIC.
972	  If the watchdog timer expires, stpmic1 will shut down all its power
973	  supplies.
974
975	  To compile this driver as a module, choose M here: the
976	  module will be called spmic1_wdt.
977
978config UNIPHIER_WATCHDOG
979	tristate "UniPhier watchdog support"
980	depends on ARCH_UNIPHIER || COMPILE_TEST
981	depends on OF && MFD_SYSCON
982	select WATCHDOG_CORE
983	help
984	  Say Y here to include support watchdog timer embedded
985	  into the UniPhier system.
986
987	  To compile this driver as a module, choose M here: the
988	  module will be called uniphier_wdt.
989
990config RTD119X_WATCHDOG
991	bool "Realtek RTD119x/RTD129x watchdog support"
992	depends on ARCH_REALTEK || COMPILE_TEST
993	depends on OF
994	select WATCHDOG_CORE
995	default ARCH_REALTEK
996	help
997	  Say Y here to include support for the watchdog timer in
998	  Realtek RTD1295 SoCs.
999
1000config REALTEK_OTTO_WDT
1001	tristate "Realtek Otto MIPS watchdog support"
1002	depends on MACH_REALTEK_RTL || COMPILE_TEST
1003	depends on COMMON_CLK
1004	select WATCHDOG_CORE
1005	default MACH_REALTEK_RTL
1006	help
1007	  Say Y here to include support for the watchdog timer on Realtek
1008	  RTL838x, RTL839x, RTL930x SoCs. This watchdog has pretimeout
1009	  notifications and system reset on timeout.
1010
1011	  When built as a module this will be called realtek_otto_wdt.
1012
1013config SPRD_WATCHDOG
1014	tristate "Spreadtrum watchdog support"
1015	depends on ARCH_SPRD || COMPILE_TEST
1016	select WATCHDOG_CORE
1017	help
1018	  Say Y here to include watchdog timer supported
1019	  by Spreadtrum system.
1020
1021config PM8916_WATCHDOG
1022	tristate "QCOM PM8916 pmic watchdog"
1023	depends on OF && MFD_SPMI_PMIC
1024	select WATCHDOG_CORE
1025	help
1026	  Say Y here to include support watchdog timer embedded into the
1027	  pm8916 module.
1028
1029config VISCONTI_WATCHDOG
1030	tristate "Toshiba Visconti series watchdog support"
1031	depends on ARCH_VISCONTI || COMPILE_TEST
1032	select WATCHDOG_CORE
1033	help
1034	  Say Y here to include support for the watchdog timer in Toshiba
1035	  Visconti SoCs.
1036
1037config MSC313E_WATCHDOG
1038	tristate "MStar MSC313e watchdog"
1039	depends on ARCH_MSTARV7 || COMPILE_TEST
1040	select WATCHDOG_CORE
1041	help
1042	  Say Y here to include support for the Watchdog timer embedded
1043	  into MStar MSC313e chips. This will reboot your system when the
1044	  timeout is reached.
1045
1046	  To compile this driver as a module, choose M here: the
1047	  module will be called msc313e_wdt.
1048
1049config APPLE_WATCHDOG
1050	tristate "Apple SoC watchdog"
1051	depends on ARCH_APPLE || COMPILE_TEST
1052	select WATCHDOG_CORE
1053	help
1054	  Say Y here to include support for the Watchdog found in Apple
1055	  SoCs such as the M1. Next to the common watchdog features this
1056	  driver is also required in order to reboot these SoCs.
1057
1058	  To compile this driver as a module, choose M here: the
1059	  module will be called apple_wdt.
1060
1061config SUNPLUS_WATCHDOG
1062	tristate "Sunplus watchdog support"
1063	depends on ARCH_SUNPLUS || COMPILE_TEST
1064	select WATCHDOG_CORE
1065	help
1066	  Say Y here to include support for the watchdog timer
1067	  in Sunplus SoCs.
1068
1069	  To compile this driver as a module, choose M here: the
1070	  module will be called sunplus_wdt.
1071
1072# X86 (i386 + ia64 + x86_64) Architecture
1073
1074config ACQUIRE_WDT
1075	tristate "Acquire SBC Watchdog Timer"
1076	depends on X86
1077	help
1078	  This is the driver for the hardware watchdog on Single Board
1079	  Computers produced by Acquire Inc (and others). This watchdog
1080	  simply watches your kernel to make sure it doesn't freeze, and if
1081	  it does, it reboots your computer after a certain amount of time.
1082
1083	  To compile this driver as a module, choose M here: the
1084	  module will be called acquirewdt.
1085
1086	  Most people will say N.
1087
1088config ADVANTECH_WDT
1089	tristate "Advantech SBC Watchdog Timer"
1090	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1091	help
1092	  If you are configuring a Linux kernel for the Advantech single-board
1093	  computer, say `Y' here to support its built-in watchdog timer
1094	  feature. More information can be found at
1095	  <https://www.advantech.com.tw/products/>
1096
1097config ADVANTECH_EC_WDT
1098	tristate "Advantech Embedded Controller Watchdog Timer"
1099	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1100	select ISA_BUS_API
1101	select WATCHDOG_CORE
1102	help
1103		This driver supports Advantech products with ITE based Embedded Controller.
1104		It does not support Advantech products with other ECs or without EC.
1105
1106config ALIM1535_WDT
1107	tristate "ALi M1535 PMU Watchdog Timer"
1108	depends on (X86 || COMPILE_TEST) && PCI
1109	help
1110	  This is the driver for the hardware watchdog on the ALi M1535 PMU.
1111
1112	  To compile this driver as a module, choose M here: the
1113	  module will be called alim1535_wdt.
1114
1115	  Most people will say N.
1116
1117config ALIM7101_WDT
1118	tristate "ALi M7101 PMU Computer Watchdog"
1119	depends on PCI
1120	help
1121	  This is the driver for the hardware watchdog on the ALi M7101 PMU
1122	  as used in the x86 Cobalt servers and also found in some
1123	  SPARC Netra servers too.
1124
1125	  To compile this driver as a module, choose M here: the
1126	  module will be called alim7101_wdt.
1127
1128	  Most people will say N.
1129
1130config EBC_C384_WDT
1131	tristate "WinSystems EBC-C384 Watchdog Timer"
1132	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1133	select ISA_BUS_API
1134	select WATCHDOG_CORE
1135	help
1136	  Enables watchdog timer support for the watchdog timer on the
1137	  WinSystems EBC-C384 motherboard. The timeout may be configured via
1138	  the timeout module parameter.
1139
1140config EXAR_WDT
1141	tristate "Exar Watchdog Timer"
1142	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1143	select WATCHDOG_CORE
1144	help
1145	  Enables watchdog timer support for the watchdog timer present
1146	  in some Exar/MaxLinear UART chips like the XR28V38x.
1147
1148	  To compile this driver as a module, choose M here: the
1149	  module will be called exar_wdt.
1150
1151config F71808E_WDT
1152	tristate "Fintek F718xx, F818xx Super I/O Watchdog"
1153	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1154	select WATCHDOG_CORE
1155	help
1156	  This is the driver for the hardware watchdog on the Fintek F71808E,
1157	  F71862FG, F71868, F71869, F71882FG, F71889FG, F81803, F81865, and
1158	  F81866 Super I/O controllers.
1159
1160	  You can compile this driver directly into the kernel, or use
1161	  it as a module.  The module will be called f71808e_wdt.
1162
1163config SP5100_TCO
1164	tristate "AMD/ATI SP5100 TCO Timer/Watchdog"
1165	depends on (X86 || COMPILE_TEST) && PCI && HAS_IOPORT
1166	select WATCHDOG_CORE
1167	help
1168	  Hardware watchdog driver for the AMD/ATI SP5100 chipset. The TCO
1169	  (Total Cost of Ownership) timer is a watchdog timer that will reboot
1170	  the machine after its expiration. The expiration time can be
1171	  configured with the "heartbeat" parameter.
1172
1173	  To compile this driver as a module, choose M here: the
1174	  module will be called sp5100_tco.
1175
1176config GEODE_WDT
1177	tristate "AMD Geode CS5535/CS5536 Watchdog"
1178	depends on CS5535_MFGPT
1179	help
1180	  This driver enables a watchdog capability built into the
1181	  CS5535/CS5536 companion chips for the AMD Geode GX and LX
1182	  processors.  This watchdog watches your kernel to make sure
1183	  it doesn't freeze, and if it does, it reboots your computer after
1184	  a certain amount of time.
1185
1186	  You can compile this driver directly into the kernel, or use
1187	  it as a module.  The module will be called geodewdt.
1188
1189config SC520_WDT
1190	tristate "AMD Elan SC520 processor Watchdog"
1191	depends on MELAN || COMPILE_TEST
1192	help
1193	  This is the driver for the hardware watchdog built in to the
1194	  AMD "Elan" SC520 microcomputer commonly used in embedded systems.
1195	  This watchdog simply watches your kernel to make sure it doesn't
1196	  freeze, and if it does, it reboots your computer after a certain
1197	  amount of time.
1198
1199	  You can compile this driver directly into the kernel, or use
1200	  it as a module.  The module will be called sc520_wdt.
1201
1202config SBC_FITPC2_WATCHDOG
1203	tristate "Compulab SBC-FITPC2 watchdog"
1204	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1205	help
1206	  This is the driver for the built-in watchdog timer on the fit-PC2,
1207	  fit-PC2i, CM-iAM single-board computers made by Compulab.
1208
1209	  It's possible to enable the watchdog timer either from BIOS (F2) or
1210	  from booted Linux.
1211	  When the "Watchdog Timer Value" is enabled one can set 31-255 seconds
1212	  operational range.
1213
1214	  Entering BIOS setup temporarily disables watchdog operation regardless
1215	  of current state, so system will not be restarted while user is in
1216	  BIOS setup.
1217
1218	  Once the watchdog is enabled the system will be restarted every
1219	  "Watchdog Timer Value" period, so to prevent it user can restart or
1220	  disable the watchdog.
1221
1222	  To compile this driver as a module, choose M here: the
1223	  module will be called sbc_fitpc2_wdt.
1224
1225	  Most people will say N.
1226
1227config EUROTECH_WDT
1228	tristate "Eurotech CPU-1220/1410 Watchdog Timer"
1229	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1230	help
1231	  Enable support for the watchdog timer on the Eurotech CPU-1220 and
1232	  CPU-1410 cards.  These are PC/104 SBCs. Spec sheets and product
1233	  information are at <http://www.eurotech.it/>.
1234
1235config IB700_WDT
1236	tristate "IB700 SBC Watchdog Timer"
1237	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1238	help
1239	  This is the driver for the hardware watchdog on the IB700 Single
1240	  Board Computer produced by TMC Technology (www.tmc-uk.com). This
1241	  watchdog simply watches your kernel to make sure it doesn't freeze,
1242	  and if it does, it reboots your computer after a certain amount of time.
1243
1244	  This driver is like the WDT501 driver but for slightly different
1245	  hardware.
1246
1247	  To compile this driver as a module, choose M here: the
1248	  module will be called ib700wdt.
1249
1250	  Most people will say N.
1251
1252config IBMASR
1253	tristate "IBM Automatic Server Restart"
1254	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1255	help
1256	  This is the driver for the IBM Automatic Server Restart watchdog
1257	  timer built-in into some eServer xSeries machines.
1258
1259	  To compile this driver as a module, choose M here: the
1260	  module will be called ibmasr.
1261
1262config WAFER_WDT
1263	tristate "ICP Single Board Computer Watchdog Timer"
1264	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1265	help
1266	  This is a driver for the hardware watchdog on the ICP Single
1267	  Board Computer. This driver is working on (at least) the following
1268	  IPC SBC's: Wafer 5823, Rocky 4783, Rocky 3703 and Rocky 3782.
1269
1270	  To compile this driver as a module, choose M here: the
1271	  module will be called wafer5823wdt.
1272
1273config I6300ESB_WDT
1274	tristate "Intel 6300ESB Timer/Watchdog"
1275	depends on PCI
1276	select WATCHDOG_CORE
1277	help
1278	  Hardware driver for the watchdog timer built into the Intel
1279	  6300ESB controller hub.
1280
1281	  To compile this driver as a module, choose M here: the
1282	  module will be called i6300esb.
1283
1284config IE6XX_WDT
1285	tristate "Intel Atom E6xx Watchdog"
1286	depends on (X86 || COMPILE_TEST) && PCI && HAS_IOPORT
1287	select WATCHDOG_CORE
1288	select MFD_CORE
1289	select LPC_SCH
1290	help
1291	  Hardware driver for the watchdog timer built into the Intel
1292	  Atom E6XX (TunnelCreek) processor.
1293
1294	  To compile this driver as a module, choose M here: the
1295	  module will be called ie6xx_wdt.
1296
1297config INTEL_MID_WATCHDOG
1298	tristate "Intel MID Watchdog Timer"
1299	depends on X86_INTEL_MID
1300	select WATCHDOG_CORE
1301	help
1302	  Watchdog timer driver built into the Intel SCU for Intel MID
1303	  Platforms.
1304
1305	  This driver currently supports only the watchdog evolution
1306	  implementation in SCU, available for Merrifield generation.
1307
1308	  To compile this driver as a module, choose M here.
1309
1310config ITCO_WDT
1311	tristate "Intel TCO Timer/Watchdog"
1312	depends on X86 && PCI
1313	select WATCHDOG_CORE
1314	depends on I2C || I2C=n
1315	depends on MFD_INTEL_PMC_BXT || !MFD_INTEL_PMC_BXT
1316	depends on HAS_IOPORT # for I2C_I801
1317	select LPC_ICH if !EXPERT
1318	select I2C_I801 if !EXPERT && I2C
1319	help
1320	  Hardware driver for the intel TCO timer based watchdog devices.
1321	  These drivers are included in the Intel 82801 I/O Controller
1322	  Hub family (from ICH0 up to ICH10) and in the Intel 63xxESB
1323	  controller hub.
1324
1325	  The TCO (Total Cost of Ownership) timer is a watchdog timer
1326	  that will reboot the machine after its second expiration. The
1327	  expiration time can be configured with the "heartbeat" parameter.
1328
1329	  On some motherboards the driver may fail to reset the chipset's
1330	  NO_REBOOT flag which prevents the watchdog from rebooting the
1331	  machine. If this is the case you will get a kernel message like
1332	  "failed to reset NO_REBOOT flag, reboot disabled by hardware".
1333
1334	  To compile this driver as a module, choose M here: the
1335	  module will be called iTCO_wdt.
1336
1337config ITCO_VENDOR_SUPPORT
1338	bool "Intel TCO Timer/Watchdog Specific Vendor Support"
1339	depends on ITCO_WDT
1340	help
1341	  Add vendor specific support to the intel TCO timer based watchdog
1342	  devices. At this moment we only have additional support for some
1343	  SuperMicro Inc. motherboards.
1344
1345config IT8712F_WDT
1346	tristate "IT8712F (Smart Guardian) Watchdog Timer"
1347	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1348	help
1349	  This is the driver for the built-in watchdog timer on the IT8712F
1350	  Super I/0 chipset used on many motherboards.
1351
1352	  If the driver does not work, then make sure that the game port in
1353	  the BIOS is enabled.
1354
1355	  To compile this driver as a module, choose M here: the
1356	  module will be called it8712f_wdt.
1357
1358config IT87_WDT
1359	tristate "IT87 Watchdog Timer"
1360	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1361	select WATCHDOG_CORE
1362	help
1363	  This is the driver for the hardware watchdog on the ITE IT8607,
1364	  IT8620, IT8622, IT8625, IT8628, IT8655, IT8665, IT8686, IT8702,
1365	  IT8712, IT8716, IT8718, IT8720, IT8721, IT8726, IT8728, and
1366	  IT8783 Super I/O chips.
1367
1368	  This watchdog simply watches your kernel to make sure it doesn't
1369	  freeze, and if it does, it reboots your computer after a certain
1370	  amount of time.
1371
1372	  To compile this driver as a module, choose M here: the module will
1373	  be called it87_wdt.
1374
1375config HP_WATCHDOG
1376	tristate "HP ProLiant iLO2+ Hardware Watchdog Timer"
1377	select WATCHDOG_CORE
1378	depends on (ARM64 || X86 || COMPILE_TEST) && PCI
1379	help
1380	  A software monitoring watchdog and NMI handling driver. This driver
1381	  will detect lockups and provide a stack trace. This is a driver that
1382	  will only load on an HP ProLiant system with a minimum of iLO2 support.
1383	  To compile this driver as a module, choose M here: the module will be
1384	  called hpwdt.
1385
1386config HPWDT_NMI_DECODING
1387	bool "NMI support for the HP ProLiant iLO2+ Hardware Watchdog Timer"
1388	depends on X86 && HP_WATCHDOG
1389	default y
1390	help
1391	  Enables the NMI handler for the watchdog pretimeout NMI and the iLO
1392	  "Generate NMI to System" virtual button.  When an NMI is claimed
1393	  by the driver, panic is called.
1394
1395config KEMPLD_WDT
1396	tristate "Kontron COM Watchdog Timer"
1397	depends on MFD_KEMPLD
1398	select WATCHDOG_CORE
1399	help
1400	  Support for the PLD watchdog on some Kontron ETX and COMexpress
1401	  (ETXexpress) modules
1402
1403	  This driver can also be built as a module. If so, the module will be
1404	  called kempld_wdt.
1405
1406config SC1200_WDT
1407	tristate "National Semiconductor PC87307/PC97307 (ala SC1200) Watchdog"
1408	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1409	help
1410	  This is a driver for National Semiconductor PC87307/PC97307 hardware
1411	  watchdog cards as found on the SC1200. This watchdog is mainly used
1412	  for power management purposes and can be used to power down the device
1413	  during inactivity periods (includes interrupt activity monitoring).
1414
1415	  To compile this driver as a module, choose M here: the
1416	  module will be called sc1200wdt.
1417
1418	  Most people will say N.
1419
1420config SCx200_WDT
1421	tristate "National Semiconductor SCx200 Watchdog"
1422	depends on SCx200 && PCI
1423	help
1424	  Enable the built-in watchdog timer support on the National
1425	  Semiconductor SCx200 processors.
1426
1427	  If compiled as a module, it will be called scx200_wdt.
1428
1429config PC87413_WDT
1430	tristate "NS PC87413 watchdog"
1431	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1432	help
1433	  This is the driver for the hardware watchdog on the PC87413 chipset
1434	  This watchdog simply watches your kernel to make sure it doesn't
1435	  freeze, and if it does, it reboots your computer after a certain
1436	  amount of time.
1437
1438	  To compile this driver as a module, choose M here: the
1439	  module will be called pc87413_wdt.
1440
1441	  Most people will say N.
1442
1443config NV_TCO
1444	tristate "nVidia TCO Timer/Watchdog"
1445	depends on (X86 || COMPILE_TEST) && PCI && HAS_IOPORT
1446	help
1447	  Hardware driver for the TCO timer built into the nVidia Hub family
1448	  (such as the MCP51).  The TCO (Total Cost of Ownership) timer is a
1449	  watchdog timer that will reboot the machine after its second
1450	  expiration. The expiration time can be configured with the
1451	  "heartbeat" parameter.
1452
1453	  On some motherboards the driver may fail to reset the chipset's
1454	  NO_REBOOT flag which prevents the watchdog from rebooting the
1455	  machine. If this is the case you will get a kernel message like
1456	  "failed to reset NO_REBOOT flag, reboot disabled by hardware".
1457
1458	  To compile this driver as a module, choose M here: the
1459	  module will be called nv_tco.
1460
1461config RDC321X_WDT
1462	tristate "RDC R-321x SoC watchdog"
1463	depends on X86_RDC321X || COMPILE_TEST
1464	depends on PCI
1465	help
1466	  This is the driver for the built in hardware watchdog
1467	  in the RDC R-321x SoC.
1468
1469	  To compile this driver as a module, choose M here: the
1470	  module will be called rdc321x_wdt.
1471
1472config 60XX_WDT
1473	tristate "SBC-60XX Watchdog Timer"
1474	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1475	help
1476	  This driver can be used with the watchdog timer found on some
1477	  single board computers, namely the 6010 PII based computer.
1478	  It may well work with other cards.  It reads port 0x443 to enable
1479	  and re-set the watchdog timer, and reads port 0x45 to disable
1480	  the watchdog.  If you have a card that behave in similar ways,
1481	  you can probably make this driver work with your card as well.
1482
1483	  You can compile this driver directly into the kernel, or use
1484	  it as a module.  The module will be called sbc60xxwdt.
1485
1486config SBC8360_WDT
1487	tristate "SBC8360 Watchdog Timer"
1488	depends on X86_32
1489	help
1490
1491	  This is the driver for the hardware watchdog on the SBC8360 Single
1492	  Board Computer produced by Axiomtek Co., Ltd. (www.axiomtek.com).
1493
1494	  To compile this driver as a module, choose M here: the
1495	  module will be called sbc8360.
1496
1497	  Most people will say N.
1498
1499config SBC7240_WDT
1500	tristate "SBC Nano 7240 Watchdog Timer"
1501	depends on X86_32 && !UML
1502	help
1503	  This is the driver for the hardware watchdog found on the IEI
1504	  single board computers EPIC Nano 7240 (and likely others). This
1505	  watchdog simply watches your kernel to make sure it doesn't freeze,
1506	  and if it does, it reboots your computer after a certain amount of
1507	  time.
1508
1509	  To compile this driver as a module, choose M here: the
1510	  module will be called sbc7240_wdt.
1511
1512config CPU5_WDT
1513	tristate "SMA CPU5 Watchdog"
1514	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1515	help
1516	  TBD.
1517	  To compile this driver as a module, choose M here: the
1518	  module will be called cpu5wdt.
1519
1520config SMSC_SCH311X_WDT
1521	tristate "SMSC SCH311X Watchdog Timer"
1522	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1523	help
1524	  This is the driver for the hardware watchdog timer on the
1525	  SMSC SCH3112, SCH3114 and SCH3116 Super IO chipset
1526	  (LPC IO with 8042 KBC, Reset Generation, HWM and multiple
1527	  serial ports).
1528
1529	  To compile this driver as a module, choose M here: the
1530	  module will be called sch311x_wdt.
1531
1532config SMSC37B787_WDT
1533	tristate "Winbond SMsC37B787 Watchdog Timer"
1534	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1535	help
1536	  This is the driver for the hardware watchdog component on the
1537	  Winbond SMsC37B787 chipset as used on the NetRunner Mainboard
1538	  from Vision Systems and maybe others.
1539
1540	  This watchdog simply watches your kernel to make sure it doesn't
1541	  freeze, and if it does, it reboots your computer after a certain
1542	  amount of time.
1543
1544	  Usually a userspace daemon will notify the kernel WDT driver that
1545	  userspace is still alive, at regular intervals.
1546
1547	  To compile this driver as a module, choose M here: the
1548	  module will be called smsc37b787_wdt.
1549
1550	  Most people will say N.
1551
1552config TQMX86_WDT
1553	tristate "TQ-Systems TQMX86 Watchdog Timer"
1554	depends on X86 || COMPILE_TEST
1555	select WATCHDOG_CORE
1556	help
1557	  This is the driver for the hardware watchdog timer in the TQMX86 IO
1558	  controller found on some of their ComExpress Modules.
1559
1560	  To compile this driver as a module, choose M here; the module
1561	  will be called tqmx86_wdt.
1562
1563	  Most people will say N.
1564
1565config VIA_WDT
1566	tristate "VIA Watchdog Timer"
1567	depends on (X86 || COMPILE_TEST) && PCI
1568	select WATCHDOG_CORE
1569	help
1570	  This is the driver for the hardware watchdog timer on VIA
1571	  southbridge chipset CX700, VX800/VX820 or VX855/VX875.
1572
1573	  To compile this driver as a module, choose M here; the module
1574	  will be called via_wdt.
1575
1576	  Most people will say N.
1577
1578config W83627HF_WDT
1579	tristate "Watchdog timer for W83627HF/W83627DHG and compatibles"
1580	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1581	select WATCHDOG_CORE
1582	help
1583	  This is the driver for the hardware watchdog on the following
1584	  Super I/O chips.
1585		W83627DHG/DHG-P/EHF/EHG/F/G/HF/S/SF/THF/UHG/UG
1586		W83637HF
1587		W83667HG/HG-B
1588		W83687THF
1589		W83697HF
1590		W83697UG
1591		NCT6775
1592		NCT6776
1593		NCT6779
1594		NCT6791
1595		NCT6792
1596		NCT6102D/04D/06D
1597		NCT6116D
1598
1599	  This watchdog simply watches your kernel to make sure it doesn't
1600	  freeze, and if it does, it reboots your computer after a certain
1601	  amount of time.
1602
1603	  To compile this driver as a module, choose M here: the
1604	  module will be called w83627hf_wdt.
1605
1606	  Most people will say N.
1607
1608config W83877F_WDT
1609	tristate "W83877F (EMACS) Watchdog Timer"
1610	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1611	help
1612	  This is the driver for the hardware watchdog on the W83877F chipset
1613	  as used in EMACS PC-104 motherboards (and likely others).  This
1614	  watchdog simply watches your kernel to make sure it doesn't freeze,
1615	  and if it does, it reboots your computer after a certain amount of
1616	  time.
1617
1618	  To compile this driver as a module, choose M here: the
1619	  module will be called w83877f_wdt.
1620
1621	  Most people will say N.
1622
1623config W83977F_WDT
1624	tristate "W83977F (PCM-5335) Watchdog Timer"
1625	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1626	help
1627	  This is the driver for the hardware watchdog on the W83977F I/O chip
1628	  as used in AAEON's PCM-5335 SBC (and likely others).  This
1629	  watchdog simply watches your kernel to make sure it doesn't freeze,
1630	  and if it does, it reboots your computer after a certain amount of
1631	  time.
1632
1633	  To compile this driver as a module, choose M here: the
1634	  module will be called w83977f_wdt.
1635
1636config MACHZ_WDT
1637	tristate "ZF MachZ Watchdog"
1638	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1639	help
1640	  If you are using a ZF Micro MachZ processor, say Y here, otherwise
1641	  N.  This is the driver for the watchdog timer built-in on that
1642	  processor using ZF-Logic interface.  This watchdog simply watches
1643	  your kernel to make sure it doesn't freeze, and if it does, it
1644	  reboots your computer after a certain amount of time.
1645
1646	  To compile this driver as a module, choose M here: the
1647	  module will be called machzwd.
1648
1649config SBC_EPX_C3_WATCHDOG
1650	tristate "Winsystems SBC EPX-C3 watchdog"
1651	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
1652	help
1653	  This is the driver for the built-in watchdog timer on the EPX-C3
1654	  Single-board computer made by Winsystems, Inc.
1655
1656	  *Note*: This hardware watchdog is not probeable and thus there
1657	  is no way to know if writing to its IO address will corrupt
1658	  your system or have any real effect.  The only way to be sure
1659	  that this driver does what you want is to make sure you
1660	  are running it on an EPX-C3 from Winsystems with the watchdog
1661	  timer at IO address 0x1ee and 0x1ef.  It will write to both those
1662	  IO ports.  Basically, the assumption is made that if you compile
1663	  this driver into your kernel and/or load it as a module, that you
1664	  know what you are doing and that you are in fact running on an
1665	  EPX-C3 board!
1666
1667	  To compile this driver as a module, choose M here: the
1668	  module will be called sbc_epx_c3.
1669
1670config INTEL_MEI_WDT
1671	tristate "Intel MEI iAMT Watchdog"
1672	depends on INTEL_MEI && X86
1673	select WATCHDOG_CORE
1674	help
1675	  A device driver for the Intel MEI iAMT watchdog.
1676
1677	  The Intel AMT Watchdog is an OS Health (Hang/Crash) watchdog.
1678	  Whenever the OS hangs or crashes, iAMT will send an event
1679	  to any subscriber to this event. The watchdog doesn't reset the
1680	  the platform.
1681
1682	  To compile this driver as a module, choose M here:
1683	  the module will be called mei_wdt.
1684
1685config NI903X_WDT
1686	tristate "NI 903x/913x Watchdog"
1687	depends on X86 && ACPI
1688	select WATCHDOG_CORE
1689	help
1690	  This is the driver for the watchdog timer on the National Instruments
1691	  903x/913x real-time controllers.
1692
1693	  To compile this driver as a module, choose M here: the module will be
1694	  called ni903x_wdt.
1695
1696config NIC7018_WDT
1697	tristate "NIC7018 Watchdog"
1698	depends on X86 && ACPI
1699	select WATCHDOG_CORE
1700	help
1701	  Support for National Instruments NIC7018 Watchdog.
1702
1703	  To compile this driver as a module, choose M here: the module will be
1704	  called nic7018_wdt.
1705
1706config SIEMENS_SIMATIC_IPC_WDT
1707	tristate "Siemens Simatic IPC Watchdog"
1708	depends on SIEMENS_SIMATIC_IPC && PCI
1709	default y
1710	select WATCHDOG_CORE
1711	select P2SB if X86
1712	help
1713	  This driver adds support for several watchdogs found in Industrial
1714	  PCs from Siemens.
1715
1716	  To compile this driver as a module, choose M here: the module will be
1717	  called simatic-ipc-wdt.
1718
1719# M68K Architecture
1720
1721config M54xx_WATCHDOG
1722	tristate "MCF54xx watchdog support"
1723	depends on M548x
1724	help
1725	  To compile this driver as a module, choose M here: the
1726	  module will be called m54xx_wdt.
1727
1728# MicroBlaze Architecture
1729
1730# MIPS Architecture
1731
1732config ATH79_WDT
1733	tristate "Atheros AR71XX/AR724X/AR913X hardware watchdog"
1734	depends on ATH79 || (ARM && COMPILE_TEST)
1735	help
1736	  Hardware driver for the built-in watchdog timer on the Atheros
1737	  AR71XX/AR724X/AR913X SoCs.
1738
1739config BCM47XX_WDT
1740	tristate "Broadcom BCM47xx Watchdog Timer"
1741	depends on BCM47XX || ARCH_BCM_5301X || COMPILE_TEST
1742	select WATCHDOG_CORE
1743	help
1744	  Hardware driver for the Broadcom BCM47xx Watchdog Timer.
1745
1746config RC32434_WDT
1747	tristate "IDT RC32434 SoC Watchdog Timer"
1748	depends on MIKROTIK_RB532
1749	help
1750	  Hardware driver for the IDT RC32434 SoC built-in
1751	  watchdog timer.
1752
1753	  To compile this driver as a module, choose M here: the
1754	  module will be called rc32434_wdt.
1755
1756config INDYDOG
1757	tristate "Indy/I2 Hardware Watchdog"
1758	depends on SGI_HAS_INDYDOG
1759	help
1760	  Hardware driver for the Indy's/I2's watchdog. This is a
1761	  watchdog timer that will reboot the machine after a 60 second
1762	  timer expired and no process has written to /dev/watchdog during
1763	  that time.
1764
1765config JZ4740_WDT
1766	tristate "Ingenic jz4740 SoC hardware watchdog"
1767	depends on MIPS || COMPILE_TEST
1768	depends on COMMON_CLK
1769	select WATCHDOG_CORE
1770	select MFD_SYSCON
1771	help
1772	  Hardware driver for the built-in watchdog timer on Ingenic jz4740 SoCs.
1773
1774config WDT_MTX1
1775	tristate "MTX-1 Hardware Watchdog"
1776	depends on MIPS_MTX1 || (MIPS && COMPILE_TEST)
1777	help
1778	  Hardware driver for the MTX-1 boards. This is a watchdog timer that
1779	  will reboot the machine after a 100 seconds timer expired.
1780
1781config SIBYTE_WDOG
1782	tristate "Sibyte SoC hardware watchdog"
1783	depends on CPU_SB1
1784	help
1785	  Watchdog driver for the built in watchdog hardware in Sibyte
1786	  SoC processors.  There are apparently two watchdog timers
1787	  on such processors; this driver supports only the first one,
1788	  because currently Linux only supports exporting one watchdog
1789	  to userspace.
1790
1791	  To compile this driver as a loadable module, choose M here.
1792	  The module will be called sb_wdog.
1793
1794config TXX9_WDT
1795	tristate "Toshiba TXx9 Watchdog Timer"
1796	depends on CPU_TX49XX || (MIPS && COMPILE_TEST)
1797	select WATCHDOG_CORE
1798	help
1799	  Hardware driver for the built-in watchdog timer on TXx9 MIPS SoCs.
1800
1801config OCTEON_WDT
1802	tristate "Cavium OCTEON SOC family Watchdog Timer"
1803	depends on CAVIUM_OCTEON_SOC
1804	default y
1805	select WATCHDOG_CORE
1806	select EXPORT_UASM if OCTEON_WDT = m
1807	help
1808	  Hardware driver for OCTEON's on chip watchdog timer.
1809	  Enables the watchdog for all cores running Linux. It
1810	  installs a NMI handler and pokes the watchdog based on an
1811	  interrupt.  On first expiration of the watchdog, the
1812	  interrupt handler pokes it.  The second expiration causes an
1813	  NMI that prints a message. The third expiration causes a
1814	  global soft reset.
1815
1816	  When userspace has /dev/watchdog open, no poking is done
1817	  from the first interrupt, it is then only poked when the
1818	  device is written.
1819
1820config MARVELL_GTI_WDT
1821	tristate "Marvell GTI Watchdog driver"
1822	depends on ARCH_THUNDER || (COMPILE_TEST && 64BIT)
1823	default y
1824	select WATCHDOG_CORE
1825	help
1826	  Marvell GTI hardware supports watchdog timer. First timeout
1827	  works as watchdog pretimeout and installed interrupt handler
1828	  will be called on first timeout. Hardware can generate interrupt
1829	  to SCP on second timeout but it is not enabled, so second
1830	  timeout is ignored. If device poke does not happen then system
1831	  will reboot on third timeout.
1832
1833config BCM2835_WDT
1834	tristate "Broadcom BCM2835 hardware watchdog"
1835	depends on ARCH_BCM2835 || (OF && COMPILE_TEST)
1836	select WATCHDOG_CORE
1837	help
1838	  Watchdog driver for the built in watchdog hardware in Broadcom
1839	  BCM2835 SoC.
1840
1841	  To compile this driver as a loadable module, choose M here.
1842	  The module will be called bcm2835_wdt.
1843
1844config BCM_KONA_WDT
1845	tristate "BCM Kona Watchdog"
1846	depends on ARCH_BCM_MOBILE || COMPILE_TEST
1847	select WATCHDOG_CORE
1848	help
1849	  Support for the watchdog timer on the following Broadcom BCM281xx
1850	  family, which includes BCM11130, BCM11140, BCM11351, BCM28145 and
1851	  BCM28155 variants.
1852
1853	  Say 'Y' or 'M' here to enable the driver. The module will be called
1854	  bcm_kona_wdt.
1855
1856config BCM_KONA_WDT_DEBUG
1857	bool "DEBUGFS support for BCM Kona Watchdog"
1858	depends on BCM_KONA_WDT || COMPILE_TEST
1859	help
1860	  If enabled, adds /sys/kernel/debug/bcm_kona_wdt/info which provides
1861	  access to the driver's internal data structures as well as watchdog
1862	  timer hardware registres.
1863
1864	  If in doubt, say 'N'.
1865
1866config BCM7038_WDT
1867	tristate "BCM63xx/BCM7038 Watchdog"
1868	select WATCHDOG_CORE
1869	depends on HAS_IOMEM
1870	depends on ARCH_BCMBCA || ARCH_BRCMSTB || BMIPS_GENERIC || BCM63XX || COMPILE_TEST
1871	help
1872	  Watchdog driver for the built-in hardware in Broadcom 7038 and
1873	  later SoCs used in set-top boxes.  BCM7038 was made public
1874	  during the 2004 CES, and since then, many Broadcom chips use this
1875	  watchdog block, including some cable modem chips and DSL (63xx)
1876	  chips.
1877
1878config IMGPDC_WDT
1879	tristate "Imagination Technologies PDC Watchdog Timer"
1880	depends on HAS_IOMEM
1881	depends on MIPS || COMPILE_TEST
1882	select WATCHDOG_CORE
1883	help
1884	  Driver for Imagination Technologies PowerDown Controller
1885	  Watchdog Timer.
1886
1887	  To compile this driver as a loadable module, choose M here.
1888	  The module will be called imgpdc_wdt.
1889
1890config LANTIQ_WDT
1891	tristate "Lantiq SoC watchdog"
1892	depends on LANTIQ
1893	select WATCHDOG_CORE
1894	help
1895	  Hardware driver for the Lantiq SoC Watchdog Timer.
1896
1897config LOONGSON1_WDT
1898	tristate "Loongson1 SoC hardware watchdog"
1899	depends on MACH_LOONGSON32 || COMPILE_TEST
1900	select WATCHDOG_CORE
1901	help
1902	  Hardware driver for the Loongson1 SoC Watchdog Timer.
1903
1904config RALINK_WDT
1905	tristate "Ralink SoC watchdog"
1906	select WATCHDOG_CORE
1907	depends on RALINK
1908	help
1909	  Hardware driver for the Ralink SoC Watchdog Timer.
1910
1911config GXP_WATCHDOG
1912	tristate "HPE GXP watchdog support"
1913	depends on ARCH_HPE_GXP || COMPILE_TEST
1914	select WATCHDOG_CORE
1915	help
1916	  Say Y here to include support for the watchdog timer
1917	  in HPE GXP SoCs.
1918
1919	  To compile this driver as a module, choose M here.
1920	  The module will be called gxp-wdt.
1921
1922config MT7621_WDT
1923	tristate "Mediatek SoC watchdog"
1924	select WATCHDOG_CORE
1925	select REGMAP_MMIO
1926	select MFD_SYSCON
1927	depends on SOC_MT7620 || SOC_MT7621 || COMPILE_TEST
1928	help
1929	  Hardware driver for the Mediatek/Ralink MT7621/8 SoC Watchdog Timer.
1930
1931config PIC32_WDT
1932	tristate "Microchip PIC32 hardware watchdog"
1933	select WATCHDOG_CORE
1934	depends on MACH_PIC32 || (MIPS && COMPILE_TEST)
1935	help
1936	  Watchdog driver for the built in watchdog hardware in a PIC32.
1937
1938	  Configuration bits must be set appropriately for the watchdog to be
1939	  controlled by this driver.
1940
1941	  To compile this driver as a loadable module, choose M here.
1942	  The module will be called pic32-wdt.
1943
1944config PIC32_DMT
1945	tristate "Microchip PIC32 Deadman Timer"
1946	select WATCHDOG_CORE
1947	depends on MACH_PIC32 || (MIPS && COMPILE_TEST)
1948	help
1949	  Watchdog driver for PIC32 instruction fetch counting timer. This
1950	  specific timer is typically be used in mission critical and safety
1951	  critical applications, where any single failure of the software
1952	  functionality and sequencing must be detected.
1953
1954	  To compile this driver as a loadable module, choose M here.
1955	  The module will be called pic32-dmt.
1956
1957# PARISC Architecture
1958
1959# POWERPC Architecture
1960
1961config GEF_WDT
1962	tristate "GE Watchdog Timer"
1963	depends on GE_FPGA
1964	help
1965	  Watchdog timer found in a number of GE single board computers.
1966
1967config MPC5200_WDT
1968	bool "MPC52xx Watchdog Timer"
1969	depends on PPC_MPC52xx || COMPILE_TEST
1970	help
1971	  Use General Purpose Timer (GPT) 0 on the MPC5200 as Watchdog.
1972
1973config 8xxx_WDT
1974	tristate "MPC8xxx Platform Watchdog Timer"
1975	depends on PPC_8xx || PPC_83xx || PPC_86xx || PPC_MPC512x
1976	select WATCHDOG_CORE
1977	help
1978	  This driver is for a SoC level watchdog that exists on some
1979	  Freescale PowerPC processors. So far this driver supports:
1980	  - MPC8xx watchdogs
1981	  - MPC83xx watchdogs
1982	  - MPC86xx watchdogs
1983
1984	  For BookE processors (MPC85xx) use the BOOKE_WDT driver instead.
1985
1986config PIKA_WDT
1987	tristate "PIKA FPGA Watchdog"
1988	depends on WARP || (PPC64 && COMPILE_TEST)
1989	default y
1990	help
1991	  This enables the watchdog in the PIKA FPGA. Currently used on
1992	  the Warp platform.
1993
1994config BOOKE_WDT
1995	tristate "PowerPC Book-E Watchdog Timer"
1996	depends on BOOKE || 4xx
1997	select WATCHDOG_CORE
1998	help
1999	  Watchdog driver for PowerPC Book-E chips, such as the Freescale
2000	  MPC85xx SOCs and the IBM PowerPC 440.
2001
2002	  Please see Documentation/watchdog/watchdog-api.rst for
2003	  more information.
2004
2005config BOOKE_WDT_DEFAULT_TIMEOUT
2006	int "PowerPC Book-E Watchdog Timer Default Timeout"
2007	depends on BOOKE_WDT
2008	default 38 if PPC_E500
2009	range 0 63 if PPC_E500
2010	default 3 if !PPC_E500
2011	range 0 3 if !PPC_E500
2012	help
2013	  Select the default watchdog timer period to be used by the PowerPC
2014	  Book-E watchdog driver.  A watchdog "event" occurs when the bit
2015	  position represented by this number transitions from zero to one.
2016
2017	  For Freescale Book-E processors, this is a number between 0 and 63.
2018	  For other Book-E processors, this is a number between 0 and 3.
2019
2020	  The value can be overridden by the wdt_period command-line parameter.
2021
2022config MEN_A21_WDT
2023	tristate "MEN A21 VME CPU Carrier Board Watchdog Timer"
2024	select WATCHDOG_CORE
2025	depends on GPIOLIB || COMPILE_TEST
2026	help
2027	  Watchdog driver for MEN A21 VMEbus CPU Carrier Boards.
2028
2029	  The driver can also be built as a module. If so, the module will be
2030	  called mena21_wdt.
2031
2032	  If unsure select N here.
2033
2034# PPC64 Architecture
2035
2036config PSERIES_WDT
2037	tristate "POWER Architecture Platform Watchdog Timer"
2038	depends on PPC_PSERIES
2039	select WATCHDOG_CORE
2040	help
2041	  Driver for virtual watchdog timers provided by PAPR
2042	  hypervisors (e.g. PowerVM, KVM).
2043
2044config WATCHDOG_RTAS
2045	tristate "RTAS watchdog"
2046	depends on PPC_RTAS
2047	help
2048	  This driver adds watchdog support for the RTAS watchdog.
2049
2050	  To compile this driver as a module, choose M here. The module
2051	  will be called wdrtas.
2052
2053# RISC-V Architecture
2054
2055config STARFIVE_WATCHDOG
2056	tristate "StarFive Watchdog support"
2057	depends on ARCH_STARFIVE || COMPILE_TEST
2058	select WATCHDOG_CORE
2059	default ARCH_STARFIVE
2060	help
2061	  Say Y here to support the watchdog of StarFive JH7100 and JH7110
2062	  SoC. This driver can also be built as a module if choose M.
2063
2064# S390 Architecture
2065
2066config DIAG288_WATCHDOG
2067	tristate "System z diag288 Watchdog"
2068	depends on S390
2069	select WATCHDOG_CORE
2070	help
2071	  IBM s/390 and zSeries machines running under z/VM 5.1 or later
2072	  provide a virtual watchdog timer to their guest that cause a
2073	  user define Control Program command to be executed after a
2074	  timeout.
2075	  LPAR provides a very similar interface. This driver handles
2076	  both.
2077
2078	  To compile this driver as a module, choose M here. The module
2079	  will be called diag288_wdt.
2080
2081# SUPERH (sh + sh64) Architecture
2082
2083config SH_WDT
2084	tristate "SuperH Watchdog"
2085	depends on SUPERH && (CPU_SH3 || CPU_SH4 || COMPILE_TEST)
2086	select WATCHDOG_CORE
2087	help
2088	  This driver adds watchdog support for the integrated watchdog in the
2089	  SuperH processors. If you have one of these processors and wish
2090	  to have watchdog support enabled, say Y, otherwise say N.
2091
2092	  As a side note, saying Y here will automatically boost HZ to 1000
2093	  so that the timer has a chance to clear the overflow counter. On
2094	  slower systems (such as the SH-2 and SH-3) this will likely yield
2095	  some performance issues. As such, the WDT should be avoided here
2096	  unless it is absolutely necessary.
2097
2098	  To compile this driver as a module, choose M here: the
2099	  module will be called shwdt.
2100
2101# SPARC Architecture
2102
2103# SPARC64 Architecture
2104
2105config WATCHDOG_CP1XXX
2106	tristate "CP1XXX Hardware Watchdog support"
2107	depends on SPARC64 && PCI
2108	help
2109	  This is the driver for the hardware watchdog timers present on
2110	  Sun Microsystems CompactPCI models CP1400 and CP1500.
2111
2112	  To compile this driver as a module, choose M here: the
2113	  module will be called cpwatchdog.
2114
2115	  If you do not have a CompactPCI model CP1400 or CP1500, or
2116	  another UltraSPARC-IIi-cEngine boardset with hardware watchdog,
2117	  you should say N to this option.
2118
2119config WATCHDOG_RIO
2120	tristate "RIO Hardware Watchdog support"
2121	depends on SPARC64 && PCI
2122	help
2123	  Say Y here to support the hardware watchdog capability on Sun RIO
2124	  machines.  The watchdog timeout period is normally one minute but
2125	  can be changed with a boot-time parameter.
2126
2127config WATCHDOG_SUN4V
2128	tristate "Sun4v Watchdog support"
2129	select WATCHDOG_CORE
2130	depends on SPARC64
2131	help
2132	  Say Y here to support the hypervisor watchdog capability embedded
2133	  in the SPARC sun4v architecture.
2134
2135	  To compile this driver as a module, choose M here. The module will
2136	  be called sun4v_wdt.
2137
2138# XTENSA Architecture
2139
2140# Xen Architecture
2141
2142config XEN_WDT
2143	tristate "Xen Watchdog support"
2144	depends on XEN
2145	select WATCHDOG_CORE
2146	help
2147	  Say Y here to support the hypervisor watchdog capability provided
2148	  by Xen 4.0 and newer.  The watchdog timeout period is normally one
2149	  minute but can be changed with a boot-time parameter.
2150
2151config UML_WATCHDOG
2152	tristate "UML watchdog"
2153	depends on UML || COMPILE_TEST
2154
2155#
2156# ISA-based Watchdog Cards
2157#
2158
2159comment "ISA-based Watchdog Cards"
2160	depends on ISA
2161
2162config PCWATCHDOG
2163	tristate "Berkshire Products ISA-PC Watchdog"
2164	depends on ISA
2165	help
2166	  This is the driver for the Berkshire Products ISA-PC Watchdog card.
2167	  This card simply watches your kernel to make sure it doesn't freeze,
2168	  and if it does, it reboots your computer after a certain amount of
2169	  time. This driver is like the WDT501 driver but for different
2170	  hardware. Please read <file:Documentation/watchdog/pcwd-watchdog.rst>.
2171	  The PC watchdog cards can be ordered from <http://www.berkprod.com/>.
2172
2173	  To compile this driver as a module, choose M here: the
2174	  module will be called pcwd.
2175
2176	  Most people will say N.
2177
2178config MIXCOMWD
2179	tristate "Mixcom Watchdog"
2180	depends on ISA
2181	help
2182	  This is a driver for the Mixcom hardware watchdog cards.  This
2183	  watchdog simply watches your kernel to make sure it doesn't freeze,
2184	  and if it does, it reboots your computer after a certain amount of
2185	  time.
2186
2187	  To compile this driver as a module, choose M here: the
2188	  module will be called mixcomwd.
2189
2190	  Most people will say N.
2191
2192config WDT
2193	tristate "WDT Watchdog timer"
2194	depends on ISA
2195	help
2196	  If you have a WDT500P or WDT501P watchdog board, say Y here,
2197	  otherwise N. It is not possible to probe for this board, which means
2198	  that you have to inform the kernel about the IO port and IRQ that
2199	  is needed (you can do this via the io and irq parameters)
2200
2201	  To compile this driver as a module, choose M here: the
2202	  module will be called wdt.
2203
2204#
2205# PCI-based Watchdog Cards
2206#
2207
2208comment "PCI-based Watchdog Cards"
2209	depends on PCI
2210
2211config PCIPCWATCHDOG
2212	tristate "Berkshire Products PCI-PC Watchdog"
2213	depends on PCI && HAS_IOPORT
2214	help
2215	  This is the driver for the Berkshire Products PCI-PC Watchdog card.
2216	  This card simply watches your kernel to make sure it doesn't freeze,
2217	  and if it does, it reboots your computer after a certain amount of
2218	  time. The card can also monitor the internal temperature of the PC.
2219	  More info is available at <http://www.berkprod.com/pci_pc_watchdog.htm>.
2220
2221	  To compile this driver as a module, choose M here: the
2222	  module will be called pcwd_pci.
2223
2224	  Most people will say N.
2225
2226config WDTPCI
2227	tristate "PCI-WDT500/501 Watchdog timer"
2228	depends on PCI && HAS_IOPORT
2229	help
2230	  If you have a PCI-WDT500/501 watchdog board, say Y here, otherwise N.
2231
2232	  If you have a PCI-WDT501 watchdog board then you can enable the
2233	  temperature sensor by setting the type parameter to 501.
2234
2235	  If you want to enable the Fan Tachometer on the PCI-WDT501, then you
2236	  can do this via the tachometer parameter. Only do this if you have a
2237	  fan tachometer actually set up.
2238
2239	  To compile this driver as a module, choose M here: the
2240	  module will be called wdt_pci.
2241
2242#
2243# USB-based Watchdog Cards
2244#
2245
2246comment "USB-based Watchdog Cards"
2247	depends on USB
2248
2249config USBPCWATCHDOG
2250	tristate "Berkshire Products USB-PC Watchdog"
2251	depends on USB
2252	help
2253	  This is the driver for the Berkshire Products USB-PC Watchdog card.
2254	  This card simply watches your kernel to make sure it doesn't freeze,
2255	  and if it does, it reboots your computer after a certain amount of
2256	  time. The card can also monitor the internal temperature of the PC.
2257	  More info is available at <http://www.berkprod.com/usb_pc_watchdog.htm>.
2258
2259	  To compile this driver as a module, choose M here: the
2260	  module will be called pcwd_usb.
2261
2262	  Most people will say N.
2263
2264config KEEMBAY_WATCHDOG
2265	tristate "Intel Keem Bay SoC non-secure watchdog"
2266	depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST)
2267	select WATCHDOG_CORE
2268	help
2269	  This option enable support for an In-secure watchdog timer driver for
2270	  Intel Keem Bay SoC. This WDT has a 32 bit timer and decrements in every
2271	  count unit. An interrupt will be triggered, when the count crosses
2272	  the threshold configured in the register.
2273
2274	  To compile this driver as a module, choose M here: the
2275	  module will be called keembay_wdt.
2276
2277endif # WATCHDOG
2278