Prepare v2023.10
[platform/kernel/u-boot.git] / drivers / watchdog / Kconfig
1 menu "Watchdog Timer Support"
2
3 config 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
13 config 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
27 config 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
39 config HW_WATCHDOG
40         bool
41
42 config 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
49 config 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
56 config 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
63 config ULP_WATCHDOG
64         bool "i.MX7ULP watchdog"
65         help
66           Say Y here to enable i.MX7ULP watchdog driver.
67
68 config 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
76 config 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
88 config 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
97 config 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
106 config 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
117 config 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
126 config 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
133 config WDT_BCM6345
134         bool "BCM6345 watchdog timer support"
135         depends on WDT && (ARCH_BMIPS || BCM6856 || \
136                            BCM6858 || BCM63158 || BCM6855)
137         help
138           Select this to enable watchdog timer for BCM6345 SoCs.
139           The watchdog timer is stopped when initialized.
140           It performs full SoC reset.
141
142 config WDT_BOOKE
143         bool "PowerPC Book-E watchdog driver"
144         depends on WDT && MPC85xx
145         help
146           Watchdog driver for PowerPC Book-E chips, such as the Freescale
147           MPC85xx SOCs and the IBM PowerPC 440.
148
149 config WDT_CDNS
150         bool "Cadence watchdog timer support"
151         depends on WDT
152         imply WATCHDOG
153         help
154           Select this to enable Cadence watchdog timer, which can be found on some
155           Xilinx Microzed Platform.
156
157 config WDT_CORTINA
158         bool "Cortina Access CAxxxx watchdog timer support"
159         depends on WDT
160         help
161           Cortina Access CAxxxx watchdog timer support.
162           This driver support all CPU ISAs supported by Cortina
163           Access CAxxxx SoCs.
164
165 config WDT_GPIO
166         bool "External gpio watchdog support"
167         depends on WDT
168         depends on DM_GPIO
169         help
170           Support for external watchdog fed by toggling a gpio. See
171           doc/device-tree-bindings/watchdog/gpio-wdt.txt for
172           information on how to describe the watchdog in device tree.
173
174 config WDT_MAX6370
175         bool "MAX6370 watchdog timer support"
176         depends on WDT
177         select DM_GPIO
178         help
179           Select this to enable max6370 watchdog timer.
180
181 config WDT_MCF
182         bool "ColdFire family watchdog timer support"
183         depends on WDT
184         help
185           Select this to enable ColdFire watchdog timer,
186           which supports mcf52x2 mcf532x mcf523x families.
187
188 config WDT_MESON_GXBB
189         bool "Amlogic watchdog timer support"
190         depends on WDT
191         help
192           Select this to enable Meson watchdog timer,
193           which can be found on some Amlogic platforms.
194
195 config WDT_MPC8xxx
196         bool "MPC8xxx watchdog timer support"
197         depends on WDT && (MPC8xx || MPC83xx)
198         help
199           Select this to enable mpc8xxx watchdog timer
200
201 config WDT_MPC8xxx_BME
202         bool "Enable MPC8xx Bus Monitoring"
203         depends on WDT_MPC8xxx && MPC8xx
204         help
205           Select this to enable mpc8xx Bus Monitor.
206
207 config WDT_MPC8xxx_BMT
208         int "MPC8xx Bus Monitor Timing" if WDT_MPC8xxx_BME
209         range 0 255
210         default 255
211         depends on WDT_MPC8xxx
212         help
213           Bus monitor timing. Defines the timeout period, in 8 system clock
214           resolution, for the bus monitor.
215
216           Maximum timeout is 2,040 clocks (255 x 8).
217
218 config WDT_MT7620
219         bool "MediaTek MT7620 watchdog timer support"
220         depends on WDT && SOC_MT7620
221         help
222           Select this to enable watchdog timer on MediaTek MT7620 and earlier
223           SoC chips.
224
225 config WDT_MT7621
226         bool "MediaTek MT7621 watchdog timer support"
227         depends on WDT && (SOC_MT7621 || SOC_MT7628)
228         help
229           Select this to enable Ralink / Mediatek watchdog timer,
230           which can be found on some MediaTek chips.
231
232 config WDT_MTK
233         bool "MediaTek watchdog timer support"
234         depends on WDT && ARCH_MEDIATEK
235         help
236           Select this to enable watchdog timer for MediaTek SoCs.
237           The watchdog timer is stopped when initialized.
238           It performs full SoC reset.
239
240 config WDT_NPCM
241         bool "Nuvoton watchdog timer support"
242         depends on WDT && ARCH_NPCM
243         help
244           This enables Nuvoton npcm7xx/npcm8xx watchdog timer driver,
245           The watchdog timer is stopped when initialized.
246           It performs full SoC reset.
247
248 config WDT_OCTEONTX
249         bool "Octeon core watchdog support"
250         depends on WDT && (ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2)
251         default y
252         imply WATCHDOG
253         help
254           This enables the Octeon watchdog driver, which can be found on
255           various Octeon parts such as Octeon II/III and OcteonTX/TX2.
256
257 config WDT_OMAP3
258         bool "TI OMAP watchdog timer support"
259         depends on WDT && ARCH_OMAP2PLUS
260         default y if AM33XX
261         help
262           This enables OMAP3+ watchdog timer driver, which can be
263           found on some TI chipsets and inline with driver model.
264
265 config WDT_ORION
266         bool "Orion watchdog timer support"
267         depends on WDT
268         select CLK
269         help
270           Select this to enable Orion watchdog timer, which can be found on some
271           Marvell Armada chips.
272
273 config WDT_K3_RTI
274         bool "Texas Instruments K3 RTI watchdog"
275         depends on WDT && ARCH_K3
276         help
277           Say Y here if you want to include support for the K3 watchdog
278           timer (RTI module) available in the K3 generation of processors.
279
280 if WDT_K3_RTI
281
282 config WDT_K3_RTI_LOAD_FW
283         bool "Load watchdog firmware"
284         depends on REMOTEPROC
285         help
286           Automatically load the specified firmware image into the MCU R5F
287           core 0. On the AM65x, this firmware is supposed to handle the expiry
288           of the watchdog timer, typically by resetting the system.
289
290 config WDT_K3_RTI_FW_FILE
291         string "Watchdog firmware image file"
292         default "k3-rti-wdt.fw"
293         depends on WDT_K3_RTI_LOAD_FW
294         help
295           Firmware image to be embedded into U-Boot and loaded on watchdog
296           start.
297
298 endif
299
300 config WDT_SANDBOX
301         bool "Enable Watchdog Timer support for Sandbox"
302         depends on SANDBOX && WDT
303         help
304           Enable Watchdog Timer support in Sandbox. This is a dummy device that
305           can be probed and supports all of the methods of WDT, but does not
306           really do anything.
307
308 config WDT_ALARM_SANDBOX
309         bool "Enable SIGALRM-based Watchdog Timer support for Sandbox"
310         depends on SANDBOX && WDT
311         help
312           Enable support for a SIGALRM-based watchdog timer in Sandbox. This is
313           a watchdog device based on the host OS' alarm() function, which will
314           kill the sandbox with SIGALRM unless properly maintained.
315
316 config WDT_SBSA
317         bool "SBSA watchdog timer support"
318         depends on WDT
319         help
320            Select this to enable SBSA watchdog timer.
321            This driver can operate ARM SBSA Generic Watchdog as a single stage.
322            In the single stage mode, when the timeout is reached, your system
323            will be reset by WS1. The first signal (WS0) is ignored.
324
325 config WDT_SL28CPLD
326         bool "sl28cpld watchdog timer support"
327         depends on WDT && SL28CPLD
328         help
329           Enable support for the watchdog timer in the Kontron sl28cpld
330           management controller.
331
332 config WDT_SP805
333         bool "SP805 watchdog timer support"
334         depends on WDT
335         help
336           Select this to enable SP805 watchdog timer, which can be found on some
337           nxp layerscape chips.
338
339 config WDT_STM32MP
340         bool "IWDG watchdog driver for STM32 MP's family"
341         depends on WDT
342         imply WATCHDOG
343         help
344           Enable the STM32 watchdog (IWDG) driver. Enable support to
345           configure STM32's on-SoC watchdog.
346
347 config WDT_SUNXI
348         bool "Allwinner sunxi watchdog timer support"
349         depends on WDT && ARCH_SUNXI
350         default y
351         help
352           Enable support for the watchdog timer in Allwinner sunxi SoCs.
353
354 config WDT_BCM2835
355         bool "Broadcom 2835 watchdog timer support"
356         depends on WDT && ARCH_BCM283X
357         default y
358         help
359           Enable support for the watchdog timer in Broadcom 283X SoCs such
360           as Raspberry Pi boards.
361
362 config XILINX_TB_WATCHDOG
363         bool "Xilinx Axi watchdog timer support"
364         depends on WDT
365         imply WATCHDOG
366         help
367           Select this to enable Xilinx Axi watchdog timer, which can be found on some
368           Xilinx Microblaze Platforms.
369
370 config WDT_XILINX
371         bool "Xilinx window watchdog timer support"
372         depends on WDT && ARCH_VERSAL
373         select REGMAP
374         imply WATCHDOG
375         help
376           Select this to enable Xilinx window watchdog timer, which can be found on
377           Xilinx Versal Platforms.
378
379 config WDT_TANGIER
380         bool "Intel Tangier watchdog timer support"
381         depends on WDT && INTEL_MID
382         help
383           This enables support for watchdog controller available on
384           Intel Tangier SoC. If you're using a board with Intel Tangier
385           SoC, say Y here.
386
387 config WDT_ARM_SMC
388         bool "ARM SMC watchdog timer support"
389         depends on WDT && ARM_SMCCC
390         imply WATCHDOG
391         help
392           Select this to enable Arm SMC watchdog timer. This watchdog will manage
393           a watchdog based on ARM SMCCC communication.
394
395 config SPL_WDT
396         bool "Enable driver model for watchdog timer drivers in SPL"
397         depends on SPL_DM
398         help
399           Enable driver model for watchdog timer in SPL.
400           This is similar to CONFIG_WDT in U-Boot.
401
402 config WDT_FTWDT010
403         bool "Faraday Technology ftwdt010 watchdog timer support"
404         depends on WDT
405         imply WATCHDOG
406         help
407           Faraday Technology ftwdt010 watchdog is an architecture independent
408           watchdog. It is usually used in SoC chip design.
409 endmenu