1menu "Watchdog Timer Support"
2
3config WATCHDOG
4	bool "Enable U-Boot watchdog reset"
5	depends on !HW_WATCHDOG
6	help
7	  This option enables U-Boot watchdog support where U-Boot is using
8	  watchdog_reset function to service watchdog device in U-Boot. Enable
9	  this option if you want to service enabled watchdog by U-Boot. Disable
10	  this option if you want U-Boot to start watchdog but never service it.
11
12config WATCHDOG_AUTOSTART
13	bool "Automatically start watchdog timer"
14	depends on WDT
15	default y
16	help
17	  Automatically start watchdog timer and start servicing it during
18	  init phase. Enabled by default. Disable this option if you want
19	  to compile U-Boot with CONFIG_WDT support but do not want to
20	  activate watchdog, like when CONFIG_WDT option is disabled. You
21	  would be able to start watchdog manually by 'wdt' command. Useful
22	  when you want to have support for 'wdt' command but do not want
23	  to have watchdog enabled by default.
24
25config WATCHDOG_TIMEOUT_MSECS
26	int "Watchdog timeout in msec"
27	default 128000 if ARCH_MX31 || ARCH_MX5 || ARCH_MX6
28	default 128000 if ARCH_MX7 || ARCH_VF610
29	default 30000 if ARCH_SOCFPGA
30	default 16000 if ARCH_SUNXI
31	default 60000
32	help
33	  Watchdog timeout in msec
34
35config HW_WATCHDOG
36	bool
37
38config IMX_WATCHDOG
39	bool "Enable Watchdog Timer support for IMX and LSCH2 of NXP"
40	select HW_WATCHDOG if !WDT
41	help
42	  Select this to enable the IMX and LSCH2 of Layerscape watchdog
43	  driver.
44
45config WATCHDOG_RESET_DISABLE
46	bool "Disable reset watchdog"
47	depends on IMX_WATCHDOG
48	help
49	  Disable reset watchdog, which can let WATCHDOG_RESET invalid, so
50	  that the watchdog will not be fed in u-boot.
51
52config OMAP_WATCHDOG
53	bool "TI OMAP watchdog driver"
54	depends on ARCH_OMAP2PLUS
55	select HW_WATCHDOG
56	help
57	  Say Y here to enable the OMAP3+ watchdog driver.
58
59config ULP_WATCHDOG
60	bool "i.MX7ULP watchdog"
61	help
62	  Say Y here to enable i.MX7ULP watchdog driver.
63
64config DESIGNWARE_WATCHDOG
65	bool "Designware watchdog timer support"
66	select HW_WATCHDOG if !WDT
67	default y if WDT && ROCKCHIP_RK3399
68	help
69	  Enable this to support Designware Watchdog Timer IP, present e.g.
70	  on Altera SoCFPGA SoCs.
71
72config WDT
73	bool "Enable driver model for watchdog timer drivers"
74	depends on DM
75	imply WATCHDOG
76	help
77	  Enable driver model for watchdog timer. At the moment the API
78	  is very simple and only supports four operations:
79	  start, stop, reset and expire_now (expire immediately).
80	  What exactly happens when the timer expires is up to a particular
81	  device/driver.
82
83config WDT_ARMADA_37XX
84	bool "Marvell Armada 37xx watchdog timer support"
85	depends on WDT && ARMADA_3700
86	help
87	  Enable this to support Watchdog Timer on Marvell Armada 37xx SoC.
88	  There are 4 possible clocks which can be used on these SoCs. This
89	  driver uses the second clock (ID 1), assuming that so will also
90	  Linux's driver.
91
92config WDT_ASPEED
93	bool "Aspeed ast2400/ast2500 watchdog timer support"
94	depends on WDT
95	default y if ARCH_ASPEED
96	help
97	  Select this to enable watchdog timer for Aspeed ast2500/ast2400 devices.
98	  The watchdog timer is stopped when initialized. It performs reset, either
99	  full SoC reset or CPU or just some peripherals, based on the flags.
100	  It currently does not support Boot Flash Addressing Mode Detection or
101	  Second Boot.
102
103config WDT_AST2600
104	bool "Aspeed AST2600 watchdog timer support"
105	depends on WDT
106	default y if ASPEED_AST2600
107	help
108	  Select this to enable watchdog timer for Aspeed ast2500/ast2400 devices.
109	  The watchdog timer is stopped when initialized. It performs reset, either
110	  full SoC reset or CPU or just some peripherals, based on the flags.
111
112config WDT_AT91
113	bool "AT91 watchdog timer support"
114	depends on WDT
115	help
116	  Select this to enable Microchip watchdog timer, which can be found on
117	  some AT91 devices.
118
119config WDT_BCM6345
120	bool "BCM6345 watchdog timer support"
121	depends on WDT && (ARCH_BMIPS || ARCH_BCM68360 || \
122			   ARCH_BCM6858 || ARCH_BCM63158)
123	help
124	  Select this to enable watchdog timer for BCM6345 SoCs.
125	  The watchdog timer is stopped when initialized.
126	  It performs full SoC reset.
127
128config WDT_BOOKE
129	bool "PowerPC Book-E watchdog driver"
130	depends on WDT && MPC85xx
131	help
132	  Watchdog driver for PowerPC Book-E chips, such as the Freescale
133	  MPC85xx SOCs and the IBM PowerPC 440.
134
135config WDT_CDNS
136	bool "Cadence watchdog timer support"
137	depends on WDT
138	imply WATCHDOG
139	help
140	  Select this to enable Cadence watchdog timer, which can be found on some
141	  Xilinx Microzed Platform.
142
143config WDT_CORTINA
144	bool "Cortina Access CAxxxx watchdog timer support"
145	depends on WDT
146	help
147	  Cortina Access CAxxxx watchdog timer support.
148	  This driver support all CPU ISAs supported by Cortina
149	  Access CAxxxx SoCs.
150
151config WDT_GPIO
152	bool "External gpio watchdog support"
153	depends on WDT
154	depends on DM_GPIO
155	help
156	  Support for external watchdog fed by toggling a gpio. See
157	  doc/device-tree-bindings/watchdog/gpio-wdt.txt for
158	  information on how to describe the watchdog in device tree.
159
160config WDT_MPC8xx
161	bool "MPC8xx watchdog timer support"
162	depends on WDT && MPC8xx
163	select HW_WATCHDOG
164	help
165	  Select this to enable mpc8xx watchdog timer
166
167config WDT_MT7620
168	bool "MediaTek MT7620 watchdog timer support"
169	depends on WDT && SOC_MT7620
170	help
171	  Select this to enable watchdog timer on MediaTek MT7620 and earlier
172	  SoC chips.
173
174config WDT_MT7621
175	bool "MediaTek MT7621 watchdog timer support"
176	depends on WDT && SOC_MT7628
177	help
178	  Select this to enable Ralink / Mediatek watchdog timer,
179	  which can be found on some MediaTek chips.
180
181config WDT_MTK
182	bool "MediaTek watchdog timer support"
183	depends on WDT && ARCH_MEDIATEK
184	help
185	  Select this to enable watchdog timer for MediaTek SoCs.
186	  The watchdog timer is stopped when initialized.
187	  It performs full SoC reset.
188
189config WDT_OCTEONTX
190	bool "OcteonTX core watchdog support"
191	depends on WDT && (ARCH_OCTEONTX || ARCH_OCTEONTX2)
192	default y
193	imply WATCHDOG
194	help
195	  This enables OcteonTX watchdog driver, which can be
196	  found on OcteonTX/TX2 chipsets and inline with driver model.
197	  Only supports watchdog reset.
198
199config WDT_OMAP3
200	bool "TI OMAP watchdog timer support"
201	depends on WDT && ARCH_OMAP2PLUS
202	default y if AM33XX
203	help
204	  This enables OMAP3+ watchdog timer driver, which can be
205	  found on some TI chipsets and inline with driver model.
206
207config WDT_ORION
208	bool "Orion watchdog timer support"
209	depends on WDT
210	select CLK
211	help
212	  Select this to enable Orion watchdog timer, which can be found on some
213	  Marvell Armada chips.
214
215config WDT_K3_RTI
216	bool "Texas Instruments K3 RTI watchdog"
217	depends on WDT && ARCH_K3
218	help
219	  Say Y here if you want to include support for the K3 watchdog
220	  timer (RTI module) available in the K3 generation of processors.
221
222if WDT_K3_RTI
223
224config WDT_K3_RTI_LOAD_FW
225	bool "Load watchdog firmware"
226	depends on REMOTEPROC
227	help
228	  Automatically load the specified firmware image into the MCU R5F
229	  core 0. On the AM65x, this firmware is supposed to handle the expiry
230	  of the watchdog timer, typically by resetting the system.
231
232config WDT_K3_RTI_FW_FILE
233	string "Watchdog firmware image file"
234	default "k3-rti-wdt.fw"
235	depends on WDT_K3_RTI_LOAD_FW
236	help
237	  Firmware image to be embedded into U-Boot and loaded on watchdog
238	  start.
239
240endif
241
242config WDT_SANDBOX
243	bool "Enable Watchdog Timer support for Sandbox"
244	depends on SANDBOX && WDT
245	help
246	  Enable Watchdog Timer support in Sandbox. This is a dummy device that
247	  can be probed and supports all of the methods of WDT, but does not
248	  really do anything.
249
250config WDT_SBSA
251	bool "SBSA watchdog timer support"
252	depends on WDT
253	help
254	   Select this to enable SBSA watchdog timer.
255	   This driver can operate ARM SBSA Generic Watchdog as a single stage.
256	   In the single stage mode, when the timeout is reached, your system
257	   will be reset by WS1. The first signal (WS0) is ignored.
258
259config WDT_SP805
260	bool "SP805 watchdog timer support"
261	depends on WDT
262	help
263	  Select this to enable SP805 watchdog timer, which can be found on some
264	  nxp layerscape chips.
265
266config WDT_STM32MP
267	bool "IWDG watchdog driver for STM32 MP's family"
268	depends on WDT
269	imply WATCHDOG
270	help
271	  Enable the STM32 watchdog (IWDG) driver. Enable support to
272	  configure STM32's on-SoC watchdog.
273
274config WDT_SUNXI
275	bool "Allwinner sunxi watchdog timer support"
276	depends on WDT && ARCH_SUNXI
277	default y
278	help
279	  Enable support for the watchdog timer in Allwinner sunxi SoCs.
280
281config XILINX_TB_WATCHDOG
282	bool "Xilinx Axi watchdog timer support"
283	depends on WDT
284	imply WATCHDOG
285	help
286	  Select this to enable Xilinx Axi watchdog timer, which can be found on some
287	  Xilinx Microblaze Platforms.
288
289config WDT_XILINX
290	bool "Xilinx window watchdog timer support"
291	depends on WDT && ARCH_VERSAL
292	select REGMAP
293	imply WATCHDOG
294	help
295	  Select this to enable Xilinx window watchdog timer, which can be found on
296	  Xilinx Versal Platforms.
297
298config WDT_TANGIER
299	bool "Intel Tangier watchdog timer support"
300	depends on WDT && INTEL_MID
301	help
302	  This enables support for watchdog controller available on
303	  Intel Tangier SoC. If you're using a board with Intel Tangier
304	  SoC, say Y here.
305
306config SPL_WDT
307	bool "Enable driver model for watchdog timer drivers in SPL"
308	depends on SPL_DM
309	help
310	  Enable driver model for watchdog timer in SPL.
311	  This is similar to CONFIG_WDT in U-Boot.
312
313endmenu
314