xpedite5301.dts 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641
  1. /*
  2. * Copyright (C) 2008 Extreme Engineering Solutions, Inc.
  3. * Based on MPC8572DS device tree from Freescale Semiconductor, Inc.
  4. *
  5. * XPedite5301 PMC/XMC module based on MPC8572E
  6. *
  7. * This is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License version 2 as
  9. * published by the Free Software Foundation.
  10. */
  11. /dts-v1/;
  12. / {
  13. model = "xes,xpedite5301";
  14. compatible = "xes,xpedite5301", "xes,MPC8572";
  15. #address-cells = <2>;
  16. #size-cells = <2>;
  17. form-factor = "PMC/XMC";
  18. boot-bank = <0x0>; /* 0: Primary flash, 1: Secondary flash */
  19. aliases {
  20. ethernet0 = &enet0;
  21. ethernet1 = &enet1;
  22. serial0 = &serial0;
  23. serial1 = &serial1;
  24. pci1 = &pci1;
  25. pci2 = &pci2;
  26. };
  27. cpus {
  28. #address-cells = <1>;
  29. #size-cells = <0>;
  30. PowerPC,8572@0 {
  31. device_type = "cpu";
  32. reg = <0x0>;
  33. d-cache-line-size = <32>; // 32 bytes
  34. i-cache-line-size = <32>; // 32 bytes
  35. d-cache-size = <0x8000>; // L1, 32K
  36. i-cache-size = <0x8000>; // L1, 32K
  37. timebase-frequency = <0>;
  38. bus-frequency = <0>;
  39. clock-frequency = <0>;
  40. next-level-cache = <&L2>;
  41. };
  42. PowerPC,8572@1 {
  43. device_type = "cpu";
  44. reg = <0x1>;
  45. d-cache-line-size = <32>; // 32 bytes
  46. i-cache-line-size = <32>; // 32 bytes
  47. d-cache-size = <0x8000>; // L1, 32K
  48. i-cache-size = <0x8000>; // L1, 32K
  49. timebase-frequency = <0>;
  50. bus-frequency = <0>;
  51. clock-frequency = <0>;
  52. next-level-cache = <&L2>;
  53. };
  54. };
  55. memory {
  56. device_type = "memory";
  57. reg = <0x0 0x0 0x0 0x0>; // Filled in by U-Boot
  58. };
  59. localbus@ef005000 {
  60. #address-cells = <2>;
  61. #size-cells = <1>;
  62. compatible = "fsl,mpc8572-elbc", "fsl,elbc", "simple-bus";
  63. reg = <0 0xef005000 0 0x1000>;
  64. interrupts = <19 2>;
  65. interrupt-parent = <&mpic>;
  66. /* Local bus region mappings */
  67. ranges = <0 0 0 0xf8000000 0x8000000 /* CS0: Boot flash */
  68. 1 0 0 0xf0000000 0x8000000 /* CS1: Alternate flash */
  69. 2 0 0 0xef800000 0x40000 /* CS2: NAND CE1 */
  70. 3 0 0 0xef840000 0x40000>; /* CS3: NAND CE2 */
  71. nor-boot@0,0 {
  72. compatible = "amd,s29gl01gp", "cfi-flash";
  73. bank-width = <2>;
  74. reg = <0 0 0x8000000>; /* 128MB */
  75. #address-cells = <1>;
  76. #size-cells = <1>;
  77. partition@0 {
  78. label = "Primary user space";
  79. reg = <0x00000000 0x6f00000>; /* 111 MB */
  80. };
  81. partition@6f00000 {
  82. label = "Primary kernel";
  83. reg = <0x6f00000 0x1000000>; /* 16 MB */
  84. };
  85. partition@7f00000 {
  86. label = "Primary DTB";
  87. reg = <0x7f00000 0x40000>; /* 256 KB */
  88. };
  89. partition@7f40000 {
  90. label = "Primary U-Boot environment";
  91. reg = <0x7f40000 0x40000>; /* 256 KB */
  92. };
  93. partition@7f80000 {
  94. label = "Primary U-Boot";
  95. reg = <0x7f80000 0x80000>; /* 512 KB */
  96. read-only;
  97. };
  98. };
  99. nor-alternate@1,0 {
  100. compatible = "amd,s29gl01gp", "cfi-flash";
  101. bank-width = <2>;
  102. //reg = <0xf0000000 0x08000000>; /* 128MB */
  103. reg = <1 0 0x8000000>; /* 128MB */
  104. #address-cells = <1>;
  105. #size-cells = <1>;
  106. partition@0 {
  107. label = "Secondary user space";
  108. reg = <0x00000000 0x6f00000>; /* 111 MB */
  109. };
  110. partition@6f00000 {
  111. label = "Secondary kernel";
  112. reg = <0x6f00000 0x1000000>; /* 16 MB */
  113. };
  114. partition@7f00000 {
  115. label = "Secondary DTB";
  116. reg = <0x7f00000 0x40000>; /* 256 KB */
  117. };
  118. partition@7f40000 {
  119. label = "Secondary U-Boot environment";
  120. reg = <0x7f40000 0x40000>; /* 256 KB */
  121. };
  122. partition@7f80000 {
  123. label = "Secondary U-Boot";
  124. reg = <0x7f80000 0x80000>; /* 512 KB */
  125. read-only;
  126. };
  127. };
  128. nand@2,0 {
  129. #address-cells = <1>;
  130. #size-cells = <1>;
  131. /*
  132. * Actual part could be ST Micro NAND08GW3B2A (1 GB),
  133. * Micron MT29F8G08DAA (2x 512 MB), or Micron
  134. * MT29F16G08FAA (2x 1 GB), depending on the build
  135. * configuration
  136. */
  137. compatible = "fsl,mpc8572-fcm-nand",
  138. "fsl,elbc-fcm-nand";
  139. reg = <2 0 0x40000>;
  140. /* U-Boot should fix this up if chip size > 1 GB */
  141. partition@0 {
  142. label = "NAND Filesystem";
  143. reg = <0 0x40000000>;
  144. };
  145. };
  146. };
  147. soc8572@ef000000 {
  148. #address-cells = <1>;
  149. #size-cells = <1>;
  150. device_type = "soc";
  151. compatible = "fsl,mpc8572-immr", "simple-bus";
  152. ranges = <0x0 0 0xef000000 0x100000>;
  153. bus-frequency = <0>; // Filled out by uboot.
  154. ecm-law@0 {
  155. compatible = "fsl,ecm-law";
  156. reg = <0x0 0x1000>;
  157. fsl,num-laws = <12>;
  158. };
  159. ecm@1000 {
  160. compatible = "fsl,mpc8572-ecm", "fsl,ecm";
  161. reg = <0x1000 0x1000>;
  162. interrupts = <17 2>;
  163. interrupt-parent = <&mpic>;
  164. };
  165. memory-controller@2000 {
  166. compatible = "fsl,mpc8572-memory-controller";
  167. reg = <0x2000 0x1000>;
  168. interrupt-parent = <&mpic>;
  169. interrupts = <18 2>;
  170. };
  171. memory-controller@6000 {
  172. compatible = "fsl,mpc8572-memory-controller";
  173. reg = <0x6000 0x1000>;
  174. interrupt-parent = <&mpic>;
  175. interrupts = <18 2>;
  176. };
  177. L2: l2-cache-controller@20000 {
  178. compatible = "fsl,mpc8572-l2-cache-controller";
  179. reg = <0x20000 0x1000>;
  180. cache-line-size = <32>; // 32 bytes
  181. cache-size = <0x100000>; // L2, 1M
  182. interrupt-parent = <&mpic>;
  183. interrupts = <16 2>;
  184. };
  185. i2c@3000 {
  186. #address-cells = <1>;
  187. #size-cells = <0>;
  188. cell-index = <0>;
  189. compatible = "fsl-i2c";
  190. reg = <0x3000 0x100>;
  191. interrupts = <43 2>;
  192. interrupt-parent = <&mpic>;
  193. dfsrr;
  194. temp-sensor@48 {
  195. compatible = "dallas,ds1631", "dallas,ds1621";
  196. reg = <0x48>;
  197. };
  198. temp-sensor@4c {
  199. compatible = "adi,adt7461";
  200. reg = <0x4c>;
  201. };
  202. cpu-supervisor@51 {
  203. compatible = "dallas,ds4510";
  204. reg = <0x51>;
  205. };
  206. eeprom@54 {
  207. compatible = "atmel,at24c128b";
  208. reg = <0x54>;
  209. };
  210. rtc@68 {
  211. compatible = "st,m41t00",
  212. "dallas,ds1338";
  213. reg = <0x68>;
  214. };
  215. pcie-switch@70 {
  216. compatible = "plx,pex8518";
  217. reg = <0x70>;
  218. };
  219. gpio1: gpio@18 {
  220. compatible = "nxp,pca9557";
  221. reg = <0x18>;
  222. #gpio-cells = <2>;
  223. gpio-controller;
  224. polarity = <0x00>;
  225. };
  226. gpio2: gpio@1c {
  227. compatible = "nxp,pca9557";
  228. reg = <0x1c>;
  229. #gpio-cells = <2>;
  230. gpio-controller;
  231. polarity = <0x00>;
  232. };
  233. gpio3: gpio@1e {
  234. compatible = "nxp,pca9557";
  235. reg = <0x1e>;
  236. #gpio-cells = <2>;
  237. gpio-controller;
  238. polarity = <0x00>;
  239. };
  240. gpio4: gpio@1f {
  241. compatible = "nxp,pca9557";
  242. reg = <0x1f>;
  243. #gpio-cells = <2>;
  244. gpio-controller;
  245. polarity = <0x00>;
  246. };
  247. };
  248. i2c@3100 {
  249. #address-cells = <1>;
  250. #size-cells = <0>;
  251. cell-index = <1>;
  252. compatible = "fsl-i2c";
  253. reg = <0x3100 0x100>;
  254. interrupts = <43 2>;
  255. interrupt-parent = <&mpic>;
  256. dfsrr;
  257. };
  258. dma@c300 {
  259. #address-cells = <1>;
  260. #size-cells = <1>;
  261. compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma";
  262. reg = <0xc300 0x4>;
  263. ranges = <0x0 0xc100 0x200>;
  264. cell-index = <1>;
  265. dma-channel@0 {
  266. compatible = "fsl,mpc8572-dma-channel",
  267. "fsl,eloplus-dma-channel";
  268. reg = <0x0 0x80>;
  269. cell-index = <0>;
  270. interrupt-parent = <&mpic>;
  271. interrupts = <76 2>;
  272. };
  273. dma-channel@80 {
  274. compatible = "fsl,mpc8572-dma-channel",
  275. "fsl,eloplus-dma-channel";
  276. reg = <0x80 0x80>;
  277. cell-index = <1>;
  278. interrupt-parent = <&mpic>;
  279. interrupts = <77 2>;
  280. };
  281. dma-channel@100 {
  282. compatible = "fsl,mpc8572-dma-channel",
  283. "fsl,eloplus-dma-channel";
  284. reg = <0x100 0x80>;
  285. cell-index = <2>;
  286. interrupt-parent = <&mpic>;
  287. interrupts = <78 2>;
  288. };
  289. dma-channel@180 {
  290. compatible = "fsl,mpc8572-dma-channel",
  291. "fsl,eloplus-dma-channel";
  292. reg = <0x180 0x80>;
  293. cell-index = <3>;
  294. interrupt-parent = <&mpic>;
  295. interrupts = <79 2>;
  296. };
  297. };
  298. dma@21300 {
  299. #address-cells = <1>;
  300. #size-cells = <1>;
  301. compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma";
  302. reg = <0x21300 0x4>;
  303. ranges = <0x0 0x21100 0x200>;
  304. cell-index = <0>;
  305. dma-channel@0 {
  306. compatible = "fsl,mpc8572-dma-channel",
  307. "fsl,eloplus-dma-channel";
  308. reg = <0x0 0x80>;
  309. cell-index = <0>;
  310. interrupt-parent = <&mpic>;
  311. interrupts = <20 2>;
  312. };
  313. dma-channel@80 {
  314. compatible = "fsl,mpc8572-dma-channel",
  315. "fsl,eloplus-dma-channel";
  316. reg = <0x80 0x80>;
  317. cell-index = <1>;
  318. interrupt-parent = <&mpic>;
  319. interrupts = <21 2>;
  320. };
  321. dma-channel@100 {
  322. compatible = "fsl,mpc8572-dma-channel",
  323. "fsl,eloplus-dma-channel";
  324. reg = <0x100 0x80>;
  325. cell-index = <2>;
  326. interrupt-parent = <&mpic>;
  327. interrupts = <22 2>;
  328. };
  329. dma-channel@180 {
  330. compatible = "fsl,mpc8572-dma-channel",
  331. "fsl,eloplus-dma-channel";
  332. reg = <0x180 0x80>;
  333. cell-index = <3>;
  334. interrupt-parent = <&mpic>;
  335. interrupts = <23 2>;
  336. };
  337. };
  338. /* eTSEC 1 */
  339. enet0: ethernet@24000 {
  340. #address-cells = <1>;
  341. #size-cells = <1>;
  342. cell-index = <0>;
  343. device_type = "network";
  344. model = "eTSEC";
  345. compatible = "gianfar";
  346. reg = <0x24000 0x1000>;
  347. ranges = <0x0 0x24000 0x1000>;
  348. local-mac-address = [ 00 00 00 00 00 00 ];
  349. interrupts = <29 2 30 2 34 2>;
  350. interrupt-parent = <&mpic>;
  351. tbi-handle = <&tbi0>;
  352. phy-handle = <&phy0>;
  353. phy-connection-type = "sgmii";
  354. mdio@520 {
  355. #address-cells = <1>;
  356. #size-cells = <0>;
  357. compatible = "fsl,gianfar-mdio";
  358. reg = <0x520 0x20>;
  359. phy0: ethernet-phy@1 {
  360. interrupt-parent = <&mpic>;
  361. interrupts = <8 1>;
  362. reg = <0x1>;
  363. };
  364. phy1: ethernet-phy@2 {
  365. interrupt-parent = <&mpic>;
  366. interrupts = <8 1>;
  367. reg = <0x2>;
  368. };
  369. tbi0: tbi-phy@11 {
  370. reg = <0x11>;
  371. device_type = "tbi-phy";
  372. };
  373. };
  374. };
  375. /* eTSEC 2 */
  376. enet1: ethernet@25000 {
  377. #address-cells = <1>;
  378. #size-cells = <1>;
  379. cell-index = <1>;
  380. device_type = "network";
  381. model = "eTSEC";
  382. compatible = "gianfar";
  383. reg = <0x25000 0x1000>;
  384. ranges = <0x0 0x25000 0x1000>;
  385. local-mac-address = [ 00 00 00 00 00 00 ];
  386. interrupts = <35 2 36 2 40 2>;
  387. interrupt-parent = <&mpic>;
  388. tbi-handle = <&tbi1>;
  389. phy-handle = <&phy1>;
  390. phy-connection-type = "sgmii";
  391. mdio@520 {
  392. #address-cells = <1>;
  393. #size-cells = <0>;
  394. compatible = "fsl,gianfar-tbi";
  395. reg = <0x520 0x20>;
  396. tbi1: tbi-phy@11 {
  397. reg = <0x11>;
  398. device_type = "tbi-phy";
  399. };
  400. };
  401. };
  402. /* UART0 */
  403. serial0: serial@4500 {
  404. cell-index = <0>;
  405. device_type = "serial";
  406. compatible = "fsl,ns16550", "ns16550";
  407. reg = <0x4500 0x100>;
  408. clock-frequency = <0>;
  409. interrupts = <42 2>;
  410. interrupt-parent = <&mpic>;
  411. };
  412. /* UART1 */
  413. serial1: serial@4600 {
  414. cell-index = <1>;
  415. device_type = "serial";
  416. compatible = "fsl,ns16550", "ns16550";
  417. reg = <0x4600 0x100>;
  418. clock-frequency = <0>;
  419. interrupts = <42 2>;
  420. interrupt-parent = <&mpic>;
  421. };
  422. global-utilities@e0000 { //global utilities block
  423. compatible = "fsl,mpc8572-guts";
  424. reg = <0xe0000 0x1000>;
  425. fsl,has-rstcr;
  426. };
  427. msi@41600 {
  428. compatible = "fsl,mpc8572-msi", "fsl,mpic-msi";
  429. reg = <0x41600 0x80>;
  430. msi-available-ranges = <0 0x100>;
  431. interrupts = <
  432. 0xe0 0
  433. 0xe1 0
  434. 0xe2 0
  435. 0xe3 0
  436. 0xe4 0
  437. 0xe5 0
  438. 0xe6 0
  439. 0xe7 0>;
  440. interrupt-parent = <&mpic>;
  441. };
  442. crypto@30000 {
  443. compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
  444. "fsl,sec2.1", "fsl,sec2.0";
  445. reg = <0x30000 0x10000>;
  446. interrupts = <45 2 58 2>;
  447. interrupt-parent = <&mpic>;
  448. fsl,num-channels = <4>;
  449. fsl,channel-fifo-len = <24>;
  450. fsl,exec-units-mask = <0x9fe>;
  451. fsl,descriptor-types-mask = <0x3ab0ebf>;
  452. };
  453. mpic: pic@40000 {
  454. interrupt-controller;
  455. #address-cells = <0>;
  456. #interrupt-cells = <2>;
  457. reg = <0x40000 0x40000>;
  458. compatible = "chrp,open-pic";
  459. device_type = "open-pic";
  460. };
  461. gpio0: gpio@f000 {
  462. compatible = "fsl,mpc8572-gpio";
  463. reg = <0xf000 0x1000>;
  464. interrupts = <47 2>;
  465. interrupt-parent = <&mpic>;
  466. #gpio-cells = <2>;
  467. gpio-controller;
  468. };
  469. gpio-leds {
  470. compatible = "gpio-leds";
  471. heartbeat {
  472. label = "Heartbeat";
  473. gpios = <&gpio0 4 1>;
  474. linux,default-trigger = "heartbeat";
  475. };
  476. yellow {
  477. label = "Yellow";
  478. gpios = <&gpio0 5 1>;
  479. };
  480. red {
  481. label = "Red";
  482. gpios = <&gpio0 6 1>;
  483. };
  484. green {
  485. label = "Green";
  486. gpios = <&gpio0 7 1>;
  487. };
  488. };
  489. /* PME (pattern-matcher) */
  490. pme@10000 {
  491. compatible = "fsl,mpc8572-pme", "pme8572";
  492. reg = <0x10000 0x5000>;
  493. interrupts = <57 2 64 2 65 2 66 2 67 2>;
  494. interrupt-parent = <&mpic>;
  495. };
  496. tlu@2f000 {
  497. compatible = "fsl,mpc8572-tlu", "fsl_tlu";
  498. reg = <0x2f000 0x1000>;
  499. interrupts = <61 2>;
  500. interrupt-parent = <&mpic>;
  501. };
  502. tlu@15000 {
  503. compatible = "fsl,mpc8572-tlu", "fsl_tlu";
  504. reg = <0x15000 0x1000>;
  505. interrupts = <75 2>;
  506. interrupt-parent = <&mpic>;
  507. };
  508. };
  509. /*
  510. * PCI Express controller 3 @ ef008000 is not used.
  511. * This would have been pci0 on other mpc85xx platforms.
  512. */
  513. /* PCI Express controller 2, wired to XMC P15 connector */
  514. pci1: pcie@ef009000 {
  515. compatible = "fsl,mpc8548-pcie";
  516. device_type = "pci";
  517. #interrupt-cells = <1>;
  518. #size-cells = <2>;
  519. #address-cells = <3>;
  520. reg = <0 0xef009000 0 0x1000>;
  521. bus-range = <0 255>;
  522. ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x10000000
  523. 0x1000000 0x0 0x00000000 0 0xe8800000 0x0 0x00010000>;
  524. clock-frequency = <33333333>;
  525. interrupt-parent = <&mpic>;
  526. interrupts = <25 2>;
  527. interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
  528. interrupt-map = <
  529. /* IDSEL 0x0 */
  530. 0x0 0x0 0x0 0x1 &mpic 0x4 0x1
  531. 0x0 0x0 0x0 0x2 &mpic 0x5 0x1
  532. 0x0 0x0 0x0 0x3 &mpic 0x6 0x1
  533. 0x0 0x0 0x0 0x4 &mpic 0x7 0x1
  534. >;
  535. pcie@0 {
  536. reg = <0x00000000 0x00000000 0x00000000 0x00000000 0x00000000>;
  537. #size-cells = <2>;
  538. #address-cells = <3>;
  539. device_type = "pci";
  540. ranges = <0x2000000 0x0 0xc0000000
  541. 0x2000000 0x0 0xc0000000
  542. 0x0 0x10000000
  543. 0x1000000 0x0 0x0
  544. 0x1000000 0x0 0x0
  545. 0x0 0x100000>;
  546. };
  547. };
  548. /* PCI Express controller 1, wired to PEX8112 for PMC interface */
  549. pci2: pcie@ef00a000 {
  550. compatible = "fsl,mpc8548-pcie";
  551. device_type = "pci";
  552. #interrupt-cells = <1>;
  553. #size-cells = <2>;
  554. #address-cells = <3>;
  555. reg = <0 0xef00a000 0 0x1000>;
  556. bus-range = <0 255>;
  557. ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x40000000
  558. 0x1000000 0x0 0x00000000 0 0xe8000000 0x0 0x10000>;
  559. clock-frequency = <33333333>;
  560. interrupt-parent = <&mpic>;
  561. interrupts = <26 2>;
  562. interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
  563. interrupt-map = <
  564. /* IDSEL 0x0 */
  565. 0x0 0x0 0x0 0x1 &mpic 0x0 0x1
  566. 0x0 0x0 0x0 0x2 &mpic 0x1 0x1
  567. 0x0 0x0 0x0 0x3 &mpic 0x2 0x1
  568. 0x0 0x0 0x0 0x4 &mpic 0x3 0x1
  569. >;
  570. pcie@0 {
  571. reg = <0x0 0x0 0x0 0x0 0x0>;
  572. #size-cells = <2>;
  573. #address-cells = <3>;
  574. device_type = "pci";
  575. ranges = <0x2000000 0x0 0x80000000
  576. 0x2000000 0x0 0x80000000
  577. 0x0 0x40000000
  578. 0x1000000 0x0 0x0
  579. 0x1000000 0x0 0x0
  580. 0x0 0x100000>;
  581. };
  582. };
  583. };