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

Commit 2f63251e authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog: (28 commits)
  [WATCHDOG] Fix pcwd_init_module crash
  [WATCHDOG] ICH9 support for iTCO_wdt
  [WATCHDOG] 631xESB/632xESB support for iTCO_wdt - add all LPC bridges
  [WATCHDOG] 631xESB/632xESB support for iTCO_wdt
  [WATCHDOG] omap_wdt.c - default error for IOCTL is -ENOTTY
  [WATCHDOG] Return value of nonseekable_open
  [WATCHDOG] mv64x60_wdt: Rework the timeout register manipulation
  [WATCHDOG] mv64x60_wdt: disable watchdog timer when driver is probed
  [WATCHDOG] mv64x60_wdt: Support the WDIOF_MAGICCLOSE feature
  [WATCHDOG] mv64x60_wdt: Add a module parameter to change nowayout setting
  [WATCHDOG] mv64x60_wdt: Add WDIOC_SETOPTIONS ioctl support
  [WATCHDOG] mv64x60_wdt: Support for WDIOC_SETTIMEOUT ioctl
  [WATCHDOG] mv64x60_wdt: Fix WDIOC_GETTIMEOUT return value
  [WATCHDOG] mv64x60_wdt: Check return value of nonseekable_open
  [WATCHDOG] mv64x60_wdt: Add arch/powerpc platform support
  [WATCHDOG] mv64x60_wdt: Get register address from platform data
  [WATCHDOG] mv64x60_wdt: set up platform_device in platform code
  [WATCHDOG] ensure mouse and keyboard ignored in w83627hf_wdt
  [WATCHDOG] s3c2410_wdt: fixup after arch include moves
  [WATCHDOG] git-watchdog-typo
  ...
parents d6dd9e93 647e50f3
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -756,6 +756,14 @@ L: uclinux-dist-devel@blackfin.uclinux.org (subscribers-only)
W:	http://blackfin.uclinux.org
S:	Supported

BLACKFIN WATCHDOG DRIVER
P:	Mike Frysinger
M:	michael.frysinger@analog.com
M:	vapier.adi@gmail.com
L:	uclinux-dist-devel@blackfin.uclinux.org (subscribers-only)
W:	http://blackfin.uclinux.org
S:	Supported

BAYCOM/HDLCDRV DRIVERS FOR AX.25
P:	Thomas Sailer
M:	t.sailer@alumni.ethz.ch
+6 −0
Original line number Diff line number Diff line
@@ -207,6 +207,12 @@
			interrupt-parent = <&/mv64x60/pic>;
		};

		wdt@b410 {			/* watchdog timer */
			compatible = "marvell,mv64x60-wdt";
			reg = <b410 8>;
			timeout = <a>;		/* wdt timeout in seconds */
		};

		i2c@c000 {
			device_type = "i2c";
			compatible = "marvell,mv64x60-i2c";
+64 −0
Original line number Diff line number Diff line
@@ -390,6 +390,61 @@ static int __init mv64x60_i2c_device_setup(struct device_node *np, int id)
	return err;
}

/*
 * Create mv64x60_wdt platform devices
 */
static int __init mv64x60_wdt_device_setup(struct device_node *np, int id)
{
	struct resource r;
	struct platform_device *pdev;
	struct mv64x60_wdt_pdata pdata;
	const unsigned int *prop;
	int err;

	err = of_address_to_resource(np, 0, &r);
	if (err)
		return err;

	memset(&pdata, 0, sizeof(pdata));

	prop = of_get_property(np, "timeout", NULL);
	if (!prop)
		return -ENODEV;
	pdata.timeout = *prop;

	np = of_get_parent(np);
	if (!np)
		return -ENODEV;

	prop = of_get_property(np, "clock-frequency", NULL);
	of_node_put(np);
	if (!prop)
		return -ENODEV;
	pdata.bus_clk = *prop / 1000000; /* wdt driver wants freq in MHz */

	pdev = platform_device_alloc(MV64x60_WDT_NAME, id);
	if (!pdev)
		return -ENOMEM;

	err = platform_device_add_resources(pdev, &r, 1);
	if (err)
		goto error;

	err = platform_device_add_data(pdev, &pdata, sizeof(pdata));
	if (err)
		goto error;

	err = platform_device_add(pdev);
	if (err)
		goto error;

	return 0;

error:
	platform_device_put(pdev);
	return err;
}

static int __init mv64x60_device_setup(void)
{
	struct device_node *np = NULL;
@@ -414,6 +469,15 @@ static int __init mv64x60_device_setup(void)
		if ((err = mv64x60_i2c_device_setup(np, id)))
			goto error;

	/* support up to one watchdog timer */
	np = of_find_compatible_node(np, NULL, "marvell,mv64x60-wdt");
	if (np) {
		if ((err = mv64x60_wdt_device_setup(np, id)))
			goto error;
		of_node_put(np);
	}


	return 0;

error:
+29 −0
Original line number Diff line number Diff line
@@ -441,6 +441,32 @@ static struct platform_device i2c_device = {
};
#endif

#ifdef CONFIG_WATCHDOG
static struct mv64x60_wdt_pdata mv64x60_wdt_pdata = {
	.timeout		= 10,  /* default watchdog expiry in seconds */
	.bus_clk		= 133, /* default bus clock in MHz */
};

static struct resource mv64x60_wdt_resources[] = {
	[0] = {
		.name	= "mv64x60 wdt base",
		.start	= MV64x60_WDT_WDC,
		.end	= MV64x60_WDT_WDC + 8 - 1, /* two 32-bit registers */
		.flags	= IORESOURCE_MEM,
	},
};

static struct platform_device wdt_device = {
	.name		= MV64x60_WDT_NAME,
	.id		= 0,
	.num_resources	= ARRAY_SIZE(mv64x60_wdt_resources),
	.resource	= mv64x60_wdt_resources,
	.dev = {
		.platform_data = &mv64x60_wdt_pdata,
	},
};
#endif

#if defined(CONFIG_SYSFS) && !defined(CONFIG_GT64260)
static struct mv64xxx_pdata mv64xxx_pdata = {
	.hs_reg_valid	= 0,
@@ -476,6 +502,9 @@ static struct platform_device *mv64x60_pd_devs[] __initdata = {
#ifdef	CONFIG_I2C_MV64XXX
	&i2c_device,
#endif
#ifdef	CONFIG_MV64X60_WDT
	&wdt_device,
#endif
#if defined(CONFIG_SYSFS) && !defined(CONFIG_GT64260)
	&mv64xxx_device,
#endif
+1 −0
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ obj-y += i2c/
obj-$(CONFIG_W1)		+= w1/
obj-$(CONFIG_POWER_SUPPLY)	+= power/
obj-$(CONFIG_HWMON)		+= hwmon/
obj-$(CONFIG_WATCHDOG)		+= char/watchdog/
obj-$(CONFIG_PHONE)		+= telephony/
obj-$(CONFIG_MD)		+= md/
obj-$(CONFIG_BT)		+= bluetooth/
Loading