octeon_3xxx.dts 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  1. // SPDX-License-Identifier: GPL-2.0
  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. /include/ "octeon_3xxx.dtsi"
  10. / {
  11. soc@0 {
  12. smi0: mdio@1180000001800 {
  13. phy0: ethernet-phy@0 {
  14. compatible = "marvell,88e1118";
  15. marvell,reg-init =
  16. /* Fix rx and tx clock transition timing */
  17. <2 0x15 0xffcf 0>, /* Reg 2,21 Clear bits 4, 5 */
  18. /* Adjust LED drive. */
  19. <3 0x11 0 0x442a>, /* Reg 3,17 <- 0442a */
  20. /* irq, blink-activity, blink-link */
  21. <3 0x10 0 0x0242>; /* Reg 3,16 <- 0x0242 */
  22. reg = <0>;
  23. };
  24. phy1: ethernet-phy@1 {
  25. compatible = "marvell,88e1118";
  26. marvell,reg-init =
  27. /* Fix rx and tx clock transition timing */
  28. <2 0x15 0xffcf 0>, /* Reg 2,21 Clear bits 4, 5 */
  29. /* Adjust LED drive. */
  30. <3 0x11 0 0x442a>, /* Reg 3,17 <- 0442a */
  31. /* irq, blink-activity, blink-link */
  32. <3 0x10 0 0x0242>; /* Reg 3,16 <- 0x0242 */
  33. reg = <1>;
  34. };
  35. phy2: ethernet-phy@2 {
  36. reg = <2>;
  37. compatible = "marvell,88e1149r";
  38. marvell,reg-init = <3 0x10 0 0x5777>,
  39. <3 0x11 0 0x00aa>,
  40. <3 0x12 0 0x4105>,
  41. <3 0x13 0 0x0a60>;
  42. };
  43. phy3: ethernet-phy@3 {
  44. reg = <3>;
  45. compatible = "marvell,88e1149r";
  46. marvell,reg-init = <3 0x10 0 0x5777>,
  47. <3 0x11 0 0x00aa>,
  48. <3 0x12 0 0x4105>,
  49. <3 0x13 0 0x0a60>;
  50. };
  51. phy4: ethernet-phy@4 {
  52. reg = <4>;
  53. compatible = "marvell,88e1149r";
  54. marvell,reg-init = <3 0x10 0 0x5777>,
  55. <3 0x11 0 0x00aa>,
  56. <3 0x12 0 0x4105>,
  57. <3 0x13 0 0x0a60>;
  58. };
  59. phy5: ethernet-phy@5 {
  60. reg = <5>;
  61. compatible = "marvell,88e1149r";
  62. marvell,reg-init = <3 0x10 0 0x5777>,
  63. <3 0x11 0 0x00aa>,
  64. <3 0x12 0 0x4105>,
  65. <3 0x13 0 0x0a60>;
  66. };
  67. phy6: ethernet-phy@6 {
  68. reg = <6>;
  69. compatible = "marvell,88e1149r";
  70. marvell,reg-init = <3 0x10 0 0x5777>,
  71. <3 0x11 0 0x00aa>,
  72. <3 0x12 0 0x4105>,
  73. <3 0x13 0 0x0a60>;
  74. };
  75. phy7: ethernet-phy@7 {
  76. reg = <7>;
  77. compatible = "marvell,88e1149r";
  78. marvell,reg-init = <3 0x10 0 0x5777>,
  79. <3 0x11 0 0x00aa>,
  80. <3 0x12 0 0x4105>,
  81. <3 0x13 0 0x0a60>;
  82. };
  83. phy8: ethernet-phy@8 {
  84. reg = <8>;
  85. compatible = "marvell,88e1149r";
  86. marvell,reg-init = <3 0x10 0 0x5777>,
  87. <3 0x11 0 0x00aa>,
  88. <3 0x12 0 0x4105>,
  89. <3 0x13 0 0x0a60>;
  90. };
  91. phy9: ethernet-phy@9 {
  92. reg = <9>;
  93. compatible = "marvell,88e1149r";
  94. marvell,reg-init = <3 0x10 0 0x5777>,
  95. <3 0x11 0 0x00aa>,
  96. <3 0x12 0 0x4105>,
  97. <3 0x13 0 0x0a60>;
  98. };
  99. };
  100. smi1: mdio@1180000001900 {
  101. compatible = "cavium,octeon-3860-mdio";
  102. #address-cells = <1>;
  103. #size-cells = <0>;
  104. reg = <0x11800 0x00001900 0x0 0x40>;
  105. phy100: ethernet-phy@1 {
  106. reg = <1>;
  107. compatible = "marvell,88e1149r";
  108. marvell,reg-init = <3 0x10 0 0x5777>,
  109. <3 0x11 0 0x00aa>,
  110. <3 0x12 0 0x4105>,
  111. <3 0x13 0 0x0a60>;
  112. interrupt-parent = <&gpio>;
  113. interrupts = <12 8>; /* Pin 12, active low */
  114. };
  115. phy101: ethernet-phy@2 {
  116. reg = <2>;
  117. compatible = "marvell,88e1149r";
  118. marvell,reg-init = <3 0x10 0 0x5777>,
  119. <3 0x11 0 0x00aa>,
  120. <3 0x12 0 0x4105>,
  121. <3 0x13 0 0x0a60>;
  122. interrupt-parent = <&gpio>;
  123. interrupts = <12 8>; /* Pin 12, active low */
  124. };
  125. phy102: ethernet-phy@3 {
  126. reg = <3>;
  127. compatible = "marvell,88e1149r";
  128. marvell,reg-init = <3 0x10 0 0x5777>,
  129. <3 0x11 0 0x00aa>,
  130. <3 0x12 0 0x4105>,
  131. <3 0x13 0 0x0a60>;
  132. interrupt-parent = <&gpio>;
  133. interrupts = <12 8>; /* Pin 12, active low */
  134. };
  135. phy103: ethernet-phy@4 {
  136. reg = <4>;
  137. compatible = "marvell,88e1149r";
  138. marvell,reg-init = <3 0x10 0 0x5777>,
  139. <3 0x11 0 0x00aa>,
  140. <3 0x12 0 0x4105>,
  141. <3 0x13 0 0x0a60>;
  142. interrupt-parent = <&gpio>;
  143. interrupts = <12 8>; /* Pin 12, active low */
  144. };
  145. };
  146. mix0: ethernet@1070000100000 {
  147. compatible = "cavium,octeon-5750-mix";
  148. reg = <0x10700 0x00100000 0x0 0x100>, /* MIX */
  149. <0x11800 0xE0000000 0x0 0x300>, /* AGL */
  150. <0x11800 0xE0000400 0x0 0x400>, /* AGL_SHARED */
  151. <0x11800 0xE0002000 0x0 0x8>; /* AGL_PRT_CTL */
  152. cell-index = <0>;
  153. interrupts = <0 62>, <1 46>;
  154. local-mac-address = [ 00 00 00 00 00 00 ];
  155. phy-handle = <&phy0>;
  156. };
  157. mix1: ethernet@1070000100800 {
  158. compatible = "cavium,octeon-5750-mix";
  159. reg = <0x10700 0x00100800 0x0 0x100>, /* MIX */
  160. <0x11800 0xE0000800 0x0 0x300>, /* AGL */
  161. <0x11800 0xE0000400 0x0 0x400>, /* AGL_SHARED */
  162. <0x11800 0xE0002008 0x0 0x8>; /* AGL_PRT_CTL */
  163. cell-index = <1>;
  164. interrupts = <1 18>, < 1 46>;
  165. local-mac-address = [ 00 00 00 00 00 00 ];
  166. phy-handle = <&phy1>;
  167. };
  168. pip: pip@11800a0000000 {
  169. interface@0 {
  170. ethernet@0 {
  171. phy-handle = <&phy2>;
  172. cavium,alt-phy-handle = <&phy100>;
  173. };
  174. ethernet@1 {
  175. phy-handle = <&phy3>;
  176. cavium,alt-phy-handle = <&phy101>;
  177. };
  178. ethernet@2 {
  179. phy-handle = <&phy4>;
  180. cavium,alt-phy-handle = <&phy102>;
  181. };
  182. ethernet@3 {
  183. compatible = "cavium,octeon-3860-pip-port";
  184. reg = <0x3>; /* Port */
  185. local-mac-address = [ 00 00 00 00 00 00 ];
  186. phy-handle = <&phy5>;
  187. cavium,alt-phy-handle = <&phy103>;
  188. };
  189. ethernet@4 {
  190. compatible = "cavium,octeon-3860-pip-port";
  191. reg = <0x4>; /* Port */
  192. local-mac-address = [ 00 00 00 00 00 00 ];
  193. };
  194. ethernet@5 {
  195. compatible = "cavium,octeon-3860-pip-port";
  196. reg = <0x5>; /* Port */
  197. local-mac-address = [ 00 00 00 00 00 00 ];
  198. };
  199. ethernet@6 {
  200. compatible = "cavium,octeon-3860-pip-port";
  201. reg = <0x6>; /* Port */
  202. local-mac-address = [ 00 00 00 00 00 00 ];
  203. };
  204. ethernet@7 {
  205. compatible = "cavium,octeon-3860-pip-port";
  206. reg = <0x7>; /* Port */
  207. local-mac-address = [ 00 00 00 00 00 00 ];
  208. };
  209. ethernet@8 {
  210. compatible = "cavium,octeon-3860-pip-port";
  211. reg = <0x8>; /* Port */
  212. local-mac-address = [ 00 00 00 00 00 00 ];
  213. };
  214. ethernet@9 {
  215. compatible = "cavium,octeon-3860-pip-port";
  216. reg = <0x9>; /* Port */
  217. local-mac-address = [ 00 00 00 00 00 00 ];
  218. };
  219. ethernet@a {
  220. compatible = "cavium,octeon-3860-pip-port";
  221. reg = <0xa>; /* Port */
  222. local-mac-address = [ 00 00 00 00 00 00 ];
  223. };
  224. ethernet@b {
  225. compatible = "cavium,octeon-3860-pip-port";
  226. reg = <0xb>; /* Port */
  227. local-mac-address = [ 00 00 00 00 00 00 ];
  228. };
  229. ethernet@c {
  230. compatible = "cavium,octeon-3860-pip-port";
  231. reg = <0xc>; /* Port */
  232. local-mac-address = [ 00 00 00 00 00 00 ];
  233. };
  234. ethernet@d {
  235. compatible = "cavium,octeon-3860-pip-port";
  236. reg = <0xd>; /* Port */
  237. local-mac-address = [ 00 00 00 00 00 00 ];
  238. };
  239. ethernet@e {
  240. compatible = "cavium,octeon-3860-pip-port";
  241. reg = <0xe>; /* Port */
  242. local-mac-address = [ 00 00 00 00 00 00 ];
  243. };
  244. ethernet@f {
  245. compatible = "cavium,octeon-3860-pip-port";
  246. reg = <0xf>; /* Port */
  247. local-mac-address = [ 00 00 00 00 00 00 ];
  248. };
  249. };
  250. interface@1 {
  251. ethernet@0 {
  252. compatible = "cavium,octeon-3860-pip-port";
  253. reg = <0x0>; /* Port */
  254. local-mac-address = [ 00 00 00 00 00 00 ];
  255. phy-handle = <&phy6>;
  256. };
  257. ethernet@1 {
  258. compatible = "cavium,octeon-3860-pip-port";
  259. reg = <0x1>; /* Port */
  260. local-mac-address = [ 00 00 00 00 00 00 ];
  261. phy-handle = <&phy7>;
  262. };
  263. ethernet@2 {
  264. compatible = "cavium,octeon-3860-pip-port";
  265. reg = <0x2>; /* Port */
  266. local-mac-address = [ 00 00 00 00 00 00 ];
  267. phy-handle = <&phy8>;
  268. };
  269. ethernet@3 {
  270. compatible = "cavium,octeon-3860-pip-port";
  271. reg = <0x3>; /* Port */
  272. local-mac-address = [ 00 00 00 00 00 00 ];
  273. phy-handle = <&phy9>;
  274. };
  275. };
  276. };
  277. twsi0: i2c@1180000001000 {
  278. rtc@68 {
  279. compatible = "dallas,ds1337";
  280. reg = <0x68>;
  281. };
  282. tmp@4c {
  283. compatible = "ti,tmp421";
  284. reg = <0x4c>;
  285. };
  286. };
  287. twsi1: i2c@1180000001200 {
  288. #address-cells = <1>;
  289. #size-cells = <0>;
  290. compatible = "cavium,octeon-3860-twsi";
  291. reg = <0x11800 0x00001200 0x0 0x200>;
  292. interrupts = <0 59>;
  293. clock-frequency = <100000>;
  294. };
  295. uart1: serial@1180000000c00 {
  296. compatible = "cavium,octeon-3860-uart","ns16550";
  297. reg = <0x11800 0x00000c00 0x0 0x400>;
  298. clock-frequency = <0>;
  299. current-speed = <115200>;
  300. reg-shift = <3>;
  301. interrupts = <0 35>;
  302. };
  303. uart2: serial@1180000000400 {
  304. compatible = "cavium,octeon-3860-uart","ns16550";
  305. reg = <0x11800 0x00000400 0x0 0x400>;
  306. clock-frequency = <0>;
  307. current-speed = <115200>;
  308. reg-shift = <3>;
  309. interrupts = <1 16>;
  310. };
  311. bootbus: bootbus@1180000000000 {
  312. led0: led-display@4,0 {
  313. compatible = "avago,hdsp-253x";
  314. reg = <4 0x20 0x20>, <4 0 0x20>;
  315. };
  316. cf0: compact-flash@5,0 {
  317. compatible = "cavium,ebt3000-compact-flash";
  318. reg = <5 0 0x10000>, <6 0 0x10000>;
  319. cavium,bus-width = <16>;
  320. cavium,true-ide;
  321. cavium,dma-engine-handle = <&dma0>;
  322. };
  323. };
  324. uctl: uctl@118006f000000 {
  325. compatible = "cavium,octeon-6335-uctl";
  326. reg = <0x11800 0x6f000000 0x0 0x100>;
  327. ranges; /* Direct mapping */
  328. #address-cells = <2>;
  329. #size-cells = <2>;
  330. /* 12MHz, 24MHz and 48MHz allowed */
  331. refclk-frequency = <12000000>;
  332. /* Either "crystal" or "external" */
  333. refclk-type = "crystal";
  334. ehci@16f0000000000 {
  335. compatible = "cavium,octeon-6335-ehci","usb-ehci";
  336. reg = <0x16f00 0x00000000 0x0 0x100>;
  337. interrupts = <0 56>;
  338. big-endian-regs;
  339. };
  340. ohci@16f0000000400 {
  341. compatible = "cavium,octeon-6335-ohci","usb-ohci";
  342. reg = <0x16f00 0x00000400 0x0 0x100>;
  343. interrupts = <0 56>;
  344. big-endian-regs;
  345. };
  346. };
  347. usbn: usbn@1180068000000 {
  348. /* 12MHz, 24MHz and 48MHz allowed */
  349. refclk-frequency = <12000000>;
  350. /* Either "crystal" or "external" */
  351. refclk-type = "crystal";
  352. };
  353. };
  354. aliases {
  355. mix0 = &mix0;
  356. mix1 = &mix1;
  357. pip = &pip;
  358. smi0 = &smi0;
  359. smi1 = &smi1;
  360. twsi0 = &twsi0;
  361. twsi1 = &twsi1;
  362. uart0 = &uart0;
  363. uart1 = &uart1;
  364. uart2 = &uart2;
  365. flash0 = &flash0;
  366. cf0 = &cf0;
  367. uctl = &uctl;
  368. usbn = &usbn;
  369. led0 = &led0;
  370. };
  371. };