apm-storm.dtsi 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. /*
  2. * dts file for AppliedMicro (APM) X-Gene Storm SOC
  3. *
  4. * Copyright (C) 2013, Applied Micro Circuits Corporation
  5. *
  6. * This program is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU General Public License as
  8. * published by the Free Software Foundation; either version 2 of
  9. * the License, or (at your option) any later version.
  10. */
  11. / {
  12. compatible = "apm,xgene-storm";
  13. interrupt-parent = <&gic>;
  14. #address-cells = <2>;
  15. #size-cells = <2>;
  16. cpus {
  17. #address-cells = <2>;
  18. #size-cells = <0>;
  19. cpu@000 {
  20. device_type = "cpu";
  21. compatible = "apm,potenza", "arm,armv8";
  22. reg = <0x0 0x000>;
  23. enable-method = "spin-table";
  24. cpu-release-addr = <0x1 0x0000fff8>;
  25. };
  26. cpu@001 {
  27. device_type = "cpu";
  28. compatible = "apm,potenza", "arm,armv8";
  29. reg = <0x0 0x001>;
  30. enable-method = "spin-table";
  31. cpu-release-addr = <0x1 0x0000fff8>;
  32. };
  33. cpu@100 {
  34. device_type = "cpu";
  35. compatible = "apm,potenza", "arm,armv8";
  36. reg = <0x0 0x100>;
  37. enable-method = "spin-table";
  38. cpu-release-addr = <0x1 0x0000fff8>;
  39. };
  40. cpu@101 {
  41. device_type = "cpu";
  42. compatible = "apm,potenza", "arm,armv8";
  43. reg = <0x0 0x101>;
  44. enable-method = "spin-table";
  45. cpu-release-addr = <0x1 0x0000fff8>;
  46. };
  47. cpu@200 {
  48. device_type = "cpu";
  49. compatible = "apm,potenza", "arm,armv8";
  50. reg = <0x0 0x200>;
  51. enable-method = "spin-table";
  52. cpu-release-addr = <0x1 0x0000fff8>;
  53. };
  54. cpu@201 {
  55. device_type = "cpu";
  56. compatible = "apm,potenza", "arm,armv8";
  57. reg = <0x0 0x201>;
  58. enable-method = "spin-table";
  59. cpu-release-addr = <0x1 0x0000fff8>;
  60. };
  61. cpu@300 {
  62. device_type = "cpu";
  63. compatible = "apm,potenza", "arm,armv8";
  64. reg = <0x0 0x300>;
  65. enable-method = "spin-table";
  66. cpu-release-addr = <0x1 0x0000fff8>;
  67. };
  68. cpu@301 {
  69. device_type = "cpu";
  70. compatible = "apm,potenza", "arm,armv8";
  71. reg = <0x0 0x301>;
  72. enable-method = "spin-table";
  73. cpu-release-addr = <0x1 0x0000fff8>;
  74. };
  75. };
  76. gic: interrupt-controller@78010000 {
  77. compatible = "arm,cortex-a15-gic";
  78. #interrupt-cells = <3>;
  79. interrupt-controller;
  80. reg = <0x0 0x78010000 0x0 0x1000>, /* GIC Dist */
  81. <0x0 0x78020000 0x0 0x1000>, /* GIC CPU */
  82. <0x0 0x78040000 0x0 0x2000>, /* GIC VCPU Control */
  83. <0x0 0x78060000 0x0 0x2000>; /* GIC VCPU */
  84. interrupts = <1 9 0xf04>; /* GIC Maintenence IRQ */
  85. };
  86. timer {
  87. compatible = "arm,armv8-timer";
  88. interrupts = <1 0 0xff01>, /* Secure Phys IRQ */
  89. <1 13 0xff01>, /* Non-secure Phys IRQ */
  90. <1 14 0xff01>, /* Virt IRQ */
  91. <1 15 0xff01>; /* Hyp IRQ */
  92. clock-frequency = <50000000>;
  93. };
  94. soc {
  95. compatible = "simple-bus";
  96. #address-cells = <2>;
  97. #size-cells = <2>;
  98. ranges;
  99. clocks {
  100. #address-cells = <2>;
  101. #size-cells = <2>;
  102. ranges;
  103. refclk: refclk {
  104. compatible = "fixed-clock";
  105. #clock-cells = <1>;
  106. clock-frequency = <100000000>;
  107. clock-output-names = "refclk";
  108. };
  109. pcppll: pcppll@17000100 {
  110. compatible = "apm,xgene-pcppll-clock";
  111. #clock-cells = <1>;
  112. clocks = <&refclk 0>;
  113. clock-names = "pcppll";
  114. reg = <0x0 0x17000100 0x0 0x1000>;
  115. clock-output-names = "pcppll";
  116. type = <0>;
  117. };
  118. socpll: socpll@17000120 {
  119. compatible = "apm,xgene-socpll-clock";
  120. #clock-cells = <1>;
  121. clocks = <&refclk 0>;
  122. clock-names = "socpll";
  123. reg = <0x0 0x17000120 0x0 0x1000>;
  124. clock-output-names = "socpll";
  125. type = <1>;
  126. };
  127. socplldiv2: socplldiv2 {
  128. compatible = "fixed-factor-clock";
  129. #clock-cells = <1>;
  130. clocks = <&socpll 0>;
  131. clock-names = "socplldiv2";
  132. clock-mult = <1>;
  133. clock-div = <2>;
  134. clock-output-names = "socplldiv2";
  135. };
  136. qmlclk: qmlclk {
  137. compatible = "apm,xgene-device-clock";
  138. #clock-cells = <1>;
  139. clocks = <&socplldiv2 0>;
  140. clock-names = "qmlclk";
  141. reg = <0x0 0x1703C000 0x0 0x1000>;
  142. reg-names = "csr-reg";
  143. clock-output-names = "qmlclk";
  144. };
  145. ethclk: ethclk {
  146. compatible = "apm,xgene-device-clock";
  147. #clock-cells = <1>;
  148. clocks = <&socplldiv2 0>;
  149. clock-names = "ethclk";
  150. reg = <0x0 0x17000000 0x0 0x1000>;
  151. reg-names = "div-reg";
  152. divider-offset = <0x238>;
  153. divider-width = <0x9>;
  154. divider-shift = <0x0>;
  155. clock-output-names = "ethclk";
  156. };
  157. eth8clk: eth8clk {
  158. compatible = "apm,xgene-device-clock";
  159. #clock-cells = <1>;
  160. clocks = <&ethclk 0>;
  161. clock-names = "eth8clk";
  162. reg = <0x0 0x1702C000 0x0 0x1000>;
  163. reg-names = "csr-reg";
  164. clock-output-names = "eth8clk";
  165. };
  166. };
  167. serial0: serial@1c020000 {
  168. device_type = "serial";
  169. compatible = "ns16550";
  170. reg = <0 0x1c020000 0x0 0x1000>;
  171. reg-shift = <2>;
  172. clock-frequency = <10000000>; /* Updated by bootloader */
  173. interrupt-parent = <&gic>;
  174. interrupts = <0x0 0x4c 0x4>;
  175. };
  176. };
  177. };