klondike.dts 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. /*
  2. * Device Tree for Klondike (APM8018X) board.
  3. *
  4. * Copyright (c) 2010, Applied Micro Circuits Corporation
  5. * Author: Tanmay Inamdar <tinamdar@apm.com>
  6. *
  7. * This program is free software; you can redistribute it and/or
  8. * modify it under the terms of the GNU General Public License as
  9. * published by the Free Software Foundation; either version 2 of
  10. * the License, or (at your option) any later version.
  11. *
  12. * This program is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with this program; if not, write to the Free Software
  19. * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  20. * MA 02111-1307 USA
  21. *
  22. */
  23. /dts-v1/;
  24. / {
  25. #address-cells = <1>;
  26. #size-cells = <1>;
  27. model = "apm,klondike";
  28. compatible = "apm,klondike";
  29. dcr-parent = <&{/cpus/cpu@0}>;
  30. aliases {
  31. ethernet0 = &EMAC0;
  32. ethernet1 = &EMAC1;
  33. };
  34. cpus {
  35. #address-cells = <1>;
  36. #size-cells = <0>;
  37. cpu@0 {
  38. device_type = "cpu";
  39. model = "PowerPC,apm8018x";
  40. reg = <0x00000000>;
  41. clock-frequency = <300000000>; /* Filled in by U-Boot */
  42. timebase-frequency = <300000000>; /* Filled in by U-Boot */
  43. i-cache-line-size = <32>;
  44. d-cache-line-size = <32>;
  45. i-cache-size = <16384>; /* 16 kB */
  46. d-cache-size = <16384>; /* 16 kB */
  47. dcr-controller;
  48. dcr-access-method = "native";
  49. };
  50. };
  51. memory {
  52. device_type = "memory";
  53. reg = <0x00000000 0x20000000>; /* Filled in by U-Boot */
  54. };
  55. UIC0: interrupt-controller {
  56. compatible = "ibm,uic";
  57. interrupt-controller;
  58. cell-index = <0>;
  59. dcr-reg = <0x0c0 0x010>;
  60. #address-cells = <0>;
  61. #size-cells = <0>;
  62. #interrupt-cells = <2>;
  63. };
  64. UIC1: interrupt-controller1 {
  65. compatible = "ibm,uic";
  66. interrupt-controller;
  67. cell-index = <1>;
  68. dcr-reg = <0x0d0 0x010>;
  69. #address-cells = <0>;
  70. #size-cells = <0>;
  71. #interrupt-cells = <2>;
  72. interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
  73. interrupt-parent = <&UIC0>;
  74. };
  75. UIC2: interrupt-controller2 {
  76. compatible = "ibm,uic";
  77. interrupt-controller;
  78. cell-index = <2>;
  79. dcr-reg = <0x0e0 0x010>;
  80. #address-cells = <0>;
  81. #size-cells = <0>;
  82. #interrupt-cells = <2>;
  83. interrupts = <0x0a 0x4 0x0b 0x4>; /* cascade */
  84. interrupt-parent = <&UIC0>;
  85. };
  86. UIC3: interrupt-controller3 {
  87. compatible = "ibm,uic";
  88. interrupt-controller;
  89. cell-index = <3>;
  90. dcr-reg = <0x0f0 0x010>;
  91. #address-cells = <0>;
  92. #size-cells = <0>;
  93. #interrupt-cells = <2>;
  94. interrupts = <0x10 0x4 0x11 0x4>; /* cascade */
  95. interrupt-parent = <&UIC0>;
  96. };
  97. plb {
  98. compatible = "ibm,plb4";
  99. #address-cells = <1>;
  100. #size-cells = <1>;
  101. ranges;
  102. clock-frequency = <0>; /* Filled in by U-Boot */
  103. SDRAM0: memory-controller {
  104. compatible = "ibm,sdram-apm8018x";
  105. dcr-reg = <0x010 0x002>;
  106. };
  107. MAL0: mcmal {
  108. compatible = "ibm,mcmal2";
  109. dcr-reg = <0x180 0x062>;
  110. num-tx-chans = <2>;
  111. num-rx-chans = <16>;
  112. #address-cells = <0>;
  113. #size-cells = <0>;
  114. interrupt-parent = <&UIC1>;
  115. interrupts = </*TXEOB*/ 0x6 0x4
  116. /*RXEOB*/ 0x7 0x4
  117. /*SERR*/ 0x1 0x4
  118. /*TXDE*/ 0x2 0x4
  119. /*RXDE*/ 0x3 0x4>;
  120. };
  121. POB0: opb {
  122. compatible = "ibm,opb";
  123. #address-cells = <1>;
  124. #size-cells = <1>;
  125. ranges = <0x20000000 0x20000000 0x30000000
  126. 0x50000000 0x50000000 0x10000000
  127. 0x60000000 0x60000000 0x10000000
  128. 0xFE000000 0xFE000000 0x00010000>;
  129. dcr-reg = <0x100 0x020>;
  130. clock-frequency = <300000000>; /* Filled in by U-Boot */
  131. RGMII0: emac-rgmii@400a2000 {
  132. compatible = "ibm,rgmii";
  133. reg = <0x400a2000 0x00000010>;
  134. has-mdio;
  135. };
  136. TAH0: emac-tah@400a3000 {
  137. compatible = "ibm,tah";
  138. reg = <0x400a3000 0x100>;
  139. };
  140. TAH1: emac-tah@400a4000 {
  141. compatible = "ibm,tah";
  142. reg = <0x400a4000 0x100>;
  143. };
  144. EMAC0: ethernet@400a0000 {
  145. compatible = "ibm,emac4", "ibm-emac4sync";
  146. interrupt-parent = <&EMAC0>;
  147. interrupts = <0x0>;
  148. #interrupt-cells = <1>;
  149. #address-cells = <0>;
  150. #size-cells = <0>;
  151. interrupt-map = </*Status*/ 0x0 &UIC0 0x13 0x4>;
  152. reg = <0x400a0000 0x00000100>;
  153. local-mac-address = [000000000000]; /* Filled in by U-Boot */
  154. mal-device = <&MAL0>;
  155. mal-tx-channel = <0x0>;
  156. mal-rx-channel = <0x0>;
  157. cell-index = <0>;
  158. max-frame-size = <9000>;
  159. rx-fifo-size = <4096>;
  160. tx-fifo-size = <2048>;
  161. phy-mode = "rgmii";
  162. phy-address = <0x2>;
  163. turbo = "no";
  164. phy-map = <0x00000000>;
  165. rgmii-device = <&RGMII0>;
  166. rgmii-channel = <0>;
  167. tah-device = <&TAH0>;
  168. tah-channel = <0>;
  169. has-inverted-stacr-oc;
  170. has-new-stacr-staopc;
  171. };
  172. EMAC1: ethernet@400a1000 {
  173. compatible = "ibm,emac4", "ibm-emac4sync";
  174. status = "disabled";
  175. interrupt-parent = <&EMAC1>;
  176. interrupts = <0x0>;
  177. #interrupt-cells = <1>;
  178. #address-cells = <0>;
  179. #size-cells = <0>;
  180. interrupt-map = </*Status*/ 0x0 &UIC0 0x14 0x4>;
  181. reg = <0x400a1000 0x00000100>;
  182. local-mac-address = [000000000000]; /* Filled in by U-Boot */
  183. mal-device = <&MAL0>;
  184. mal-tx-channel = <1>;
  185. mal-rx-channel = <8>;
  186. cell-index = <1>;
  187. max-frame-size = <9000>;
  188. rx-fifo-size = <4096>;
  189. tx-fifo-size = <2048>;
  190. phy-mode = "rgmii";
  191. phy-address = <0x3>;
  192. turbo = "no";
  193. phy-map = <0x00000000>;
  194. rgmii-device = <&RGMII0>;
  195. rgmii-channel = <1>;
  196. tah-device = <&TAH1>;
  197. tah-channel = <0>;
  198. has-inverted-stacr-oc;
  199. has-new-stacr-staopc;
  200. mdio-device = <&EMAC0>;
  201. };
  202. };
  203. };
  204. chosen {
  205. linux,stdout-path = "/plb/opb/serial@50001000";
  206. };
  207. };