mt8135.dtsi 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. /*
  2. * Copyright (c) 2014 MediaTek Inc.
  3. * Author: Joe.C <yingjoe.chen@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. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. */
  14. #include <dt-bindings/clock/mt8135-clk.h>
  15. #include <dt-bindings/interrupt-controller/irq.h>
  16. #include <dt-bindings/interrupt-controller/arm-gic.h>
  17. #include <dt-bindings/reset/mt8135-resets.h>
  18. #include "skeleton64.dtsi"
  19. #include "mt8135-pinfunc.h"
  20. / {
  21. compatible = "mediatek,mt8135";
  22. interrupt-parent = <&sysirq>;
  23. cpu-map {
  24. cluster0 {
  25. core0 {
  26. cpu = <&cpu0>;
  27. };
  28. core1 {
  29. cpu = <&cpu1>;
  30. };
  31. };
  32. cluster1 {
  33. core0 {
  34. cpu = <&cpu2>;
  35. };
  36. core1 {
  37. cpu = <&cpu3>;
  38. };
  39. };
  40. };
  41. cpus {
  42. #address-cells = <1>;
  43. #size-cells = <0>;
  44. enable-method = "mediatek,mt81xx-tz-smp";
  45. cpu0: cpu@0 {
  46. device_type = "cpu";
  47. compatible = "arm,cortex-a7";
  48. reg = <0x000>;
  49. };
  50. cpu1: cpu@1 {
  51. device_type = "cpu";
  52. compatible = "arm,cortex-a7";
  53. reg = <0x001>;
  54. };
  55. cpu2: cpu@100 {
  56. device_type = "cpu";
  57. compatible = "arm,cortex-a15";
  58. reg = <0x100>;
  59. };
  60. cpu3: cpu@101 {
  61. device_type = "cpu";
  62. compatible = "arm,cortex-a15";
  63. reg = <0x101>;
  64. };
  65. };
  66. reserved-memory {
  67. #address-cells = <2>;
  68. #size-cells = <2>;
  69. ranges;
  70. trustzone-bootinfo@80002000 {
  71. compatible = "mediatek,trustzone-bootinfo";
  72. reg = <0 0x80002000 0 0x1000>;
  73. };
  74. };
  75. clocks {
  76. #address-cells = <2>;
  77. #size-cells = <2>;
  78. compatible = "simple-bus";
  79. ranges;
  80. system_clk: dummy13m {
  81. compatible = "fixed-clock";
  82. clock-frequency = <13000000>;
  83. #clock-cells = <0>;
  84. };
  85. rtc_clk: dummy32k {
  86. compatible = "fixed-clock";
  87. clock-frequency = <32000>;
  88. #clock-cells = <0>;
  89. };
  90. clk26m: clk26m {
  91. compatible = "fixed-clock";
  92. #clock-cells = <0>;
  93. clock-frequency = <26000000>;
  94. };
  95. };
  96. timer {
  97. compatible = "arm,armv7-timer";
  98. interrupt-parent = <&gic>;
  99. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) |
  100. IRQ_TYPE_LEVEL_LOW)>,
  101. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) |
  102. IRQ_TYPE_LEVEL_LOW)>,
  103. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) |
  104. IRQ_TYPE_LEVEL_LOW)>,
  105. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) |
  106. IRQ_TYPE_LEVEL_LOW)>;
  107. clock-frequency = <13000000>;
  108. arm,cpu-registers-not-fw-configured;
  109. };
  110. soc {
  111. #address-cells = <2>;
  112. #size-cells = <2>;
  113. compatible = "simple-bus";
  114. ranges;
  115. topckgen: topckgen@10000000 {
  116. compatible = "mediatek,mt8135-topckgen";
  117. reg = <0 0x10000000 0 0x1000>;
  118. #clock-cells = <1>;
  119. };
  120. infracfg: infracfg@10001000 {
  121. #reset-cells = <1>;
  122. #clock-cells = <1>;
  123. compatible = "mediatek,mt8135-infracfg", "syscon";
  124. reg = <0 0x10001000 0 0x1000>;
  125. };
  126. pericfg: pericfg@10003000 {
  127. #reset-cells = <1>;
  128. #clock-cells = <1>;
  129. compatible = "mediatek,mt8135-pericfg", "syscon";
  130. reg = <0 0x10003000 0 0x1000>;
  131. };
  132. /*
  133. * Pinctrl access register at 0x10005000 and 0x1020c000 through
  134. * regmap. Register 0x1000b000 is used by EINT.
  135. */
  136. pio: pinctrl@10005000 {
  137. compatible = "mediatek,mt8135-pinctrl";
  138. reg = <0 0x1000b000 0 0x1000>;
  139. mediatek,pctl-regmap = <&syscfg_pctl_a &syscfg_pctl_b>;
  140. pins-are-numbered;
  141. gpio-controller;
  142. #gpio-cells = <2>;
  143. interrupt-controller;
  144. #interrupt-cells = <2>;
  145. interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
  146. <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
  147. <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
  148. };
  149. syscfg_pctl_a: syscfg_pctl_a@10005000 {
  150. compatible = "mediatek,mt8135-pctl-a-syscfg", "syscon";
  151. reg = <0 0x10005000 0 0x1000>;
  152. };
  153. timer: timer@10008000 {
  154. compatible = "mediatek,mt8135-timer",
  155. "mediatek,mt6577-timer";
  156. reg = <0 0x10008000 0 0x80>;
  157. interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_LOW>;
  158. clocks = <&system_clk>, <&rtc_clk>;
  159. clock-names = "system-clk", "rtc-clk";
  160. };
  161. pwrap: pwrap@1000f000 {
  162. compatible = "mediatek,mt8135-pwrap";
  163. reg = <0 0x1000f000 0 0x1000>,
  164. <0 0x11017000 0 0x1000>;
  165. reg-names = "pwrap", "pwrap-bridge";
  166. interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
  167. resets = <&infracfg MT8135_INFRA_PMIC_WRAP_RST>,
  168. <&pericfg MT8135_PERI_PWRAP_BRIDGE_SW_RST>;
  169. reset-names = "pwrap", "pwrap-bridge";
  170. clocks = <&clk26m>, <&clk26m>;
  171. clock-names = "spi", "wrap";
  172. };
  173. sysirq: interrupt-controller@10200030 {
  174. compatible = "mediatek,mt8135-sysirq",
  175. "mediatek,mt6577-sysirq";
  176. interrupt-controller;
  177. #interrupt-cells = <3>;
  178. interrupt-parent = <&gic>;
  179. reg = <0 0x10200030 0 0x1c>;
  180. };
  181. apmixedsys: apmixedsys@10209000 {
  182. compatible = "mediatek,mt8135-apmixedsys";
  183. reg = <0 0x10209000 0 0x1000>;
  184. #clock-cells = <1>;
  185. };
  186. syscfg_pctl_b: syscfg_pctl_b@1020c000 {
  187. compatible = "mediatek,mt8135-pctl-b-syscfg", "syscon";
  188. reg = <0 0x1020c000 0 0x1000>;
  189. };
  190. gic: interrupt-controller@10211000 {
  191. compatible = "arm,cortex-a15-gic";
  192. interrupt-controller;
  193. #interrupt-cells = <3>;
  194. interrupt-parent = <&gic>;
  195. reg = <0 0x10211000 0 0x1000>,
  196. <0 0x10212000 0 0x1000>,
  197. <0 0x10214000 0 0x2000>,
  198. <0 0x10216000 0 0x2000>;
  199. };
  200. uart0: serial@11006000 {
  201. compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
  202. reg = <0 0x11006000 0 0x400>;
  203. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>;
  204. clocks = <&pericfg CLK_PERI_UART0_SEL>, <&pericfg CLK_PERI_UART0>;
  205. clock-names = "baud", "bus";
  206. status = "disabled";
  207. };
  208. uart1: serial@11007000 {
  209. compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
  210. reg = <0 0x11007000 0 0x400>;
  211. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
  212. clocks = <&pericfg CLK_PERI_UART1_SEL>, <&pericfg CLK_PERI_UART1>;
  213. clock-names = "baud", "bus";
  214. status = "disabled";
  215. };
  216. uart2: serial@11008000 {
  217. compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
  218. reg = <0 0x11008000 0 0x400>;
  219. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>;
  220. clocks = <&pericfg CLK_PERI_UART2_SEL>, <&pericfg CLK_PERI_UART2>;
  221. clock-names = "baud", "bus";
  222. status = "disabled";
  223. };
  224. uart3: serial@11009000 {
  225. compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
  226. reg = <0 0x11009000 0 0x400>;
  227. interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>;
  228. clocks = <&pericfg CLK_PERI_UART3_SEL>, <&pericfg CLK_PERI_UART3>;
  229. clock-names = "baud", "bus";
  230. status = "disabled";
  231. };
  232. };
  233. };