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