==========================
WatchDog Module Parameters
==========================

This file provides information on the module parameters of many of
the Linux watchdog drivers.  Watchdog driver parameter specs should
be listed here unless the driver has its own driver-specific information
file.

See Documentation/admin-guide/kernel-parameters.rst for information on
providing kernel parameters for builtin drivers versus loadable
modules.

-------------------------------------------------

acquirewdt:
    wdt_stop:
	Acquire WDT 'stop' io port (default 0x43)
    wdt_start:
	Acquire WDT 'start' io port (default 0x443)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

advantechwdt:
    wdt_stop:
	Advantech WDT 'stop' io port (default 0x443)
    wdt_start:
	Advantech WDT 'start' io port (default 0x443)
    timeout:
	Watchdog timeout in seconds. 1<= timeout <=63, default=60.
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

alim1535_wdt:
    timeout:
	Watchdog timeout in seconds. (0 < timeout < 18000, default=60
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

alim7101_wdt:
    timeout:
	Watchdog timeout in seconds. (1<=timeout<=3600, default=30
    use_gpio:
	Use the gpio watchdog (required by old cobalt boards).
	default=0/off/no
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

ar7_wdt:
    margin:
	Watchdog margin in seconds (default=60)
    nowayout:
	Disable watchdog shutdown on close
	(default=kernel config parameter)

-------------------------------------------------

armada_37xx_wdt:
    timeout:
	Watchdog timeout in seconds. (default=120)
    nowayout:
	Disable watchdog shutdown on close
	(default=kernel config parameter)

-------------------------------------------------

at91rm9200_wdt:
    wdt_time:
	Watchdog time in seconds. (default=5)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

at91sam9_wdt:
    heartbeat:
	Watchdog heartbeats in seconds. (default = 15)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

bcm47xx_wdt:
    wdt_time:
	Watchdog time in seconds. (default=30)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

coh901327_wdt:
    margin:
	Watchdog margin in seconds (default 60s)

-------------------------------------------------

cpu5wdt:
    port:
	base address of watchdog card, default is 0x91
    verbose:
	be verbose, default is 0 (no)
    ticks:
	count down ticks, default is 10000

-------------------------------------------------

cpwd:
    wd0_timeout:
	Default watchdog0 timeout in 1/10secs
    wd1_timeout:
	Default watchdog1 timeout in 1/10secs
    wd2_timeout:
	Default watchdog2 timeout in 1/10secs

-------------------------------------------------

da9052wdt:
    timeout:
	Watchdog timeout in seconds. 2<= timeout <=131, default=2.048s
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

davinci_wdt:
    heartbeat:
	Watchdog heartbeat period in seconds from 1 to 600, default 60

-------------------------------------------------

ebc-c384_wdt:
    timeout:
	Watchdog timeout in seconds. (1<=timeout<=15300, default=60)
    nowayout:
	Watchdog cannot be stopped once started

-------------------------------------------------

ep93xx_wdt:
    nowayout:
	Watchdog cannot be stopped once started
    timeout:
	Watchdog timeout in seconds. (1<=timeout<=3600, default=TBD)

-------------------------------------------------

eurotechwdt:
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)
    io:
	Eurotech WDT io port (default=0x3f0)
    irq:
	Eurotech WDT irq (default=10)
    ev:
	Eurotech WDT event type (default is `int`)

-------------------------------------------------

gef_wdt:
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

geodewdt:
    timeout:
	Watchdog timeout in seconds. 1<= timeout <=131, default=60.
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

i6300esb:
    heartbeat:
	Watchdog heartbeat in seconds. (1<heartbeat<2046, default=30)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

iTCO_wdt:
    heartbeat:
	Watchdog heartbeat in seconds.
	(2<heartbeat<39 (TCO v1) or 613 (TCO v2), default=30)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

iTCO_vendor_support:
    vendorsupport:
	iTCO vendor specific support mode, default=0 (none),
	1=SuperMicro Pent3, 2=SuperMicro Pent4+, 911=Broken SMI BIOS

-------------------------------------------------

ib700wdt:
    timeout:
	Watchdog timeout in seconds. 0<= timeout <=30, default=30.
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

ibmasr:
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

imx2_wdt:
    timeout:
	Watchdog timeout in seconds (default 60 s)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

indydog:
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

iop_wdt:
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

it8712f_wdt:
    margin:
	Watchdog margin in seconds (default 60)
    nowayout:
	Disable watchdog shutdown on close
	(default=kernel config parameter)

-------------------------------------------------

it87_wdt:
    nogameport:
	Forbid the activation of game port, default=0
    nocir:
	Forbid the use of CIR (workaround for some buggy setups); set to 1 if
system resets despite watchdog daemon running, default=0
    exclusive:
	Watchdog exclusive device open, default=1
    timeout:
	Watchdog timeout in seconds, default=60
    testmode:
	Watchdog test mode (1 = no reboot), default=0
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

ixp4xx_wdt:
    heartbeat:
	Watchdog heartbeat in seconds (default 60s)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

ks8695_wdt:
    wdt_time:
	Watchdog time in seconds. (default=5)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

machzwd:
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)
    action:
	after watchdog resets, generate:
	0 = RESET(*)  1 = SMI  2 = NMI  3 = SCI

