1menu "Watchdog Timer Support"
2
3config WATCHDOG
4	bool "Enable U-Boot watchdog reset"
5	depends on !HW_WATCHDOG
6	select CYCLIC
7	help
8	  This option enables U-Boot watchdog support where U-Boot is using
9	  watchdog_reset function to service watchdog device in U-Boot. Enable
10	  this option if you want to service enabled watchdog by U-Boot. Disable
11	  this option if you want U-Boot to start watchdog but never service it.
12
13config WATCHDOG_AUTOSTART
14	bool "Automatically start watchdog timer"
15	depends on WDT
16	default n if ARCH_SUNXI
17	default y
18	help
19	  Automatically start watchdog timer and start servicing it during
20	  init phase. Enabled by default. Disable this option if you want
21	  to compile U-Boot with CONFIG_WDT support but do not want to
22	  activate watchdog, like when CONFIG_WDT option is disabled. You
23	  would be able to start watchdog manually by 'wdt' command. Useful
24	  when you want to have support for 'wdt' command but do not want
25	  to have watchdog enabled by default.
26
27config WATCHDOG_TIMEOUT_MSECS
28	int "Watchdog timeout in msec"
29	default 128000 if ARCH_MX31 || ARCH_MX5 || ARCH_MX6
30	default 128000 if ARCH_MX7 || ARCH_VF610
31	default 30000 if ARCH_SOCFPGA
32	default 16000 if ARCH_SUNXI
33	default 5376 if ULP_WATCHDOG
34	default 15000 if ARCH_BCM283X
35	default 60000
36	help
37	  Watchdog timeout in msec
38
39config HW_WATCHDOG
40	bool
41
42config IMX_WATCHDOG
43	bool "Enable Watchdog Timer support for IMX and LSCH2 of NXP"
44	select HW_WATCHDOG if !WDT
45	help
46	  Select this to enable the IMX and LSCH2 of Layerscape watchdog
47	  driver.
48
49config WATCHDOG_RESET_DISABLE
50	bool "Disable reset watchdog"
51	depends on IMX_WATCHDOG
52	help
53	  Disable reset watchdog, which can let WATCHDOG_RESET invalid, so
54	  that the watchdog will not be fed in u-boot.
55
56config OMAP_WATCHDOG
57	bool "TI OMAP watchdog driver"
58	depends on ARCH_OMAP2PLUS
59	select HW_WATCHDOG
60	help
61	  Say Y here to enable the OMAP3+ watchdog driver.
62
63config ULP_WATCHDOG
64	bool "i.MX7ULP watchdog"
65	help
66	  Say Y here to enable i.MX7ULP watchdog driver.
67
68config DESIGNWARE_WATCHDOG
69	bool "Designware watchdog timer support"
70	depends on WDT
71	default y if ROCKCHIP_RK3399
72	help
73	  Enable this to support Designware Watchdog Timer IP, present e.g.
74	  on Altera SoCFPGA SoCs.
75
76config WDT
77	bool "Enable driver model for watchdog timer drivers"
78	depends on DM
79	imply WATCHDOG
80	select CYCLIC
81	help
82	  Enable driver model for watchdog timer. At the moment the API
83	  is very simple and only supports four operations:
84	  start, stop, reset and expire_now (expire immediately).
85	  What exactly happens when the timer expires is up to a particular
86	  device/driver.
87
88config WDT_APPLE
89	bool "Apple watchdog timer support"
90	depends on WDT
91	default y if ARCH_APPLE
92	help
93	  Enable support for the watchdog timer on Apple SoCs.
94	  The watchdog will perform a full SoC reset resulting in a
95	  reboot of the entire system.
96
97config WDT_ARMADA_37XX
98	bool "Marvell Armada 37xx watchdog timer support"
99	depends on WDT && ARMADA_3700
100	help
101	  Enable this to support Watchdog Timer on Marvell Armada 37xx SoC.
102	  There are 4 possible clocks which can be used on these SoCs. This
103	  driver uses the second clock (ID 1), assuming that so will also
104	  Linux's driver.
105
106config WDT_ASPEED
107	bool "Aspeed ast2400/ast2500 watchdog timer support"
108	depends on WDT
109	default y if ARCH_ASPEED
110	help
111	  Select this to enable watchdog timer for Aspeed ast2500/ast2400 devices.
112	  The watchdog timer is stopped when initialized. It performs reset, either
113	  full SoC reset or CPU or just some peripherals, based on the flags.
114	  It currently does not support Boot Flash Addressing Mode Detection or
115	  Second Boot.
116
117config WDT_AST2600
118	bool "Aspeed AST2600 watchdog timer support"
119	depends on WDT
120	default y if ASPEED_AST2600
121	help
122	  Select this to enable watchdog timer for Aspeed ast2500/ast2400 devices.
123	  The watchdog timer is stopped when initialized. It performs reset, either
124	  full SoC reset or CPU or just some peripherals, based on the flags.
125
126config WDT_AT91
127	bool "AT91 watchdog timer support"
128	depends on WDT
129	help
130	  Select this to enable Microchip watchdog timer, which can be found on
131	  some AT91 devices.
132
133config WDT_ATCWDT200
134	bool "Andes watchdog timer support"
135	depends on WDT
136	help
137	  Select this to enable Andes ATCWDT200 watchdog timer
138
139config WDT_BCM6345
140	bool "BCM6345 watchdog timer support"
141	depends on WDT && (ARCH_BMIPS || BCM6856 || \
142			   BCM6858 || BCM63158 || BCM6855)
143	help
144	  Select this to enable watchdog timer for BCM6345 SoCs.
145	  The watchdog timer is stopped when initialized.
146	  It performs full SoC reset.
147
148config WDT_BOOKE
149	bool "PowerPC Book-E watchdog driver"
150	depends on WDT && MPC85xx
151	help
152	  Watchdog driver for PowerPC Book-E chips, such as the Freescale
153	  MPC85xx SOCs and the IBM PowerPC 440.
154
155config WDT_CDNS
156	bool "Cadence watchdog timer support"
157	depends on WDT
158	imply WATCHDOG
159	help
160	  Select this to enable Cadence watchdog timer, which can be found on some
161	  Xilinx Microzed Platform.
162
163config WDT_CORTINA
164	bool "Cortina Access CAxxxx watchdog timer support"
165	depends on WDT
166	help
167	  Cortina Access CAxxxx watchdog timer support.
168	  This driver support all CPU ISAs supported by Cortina
169	  Access CAxxxx SoCs.
170
171config WDT_GPIO
172	bool "External gpio watchdog support"
173	depends on WDT
174	depends on DM_GPIO
175	help
176	  Support for external watchdog fed by toggling a gpio. See
177	  doc/device-tree-bindings/watchdog/gpio-wdt.txt for
178	  information on how to describe the watchdog in device tree.
179
180config WDT_MAX6370
181	bool "MAX6370 watchdog timer support"
182	depends on WDT
183	select DM_GPIO
184	help
185	  Select this to enable max6370 watchdog timer.
186
187config WDT_MCF
188	bool "ColdFire family watchdog timer support"
189	depends on WDT
190	help
191	  Select this to enable ColdFire watchdog timer,
192	  which supports mcf52x2 mcf532x mcf523x families.
193
194config WDT_MESON_GXBB
195	bool "Amlogic watchdog timer support"
196	depends on WDT
197	help
198	  Select this to enable Meson watchdog timer,
199	  which can be found on some Amlogic platforms.
200
201config WDT_MPC8xxx
202	bool "MPC8xxx watchdog timer support"
203	depends on WDT && (MPC8xx || MPC83xx)
204	help
205	  Select this to enable mpc8xxx watchdog timer
206
207config WDT_MPC8xxx_BME
208	bool "Enable MPC8xx Bus Monitoring"
209	depends on WDT_MPC8xxx && MPC8xx
210	help
211	  Select this to enable mpc8xx Bus Monitor.
212
213config WDT_MPC8xxx_BMT
214	int "MPC8xx Bus Monitor Timing" if WDT_MPC8xxx_BME
215	range 0 255
216	default 255
217	depends on WDT_MPC8xxx
218	help
219	  Bus monitor timing. Defines the timeout period, in 8 system clock
220	  resolution, for the bus monitor.
221
222	  Maximum timeout is 2,040 clocks (255 x 8).
223
224config WDT_MT7620
225	bool "MediaTek MT7620 watchdog timer support"
226	depends on WDT && SOC_MT7620
227	help
228	  Select this to enable watchdog timer on MediaTek MT7620 and earlier
229	  SoC chips.
230
231config WDT_MT7621
232	bool "MediaTek MT7621 watchdog timer support"
233	depends on WDT && (SOC_MT7621 || SOC_MT7628)
234	help
235	  Select this to enable Ralink / Mediatek watchdog timer,
236	  which can be found on some MediaTek chips.
237
238config WDT_MTK
239	bool "MediaTek watchdog timer support"
240	depends on WDT && ARCH_MEDIATEK
241	help
242	  Select this to enable watchdog timer for MediaTek SoCs.
243	  The watchdog timer is stopped when initialized.
244	  It performs full SoC reset.
245
246config WDT_NPCM
247	bool "Nuvoton watchdog timer support"
248	depends on WDT && ARCH_NPCM
249	help
250	  This enables Nuvoton npcm7xx/npcm8xx watchdog timer driver,
251	  The watchdog timer is stopped when initialized.
252	  It performs full SoC reset.
253
254config WDT_OCTEONTX
255	bool "Octeon core watchdog support"
256	depends on WDT && (ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2)
257	default y
258	imply WATCHDOG
259	help
260	  This enables the Octeon watchdog driver, which can be found on
261	  various Octeon parts such as Octeon II/III and OcteonTX/TX2.
262
263config WDT_OMAP3
264	bool "TI OMAP watchdog timer support"
265	depends on WDT && ARCH_OMAP2PLUS
266	default y if AM33XX
267	help
268	  This enables OMAP3+ watchdog timer driver, which can be
269	  found on some TI chipsets and inline with driver model.
270
271config WDT_ORION
272	bool "Orion watchdog timer support"
273	depends on WDT
274	select CLK
275	help
276	  Select this to enable Orion watchdog timer, which can be found on some
277	  Marvell Armada chips.
278
279config WDT_K3_RTI
280	bool "Texas Instruments K3 RTI watchdog"
281	depends on WDT && ARCH_K3
282	help
283	  Say Y here if you want to include support for the K3 watchdog
284	  timer (RTI module) available in the K3 generation of processors.
285
286if WDT_K3_RTI
287
288config WDT_K3_RTI_LOAD_FW
289	bool "Load watchdog firmware"
290	depends on REMOTEPROC
291	help
292	  Automatically load the specified firmware image into the MCU R5F
293	  core 0. On the AM65x, this firmware is supposed to handle the expiry
294	  of the watchdog timer, typically by resetting the system.
295
296config WDT_K3_RTI_FW_FILE
297	string "Watchdog firmware image file"
298	default "k3-rti-wdt.fw"
299	depends on WDT_K3_RTI_LOAD_FW
300	help
301	  Firmware image to be embedded into U-Boot and loaded on watchdog
302	  start.
303
304endif
305
306config WDT_SANDBOX
307	bool "Enable Watchdog Timer support for Sandbox"
308	depends on SANDBOX && WDT
309	help
310	  Enable Watchdog Timer support in Sandbox. This is a dummy device that
311	  can be probed and supports all of the methods of WDT, but does not
312	  really do anything.
313
314config WDT_ALARM_SANDBOX
315	bool "Enable SIGALRM-based Watchdog Timer support for Sandbox"
316	depends on SANDBOX && WDT
317	help
318	  Enable support for a SIGALRM-based watchdog timer in Sandbox. This is
319	  a watchdog device based on the host OS' alarm() function, which will
320	  kill the sandbox with SIGALRM unless properly maintained.
321
322config WDT_SBSA
323	bool "SBSA watchdog timer support"
324	depends on WDT
325	help
326	   Select this to enable SBSA watchdog timer.
327	   This driver can operate ARM SBSA Generic Watchdog as a single stage.
328	   In the single stage mode, when the timeout is reached, your system
329	   will be reset by WS1. The first signal (WS0) is ignored.
330
331config WDT_SL28CPLD
332	bool "sl28cpld watchdog timer support"
333	depends on WDT && SL28CPLD
334	help
335	  Enable support for the watchdog timer in the Kontron sl28cpld
336	  management controller.
337
338config WDT_SP805
339	bool "SP805 watchdog timer support"
340	depends on WDT
341	help
342	  Select this to enable SP805 watchdog timer, which can be found on some
343	  nxp layerscape chips.
344
345config WDT_STM32MP
346	bool "IWDG watchdog driver for STM32 MP's family"
347	depends on WDT
348	imply WATCHDOG
349	help
350	  Enable the STM32 watchdog (IWDG) driver. Enable support to
351	  configure STM32's on-SoC watchdog.
352
353config WDT_STARFIVE
354	bool "StarFive watchdog timer support"
355	depends on WDT
356	imply WATCHDOG
357	help
358	  Enable support for the watchdog timer of StarFive JH7110 SoC.
359
360config WDT_SUNXI
361	bool "Allwinner sunxi watchdog timer support"
362	depends on WDT && ARCH_SUNXI
363	default y
364	help
365	  Enable support for the watchdog timer in Allwinner sunxi SoCs.
366
367config WDT_BCM2835
368	bool "Broadcom 2835 watchdog timer support"
369	depends on WDT && ARCH_BCM283X
370	default y
371	help
372	  Enable support for the watchdog timer in Broadcom 283X SoCs such
373	  as Raspberry Pi boards.
374
375config XILINX_TB_WATCHDOG
376	bool "Xilinx Axi watchdog timer support"
377	depends on WDT
378	imply WATCHDOG
379	help
380	  Select this to enable Xilinx Axi watchdog timer, which can be found on some
381	  Xilinx Microblaze Platforms.
382
383config WDT_XILINX
384	bool "Xilinx window watchdog timer support"
385	depends on WDT && ARCH_VERSAL
386	select REGMAP
387	imply WATCHDOG
388	help
389	  Select this to enable Xilinx window watchdog timer, which can be found on
390	  Xilinx Versal Platforms.
391
392config WDT_TANGIER
393	bool "Intel Tangier watchdog timer support"
394	depends on WDT && INTEL_MID
395	help
396	  This enables support for watchdog controller available on
397	  Intel Tangier SoC. If you're using a board with Intel Tangier
398	  SoC, say Y here.
399
400config WDT_ARM_SMC
401	bool "ARM SMC watchdog timer support"
402	depends on WDT && ARM_SMCCC
403	imply WATCHDOG
404	help
405	  Select this to enable Arm SMC watchdog timer. This watchdog will manage
406	  a watchdog based on ARM SMCCC communication.
407
408config SPL_WDT
409	bool "Enable driver model for watchdog timer drivers in SPL"
410	depends on SPL_DM
411	help
412	  Enable driver model for watchdog timer in SPL.
413	  This is similar to CONFIG_WDT in U-Boot.
414
415config WDT_FTWDT010
416	bool "Faraday Technology ftwdt010 watchdog timer support"
417	depends on WDT
418	imply WATCHDOG
419	help
420	  Faraday Technology ftwdt010 watchdog is an architecture independent
421	  watchdog. It is usually used in SoC chip design.
422endmenu
423