mt8173.dtsi 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. /*
  2. * Copyright (c) 2014 MediaTek Inc.
  3. * Author: Eddie Huang <eddie.huang@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/interrupt-controller/irq.h>
  14. #include <dt-bindings/interrupt-controller/arm-gic.h>
  15. #include "mt8173-pinfunc.h"
  16. / {
  17. compatible = "mediatek,mt8173";
  18. interrupt-parent = <&sysirq>;
  19. #address-cells = <2>;
  20. #size-cells = <2>;
  21. cpus {
  22. #address-cells = <1>;
  23. #size-cells = <0>;
  24. cpu-map {
  25. cluster0 {
  26. core0 {
  27. cpu = <&cpu0>;
  28. };
  29. core1 {
  30. cpu = <&cpu1>;
  31. };
  32. };
  33. cluster1 {
  34. core0 {
  35. cpu = <&cpu2>;
  36. };
  37. core1 {
  38. cpu = <&cpu3>;
  39. };
  40. };
  41. };
  42. cpu0: cpu@0 {
  43. device_type = "cpu";
  44. compatible = "arm,cortex-a53";
  45. reg = <0x000>;
  46. };
  47. cpu1: cpu@1 {
  48. device_type = "cpu";
  49. compatible = "arm,cortex-a53";
  50. reg = <0x001>;
  51. enable-method = "psci";
  52. };
  53. cpu2: cpu@100 {
  54. device_type = "cpu";
  55. compatible = "arm,cortex-a57";
  56. reg = <0x100>;
  57. enable-method = "psci";
  58. };
  59. cpu3: cpu@101 {
  60. device_type = "cpu";
  61. compatible = "arm,cortex-a57";
  62. reg = <0x101>;
  63. enable-method = "psci";
  64. };
  65. };
  66. psci {
  67. compatible = "arm,psci";
  68. method = "smc";
  69. cpu_suspend = <0x84000001>;
  70. cpu_off = <0x84000002>;
  71. cpu_on = <0x84000003>;
  72. };
  73. uart_clk: dummy26m {
  74. compatible = "fixed-clock";
  75. clock-frequency = <26000000>;
  76. #clock-cells = <0>;
  77. };
  78. timer {
  79. compatible = "arm,armv8-timer";
  80. interrupt-parent = <&gic>;
  81. interrupts = <GIC_PPI 13
  82. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  83. <GIC_PPI 14
  84. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  85. <GIC_PPI 11
  86. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  87. <GIC_PPI 10
  88. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  89. };
  90. soc {
  91. #address-cells = <2>;
  92. #size-cells = <2>;
  93. compatible = "simple-bus";
  94. ranges;
  95. /*
  96. * Pinctrl access register at 0x10005000 through regmap.
  97. * Register 0x1000b000 is used by EINT.
  98. */
  99. pio: pinctrl@10005000 {
  100. compatible = "mediatek,mt8173-pinctrl";
  101. reg = <0 0x1000b000 0 0x1000>;
  102. mediatek,pctl-regmap = <&syscfg_pctl_a>;
  103. pins-are-numbered;
  104. gpio-controller;
  105. #gpio-cells = <2>;
  106. interrupt-controller;
  107. #interrupt-cells = <2>;
  108. interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
  109. <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
  110. <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
  111. };
  112. syscfg_pctl_a: syscfg_pctl_a@10005000 {
  113. compatible = "mediatek,mt8173-pctl-a-syscfg", "syscon";
  114. reg = <0 0x10005000 0 0x1000>;
  115. };
  116. sysirq: intpol-controller@10200620 {
  117. compatible = "mediatek,mt8173-sysirq",
  118. "mediatek,mt6577-sysirq";
  119. interrupt-controller;
  120. #interrupt-cells = <3>;
  121. interrupt-parent = <&gic>;
  122. reg = <0 0x10200620 0 0x20>;
  123. };
  124. gic: interrupt-controller@10220000 {
  125. compatible = "arm,gic-400";
  126. #interrupt-cells = <3>;
  127. interrupt-parent = <&gic>;
  128. interrupt-controller;
  129. reg = <0 0x10221000 0 0x1000>,
  130. <0 0x10222000 0 0x2000>,
  131. <0 0x10224000 0 0x2000>,
  132. <0 0x10226000 0 0x2000>;
  133. interrupts = <GIC_PPI 9
  134. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  135. };
  136. uart0: serial@11002000 {
  137. compatible = "mediatek,mt8173-uart",
  138. "mediatek,mt6577-uart";
  139. reg = <0 0x11002000 0 0x400>;
  140. interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>;
  141. clocks = <&uart_clk>;
  142. status = "disabled";
  143. };
  144. uart1: serial@11003000 {
  145. compatible = "mediatek,mt8173-uart",
  146. "mediatek,mt6577-uart";
  147. reg = <0 0x11003000 0 0x400>;
  148. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>;
  149. clocks = <&uart_clk>;
  150. status = "disabled";
  151. };
  152. uart2: serial@11004000 {
  153. compatible = "mediatek,mt8173-uart",
  154. "mediatek,mt6577-uart";
  155. reg = <0 0x11004000 0 0x400>;
  156. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>;
  157. clocks = <&uart_clk>;
  158. status = "disabled";
  159. };
  160. uart3: serial@11005000 {
  161. compatible = "mediatek,mt8173-uart",
  162. "mediatek,mt6577-uart";
  163. reg = <0 0x11005000 0 0x400>;
  164. interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_LOW>;
  165. clocks = <&uart_clk>;
  166. status = "disabled";
  167. };
  168. };
  169. };