3001-arm64-ls1043a-add-DTS-for-Freescale-LS1043A-SoC.patch 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552
  1. From 3ce895cbe3469bfcaa84674ec4f1b2d60e8b370b Mon Sep 17 00:00:00 2001
  2. From: Mingkai Hu <Mingkai.Hu@freescale.com>
  3. Date: Mon, 21 Jul 2014 14:48:42 +0800
  4. Subject: [PATCH 01/70] arm64/ls1043a: add DTS for Freescale LS1043A SoC
  5. LS1043a is an SoC with 4 ARMv8 A53 cores and most other IP blocks
  6. similar to LS1021a which complies to Chassis 2.1 spec.
  7. Following levels of DTSI/DTS files have been created for the
  8. LS1043A SoC family:
  9. - fsl-ls1043a.dtsi:
  10. DTS-Include file for FSL LS1043A SoC.
  11. Signed-off-by: Li Yang <leoli@freescale.com>
  12. Signed-off-by: Hou Zhiqiang <B48286@freescale.com>
  13. Signed-off-by: Mingkai Hu <Mingkai.Hu@freescale.com>
  14. Signed-off-by: Wenbin Song <Wenbin.Song@freescale.com>
  15. Signed-off-by: Mingkai Hu <mingkai.hu@nxp.com>
  16. ---
  17. arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 525 ++++++++++++++++++++++++
  18. 1 file changed, 525 insertions(+)
  19. create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
  20. --- /dev/null
  21. +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
  22. @@ -0,0 +1,525 @@
  23. +/*
  24. + * Device Tree Include file for Freescale Layerscape-1043A family SoC.
  25. + *
  26. + * Copyright 2014-2015, Freescale Semiconductor
  27. + *
  28. + * Mingkai Hu <Mingkai.hu@freescale.com>
  29. + *
  30. + * This file is dual-licensed: you can use it either under the terms
  31. + * of the GPLv2 or the X11 license, at your option. Note that this dual
  32. + * licensing only applies to this file, and not this project as a
  33. + * whole.
  34. + *
  35. + * a) This library is free software; you can redistribute it and/or
  36. + * modify it under the terms of the GNU General Public License as
  37. + * published by the Free Software Foundation; either version 2 of the
  38. + * License, or (at your option) any later version.
  39. + *
  40. + * This library is distributed in the hope that it will be useful,
  41. + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  42. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  43. + * GNU General Public License for more details.
  44. + *
  45. + * Or, alternatively,
  46. + *
  47. + * b) Permission is hereby granted, free of charge, to any person
  48. + * obtaining a copy of this software and associated documentation
  49. + * files (the "Software"), to deal in the Software without
  50. + * restriction, including without limitation the rights to use,
  51. + * copy, modify, merge, publish, distribute, sublicense, and/or
  52. + * sell copies of the Software, and to permit persons to whom the
  53. + * Software is furnished to do so, subject to the following
  54. + * conditions:
  55. + *
  56. + * The above copyright notice and this permission notice shall be
  57. + * included in all copies or substantial portions of the Software.
  58. + *
  59. + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  60. + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  61. + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  62. + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  63. + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  64. + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  65. + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  66. + * OTHER DEALINGS IN THE SOFTWARE.
  67. + */
  68. +
  69. +/ {
  70. + compatible = "fsl,ls1043a";
  71. + interrupt-parent = <&gic>;
  72. + #address-cells = <2>;
  73. + #size-cells = <2>;
  74. +
  75. + cpus {
  76. + #address-cells = <2>;
  77. + #size-cells = <0>;
  78. +
  79. + /*
  80. + * We expect the enable-method for cpu's to be "psci", but this
  81. + * is dependent on the SoC FW, which will fill this in.
  82. + *
  83. + * Currently supported enable-method is psci v0.2
  84. + */
  85. + cpu0: cpu@0 {
  86. + device_type = "cpu";
  87. + compatible = "arm,cortex-a53";
  88. + reg = <0x0 0x0>;
  89. + clocks = <&clockgen 1 0>;
  90. + };
  91. +
  92. + cpu1: cpu@1 {
  93. + device_type = "cpu";
  94. + compatible = "arm,cortex-a53";
  95. + reg = <0x0 0x1>;
  96. + clocks = <&clockgen 1 0>;
  97. + };
  98. +
  99. + cpu2: cpu@2 {
  100. + device_type = "cpu";
  101. + compatible = "arm,cortex-a53";
  102. + reg = <0x0 0x2>;
  103. + clocks = <&clockgen 1 0>;
  104. + };
  105. +
  106. + cpu3: cpu@3 {
  107. + device_type = "cpu";
  108. + compatible = "arm,cortex-a53";
  109. + reg = <0x0 0x3>;
  110. + clocks = <&clockgen 1 0>;
  111. + };
  112. + };
  113. +
  114. + memory@80000000 {
  115. + device_type = "memory";
  116. + reg = <0x0 0x80000000 0 0x80000000>;
  117. + /* DRAM space 1, size: 2GiB DRAM */
  118. + };
  119. +
  120. + sysclk: sysclk {
  121. + compatible = "fixed-clock";
  122. + #clock-cells = <0>;
  123. + clock-frequency = <100000000>;
  124. + clock-output-names = "sysclk";
  125. + };
  126. +
  127. + timer {
  128. + compatible = "arm,armv8-timer";
  129. + interrupts = <1 13 0x1>, /* Physical Secure PPI */
  130. + <1 14 0x1>, /* Physical Non-Secure PPI */
  131. + <1 11 0x1>, /* Virtual PPI */
  132. + <1 10 0x1>; /* Hypervisor PPI */
  133. + };
  134. +
  135. + pmu {
  136. + compatible = "arm,armv8-pmuv3";
  137. + interrupts = <0 106 0x4>,
  138. + <0 107 0x4>,
  139. + <0 95 0x4>,
  140. + <0 97 0x4>;
  141. + interrupt-affinity = <&cpu0>,
  142. + <&cpu1>,
  143. + <&cpu2>,
  144. + <&cpu3>;
  145. + };
  146. +
  147. + gic: interrupt-controller@1400000 {
  148. + compatible = "arm,gic-400";
  149. + #interrupt-cells = <3>;
  150. + interrupt-controller;
  151. + reg = <0x0 0x1401000 0 0x1000>, /* GICD */
  152. + <0x0 0x1402000 0 0x2000>, /* GICC */
  153. + <0x0 0x1404000 0 0x2000>, /* GICH */
  154. + <0x0 0x1406000 0 0x2000>; /* GICV */
  155. + interrupts = <1 9 0xf08>;
  156. + };
  157. +
  158. + soc {
  159. + compatible = "simple-bus";
  160. + #address-cells = <2>;
  161. + #size-cells = <2>;
  162. + ranges;
  163. +
  164. + clockgen: clocking@1ee1000 {
  165. + compatible = "fsl,ls1043a-clockgen";
  166. + reg = <0x0 0x1ee1000 0x0 0x1000>;
  167. + #clock-cells = <2>;
  168. + clocks = <&sysclk>;
  169. + };
  170. +
  171. + scfg: scfg@1570000 {
  172. + compatible = "fsl,ls1043a-scfg", "syscon";
  173. + reg = <0x0 0x1570000 0x0 0x10000>;
  174. + big-endian;
  175. + };
  176. +
  177. + dcfg: dcfg@1ee0000 {
  178. + compatible = "fsl,ls1043a-dcfg", "syscon";
  179. + reg = <0x0 0x1ee0000 0x0 0x10000>;
  180. + };
  181. +
  182. + ifc: ifc@1530000 {
  183. + compatible = "fsl,ifc", "simple-bus";
  184. + reg = <0x0 0x1530000 0x0 0x10000>;
  185. + interrupts = <0 43 0x4>;
  186. + };
  187. +
  188. + esdhc: esdhc@1560000 {
  189. + compatible = "fsl,ls1043a-esdhc", "fsl,esdhc";
  190. + reg = <0x0 0x1560000 0x0 0x10000>;
  191. + interrupts = <0 62 0x4>;
  192. + clock-frequency = <0>;
  193. + voltage-ranges = <1800 1800 3300 3300>;
  194. + sdhci,auto-cmd12;
  195. + big-endian;
  196. + bus-width = <4>;
  197. + };
  198. +
  199. + dspi0: dspi@2100000 {
  200. + compatible = "fsl,ls1043a-dspi", "fsl,ls1021a-v1.0-dspi";
  201. + #address-cells = <1>;
  202. + #size-cells = <0>;
  203. + reg = <0x0 0x2100000 0x0 0x10000>;
  204. + interrupts = <0 64 0x4>;
  205. + clock-names = "dspi";
  206. + clocks = <&clockgen 4 0>;
  207. + spi-num-chipselects = <5>;
  208. + big-endian;
  209. + status = "disabled";
  210. + };
  211. +
  212. + dspi1: dspi@2110000 {
  213. + compatible = "fsl,ls1043a-dspi", "fsl,ls1021a-v1.0-dspi";
  214. + #address-cells = <1>;
  215. + #size-cells = <0>;
  216. + reg = <0x0 0x2110000 0x0 0x10000>;
  217. + interrupts = <0 65 0x4>;
  218. + clock-names = "dspi";
  219. + clocks = <&clockgen 4 0>;
  220. + spi-num-chipselects = <5>;
  221. + big-endian;
  222. + status = "disabled";
  223. + };
  224. +
  225. + i2c0: i2c@2180000 {
  226. + compatible = "fsl,vf610-i2c";
  227. + #address-cells = <1>;
  228. + #size-cells = <0>;
  229. + reg = <0x0 0x2180000 0x0 0x10000>;
  230. + interrupts = <0 56 0x4>;
  231. + clock-names = "i2c";
  232. + clocks = <&clockgen 4 0>;
  233. + dmas = <&edma0 1 39>,
  234. + <&edma0 1 38>;
  235. + dma-names = "tx", "rx";
  236. + status = "disabled";
  237. + };
  238. +
  239. + i2c1: i2c@2190000 {
  240. + compatible = "fsl,vf610-i2c";
  241. + #address-cells = <1>;
  242. + #size-cells = <0>;
  243. + reg = <0x0 0x2190000 0x0 0x10000>;
  244. + interrupts = <0 57 0x4>;
  245. + clock-names = "i2c";
  246. + clocks = <&clockgen 4 0>;
  247. + status = "disabled";
  248. + };
  249. +
  250. + i2c2: i2c@21a0000 {
  251. + compatible = "fsl,vf610-i2c";
  252. + #address-cells = <1>;
  253. + #size-cells = <0>;
  254. + reg = <0x0 0x21a0000 0x0 0x10000>;
  255. + interrupts = <0 58 0x4>;
  256. + clock-names = "i2c";
  257. + clocks = <&clockgen 4 0>;
  258. + status = "disabled";
  259. + };
  260. +
  261. + i2c3: i2c@21b0000 {
  262. + compatible = "fsl,vf610-i2c";
  263. + #address-cells = <1>;
  264. + #size-cells = <0>;
  265. + reg = <0x0 0x21b0000 0x0 0x10000>;
  266. + interrupts = <0 59 0x4>;
  267. + clock-names = "i2c";
  268. + clocks = <&clockgen 4 0>;
  269. + status = "disabled";
  270. + };
  271. +
  272. + duart0: serial@21c0500 {
  273. + compatible = "fsl,ns16550", "ns16550a";
  274. + reg = <0x00 0x21c0500 0x0 0x100>;
  275. + interrupts = <0 54 0x4>;
  276. + clocks = <&clockgen 4 0>;
  277. + };
  278. +
  279. + duart1: serial@21c0600 {
  280. + compatible = "fsl,ns16550", "ns16550a";
  281. + reg = <0x00 0x21c0600 0x0 0x100>;
  282. + interrupts = <0 54 0x4>;
  283. + clocks = <&clockgen 4 0>;
  284. + };
  285. +
  286. + duart2: serial@21d0500 {
  287. + compatible = "fsl,ns16550", "ns16550a";
  288. + reg = <0x0 0x21d0500 0x0 0x100>;
  289. + interrupts = <0 55 0x4>;
  290. + clocks = <&clockgen 4 0>;
  291. + };
  292. +
  293. + duart3: serial@21d0600 {
  294. + compatible = "fsl,ns16550", "ns16550a";
  295. + reg = <0x0 0x21d0600 0x0 0x100>;
  296. + interrupts = <0 55 0x4>;
  297. + clocks = <&clockgen 4 0>;
  298. + };
  299. +
  300. + gpio1: gpio@2300000 {
  301. + compatible = "fsl,ls1043a-gpio";
  302. + reg = <0x0 0x2300000 0x0 0x10000>;
  303. + interrupts = <0 66 0x4>;
  304. + gpio-controller;
  305. + #gpio-cells = <2>;
  306. + interrupt-controller;
  307. + #interrupt-cells = <2>;
  308. + };
  309. +
  310. + gpio2: gpio@2310000 {
  311. + compatible = "fsl,ls1043a-gpio";
  312. + reg = <0x0 0x2310000 0x0 0x10000>;
  313. + interrupts = <0 67 0x4>;
  314. + gpio-controller;
  315. + #gpio-cells = <2>;
  316. + interrupt-controller;
  317. + #interrupt-cells = <2>;
  318. + };
  319. +
  320. + gpio3: gpio@2320000 {
  321. + compatible = "fsl,ls1043a-gpio";
  322. + reg = <0x0 0x2320000 0x0 0x10000>;
  323. + interrupts = <0 68 0x4>;
  324. + gpio-controller;
  325. + #gpio-cells = <2>;
  326. + interrupt-controller;
  327. + #interrupt-cells = <2>;
  328. + };
  329. +
  330. + gpio4: gpio@2330000 {
  331. + compatible = "fsl,ls1043a-gpio";
  332. + reg = <0x0 0x2330000 0x0 0x10000>;
  333. + interrupts = <0 134 0x4>;
  334. + gpio-controller;
  335. + #gpio-cells = <2>;
  336. + interrupt-controller;
  337. + #interrupt-cells = <2>;
  338. + };
  339. +
  340. + lpuart0: serial@2950000 {
  341. + compatible = "fsl,ls1021a-lpuart";
  342. + reg = <0x0 0x2950000 0x0 0x1000>;
  343. + interrupts = <0 48 0x4>;
  344. + clocks = <&clockgen 0 0>;
  345. + clock-names = "ipg";
  346. + status = "disabled";
  347. + };
  348. +
  349. + lpuart1: serial@2960000 {
  350. + compatible = "fsl,ls1021a-lpuart";
  351. + reg = <0x0 0x2960000 0x0 0x1000>;
  352. + interrupts = <0 49 0x4>;
  353. + clocks = <&clockgen 4 0>;
  354. + clock-names = "ipg";
  355. + status = "disabled";
  356. + };
  357. +
  358. + lpuart2: serial@2970000 {
  359. + compatible = "fsl,ls1021a-lpuart";
  360. + reg = <0x0 0x2970000 0x0 0x1000>;
  361. + interrupts = <0 50 0x4>;
  362. + clocks = <&clockgen 4 0>;
  363. + clock-names = "ipg";
  364. + status = "disabled";
  365. + };
  366. +
  367. + lpuart3: serial@2980000 {
  368. + compatible = "fsl,ls1021a-lpuart";
  369. + reg = <0x0 0x2980000 0x0 0x1000>;
  370. + interrupts = <0 51 0x4>;
  371. + clocks = <&clockgen 4 0>;
  372. + clock-names = "ipg";
  373. + status = "disabled";
  374. + };
  375. +
  376. + lpuart4: serial@2990000 {
  377. + compatible = "fsl,ls1021a-lpuart";
  378. + reg = <0x0 0x2990000 0x0 0x1000>;
  379. + interrupts = <0 52 0x4>;
  380. + clocks = <&clockgen 4 0>;
  381. + clock-names = "ipg";
  382. + status = "disabled";
  383. + };
  384. +
  385. + lpuart5: serial@29a0000 {
  386. + compatible = "fsl,ls1021a-lpuart";
  387. + reg = <0x0 0x29a0000 0x0 0x1000>;
  388. + interrupts = <0 53 0x4>;
  389. + clocks = <&clockgen 4 0>;
  390. + clock-names = "ipg";
  391. + status = "disabled";
  392. + };
  393. +
  394. + wdog0: wdog@2ad0000 {
  395. + compatible = "fsl,ls1043a-wdt", "fsl,imx21-wdt";
  396. + reg = <0x0 0x2ad0000 0x0 0x10000>;
  397. + interrupts = <0 83 0x4>;
  398. + clocks = <&clockgen 4 0>;
  399. + clock-names = "wdog";
  400. + big-endian;
  401. + };
  402. +
  403. + edma0: edma@2c00000 {
  404. + #dma-cells = <2>;
  405. + compatible = "fsl,vf610-edma";
  406. + reg = <0x0 0x2c00000 0x0 0x10000>,
  407. + <0x0 0x2c10000 0x0 0x10000>,
  408. + <0x0 0x2c20000 0x0 0x10000>;
  409. + interrupts = <0 103 0x4>,
  410. + <0 103 0x4>;
  411. + interrupt-names = "edma-tx", "edma-err";
  412. + dma-channels = <32>;
  413. + big-endian;
  414. + clock-names = "dmamux0", "dmamux1";
  415. + clocks = <&clockgen 4 0>,
  416. + <&clockgen 4 0>;
  417. + };
  418. +
  419. + usb0: usb3@2f00000 {
  420. + compatible = "snps,dwc3";
  421. + reg = <0x0 0x2f00000 0x0 0x10000>;
  422. + interrupts = <0 60 0x4>;
  423. + dr_mode = "host";
  424. + };
  425. +
  426. + usb1: usb3@3000000 {
  427. + compatible = "snps,dwc3";
  428. + reg = <0x0 0x3000000 0x0 0x10000>;
  429. + interrupts = <0 61 0x4>;
  430. + dr_mode = "host";
  431. + };
  432. +
  433. + usb2: usb3@3100000 {
  434. + compatible = "snps,dwc3";
  435. + reg = <0x0 0x3100000 0x0 0x10000>;
  436. + interrupts = <0 63 0x4>;
  437. + dr_mode = "host";
  438. + };
  439. +
  440. + sata: sata@3200000 {
  441. + compatible = "fsl,ls1043a-ahci";
  442. + reg = <0x0 0x3200000 0x0 0x10000>;
  443. + interrupts = <0 69 0x4>;
  444. + clocks = <&clockgen 4 0>;
  445. + };
  446. +
  447. + msi1: msi-controller1@1571000 {
  448. + compatible = "fsl,1s1043a-msi";
  449. + reg = <0x0 0x1571000 0x0 0x4>,
  450. + <0x0 0x1571004 0x0 0x4>;
  451. + reg-names = "msiir", "msir";
  452. + msi-controller;
  453. + interrupts = <0 116 0x4>;
  454. + };
  455. +
  456. + msi2: msi-controller2@1572000 {
  457. + compatible = "fsl,1s1043a-msi";
  458. + reg = <0x0 0x1572000 0x0 0x4>,
  459. + <0x0 0x1572004 0x0 0x4>;
  460. + reg-names = "msiir", "msir";
  461. + msi-controller;
  462. + interrupts = <0 126 0x4>;
  463. + };
  464. +
  465. + msi3: msi-controller3@1573000 {
  466. + compatible = "fsl,1s1043a-msi";
  467. + reg = <0x0 0x1573000 0x0 0x4>,
  468. + <0x0 0x1573004 0x0 0x4>;
  469. + reg-names = "msiir", "msir";
  470. + msi-controller;
  471. + interrupts = <0 160 0x4>;
  472. + };
  473. +
  474. + pcie@3400000 {
  475. + compatible = "fsl,ls1043a-pcie", "snps,dw-pcie";
  476. + reg = <0x00 0x03400000 0x0 0x00100000 /* controller registers */
  477. + 0x40 0x00000000 0x0 0x00002000>; /* configuration space */
  478. + reg-names = "regs", "config";
  479. + interrupts = <0 118 0x4>, /* controller interrupt */
  480. + <0 117 0x4>; /* PME interrupt */
  481. + interrupt-names = "intr", "pme";
  482. + #address-cells = <3>;
  483. + #size-cells = <2>;
  484. + device_type = "pci";
  485. + num-lanes = <4>;
  486. + bus-range = <0x0 0xff>;
  487. + ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000 /* downstream I/O */
  488. + 0x82000000 0x0 0x40000000 0x40 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
  489. + msi-parent = <&msi1>;
  490. + #interrupt-cells = <1>;
  491. + interrupt-map-mask = <0 0 0 7>;
  492. + interrupt-map = <0000 0 0 1 &gic 0 110 0x4>,
  493. + <0000 0 0 2 &gic 0 111 0x4>,
  494. + <0000 0 0 3 &gic 0 112 0x4>,
  495. + <0000 0 0 4 &gic 0 113 0x4>;
  496. + };
  497. +
  498. + pcie@3500000 {
  499. + compatible = "fsl,ls1043a-pcie", "snps,dw-pcie";
  500. + reg = <0x00 0x03500000 0x0 0x00100000 /* controller registers */
  501. + 0x48 0x00000000 0x0 0x00002000>; /* configuration space */
  502. + reg-names = "regs", "config";
  503. + interrupts = <0 128 0x4>,
  504. + <0 127 0x4>;
  505. + interrupt-names = "intr", "pme";
  506. + #address-cells = <3>;
  507. + #size-cells = <2>;
  508. + device_type = "pci";
  509. + num-lanes = <2>;
  510. + bus-range = <0x0 0xff>;
  511. + ranges = <0x81000000 0x0 0x00000000 0x48 0x00010000 0x0 0x00010000 /* downstream I/O */
  512. + 0x82000000 0x0 0x40000000 0x48 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
  513. + msi-parent = <&msi2>;
  514. + #interrupt-cells = <1>;
  515. + interrupt-map-mask = <0 0 0 7>;
  516. + interrupt-map = <0000 0 0 1 &gic 0 120 0x4>,
  517. + <0000 0 0 2 &gic 0 121 0x4>,
  518. + <0000 0 0 3 &gic 0 122 0x4>,
  519. + <0000 0 0 4 &gic 0 123 0x4>;
  520. + };
  521. +
  522. + pcie@3600000 {
  523. + compatible = "fsl,ls1043a-pcie", "snps,dw-pcie";
  524. + reg = <0x00 0x03600000 0x0 0x00100000 /* controller registers */
  525. + 0x50 0x00000000 0x0 0x00002000>; /* configuration space */
  526. + reg-names = "regs", "config";
  527. + interrupts = <0 162 0x4>,
  528. + <0 161 0x4>;
  529. + interrupt-names = "intr", "pme";
  530. + #address-cells = <3>;
  531. + #size-cells = <2>;
  532. + device_type = "pci";
  533. + num-lanes = <2>;
  534. + bus-range = <0x0 0xff>;
  535. + ranges = <0x81000000 0x0 0x00000000 0x50 0x00010000 0x0 0x00010000 /* downstream I/O */
  536. + 0x82000000 0x0 0x40000000 0x50 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
  537. + msi-parent = <&msi3>;
  538. + #interrupt-cells = <1>;
  539. + interrupt-map-mask = <0 0 0 7>;
  540. + interrupt-map = <0000 0 0 1 &gic 0 154 0x4>,
  541. + <0000 0 0 2 &gic 0 155 0x4>,
  542. + <0000 0 0 3 &gic 0 156 0x4>,
  543. + <0000 0 0 4 &gic 0 157 0x4>;
  544. + };
  545. + };
  546. +
  547. +};