msm8994.dtsi 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. /* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
  2. *
  3. * This program is free software; you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License version 2 and
  5. * only version 2 as published by the Free Software Foundation.
  6. *
  7. * This program is distributed in the hope that it will be useful,
  8. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. * GNU General Public License for more details.
  11. */
  12. #include <dt-bindings/interrupt-controller/arm-gic.h>
  13. #include <dt-bindings/clock/qcom,gcc-msm8994.h>
  14. / {
  15. model = "Qualcomm Technologies, Inc. MSM 8994";
  16. compatible = "qcom,msm8994";
  17. // msm-id and pmic-id are required by bootloader for
  18. // proper selection of dt blob
  19. qcom,msm-id = <207 0x20000>;
  20. qcom,pmic-id = <0x10009 0x1000A 0x0 0x0>;
  21. interrupt-parent = <&intc>;
  22. #address-cells = <2>;
  23. #size-cells = <2>;
  24. chosen { };
  25. cpus {
  26. #address-cells = <1>;
  27. #size-cells = <0>;
  28. cpu-map {
  29. cluster0 {
  30. core0 {
  31. cpu = <&CPU0>;
  32. };
  33. };
  34. };
  35. CPU0: cpu@0 {
  36. device_type = "cpu";
  37. compatible = "arm,cortex-a53", "arm,armv8";
  38. reg = <0x0>;
  39. next-level-cache = <&L2_0>;
  40. L2_0: l2-cache {
  41. compatible = "cache";
  42. cache-level = <2>;
  43. };
  44. };
  45. };
  46. timer {
  47. compatible = "arm,armv8-timer";
  48. interrupts = <1 2 0xff08>,
  49. <1 3 0xff08>,
  50. <1 4 0xff08>,
  51. <1 1 0xff08>;
  52. };
  53. soc: soc {
  54. #address-cells = <1>;
  55. #size-cells = <1>;
  56. ranges = <0 0 0 0xffffffff>;
  57. compatible = "simple-bus";
  58. intc: interrupt-controller@f9000000 {
  59. compatible = "qcom,msm-qgic2";
  60. interrupt-controller;
  61. #interrupt-cells = <3>;
  62. reg = <0xf9000000 0x1000>,
  63. <0xf9002000 0x1000>;
  64. };
  65. timer@f9020000 {
  66. #address-cells = <1>;
  67. #size-cells = <1>;
  68. ranges;
  69. compatible = "arm,armv7-timer-mem";
  70. reg = <0xf9020000 0x1000>;
  71. frame@f9021000 {
  72. frame-number = <0>;
  73. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
  74. <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
  75. reg = <0xf9021000 0x1000>,
  76. <0xf9022000 0x1000>;
  77. };
  78. frame@f9023000 {
  79. frame-number = <1>;
  80. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  81. reg = <0xf9023000 0x1000>;
  82. status = "disabled";
  83. };
  84. frame@f9024000 {
  85. frame-number = <2>;
  86. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
  87. reg = <0xf9024000 0x1000>;
  88. status = "disabled";
  89. };
  90. frame@f9025000 {
  91. frame-number = <3>;
  92. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
  93. reg = <0xf9025000 0x1000>;
  94. status = "disabled";
  95. };
  96. frame@f9026000 {
  97. frame-number = <4>;
  98. interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
  99. reg = <0xf9026000 0x1000>;
  100. status = "disabled";
  101. };
  102. frame@f9027000 {
  103. frame-number = <5>;
  104. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  105. reg = <0xf9027000 0x1000>;
  106. status = "disabled";
  107. };
  108. frame@f9028000 {
  109. frame-number = <6>;
  110. interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
  111. reg = <0xf9028000 0x1000>;
  112. status = "disabled";
  113. };
  114. };
  115. restart@fc4ab000 {
  116. compatible = "qcom,pshold";
  117. reg = <0xfc4ab000 0x4>;
  118. };
  119. msmgpio: pinctrl@fd510000 {
  120. compatible = "qcom,msm8994-pinctrl";
  121. reg = <0xfd510000 0x4000>;
  122. interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
  123. gpio-controller;
  124. #gpio-cells = <2>;
  125. interrupt-controller;
  126. #interrupt-cells = <2>;
  127. };
  128. blsp1_uart2: serial@f991e000 {
  129. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  130. reg = <0xf991e000 0x1000>;
  131. interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
  132. status = "disabled";
  133. clock-names = "core", "iface";
  134. clocks = <&clock_gcc GCC_BLSP1_UART2_APPS_CLK>,
  135. <&clock_gcc GCC_BLSP1_AHB_CLK>;
  136. };
  137. tcsr_mutex_regs: syscon@fd484000 {
  138. compatible = "syscon";
  139. reg = <0xfd484000 0x2000>;
  140. };
  141. clock_gcc: clock-controller@fc400000 {
  142. compatible = "qcom,gcc-msm8994";
  143. #clock-cells = <1>;
  144. #reset-cells = <1>;
  145. #power-domain-cells = <1>;
  146. reg = <0xfc400000 0x2000>;
  147. };
  148. };
  149. memory {
  150. device_type = "memory";
  151. // We expect the bootloader to fill in the reg
  152. reg = <0 0 0 0>;
  153. };
  154. xo_board: xo_board {
  155. compatible = "fixed-clock";
  156. #clock-cells = <0>;
  157. clock-frequency = <19200000>;
  158. };
  159. sleep_clk: sleep_clk {
  160. compatible = "fixed-clock";
  161. #clock-cells = <0>;
  162. clock-frequency = <32768>;
  163. };
  164. reserved-memory {
  165. #address-cells = <2>;
  166. #size-cells = <2>;
  167. ranges;
  168. smem_mem: smem_region@6a00000 {
  169. reg = <0x0 0x6a00000 0x0 0x200000>;
  170. no-map;
  171. };
  172. };
  173. tcsr_mutex: hwlock {
  174. compatible = "qcom,tcsr-mutex";
  175. syscon = <&tcsr_mutex_regs 0 0x80>;
  176. #hwlock-cells = <1>;
  177. };
  178. qcom,smem@6a00000 {
  179. compatible = "qcom,smem";
  180. memory-region = <&smem_mem>;
  181. hwlocks = <&tcsr_mutex 3>;
  182. };
  183. };
  184. #include "msm8994-pins.dtsi"