vr9.dtsi 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571
  1. /dts-v1/;
  2. #include <dt-bindings/gpio/gpio.h>
  3. #include <dt-bindings/phy/phy-lantiq-vrx200-pcie.h>
  4. / {
  5. #address-cells = <1>;
  6. #size-cells = <1>;
  7. compatible = "lantiq,xway", "lantiq,vr9";
  8. aliases {
  9. serial0 = &asc1;
  10. };
  11. chosen {
  12. stdout-path = "serial0:115200n8";
  13. };
  14. cpus {
  15. #address-cells = <1>;
  16. #size-cells = <0>;
  17. cpu@0 {
  18. compatible = "mips,mips34Kc";
  19. reg = <0>;
  20. };
  21. };
  22. cputemp {
  23. compatible = "lantiq,cputemp";
  24. };
  25. reboot {
  26. compatible = "syscon-reboot";
  27. regmap = <&rcu0>;
  28. offset = <0x10>;
  29. mask = <0xe0000000>;
  30. };
  31. biu@1f800000 {
  32. #address-cells = <1>;
  33. #size-cells = <1>;
  34. compatible = "lantiq,biu", "simple-bus";
  35. reg = <0x1f800000 0x800000>;
  36. ranges = <0x0 0x1f800000 0x7fffff>;
  37. icu0: icu@80200 {
  38. #interrupt-cells = <1>;
  39. interrupt-controller;
  40. compatible = "lantiq,icu";
  41. reg = <0x80200 0xc8 /* icu0 */
  42. 0x80300 0xc8>; /* icu1 */
  43. };
  44. watchdog@803f0 {
  45. compatible = "lantiq,xrx100-wdt", "lantiq,xrx100-wdt";
  46. reg = <0x803f0 0x10>;
  47. regmap = <&rcu0>;
  48. };
  49. };
  50. sram@1f000000 {
  51. #address-cells = <1>;
  52. #size-cells = <1>;
  53. compatible = "lantiq,sram", "simple-bus";
  54. reg = <0x1f000000 0x800000>;
  55. ranges = <0x0 0x1f000000 0x7fffff>;
  56. eiu0: eiu@101000 {
  57. #interrupt-cells = <1>;
  58. interrupt-controller;
  59. compatible = "lantiq,eiu-xway";
  60. reg = <0x101000 0x1000>;
  61. interrupt-parent = <&icu0>;
  62. lantiq,eiu-irqs = <166 135 66 40 41 42>;
  63. };
  64. pmu0: pmu@102000 {
  65. compatible = "lantiq,pmu-xway";
  66. reg = <0x102000 0x1000>;
  67. };
  68. cgu0: cgu@103000 {
  69. compatible = "lantiq,cgu-xway";
  70. reg = <0x103000 0x1000>;
  71. };
  72. dcdc@106a00 {
  73. compatible = "lantiq,dcdc-xrx200";
  74. reg = <0x106a00 0x200>;
  75. };
  76. vmmc: vmmc@107000 {
  77. status = "disabled";
  78. compatible = "lantiq,vmmc-xway";
  79. reg = <0x107000 0x300>;
  80. interrupt-parent = <&icu0>;
  81. interrupts = <150 151 152 153 154 155>;
  82. };
  83. pcie0_phy: phy@106800 {
  84. compatible = "lantiq,vrx200-pcie-phy";
  85. reg = <0x106800 0x100>;
  86. lantiq,rcu = <&rcu0>;
  87. lantiq,rcu-endian-offset = <0x4c>;
  88. lantiq,rcu-big-endian-mask = <0x80>; /* bit 7 */
  89. big-endian;
  90. resets = <&reset0 12 24>, <&reset0 22 22>;
  91. reset-names = "phy", "pcie";
  92. #phy-cells = <1>;
  93. };
  94. rcu0: rcu@203000 {
  95. #address-cells = <1>;
  96. #size-cells = <1>;
  97. compatible = "lantiq,xrx200-rcu", "simple-mfd", "syscon";
  98. reg = <0x203000 0x100>;
  99. ranges = <0x0 0x203000 0x100>;
  100. big-endian;
  101. reset0: reset-controller@10 {
  102. compatible = "lantiq,xrx200-reset";
  103. reg = <0x10 4>, <0x14 4>;
  104. #reset-cells = <2>;
  105. };
  106. reset1: reset-controller@48 {
  107. compatible = "lantiq,xrx200-reset";
  108. reg = <0x48 4>, <0x24 4>;
  109. #reset-cells = <2>;
  110. };
  111. usb_phy0: usb2-phy@18 {
  112. compatible = "lantiq,xrx200-usb2-phy";
  113. reg = <0x18 4>, <0x38 4>;
  114. status = "disabled";
  115. resets = <&reset1 4 4>, <&reset0 4 4>;
  116. reset-names = "phy", "ctrl";
  117. #phy-cells = <0>;
  118. };
  119. usb_phy1: usb2-phy@34 {
  120. compatible = "lantiq,xrx200-usb2-phy";
  121. reg = <0x34 4>, <0x3c 4>;
  122. status = "disabled";
  123. resets = <&reset1 5 5>, <&reset0 4 4>;
  124. reset-names = "phy", "ctrl";
  125. #phy-cells = <0>;
  126. };
  127. };
  128. };
  129. fpi@10000000 {
  130. compatible = "lantiq,xrx200-fpi", "simple-bus";
  131. ranges = <0x0 0x10000000 0xf000000>;
  132. reg = <0x1f400000 0x1000>,
  133. <0x10000000 0xf000000>;
  134. regmap = <&rcu0>;
  135. offset-endianness = <0x4c>;
  136. #address-cells = <1>;
  137. #size-cells = <1>;
  138. localbus: localbus@0 {
  139. #address-cells = <2>;
  140. #size-cells = <1>;
  141. ranges = <0 0 0x0 0x3ffffff /* addrsel0 */
  142. 1 0 0x4000000 0x4000010>; /* addsel1 */
  143. compatible = "lantiq,localbus", "simple-bus";
  144. };
  145. gptu@e100a00 {
  146. compatible = "lantiq,gptu-xway";
  147. reg = <0xe100a00 0x100>;
  148. interrupt-parent = <&icu0>;
  149. interrupts = <126 127 128 129 130 131>;
  150. };
  151. usif: usif@da00000 {
  152. compatible = "lantiq,usif";
  153. reg = <0xda00000 0x1000000>;
  154. interrupt-parent = <&icu0>;
  155. interrupts = <29 125 107 108 109 110>;
  156. status = "disabled";
  157. };
  158. spi: spi@e100800 {
  159. compatible = "lantiq,xrx200-spi", "lantiq,xrx100-spi";
  160. reg = <0xe100800 0x100>;
  161. interrupt-parent = <&icu0>;
  162. interrupts = <22 23 24>;
  163. interrupt-names = "spi_rx", "spi_tx", "spi_err",
  164. "spi_frm";
  165. #address-cells = <1>;
  166. #size-cells = <0>;
  167. pinctrl-names = "default";
  168. pinctrl-0 = <&spi_pins>, <&spi_cs4_pins>;
  169. status = "disabled";
  170. };
  171. gpio: pinmux@e100b10 {
  172. compatible = "lantiq,xrx200-pinctrl";
  173. #gpio-cells = <2>;
  174. gpio-controller;
  175. gpio-ranges = <&gpio 0 0 50>;
  176. reg = <0xe100b10 0xa0>;
  177. gphy0_led0_pins: gphy0-led0 {
  178. mux {
  179. lantiq,groups = "gphy0 led0";
  180. lantiq,function = "gphy";
  181. lantiq,open-drain = <0>;
  182. lantiq,pull = <2>;
  183. lantiq,output = <1>;
  184. };
  185. };
  186. gphy0_led1_pins: gphy0-led1 {
  187. mux {
  188. lantiq,groups = "gphy0 led1";
  189. lantiq,function = "gphy";
  190. lantiq,open-drain = <0>;
  191. lantiq,pull = <2>;
  192. lantiq,output = <1>;
  193. };
  194. };
  195. gphy0_led2_pins: gphy0-led2 {
  196. mux {
  197. lantiq,groups = "gphy0 led2";
  198. lantiq,function = "gphy";
  199. lantiq,open-drain = <0>;
  200. lantiq,pull = <2>;
  201. lantiq,output = <1>;
  202. };
  203. };
  204. gphy1_led0_pins: gphy1-led0 {
  205. mux {
  206. lantiq,groups = "gphy1 led0";
  207. lantiq,function = "gphy";
  208. lantiq,open-drain = <0>;
  209. lantiq,pull = <2>;
  210. lantiq,output = <1>;
  211. };
  212. };
  213. gphy1_led1_pins: gphy1-led1 {
  214. mux {
  215. lantiq,groups = "gphy1 led1";
  216. lantiq,function = "gphy";
  217. lantiq,open-drain = <0>;
  218. lantiq,pull = <2>;
  219. lantiq,output = <1>;
  220. };
  221. };
  222. gphy1_led2_pins: gphy1-led2 {
  223. mux {
  224. lantiq,groups = "gphy1 led2";
  225. lantiq,function = "gphy";
  226. lantiq,open-drain = <0>;
  227. lantiq,pull = <2>;
  228. lantiq,output = <1>;
  229. };
  230. };
  231. mdio_pins: mdio {
  232. mux {
  233. lantiq,groups = "mdio";
  234. lantiq,function = "mdio";
  235. };
  236. };
  237. nand_pins: nand {
  238. mux-0 {
  239. lantiq,groups = "nand cle", "nand ale",
  240. "nand rd";
  241. lantiq,function = "ebu";
  242. lantiq,output = <1>;
  243. lantiq,open-drain = <0>;
  244. lantiq,pull = <0>;
  245. };
  246. mux-1 {
  247. lantiq,groups = "nand rdy";
  248. lantiq,function = "ebu";
  249. lantiq,output = <0>;
  250. lantiq,pull = <2>;
  251. };
  252. };
  253. nand_cs1_pins: nand-cs1 {
  254. mux {
  255. lantiq,groups = "nand cs1";
  256. lantiq,function = "ebu";
  257. lantiq,open-drain = <0>;
  258. lantiq,pull = <0>;
  259. };
  260. };
  261. pci_gnt1_pins: pci-gnt1 {
  262. mux {
  263. lantiq,groups = "gnt1";
  264. lantiq,function = "pci";
  265. lantiq,output = <1>;
  266. lantiq,open-drain = <0>;
  267. lantiq,pull = <0>;
  268. };
  269. };
  270. pci_req1_pins: pci-req1 {
  271. mux {
  272. lantiq,groups = "req1";
  273. lantiq,function = "pci";
  274. lantiq,output = <0>;
  275. lantiq,open-drain = <1>;
  276. lantiq,pull = <2>;
  277. };
  278. };
  279. spi_pins: spi {
  280. mux-0 {
  281. lantiq,groups = "spi_di";
  282. lantiq,function = "spi";
  283. };
  284. mux-1 {
  285. lantiq,groups = "spi_do", "spi_clk";
  286. lantiq,function = "spi";
  287. lantiq,output = <1>;
  288. };
  289. };
  290. spi_cs4_pins: spi-cs4 {
  291. mux {
  292. lantiq,groups = "spi_cs4";
  293. lantiq,function = "spi";
  294. lantiq,output = <1>;
  295. };
  296. };
  297. stp_pins: stp {
  298. mux {
  299. lantiq,groups = "stp";
  300. lantiq,function = "stp";
  301. lantiq,pull = <0>;
  302. lantiq,open-drain = <0>;
  303. lantiq,output = <1>;
  304. };
  305. };
  306. };
  307. stp: stp@e100bb0 {
  308. status = "disabled";
  309. compatible = "lantiq,gpio-stp-xway";
  310. reg = <0xe100bb0 0x40>;
  311. #gpio-cells = <2>;
  312. gpio-controller;
  313. pinctrl-0 = <&stp_pins>;
  314. pinctrl-names = "default";
  315. lantiq,shadow = <0xffffff>;
  316. lantiq,groups = <0x7>;
  317. lantiq,dsl = <0x0>;
  318. lantiq,phy1 = <0x0>;
  319. lantiq,phy2 = <0x0>;
  320. };
  321. asc1: serial@e100c00 {
  322. compatible = "lantiq,asc";
  323. reg = <0xe100c00 0x400>;
  324. interrupt-parent = <&icu0>;
  325. interrupts = <112 113 114>;
  326. };
  327. deu@e103100 {
  328. compatible = "lantiq,deu-xrx200";
  329. reg = <0xe103100 0xf00>;
  330. };
  331. dma0: dma@e104100 {
  332. compatible = "lantiq,dma-xway";
  333. reg = <0xe104100 0x800>;
  334. };
  335. ebu0: ebu@e105300 {
  336. compatible = "lantiq,ebu-xway";
  337. reg = <0xe105300 0x100>;
  338. };
  339. usb0: usb@e101000 {
  340. #address-cells = <1>;
  341. #size-cells = <0>;
  342. status = "disabled";
  343. compatible = "lantiq,xrx200-usb";
  344. reg = <0xe101000 0x1000
  345. 0xe120000 0x3f000>;
  346. interrupt-parent = <&icu0>;
  347. interrupts = <62 91>;
  348. dr_mode = "host";
  349. phys = <&usb_phy0>;
  350. phy-names = "usb2-phy";
  351. ehci_port1: port@1 {
  352. reg = <1>;
  353. #trigger-source-cells = <0>;
  354. };
  355. };
  356. usb1: usb@e106000 {
  357. #address-cells = <1>;
  358. #size-cells = <0>;
  359. status = "disabled";
  360. compatible = "lantiq,xrx200-usb";
  361. reg = <0xe106000 0x1000>;
  362. interrupt-parent = <&icu0>;
  363. interrupts = <91>;
  364. dr_mode = "host";
  365. phys = <&usb_phy1>;
  366. phy-names = "usb2-phy";
  367. ehci_port2: port@1 {
  368. reg = <1>;
  369. #trigger-source-cells = <0>;
  370. };
  371. };
  372. gswip: switch@e108000 {
  373. compatible = "lantiq,xrx200-gswip";
  374. #address-cells = <1>;
  375. #size-cells = <0>;
  376. reg = < 0xe108000 0x3000 /* switch */
  377. 0xe10b100 0x70 /* mdio */
  378. 0xe10b1d8 0x30 /* mii */
  379. >;
  380. dsa,member = <0 0>;
  381. gswip_ports: ports {
  382. #address-cells = <1>;
  383. #size-cells = <0>;
  384. port@6 {
  385. reg = <0x6>;
  386. phy-mode = "internal";
  387. ethernet = <&eth0>;
  388. fixed-link {
  389. speed = <1000>;
  390. full-duplex;
  391. };
  392. };
  393. };
  394. gswip_mdio: mdio {
  395. #address-cells = <1>;
  396. #size-cells = <0>;
  397. compatible = "lantiq,xrx200-mdio";
  398. };
  399. gphy-fw {
  400. compatible = "lantiq,xrx200-gphy-fw", "lantiq,gphy-fw";
  401. lantiq,rcu = <&rcu0>;
  402. #address-cells = <1>;
  403. #size-cells = <0>;
  404. gphy0: gphy@20 {
  405. reg = <0x20>;
  406. resets = <&reset0 31 30>;
  407. reset-names = "gphy";
  408. };
  409. gphy1: gphy@68 {
  410. reg = <0x68>;
  411. resets = <&reset0 29 28>;
  412. reset-names = "gphy";
  413. };
  414. };
  415. };
  416. eth0: eth@e10b308 {
  417. compatible = "lantiq,xrx200-net";
  418. reg = <0xe10b308 0x30>; /* pmac */
  419. interrupt-parent = <&icu0>;
  420. interrupts = <73>, <72>;
  421. interrupt-names = "tx", "rx";
  422. resets = <&reset0 21 16>, <&reset0 8 8>, <&reset0 3 3>;
  423. reset-names = "switch", "ppe", "ppe_dsp";
  424. #address-cells = <1>;
  425. #size-cells = <0>;
  426. fixed-link {
  427. speed = <1000>;
  428. full-duplex;
  429. };
  430. };
  431. mei@e116000 {
  432. compatible = "lantiq,mei-xrx200";
  433. reg = <0xe116000 0x9c>;
  434. interrupt-parent = <&icu0>;
  435. interrupts = <63>;
  436. };
  437. ppe@e234000 {
  438. compatible = "lantiq,ppe-xrx200";
  439. reg = <0xe234000 0x3ffd>;
  440. interrupt-parent = <&icu0>;
  441. interrupts = <96>;
  442. resets = <&reset0 3 3>, <&reset0 11 11>, <&reset0 23 23>;
  443. reset-names = "dsp", "dfe", "tc";
  444. };
  445. pcie0: pcie@d900000 {
  446. compatible = "lantiq,pcie-xrx200";
  447. #interrupt-cells = <1>;
  448. #size-cells = <2>;
  449. #address-cells = <3>;
  450. reg = <0xd900000 0x1000>;
  451. interrupt-parent = <&icu0>;
  452. interrupts = <161 144>;
  453. phys = <&pcie0_phy LANTIQ_PCIE_PHY_MODE_36MHZ>;
  454. phy-names = "pcie";
  455. resets = <&reset0 22 22>;
  456. lantiq,rcu = <&rcu0>;
  457. device_type = "pci";
  458. gpio-reset = <&gpio 38 GPIO_ACTIVE_HIGH>;
  459. };
  460. pci0: pci@e105400 {
  461. status = "disabled";
  462. #address-cells = <3>;
  463. #size-cells = <2>;
  464. #interrupt-cells = <1>;
  465. compatible = "lantiq,pci-xway";
  466. bus-range = <0x0 0x0>;
  467. ranges = <0x2000000 0 0x8000000 0x8000000 0 0x2000000 /* pci memory */
  468. 0x1000000 0 0x00000000 0xae00000 0 0x200000>; /* io space */
  469. reg = <0x7000000 0x8000 /* config space */
  470. 0xe105400 0x400>; /* pci bridge */
  471. lantiq,bus-clock = <33333333>;
  472. interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
  473. interrupt-map = <0x7000 0 0 1 &icu0 30 1>; /* slot 14, irq 30 */
  474. req-mask = <0x1>; /* GNT1 */
  475. device_type = "pci";
  476. resets = <&reset0 13 13>;
  477. };
  478. };
  479. vdsl {
  480. compatible = "lantiq,vdsl-vrx200";
  481. };
  482. };