dt-bindings: watchdog: factor out RZ/V2H(P) watchdog

Renesas created different watchdog IPs but they are all handled in the
same binding documentation. This leads to a lot of conditional handling
which makes it unnecessarily hard to add new items. Factor out the
RZ/V2H(P) watchdog to make handling easier.

Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
This commit is contained in:
Wolfram Sang 2025-10-09 12:45:02 +02:00 committed by Wim Van Sebroeck
parent 909c8ea1ad
commit fcba285525
2 changed files with 104 additions and 92 deletions

View File

@ -0,0 +1,99 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/renesas,r9a09g057-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Renesas RZ/V2H(P) Watchdog Timer (WDT) Controller
maintainers:
- Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
properties:
compatible:
oneOf:
- items:
- enum:
- renesas,r9a09g047-wdt # RZ/G3E
- renesas,r9a09g056-wdt # RZ/V2N
- const: renesas,r9a09g057-wdt # RZ/V2H(P)
- items:
- const: renesas,r9a09g087-wdt # RZ/N2H
- const: renesas,r9a09g077-wdt # RZ/T2H
- enum:
- renesas,r9a09g057-wdt # RZ/V2H(P)
- renesas,r9a09g077-wdt # RZ/T2H
reg:
minItems: 1
maxItems: 2
clocks:
minItems: 1
items:
- description: Register access clock
- description: Main clock
clock-names:
minItems: 1
items:
- const: pclk
- const: oscclk
power-domains:
maxItems: 1
resets:
maxItems: 1
timeout-sec: true
required:
- compatible
- reg
- clocks
- clock-names
- power-domains
allOf:
- $ref: watchdog.yaml#
- if:
properties:
compatible:
contains:
const: renesas,r9a09g057-wdt
then:
properties:
reg:
maxItems: 1
clocks:
minItems: 2
clock-names:
minItems: 2
else:
properties:
clocks:
maxItems: 1
clock-names:
maxItems: 1
reg:
minItems: 2
resets: false
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/renesas,r9a09g057-cpg.h>
watchdog@11c00400 {
compatible = "renesas,r9a09g057-wdt";
reg = <0x11c00400 0x400>;
clocks = <&cpg CPG_MOD 0x4b>, <&cpg CPG_MOD 0x4c>;
clock-names = "pclk", "oscclk";
resets = <&cpg 0x75>;
power-domains = <&cpg>;
};

View File

@ -51,38 +51,14 @@ properties:
- renesas,r8a779h0-wdt # R-Car V4M
- const: renesas,rcar-gen4-wdt # R-Car Gen4
- items:
- enum:
- renesas,r9a09g047-wdt # RZ/G3E
- renesas,r9a09g056-wdt # RZ/V2N
- 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:
minItems: 1
maxItems: 2
maxItems: 1
interrupts:
maxItems: 1
clocks:
minItems: 1
items:
- description: Register access clock
- description: Main clock
clock-names:
minItems: 1
items:
- const: pclk
- const: oscclk
maxItems: 1
power-domains:
maxItems: 1
@ -96,76 +72,13 @@ required:
- compatible
- reg
- clocks
- interrupts
- power-domains
- resets
allOf:
- $ref: watchdog.yaml#
- if:
not:
properties:
compatible:
contains:
enum:
- renesas,r9a09g077-wdt
then:
required:
- power-domains
- resets
- if:
properties:
compatible:
contains:
enum:
- renesas,r9a09g057-wdt
then:
properties:
clocks:
minItems: 2
clock-names:
minItems: 2
required:
- clock-names
else:
properties:
clocks:
maxItems: 1
- if:
properties:
compatible:
contains:
enum:
- renesas,r9a09g057-wdt
- renesas,r9a09g077-wdt
then:
properties:
interrupts: false
interrupt-names: false
else:
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: