Commit 169c9d06 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'linux-watchdog-6.18-rc1' of git://www.linux-watchdog.org/linux-watchdog

Pull watchdog updates from Wim Van Sebroeck:

 - renesas,wdt: Add support for RZ/T2H and RZ/N2H

 - Add SMARC-sAM67 support

 - Several small fixes and improvements

* tag 'linux-watchdog-6.18-rc1' of git://www.linux-watchdog.org/linux-watchdog:
  watchdog/hpwdt New maintianer
  dt-bindings: watchdog: add SMARC-sAM67 support
  watchdog: mpc8xxx_wdt: Reload the watchdog timer when enabling the watchdog
  watchdog: visconti: don't print superfluous errors
  watchdog: rzv2h_wdt: don't print superfluous errors
  watchdog: rzg2l_wdt: don't print superfluous errors
  watchdog: s3c2410_wdt: exynosautov9: Enable supported features
  watchdog: s3c2410_wdt: exynosautov920: Enable QUIRK_HAS_32BIT_CNT
  watchdog: s3c2410_wdt: Increase max timeout value of watchdog
  watchdog: s3c2410_wdt: Fix max_timeout being calculated larger
  watchdog: s3c2410_wdt: Replace hardcoded values with macro definitions
  watchdog: rzv2h: Improve error strings and add newlines
  watchdog: rzv2h: Add support for RZ/T2H
  watchdog: rzv2h: Add support for configurable count clock source
  watchdog: rzv2h: Make "oscclk" and reset controller optional
  watchdog: rzv2h: Obtain clock-divider and timeout values from OF match data
  dt-bindings: watchdog: renesas,wdt: Add support for RZ/T2H and RZ/N2H
  watchdog: intel_oc_wdt: Do not try to write into const memory
parents 2f2c7254 c64c2a50
Loading
Loading
Loading
Loading
+33 −3
Original line number Diff line number Diff line
@@ -81,10 +81,17 @@ properties:
              - renesas,r9a09g056-wdt # RZ/V2N
          - const: renesas,r9a09g057-wdt # RZ/V2H(P)

      - const: renesas,r9a09g057-wdt       # RZ/V2H(P)
      - enum:
          - renesas,r9a09g057-wdt    # RZ/V2H(P)
          - renesas,r9a09g077-wdt    # RZ/T2H

      - items:
          - const: renesas,r9a09g087-wdt # RZ/N2H
          - const: renesas,r9a09g077-wdt # RZ/T2H

  reg:
    maxItems: 1
    minItems: 1
    maxItems: 2

  interrupts:
    minItems: 1
@@ -132,6 +139,7 @@ allOf:
          compatible:
            contains:
              enum:
                - renesas,r9a09g077-wdt
                - renesas,rza-wdt
                - renesas,rzn1-wdt
    then:
@@ -183,7 +191,9 @@ allOf:
      properties:
        compatible:
          contains:
            const: renesas,r9a09g057-wdt
            enum:
              - renesas,r9a09g057-wdt
              - renesas,r9a09g077-wdt
    then:
      properties:
        interrupts: false
@@ -192,6 +202,26 @@ allOf:
      required:
        - interrupts

  - if:
      properties:
        compatible:
          contains:
            const: renesas,r9a09g077-wdt
    then:
      properties:
        resets: false
        clock-names:
          maxItems: 1
        reg:
          minItems: 2
      required:
        - clock-names
        - power-domains
    else:
      properties:
        reg:
          maxItems: 1

additionalProperties: false

examples:
+1 −1
Original line number Diff line number Diff line
@@ -10961,7 +10961,7 @@ S: Supported
F:	drivers/misc/hpilo.[ch]
HEWLETT PACKARD ENTERPRISE ILO NMI WATCHDOG DRIVER
M:	Jerry Hoemann <jerry.hoemann@hpe.com>
M:	Craig Lamparter <craig.lamparter@hpe.com>
S:	Supported
F:	Documentation/watchdog/hpwdt.rst
F:	drivers/watchdog/hpwdt.c
+4 −4
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@
struct intel_oc_wdt {
	struct watchdog_device wdd;
	struct resource *ctrl_res;
	struct watchdog_info info;
	bool locked;
};

@@ -115,7 +116,6 @@ static const struct watchdog_ops intel_oc_wdt_ops = {

static int intel_oc_wdt_setup(struct intel_oc_wdt *oc_wdt)
{
	struct watchdog_info *info;
	unsigned long val;

	val = inl(INTEL_OC_WDT_CTRL_REG(oc_wdt));
@@ -134,7 +134,6 @@ static int intel_oc_wdt_setup(struct intel_oc_wdt *oc_wdt)
		set_bit(WDOG_HW_RUNNING, &oc_wdt->wdd.status);

		if (oc_wdt->locked) {
			info = (struct watchdog_info *)&intel_oc_wdt_info;
			/*
			 * Set nowayout unconditionally as we cannot stop
			 * the watchdog.
@@ -145,7 +144,7 @@ static int intel_oc_wdt_setup(struct intel_oc_wdt *oc_wdt)
			 * and inform the core we can't change it.
			 */
			oc_wdt->wdd.timeout = (val & INTEL_OC_WDT_TOV) + 1;
			info->options &= ~WDIOF_SETTIMEOUT;
			oc_wdt->info.options &= ~WDIOF_SETTIMEOUT;

			dev_info(oc_wdt->wdd.parent,
				 "Register access locked, heartbeat fixed at: %u s\n",
@@ -193,7 +192,8 @@ static int intel_oc_wdt_probe(struct platform_device *pdev)
	wdd->min_timeout = INTEL_OC_WDT_MIN_TOV;
	wdd->max_timeout = INTEL_OC_WDT_MAX_TOV;
	wdd->timeout = INTEL_OC_WDT_DEF_TOV;
	wdd->info = &intel_oc_wdt_info;
	oc_wdt->info = intel_oc_wdt_info;
	wdd->info = &oc_wdt->info;
	wdd->ops = &intel_oc_wdt_ops;
	wdd->parent = dev;

+2 −0
Original line number Diff line number Diff line
@@ -100,6 +100,8 @@ static int mpc8xxx_wdt_start(struct watchdog_device *w)
	ddata->swtc = tmp >> 16;
	set_bit(WDOG_HW_RUNNING, &ddata->wdd.status);

	mpc8xxx_wdt_keepalive(ddata);

	return 0;
}

+1 −3
Original line number Diff line number Diff line
@@ -310,9 +310,7 @@ static int rzg2l_wdt_probe(struct platform_device *pdev)
	watchdog_set_nowayout(&priv->wdev, nowayout);
	watchdog_stop_on_unregister(&priv->wdev);

	ret = watchdog_init_timeout(&priv->wdev, 0, dev);
	if (ret)
		dev_warn(dev, "Specified timeout invalid, using default");
	watchdog_init_timeout(&priv->wdev, 0, dev);

	return devm_watchdog_register_device(&pdev->dev, &priv->wdev);
}
Loading