Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dfb94547 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull watchdog updates from Wim Van Sebroeck:
 "This contains:
   - addition of the Intel MID watchdog
   - removal of W83697HF and W83697UG drivers (code was merged into
     w83627hf_wdt driver)
   - addition of Armada 375/380 SoC support
   - conversion of imx2_wdt to regmap API and to watchdog core API
   - lots of other small improvements and fixes"

[ Wim was also tagged by gmail as a spammer, but not delayed by days
  unlike Ben ]

* git://www.linux-watchdog.org/linux-watchdog: (25 commits)
  x86: intel-mid: add watchdog platform code for Merrifield
  watchdog: add Intel MID watchdog driver support
  watchdog: sp805: Set watchdog_device->timeout from ->set_timeout()
  booke/watchdog: refine and clean up the codes
  watchdog: iop_wdt only builds for mach-iop13xx
  watchdog: Remove drivers for W83697HF and W83697UG
  watchdog: w83627hf_wdt: Add early_disable module parameter
  ARM: mvebu: Add A375/A380 watchdog binding documentation
  watchdog: orion: Add Armada 375/380 SoC support
  watchdog: orion: Introduce per-SoC enabled() function
  watchdog: orion: Introduce per-SoC stop() function
  watchdog: orion: Remove unneeded atomic access
  watchdog: orion: Introduce a SoC-specific RSTOUT mapping
  watchdog: orion: Move the register ioremap'ing to its own function
  watchdog: xilinx: Make of_device_id array const
  watchdog: imx2_wdt: convert to watchdog core api
  watchdog: imx2_wdt: convert to use regmap API.
  watchdog: imx2_wdt: Sort the header files alphabetically
  watchdog: ath79_wdt: switch to clk_prepare/clk_disable
  watchdog: ath79_wdt: avoid spurious restarts on AR934x
  ...
parents c5aec4c7 78a3bb9e
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -5,11 +5,18 @@ Required Properties:
- Compatibility : "marvell,orion-wdt"
		  "marvell,armada-370-wdt"
		  "marvell,armada-xp-wdt"
		  "marvell,armada-375-wdt"
		  "marvell,armada-380-wdt"

- reg		: Should contain two entries: first one with the
		  timer control address, second one with the
		  rstout enable address.

For "marvell,armada-375-wdt" and "marvell,armada-380-wdt":

- reg		: A third entry is mandatory and should contain the
                  shared mask/unmask RSTOUT address.

Optional properties:

- interrupts	: Contains the IRQ for watchdog expiration
+0 −27
Original line number Diff line number Diff line
@@ -728,33 +728,6 @@ static int powerpc_debugfs_init(void)
arch_initcall(powerpc_debugfs_init);
#endif

#ifdef CONFIG_BOOKE_WDT
extern u32 booke_wdt_enabled;
extern u32 booke_wdt_period;

/* Checks wdt=x and wdt_period=xx command-line option */
notrace int __init early_parse_wdt(char *p)
{
	if (p && strncmp(p, "0", 1) != 0)
		booke_wdt_enabled = 1;

	return 0;
}
early_param("wdt", early_parse_wdt);

int __init early_parse_wdt_period(char *p)
{
	unsigned long ret;
	if (p) {
		if (!kstrtol(p, 0, &ret))
			booke_wdt_period = ret;
	}

	return 0;
}
early_param("wdt_period", early_parse_wdt_period);
#endif	/* CONFIG_BOOKE_WDT */

