Message ID | 20220823093233.8577-2-phil.edworthy@renesas.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Geert Uytterhoeven |
Headers | show |
Series | arm64: renesas: Add RZ/V2M watchdog support | expand |
On Tue, Aug 23, 2022 at 10:32:32AM +0100, Phil Edworthy wrote: > Add the documentation for the r9a09g011 SoC, but in doing so also > reorganise the doc to make it easier to read. > Additionally, make the binding require an interrupt to be specified. > Whilst the driver does not need an interrupt, all of the SoCs that use > this binding actually provide one. > > Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com> > Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com> > Reviewed-by: Rob Herring <robh@kernel.org> > Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Reviewed-by: Guenter Roeck <linux@roeck-us.net> > --- > v4: > - No change > v3: > - Add check for too many interrupts or clocks > v2: > - Added minItems for interrupt-names and clock-names > --- > .../bindings/watchdog/renesas,wdt.yaml | 73 +++++++++++++------ > 1 file changed, 52 insertions(+), 21 deletions(-) > > diff --git a/Documentation/devicetree/bindings/watchdog/renesas,wdt.yaml b/Documentation/devicetree/bindings/watchdog/renesas,wdt.yaml > index a8d7dde5271b..0f5675d695d6 100644 > --- a/Documentation/devicetree/bindings/watchdog/renesas,wdt.yaml > +++ b/Documentation/devicetree/bindings/watchdog/renesas,wdt.yaml > @@ -31,6 +31,11 @@ properties: > - renesas,r9a07g054-wdt # RZ/V2L > - const: renesas,rzg2l-wdt > > + - items: > + - enum: > + - renesas,r9a09g011-wdt # RZ/V2M > + - const: renesas,rzv2m-wdt # RZ/V2M > + > - items: > - enum: > - renesas,r8a7742-wdt # RZ/G1H > @@ -70,13 +75,29 @@ properties: > reg: > maxItems: 1 > > - interrupts: true > - > - interrupt-names: true > - > - clocks: true > - > - clock-names: true > + interrupts: > + minItems: 1 > + items: > + - description: Timeout > + - description: Parity error > + > + interrupt-names: > + minItems: 1 > + items: > + - const: wdt > + - const: perrout > + > + clocks: > + minItems: 1 > + items: > + - description: Register access clock > + - description: Main clock > + > + clock-names: > + minItems: 1 > + items: > + - const: pclk > + - const: oscclk > > power-domains: > maxItems: 1 > @@ -89,6 +110,7 @@ properties: > required: > - compatible > - reg > + - interrupts > - clocks > > allOf: > @@ -113,31 +135,38 @@ allOf: > contains: > enum: > - renesas,rzg2l-wdt > + - renesas,rzv2m-wdt > then: > properties: > - interrupts: > - maxItems: 2 > - interrupt-names: > - items: > - - const: wdt > - - const: perrout > clocks: > - items: > - - description: Register access clock > - - description: Main clock > + minItems: 2 > clock-names: > - items: > - - const: pclk > - - const: oscclk > + minItems: 2 > required: > - clock-names > + else: > + properties: > + clocks: > + maxItems: 1 > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - renesas,rzg2l-wdt > + then: > + properties: > + interrupts: > + minItems: 2 > + interrupt-names: > + minItems: 2 > + required: > - interrupt-names > else: > properties: > interrupts: > maxItems: 1 > - clocks: > - maxItems: 1 > > additionalProperties: false > > @@ -145,9 +174,11 @@ examples: > - | > #include <dt-bindings/clock/r8a7795-cpg-mssr.h> > #include <dt-bindings/power/r8a7795-sysc.h> > + #include <dt-bindings/interrupt-controller/arm-gic.h> > wdt0: watchdog@e6020000 { > compatible = "renesas,r8a7795-wdt", "renesas,rcar-gen3-wdt"; > reg = <0xe6020000 0x0c>; > + interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; > clocks = <&cpg CPG_MOD 402>; > power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; > resets = <&cpg 402>;
diff --git a/Documentation/devicetree/bindings/watchdog/renesas,wdt.yaml b/Documentation/devicetree/bindings/watchdog/renesas,wdt.yaml index a8d7dde5271b..0f5675d695d6 100644 --- a/Documentation/devicetree/bindings/watchdog/renesas,wdt.yaml +++ b/Documentation/devicetree/bindings/watchdog/renesas,wdt.yaml @@ -31,6 +31,11 @@ properties: - renesas,r9a07g054-wdt # RZ/V2L - const: renesas,rzg2l-wdt + - items: + - enum: + - renesas,r9a09g011-wdt # RZ/V2M + - const: renesas,rzv2m-wdt # RZ/V2M + - items: - enum: - renesas,r8a7742-wdt # RZ/G1H @@ -70,13 +75,29 @@ properties: reg: maxItems: 1 - interrupts: true - - interrupt-names: true - - clocks: true - - clock-names: true + interrupts: + minItems: 1 + items: + - description: Timeout + - description: Parity error + + interrupt-names: + minItems: 1 + items: + - const: wdt + - const: perrout + + clocks: + minItems: 1 + items: + - description: Register access clock + - description: Main clock + + clock-names: + minItems: 1 + items: + - const: pclk + - const: oscclk power-domains: maxItems: 1 @@ -89,6 +110,7 @@ properties: required: - compatible - reg + - interrupts - clocks allOf: @@ -113,31 +135,38 @@ allOf: contains: enum: - renesas,rzg2l-wdt + - renesas,rzv2m-wdt then: properties: - interrupts: - maxItems: 2 - interrupt-names: - items: - - const: wdt - - const: perrout clocks: - items: - - description: Register access clock - - description: Main clock + minItems: 2 clock-names: - items: - - const: pclk - - const: oscclk + minItems: 2 required: - clock-names + else: + properties: + clocks: + maxItems: 1 + + - if: + properties: + compatible: + contains: + enum: + - renesas,rzg2l-wdt + then: + properties: + interrupts: + minItems: 2 + interrupt-names: + minItems: 2 + required: - interrupt-names else: properties: interrupts: maxItems: 1 - clocks: - maxItems: 1 additionalProperties: false @@ -145,9 +174,11 @@ examples: - | #include <dt-bindings/clock/r8a7795-cpg-mssr.h> #include <dt-bindings/power/r8a7795-sysc.h> + #include <dt-bindings/interrupt-controller/arm-gic.h> wdt0: watchdog@e6020000 { compatible = "renesas,r8a7795-wdt", "renesas,rcar-gen3-wdt"; reg = <0xe6020000 0x0c>; + interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cpg CPG_MOD 402>; power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; resets = <&cpg 402>;