xpedite5200.dts 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Copyright (C) 2009 Extreme Engineering Solutions, Inc.
  4. * Based on TQM8548 device tree
  5. *
  6. * XPedite5200 PrPMC/XMC module based on MPC8548E
  7. */
  8. /dts-v1/;
  9. / {
  10. model = "xes,xpedite5200";
  11. compatible = "xes,xpedite5200", "xes,MPC8548";
  12. #address-cells = <1>;
  13. #size-cells = <1>;
  14. aliases {
  15. ethernet0 = &enet0;
  16. ethernet1 = &enet1;
  17. ethernet2 = &enet2;
  18. ethernet3 = &enet3;
  19. serial0 = &serial0;
  20. serial1 = &serial1;
  21. pci0 = &pci0;
  22. };
  23. cpus {
  24. #address-cells = <1>;
  25. #size-cells = <0>;
  26. PowerPC,8548@0 {
  27. device_type = "cpu";
  28. reg = <0>;
  29. d-cache-line-size = <32>; // 32 bytes
  30. i-cache-line-size = <32>; // 32 bytes
  31. d-cache-size = <0x8000>; // L1, 32K
  32. i-cache-size = <0x8000>; // L1, 32K
  33. next-level-cache = <&L2>;
  34. };
  35. };
  36. memory {
  37. device_type = "memory";
  38. reg = <0x0 0x0>; // Filled in by U-Boot
  39. };
  40. soc@ef000000 {
  41. #address-cells = <1>;
  42. #size-cells = <1>;
  43. device_type = "soc";
  44. ranges = <0x0 0xef000000 0x100000>;
  45. bus-frequency = <0>;
  46. compatible = "fsl,mpc8548-immr", "simple-bus";
  47. ecm-law@0 {
  48. compatible = "fsl,ecm-law";
  49. reg = <0x0 0x1000>;
  50. fsl,num-laws = <12>;
  51. };
  52. ecm@1000 {
  53. compatible = "fsl,mpc8548-ecm", "fsl,ecm";
  54. reg = <0x1000 0x1000>;
  55. interrupts = <17 2>;
  56. interrupt-parent = <&mpic>;
  57. };
  58. memory-controller@2000 {
  59. compatible = "fsl,mpc8548-memory-controller";
  60. reg = <0x2000 0x1000>;
  61. interrupt-parent = <&mpic>;
  62. interrupts = <18 2>;
  63. };
  64. L2: l2-cache-controller@20000 {
  65. compatible = "fsl,mpc8548-l2-cache-controller";
  66. reg = <0x20000 0x1000>;
  67. cache-line-size = <32>; // 32 bytes
  68. cache-size = <0x80000>; // L2, 512K
  69. interrupt-parent = <&mpic>;
  70. interrupts = <16 2>;
  71. };
  72. /* On-card I2C */
  73. i2c@3000 {
  74. #address-cells = <1>;
  75. #size-cells = <0>;
  76. cell-index = <0>;
  77. compatible = "fsl-i2c";
  78. reg = <0x3000 0x100>;
  79. interrupts = <43 2>;
  80. interrupt-parent = <&mpic>;
  81. dfsrr;
  82. /*
  83. * Board GPIO:
  84. * 0: BRD_CFG0 (1: P14 IO present)
  85. * 1: BRD_CFG1 (1: FP ethernet present)
  86. * 2: BRD_CFG2 (1: XMC IO present)
  87. * 3: XMC root complex indicator
  88. * 4: Flash boot device indicator
  89. * 5: Flash write protect enable
  90. * 6: PMC monarch indicator
  91. * 7: PMC EREADY
  92. */
  93. gpio1: gpio@18 {
  94. compatible = "nxp,pca9556";
  95. reg = <0x18>;
  96. #gpio-cells = <2>;
  97. gpio-controller;
  98. polarity = <0x00>;
  99. };
  100. /* P14 GPIO */
  101. gpio2: gpio@19 {
  102. compatible = "nxp,pca9556";
  103. reg = <0x19>;
  104. #gpio-cells = <2>;
  105. gpio-controller;
  106. polarity = <0x00>;
  107. };
  108. eeprom@50 {
  109. compatible = "atmel,at24c16";
  110. reg = <0x50>;
  111. };
  112. rtc@68 {
  113. compatible = "st,m41t00",
  114. "dallas,ds1338";
  115. reg = <0x68>;
  116. };
  117. dtt@34 {
  118. compatible = "maxim,max1237";
  119. reg = <0x34>;
  120. };
  121. };
  122. /* Off-card I2C */
  123. i2c@3100 {
  124. #address-cells = <1>;
  125. #size-cells = <0>;
  126. cell-index = <1>;
  127. compatible = "fsl-i2c";
  128. reg = <0x3100 0x100>;
  129. interrupts = <43 2>;
  130. interrupt-parent = <&mpic>;
  131. dfsrr;
  132. };
  133. dma@21300 {
  134. #address-cells = <1>;
  135. #size-cells = <1>;
  136. compatible = "fsl,mpc8548-dma", "fsl,eloplus-dma";
  137. reg = <0x21300 0x4>;
  138. ranges = <0x0 0x21100 0x200>;
  139. cell-index = <0>;
  140. dma-channel@0 {
  141. compatible = "fsl,mpc8548-dma-channel",
  142. "fsl,eloplus-dma-channel";
  143. reg = <0x0 0x80>;
  144. cell-index = <0>;
  145. interrupt-parent = <&mpic>;
  146. interrupts = <20 2>;
  147. };
  148. dma-channel@80 {
  149. compatible = "fsl,mpc8548-dma-channel",
  150. "fsl,eloplus-dma-channel";
  151. reg = <0x80 0x80>;
  152. cell-index = <1>;
  153. interrupt-parent = <&mpic>;
  154. interrupts = <21 2>;
  155. };
  156. dma-channel@100 {
  157. compatible = "fsl,mpc8548-dma-channel",
  158. "fsl,eloplus-dma-channel";
  159. reg = <0x100 0x80>;
  160. cell-index = <2>;
  161. interrupt-parent = <&mpic>;
  162. interrupts = <22 2>;
  163. };
  164. dma-channel@180 {
  165. compatible = "fsl,mpc8548-dma-channel",
  166. "fsl,eloplus-dma-channel";
  167. reg = <0x180 0x80>;
  168. cell-index = <3>;
  169. interrupt-parent = <&mpic>;
  170. interrupts = <23 2>;
  171. };
  172. };
  173. /* eTSEC1: Front panel port 0 */
  174. enet0: ethernet@24000 {
  175. #address-cells = <1>;
  176. #size-cells = <1>;
  177. cell-index = <0>;
  178. device_type = "network";
  179. model = "eTSEC";
  180. compatible = "gianfar";
  181. reg = <0x24000 0x1000>;
  182. ranges = <0x0 0x24000 0x1000>;
  183. local-mac-address = [ 00 00 00 00 00 00 ];
  184. interrupts = <29 2 30 2 34 2>;
  185. interrupt-parent = <&mpic>;
  186. tbi-handle = <&tbi0>;
  187. phy-handle = <&phy0>;
  188. mdio@520 {
  189. #address-cells = <1>;
  190. #size-cells = <0>;
  191. compatible = "fsl,gianfar-mdio";
  192. reg = <0x520 0x20>;
  193. phy0: ethernet-phy@1 {
  194. interrupt-parent = <&mpic>;
  195. interrupts = <8 1>;
  196. reg = <0x1>;
  197. };
  198. phy1: ethernet-phy@2 {
  199. interrupt-parent = <&mpic>;
  200. interrupts = <8 1>;
  201. reg = <0x2>;
  202. };
  203. phy2: ethernet-phy@3 {
  204. interrupt-parent = <&mpic>;
  205. interrupts = <8 1>;
  206. reg = <0x3>;
  207. };
  208. phy3: ethernet-phy@4 {
  209. interrupt-parent = <&mpic>;
  210. interrupts = <8 1>;
  211. reg = <0x4>;
  212. };
  213. tbi0: tbi-phy@11 {
  214. reg = <0x11>;
  215. device_type = "tbi-phy";
  216. };
  217. };
  218. };
  219. /* eTSEC2: Front panel port 1 */
  220. enet1: ethernet@25000 {
  221. #address-cells = <1>;
  222. #size-cells = <1>;
  223. cell-index = <1>;
  224. device_type = "network";
  225. model = "eTSEC";
  226. compatible = "gianfar";
  227. reg = <0x25000 0x1000>;
  228. ranges = <0x0 0x25000 0x1000>;
  229. local-mac-address = [ 00 00 00 00 00 00 ];
  230. interrupts = <35 2 36 2 40 2>;
  231. interrupt-parent = <&mpic>;
  232. tbi-handle = <&tbi1>;
  233. phy-handle = <&phy1>;
  234. mdio@520 {
  235. #address-cells = <1>;
  236. #size-cells = <0>;
  237. compatible = "fsl,gianfar-tbi";
  238. reg = <0x520 0x20>;
  239. tbi1: tbi-phy@11 {
  240. reg = <0x11>;
  241. device_type = "tbi-phy";
  242. };
  243. };
  244. };
  245. /* eTSEC3: Rear panel port 2 */
  246. enet2: ethernet@26000 {
  247. #address-cells = <1>;
  248. #size-cells = <1>;
  249. cell-index = <2>;
  250. device_type = "network";
  251. model = "eTSEC";
  252. compatible = "gianfar";
  253. reg = <0x26000 0x1000>;
  254. ranges = <0x0 0x26000 0x1000>;
  255. local-mac-address = [ 00 00 00 00 00 00 ];
  256. interrupts = <31 2 32 2 33 2>;
  257. interrupt-parent = <&mpic>;
  258. tbi-handle = <&tbi2>;
  259. phy-handle = <&phy2>;
  260. mdio@520 {
  261. #address-cells = <1>;
  262. #size-cells = <0>;
  263. compatible = "fsl,gianfar-tbi";
  264. reg = <0x520 0x20>;
  265. tbi2: tbi-phy@11 {
  266. reg = <0x11>;
  267. device_type = "tbi-phy";
  268. };
  269. };
  270. };
  271. /* eTSEC4: Rear panel port 3 */
  272. enet3: ethernet@27000 {
  273. #address-cells = <1>;
  274. #size-cells = <1>;
  275. cell-index = <3>;
  276. device_type = "network";
  277. model = "eTSEC";
  278. compatible = "gianfar";
  279. reg = <0x27000 0x1000>;
  280. ranges = <0x0 0x27000 0x1000>;
  281. local-mac-address = [ 00 00 00 00 00 00 ];
  282. interrupts = <37 2 38 2 39 2>;
  283. interrupt-parent = <&mpic>;
  284. tbi-handle = <&tbi3>;
  285. phy-handle = <&phy3>;
  286. mdio@520 {
  287. #address-cells = <1>;
  288. #size-cells = <0>;
  289. compatible = "fsl,gianfar-tbi";
  290. reg = <0x520 0x20>;
  291. tbi3: tbi-phy@11 {
  292. reg = <0x11>;
  293. device_type = "tbi-phy";
  294. };
  295. };
  296. };
  297. serial0: serial@4500 {
  298. cell-index = <0>;
  299. device_type = "serial";
  300. compatible = "fsl,ns16550", "ns16550";
  301. reg = <0x4500 0x100>;
  302. clock-frequency = <0>;
  303. current-speed = <115200>;
  304. interrupts = <42 2>;
  305. interrupt-parent = <&mpic>;
  306. };
  307. serial1: serial@4600 {
  308. cell-index = <1>;
  309. device_type = "serial";
  310. compatible = "fsl,ns16550", "ns16550";
  311. reg = <0x4600 0x100>;
  312. clock-frequency = <0>;
  313. current-speed = <115200>;
  314. interrupts = <42 2>;
  315. interrupt-parent = <&mpic>;
  316. };
  317. global-utilities@e0000 { // global utilities reg
  318. compatible = "fsl,mpc8548-guts";
  319. reg = <0xe0000 0x1000>;
  320. fsl,has-rstcr;
  321. };
  322. mpic: pic@40000 {
  323. interrupt-controller;
  324. #address-cells = <0>;
  325. #interrupt-cells = <2>;
  326. reg = <0x40000 0x40000>;
  327. compatible = "chrp,open-pic";
  328. device_type = "open-pic";
  329. };
  330. };
  331. localbus@ef005000 {
  332. compatible = "fsl,mpc8548-localbus", "fsl,pq3-localbus",
  333. "simple-bus";
  334. #address-cells = <2>;
  335. #size-cells = <1>;
  336. reg = <0xef005000 0x100>; // BRx, ORx, etc.
  337. interrupt-parent = <&mpic>;
  338. interrupts = <19 2>;
  339. ranges = <
  340. 0 0x0 0xfc000000 0x04000000 // NOR boot flash
  341. 1 0x0 0xf8000000 0x04000000 // NOR expansion flash
  342. 2 0x0 0xef800000 0x00010000 // NAND CE1
  343. 3 0x0 0xef840000 0x00010000 // NAND CE2
  344. >;
  345. nor-boot@0,0 {
  346. #address-cells = <1>;
  347. #size-cells = <1>;
  348. compatible = "cfi-flash";
  349. reg = <0 0x0 0x4000000>;
  350. bank-width = <2>;
  351. partition@0 {
  352. label = "Primary OS";
  353. reg = <0x00000000 0x180000>;
  354. };
  355. partition@180000 {
  356. label = "Secondary OS";
  357. reg = <0x00180000 0x180000>;
  358. };
  359. partition@300000 {
  360. label = "User";
  361. reg = <0x00300000 0x3c80000>;
  362. };
  363. partition@3f80000 {
  364. label = "Boot firmware";
  365. reg = <0x03f80000 0x80000>;
  366. };
  367. };
  368. nor-alternate@1,0 {
  369. #address-cells = <1>;
  370. #size-cells = <1>;
  371. compatible = "cfi-flash";
  372. reg = <1 0x0 0x4000000>;
  373. bank-width = <2>;
  374. partition@0 {
  375. label = "Filesystem";
  376. reg = <0x00000000 0x3f80000>;
  377. };
  378. partition@3f80000 {
  379. label = "Alternate boot firmware";
  380. reg = <0x03f80000 0x80000>;
  381. };
  382. };
  383. nand@2,0 {
  384. #address-cells = <1>;
  385. #size-cells = <1>;
  386. compatible = "xes,address-ctl-nand";
  387. reg = <2 0x0 0x10000>;
  388. cle-line = <0x8>; /* CLE tied to A3 */
  389. ale-line = <0x10>; /* ALE tied to A4 */
  390. /* U-Boot should fix this up */
  391. partition@0 {
  392. label = "NAND Filesystem";
  393. reg = <0 0x40000000>;
  394. };
  395. };
  396. };
  397. /* PMC interface */
  398. pci0: pci@ef008000 {
  399. #interrupt-cells = <1>;
  400. #size-cells = <2>;
  401. #address-cells = <3>;
  402. compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci";
  403. device_type = "pci";
  404. reg = <0xef008000 0x1000>;
  405. clock-frequency = <33333333>;
  406. interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
  407. interrupt-map = <
  408. /* IDSEL */
  409. 0xe000 0 0 1 &mpic 2 1
  410. 0xe000 0 0 2 &mpic 3 1>;
  411. interrupt-parent = <&mpic>;
  412. interrupts = <24 2>;
  413. bus-range = <0 0>;
  414. ranges = <0x02000000 0 0x80000000 0x80000000 0 0x40000000
  415. 0x01000000 0 0x00000000 0xe8000000 0 0x00800000>;
  416. };
  417. /* XMC PCIe is not yet enabled in U-Boot on XPedite5200 */
  418. };