Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/timer/renesas,cmt.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Renesas Compare Match Timer (CMT)
0008 
0009 maintainers:
0010   - Geert Uytterhoeven <geert+renesas@glider.be>
0011   - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
0012 
0013 description:
0014   The CMT is a multi-channel 16/32/48-bit timer/counter with configurable clock
0015   inputs and programmable compare match.
0016 
0017   Channels share hardware resources but their counter and compare match values
0018   are independent. A particular CMT instance can implement only a subset of the
0019   channels supported by the CMT model. Channel indices represent the hardware
0020   position of the channel in the CMT and don't match the channel numbers in the
0021   datasheets.
0022 
0023 properties:
0024   compatible:
0025     oneOf:
0026       - items:
0027           - enum:
0028               - renesas,r8a7740-cmt0      # 32-bit CMT0 on R-Mobile A1
0029               - renesas,r8a7740-cmt1      # 48-bit CMT1 on R-Mobile A1
0030               - renesas,r8a7740-cmt2      # 32-bit CMT2 on R-Mobile A1
0031               - renesas,r8a7740-cmt3      # 32-bit CMT3 on R-Mobile A1
0032               - renesas,r8a7740-cmt4      # 32-bit CMT4 on R-Mobile A1
0033               - renesas,sh73a0-cmt0       # 32-bit CMT0 on SH-Mobile AG5
0034               - renesas,sh73a0-cmt1       # 48-bit CMT1 on SH-Mobile AG5
0035               - renesas,sh73a0-cmt2       # 32-bit CMT2 on SH-Mobile AG5
0036               - renesas,sh73a0-cmt3       # 32-bit CMT3 on SH-Mobile AG5
0037               - renesas,sh73a0-cmt4       # 32-bit CMT4 on SH-Mobile AG5
0038 
0039       - items:
0040           - enum:
0041               - renesas,r8a73a4-cmt0      # 32-bit CMT0 on R-Mobile APE6
0042               - renesas,r8a7742-cmt0      # 32-bit CMT0 on RZ/G1H
0043               - renesas,r8a7743-cmt0      # 32-bit CMT0 on RZ/G1M
0044               - renesas,r8a7744-cmt0      # 32-bit CMT0 on RZ/G1N
0045               - renesas,r8a7745-cmt0      # 32-bit CMT0 on RZ/G1E
0046               - renesas,r8a77470-cmt0     # 32-bit CMT0 on RZ/G1C
0047               - renesas,r8a7790-cmt0      # 32-bit CMT0 on R-Car H2
0048               - renesas,r8a7791-cmt0      # 32-bit CMT0 on R-Car M2-W
0049               - renesas,r8a7792-cmt0      # 32-bit CMT0 on R-Car V2H
0050               - renesas,r8a7793-cmt0      # 32-bit CMT0 on R-Car M2-N
0051               - renesas,r8a7794-cmt0      # 32-bit CMT0 on R-Car E2
0052           - const: renesas,rcar-gen2-cmt0 # 32-bit CMT0 on R-Mobile APE6, R-Car Gen2 and RZ/G1
0053 
0054       - items:
0055           - enum:
0056               - renesas,r8a73a4-cmt1      # 48-bit CMT1 on R-Mobile APE6
0057               - renesas,r8a7742-cmt1      # 48-bit CMT1 on RZ/G1H
0058               - renesas,r8a7743-cmt1      # 48-bit CMT1 on RZ/G1M
0059               - renesas,r8a7744-cmt1      # 48-bit CMT1 on RZ/G1N
0060               - renesas,r8a7745-cmt1      # 48-bit CMT1 on RZ/G1E
0061               - renesas,r8a77470-cmt1     # 48-bit CMT1 on RZ/G1C
0062               - renesas,r8a7790-cmt1      # 48-bit CMT1 on R-Car H2
0063               - renesas,r8a7791-cmt1      # 48-bit CMT1 on R-Car M2-W
0064               - renesas,r8a7792-cmt1      # 48-bit CMT1 on R-Car V2H
0065               - renesas,r8a7793-cmt1      # 48-bit CMT1 on R-Car M2-N
0066               - renesas,r8a7794-cmt1      # 48-bit CMT1 on R-Car E2
0067           - const: renesas,rcar-gen2-cmt1 # 48-bit CMT1 on R-Mobile APE6, R-Car Gen2 and RZ/G1
0068 
0069       - items:
0070           - enum:
0071               - renesas,r8a774a1-cmt0     # 32-bit CMT0 on RZ/G2M
0072               - renesas,r8a774b1-cmt0     # 32-bit CMT0 on RZ/G2N
0073               - renesas,r8a774c0-cmt0     # 32-bit CMT0 on RZ/G2E
0074               - renesas,r8a774e1-cmt0     # 32-bit CMT0 on RZ/G2H
0075               - renesas,r8a7795-cmt0      # 32-bit CMT0 on R-Car H3
0076               - renesas,r8a7796-cmt0      # 32-bit CMT0 on R-Car M3-W
0077               - renesas,r8a77961-cmt0     # 32-bit CMT0 on R-Car M3-W+
0078               - renesas,r8a77965-cmt0     # 32-bit CMT0 on R-Car M3-N
0079               - renesas,r8a77970-cmt0     # 32-bit CMT0 on R-Car V3M
0080               - renesas,r8a77980-cmt0     # 32-bit CMT0 on R-Car V3H
0081               - renesas,r8a77990-cmt0     # 32-bit CMT0 on R-Car E3
0082               - renesas,r8a77995-cmt0     # 32-bit CMT0 on R-Car D3
0083           - const: renesas,rcar-gen3-cmt0 # 32-bit CMT0 on R-Car Gen3 and RZ/G2
0084 
0085       - items:
0086           - enum:
0087               - renesas,r8a774a1-cmt1     # 48-bit CMT on RZ/G2M
0088               - renesas,r8a774b1-cmt1     # 48-bit CMT on RZ/G2N
0089               - renesas,r8a774c0-cmt1     # 48-bit CMT on RZ/G2E
0090               - renesas,r8a774e1-cmt1     # 48-bit CMT on RZ/G2H
0091               - renesas,r8a7795-cmt1      # 48-bit CMT on R-Car H3
0092               - renesas,r8a7796-cmt1      # 48-bit CMT on R-Car M3-W
0093               - renesas,r8a77961-cmt1     # 48-bit CMT on R-Car M3-W+
0094               - renesas,r8a77965-cmt1     # 48-bit CMT on R-Car M3-N
0095               - renesas,r8a77970-cmt1     # 48-bit CMT on R-Car V3M
0096               - renesas,r8a77980-cmt1     # 48-bit CMT on R-Car V3H
0097               - renesas,r8a77990-cmt1     # 48-bit CMT on R-Car E3
0098               - renesas,r8a77995-cmt1     # 48-bit CMT on R-Car D3
0099           - const: renesas,rcar-gen3-cmt1 # 48-bit CMT on R-Car Gen3 and RZ/G2
0100 
0101       - items:
0102           - enum:
0103               - renesas,r8a779a0-cmt0     # 32-bit CMT0 on R-Car V3U
0104               - renesas,r8a779f0-cmt0     # 32-bit CMT0 on R-Car S4-8
0105           - const: renesas,rcar-gen4-cmt0 # 32-bit CMT0 on R-Car Gen4
0106 
0107       - items:
0108           - enum:
0109               - renesas,r8a779a0-cmt1     # 48-bit CMT on R-Car V3U
0110               - renesas,r8a779f0-cmt1     # 48-bit CMT on R-Car S4-8
0111           - const: renesas,rcar-gen4-cmt1 # 48-bit CMT on R-Car Gen4
0112 
0113   reg:
0114     maxItems: 1
0115 
0116   interrupts:
0117     minItems: 1
0118     maxItems: 8
0119 
0120   clocks:
0121     maxItems: 1
0122 
0123   clock-names:
0124     const: fck
0125 
0126   power-domains:
0127     maxItems: 1
0128 
0129   resets:
0130     maxItems: 1
0131 
0132 required:
0133   - compatible
0134   - reg
0135   - interrupts
0136   - clocks
0137   - clock-names
0138   - power-domains
0139 
0140 allOf:
0141   - if:
0142       properties:
0143         compatible:
0144           contains:
0145             enum:
0146               - renesas,rcar-gen2-cmt0
0147               - renesas,rcar-gen3-cmt0
0148               - renesas,rcar-gen4-cmt0
0149     then:
0150       properties:
0151         interrupts:
0152           minItems: 2
0153           maxItems: 2
0154 
0155   - if:
0156       properties:
0157         compatible:
0158           contains:
0159             enum:
0160               - renesas,rcar-gen2-cmt1
0161               - renesas,rcar-gen3-cmt1
0162               - renesas,rcar-gen4-cmt1
0163     then:
0164       properties:
0165         interrupts:
0166           minItems: 8
0167           maxItems: 8
0168 
0169 additionalProperties: false
0170 
0171 examples:
0172   - |
0173     #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
0174     #include <dt-bindings/interrupt-controller/arm-gic.h>
0175     #include <dt-bindings/power/r8a7790-sysc.h>
0176     cmt0: timer@ffca0000 {
0177             compatible = "renesas,r8a7790-cmt0", "renesas,rcar-gen2-cmt0";
0178             reg = <0xffca0000 0x1004>;
0179             interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
0180                          <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
0181             clocks = <&cpg CPG_MOD 124>;
0182             clock-names = "fck";
0183             power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
0184             resets = <&cpg 124>;
0185     };
0186 
0187     cmt1: timer@e6130000 {
0188             compatible = "renesas,r8a7790-cmt1", "renesas,rcar-gen2-cmt1";
0189             reg = <0xe6130000 0x1004>;
0190             interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
0191                          <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
0192                          <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
0193                          <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
0194                          <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
0195                          <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
0196                          <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
0197                          <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
0198             clocks = <&cpg CPG_MOD 329>;
0199             clock-names = "fck";
0200             power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
0201             resets = <&cpg 329>;
0202     };