zynq-7000.dtsi 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. /*
  2. * Copyright (C) 2011 Xilinx
  3. *
  4. * This software is licensed under the terms of the GNU General Public
  5. * License version 2, as published by the Free Software Foundation, and
  6. * may be copied, distributed, and modified under those terms.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. */
  13. /include/ "skeleton.dtsi"
  14. / {
  15. compatible = "xlnx,zynq-7000";
  16. pmu {
  17. compatible = "arm,cortex-a9-pmu";
  18. interrupts = <0 5 4>, <0 6 4>;
  19. interrupt-parent = <&intc>;
  20. reg = < 0xf8891000 0x1000 0xf8893000 0x1000 >;
  21. };
  22. amba {
  23. compatible = "simple-bus";
  24. #address-cells = <1>;
  25. #size-cells = <1>;
  26. interrupt-parent = <&intc>;
  27. ranges;
  28. intc: interrupt-controller@f8f01000 {
  29. compatible = "arm,cortex-a9-gic";
  30. #interrupt-cells = <3>;
  31. #address-cells = <1>;
  32. interrupt-controller;
  33. reg = <0xF8F01000 0x1000>,
  34. <0xF8F00100 0x100>;
  35. };
  36. L2: cache-controller {
  37. compatible = "arm,pl310-cache";
  38. reg = <0xF8F02000 0x1000>;
  39. arm,data-latency = <2 3 2>;
  40. arm,tag-latency = <2 3 2>;
  41. cache-unified;
  42. cache-level = <2>;
  43. };
  44. uart0: uart@e0000000 {
  45. compatible = "xlnx,xuartps";
  46. reg = <0xE0000000 0x1000>;
  47. interrupts = <0 27 4>;
  48. clocks = <&uart_clk 0>;
  49. };
  50. uart1: uart@e0001000 {
  51. compatible = "xlnx,xuartps";
  52. reg = <0xE0001000 0x1000>;
  53. interrupts = <0 50 4>;
  54. clocks = <&uart_clk 1>;
  55. };
  56. slcr: slcr@f8000000 {
  57. compatible = "xlnx,zynq-slcr";
  58. reg = <0xF8000000 0x1000>;
  59. clocks {
  60. #address-cells = <1>;
  61. #size-cells = <0>;
  62. ps_clk: ps_clk {
  63. #clock-cells = <0>;
  64. compatible = "fixed-clock";
  65. /* clock-frequency set in board-specific file */
  66. clock-output-names = "ps_clk";
  67. };
  68. armpll: armpll {
  69. #clock-cells = <0>;
  70. compatible = "xlnx,zynq-pll";
  71. clocks = <&ps_clk>;
  72. reg = <0x100 0x110>;
  73. clock-output-names = "armpll";
  74. };
  75. ddrpll: ddrpll {
  76. #clock-cells = <0>;
  77. compatible = "xlnx,zynq-pll";
  78. clocks = <&ps_clk>;
  79. reg = <0x104 0x114>;
  80. clock-output-names = "ddrpll";
  81. };
  82. iopll: iopll {
  83. #clock-cells = <0>;
  84. compatible = "xlnx,zynq-pll";
  85. clocks = <&ps_clk>;
  86. reg = <0x108 0x118>;
  87. clock-output-names = "iopll";
  88. };
  89. uart_clk: uart_clk {
  90. #clock-cells = <1>;
  91. compatible = "xlnx,zynq-periph-clock";
  92. clocks = <&iopll &armpll &ddrpll>;
  93. reg = <0x154>;
  94. clock-output-names = "uart0_ref_clk",
  95. "uart1_ref_clk";
  96. };
  97. cpu_clk: cpu_clk {
  98. #clock-cells = <1>;
  99. compatible = "xlnx,zynq-cpu-clock";
  100. clocks = <&iopll &armpll &ddrpll>;
  101. reg = <0x120 0x1C4>;
  102. clock-output-names = "cpu_6x4x",
  103. "cpu_3x2x",
  104. "cpu_2x",
  105. "cpu_1x";
  106. };
  107. };
  108. };
  109. ttc0: ttc0@f8001000 {
  110. #address-cells = <1>;
  111. #size-cells = <0>;
  112. compatible = "xlnx,ttc";
  113. reg = <0xF8001000 0x1000>;
  114. clocks = <&cpu_clk 3>;
  115. clock-names = "cpu_1x";
  116. clock-ranges;
  117. ttc0_0: ttc0.0 {
  118. status = "disabled";
  119. reg = <0>;
  120. interrupts = <0 10 4>;
  121. };
  122. ttc0_1: ttc0.1 {
  123. status = "disabled";
  124. reg = <1>;
  125. interrupts = <0 11 4>;
  126. };
  127. ttc0_2: ttc0.2 {
  128. status = "disabled";
  129. reg = <2>;
  130. interrupts = <0 12 4>;
  131. };
  132. };
  133. ttc1: ttc1@f8002000 {
  134. #interrupt-parent = <&intc>;
  135. #address-cells = <1>;
  136. #size-cells = <0>;
  137. compatible = "xlnx,ttc";
  138. reg = <0xF8002000 0x1000>;
  139. clocks = <&cpu_clk 3>;
  140. clock-names = "cpu_1x";
  141. clock-ranges;
  142. ttc1_0: ttc1.0 {
  143. status = "disabled";
  144. reg = <0>;
  145. interrupts = <0 37 4>;
  146. };
  147. ttc1_1: ttc1.1 {
  148. status = "disabled";
  149. reg = <1>;
  150. interrupts = <0 38 4>;
  151. };
  152. ttc1_2: ttc1.2 {
  153. status = "disabled";
  154. reg = <2>;
  155. interrupts = <0 39 4>;
  156. };
  157. };
  158. };
  159. };