fsl,imx-gpc.yaml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/power/fsl,imx-gpc.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Freescale i.MX General Power Controller
  7. maintainers:
  8. - Philipp Zabel <p.zabel@pengutronix.de>
  9. description: |
  10. The i.MX6 General Power Control (GPC) block contains DVFS load tracking
  11. counters and Power Gating Control (PGC).
  12. The power domains are generic power domain providers as documented in
  13. Documentation/devicetree/bindings/power/power-domain.yaml. They are
  14. described as subnodes of the power gating controller 'pgc' node of the GPC.
  15. IP cores belonging to a power domain should contain a 'power-domains'
  16. property that is a phandle pointing to the power domain the device belongs
  17. to.
  18. properties:
  19. compatible:
  20. oneOf:
  21. - enum:
  22. - fsl,imx6q-gpc
  23. - items:
  24. - enum:
  25. - fsl,imx6qp-gpc
  26. - fsl,imx6sl-gpc
  27. - fsl,imx6sll-gpc
  28. - fsl,imx6sx-gpc
  29. - fsl,imx6ul-gpc
  30. - const: fsl,imx6q-gpc
  31. reg:
  32. maxItems: 1
  33. "#address-cells":
  34. const: 0
  35. interrupts:
  36. maxItems: 1
  37. interrupt-controller: true
  38. '#interrupt-cells':
  39. const: 3
  40. clocks:
  41. maxItems: 1
  42. clock-names:
  43. const: ipg
  44. pgc:
  45. type: object
  46. additionalProperties: false
  47. description: list of power domains provided by this controller.
  48. properties:
  49. '#address-cells':
  50. const: 1
  51. '#size-cells':
  52. const: 0
  53. patternProperties:
  54. "power-domain@[0-9]$":
  55. type: object
  56. additionalProperties: false
  57. properties:
  58. '#power-domain-cells':
  59. const: 0
  60. reg:
  61. description: |
  62. The following DOMAIN_INDEX values are valid for i.MX6Q:
  63. ARM_DOMAIN 0
  64. PU_DOMAIN 1
  65. The following additional DOMAIN_INDEX value is valid for i.MX6SL:
  66. DISPLAY_DOMAIN 2
  67. The following additional DOMAIN_INDEX value is valid for i.MX6SX:
  68. PCI_DOMAIN 3
  69. maxItems: 1
  70. clocks:
  71. description: |
  72. A number of phandles to clocks that need to be enabled during domain
  73. power-up sequencing to ensure reset propagation into devices located
  74. inside this power domain.
  75. minItems: 1
  76. maxItems: 7
  77. power-supply: true
  78. required:
  79. - '#power-domain-cells'
  80. - reg
  81. required:
  82. - '#address-cells'
  83. - '#size-cells'
  84. required:
  85. - compatible
  86. - reg
  87. - interrupts
  88. - clocks
  89. - clock-names
  90. - pgc
  91. additionalProperties: false
  92. examples:
  93. - |
  94. #include <dt-bindings/clock/imx6qdl-clock.h>
  95. #include <dt-bindings/interrupt-controller/arm-gic.h>
  96. gpc@20dc000 {
  97. compatible = "fsl,imx6q-gpc";
  98. reg = <0x020dc000 0x4000>;
  99. interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>;
  100. clocks = <&clks IMX6QDL_CLK_IPG>;
  101. clock-names = "ipg";
  102. pgc {
  103. #address-cells = <1>;
  104. #size-cells = <0>;
  105. power-domain@0 {
  106. reg = <0>;
  107. #power-domain-cells = <0>;
  108. };
  109. pd_pu: power-domain@1 {
  110. reg = <1>;
  111. #power-domain-cells = <0>;
  112. power-supply = <&reg_pu>;
  113. clocks = <&clks IMX6QDL_CLK_GPU3D_CORE>,
  114. <&clks IMX6QDL_CLK_GPU3D_SHADER>,
  115. <&clks IMX6QDL_CLK_GPU2D_CORE>,
  116. <&clks IMX6QDL_CLK_GPU2D_AXI>,
  117. <&clks IMX6QDL_CLK_OPENVG_AXI>,
  118. <&clks IMX6QDL_CLK_VPU_AXI>;
  119. };
  120. };
  121. };