fsl,imx-weim.yaml 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  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/fsl/fsl,imx-weim.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: i.MX Wireless External Interface Module (WEIM)
  7. maintainers:
  8. - Shawn Guo <shawnguo@kernel.org>
  9. - Sascha Hauer <s.hauer@pengutronix.de>
  10. description:
  11. The term "wireless" does not imply that the WEIM is literally an interface
  12. without wires. It simply means that this module was originally designed for
  13. wireless and mobile applications that use low-power technology. The actual
  14. devices are instantiated from the child nodes of a WEIM node.
  15. properties:
  16. $nodename:
  17. pattern: "^memory-controller@[0-9a-f]+$"
  18. compatible:
  19. oneOf:
  20. - enum:
  21. - fsl,imx1-weim
  22. - fsl,imx27-weim
  23. - fsl,imx50-weim
  24. - fsl,imx51-weim
  25. - fsl,imx6q-weim
  26. - items:
  27. - enum:
  28. - fsl,imx31-weim
  29. - fsl,imx35-weim
  30. - const: fsl,imx27-weim
  31. - items:
  32. - enum:
  33. - fsl,imx6sx-weim
  34. - fsl,imx6ul-weim
  35. - const: fsl,imx6q-weim
  36. "#address-cells":
  37. const: 2
  38. "#size-cells":
  39. const: 1
  40. reg:
  41. maxItems: 1
  42. clocks:
  43. maxItems: 1
  44. interrupts:
  45. maxItems: 1
  46. ranges: true
  47. fsl,weim-cs-gpr:
  48. $ref: /schemas/types.yaml#/definitions/phandle
  49. description: |
  50. Phandle to the system General Purpose Register controller that contains
  51. WEIM CS GPR register, e.g. IOMUXC_GPR1 on i.MX6Q. IOMUXC_GPR1[11:0]
  52. should be set up as one of the following 4 possible values depending on
  53. the CS space configuration.
  54. IOMUXC_GPR1[11:0] CS0 CS1 CS2 CS3
  55. ---------------------------------------------
  56. 05 128M 0M 0M 0M
  57. 033 64M 64M 0M 0M
  58. 0113 64M 32M 32M 0M
  59. 01111 32M 32M 32M 32M
  60. In case that the property is absent, the reset value or what bootloader
  61. sets up in IOMUXC_GPR1[11:0] will be used.
  62. fsl,burst-clk-enable:
  63. type: boolean
  64. description:
  65. The presence of this property indicates that the weim bus should operate
  66. in Burst Clock Mode.
  67. fsl,continuous-burst-clk:
  68. type: boolean
  69. description:
  70. Make Burst Clock to output continuous clock. Without this option Burst
  71. Clock will output clock only when necessary.
  72. patternProperties:
  73. "^.*@[0-7],[0-9a-f]+$":
  74. type: object
  75. description: Devices attached to chip selects are represented as subnodes.
  76. $ref: fsl,imx-weim-peripherals.yaml
  77. additionalProperties: true
  78. required:
  79. - fsl,weim-cs-timing
  80. required:
  81. - compatible
  82. - reg
  83. - clocks
  84. - "#address-cells"
  85. - "#size-cells"
  86. - ranges
  87. allOf:
  88. - if:
  89. properties:
  90. compatible:
  91. not:
  92. contains:
  93. enum:
  94. - fsl,imx50-weim
  95. - fsl,imx6q-weim
  96. then:
  97. properties:
  98. fsl,weim-cs-gpr: false
  99. fsl,burst-clk-enable: false
  100. - if:
  101. not:
  102. required:
  103. - fsl,burst-clk-enable
  104. then:
  105. properties:
  106. fsl,continuous-burst-clk: false
  107. - if:
  108. properties:
  109. compatible:
  110. contains:
  111. const: fsl,imx1-weim
  112. then:
  113. patternProperties:
  114. "^.*@[0-7],[0-9a-f]+$":
  115. properties:
  116. fsl,weim-cs-timing:
  117. items:
  118. - description: CSxU
  119. - description: CSxL
  120. - if:
  121. properties:
  122. compatible:
  123. contains:
  124. enum:
  125. - fsl,imx27-weim
  126. - fsl,imx31-weim
  127. - fsl,imx35-weim
  128. then:
  129. patternProperties:
  130. "^.*@[0-7],[0-9a-f]+$":
  131. properties:
  132. fsl,weim-cs-timing:
  133. items:
  134. - description: CSCRxU
  135. - description: CSCRxL
  136. - description: CSCRxA
  137. - if:
  138. properties:
  139. compatible:
  140. contains:
  141. enum:
  142. - fsl,imx50-weim
  143. - fsl,imx51-weim
  144. - fsl,imx6q-weim
  145. - fsl,imx6sx-weim
  146. - fsl,imx6ul-weim
  147. then:
  148. patternProperties:
  149. "^.*@[0-7],[0-9a-f]+$":
  150. properties:
  151. fsl,weim-cs-timing:
  152. items:
  153. - description: CSxGCR1
  154. - description: CSxGCR2
  155. - description: CSxRCR1
  156. - description: CSxRCR2
  157. - description: CSxWCR1
  158. - description: CSxWCR2
  159. additionalProperties: false
  160. examples:
  161. - |
  162. memory-controller@21b8000 {
  163. compatible = "fsl,imx6q-weim";
  164. reg = <0x021b8000 0x4000>;
  165. clocks = <&clks 196>;
  166. #address-cells = <2>;
  167. #size-cells = <1>;
  168. ranges = <0 0 0x08000000 0x08000000>;
  169. fsl,weim-cs-gpr = <&gpr>;
  170. flash@0,0 {
  171. compatible = "cfi-flash";
  172. reg = <0 0 0x02000000>;
  173. #address-cells = <1>;
  174. #size-cells = <1>;
  175. bank-width = <2>;
  176. fsl,weim-cs-timing = <0x00620081 0x00000001 0x1c022000
  177. 0x0000c000 0x1404a38e 0x00000000>;
  178. };
  179. };