renesas,scif.yaml 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/serial/renesas,scif.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Renesas Serial Communication Interface with FIFO (SCIF)
  7. maintainers:
  8. - Geert Uytterhoeven <geert+renesas@glider.be>
  9. properties:
  10. compatible:
  11. oneOf:
  12. - items:
  13. - enum:
  14. - renesas,scif-r7s72100 # RZ/A1H
  15. - const: renesas,scif # generic SCIF compatible UART
  16. - items:
  17. - enum:
  18. - renesas,scif-r7s9210 # RZ/A2
  19. - items:
  20. - enum:
  21. - renesas,scif-r8a7778 # R-Car M1
  22. - renesas,scif-r8a7779 # R-Car H1
  23. - const: renesas,rcar-gen1-scif # R-Car Gen1
  24. - const: renesas,scif # generic SCIF compatible UART
  25. - items:
  26. - enum:
  27. - renesas,scif-r8a7742 # RZ/G1H
  28. - renesas,scif-r8a7743 # RZ/G1M
  29. - renesas,scif-r8a7744 # RZ/G1N
  30. - renesas,scif-r8a7745 # RZ/G1E
  31. - renesas,scif-r8a77470 # RZ/G1C
  32. - renesas,scif-r8a7790 # R-Car H2
  33. - renesas,scif-r8a7791 # R-Car M2-W
  34. - renesas,scif-r8a7792 # R-Car V2H
  35. - renesas,scif-r8a7793 # R-Car M2-N
  36. - renesas,scif-r8a7794 # R-Car E2
  37. - const: renesas,rcar-gen2-scif # R-Car Gen2 and RZ/G1
  38. - const: renesas,scif # generic SCIF compatible UART
  39. - items:
  40. - enum:
  41. - renesas,scif-r8a774a1 # RZ/G2M
  42. - renesas,scif-r8a774a3 # RZ/G2M v3.0
  43. - renesas,scif-r8a774b1 # RZ/G2N
  44. - renesas,scif-r8a774c0 # RZ/G2E
  45. - renesas,scif-r8a774e1 # RZ/G2H
  46. - renesas,scif-r8a7795 # R-Car H3
  47. - renesas,scif-r8a7796 # R-Car M3-W
  48. - renesas,scif-r8a77961 # R-Car M3-W+
  49. - renesas,scif-r8a77965 # R-Car M3-N
  50. - renesas,scif-r8a77970 # R-Car V3M
  51. - renesas,scif-r8a77980 # R-Car V3H
  52. - renesas,scif-r8a77990 # R-Car E3
  53. - renesas,scif-r8a77995 # R-Car D3
  54. - const: renesas,rcar-gen3-scif # R-Car Gen3 and RZ/G2
  55. - const: renesas,scif # generic SCIF compatible UART
  56. - items:
  57. - enum:
  58. - renesas,scif-r8a779a0 # R-Car V3U
  59. - renesas,scif-r8a779f0 # R-Car S4-8
  60. - renesas,scif-r8a779g0 # R-Car V4H
  61. - renesas,scif-r8a779h0 # R-Car V4M
  62. - const: renesas,rcar-gen4-scif # R-Car Gen4
  63. - const: renesas,scif # generic SCIF compatible UART
  64. - items:
  65. - enum:
  66. - renesas,scif-r9a07g044 # RZ/G2{L,LC}
  67. - items:
  68. - enum:
  69. - renesas,scif-r9a07g043 # RZ/G2UL and RZ/Five
  70. - renesas,scif-r9a07g054 # RZ/V2L
  71. - renesas,scif-r9a08g045 # RZ/G3S
  72. - const: renesas,scif-r9a07g044 # RZ/G2{L,LC} fallback
  73. - const: renesas,scif-r9a09g057 # RZ/V2H(P)
  74. reg:
  75. maxItems: 1
  76. interrupts:
  77. oneOf:
  78. - items:
  79. - description: A combined interrupt
  80. - items:
  81. - description: Error interrupt
  82. - description: Receive buffer full interrupt
  83. - description: Transmit buffer empty interrupt
  84. - description: Break interrupt
  85. - description: Data Ready interrupt
  86. - description: Transmit End interrupt
  87. - description: Transmit End/Data Ready interrupt
  88. - description: Receive buffer full interrupt (EDGE trigger)
  89. - description: Transmit buffer empty interrupt (EDGE trigger)
  90. minItems: 4
  91. interrupt-names:
  92. minItems: 4
  93. items:
  94. - const: eri
  95. - const: rxi
  96. - const: txi
  97. - const: bri
  98. - const: dri
  99. - const: tei
  100. - const: tei-dri
  101. - const: rxi-edge
  102. - const: txi-edge
  103. clocks:
  104. minItems: 1
  105. maxItems: 4
  106. clock-names:
  107. minItems: 1
  108. maxItems: 4
  109. items:
  110. enum:
  111. - fck # UART functional clock
  112. - sck # optional external clock input
  113. - brg_int # optional internal clock source for BRG frequency divider
  114. - scif_clk # optional external clock source for BRG frequency divider
  115. power-domains:
  116. maxItems: 1
  117. resets:
  118. maxItems: 1
  119. dmas:
  120. minItems: 2
  121. maxItems: 4
  122. description:
  123. Must contain a list of pairs of references to DMA specifiers, one for
  124. transmission, and one for reception.
  125. dma-names:
  126. minItems: 2
  127. maxItems: 4
  128. items:
  129. enum:
  130. - tx
  131. - rx
  132. required:
  133. - compatible
  134. - reg
  135. - interrupts
  136. - clocks
  137. - clock-names
  138. - power-domains
  139. allOf:
  140. - $ref: serial.yaml#
  141. - if:
  142. properties:
  143. compatible:
  144. contains:
  145. enum:
  146. - renesas,rcar-gen2-scif
  147. - renesas,rcar-gen3-scif
  148. - renesas,rcar-gen4-scif
  149. - renesas,scif-r9a07g044
  150. - renesas,scif-r9a09g057
  151. then:
  152. required:
  153. - resets
  154. - if:
  155. properties:
  156. compatible:
  157. contains:
  158. enum:
  159. - renesas,rcar-gen1-scif
  160. - renesas,rcar-gen2-scif
  161. - renesas,rcar-gen3-scif
  162. - renesas,rcar-gen4-scif
  163. then:
  164. properties:
  165. interrupts:
  166. maxItems: 1
  167. interrupt-names: false
  168. else:
  169. required:
  170. - interrupt-names
  171. - if:
  172. properties:
  173. compatible:
  174. contains:
  175. enum:
  176. - renesas,scif-r7s72100
  177. then:
  178. properties:
  179. interrupts:
  180. minItems: 4
  181. maxItems: 4
  182. interrupt-names:
  183. maxItems: 4
  184. - if:
  185. properties:
  186. compatible:
  187. contains:
  188. enum:
  189. - renesas,scif-r7s9210
  190. - renesas,scif-r9a07g044
  191. then:
  192. properties:
  193. interrupts:
  194. minItems: 6
  195. maxItems: 6
  196. interrupt-names:
  197. minItems: 6
  198. maxItems: 6
  199. - if:
  200. properties:
  201. compatible:
  202. contains:
  203. const: renesas,scif-r9a09g057
  204. then:
  205. properties:
  206. clocks:
  207. maxItems: 1
  208. clock-names:
  209. maxItems: 1
  210. interrupts:
  211. minItems: 9
  212. interrupt-names:
  213. minItems: 9
  214. unevaluatedProperties: false
  215. examples:
  216. - |
  217. #include <dt-bindings/clock/r8a7791-cpg-mssr.h>
  218. #include <dt-bindings/interrupt-controller/arm-gic.h>
  219. #include <dt-bindings/power/r8a7791-sysc.h>
  220. aliases {
  221. serial0 = &scif0;
  222. };
  223. scif0: serial@e6e60000 {
  224. compatible = "renesas,scif-r8a7791", "renesas,rcar-gen2-scif",
  225. "renesas,scif";
  226. reg = <0xe6e60000 64>;
  227. interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
  228. clocks = <&cpg CPG_MOD 721>, <&cpg CPG_CORE R8A7791_CLK_ZS>,
  229. <&scif_clk>;
  230. clock-names = "fck", "brg_int", "scif_clk";
  231. dmas = <&dmac0 0x29>, <&dmac0 0x2a>, <&dmac1 0x29>, <&dmac1 0x2a>;
  232. dma-names = "tx", "rx", "tx", "rx";
  233. power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
  234. resets = <&cpg 721>;
  235. };