renesas,cmt.yaml 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/timer/renesas,cmt.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Renesas Compare Match Timer (CMT)
  7. maintainers:
  8. - Geert Uytterhoeven <geert+renesas@glider.be>
  9. - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
  10. description:
  11. The CMT is a multi-channel 16/32/48-bit timer/counter with configurable clock
  12. inputs and programmable compare match.
  13. Channels share hardware resources but their counter and compare match values
  14. are independent. A particular CMT instance can implement only a subset of the
  15. channels supported by the CMT model. Channel indices represent the hardware
  16. position of the channel in the CMT and don't match the channel numbers in the
  17. datasheets.
  18. properties:
  19. compatible:
  20. oneOf:
  21. - items:
  22. - enum:
  23. - renesas,r8a7740-cmt0 # 32-bit CMT0 on R-Mobile A1
  24. - renesas,r8a7740-cmt1 # 48-bit CMT1 on R-Mobile A1
  25. - renesas,r8a7740-cmt2 # 32-bit CMT2 on R-Mobile A1
  26. - renesas,r8a7740-cmt3 # 32-bit CMT3 on R-Mobile A1
  27. - renesas,r8a7740-cmt4 # 32-bit CMT4 on R-Mobile A1
  28. - renesas,sh73a0-cmt0 # 32-bit CMT0 on SH-Mobile AG5
  29. - renesas,sh73a0-cmt1 # 48-bit CMT1 on SH-Mobile AG5
  30. - renesas,sh73a0-cmt2 # 32-bit CMT2 on SH-Mobile AG5
  31. - renesas,sh73a0-cmt3 # 32-bit CMT3 on SH-Mobile AG5
  32. - renesas,sh73a0-cmt4 # 32-bit CMT4 on SH-Mobile AG5
  33. - items:
  34. - enum:
  35. - renesas,r8a73a4-cmt0 # 32-bit CMT0 on R-Mobile APE6
  36. - renesas,r8a7742-cmt0 # 32-bit CMT0 on RZ/G1H
  37. - renesas,r8a7743-cmt0 # 32-bit CMT0 on RZ/G1M
  38. - renesas,r8a7744-cmt0 # 32-bit CMT0 on RZ/G1N
  39. - renesas,r8a7745-cmt0 # 32-bit CMT0 on RZ/G1E
  40. - renesas,r8a77470-cmt0 # 32-bit CMT0 on RZ/G1C
  41. - renesas,r8a7790-cmt0 # 32-bit CMT0 on R-Car H2
  42. - renesas,r8a7791-cmt0 # 32-bit CMT0 on R-Car M2-W
  43. - renesas,r8a7792-cmt0 # 32-bit CMT0 on R-Car V2H
  44. - renesas,r8a7793-cmt0 # 32-bit CMT0 on R-Car M2-N
  45. - renesas,r8a7794-cmt0 # 32-bit CMT0 on R-Car E2
  46. - const: renesas,rcar-gen2-cmt0 # 32-bit CMT0 on R-Mobile APE6, R-Car Gen2 and RZ/G1
  47. - items:
  48. - enum:
  49. - renesas,r8a73a4-cmt1 # 48-bit CMT1 on R-Mobile APE6
  50. - renesas,r8a7742-cmt1 # 48-bit CMT1 on RZ/G1H
  51. - renesas,r8a7743-cmt1 # 48-bit CMT1 on RZ/G1M
  52. - renesas,r8a7744-cmt1 # 48-bit CMT1 on RZ/G1N
  53. - renesas,r8a7745-cmt1 # 48-bit CMT1 on RZ/G1E
  54. - renesas,r8a77470-cmt1 # 48-bit CMT1 on RZ/G1C
  55. - renesas,r8a7790-cmt1 # 48-bit CMT1 on R-Car H2
  56. - renesas,r8a7791-cmt1 # 48-bit CMT1 on R-Car M2-W
  57. - renesas,r8a7792-cmt1 # 48-bit CMT1 on R-Car V2H
  58. - renesas,r8a7793-cmt1 # 48-bit CMT1 on R-Car M2-N
  59. - renesas,r8a7794-cmt1 # 48-bit CMT1 on R-Car E2
  60. - const: renesas,rcar-gen2-cmt1 # 48-bit CMT1 on R-Mobile APE6, R-Car Gen2 and RZ/G1
  61. - items:
  62. - enum:
  63. - renesas,r8a774a1-cmt0 # 32-bit CMT0 on RZ/G2M
  64. - renesas,r8a774b1-cmt0 # 32-bit CMT0 on RZ/G2N
  65. - renesas,r8a774c0-cmt0 # 32-bit CMT0 on RZ/G2E
  66. - renesas,r8a774e1-cmt0 # 32-bit CMT0 on RZ/G2H
  67. - renesas,r8a7795-cmt0 # 32-bit CMT0 on R-Car H3
  68. - renesas,r8a7796-cmt0 # 32-bit CMT0 on R-Car M3-W
  69. - renesas,r8a77961-cmt0 # 32-bit CMT0 on R-Car M3-W+
  70. - renesas,r8a77965-cmt0 # 32-bit CMT0 on R-Car M3-N
  71. - renesas,r8a77970-cmt0 # 32-bit CMT0 on R-Car V3M
  72. - renesas,r8a77980-cmt0 # 32-bit CMT0 on R-Car V3H
  73. - renesas,r8a77990-cmt0 # 32-bit CMT0 on R-Car E3
  74. - renesas,r8a77995-cmt0 # 32-bit CMT0 on R-Car D3
  75. - const: renesas,rcar-gen3-cmt0 # 32-bit CMT0 on R-Car Gen3 and RZ/G2
  76. - items:
  77. - enum:
  78. - renesas,r8a774a1-cmt1 # 48-bit CMT on RZ/G2M
  79. - renesas,r8a774b1-cmt1 # 48-bit CMT on RZ/G2N
  80. - renesas,r8a774c0-cmt1 # 48-bit CMT on RZ/G2E
  81. - renesas,r8a774e1-cmt1 # 48-bit CMT on RZ/G2H
  82. - renesas,r8a7795-cmt1 # 48-bit CMT on R-Car H3
  83. - renesas,r8a7796-cmt1 # 48-bit CMT on R-Car M3-W
  84. - renesas,r8a77961-cmt1 # 48-bit CMT on R-Car M3-W+
  85. - renesas,r8a77965-cmt1 # 48-bit CMT on R-Car M3-N
  86. - renesas,r8a77970-cmt1 # 48-bit CMT on R-Car V3M
  87. - renesas,r8a77980-cmt1 # 48-bit CMT on R-Car V3H
  88. - renesas,r8a77990-cmt1 # 48-bit CMT on R-Car E3
  89. - renesas,r8a77995-cmt1 # 48-bit CMT on R-Car D3
  90. - const: renesas,rcar-gen3-cmt1 # 48-bit CMT on R-Car Gen3 and RZ/G2
  91. - items:
  92. - enum:
  93. - renesas,r8a779a0-cmt0 # 32-bit CMT0 on R-Car V3U
  94. - renesas,r8a779f0-cmt0 # 32-bit CMT0 on R-Car S4-8
  95. - renesas,r8a779g0-cmt0 # 32-bit CMT0 on R-Car V4H
  96. - renesas,r8a779h0-cmt0 # 32-bit CMT0 on R-Car V4M
  97. - const: renesas,rcar-gen4-cmt0 # 32-bit CMT0 on R-Car Gen4
  98. - items:
  99. - enum:
  100. - renesas,r8a779a0-cmt1 # 48-bit CMT on R-Car V3U
  101. - renesas,r8a779f0-cmt1 # 48-bit CMT on R-Car S4-8
  102. - renesas,r8a779g0-cmt1 # 48-bit CMT on R-Car V4H
  103. - renesas,r8a779h0-cmt1 # 48-bit CMT on R-Car V4M
  104. - const: renesas,rcar-gen4-cmt1 # 48-bit CMT on R-Car Gen4
  105. reg:
  106. maxItems: 1
  107. interrupts:
  108. minItems: 1
  109. maxItems: 8
  110. clocks:
  111. maxItems: 1
  112. clock-names:
  113. const: fck
  114. power-domains:
  115. maxItems: 1
  116. resets:
  117. maxItems: 1
  118. required:
  119. - compatible
  120. - reg
  121. - interrupts
  122. - clocks
  123. - clock-names
  124. - power-domains
  125. allOf:
  126. - if:
  127. properties:
  128. compatible:
  129. contains:
  130. enum:
  131. - renesas,rcar-gen2-cmt0
  132. - renesas,rcar-gen3-cmt0
  133. - renesas,rcar-gen4-cmt0
  134. then:
  135. properties:
  136. interrupts:
  137. minItems: 2
  138. maxItems: 2
  139. - if:
  140. properties:
  141. compatible:
  142. contains:
  143. enum:
  144. - renesas,rcar-gen2-cmt1
  145. - renesas,rcar-gen3-cmt1
  146. - renesas,rcar-gen4-cmt1
  147. then:
  148. properties:
  149. interrupts:
  150. minItems: 8
  151. maxItems: 8
  152. additionalProperties: false
  153. examples:
  154. - |
  155. #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
  156. #include <dt-bindings/interrupt-controller/arm-gic.h>
  157. #include <dt-bindings/power/r8a7790-sysc.h>
  158. cmt0: timer@ffca0000 {
  159. compatible = "renesas,r8a7790-cmt0", "renesas,rcar-gen2-cmt0";
  160. reg = <0xffca0000 0x1004>;
  161. interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
  162. <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
  163. clocks = <&cpg CPG_MOD 124>;
  164. clock-names = "fck";
  165. power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
  166. resets = <&cpg 124>;
  167. };
  168. cmt1: timer@e6130000 {
  169. compatible = "renesas,r8a7790-cmt1", "renesas,rcar-gen2-cmt1";
  170. reg = <0xe6130000 0x1004>;
  171. interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
  172. <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
  173. <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
  174. <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
  175. <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
  176. <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
  177. <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
  178. <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
  179. clocks = <&cpg CPG_MOD 329>;
  180. clock-names = "fck";
  181. power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
  182. resets = <&cpg 329>;
  183. };