mt6797.dtsi 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. /*
  2. * Copyright (c) 2017 MediaTek Inc.
  3. * Author: Mars.C <mars.cheng@mediatek.com>
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License version 2 as
  7. * published by the Free Software Foundation.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. */
  13. #include <dt-bindings/clock/mt6797-clk.h>
  14. #include <dt-bindings/interrupt-controller/irq.h>
  15. #include <dt-bindings/interrupt-controller/arm-gic.h>
  16. / {
  17. compatible = "mediatek,mt6797";
  18. interrupt-parent = <&sysirq>;
  19. #address-cells = <2>;
  20. #size-cells = <2>;
  21. psci {
  22. compatible = "arm,psci-0.2";
  23. method = "smc";
  24. };
  25. cpus {
  26. #address-cells = <1>;
  27. #size-cells = <0>;
  28. cpu0: cpu@0 {
  29. device_type = "cpu";
  30. compatible = "arm,cortex-a53";
  31. enable-method = "psci";
  32. reg = <0x000>;
  33. };
  34. cpu1: cpu@1 {
  35. device_type = "cpu";
  36. compatible = "arm,cortex-a53";
  37. enable-method = "psci";
  38. reg = <0x001>;
  39. };
  40. cpu2: cpu@2 {
  41. device_type = "cpu";
  42. compatible = "arm,cortex-a53";
  43. enable-method = "psci";
  44. reg = <0x002>;
  45. };
  46. cpu3: cpu@3 {
  47. device_type = "cpu";
  48. compatible = "arm,cortex-a53";
  49. enable-method = "psci";
  50. reg = <0x003>;
  51. };
  52. cpu4: cpu@100 {
  53. device_type = "cpu";
  54. compatible = "arm,cortex-a53";
  55. enable-method = "psci";
  56. reg = <0x100>;
  57. };
  58. cpu5: cpu@101 {
  59. device_type = "cpu";
  60. compatible = "arm,cortex-a53";
  61. enable-method = "psci";
  62. reg = <0x101>;
  63. };
  64. cpu6: cpu@102 {
  65. device_type = "cpu";
  66. compatible = "arm,cortex-a53";
  67. enable-method = "psci";
  68. reg = <0x102>;
  69. };
  70. cpu7: cpu@103 {
  71. device_type = "cpu";
  72. compatible = "arm,cortex-a53";
  73. enable-method = "psci";
  74. reg = <0x103>;
  75. };
  76. cpu8: cpu@200 {
  77. device_type = "cpu";
  78. compatible = "arm,cortex-a72";
  79. enable-method = "psci";
  80. reg = <0x200>;
  81. };
  82. cpu9: cpu@201 {
  83. device_type = "cpu";
  84. compatible = "arm,cortex-a72";
  85. enable-method = "psci";
  86. reg = <0x201>;
  87. };
  88. };
  89. clk26m: oscillator@0 {
  90. compatible = "fixed-clock";
  91. #clock-cells = <0>;
  92. clock-frequency = <26000000>;
  93. clock-output-names = "clk26m";
  94. };
  95. timer {
  96. compatible = "arm,armv8-timer";
  97. interrupt-parent = <&gic>;
  98. interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
  99. <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
  100. <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
  101. <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
  102. };
  103. topckgen: topckgen@10000000 {
  104. compatible = "mediatek,mt6797-topckgen";
  105. reg = <0 0x10000000 0 0x1000>;
  106. #clock-cells = <1>;
  107. };
  108. infrasys: infracfg_ao@10001000 {
  109. compatible = "mediatek,mt6797-infracfg", "syscon";
  110. reg = <0 0x10001000 0 0x1000>;
  111. #clock-cells = <1>;
  112. };
  113. scpsys: scpsys@10006000 {
  114. compatible = "mediatek,mt6797-scpsys";
  115. #power-domain-cells = <1>;
  116. reg = <0 0x10006000 0 0x1000>;
  117. clocks = <&topckgen CLK_TOP_MUX_MFG>,
  118. <&topckgen CLK_TOP_MUX_MM>,
  119. <&topckgen CLK_TOP_MUX_VDEC>;
  120. clock-names = "mfg", "mm", "vdec";
  121. infracfg = <&infrasys>;
  122. };
  123. watchdog: watchdog@10007000 {
  124. compatible = "mediatek,mt6797-wdt", "mediatek,mt6589-wdt";
  125. reg = <0 0x10007000 0 0x100>;
  126. };
  127. apmixedsys: apmixed@1000c000 {
  128. compatible = "mediatek,mt6797-apmixedsys";
  129. reg = <0 0x1000c000 0 0x1000>;
  130. #clock-cells = <1>;
  131. };
  132. sysirq: intpol-controller@10200620 {
  133. compatible = "mediatek,mt6797-sysirq",
  134. "mediatek,mt6577-sysirq";
  135. interrupt-controller;
  136. #interrupt-cells = <3>;
  137. interrupt-parent = <&gic>;
  138. reg = <0 0x10220620 0 0x20>,
  139. <0 0x10220690 0 0x10>;
  140. };
  141. uart0: serial@11002000 {
  142. compatible = "mediatek,mt6797-uart",
  143. "mediatek,mt6577-uart";
  144. reg = <0 0x11002000 0 0x400>;
  145. interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
  146. clocks = <&infrasys CLK_INFRA_UART0>,
  147. <&infrasys CLK_INFRA_AP_DMA>;
  148. clock-names = "baud", "bus";
  149. status = "disabled";
  150. };
  151. uart1: serial@11003000 {
  152. compatible = "mediatek,mt6797-uart",
  153. "mediatek,mt6577-uart";
  154. reg = <0 0x11003000 0 0x400>;
  155. interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
  156. clocks = <&infrasys CLK_INFRA_UART1>,
  157. <&infrasys CLK_INFRA_AP_DMA>;
  158. clock-names = "baud", "bus";
  159. status = "disabled";
  160. };
  161. uart2: serial@11004000 {
  162. compatible = "mediatek,mt6797-uart",
  163. "mediatek,mt6577-uart";
  164. reg = <0 0x11004000 0 0x400>;
  165. interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
  166. clocks = <&infrasys CLK_INFRA_UART2>,
  167. <&infrasys CLK_INFRA_AP_DMA>;
  168. clock-names = "baud", "bus";
  169. status = "disabled";
  170. };
  171. uart3: serial@11005000 {
  172. compatible = "mediatek,mt6797-uart",
  173. "mediatek,mt6577-uart";
  174. reg = <0 0x11005000 0 0x400>;
  175. interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_LOW>;
  176. clocks = <&infrasys CLK_INFRA_UART3>,
  177. <&infrasys CLK_INFRA_AP_DMA>;
  178. clock-names = "baud", "bus";
  179. status = "disabled";
  180. };
  181. mmsys: mmsys_config@14000000 {
  182. compatible = "mediatek,mt6797-mmsys", "syscon";
  183. reg = <0 0x14000000 0 0x1000>;
  184. #clock-cells = <1>;
  185. };
  186. imgsys: imgsys_config@15000000 {
  187. compatible = "mediatek,mt6797-imgsys", "syscon";
  188. reg = <0 0x15000000 0 0x1000>;
  189. #clock-cells = <1>;
  190. };
  191. vdecsys: vdec_gcon@16000000 {
  192. compatible = "mediatek,mt6797-vdecsys", "syscon";
  193. reg = <0 0x16000000 0 0x10000>;
  194. #clock-cells = <1>;
  195. };
  196. vencsys: venc_gcon@17000000 {
  197. compatible = "mediatek,mt6797-vencsys", "syscon";
  198. reg = <0 0x17000000 0 0x1000>;
  199. #clock-cells = <1>;
  200. };
  201. gic: interrupt-controller@19000000 {
  202. compatible = "arm,gic-v3";
  203. #interrupt-cells = <3>;
  204. interrupt-parent = <&gic>;
  205. interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
  206. interrupt-controller;
  207. reg = <0 0x19000000 0 0x10000>, /* GICD */
  208. <0 0x19200000 0 0x200000>, /* GICR */
  209. <0 0x10240000 0 0x2000>; /* GICC */
  210. };
  211. };