octeon_3xxx.dts 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571
  1. /dts-v1/;
  2. /*
  3. * OCTEON 3XXX, 5XXX, 63XX device tree skeleton.
  4. *
  5. * This device tree is pruned and patched by early boot code before
  6. * use. Because of this, it contains a super-set of the available
  7. * devices and properties.
  8. */
  9. / {
  10. compatible = "cavium,octeon-3860";
  11. #address-cells = <2>;
  12. #size-cells = <2>;
  13. interrupt-parent = <&ciu>;
  14. soc@0 {
  15. compatible = "simple-bus";
  16. #address-cells = <2>;
  17. #size-cells = <2>;
  18. ranges; /* Direct mapping */
  19. ciu: interrupt-controller@1070000000000 {
  20. compatible = "cavium,octeon-3860-ciu";
  21. interrupt-controller;
  22. /* Interrupts are specified by two parts:
  23. * 1) Controller register (0 or 1)
  24. * 2) Bit within the register (0..63)
  25. */
  26. #interrupt-cells = <2>;
  27. reg = <0x10700 0x00000000 0x0 0x7000>;
  28. };
  29. gpio: gpio-controller@1070000000800 {
  30. #gpio-cells = <2>;
  31. compatible = "cavium,octeon-3860-gpio";
  32. reg = <0x10700 0x00000800 0x0 0x100>;
  33. gpio-controller;
  34. /* Interrupts are specified by two parts:
  35. * 1) GPIO pin number (0..15)
  36. * 2) Triggering (1 - edge rising
  37. * 2 - edge falling
  38. * 4 - level active high
  39. * 8 - level active low)
  40. */
  41. interrupt-controller;
  42. #interrupt-cells = <2>;
  43. /* The GPIO pin connect to 16 consecutive CUI bits */
  44. interrupts = <0 16>, <0 17>, <0 18>, <0 19>,
  45. <0 20>, <0 21>, <0 22>, <0 23>,
  46. <0 24>, <0 25>, <0 26>, <0 27>,
  47. <0 28>, <0 29>, <0 30>, <0 31>;
  48. };
  49. smi0: mdio@1180000001800 {
  50. compatible = "cavium,octeon-3860-mdio";
  51. #address-cells = <1>;
  52. #size-cells = <0>;
  53. reg = <0x11800 0x00001800 0x0 0x40>;
  54. phy0: ethernet-phy@0 {
  55. compatible = "marvell,88e1118";
  56. marvell,reg-init =
  57. /* Fix rx and tx clock transition timing */
  58. <2 0x15 0xffcf 0>, /* Reg 2,21 Clear bits 4, 5 */
  59. /* Adjust LED drive. */
  60. <3 0x11 0 0x442a>, /* Reg 3,17 <- 0442a */
  61. /* irq, blink-activity, blink-link */
  62. <3 0x10 0 0x0242>; /* Reg 3,16 <- 0x0242 */
  63. reg = <0>;
  64. };
  65. phy1: ethernet-phy@1 {
  66. compatible = "marvell,88e1118";
  67. marvell,reg-init =
  68. /* Fix rx and tx clock transition timing */
  69. <2 0x15 0xffcf 0>, /* Reg 2,21 Clear bits 4, 5 */
  70. /* Adjust LED drive. */
  71. <3 0x11 0 0x442a>, /* Reg 3,17 <- 0442a */
  72. /* irq, blink-activity, blink-link */
  73. <3 0x10 0 0x0242>; /* Reg 3,16 <- 0x0242 */
  74. reg = <1>;
  75. };
  76. phy2: ethernet-phy@2 {
  77. reg = <2>;
  78. compatible = "marvell,88e1149r";
  79. marvell,reg-init = <3 0x10 0 0x5777>,
  80. <3 0x11 0 0x00aa>,
  81. <3 0x12 0 0x4105>,
  82. <3 0x13 0 0x0a60>;
  83. };
  84. phy3: ethernet-phy@3 {
  85. reg = <3>;
  86. compatible = "marvell,88e1149r";
  87. marvell,reg-init = <3 0x10 0 0x5777>,
  88. <3 0x11 0 0x00aa>,
  89. <3 0x12 0 0x4105>,
  90. <3 0x13 0 0x0a60>;
  91. };
  92. phy4: ethernet-phy@4 {
  93. reg = <4>;
  94. compatible = "marvell,88e1149r";
  95. marvell,reg-init = <3 0x10 0 0x5777>,
  96. <3 0x11 0 0x00aa>,
  97. <3 0x12 0 0x4105>,
  98. <3 0x13 0 0x0a60>;
  99. };
  100. phy5: ethernet-phy@5 {
  101. reg = <5>;
  102. compatible = "marvell,88e1149r";
  103. marvell,reg-init = <3 0x10 0 0x5777>,
  104. <3 0x11 0 0x00aa>,
  105. <3 0x12 0 0x4105>,
  106. <3 0x13 0 0x0a60>;
  107. };
  108. phy6: ethernet-phy@6 {
  109. reg = <6>;
  110. compatible = "marvell,88e1149r";
  111. marvell,reg-init = <3 0x10 0 0x5777>,
  112. <3 0x11 0 0x00aa>,
  113. <3 0x12 0 0x4105>,
  114. <3 0x13 0 0x0a60>;
  115. };
  116. phy7: ethernet-phy@7 {
  117. reg = <7>;
  118. compatible = "marvell,88e1149r";
  119. marvell,reg-init = <3 0x10 0 0x5777>,
  120. <3 0x11 0 0x00aa>,
  121. <3 0x12 0 0x4105>,
  122. <3 0x13 0 0x0a60>;
  123. };
  124. phy8: ethernet-phy@8 {
  125. reg = <8>;
  126. compatible = "marvell,88e1149r";
  127. marvell,reg-init = <3 0x10 0 0x5777>,
  128. <3 0x11 0 0x00aa>,
  129. <3 0x12 0 0x4105>,
  130. <3 0x13 0 0x0a60>;
  131. };
  132. phy9: ethernet-phy@9 {
  133. reg = <9>;
  134. compatible = "marvell,88e1149r";
  135. marvell,reg-init = <3 0x10 0 0x5777>,
  136. <3 0x11 0 0x00aa>,
  137. <3 0x12 0 0x4105>,
  138. <3 0x13 0 0x0a60>;
  139. };
  140. };
  141. smi1: mdio@1180000001900 {
  142. compatible = "cavium,octeon-3860-mdio";
  143. #address-cells = <1>;
  144. #size-cells = <0>;
  145. reg = <0x11800 0x00001900 0x0 0x40>;
  146. phy100: ethernet-phy@1 {
  147. reg = <1>;
  148. compatible = "marvell,88e1149r";
  149. marvell,reg-init = <3 0x10 0 0x5777>,
  150. <3 0x11 0 0x00aa>,
  151. <3 0x12 0 0x4105>,
  152. <3 0x13 0 0x0a60>;
  153. interrupt-parent = <&gpio>;
  154. interrupts = <12 8>; /* Pin 12, active low */
  155. };
  156. phy101: ethernet-phy@2 {
  157. reg = <2>;
  158. compatible = "marvell,88e1149r";
  159. marvell,reg-init = <3 0x10 0 0x5777>,
  160. <3 0x11 0 0x00aa>,
  161. <3 0x12 0 0x4105>,
  162. <3 0x13 0 0x0a60>;
  163. interrupt-parent = <&gpio>;
  164. interrupts = <12 8>; /* Pin 12, active low */
  165. };
  166. phy102: ethernet-phy@3 {
  167. reg = <3>;
  168. compatible = "marvell,88e1149r";
  169. marvell,reg-init = <3 0x10 0 0x5777>,
  170. <3 0x11 0 0x00aa>,
  171. <3 0x12 0 0x4105>,
  172. <3 0x13 0 0x0a60>;
  173. interrupt-parent = <&gpio>;
  174. interrupts = <12 8>; /* Pin 12, active low */
  175. };
  176. phy103: ethernet-phy@4 {
  177. reg = <4>;
  178. compatible = "marvell,88e1149r";
  179. marvell,reg-init = <3 0x10 0 0x5777>,
  180. <3 0x11 0 0x00aa>,
  181. <3 0x12 0 0x4105>,
  182. <3 0x13 0 0x0a60>;
  183. interrupt-parent = <&gpio>;
  184. interrupts = <12 8>; /* Pin 12, active low */
  185. };
  186. };
  187. mix0: ethernet@1070000100000 {
  188. compatible = "cavium,octeon-5750-mix";
  189. reg = <0x10700 0x00100000 0x0 0x100>, /* MIX */
  190. <0x11800 0xE0000000 0x0 0x300>, /* AGL */
  191. <0x11800 0xE0000400 0x0 0x400>, /* AGL_SHARED */
  192. <0x11800 0xE0002000 0x0 0x8>; /* AGL_PRT_CTL */
  193. cell-index = <0>;
  194. interrupts = <0 62>, <1 46>;
  195. local-mac-address = [ 00 00 00 00 00 00 ];
  196. phy-handle = <&phy0>;
  197. };
  198. mix1: ethernet@1070000100800 {
  199. compatible = "cavium,octeon-5750-mix";
  200. reg = <0x10700 0x00100800 0x0 0x100>, /* MIX */
  201. <0x11800 0xE0000800 0x0 0x300>, /* AGL */
  202. <0x11800 0xE0000400 0x0 0x400>, /* AGL_SHARED */
  203. <0x11800 0xE0002008 0x0 0x8>; /* AGL_PRT_CTL */
  204. cell-index = <1>;
  205. interrupts = <1 18>, < 1 46>;
  206. local-mac-address = [ 00 00 00 00 00 00 ];
  207. phy-handle = <&phy1>;
  208. };
  209. pip: pip@11800a0000000 {
  210. compatible = "cavium,octeon-3860-pip";
  211. #address-cells = <1>;
  212. #size-cells = <0>;
  213. reg = <0x11800 0xa0000000 0x0 0x2000>;
  214. interface@0 {
  215. compatible = "cavium,octeon-3860-pip-interface";
  216. #address-cells = <1>;
  217. #size-cells = <0>;
  218. reg = <0>; /* interface */
  219. ethernet@0 {
  220. compatible = "cavium,octeon-3860-pip-port";
  221. reg = <0x0>; /* Port */
  222. local-mac-address = [ 00 00 00 00 00 00 ];
  223. phy-handle = <&phy2>;
  224. cavium,alt-phy-handle = <&phy100>;
  225. };
  226. ethernet@1 {
  227. compatible = "cavium,octeon-3860-pip-port";
  228. reg = <0x1>; /* Port */
  229. local-mac-address = [ 00 00 00 00 00 00 ];
  230. phy-handle = <&phy3>;
  231. cavium,alt-phy-handle = <&phy101>;
  232. };
  233. ethernet@2 {
  234. compatible = "cavium,octeon-3860-pip-port";
  235. reg = <0x2>; /* Port */
  236. local-mac-address = [ 00 00 00 00 00 00 ];
  237. phy-handle = <&phy4>;
  238. cavium,alt-phy-handle = <&phy102>;
  239. };
  240. ethernet@3 {
  241. compatible = "cavium,octeon-3860-pip-port";
  242. reg = <0x3>; /* Port */
  243. local-mac-address = [ 00 00 00 00 00 00 ];
  244. phy-handle = <&phy5>;
  245. cavium,alt-phy-handle = <&phy103>;
  246. };
  247. ethernet@4 {
  248. compatible = "cavium,octeon-3860-pip-port";
  249. reg = <0x4>; /* Port */
  250. local-mac-address = [ 00 00 00 00 00 00 ];
  251. };
  252. ethernet@5 {
  253. compatible = "cavium,octeon-3860-pip-port";
  254. reg = <0x5>; /* Port */
  255. local-mac-address = [ 00 00 00 00 00 00 ];
  256. };
  257. ethernet@6 {
  258. compatible = "cavium,octeon-3860-pip-port";
  259. reg = <0x6>; /* Port */
  260. local-mac-address = [ 00 00 00 00 00 00 ];
  261. };
  262. ethernet@7 {
  263. compatible = "cavium,octeon-3860-pip-port";
  264. reg = <0x7>; /* Port */
  265. local-mac-address = [ 00 00 00 00 00 00 ];
  266. };
  267. ethernet@8 {
  268. compatible = "cavium,octeon-3860-pip-port";
  269. reg = <0x8>; /* Port */
  270. local-mac-address = [ 00 00 00 00 00 00 ];
  271. };
  272. ethernet@9 {
  273. compatible = "cavium,octeon-3860-pip-port";
  274. reg = <0x9>; /* Port */
  275. local-mac-address = [ 00 00 00 00 00 00 ];
  276. };
  277. ethernet@a {
  278. compatible = "cavium,octeon-3860-pip-port";
  279. reg = <0xa>; /* Port */
  280. local-mac-address = [ 00 00 00 00 00 00 ];
  281. };
  282. ethernet@b {
  283. compatible = "cavium,octeon-3860-pip-port";
  284. reg = <0xb>; /* Port */
  285. local-mac-address = [ 00 00 00 00 00 00 ];
  286. };
  287. ethernet@c {
  288. compatible = "cavium,octeon-3860-pip-port";
  289. reg = <0xc>; /* Port */
  290. local-mac-address = [ 00 00 00 00 00 00 ];
  291. };
  292. ethernet@d {
  293. compatible = "cavium,octeon-3860-pip-port";
  294. reg = <0xd>; /* Port */
  295. local-mac-address = [ 00 00 00 00 00 00 ];
  296. };
  297. ethernet@e {
  298. compatible = "cavium,octeon-3860-pip-port";
  299. reg = <0xe>; /* Port */
  300. local-mac-address = [ 00 00 00 00 00 00 ];
  301. };
  302. ethernet@f {
  303. compatible = "cavium,octeon-3860-pip-port";
  304. reg = <0xf>; /* Port */
  305. local-mac-address = [ 00 00 00 00 00 00 ];
  306. };
  307. };
  308. interface@1 {
  309. compatible = "cavium,octeon-3860-pip-interface";
  310. #address-cells = <1>;
  311. #size-cells = <0>;
  312. reg = <1>; /* interface */
  313. ethernet@0 {
  314. compatible = "cavium,octeon-3860-pip-port";
  315. reg = <0x0>; /* Port */
  316. local-mac-address = [ 00 00 00 00 00 00 ];
  317. phy-handle = <&phy6>;
  318. };
  319. ethernet@1 {
  320. compatible = "cavium,octeon-3860-pip-port";
  321. reg = <0x1>; /* Port */
  322. local-mac-address = [ 00 00 00 00 00 00 ];
  323. phy-handle = <&phy7>;
  324. };
  325. ethernet@2 {
  326. compatible = "cavium,octeon-3860-pip-port";
  327. reg = <0x2>; /* Port */
  328. local-mac-address = [ 00 00 00 00 00 00 ];
  329. phy-handle = <&phy8>;
  330. };
  331. ethernet@3 {
  332. compatible = "cavium,octeon-3860-pip-port";
  333. reg = <0x3>; /* Port */
  334. local-mac-address = [ 00 00 00 00 00 00 ];
  335. phy-handle = <&phy9>;
  336. };
  337. };
  338. };
  339. twsi0: i2c@1180000001000 {
  340. #address-cells = <1>;
  341. #size-cells = <0>;
  342. compatible = "cavium,octeon-3860-twsi";
  343. reg = <0x11800 0x00001000 0x0 0x200>;
  344. interrupts = <0 45>;
  345. clock-frequency = <100000>;
  346. rtc@68 {
  347. compatible = "dallas,ds1337";
  348. reg = <0x68>;
  349. };
  350. tmp@4c {
  351. compatible = "ti,tmp421";
  352. reg = <0x4c>;
  353. };
  354. };
  355. twsi1: i2c@1180000001200 {
  356. #address-cells = <1>;
  357. #size-cells = <0>;
  358. compatible = "cavium,octeon-3860-twsi";
  359. reg = <0x11800 0x00001200 0x0 0x200>;
  360. interrupts = <0 59>;
  361. clock-frequency = <100000>;
  362. };
  363. uart0: serial@1180000000800 {
  364. compatible = "cavium,octeon-3860-uart","ns16550";
  365. reg = <0x11800 0x00000800 0x0 0x400>;
  366. clock-frequency = <0>;
  367. current-speed = <115200>;
  368. reg-shift = <3>;
  369. interrupts = <0 34>;
  370. };
  371. uart1: serial@1180000000c00 {
  372. compatible = "cavium,octeon-3860-uart","ns16550";
  373. reg = <0x11800 0x00000c00 0x0 0x400>;
  374. clock-frequency = <0>;
  375. current-speed = <115200>;
  376. reg-shift = <3>;
  377. interrupts = <0 35>;
  378. };
  379. uart2: serial@1180000000400 {
  380. compatible = "cavium,octeon-3860-uart","ns16550";
  381. reg = <0x11800 0x00000400 0x0 0x400>;
  382. clock-frequency = <0>;
  383. current-speed = <115200>;
  384. reg-shift = <3>;
  385. interrupts = <1 16>;
  386. };
  387. bootbus: bootbus@1180000000000 {
  388. compatible = "cavium,octeon-3860-bootbus";
  389. reg = <0x11800 0x00000000 0x0 0x200>;
  390. /* The chip select number and offset */
  391. #address-cells = <2>;
  392. /* The size of the chip select region */
  393. #size-cells = <1>;
  394. ranges = <0 0 0x0 0x1f400000 0xc00000>,
  395. <1 0 0x10000 0x30000000 0>,
  396. <2 0 0x10000 0x40000000 0>,
  397. <3 0 0x10000 0x50000000 0>,
  398. <4 0 0x0 0x1d020000 0x10000>,
  399. <5 0 0x0 0x1d040000 0x10000>,
  400. <6 0 0x0 0x1d050000 0x10000>,
  401. <7 0 0x10000 0x90000000 0>;
  402. cavium,cs-config@0 {
  403. compatible = "cavium,octeon-3860-bootbus-config";
  404. cavium,cs-index = <0>;
  405. cavium,t-adr = <20>;
  406. cavium,t-ce = <60>;
  407. cavium,t-oe = <60>;
  408. cavium,t-we = <45>;
  409. cavium,t-rd-hld = <35>;
  410. cavium,t-wr-hld = <45>;
  411. cavium,t-pause = <0>;
  412. cavium,t-wait = <0>;
  413. cavium,t-page = <35>;
  414. cavium,t-rd-dly = <0>;
  415. cavium,pages = <0>;
  416. cavium,bus-width = <8>;
  417. };
  418. cavium,cs-config@4 {
  419. compatible = "cavium,octeon-3860-bootbus-config";
  420. cavium,cs-index = <4>;
  421. cavium,t-adr = <320>;
  422. cavium,t-ce = <320>;
  423. cavium,t-oe = <320>;
  424. cavium,t-we = <320>;
  425. cavium,t-rd-hld = <320>;
  426. cavium,t-wr-hld = <320>;
  427. cavium,t-pause = <320>;
  428. cavium,t-wait = <320>;
  429. cavium,t-page = <320>;
  430. cavium,t-rd-dly = <0>;
  431. cavium,pages = <0>;
  432. cavium,bus-width = <8>;
  433. };
  434. cavium,cs-config@5 {
  435. compatible = "cavium,octeon-3860-bootbus-config";
  436. cavium,cs-index = <5>;
  437. cavium,t-adr = <5>;
  438. cavium,t-ce = <300>;
  439. cavium,t-oe = <125>;
  440. cavium,t-we = <150>;
  441. cavium,t-rd-hld = <100>;
  442. cavium,t-wr-hld = <30>;
  443. cavium,t-pause = <0>;
  444. cavium,t-wait = <30>;
  445. cavium,t-page = <320>;
  446. cavium,t-rd-dly = <0>;
  447. cavium,pages = <0>;
  448. cavium,bus-width = <16>;
  449. };
  450. cavium,cs-config@6 {
  451. compatible = "cavium,octeon-3860-bootbus-config";
  452. cavium,cs-index = <6>;
  453. cavium,t-adr = <5>;
  454. cavium,t-ce = <300>;
  455. cavium,t-oe = <270>;
  456. cavium,t-we = <150>;
  457. cavium,t-rd-hld = <100>;
  458. cavium,t-wr-hld = <70>;
  459. cavium,t-pause = <0>;
  460. cavium,t-wait = <0>;
  461. cavium,t-page = <320>;
  462. cavium,t-rd-dly = <0>;
  463. cavium,pages = <0>;
  464. cavium,wait-mode;
  465. cavium,bus-width = <16>;
  466. };
  467. flash0: nor@0,0 {
  468. compatible = "cfi-flash";
  469. reg = <0 0 0x800000>;
  470. #address-cells = <1>;
  471. #size-cells = <1>;
  472. };
  473. led0: led-display@4,0 {
  474. compatible = "avago,hdsp-253x";
  475. reg = <4 0x20 0x20>, <4 0 0x20>;
  476. };
  477. cf0: compact-flash@5,0 {
  478. compatible = "cavium,ebt3000-compact-flash";
  479. reg = <5 0 0x10000>, <6 0 0x10000>;
  480. cavium,bus-width = <16>;
  481. cavium,true-ide;
  482. cavium,dma-engine-handle = <&dma0>;
  483. };
  484. };
  485. dma0: dma-engine@1180000000100 {
  486. compatible = "cavium,octeon-5750-bootbus-dma";
  487. reg = <0x11800 0x00000100 0x0 0x8>;
  488. interrupts = <0 63>;
  489. };
  490. dma1: dma-engine@1180000000108 {
  491. compatible = "cavium,octeon-5750-bootbus-dma";
  492. reg = <0x11800 0x00000108 0x0 0x8>;
  493. interrupts = <0 63>;
  494. };
  495. uctl: uctl@118006f000000 {
  496. compatible = "cavium,octeon-6335-uctl";
  497. reg = <0x11800 0x6f000000 0x0 0x100>;
  498. ranges; /* Direct mapping */
  499. #address-cells = <2>;
  500. #size-cells = <2>;
  501. /* 12MHz, 24MHz and 48MHz allowed */
  502. refclk-frequency = <12000000>;
  503. /* Either "crystal" or "external" */
  504. refclk-type = "crystal";
  505. ehci@16f0000000000 {
  506. compatible = "cavium,octeon-6335-ehci","usb-ehci";
  507. reg = <0x16f00 0x00000000 0x0 0x100>;
  508. interrupts = <0 56>;
  509. big-endian-regs;
  510. };
  511. ohci@16f0000000400 {
  512. compatible = "cavium,octeon-6335-ohci","usb-ohci";
  513. reg = <0x16f00 0x00000400 0x0 0x100>;
  514. interrupts = <0 56>;
  515. big-endian-regs;
  516. };
  517. };
  518. };
  519. aliases {
  520. mix0 = &mix0;
  521. mix1 = &mix1;
  522. pip = &pip;
  523. smi0 = &smi0;
  524. smi1 = &smi1;
  525. twsi0 = &twsi0;
  526. twsi1 = &twsi1;
  527. uart0 = &uart0;
  528. uart1 = &uart1;
  529. uart2 = &uart2;
  530. flash0 = &flash0;
  531. cf0 = &cf0;
  532. uctl = &uctl;
  533. led0 = &led0;
  534. };
  535. };