-------------------------------------------------

max63xx_wdt:
    heartbeat:
	Watchdog heartbeat period in seconds from 1 to 60, default 60
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)
    nodelay:
	Force selection of a timeout setting without initial delay
	(max6373/74 only, default=0)

-------------------------------------------------

mixcomwd:
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

mpc8xxx_wdt:
    timeout:
	Watchdog timeout in ticks. (0<timeout<65536, default=65535)
    reset:
	Watchdog Interrupt/Reset Mode. 0 = interrupt, 1 = reset
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

mv64x60_wdt:
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

ni903x_wdt:
    timeout:
	Initial watchdog timeout in seconds (0<timeout<516, default=60)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

nic7018_wdt:
    timeout:
	Initial watchdog timeout in seconds (0<timeout<464, default=80)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

nuc900_wdt:
    heartbeat:
	Watchdog heartbeats in seconds.
	(default = 15)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

omap_wdt:
    timer_margin:
	initial watchdog timeout (in seconds)
    early_enable:
	Watchdog is started on module insertion (default=0
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

orion_wdt:
    heartbeat:
	Initial watchdog heartbeat in seconds
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

pc87413_wdt:
    io:
	pc87413 WDT I/O port (default: io).
    timeout:
	Watchdog timeout in minutes (default=timeout).
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

pika_wdt:
    heartbeat:
	Watchdog heartbeats in seconds. (default = 15)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

pnx4008_wdt:
    heartbeat:
	Watchdog heartbeat period in seconds from 1 to 60, default 19
    nowayout:
	Set to 1 to keep watchdog running after device release

-------------------------------------------------

pnx833x_wdt:
    timeout:
	Watchdog timeout in Mhz. (68Mhz clock), default=2040000000 (30 seconds)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)
    start_enabled:
	Watchdog is started on module insertion (default=1)

-------------------------------------------------

rc32434_wdt:
    timeout:
	Watchdog timeout value, in seconds (default=20)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

riowd:
    riowd_timeout:
	Watchdog timeout in minutes (default=1)

-------------------------------------------------

s3c2410_wdt:
    tmr_margin:
	Watchdog tmr_margin in seconds. (default=15)
    tmr_atboot:
	Watchdog is started at boot time if set to 1, default=0
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)
    soft_noboot:
	Watchdog action, set to 1 to ignore reboots, 0 to reboot
    debug:
	Watchdog debug, set to >1 for debug, (default 0)

-------------------------------------------------

sa1100_wdt:
    margin:
	Watchdog margin in seconds (default 60s)

-------------------------------------------------

sb_wdog:
    timeout:
	Watchdog timeout in microseconds (max/default 8388607 or 8.3ish secs)

-------------------------------------------------

sbc60xxwdt:
    wdt_stop:
	SBC60xx WDT 'stop' io port (default 0x45)
    wdt_start:
	SBC60xx WDT 'start' io port (default 0x443)
    timeout:
	Watchdog timeout in seconds. (1<=timeout<=3600, default=30)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

