rockchip,power-controller.yaml 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. # SPDX-License-Identifier: GPL-2.0
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/power/rockchip,power-controller.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Rockchip Power Domains
  7. maintainers:
  8. - Elaine Zhang <zhangqing@rock-chips.com>
  9. - Heiko Stuebner <heiko@sntech.de>
  10. description: |
  11. Rockchip processors include support for multiple power domains
  12. which can be powered up/down by software based on different
  13. application scenarios to save power.
  14. Power domains contained within power-controller node are
  15. generic power domain providers documented in
  16. Documentation/devicetree/bindings/power/power-domain.yaml.
  17. IP cores belonging to a power domain should contain a
  18. "power-domains" property that is a phandle for the
  19. power domain node representing the domain.
  20. properties:
  21. $nodename:
  22. const: power-controller
  23. compatible:
  24. enum:
  25. - rockchip,px30-power-controller
  26. - rockchip,rk3036-power-controller
  27. - rockchip,rk3066-power-controller
  28. - rockchip,rk3128-power-controller
  29. - rockchip,rk3188-power-controller
  30. - rockchip,rk3228-power-controller
  31. - rockchip,rk3288-power-controller
  32. - rockchip,rk3328-power-controller
  33. - rockchip,rk3366-power-controller
  34. - rockchip,rk3368-power-controller
  35. - rockchip,rk3399-power-controller
  36. - rockchip,rk3528-power-controller
  37. - rockchip,rk3562-power-controller
  38. - rockchip,rk3568-power-controller
  39. - rockchip,rk3576-power-controller
  40. - rockchip,rk3588-power-controller
  41. - rockchip,rv1126-power-controller
  42. - rockchip,rv1126b-power-controller
  43. "#power-domain-cells":
  44. const: 1
  45. "#address-cells":
  46. const: 1
  47. "#size-cells":
  48. const: 0
  49. required:
  50. - compatible
  51. - "#power-domain-cells"
  52. additionalProperties: false
  53. patternProperties:
  54. "^power-domain@[0-9a-f]+$":
  55. $ref: "#/$defs/pd-node"
  56. unevaluatedProperties: false
  57. properties:
  58. "#address-cells":
  59. const: 1
  60. "#size-cells":
  61. const: 0
  62. patternProperties:
  63. "^power-domain@[0-9a-f]+$":
  64. $ref: "#/$defs/pd-node"
  65. unevaluatedProperties: false
  66. properties:
  67. "#address-cells":
  68. const: 1
  69. "#size-cells":
  70. const: 0
  71. patternProperties:
  72. "^power-domain@[0-9a-f]+$":
  73. $ref: "#/$defs/pd-node"
  74. unevaluatedProperties: false
  75. properties:
  76. "#power-domain-cells":
  77. const: 0
  78. $defs:
  79. pd-node:
  80. type: object
  81. description: |
  82. Represents the power domains within the power controller node.
  83. properties:
  84. reg:
  85. maxItems: 1
  86. description: |
  87. Power domain index. Valid values are defined in
  88. "include/dt-bindings/power/px30-power.h"
  89. "include/dt-bindings/power/rk3036-power.h"
  90. "include/dt-bindings/power/rk3066-power.h"
  91. "include/dt-bindings/power/rk3128-power.h"
  92. "include/dt-bindings/power/rk3188-power.h"
  93. "include/dt-bindings/power/rk3228-power.h"
  94. "include/dt-bindings/power/rk3288-power.h"
  95. "include/dt-bindings/power/rk3328-power.h"
  96. "include/dt-bindings/power/rk3366-power.h"
  97. "include/dt-bindings/power/rk3368-power.h"
  98. "include/dt-bindings/power/rk3399-power.h"
  99. "include/dt-bindings/power/rk3568-power.h"
  100. "include/dt-bindings/power/rk3588-power.h"
  101. "include/dt-bindings/power/rockchip,rv1126-power.h"
  102. "include/dt-bindings/power/rockchip,rv1126b-power-controller.h"
  103. clocks:
  104. minItems: 1
  105. maxItems: 30
  106. description: |
  107. A number of phandles to clocks that need to be enabled
  108. while power domain switches state.
  109. domain-supply:
  110. description: domain regulator supply.
  111. pm_qos:
  112. $ref: /schemas/types.yaml#/definitions/phandle-array
  113. items:
  114. maxItems: 1
  115. description: |
  116. A number of phandles to qos blocks which need to be saved and restored
  117. while power domain switches state.
  118. "#power-domain-cells":
  119. enum: [0, 1]
  120. description:
  121. Must be 0 for nodes representing a single PM domain and 1 for nodes
  122. providing multiple PM domains.
  123. required:
  124. - reg
  125. - "#power-domain-cells"
  126. examples:
  127. - |
  128. #include <dt-bindings/clock/rk3399-cru.h>
  129. #include <dt-bindings/power/rk3399-power.h>
  130. soc {
  131. #address-cells = <2>;
  132. #size-cells = <2>;
  133. qos_hdcp: qos@ffa90000 {
  134. compatible = "rockchip,rk3399-qos", "syscon";
  135. reg = <0x0 0xffa90000 0x0 0x20>;
  136. };
  137. qos_iep: qos@ffa98000 {
  138. compatible = "rockchip,rk3399-qos", "syscon";
  139. reg = <0x0 0xffa98000 0x0 0x20>;
  140. };
  141. qos_rga_r: qos@ffab0000 {
  142. compatible = "rockchip,rk3399-qos", "syscon";
  143. reg = <0x0 0xffab0000 0x0 0x20>;
  144. };
  145. qos_rga_w: qos@ffab0080 {
  146. compatible = "rockchip,rk3399-qos", "syscon";
  147. reg = <0x0 0xffab0080 0x0 0x20>;
  148. };
  149. qos_video_m0: qos@ffab8000 {
  150. compatible = "rockchip,rk3399-qos", "syscon";
  151. reg = <0x0 0xffab8000 0x0 0x20>;
  152. };
  153. qos_video_m1_r: qos@ffac0000 {
  154. compatible = "rockchip,rk3399-qos", "syscon";
  155. reg = <0x0 0xffac0000 0x0 0x20>;
  156. };
  157. qos_video_m1_w: qos@ffac0080 {
  158. compatible = "rockchip,rk3399-qos", "syscon";
  159. reg = <0x0 0xffac0080 0x0 0x20>;
  160. };
  161. power-management@ff310000 {
  162. compatible = "rockchip,rk3399-pmu", "syscon", "simple-mfd";
  163. reg = <0x0 0xff310000 0x0 0x1000>;
  164. power-controller {
  165. compatible = "rockchip,rk3399-power-controller";
  166. #power-domain-cells = <1>;
  167. #address-cells = <1>;
  168. #size-cells = <0>;
  169. /* These power domains are grouped by VD_CENTER */
  170. power-domain@RK3399_PD_IEP {
  171. reg = <RK3399_PD_IEP>;
  172. clocks = <&cru ACLK_IEP>,
  173. <&cru HCLK_IEP>;
  174. pm_qos = <&qos_iep>;
  175. #power-domain-cells = <0>;
  176. };
  177. power-domain@RK3399_PD_RGA {
  178. reg = <RK3399_PD_RGA>;
  179. clocks = <&cru ACLK_RGA>,
  180. <&cru HCLK_RGA>;
  181. pm_qos = <&qos_rga_r>,
  182. <&qos_rga_w>;
  183. #power-domain-cells = <0>;
  184. };
  185. power-domain@RK3399_PD_VCODEC {
  186. reg = <RK3399_PD_VCODEC>;
  187. clocks = <&cru ACLK_VCODEC>,
  188. <&cru HCLK_VCODEC>;
  189. pm_qos = <&qos_video_m0>;
  190. #power-domain-cells = <0>;
  191. };
  192. power-domain@RK3399_PD_VDU {
  193. reg = <RK3399_PD_VDU>;
  194. clocks = <&cru ACLK_VDU>,
  195. <&cru HCLK_VDU>;
  196. pm_qos = <&qos_video_m1_r>,
  197. <&qos_video_m1_w>;
  198. #power-domain-cells = <0>;
  199. };
  200. power-domain@RK3399_PD_VIO {
  201. reg = <RK3399_PD_VIO>;
  202. #power-domain-cells = <1>;
  203. #address-cells = <1>;
  204. #size-cells = <0>;
  205. power-domain@RK3399_PD_HDCP {
  206. reg = <RK3399_PD_HDCP>;
  207. clocks = <&cru ACLK_HDCP>,
  208. <&cru HCLK_HDCP>,
  209. <&cru PCLK_HDCP>;
  210. pm_qos = <&qos_hdcp>;
  211. #power-domain-cells = <0>;
  212. };
  213. };
  214. };
  215. };
  216. };