renesas,rcar-i2c.yaml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/i2c/renesas,rcar-i2c.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Renesas R-Car I2C Controller
  7. maintainers:
  8. - Wolfram Sang <wsa+renesas@sang-engineering.com>
  9. properties:
  10. compatible:
  11. oneOf:
  12. - items:
  13. - enum:
  14. - renesas,i2c-r8a7778 # R-Car M1A
  15. - renesas,i2c-r8a7779 # R-Car H1
  16. - const: renesas,rcar-gen1-i2c # R-Car Gen1
  17. - items:
  18. - enum:
  19. - renesas,i2c-r8a7742 # RZ/G1H
  20. - renesas,i2c-r8a7743 # RZ/G1M
  21. - renesas,i2c-r8a7744 # RZ/G1N
  22. - renesas,i2c-r8a7745 # RZ/G1E
  23. - renesas,i2c-r8a77470 # RZ/G1C
  24. - renesas,i2c-r8a7790 # R-Car H2
  25. - renesas,i2c-r8a7791 # R-Car M2-W
  26. - renesas,i2c-r8a7792 # R-Car V2H
  27. - renesas,i2c-r8a7793 # R-Car M2-N
  28. - renesas,i2c-r8a7794 # R-Car E2
  29. - const: renesas,rcar-gen2-i2c # R-Car Gen2 and RZ/G1
  30. - items:
  31. - enum:
  32. - renesas,i2c-r8a774a1 # RZ/G2M
  33. - renesas,i2c-r8a774b1 # RZ/G2N
  34. - renesas,i2c-r8a774c0 # RZ/G2E
  35. - renesas,i2c-r8a774e1 # RZ/G2H
  36. - renesas,i2c-r8a7795 # R-Car H3
  37. - renesas,i2c-r8a7796 # R-Car M3-W
  38. - renesas,i2c-r8a77961 # R-Car M3-W+
  39. - renesas,i2c-r8a77965 # R-Car M3-N
  40. - renesas,i2c-r8a77970 # R-Car V3M
  41. - renesas,i2c-r8a77980 # R-Car V3H
  42. - renesas,i2c-r8a77990 # R-Car E3
  43. - renesas,i2c-r8a77995 # R-Car D3
  44. - const: renesas,rcar-gen3-i2c # R-Car Gen3 and RZ/G2
  45. - items:
  46. - enum:
  47. - renesas,i2c-r8a779a0 # R-Car V3U
  48. - renesas,i2c-r8a779f0 # R-Car S4-8
  49. - renesas,i2c-r8a779g0 # R-Car V4H
  50. - renesas,i2c-r8a779h0 # R-Car V4M
  51. - const: renesas,rcar-gen4-i2c # R-Car Gen4
  52. reg:
  53. maxItems: 1
  54. interrupts:
  55. maxItems: 1
  56. clock-frequency:
  57. description:
  58. Desired I2C bus clock frequency in Hz. The absence of this property
  59. indicates the default frequency 100 kHz.
  60. clocks:
  61. maxItems: 1
  62. power-domains:
  63. maxItems: 1
  64. resets:
  65. maxItems: 1
  66. dmas:
  67. minItems: 2
  68. maxItems: 4
  69. description:
  70. Must contain a list of pairs of references to DMA specifiers, one for
  71. transmission, and one for reception.
  72. dma-names:
  73. minItems: 2
  74. maxItems: 4
  75. items:
  76. enum:
  77. - tx
  78. - rx
  79. i2c-scl-falling-time-ns:
  80. default: 35
  81. description:
  82. Number of nanoseconds the SCL signal takes to fall; t(f) in the I2C
  83. specification.
  84. i2c-scl-internal-delay-ns:
  85. default: 50
  86. description:
  87. Number of nanoseconds the IP core additionally needs to setup SCL.
  88. i2c-scl-rising-time-ns:
  89. default: 200
  90. description:
  91. Number of nanoseconds the SCL signal takes to rise; t(r) in the I2C
  92. specification.
  93. required:
  94. - compatible
  95. - reg
  96. - interrupts
  97. - clocks
  98. - power-domains
  99. - '#address-cells'
  100. - '#size-cells'
  101. allOf:
  102. - $ref: /schemas/i2c/i2c-controller.yaml#
  103. - if:
  104. properties:
  105. compatible:
  106. contains:
  107. enum:
  108. - renesas,rcar-gen1-i2c
  109. - renesas,rcar-gen2-i2c
  110. then:
  111. properties:
  112. dmas: false
  113. dma-names: false
  114. - if:
  115. properties:
  116. compatible:
  117. contains:
  118. enum:
  119. - renesas,rcar-gen2-i2c
  120. - renesas,rcar-gen3-i2c
  121. - renesas,rcar-gen4-i2c
  122. then:
  123. required:
  124. - resets
  125. unevaluatedProperties: false
  126. examples:
  127. - |
  128. #include <dt-bindings/clock/r8a7791-cpg-mssr.h>
  129. #include <dt-bindings/interrupt-controller/arm-gic.h>
  130. #include <dt-bindings/power/r8a7791-sysc.h>
  131. i2c0: i2c@e6508000 {
  132. compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
  133. reg = <0xe6508000 0x40>;
  134. interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
  135. clock-frequency = <400000>;
  136. clocks = <&cpg CPG_MOD 931>;
  137. power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
  138. resets = <&cpg 931>;
  139. i2c-scl-internal-delay-ns = <6>;
  140. #address-cells = <1>;
  141. #size-cells = <0>;
  142. };