sbc7240_wdt:
    timeout:
	Watchdog timeout in seconds. (1<=timeout<=255, default=30)
    nowayout:
	Disable watchdog when closing device file

-------------------------------------------------

sbc8360:
    timeout:
	Index into timeout table (0-63) (default=27 (60s))
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

sbc_epx_c3:
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

sbc_fitpc2_wdt:
    margin:
	Watchdog margin in seconds (default 60s)
    nowayout:
	Watchdog cannot be stopped once started

-------------------------------------------------

sbsa_gwdt:
    timeout:
	Watchdog timeout in seconds. (default 10s)
    action:
	Watchdog action at the first stage timeout,
	set to 0 to ignore, 1 to panic. (default=0)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

sc1200wdt:
    isapnp:
	When set to 0 driver ISA PnP support will be disabled (default=1)
    io:
	io port
    timeout:
	range is 0-255 minutes, default is 1
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

sc520_wdt:
    timeout:
	Watchdog timeout in seconds. (1 <= timeout <= 3600, default=30)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

sch311x_wdt:
    force_id:
	Override the detected device ID
    therm_trip:
	Should a ThermTrip trigger the reset generator
    timeout:
	Watchdog timeout in seconds. 1<= timeout <=15300, default=60
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

scx200_wdt:
    margin:
	Watchdog margin in seconds
    nowayout:
	Disable watchdog shutdown on close

-------------------------------------------------

shwdt:
    clock_division_ratio:
	Clock division ratio. Valid ranges are from 0x5 (1.31ms)
	to 0x7 (5.25ms). (default=7)
    heartbeat:
	Watchdog heartbeat in seconds. (1 <= heartbeat <= 3600, default=30
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

smsc37b787_wdt:
    timeout:
	range is 1-255 units, default is 60
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

softdog:
    soft_margin:
	Watchdog soft_margin in seconds.
	(0 < soft_margin < 65536, default=60)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)
    soft_noboot:
	Softdog action, set to 1 to ignore reboots, 0 to reboot
	(default=0)

-------------------------------------------------

stmp3xxx_wdt:
    heartbeat:
	Watchdog heartbeat period in seconds from 1 to 4194304, default 19

-------------------------------------------------

tegra_wdt:
    heartbeat:
	Watchdog heartbeats in seconds. (default = 120)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

ts72xx_wdt:
    timeout:
	Watchdog timeout in seconds. (1 <= timeout <= 8, default=8)
    nowayout:
	Disable watchdog shutdown on close

-------------------------------------------------

twl4030_wdt:
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

txx9wdt:
    timeout:
	Watchdog timeout in seconds. (0<timeout<N, default=60)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

uniphier_wdt:
    timeout:
	Watchdog timeout in power of two seconds.
	(1 <= timeout <= 128, default=64)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

w83627hf_wdt:
    wdt_io:
	w83627hf/thf WDT io port (default 0x2E)
    timeout:
	Watchdog timeout in seconds. 1 <= timeout <= 255, default=60.
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

w83877f_wdt:
    timeout:
	Watchdog timeout in seconds. (1<=timeout<=3600, default=30)
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

w83977f_wdt:
    timeout:
	Watchdog timeout in seconds (15..7635), default=45)
    testmode:
	Watchdog testmode (1 = no reboot), default=0
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

wafer5823wdt:
    timeout:
	Watchdog timeout in seconds. 1 <= timeout <= 255, default=60.
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

wdt285:
    soft_margin:
	Watchdog timeout in seconds (default=60)

-------------------------------------------------

wdt977:
    timeout:
	Watchdog timeout in seconds (60..15300, default=60)
    testmode:
	Watchdog testmode (1 = no reboot), default=0
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

wm831x_wdt:
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

wm8350_wdt:
    nowayout:
	Watchdog cannot be stopped once started
	(default=kernel config parameter)

-------------------------------------------------

sun4v_wdt:
    timeout_ms:
	Watchdog timeout in milliseconds 1..180000, default=60000)
    nowayout:
	Watchdog cannot be stopped once started