void ppc_printk_progress(char *s, unsigned short hex)
{
	pr_info("%s\n", s);
+1 −0
Original line number Diff line number Diff line
@@ -20,3 +20,4 @@ obj-$(subst m,y,$(CONFIG_DRM_MEDFIELD)) += platform_tc35876x.o
obj-$(subst m,y,$(CONFIG_SERIAL_MRST_MAX3110)) += platform_max3111.o
# MISC Devices
obj-$(subst m,y,$(CONFIG_KEYBOARD_GPIO)) += platform_gpio_keys.o
obj-$(subst m,y,$(CONFIG_INTEL_MID_WATCHDOG)) += platform_wdt.o
+72 −0
Original line number Diff line number Diff line
/*
 * platform_wdt.c: Watchdog platform library file
 *
 * (C) Copyright 2014 Intel Corporation
 * Author: David Cohen <david.a.cohen@linux.intel.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; version 2
 * of the License.
 */

#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/platform_device.h>
#include <linux/platform_data/intel-mid_wdt.h>
#include <asm/intel-mid.h>
#include <asm/io_apic.h>

#define TANGIER_EXT_TIMER0_MSI 15

static struct platform_device wdt_dev = {
	.name = "intel_mid_wdt",
	.id = -1,
};

static int tangier_probe(struct platform_device *pdev)
{
	int ioapic;
	int irq;
	struct intel_mid_wdt_pdata *pdata = pdev->dev.platform_data;
	struct io_apic_irq_attr irq_attr = { 0 };

	if (!pdata)
		return -EINVAL;

	irq = pdata->irq;
	ioapic = mp_find_ioapic(irq);
	if (ioapic >= 0) {
		int ret;
		irq_attr.ioapic = ioapic;
		irq_attr.ioapic_pin = irq;
		irq_attr.trigger = 1;
		/* irq_attr.polarity = 0; -> Active high */
		ret = io_apic_set_pci_routing(NULL, irq, &irq_attr);
		if (ret)
			return ret;
	} else {
		dev_warn(&pdev->dev, "cannot find interrupt %d in ioapic\n",
			 irq);
		return -EINVAL;
	}

	return 0;
}

static struct intel_mid_wdt_pdata tangier_pdata = {
	.irq = TANGIER_EXT_TIMER0_MSI,
	.probe = tangier_probe,
};

static int __init register_mid_wdt(void)
{
	if (intel_mid_identify_cpu() == INTEL_MID_CPU_CHIP_TANGIER) {
		wdt_dev.dev.platform_data = &tangier_pdata;
		return platform_device_register(&wdt_dev);
	}

	return -ENODEV;
}

rootfs_initcall(register_mid_wdt);
+17 −32
Original line number Diff line number Diff line
@@ -272,7 +272,7 @@ config PNX4008_WATCHDOG

config IOP_WATCHDOG
	tristate "IOP Watchdog"
	depends on PLAT_IOP
	depends on ARCH_IOP13XX
	select WATCHDOG_NOWAYOUT if (ARCH_IOP32X || ARCH_IOP33X)
	help
	  Say Y here if to include support for the watchdog timer
@@ -378,6 +378,8 @@ config MAX63XX_WATCHDOG
config IMX2_WDT
	tristate "IMX2+ Watchdog"
	depends on ARCH_MXC
	select REGMAP_MMIO
	select WATCHDOG_CORE
	help
	  This is the driver for the hardware watchdog
	  on the Freescale IMX2 and later processors.
@@ -663,6 +665,19 @@ config INTEL_SCU_WATCHDOG

	  To compile this driver as a module, choose M here.

config INTEL_MID_WATCHDOG
	tristate "Intel MID Watchdog Timer"
	depends on X86_INTEL_MID
	select WATCHDOG_CORE
	---help---
	  Watchdog timer driver built into the Intel SCU for Intel MID
	  Platforms.

	  This driver currently supports only the watchdog evolution
	  implementation in SCU, available for Merrifield generation.

	  To compile this driver as a module, choose M here.

config ITCO_WDT
	tristate "Intel TCO Timer/Watchdog"
	depends on (X86 || IA64) && PCI
@@ -835,7 +850,7 @@ config 60XX_WDT

config SBC8360_WDT
	tristate "SBC8360 Watchdog Timer"
	depends on X86
	depends on X86_32
	---help---

	  This is the driver for the hardware watchdog on the SBC8360 Single
@@ -938,36 +953,6 @@ config W83627HF_WDT

	  Most people will say N.

config W83697HF_WDT
	tristate "W83697HF/W83697HG Watchdog Timer"
	depends on X86
	---help---
	  This is the driver for the hardware watchdog on the W83697HF/HG
	  chipset as used in Dedibox/VIA motherboards (and likely others).
	  This watchdog simply watches your kernel to make sure it doesn't
	  freeze, and if it does, it reboots your computer after a certain
	  amount of time.

	  To compile this driver as a module, choose M here: the
	  module will be called w83697hf_wdt.

	  Most people will say N.

config W83697UG_WDT
	tristate "W83697UG/W83697UF Watchdog Timer"
	depends on X86
	---help---
	  This is the driver for the hardware watchdog on the W83697UG/UF
	  chipset as used in MSI Fuzzy CX700 VIA motherboards (and likely others).
	  This watchdog simply watches your kernel to make sure it doesn't
	  freeze, and if it does, it reboots your computer after a certain
	  amount of time.

	  To compile this driver as a module, choose M here: the
	  module will be called w83697ug_wdt.

	  Most people will say N.

config W83877F_WDT
	tristate "W83877F (EMACS) Watchdog Timer"
	depends on X86
Loading