Commit b7c0fed5 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Daniel Lezcano
Browse files

dt-bindings: timer: renesas: tmu: Convert to json-schema



Convert the Renesas R-Mobile/R-Car Timer Unit (TMU) Device Tree binding
documentation to json-schema.

Document missing properties.
Update the example to match reality.

Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: default avatarNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Link: https://lore.kernel.org/r/20201110162014.3290109-3-geert+renesas@glider.be
parent db08e6c0
Loading
Loading
Loading
Loading
+0 −50
Original line number Diff line number Diff line
* Renesas R-Mobile/R-Car Timer Unit (TMU)

The TMU is a 32-bit timer/counter with configurable clock inputs and
programmable compare match.

Channels share hardware resources but their counter and compare match value
are independent. The TMU hardware supports up to three channels.

Required Properties:

  - compatible: must contain one or more of the following:
    - "renesas,tmu-r8a7740" for the r8a7740 TMU
    - "renesas,tmu-r8a774a1" for the r8a774A1 TMU
    - "renesas,tmu-r8a774b1" for the r8a774B1 TMU
    - "renesas,tmu-r8a774c0" for the r8a774C0 TMU
    - "renesas,tmu-r8a774e1" for the r8a774E1 TMU
    - "renesas,tmu-r8a7778" for the r8a7778 TMU
    - "renesas,tmu-r8a7779" for the r8a7779 TMU
    - "renesas,tmu-r8a77970" for the r8a77970 TMU
    - "renesas,tmu-r8a77980" for the r8a77980 TMU
    - "renesas,tmu" for any TMU.
      This is a fallback for the above renesas,tmu-* entries

  - reg: base address and length of the registers block for the timer module.

  - interrupts: interrupt-specifier for the timer, one per channel.

  - clocks: a list of phandle + clock-specifier pairs, one for each entry
    in clock-names.
  - clock-names: must contain "fck" for the functional clock.

Optional Properties:

  - #renesas,channels: number of channels implemented by the timer, must be 2
    or 3 (if not specified the value defaults to 3).


Example: R8A7779 (R-Car H1) TMU0 node

	tmu0: timer@ffd80000 {
		compatible = "renesas,tmu-r8a7779", "renesas,tmu";
		reg = <0xffd80000 0x30>;
		interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>,
			     <0 33 IRQ_TYPE_LEVEL_HIGH>,
			     <0 34 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&mstp0_clks R8A7779_CLK_TMU0>;
		clock-names = "fck";

		#renesas,channels = <3>;
	};
+99 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/timer/renesas,tmu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Renesas R-Mobile/R-Car Timer Unit (TMU)

maintainers:
  - Geert Uytterhoeven <geert+renesas@glider.be>
  - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

description:
  The TMU is a 32-bit timer/counter with configurable clock inputs and
  programmable compare match.

  Channels share hardware resources but their counter and compare match value
  are independent. The TMU hardware supports up to three channels.

properties:
  compatible:
    items:
      - enum:
          - renesas,tmu-r8a7740  # R-Mobile A1
          - renesas,tmu-r8a774a1 # RZ/G2M
          - renesas,tmu-r8a774b1 # RZ/G2N
          - renesas,tmu-r8a774c0 # RZ/G2E
          - renesas,tmu-r8a774e1 # RZ/G2H
          - renesas,tmu-r8a7778  # R-Car M1A
          - renesas,tmu-r8a7779  # R-Car H1
          - renesas,tmu-r8a77970 # R-Car V3M
          - renesas,tmu-r8a77980 # R-Car V3H
      - const: renesas,tmu

  reg:
    maxItems: 1

  interrupts:
    minItems: 2
    maxItems: 3

  clocks:
    maxItems: 1

  clock-names:
    const: fck

  power-domains:
    maxItems: 1

  resets:
    maxItems: 1

  '#renesas,channels':
    description:
      Number of channels implemented by the timer.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [ 2, 3 ]
    default: 3

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - power-domains

if:
  not:
    properties:
      compatible:
        contains:
          enum:
            - renesas,tmu-r8a7740
            - renesas,tmu-r8a7778
            - renesas,tmu-r8a7779
then:
  required:
    - resets

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/r8a7779-clock.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/power/r8a7779-sysc.h>
    tmu0: timer@ffd80000 {
            compatible = "renesas,tmu-r8a7779", "renesas,tmu";
            reg = <0xffd80000 0x30>;
            interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
            clocks = <&mstp0_clks R8A7779_CLK_TMU0>;
            clock-names = "fck";
            power-domains = <&sysc R8A7779_PD_ALWAYS_ON>;
            #renesas,channels = <3>;
    };