Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
ab17ed70
Commit
ab17ed70
authored
Mar 24, 2018
by
Wim Van Sebroeck
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'v4.17-rc1'
parents
2e8ebed6
2e62c498
Changes
33
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
329 additions
and
210 deletions
+329
-210
Documentation/devicetree/bindings/watchdog/nuvoton,npcm-wdt.txt
...ntation/devicetree/bindings/watchdog/nuvoton,npcm-wdt.txt
+28
-0
drivers/watchdog/Kconfig
drivers/watchdog/Kconfig
+11
-0
drivers/watchdog/Makefile
drivers/watchdog/Makefile
+1
-0
drivers/watchdog/ar7_wdt.c
drivers/watchdog/ar7_wdt.c
+1
-13
drivers/watchdog/aspeed_wdt.c
drivers/watchdog/aspeed_wdt.c
+4
-0
drivers/watchdog/at91rm9200_wdt.c
drivers/watchdog/at91rm9200_wdt.c
+1
-4
drivers/watchdog/at91sam9_wdt.c
drivers/watchdog/at91sam9_wdt.c
+1
-4
drivers/watchdog/at91sam9_wdt.h
drivers/watchdog/at91sam9_wdt.h
+1
-4
drivers/watchdog/bcm2835_wdt.c
drivers/watchdog/bcm2835_wdt.c
+1
-4
drivers/watchdog/bcm47xx_wdt.c
drivers/watchdog/bcm47xx_wdt.c
+1
-4
drivers/watchdog/bcm63xx_wdt.c
drivers/watchdog/bcm63xx_wdt.c
+1
-4
drivers/watchdog/bcm7038_wdt.c
drivers/watchdog/bcm7038_wdt.c
+2
-10
drivers/watchdog/bcm_kona_wdt.c
drivers/watchdog/bcm_kona_wdt.c
+1
-8
drivers/watchdog/cadence_wdt.c
drivers/watchdog/cadence_wdt.c
+1
-4
drivers/watchdog/da9052_wdt.c
drivers/watchdog/da9052_wdt.c
+1
-5
drivers/watchdog/da9055_wdt.c
drivers/watchdog/da9055_wdt.c
+1
-5
drivers/watchdog/da9062_wdt.c
drivers/watchdog/da9062_wdt.c
+1
-9
drivers/watchdog/da9063_wdt.c
drivers/watchdog/da9063_wdt.c
+1
-4
drivers/watchdog/digicolor_wdt.c
drivers/watchdog/digicolor_wdt.c
+1
-4
drivers/watchdog/ebc-c384_wdt.c
drivers/watchdog/ebc-c384_wdt.c
+1
-0
drivers/watchdog/mei_wdt.c
drivers/watchdog/mei_wdt.c
+2
-10
drivers/watchdog/mena21_wdt.c
drivers/watchdog/mena21_wdt.c
+1
-3
drivers/watchdog/meson_gxbb_wdt.c
drivers/watchdog/meson_gxbb_wdt.c
+1
-49
drivers/watchdog/mtk_wdt.c
drivers/watchdog/mtk_wdt.c
+1
-10
drivers/watchdog/mtx-1_wdt.c
drivers/watchdog/mtx-1_wdt.c
+1
-10
drivers/watchdog/npcm_wdt.c
drivers/watchdog/npcm_wdt.c
+254
-0
drivers/watchdog/of_xilinx_wdt.c
drivers/watchdog/of_xilinx_wdt.c
+2
-6
drivers/watchdog/st_lpc_wdt.c
drivers/watchdog/st_lpc_wdt.c
+1
-5
drivers/watchdog/tangox_wdt.c
drivers/watchdog/tangox_wdt.c
+1
-5
drivers/watchdog/tegra_wdt.c
drivers/watchdog/tegra_wdt.c
+1
-9
drivers/watchdog/uniphier_wdt.c
drivers/watchdog/uniphier_wdt.c
+1
-9
drivers/watchdog/wm831x_wdt.c
drivers/watchdog/wm831x_wdt.c
+1
-4
drivers/watchdog/wm8350_wdt.c
drivers/watchdog/wm8350_wdt.c
+1
-4
No files found.
Documentation/devicetree/bindings/watchdog/nuvoton,npcm-wdt.txt
0 → 100644
View file @
ab17ed70
Nuvoton NPCM Watchdog
Nuvoton NPCM timer module provides five 24-bit timer counters, and a watchdog.
The watchdog supports a pre-timeout interrupt that fires 10ms before the
expiry.
Required properties:
- compatible : "nuvoton,npcm750-wdt" for NPCM750 (Poleg).
- reg : Offset and length of the register set for the device.
- interrupts : Contain the timer interrupt with flags for
falling edge.
Required clocking property, have to be one of:
- clocks : phandle of timer reference clock.
- clock-frequency : The frequency in Hz of the clock that drives the NPCM7xx
timer (usually 25000000).
Optional properties:
- timeout-sec : Contains the watchdog timeout in seconds
Example:
timer@f000801c {
compatible = "nuvoton,npcm750-wdt";
interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
reg = <0xf000801c 0x4>;
clocks = <&clk NPCM7XX_CLK_TIMER>;
};
drivers/watchdog/Kconfig
View file @
ab17ed70
...
...
@@ -514,6 +514,17 @@ config COH901327_WATCHDOG
This watchdog is used to reset the system and thus cannot be
compiled as a module.
config NPCM7XX_WATCHDOG
bool "Nuvoton NPCM750 watchdog"
depends on ARCH_NPCM || COMPILE_TEST
default y if ARCH_NPCM750
select WATCHDOG_CORE
help
Say Y here to include Watchdog timer support for the
watchdog embedded into the NPCM7xx.
This watchdog is used to reset the system and thus cannot be
compiled as a module.
config TWL4030_WATCHDOG
tristate "TWL4030 Watchdog"
depends on TWL4030_CORE
...
...
drivers/watchdog/Makefile
View file @
ab17ed70
...
...
@@ -61,6 +61,7 @@ obj-$(CONFIG_ORION_WATCHDOG) += orion_wdt.o
obj-$(CONFIG_SUNXI_WATCHDOG)
+=
sunxi_wdt.o
obj-$(CONFIG_RN5T618_WATCHDOG)
+=
rn5t618_wdt.o
obj-$(CONFIG_COH901327_WATCHDOG)
+=
coh901327_wdt.o
obj-$(CONFIG_NPCM7XX_WATCHDOG)
+=
npcm_wdt.o
obj-$(CONFIG_STMP3XXX_RTC_WATCHDOG)
+=
stmp3xxx_rtc_wdt.o
obj-$(CONFIG_NUC900_WATCHDOG)
+=
nuc900_wdt.o
obj-$(CONFIG_TS4800_WATCHDOG)
+=
ts4800_wdt.o
...
...
drivers/watchdog/ar7_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* drivers/watchdog/ar7_wdt.c
*
...
...
@@ -8,19 +9,6 @@
* National Semiconductor SCx200 Watchdog support
* Copyright (c) 2001,2002 Christer Weinigel <wingel@nano-system.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
...
...
drivers/watchdog/aspeed_wdt.c
View file @
ab17ed70
...
...
@@ -46,6 +46,7 @@ MODULE_DEVICE_TABLE(of, aspeed_wdt_of_table);
#define WDT_RELOAD_VALUE 0x04
#define WDT_RESTART 0x08
#define WDT_CTRL 0x0C
#define WDT_CTRL_BOOT_SECONDARY BIT(7)
#define WDT_CTRL_RESET_MODE_SOC (0x00 << 5)
#define WDT_CTRL_RESET_MODE_FULL_CHIP (0x01 << 5)
#define WDT_CTRL_RESET_MODE_ARM_CPU (0x10 << 5)
...
...
@@ -158,6 +159,7 @@ static int aspeed_wdt_restart(struct watchdog_device *wdd,
{
struct
aspeed_wdt
*
wdt
=
to_aspeed_wdt
(
wdd
);
wdt
->
ctrl
&=
~
WDT_CTRL_BOOT_SECONDARY
;
aspeed_wdt_enable
(
wdt
,
128
*
WDT_RATE_1MHZ
/
1000
);
mdelay
(
1000
);
...
...
@@ -245,6 +247,8 @@ static int aspeed_wdt_probe(struct platform_device *pdev)
}
if
(
of_property_read_bool
(
np
,
"aspeed,external-signal"
))
wdt
->
ctrl
|=
WDT_CTRL_WDT_EXT
;
if
(
of_property_read_bool
(
np
,
"aspeed,alt-boot"
))
wdt
->
ctrl
|=
WDT_CTRL_BOOT_SECONDARY
;
if
(
readl
(
wdt
->
base
+
WDT_CTRL
)
&
WDT_CTRL_ENABLE
)
{
/*
...
...
drivers/watchdog/at91rm9200_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Watchdog driver for Atmel AT91RM9200 (Thunder)
*
* Copyright (C) 2003 SAN People (Pty) Ltd
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
...
...
drivers/watchdog/at91sam9_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Watchdog driver for Atmel AT91SAM9x processors.
*
* Copyright (C) 2008 Renaud CERRATO r.cerrato@til-technologies.fr
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
/*
...
...
drivers/watchdog/at91sam9_wdt.h
View file @
ab17ed70
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* drivers/watchdog/at91sam9_wdt.h
*
...
...
@@ -7,10 +8,6 @@
* Watchdog Timer (WDT) - System peripherals regsters.
* Based on AT91SAM9261 datasheet revision D.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#ifndef AT91_WDT_H
...
...
drivers/watchdog/bcm2835_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Watchdog driver for Broadcom BCM2835
*
...
...
@@ -7,10 +8,6 @@
*
* Copyright (C) 2013 Lubomir Rintel <lkundrak@v3.sk>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*/
#include <linux/delay.h>
...
...
drivers/watchdog/bcm47xx_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Watchdog driver for Broadcom BCM47XX
*
...
...
@@ -5,10 +6,6 @@
* Copyright (C) 2009 Matthieu CASTET <castet.matthieu@free.fr>
* Copyright (C) 2012-2013 Hauke Mehrtens <hauke@hauke-m.de>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
...
...
drivers/watchdog/bcm63xx_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Broadcom BCM63xx SoC watchdog driver
*
* Copyright (C) 2007, Miguel Gaio <miguel.gaio@efixo.com>
* Copyright (C) 2008, Florian Fainelli <florian@openwrt.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
...
...
drivers/watchdog/bcm7038_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2015 Broadcom Corporation
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <linux/clk.h>
...
...
@@ -235,6 +227,6 @@ module_platform_driver(bcm7038_wdt_driver);
module_param
(
nowayout
,
bool
,
0
);
MODULE_PARM_DESC
(
nowayout
,
"Watchdog cannot be stopped once started (default="
__MODULE_STRING
(
WATCHDOG_NOWAYOUT
)
")"
);
MODULE_LICENSE
(
"GPL
v2
"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_DESCRIPTION
(
"Driver for Broadcom 7038 SoCs Watchdog"
);
MODULE_AUTHOR
(
"Justin Chen"
);
drivers/watchdog/bcm_kona_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2013 Broadcom Corporation
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation version 2.
*
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
* kind, whether express or implied; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <linux/debugfs.h>
...
...
drivers/watchdog/cadence_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Cadence WDT driver - Used by Xilinx Zynq
*
* Copyright (C) 2010 - 2014 Xilinx, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#include <linux/clk.h>
...
...
drivers/watchdog/da9052_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* System monitoring driver for DA9052 PMICs.
*
...
...
@@ -5,11 +6,6 @@
*
* Author: Anthony Olech <Anthony.Olech@diasemi.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
*/
#include <linux/module.h>
...
...
drivers/watchdog/da9055_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* System monitoring driver for DA9055 PMICs.
*
...
...
@@ -5,11 +6,6 @@
*
* Author: David Dajun Chen <dchen@diasemi.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
*/
#include <linux/module.h>
...
...
drivers/watchdog/da9062_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Watchdog device driver for DA9062 and DA9061 PMICs
* Copyright (C) 2015 Dialog Semiconductor Ltd.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <linux/kernel.h>
...
...
drivers/watchdog/da9063_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Watchdog driver for DA9063 PMICs.
*
...
...
@@ -5,10 +6,6 @@
*
* Author: Mariusz Wojtasik <mariusz.wojtasik@diasemi.com>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*/
#include <linux/kernel.h>
...
...
drivers/watchdog/digicolor_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Watchdog driver for Conexant Digicolor
*
* Copyright (C) 2015 Paradox Innovation Ltd.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*/
#include <linux/types.h>
...
...
drivers/watchdog/ebc-c384_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0
/*
* Watchdog timer driver for the WinSystems EBC-C384
* Copyright (C) 2016 William Breathitt Gray
...
...
drivers/watchdog/mei_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0
/*
* Intel Management Engine Interface (Intel MEI) Linux driver
* Copyright (c) 2015, Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*/
#include <linux/module.h>
...
...
@@ -687,5 +679,5 @@ static struct mei_cl_driver mei_wdt_driver = {
module_mei_cl_driver
(
mei_wdt_driver
);
MODULE_AUTHOR
(
"Intel Corporation"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_LICENSE
(
"GPL
v2
"
);
MODULE_DESCRIPTION
(
"Device driver for Intel MEI iAMT watchdog"
);
drivers/watchdog/mena21_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Watchdog driver for the A21 VME CPU Boards
*
* Copyright (C) 2013 MEN Mikro Elektronik Nuernberg GmbH
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation
*/
#include <linux/module.h>
#include <linux/moduleparam.h>
...
...
drivers/watchdog/meson_gxbb_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
/*
* This file is provided under a dual BSD/GPLv2 license. When using or
* redistributing this file, you may do so under either license.
*
* GPL LICENSE SUMMARY
*
* Copyright (c) 2016 BayLibre, SAS.
* Author: Neil Armstrong <narmstrong@baylibre.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of version 2 of the GNU General Public License as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
* The full GNU General Public License is included in this distribution
* in the file called COPYING.
*
* BSD LICENSE
*
* Copyright (c) 2016 BayLibre, SAS.
* Author: Neil Armstrong <narmstrong@baylibre.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Intel Corporation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <linux/clk.h>
#include <linux/err.h>
...
...
drivers/watchdog/mtk_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Mediatek Watchdog Driver
*
...
...
@@ -5,16 +6,6 @@
*
* Matthias Brugger <matthias.bgg@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Based on sunxi_wdt.c
*/
...
...
drivers/watchdog/mtx-1_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Driver for the MTX-1 Watchdog.
*
...
...
@@ -6,16 +7,6 @@
* http://www.4g-systems.biz
*
* (C) Copyright 2007 OpenWrt.org, Florian Fainelli <florian@openwrt.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* Neither Michael Stickel nor 4G Systems admit liability nor provide
* warranty for any of this software. This material is provided
* "AS-IS" and at no charge.
*
* (c) Copyright 2005 4G Systems <info@4g-systems.biz>
*
* Release 0.01.
...
...
drivers/watchdog/npcm_wdt.c
0 → 100644
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2018 Nuvoton Technology corporation.
// Copyright (c) 2018 IBM Corp.
#include <linux/bitops.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of_irq.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/watchdog.h>
#define NPCM_WTCR 0x1C
#define NPCM_WTCLK (BIT(10) | BIT(11))
/* Clock divider */
#define NPCM_WTE BIT(7)
/* Enable */
#define NPCM_WTIE BIT(6)
/* Enable irq */
#define NPCM_WTIS (BIT(4) | BIT(5))
/* Interval selection */
#define NPCM_WTIF BIT(3)
/* Interrupt flag*/
#define NPCM_WTRF BIT(2)
/* Reset flag */
#define NPCM_WTRE BIT(1)
/* Reset enable */
#define NPCM_WTR BIT(0)
/* Reset counter */
/*
* Watchdog timeouts
*
* 170 msec: WTCLK=01 WTIS=00 VAL= 0x400
* 670 msec: WTCLK=01 WTIS=01 VAL= 0x410
* 1360 msec: WTCLK=10 WTIS=00 VAL= 0x800
* 2700 msec: WTCLK=01 WTIS=10 VAL= 0x420
* 5360 msec: WTCLK=10 WTIS=01 VAL= 0x810
* 10700 msec: WTCLK=01 WTIS=11 VAL= 0x430
* 21600 msec: WTCLK=10 WTIS=10 VAL= 0x820
* 43000 msec: WTCLK=11 WTIS=00 VAL= 0xC00
* 85600 msec: WTCLK=10 WTIS=11 VAL= 0x830
* 172000 msec: WTCLK=11 WTIS=01 VAL= 0xC10
* 687000 msec: WTCLK=11 WTIS=10 VAL= 0xC20
* 2750000 msec: WTCLK=11 WTIS=11 VAL= 0xC30
*/
struct
npcm_wdt
{
struct
watchdog_device
wdd
;
void
__iomem
*
reg
;
};
static
inline
struct
npcm_wdt
*
to_npcm_wdt
(
struct
watchdog_device
*
wdd
)
{
return
container_of
(
wdd
,
struct
npcm_wdt
,
wdd
);
}
static
int
npcm_wdt_ping
(
struct
watchdog_device
*
wdd
)
{
struct
npcm_wdt
*
wdt
=
to_npcm_wdt
(
wdd
);
u32
val
;
val
=
readl
(
wdt
->
reg
);
writel
(
val
|
NPCM_WTR
,
wdt
->
reg
);
return
0
;
}
static
int
npcm_wdt_start
(
struct
watchdog_device
*
wdd
)
{
struct
npcm_wdt
*
wdt
=
to_npcm_wdt
(
wdd
);
u32
val
;
if
(
wdd
->
timeout
<
2
)
val
=
0x800
;
else
if
(
wdd
->
timeout
<
3
)
val
=
0x420
;
else
if
(
wdd
->
timeout
<
6
)
val
=
0x810
;
else
if
(
wdd
->
timeout
<
11
)
val
=
0x430
;
else
if
(
wdd
->
timeout
<
22
)
val
=
0x820
;
else
if
(
wdd
->
timeout
<
44
)
val
=
0xC00
;
else
if
(
wdd
->
timeout
<
87
)
val
=
0x830
;
else
if
(
wdd
->
timeout
<
173
)
val
=
0xC10
;
else
if
(
wdd
->
timeout
<
688
)
val
=
0xC20
;
else
val
=
0xC30
;
val
|=
NPCM_WTRE
|
NPCM_WTE
|
NPCM_WTR
|
NPCM_WTIE
;
writel
(
val
,
wdt
->
reg
);
return
0
;
}
static
int
npcm_wdt_stop
(
struct
watchdog_device
*
wdd
)
{
struct
npcm_wdt
*
wdt
=
to_npcm_wdt
(
wdd
);
writel
(
0
,
wdt
->
reg
);
return
0
;
}
static
int
npcm_wdt_set_timeout
(
struct
watchdog_device
*
wdd
,
unsigned
int
timeout
)
{
if
(
timeout
<
2
)
wdd
->
timeout
=
1
;
else
if
(
timeout
<
3
)
wdd
->
timeout
=
2
;
else
if
(
timeout
<
6
)
wdd
->
timeout
=
5
;
else
if
(
timeout
<
11
)
wdd
->
timeout
=
10
;
else
if
(
timeout
<
22
)
wdd
->
timeout
=
21
;
else
if
(
timeout
<
44
)
wdd
->
timeout
=
43
;
else
if
(
timeout
<
87
)
wdd
->
timeout
=
86
;
else
if
(
timeout
<
173
)
wdd
->
timeout
=
172
;
else
if
(
timeout
<
688
)
wdd
->
timeout
=
687
;
else
wdd
->
timeout
=
2750
;
if
(
watchdog_active
(
wdd
))
npcm_wdt_start
(
wdd
);
return
0
;
}
static
irqreturn_t
npcm_wdt_interrupt
(
int
irq
,
void
*
data
)
{
struct
npcm_wdt
*
wdt
=
data
;
watchdog_notify_pretimeout
(
&
wdt
->
wdd
);
return
IRQ_HANDLED
;
}
static
int
npcm_wdt_restart
(
struct
watchdog_device
*
wdd
,
unsigned
long
action
,
void
*
data
)
{
struct
npcm_wdt
*
wdt
=
to_npcm_wdt
(
wdd
);
writel
(
NPCM_WTR
|
NPCM_WTRE
|
NPCM_WTE
,
wdt
->
reg
);
udelay
(
1000
);
return
0
;
}
static
bool
npcm_is_running
(
struct
watchdog_device
*
wdd
)
{
struct
npcm_wdt
*
wdt
=
to_npcm_wdt
(
wdd
);
return
readl
(
wdt
->
reg
)
&
NPCM_WTE
;
}
static
const
struct
watchdog_info
npcm_wdt_info
=
{
.
identity
=
KBUILD_MODNAME
,
.
options
=
WDIOF_SETTIMEOUT
|
WDIOF_KEEPALIVEPING
|
WDIOF_MAGICCLOSE
,
};
static
const
struct
watchdog_ops
npcm_wdt_ops
=
{
.
owner
=
THIS_MODULE
,
.
start
=
npcm_wdt_start
,
.
stop
=
npcm_wdt_stop
,
.
ping
=
npcm_wdt_ping
,
.
set_timeout
=
npcm_wdt_set_timeout
,
.
restart
=
npcm_wdt_restart
,
};
static
int
npcm_wdt_probe
(
struct
platform_device
*
pdev
)
{
struct
device
*
dev
=
&
pdev
->
dev
;
struct
npcm_wdt
*
wdt
;
struct
resource
*
res
;
int
irq
;
int
ret
;
wdt
=
devm_kzalloc
(
&
pdev
->
dev
,
sizeof
(
*
wdt
),
GFP_KERNEL
);
if
(
!
wdt
)
return
-
ENOMEM
;
res
=
platform_get_resource
(
pdev
,
IORESOURCE_MEM
,
0
);
wdt
->
reg
=
devm_ioremap_resource
(
dev
,
res
);
if
(
IS_ERR
(
wdt
->
reg
))
return
PTR_ERR
(
wdt
->
reg
);
irq
=
platform_get_irq
(
pdev
,
0
);
if
(
irq
<
0
)
return
irq
;
wdt
->
wdd
.
info
=
&
npcm_wdt_info
;
wdt
->
wdd
.
ops
=
&
npcm_wdt_ops
;
wdt
->
wdd
.
min_timeout
=
1
;
wdt
->
wdd
.
max_timeout
=
2750
;
wdt
->
wdd
.
parent
=
dev
;
wdt
->
wdd
.
timeout
=
86
;
watchdog_init_timeout
(
&
wdt
->
wdd
,
0
,
dev
);
/* Ensure timeout is able to be represented by the hardware */
npcm_wdt_set_timeout
(
&
wdt
->
wdd
,
wdt
->
wdd
.
timeout
);
if
(
npcm_is_running
(
&
wdt
->
wdd
))
{
/* Restart with the default or device-tree specified timeout */
npcm_wdt_start
(
&
wdt
->
wdd
);
set_bit
(
WDOG_HW_RUNNING
,
&
wdt
->
wdd
.
status
);
}
ret
=
devm_request_irq
(
dev
,
irq
,
npcm_wdt_interrupt
,
0
,
"watchdog"
,
wdt
);
if
(
ret
)
return
ret
;
ret
=
devm_watchdog_register_device
(
dev
,
&
wdt
->
wdd
);
if
(
ret
)
{
dev_err
(
dev
,
"failed to register watchdog
\n
"
);
return
ret
;
}
dev_info
(
dev
,
"NPCM watchdog driver enabled
\n
"
);
return
0
;
}
#ifdef CONFIG_OF
static
const
struct
of_device_id
npcm_wdt_match
[]
=
{
{.
compatible
=
"nuvoton,npcm750-wdt"
},
{},
};
MODULE_DEVICE_TABLE
(
of
,
npcm_wdt_match
);
#endif
static
struct
platform_driver
npcm_wdt_driver
=
{
.
probe
=
npcm_wdt_probe
,
.
driver
=
{
.
name
=
"npcm-wdt"
,
.
of_match_table
=
of_match_ptr
(
npcm_wdt_match
),
},
};
module_platform_driver
(
npcm_wdt_driver
);
MODULE_AUTHOR
(
"Joel Stanley"
);
MODULE_DESCRIPTION
(
"Watchdog driver for NPCM"
);
MODULE_LICENSE
(
"GPL v2"
);
drivers/watchdog/of_xilinx_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Watchdog Device Driver for Xilinx axi/xps_timebase_wdt
*
* (C) Copyright 2013 - 2014 Xilinx, Inc.
* (C) Copyright 2011 (Alejandro Cabrera <aldaya@gmail.com>)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#include <linux/clk.h>
...
...
@@ -323,4 +319,4 @@ module_platform_driver(xwdt_driver);
MODULE_AUTHOR
(
"Alejandro Cabrera <aldaya@gmail.com>"
);
MODULE_DESCRIPTION
(
"Xilinx Watchdog driver"
);
MODULE_LICENSE
(
"GPL
v2
"
);
MODULE_LICENSE
(
"GPL"
);
drivers/watchdog/st_lpc_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* ST's LPC Watchdog
*
...
...
@@ -5,11 +6,6 @@
*
* Author: David Paris <david.paris@st.com> for STMicroelectronics
* Lee Jones <lee.jones@linaro.org> for STMicroelectronics
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public Licence
* as published by the Free Software Foundation; either version
* 2 of the Licence, or (at your option) any later version.
*/
#include <linux/clk.h>
...
...
drivers/watchdog/tangox_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2015 Mans Rullgard <mans@mansr.com>
* SMP86xx/SMP87xx Watchdog driver
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*/
#include <linux/bitops.h>
...
...
drivers/watchdog/tegra_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*/
#include <linux/kernel.h>
...
...
drivers/watchdog/uniphier_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0
/*
* Watchdog driver for the UniPhier watchdog timer
*
* (c) Copyright 2014 Panasonic Corporation
* (c) Copyright 2016 Socionext Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <linux/bitops.h>
...
...
drivers/watchdog/wm831x_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Watchdog driver for the wm831x PMICs
*
* Copyright (C) 2009 Wolfson Microelectronics
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation
*/
#include <linux/module.h>
...
...
drivers/watchdog/wm8350_wdt.c
View file @
ab17ed70
// SPDX-License-Identifier: GPL-2.0+
/*
* Watchdog driver for the wm8350
*
* Copyright (C) 2007, 2008 Wolfson Microelectronics <linux@wolfsonmicro.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment