ti-sysc.yaml 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/bus/ti-sysc.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Texas Instruments interconnect target module
  7. maintainers:
  8. - Tony Lindgren <tony@atomide.com>
  9. description:
  10. Texas Instruments SoCs can have a generic interconnect target module
  11. for devices connected to various interconnects such as L3 interconnect
  12. using Arteris NoC, and L4 interconnect using Sonics s3220. This module
  13. is mostly used for interaction between module and Power, Reset and Clock
  14. Manager PRCM. It participates in the OCP Disconnect Protocol, but other
  15. than that it is mostly independent of the interconnect.
  16. Each interconnect target module can have one or more devices connected to
  17. it. There is a set of control registers for managing the interconnect target
  18. module clocks, idle modes and interconnect level resets.
  19. The interconnect target module control registers are sprinkled into the
  20. unused register address space of the first child device IP block managed by
  21. the interconnect target module. Typically the register names are REVISION,
  22. SYSCONFIG and SYSSTATUS.
  23. properties:
  24. $nodename:
  25. pattern: "^target-module(@[0-9a-f]+)?$"
  26. compatible:
  27. oneOf:
  28. - items:
  29. - enum:
  30. - ti,sysc-omap2
  31. - ti,sysc-omap4
  32. - ti,sysc-omap4-simple
  33. - ti,sysc-omap2-timer
  34. - ti,sysc-omap4-timer
  35. - ti,sysc-omap3430-sr
  36. - ti,sysc-omap3630-sr
  37. - ti,sysc-omap4-sr
  38. - ti,sysc-omap3-sham
  39. - ti,sysc-omap-aes
  40. - ti,sysc-mcasp
  41. - ti,sysc-dra7-mcasp
  42. - ti,sysc-usb-host-fs
  43. - ti,sysc-dra7-mcan
  44. - ti,sysc-pruss
  45. - const: ti,sysc
  46. - items:
  47. - const: ti,sysc
  48. reg:
  49. description:
  50. Interconnect target module control registers consisting of
  51. REVISION, SYSCONFIG and SYSSTATUS registers as defined in the
  52. Technical Reference Manual for the SoC.
  53. minItems: 1
  54. maxItems: 3
  55. reg-names:
  56. description:
  57. Interconnect target module control register names consisting
  58. of "rev", "sysc" and "syss".
  59. oneOf:
  60. - minItems: 1
  61. items:
  62. - const: rev
  63. - const: sysc
  64. - const: syss
  65. - items:
  66. - const: rev
  67. - const: syss
  68. - enum: [ sysc, syss ]
  69. power-domains:
  70. description: Target module power domain if available.
  71. maxItems: 1
  72. clocks:
  73. description:
  74. Target module clocks consisting of one functional clock, one
  75. interface clock, and up to 8 module specific optional clocks.
  76. Some modules may have only the functional clock, and some have
  77. no configurable clocks.
  78. minItems: 1
  79. maxItems: 4
  80. clock-names:
  81. description:
  82. Target module clock names like "fck", "ick", "optck1", "optck2"
  83. if the clocks are configurable.
  84. oneOf:
  85. - enum: [ ick, fck, sys_clk ]
  86. - items:
  87. - const: fck
  88. - enum: [ ick, dbclk, osc, sys_clk, dss_clk, ahclkx ]
  89. - items:
  90. - const: fck
  91. - const: phy-clk
  92. - const: phy-clk-div
  93. - items:
  94. - const: fck
  95. - const: hdmi_clk
  96. - const: sys_clk
  97. - const: tv_clk
  98. - items:
  99. - const: fck
  100. - const: ahclkx
  101. - const: ahclkr
  102. resets:
  103. description:
  104. Target module reset bit in the RSTCTRL register if wired for the module.
  105. Note that the other reset bits should be mapped for the child device
  106. driver to use.
  107. maxItems: 1
  108. reset-names:
  109. description:
  110. Target module reset names in the RSTCTRL register, typically named
  111. "rstctrl" if only one reset bit is wired for the module.
  112. items:
  113. - const: rstctrl
  114. '#address-cells':
  115. enum: [ 1, 2 ]
  116. '#size-cells':
  117. enum: [ 1, 2 ]
  118. ranges: true
  119. dma-ranges: true
  120. ti,sysc-mask:
  121. description: Mask of supported register bits for the SYSCONFIG register
  122. $ref: /schemas/types.yaml#/definitions/uint32
  123. ti,sysc-midle:
  124. description: List of hardware supported idle modes
  125. $ref: /schemas/types.yaml#/definitions/uint32-array
  126. ti,sysc-sidle:
  127. description: List of hardware supported idle modes
  128. $ref: /schemas/types.yaml#/definitions/uint32-array
  129. ti,syss-mask:
  130. description: Mask of supported register bits for the SYSSTATUS register
  131. $ref: /schemas/types.yaml#/definitions/uint32
  132. ti,sysc-delay-us:
  133. description: Delay needed after OCP softreset before accessing SYCONFIG
  134. default: 0
  135. minimum: 0
  136. maximum: 2
  137. ti,no-reset-on-init:
  138. description: Interconnect target module shall not be reset at init
  139. type: boolean
  140. ti,no-idle-on-init:
  141. description: Interconnect target module shall not be idled at init
  142. type: boolean
  143. ti,no-idle:
  144. description: Interconnect target module shall not be idled
  145. type: boolean
  146. ti,hwmods:
  147. description: Interconnect module name to use with legacy hwmod data
  148. $ref: /schemas/types.yaml#/definitions/string
  149. deprecated: true
  150. required:
  151. - compatible
  152. - '#address-cells'
  153. - '#size-cells'
  154. - ranges
  155. additionalProperties:
  156. type: object
  157. examples:
  158. - |
  159. #include <dt-bindings/bus/ti-sysc.h>
  160. #include <dt-bindings/clock/omap4.h>
  161. target-module@2b000 {
  162. compatible = "ti,sysc-omap2", "ti,sysc";
  163. ti,hwmods = "usb_otg_hs";
  164. reg = <0x2b400 0x4>,
  165. <0x2b404 0x4>,
  166. <0x2b408 0x4>;
  167. reg-names = "rev", "sysc", "syss";
  168. clocks = <&l3_init_clkctrl OMAP4_USB_OTG_HS_CLKCTRL 0>;
  169. clock-names = "fck";
  170. ti,sysc-mask = <(SYSC_OMAP2_ENAWAKEUP |
  171. SYSC_OMAP2_SOFTRESET |
  172. SYSC_OMAP2_AUTOIDLE)>;
  173. ti,sysc-midle = <SYSC_IDLE_FORCE>,
  174. <SYSC_IDLE_NO>,
  175. <SYSC_IDLE_SMART>;
  176. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  177. <SYSC_IDLE_NO>,
  178. <SYSC_IDLE_SMART>,
  179. <SYSC_IDLE_SMART_WKUP>;
  180. ti,syss-mask = <1>;
  181. #address-cells = <1>;
  182. #size-cells = <1>;
  183. ranges = <0 0x2b000 0x1000>;
  184. };