zynq-7000.dtsi 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  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. amba {
  17. compatible = "simple-bus";
  18. #address-cells = <1>;
  19. #size-cells = <1>;
  20. interrupt-parent = <&intc>;
  21. ranges;
  22. intc: interrupt-controller@f8f01000 {
  23. compatible = "arm,cortex-a9-gic";
  24. #interrupt-cells = <3>;
  25. #address-cells = <1>;
  26. interrupt-controller;
  27. reg = <0xF8F01000 0x1000>,
  28. <0xF8F00100 0x100>;
  29. };
  30. L2: cache-controller {
  31. compatible = "arm,pl310-cache";
  32. reg = <0xF8F02000 0x1000>;
  33. arm,data-latency = <2 3 2>;
  34. arm,tag-latency = <2 3 2>;
  35. cache-unified;
  36. cache-level = <2>;
  37. };
  38. uart0: uart@e0000000 {
  39. compatible = "xlnx,xuartps";
  40. reg = <0xE0000000 0x1000>;
  41. interrupts = <0 27 4>;
  42. clock = <50000000>;
  43. };
  44. uart1: uart@e0001000 {
  45. compatible = "xlnx,xuartps";
  46. reg = <0xE0001000 0x1000>;
  47. interrupts = <0 50 4>;
  48. clock = <50000000>;
  49. };
  50. slcr: slcr@f8000000 {
  51. compatible = "xlnx,zynq-slcr";
  52. reg = <0xF8000000 0x1000>;
  53. clocks {
  54. #address-cells = <1>;
  55. #size-cells = <0>;
  56. ps_clk: ps_clk {
  57. #clock-cells = <0>;
  58. compatible = "fixed-clock";
  59. /* clock-frequency set in board-specific file */
  60. clock-output-names = "ps_clk";
  61. };
  62. armpll: armpll {
  63. #clock-cells = <0>;
  64. compatible = "xlnx,zynq-pll";
  65. clocks = <&ps_clk>;
  66. reg = <0x100 0x110>;
  67. clock-output-names = "armpll";
  68. };
  69. ddrpll: ddrpll {
  70. #clock-cells = <0>;
  71. compatible = "xlnx,zynq-pll";
  72. clocks = <&ps_clk>;
  73. reg = <0x104 0x114>;
  74. clock-output-names = "ddrpll";
  75. };
  76. iopll: iopll {
  77. #clock-cells = <0>;
  78. compatible = "xlnx,zynq-pll";
  79. clocks = <&ps_clk>;
  80. reg = <0x108 0x118>;
  81. clock-output-names = "iopll";
  82. };
  83. uart_clk: uart_clk {
  84. #clock-cells = <1>;
  85. compatible = "xlnx,zynq-periph-clock";
  86. clocks = <&iopll &armpll &ddrpll>;
  87. reg = <0x154>;
  88. clock-output-names = "uart0_ref_clk",
  89. "uart1_ref_clk";
  90. };
  91. cpu_clk: cpu_clk {
  92. #clock-cells = <1>;
  93. compatible = "xlnx,zynq-cpu-clock";
  94. clocks = <&iopll &armpll &ddrpll>;
  95. reg = <0x120 0x1C4>;
  96. clock-output-names = "cpu_6x4x",
  97. "cpu_3x2x",
  98. "cpu_2x",
  99. "cpu_1x";
  100. };
  101. };
  102. };
  103. ttc0: ttc0@f8001000 {
  104. #address-cells = <1>;
  105. #size-cells = <0>;
  106. compatible = "xlnx,ttc";
  107. reg = <0xF8001000 0x1000>;
  108. clocks = <&cpu_clk 3>;
  109. clock-names = "cpu_1x";
  110. clock-ranges;
  111. ttc0_0: ttc0.0 {
  112. status = "disabled";
  113. reg = <0>;
  114. interrupts = <0 10 4>;
  115. };
  116. ttc0_1: ttc0.1 {
  117. status = "disabled";
  118. reg = <1>;
  119. interrupts = <0 11 4>;
  120. };
  121. ttc0_2: ttc0.2 {
  122. status = "disabled";
  123. reg = <2>;
  124. interrupts = <0 12 4>;
  125. };
  126. };
  127. ttc1: ttc1@f8002000 {
  128. #interrupt-parent = <&intc>;
  129. #address-cells = <1>;
  130. #size-cells = <0>;
  131. compatible = "xlnx,ttc";
  132. reg = <0xF8002000 0x1000>;
  133. clocks = <&cpu_clk 3>;
  134. clock-names = "cpu_1x";
  135. clock-ranges;
  136. ttc1_0: ttc1.0 {
  137. status = "disabled";
  138. reg = <0>;
  139. interrupts = <0 37 4>;
  140. };
  141. ttc1_1: ttc1.1 {
  142. status = "disabled";
  143. reg = <1>;
  144. interrupts = <0 38 4>;
  145. };
  146. ttc1_2: ttc1.2 {
  147. status = "disabled";
  148. reg = <2>;
  149. interrupts = <0 39 4>;
  150. };
  151. };
  152. };
  153. };