renesas,rpc-if.yaml 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/memory-controllers/renesas,rpc-if.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Renesas Reduced Pin Count Interface (RPC-IF)
  7. maintainers:
  8. - Sergei Shtylyov <sergei.shtylyov@gmail.com>
  9. description: |
  10. Renesas RPC-IF allows a SPI flash or HyperFlash connected to the SoC to
  11. be accessed via the external address space read mode or the manual mode.
  12. The flash chip itself should be represented by a subnode of the RPC-IF node.
  13. The flash interface is selected based on the "compatible" property of this
  14. subnode:
  15. - if it contains "jedec,spi-nor", then SPI is used;
  16. - if it contains "cfi-flash", then HyperFlash is used.
  17. allOf:
  18. - $ref: /schemas/spi/spi-controller.yaml#
  19. properties:
  20. compatible:
  21. oneOf:
  22. - items:
  23. - enum:
  24. - renesas,r8a774a1-rpc-if # RZ/G2M
  25. - renesas,r8a774b1-rpc-if # RZ/G2N
  26. - renesas,r8a774c0-rpc-if # RZ/G2E
  27. - renesas,r8a774e1-rpc-if # RZ/G2H
  28. - renesas,r8a7795-rpc-if # R-Car H3
  29. - renesas,r8a7796-rpc-if # R-Car M3-W
  30. - renesas,r8a77961-rpc-if # R-Car M3-W+
  31. - renesas,r8a77965-rpc-if # R-Car M3-N
  32. - renesas,r8a77970-rpc-if # R-Car V3M
  33. - renesas,r8a77980-rpc-if # R-Car V3H
  34. - renesas,r8a77990-rpc-if # R-Car E3
  35. - renesas,r8a77995-rpc-if # R-Car D3
  36. - renesas,r8a779a0-rpc-if # R-Car V3U
  37. - const: renesas,rcar-gen3-rpc-if # a generic R-Car gen3 or RZ/G2{E,H,M,N} device
  38. - items:
  39. - enum:
  40. - renesas,r8a779g0-rpc-if # R-Car V4H
  41. - renesas,r8a779h0-rpc-if # R-Car V4M
  42. - const: renesas,rcar-gen4-rpc-if # a generic R-Car gen4 device
  43. - items:
  44. - enum:
  45. - renesas,r9a07g043-rpc-if # RZ/G2UL
  46. - renesas,r9a07g044-rpc-if # RZ/G2{L,LC}
  47. - renesas,r9a07g054-rpc-if # RZ/V2L
  48. - const: renesas,rzg2l-rpc-if
  49. reg:
  50. items:
  51. - description: RPC-IF registers
  52. - description: direct mapping read mode area
  53. - description: write buffer area
  54. reg-names:
  55. items:
  56. - const: regs
  57. - const: dirmap
  58. - const: wbuf
  59. clocks:
  60. minItems: 1
  61. maxItems: 2
  62. interrupts:
  63. maxItems: 1
  64. power-domains:
  65. maxItems: 1
  66. resets:
  67. maxItems: 1
  68. patternProperties:
  69. "flash@[0-9a-f]+$":
  70. type: object
  71. additionalProperties: true
  72. properties:
  73. compatible:
  74. contains:
  75. enum:
  76. - cfi-flash
  77. - jedec,spi-nor
  78. required:
  79. - compatible
  80. - reg
  81. - reg-names
  82. - clocks
  83. - power-domains
  84. - resets
  85. - '#address-cells'
  86. - '#size-cells'
  87. if:
  88. properties:
  89. compatible:
  90. contains:
  91. enum:
  92. - renesas,rzg2l-rpc-if
  93. then:
  94. properties:
  95. clocks:
  96. items:
  97. - description: SPI Multi IO Register access clock (SPI_CLK2)
  98. - description: SPI Multi IO Main clock (SPI_CLK).
  99. else:
  100. properties:
  101. clocks:
  102. maxItems: 1
  103. unevaluatedProperties: false
  104. examples:
  105. - |
  106. #include <dt-bindings/clock/renesas-cpg-mssr.h>
  107. #include <dt-bindings/power/r8a77995-sysc.h>
  108. spi@ee200000 {
  109. compatible = "renesas,r8a77995-rpc-if", "renesas,rcar-gen3-rpc-if";
  110. reg = <0xee200000 0x200>,
  111. <0x08000000 0x4000000>,
  112. <0xee208000 0x100>;
  113. reg-names = "regs", "dirmap", "wbuf";
  114. clocks = <&cpg CPG_MOD 917>;
  115. power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
  116. resets = <&cpg 917>;
  117. #address-cells = <1>;
  118. #size-cells = <0>;
  119. flash@0 {
  120. compatible = "jedec,spi-nor";
  121. reg = <0>;
  122. spi-max-frequency = <40000000>;
  123. spi-tx-bus-width = <1>;
  124. spi-rx-bus-width = <1>;
  125. };
  126. };