xpedite5301.dts 14 KB

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