mt8167.dtsi 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * Copyright (c) 2020 MediaTek Inc.
  4. * Copyright (c) 2020 BayLibre, SAS.
  5. * Author: Fabien Parent <[email protected]>
  6. */
  7. #include <dt-bindings/clock/mt8167-clk.h>
  8. #include <dt-bindings/memory/mt8167-larb-port.h>
  9. #include <dt-bindings/power/mt8167-power.h>
  10. #include "mt8167-pinfunc.h"
  11. #include "mt8516.dtsi"
  12. / {
  13. compatible = "mediatek,mt8167";
  14. soc {
  15. topckgen: topckgen@10000000 {
  16. compatible = "mediatek,mt8167-topckgen", "syscon";
  17. reg = <0 0x10000000 0 0x1000>;
  18. #clock-cells = <1>;
  19. };
  20. infracfg: infracfg@10001000 {
  21. compatible = "mediatek,mt8167-infracfg", "syscon";
  22. reg = <0 0x10001000 0 0x1000>;
  23. #clock-cells = <1>;
  24. };
  25. apmixedsys: apmixedsys@10018000 {
  26. compatible = "mediatek,mt8167-apmixedsys", "syscon";
  27. reg = <0 0x10018000 0 0x710>;
  28. #clock-cells = <1>;
  29. };
  30. scpsys: syscon@10006000 {
  31. compatible = "mediatek,mt8167-scpsys", "syscon", "simple-mfd";
  32. reg = <0 0x10006000 0 0x1000>;
  33. spm: power-controller {
  34. compatible = "mediatek,mt8167-power-controller";
  35. #address-cells = <1>;
  36. #size-cells = <0>;
  37. #power-domain-cells = <1>;
  38. /* power domains of the SoC */
  39. power-domain@MT8167_POWER_DOMAIN_MM {
  40. reg = <MT8167_POWER_DOMAIN_MM>;
  41. clocks = <&topckgen CLK_TOP_SMI_MM>;
  42. clock-names = "mm";
  43. #power-domain-cells = <0>;
  44. mediatek,infracfg = <&infracfg>;
  45. };
  46. power-domain@MT8167_POWER_DOMAIN_VDEC {
  47. reg = <MT8167_POWER_DOMAIN_VDEC>;
  48. clocks = <&topckgen CLK_TOP_SMI_MM>,
  49. <&topckgen CLK_TOP_RG_VDEC>;
  50. clock-names = "mm", "vdec";
  51. #power-domain-cells = <0>;
  52. };
  53. power-domain@MT8167_POWER_DOMAIN_ISP {
  54. reg = <MT8167_POWER_DOMAIN_ISP>;
  55. clocks = <&topckgen CLK_TOP_SMI_MM>;
  56. clock-names = "mm";
  57. #power-domain-cells = <0>;
  58. };
  59. power-domain@MT8167_POWER_DOMAIN_MFG_ASYNC {
  60. reg = <MT8167_POWER_DOMAIN_MFG_ASYNC>;
  61. clocks = <&topckgen CLK_TOP_RG_AXI_MFG>,
  62. <&topckgen CLK_TOP_RG_SLOW_MFG>;
  63. clock-names = "axi_mfg", "mfg";
  64. #address-cells = <1>;
  65. #size-cells = <0>;
  66. #power-domain-cells = <1>;
  67. mediatek,infracfg = <&infracfg>;
  68. power-domain@MT8167_POWER_DOMAIN_MFG_2D {
  69. reg = <MT8167_POWER_DOMAIN_MFG_2D>;
  70. #address-cells = <1>;
  71. #size-cells = <0>;
  72. #power-domain-cells = <1>;
  73. power-domain@MT8167_POWER_DOMAIN_MFG {
  74. reg = <MT8167_POWER_DOMAIN_MFG>;
  75. #power-domain-cells = <0>;
  76. mediatek,infracfg = <&infracfg>;
  77. };
  78. };
  79. };
  80. power-domain@MT8167_POWER_DOMAIN_CONN {
  81. reg = <MT8167_POWER_DOMAIN_CONN>;
  82. #power-domain-cells = <0>;
  83. mediatek,infracfg = <&infracfg>;
  84. };
  85. };
  86. };
  87. imgsys: syscon@15000000 {
  88. compatible = "mediatek,mt8167-imgsys", "syscon";
  89. reg = <0 0x15000000 0 0x1000>;
  90. #clock-cells = <1>;
  91. };
  92. vdecsys: syscon@16000000 {
  93. compatible = "mediatek,mt8167-vdecsys", "syscon";
  94. reg = <0 0x16000000 0 0x1000>;
  95. #clock-cells = <1>;
  96. };
  97. pio: pinctrl@1000b000 {
  98. compatible = "mediatek,mt8167-pinctrl";
  99. reg = <0 0x1000b000 0 0x1000>;
  100. mediatek,pctl-regmap = <&syscfg_pctl>;
  101. pins-are-numbered;
  102. gpio-controller;
  103. #gpio-cells = <2>;
  104. interrupt-controller;
  105. #interrupt-cells = <2>;
  106. interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
  107. };
  108. mmsys: mmsys@14000000 {
  109. compatible = "mediatek,mt8167-mmsys", "syscon";
  110. reg = <0 0x14000000 0 0x1000>;
  111. #clock-cells = <1>;
  112. };
  113. smi_common: smi@14017000 {
  114. compatible = "mediatek,mt8167-smi-common";
  115. reg = <0 0x14017000 0 0x1000>;
  116. clocks = <&mmsys CLK_MM_SMI_COMMON>,
  117. <&mmsys CLK_MM_SMI_COMMON>;
  118. clock-names = "apb", "smi";
  119. power-domains = <&spm MT8167_POWER_DOMAIN_MM>;
  120. };
  121. larb0: larb@14016000 {
  122. compatible = "mediatek,mt8167-smi-larb";
  123. reg = <0 0x14016000 0 0x1000>;
  124. mediatek,smi = <&smi_common>;
  125. clocks = <&mmsys CLK_MM_SMI_LARB0>,
  126. <&mmsys CLK_MM_SMI_LARB0>;
  127. clock-names = "apb", "smi";
  128. power-domains = <&spm MT8167_POWER_DOMAIN_MM>;
  129. };
  130. larb1: larb@15001000 {
  131. compatible = "mediatek,mt8167-smi-larb";
  132. reg = <0 0x15001000 0 0x1000>;
  133. mediatek,smi = <&smi_common>;
  134. clocks = <&imgsys CLK_IMG_LARB1_SMI>,
  135. <&imgsys CLK_IMG_LARB1_SMI>;
  136. clock-names = "apb", "smi";
  137. power-domains = <&spm MT8167_POWER_DOMAIN_ISP>;
  138. };
  139. larb2: larb@16010000 {
  140. compatible = "mediatek,mt8167-smi-larb";
  141. reg = <0 0x16010000 0 0x1000>;
  142. mediatek,smi = <&smi_common>;
  143. clocks = <&vdecsys CLK_VDEC_CKEN>,
  144. <&vdecsys CLK_VDEC_LARB1_CKEN>;
  145. clock-names = "apb", "smi";
  146. power-domains = <&spm MT8167_POWER_DOMAIN_VDEC>;
  147. };
  148. iommu: m4u@10203000 {
  149. compatible = "mediatek,mt8167-m4u";
  150. reg = <0 0x10203000 0 0x1000>;
  151. mediatek,larbs = <&larb0>, <&larb1>, <&larb2>;
  152. interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_LOW>;
  153. #iommu-cells = <1>;
  154. };
  155. };
  156. };