3135-arm64-Add-DTS-support-for-FSL-s-LS1088ARDB.patch 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790
  1. From cbacf87fa6fb262c98033405f15697798c3a9c5d Mon Sep 17 00:00:00 2001
  2. From: Zhao Qiang <qiang.zhao@nxp.com>
  3. Date: Sun, 9 Oct 2016 14:31:50 +0800
  4. Subject: [PATCH 135/141] arm64: Add DTS support for FSL's LS1088ARDB
  5. Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
  6. ---
  7. arch/arm64/boot/dts/freescale/Makefile | 1 +
  8. arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts | 203 ++++++++
  9. arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 557 +++++++++++++++++++++
  10. 3 files changed, 761 insertions(+)
  11. create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts
  12. create mode 100644 arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
  13. --- a/arch/arm64/boot/dts/freescale/Makefile
  14. +++ b/arch/arm64/boot/dts/freescale/Makefile
  15. @@ -5,6 +5,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1
  16. dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1012a-rdb.dtb
  17. dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1012a-frdm.dtb
  18. dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-rdb.dtb
  19. +dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1088a-rdb.dtb
  20. always := $(dtb-y)
  21. subdir-y := $(dts-dirs)
  22. --- /dev/null
  23. +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts
  24. @@ -0,0 +1,203 @@
  25. +/*
  26. + * Device Tree file for Freescale LS1088a RDB board
  27. + *
  28. + * Copyright (C) 2015, Freescale Semiconductor
  29. + *
  30. + * This file is licensed under the terms of the GNU General Public
  31. + * License version 2. This program is licensed "as is" without any
  32. + * warranty of any kind, whether express or implied.
  33. + */
  34. +
  35. +/dts-v1/;
  36. +
  37. +#include "fsl-ls1088a.dtsi"
  38. +
  39. +/ {
  40. + model = "Freescale Layerscape 1088a RDB Board";
  41. + compatible = "fsl,ls1088a-rdb", "fsl,ls1088a";
  42. +};
  43. +
  44. +&esdhc {
  45. + status = "okay";
  46. +};
  47. +
  48. +&ifc {
  49. + status = "disabled";
  50. +};
  51. +
  52. +&ftm0 {
  53. + status = "okay";
  54. +};
  55. +
  56. +&i2c0 {
  57. + status = "okay";
  58. + pca9547@77 {
  59. + compatible = "philips,pca9547";
  60. + reg = <0x77>;
  61. + #address-cells = <1>;
  62. + #size-cells = <0>;
  63. +
  64. + i2c@2 {
  65. + #address-cells = <1>;
  66. + #size-cells = <0>;
  67. + reg = <0x2>;
  68. +
  69. + ina220@40 {
  70. + compatible = "ti,ina220";
  71. + reg = <0x40>;
  72. + shunt-resistor = <1000>;
  73. + };
  74. + };
  75. +
  76. + i2c@3 {
  77. + #address-cells = <1>;
  78. + #size-cells = <0>;
  79. + reg = <0x3>;
  80. +
  81. + rtc@51 {
  82. + compatible = "nxp,pcf2129";
  83. + reg = <0x51>;
  84. + /* IRQ10_B */
  85. + interrupts = <0 150 0x4>;
  86. + };
  87. +
  88. + adt7461a@4c {
  89. + compatible = "adt7461a";
  90. + reg = <0x4c>;
  91. + };
  92. + };
  93. + };
  94. +};
  95. +
  96. +&i2c1 {
  97. + status = "disabled";
  98. +};
  99. +
  100. +&i2c2 {
  101. + status = "disabled";
  102. +};
  103. +
  104. +&i2c3 {
  105. + status = "disabled";
  106. +};
  107. +
  108. +&dspi {
  109. + status = "disabled";
  110. +};
  111. +
  112. +&qspi {
  113. + status = "okay";
  114. + qflash0: s25fs512s@0 {
  115. + compatible = "spansion,m25p80";
  116. + #address-cells = <1>;
  117. + #size-cells = <1>;
  118. + spi-max-frequency = <20000000>;
  119. + reg = <0>;
  120. + };
  121. +
  122. + qflash1: s25fs512s@1 {
  123. + compatible = "spansion,m25p80";
  124. + #address-cells = <1>;
  125. + #size-cells = <1>;
  126. + spi-max-frequency = <20000000>;
  127. + reg = <1>;
  128. + };
  129. +};
  130. +
  131. +&sata0 {
  132. + status = "okay";
  133. +};
  134. +
  135. +&usb0 {
  136. + status = "okay";
  137. +};
  138. +
  139. +&usb1 {
  140. + status = "okay";
  141. +};
  142. +
  143. +&serial0 {
  144. + status = "okay";
  145. +};
  146. +
  147. +&serial1 {
  148. + status = "okay";
  149. +};
  150. +
  151. +&emdio1 {
  152. + /* Freescale F104 PHY1 */
  153. + mdio1_phy1: emdio1_phy@1 {
  154. + reg = <0x1c>;
  155. + phy-connection-type = "qsgmii";
  156. + };
  157. + mdio1_phy2: emdio1_phy@2 {
  158. + reg = <0x1d>;
  159. + phy-connection-type = "qsgmii";
  160. + };
  161. + mdio1_phy3: emdio1_phy@3 {
  162. + reg = <0x1e>;
  163. + phy-connection-type = "qsgmii";
  164. + };
  165. + mdio1_phy4: emdio1_phy@4 {
  166. + reg = <0x1f>;
  167. + phy-connection-type = "qsgmii";
  168. + };
  169. + /* F104 PHY2 */
  170. + mdio1_phy5: emdio1_phy@5 {
  171. + reg = <0x0c>;
  172. + phy-connection-type = "qsgmii";
  173. + };
  174. + mdio1_phy6: emdio1_phy@6 {
  175. + reg = <0x0d>;
  176. + phy-connection-type = "qsgmii";
  177. + };
  178. + mdio1_phy7: emdio1_phy@7 {
  179. + reg = <0x0e>;
  180. + phy-connection-type = "qsgmii";
  181. + };
  182. + mdio1_phy8: emdio1_phy@8 {
  183. + reg = <0x0f>;
  184. + phy-connection-type = "qsgmii";
  185. + };
  186. +};
  187. +
  188. +&emdio2 {
  189. + /* Aquantia AQR105 10G PHY */
  190. + mdio2_phy1: emdio2_phy@1 {
  191. + compatible = "ethernet-phy-ieee802.3-c45";
  192. + reg = <0x0>;
  193. + phy-connection-type = "xfi";
  194. + };
  195. +};
  196. +
  197. +/* DPMAC connections to external PHYs
  198. + * based on LS1088A RM RevC - $24.1.2 SerDes Options
  199. + */
  200. +/* DPMAC1 is 10G SFP+, fixed link */
  201. +&dpmac2 {
  202. + phy-handle = <&mdio2_phy1>;
  203. +};
  204. +&dpmac3 {
  205. + phy-handle = <&mdio1_phy5>;
  206. +};
  207. +&dpmac4 {
  208. + phy-handle = <&mdio1_phy6>;
  209. +};
  210. +&dpmac5 {
  211. + phy-handle = <&mdio1_phy7>;
  212. +};
  213. +&dpmac6 {
  214. + phy-handle = <&mdio1_phy8>;
  215. +};
  216. +&dpmac7 {
  217. + phy-handle = <&mdio1_phy1>;
  218. +};
  219. +&dpmac8 {
  220. + phy-handle = <&mdio1_phy2>;
  221. +};
  222. +&dpmac9 {
  223. + phy-handle = <&mdio1_phy3>;
  224. +};
  225. +&dpmac10 {
  226. + phy-handle = <&mdio1_phy4>;
  227. +};
  228. --- /dev/null
  229. +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
  230. @@ -0,0 +1,557 @@
  231. +/*
  232. + * Device Tree Include file for Freescale Layerscape-1088A family SoC.
  233. + *
  234. + * Copyright (C) 2015, Freescale Semiconductor
  235. + *
  236. + */
  237. +
  238. +/memreserve/ 0x80000000 0x00010000;
  239. +
  240. +/ {
  241. + compatible = "fsl,ls1088a";
  242. + interrupt-parent = <&gic>;
  243. + #address-cells = <2>;
  244. + #size-cells = <2>;
  245. +
  246. + cpus {
  247. + #address-cells = <2>;
  248. + #size-cells = <0>;
  249. +
  250. + /* We have 2 clusters having 4 Cortex-A57 cores each */
  251. + cpu0: cpu@0 {
  252. + device_type = "cpu";
  253. + compatible = "arm,cortex-a53";
  254. + reg = <0x0 0x0>;
  255. + clocks = <&clockgen 1 0>;
  256. + };
  257. +
  258. + cpu1: cpu@1 {
  259. + device_type = "cpu";
  260. + compatible = "arm,cortex-a53";
  261. + reg = <0x0 0x1>;
  262. + clocks = <&clockgen 1 0>;
  263. + };
  264. +
  265. + cpu2: cpu@2 {
  266. + device_type = "cpu";
  267. + compatible = "arm,cortex-a53";
  268. + reg = <0x0 0x2>;
  269. + clocks = <&clockgen 1 0>;
  270. + };
  271. +
  272. + cpu3: cpu@3 {
  273. + device_type = "cpu";
  274. + compatible = "arm,cortex-a53";
  275. + reg = <0x0 0x3>;
  276. + clocks = <&clockgen 1 0>;
  277. + };
  278. +
  279. + cpu4: cpu@100 {
  280. + device_type = "cpu";
  281. + compatible = "arm,cortex-a53";
  282. + reg = <0x0 0x100>;
  283. + clocks = <&clockgen 1 1>;
  284. + };
  285. +
  286. + cpu5: cpu@101 {
  287. + device_type = "cpu";
  288. + compatible = "arm,cortex-a53";
  289. + reg = <0x0 0x101>;
  290. + clocks = <&clockgen 1 1>;
  291. + };
  292. +
  293. + cpu6: cpu@102 {
  294. + device_type = "cpu";
  295. + compatible = "arm,cortex-a53";
  296. + reg = <0x0 0x102>;
  297. + clocks = <&clockgen 1 1>;
  298. + };
  299. +
  300. + cpu7: cpu@103 {
  301. + device_type = "cpu";
  302. + compatible = "arm,cortex-a53";
  303. + reg = <0x0 0x103>;
  304. + clocks = <&clockgen 1 1>;
  305. + };
  306. + };
  307. +
  308. + pmu {
  309. + compatible = "arm,armv8-pmuv3";
  310. + interrupts = <1 7 0x8>; /* PMU PPI, Level low type */
  311. + };
  312. +
  313. + gic: interrupt-controller@6000000 {
  314. + compatible = "arm,gic-v3";
  315. + reg = <0x0 0x06000000 0 0x10000>, /* GIC Dist */
  316. + <0x0 0x06100000 0 0x100000>, /* GICR(RD_base+SGI_base)*/
  317. + <0x0 0x0c0c0000 0 0x2000>, /* GICC */
  318. + <0x0 0x0c0d0000 0 0x1000>, /* GICH */
  319. + <0x0 0x0c0e0000 0 0x20000>; /* GICV */
  320. + #interrupt-cells = <3>;
  321. + #address-cells = <2>;
  322. + #size-cells = <2>;
  323. + ranges;
  324. + interrupt-controller;
  325. + interrupts = <1 9 0x4>;
  326. +
  327. + its: gic-its@6020000 {
  328. + compatible = "arm,gic-v3-its";
  329. + msi-controller;
  330. + reg = <0x0 0x6020000 0 0x20000>;
  331. + };
  332. + };
  333. +
  334. + sysclk: sysclk {
  335. + compatible = "fixed-clock";
  336. + #clock-cells = <0>;
  337. + clock-frequency = <100000000>;
  338. + clock-output-names = "sysclk";
  339. + };
  340. +
  341. + clockgen: clocking@1300000 {
  342. + compatible = "fsl,ls2080a-clockgen", "fsl,ls1088a-clockgen";
  343. + reg = <0 0x1300000 0 0xa0000>;
  344. + #clock-cells = <2>;
  345. + clocks = <&sysclk>;
  346. + };
  347. +
  348. + serial0: serial@21c0500 {
  349. + device_type = "serial";
  350. + compatible = "fsl,ns16550", "ns16550a";
  351. + reg = <0x0 0x21c0500 0x0 0x100>;
  352. + clocks = <&clockgen 4 3>;
  353. + interrupts = <0 32 0x4>; /* Level high type */
  354. + };
  355. +
  356. + serial1: serial@21c0600 {
  357. + device_type = "serial";
  358. + compatible = "fsl,ns16550", "ns16550a";
  359. + reg = <0x0 0x21c0600 0x0 0x100>;
  360. + clocks = <&clockgen 4 3>;
  361. + interrupts = <0 32 0x4>; /* Level high type */
  362. + };
  363. +
  364. + gpio0: gpio@2300000 {
  365. + compatible = "fsl,qoriq-gpio";
  366. + reg = <0x0 0x2300000 0x0 0x10000>;
  367. + interrupts = <0 36 0x4>; /* Level high type */
  368. + gpio-controller;
  369. + little-endian;
  370. + #gpio-cells = <2>;
  371. + interrupt-controller;
  372. + #interrupt-cells = <2>;
  373. + };
  374. +
  375. + gpio1: gpio@2310000 {
  376. + compatible = "fsl,qoriq-gpio";
  377. + reg = <0x0 0x2310000 0x0 0x10000>;
  378. + interrupts = <0 36 0x4>; /* Level high type */
  379. + gpio-controller;
  380. + little-endian;
  381. + #gpio-cells = <2>;
  382. + interrupt-controller;
  383. + #interrupt-cells = <2>;
  384. + };
  385. +
  386. + gpio2: gpio@2320000 {
  387. + compatible = "fsl,qoriq-gpio";
  388. + reg = <0x0 0x2320000 0x0 0x10000>;
  389. + interrupts = <0 37 0x4>; /* Level high type */
  390. + gpio-controller;
  391. + little-endian;
  392. + #gpio-cells = <2>;
  393. + interrupt-controller;
  394. + #interrupt-cells = <2>;
  395. + };
  396. +
  397. + gpio3: gpio@2330000 {
  398. + compatible = "fsl,qoriq-gpio";
  399. + reg = <0x0 0x2330000 0x0 0x10000>;
  400. + interrupts = <0 37 0x4>; /* Level high type */
  401. + gpio-controller;
  402. + little-endian;
  403. + #gpio-cells = <2>;
  404. + interrupt-controller;
  405. + #interrupt-cells = <2>;
  406. + };
  407. +
  408. + /* TODO: WRIOP (CCSR?) */
  409. + emdio1: mdio@0x8B96000 { /* WRIOP0: 0x8B8_0000, E-MDIO1: 0x1_6000 */
  410. + compatible = "fsl,fman-memac-mdio";
  411. + reg = <0x0 0x8B96000 0x0 0x1000>;
  412. + device_type = "mdio";
  413. + little-endian; /* force the driver in LE mode */
  414. +
  415. + /* Not necessary on the QDS, but needed on the RDB */
  416. + #address-cells = <1>;
  417. + #size-cells = <0>;
  418. + };
  419. +
  420. + emdio2: mdio@0x8B97000 { /* WRIOP0: 0x8B8_0000, E-MDIO2: 0x1_7000 */
  421. + compatible = "fsl,fman-memac-mdio";
  422. + reg = <0x0 0x8B97000 0x0 0x1000>;
  423. + device_type = "mdio";
  424. + little-endian; /* force the driver in LE mode */
  425. +
  426. + #address-cells = <1>;
  427. + #size-cells = <0>;
  428. + };
  429. +
  430. + ifc: ifc@2240000 {
  431. + compatible = "fsl,ifc", "simple-bus";
  432. + reg = <0x0 0x2240000 0x0 0x20000>;
  433. + interrupts = <0 21 0x4>; /* Level high type */
  434. + little-endian;
  435. + #address-cells = <2>;
  436. + #size-cells = <1>;
  437. +
  438. + ranges = <0 0 0x5 0x80000000 0x08000000
  439. + 2 0 0x5 0x30000000 0x00010000
  440. + 3 0 0x5 0x20000000 0x00010000>;
  441. + };
  442. +
  443. + esdhc: esdhc@2140000 {
  444. + compatible = "fsl,ls2080a-esdhc", "fsl,ls1088a-esdhc", "fsl,esdhc";
  445. + reg = <0x0 0x2140000 0x0 0x10000>;
  446. + interrupts = <0 28 0x4>; /* Level high type */
  447. + clock-frequency = <0>;
  448. + voltage-ranges = <1800 1800 3300 3300>;
  449. + sdhci,auto-cmd12;
  450. + little-endian;
  451. + bus-width = <4>;
  452. + };
  453. +
  454. + ftm0: ftm0@2800000 {
  455. + compatible = "fsl,ftm-alarm";
  456. + reg = <0x0 0x2800000 0x0 0x10000>;
  457. + interrupts = <0 44 4>;
  458. + };
  459. +
  460. + reset: reset@1E60000 {
  461. + compatible = "fsl,ls-reset";
  462. + reg = <0x0 0x1E60000 0x0 0x10000>;
  463. + };
  464. +
  465. + dspi: dspi@2100000 {
  466. + compatible = "fsl,ls2085a-dspi", "fsl,ls1088a-dspi";
  467. + #address-cells = <1>;
  468. + #size-cells = <0>;
  469. + reg = <0x0 0x2100000 0x0 0x10000>;
  470. + interrupts = <0 26 0x4>; /* Level high type */
  471. + clocks = <&clockgen 4 3>;
  472. + clock-names = "dspi";
  473. + spi-num-chipselects = <5>;
  474. + bus-num = <0>;
  475. + };
  476. +
  477. + i2c0: i2c@2000000 {
  478. + compatible = "fsl,vf610-i2c";
  479. + #address-cells = <1>;
  480. + #size-cells = <0>;
  481. + reg = <0x0 0x2000000 0x0 0x10000>;
  482. + interrupts = <0 34 0x4>; /* Level high type */
  483. + clock-names = "i2c";
  484. + clocks = <&clockgen 4 3>;
  485. + };
  486. +
  487. + i2c1: i2c@2010000 {
  488. + compatible = "fsl,vf610-i2c";
  489. + #address-cells = <1>;
  490. + #size-cells = <0>;
  491. + reg = <0x0 0x2010000 0x0 0x10000>;
  492. + interrupts = <0 34 0x4>; /* Level high type */
  493. + clock-names = "i2c";
  494. + clocks = <&clockgen 4 3>;
  495. + };
  496. +
  497. + i2c2: i2c@2020000 {
  498. + compatible = "fsl,vf610-i2c";
  499. + #address-cells = <1>;
  500. + #size-cells = <0>;
  501. + reg = <0x0 0x2020000 0x0 0x10000>;
  502. + interrupts = <0 35 0x4>; /* Level high type */
  503. + clock-names = "i2c";
  504. + clocks = <&clockgen 4 3>;
  505. + };
  506. +
  507. + i2c3: i2c@2030000 {
  508. + compatible = "fsl,vf610-i2c";
  509. + #address-cells = <1>;
  510. + #size-cells = <0>;
  511. + reg = <0x0 0x2030000 0x0 0x10000>;
  512. + interrupts = <0 35 0x4>; /* Level high type */
  513. + clock-names = "i2c";
  514. + clocks = <&clockgen 4 3>;
  515. + };
  516. +
  517. + qspi: quadspi@20c0000 {
  518. + compatible = "fsl,ls2080a-qspi", "fsl,ls1088a-qspi";
  519. + #address-cells = <1>;
  520. + #size-cells = <0>;
  521. + reg = <0x0 0x20c0000 0x0 0x10000>,
  522. + <0x0 0x20000000 0x0 0x10000000>;
  523. + reg-names = "QuadSPI", "QuadSPI-memory";
  524. + interrupts = <0 25 0x4>; /* Level high type */
  525. + clocks = <&clockgen 4 3>, <&clockgen 4 3>;
  526. + clock-names = "qspi_en", "qspi";
  527. + };
  528. +
  529. + pcie@3400000 {
  530. + compatible = "fsl,ls1088a-pcie", "snps,dw-pcie";
  531. + reg = <0x00 0x03400000 0x0 0x00100000 /* controller registers */
  532. + 0x20 0x00000000 0x0 0x00002000>; /* configuration space */
  533. + reg-names = "regs", "config";
  534. + interrupts = <0 108 0x4>; /* aer interrupt */
  535. + interrupt-names = "aer";
  536. + #address-cells = <3>;
  537. + #size-cells = <2>;
  538. + device_type = "pci";
  539. + dma-coherent;
  540. + num-lanes = <4>;
  541. + bus-range = <0x0 0xff>;
  542. + ranges = <0x81000000 0x0 0x00000000 0x20 0x00010000 0x0 0x00010000 /* downstream I/O */
  543. + 0x82000000 0x0 0x40000000 0x20 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
  544. + msi-parent = <&its>;
  545. + #interrupt-cells = <1>;
  546. + interrupt-map-mask = <0 0 0 7>;
  547. + interrupt-map = <0000 0 0 1 &gic 0 0 0 109 4>,
  548. + <0000 0 0 2 &gic 0 0 0 110 4>,
  549. + <0000 0 0 3 &gic 0 0 0 111 4>,
  550. + <0000 0 0 4 &gic 0 0 0 112 4>;
  551. + };
  552. + pcie@3500000 {
  553. + compatible = "fsl,ls1088a-pcie", "snps,dw-pcie";
  554. + reg = <0x00 0x03500000 0x0 0x00100000 /* controller registers */
  555. + 0x28 0x00000000 0x0 0x00002000>; /* configuration space */
  556. + reg-names = "regs", "config";
  557. + interrupts = <0 113 0x4>; /* aer interrupt */
  558. + interrupt-names = "aer";
  559. + #address-cells = <3>;
  560. + #size-cells = <2>;
  561. + device_type = "pci";
  562. + dma-coherent;
  563. + num-lanes = <4>;
  564. + bus-range = <0x0 0xff>;
  565. + ranges = <0x81000000 0x0 0x00000000 0x28 0x00010000 0x0 0x00010000 /* downstream I/O */
  566. + 0x82000000 0x0 0x40000000 0x28 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
  567. + msi-parent = <&its>;
  568. + #interrupt-cells = <1>;
  569. + interrupt-map-mask = <0 0 0 7>;
  570. + interrupt-map = <0000 0 0 1 &gic 0 0 0 114 4>,
  571. + <0000 0 0 2 &gic 0 0 0 115 4>,
  572. + <0000 0 0 3 &gic 0 0 0 116 4>,
  573. + <0000 0 0 4 &gic 0 0 0 117 4>;
  574. + };
  575. +
  576. + pcie@3600000 {
  577. + compatible = "fsl,ls1088a-pcie", "snps,dw-pcie";
  578. + reg = <0x00 0x03600000 0x0 0x00100000 /* controller registers */
  579. + 0x30 0x00000000 0x0 0x00002000>; /* configuration space */
  580. + reg-names = "regs", "config";
  581. + interrupts = <0 118 0x4>; /* aer interrupt */
  582. + interrupt-names = "aer";
  583. + #address-cells = <3>;
  584. + #size-cells = <2>;
  585. + device_type = "pci";
  586. + dma-coherent;
  587. + num-lanes = <8>;
  588. + bus-range = <0x0 0xff>;
  589. + ranges = <0x81000000 0x0 0x00000000 0x30 0x00010000 0x0 0x00010000 /* downstream I/O */
  590. + 0x82000000 0x0 0x40000000 0x30 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
  591. + msi-parent = <&its>;
  592. + #interrupt-cells = <1>;
  593. + interrupt-map-mask = <0 0 0 7>;
  594. + interrupt-map = <0000 0 0 1 &gic 0 0 0 119 4>,
  595. + <0000 0 0 2 &gic 0 0 0 120 4>,
  596. + <0000 0 0 3 &gic 0 0 0 121 4>,
  597. + <0000 0 0 4 &gic 0 0 0 122 4>;
  598. + };
  599. +
  600. + sata0: sata@3200000 {
  601. + compatible = "fsl,ls1088a-ahci", "fsl,ls1043a-ahci";
  602. + reg = <0x0 0x3200000 0x0 0x10000>;
  603. + interrupts = <0 133 0x4>; /* Level high type */
  604. + clocks = <&clockgen 4 3>;
  605. + };
  606. +
  607. + usb0: usb3@3100000 {
  608. + compatible = "snps,dwc3";
  609. + reg = <0x0 0x3100000 0x0 0x10000>;
  610. + interrupts = <0 80 0x4>; /* Level high type */
  611. + dr_mode = "host";
  612. + configure-gfladj;
  613. + snps,dis_rxdet_inp3_quirk;
  614. + };
  615. +
  616. + usb1: usb3@3110000 {
  617. + compatible = "snps,dwc3";
  618. + reg = <0x0 0x3110000 0x0 0x10000>;
  619. + interrupts = <0 81 0x4>; /* Level high type */
  620. + dr_mode = "host";
  621. + configure-gfladj;
  622. + snps,dis_rxdet_inp3_quirk;
  623. + };
  624. +
  625. + smmu: iommu@5000000 {
  626. + compatible = "arm,mmu-500";
  627. + reg = <0 0x5000000 0 0x800000>;
  628. + #global-interrupts = <12>;
  629. + interrupts = <0 13 4>, /* global secure fault */
  630. + <0 14 4>, /* combined secure interrupt */
  631. + <0 15 4>, /* global non-secure fault */
  632. + <0 16 4>, /* combined non-secure interrupt */
  633. + /* performance counter interrupts 0-7 */
  634. + <0 211 4>,
  635. + <0 212 4>,
  636. + <0 213 4>,
  637. + <0 214 4>,
  638. + <0 215 4>,
  639. + <0 216 4>,
  640. + <0 217 4>,
  641. + <0 218 4>,
  642. + /* per context interrupt, 64 interrupts */
  643. + <0 146 4>,
  644. + <0 147 4>,
  645. + <0 148 4>,
  646. + <0 149 4>,
  647. + <0 150 4>,
  648. + <0 151 4>,
  649. + <0 152 4>,
  650. + <0 153 4>,
  651. + <0 154 4>,
  652. + <0 155 4>,
  653. + <0 156 4>,
  654. + <0 157 4>,
  655. + <0 158 4>,
  656. + <0 159 4>,
  657. + <0 160 4>,
  658. + <0 161 4>,
  659. + <0 162 4>,
  660. + <0 163 4>,
  661. + <0 164 4>,
  662. + <0 165 4>,
  663. + <0 166 4>,
  664. + <0 167 4>,
  665. + <0 168 4>,
  666. + <0 169 4>,
  667. + <0 170 4>,
  668. + <0 171 4>,
  669. + <0 172 4>,
  670. + <0 173 4>,
  671. + <0 174 4>,
  672. + <0 175 4>,
  673. + <0 176 4>,
  674. + <0 177 4>,
  675. + <0 178 4>,
  676. + <0 179 4>,
  677. + <0 180 4>,
  678. + <0 181 4>,
  679. + <0 182 4>,
  680. + <0 183 4>,
  681. + <0 184 4>,
  682. + <0 185 4>,
  683. + <0 186 4>,
  684. + <0 187 4>,
  685. + <0 188 4>,
  686. + <0 189 4>,
  687. + <0 190 4>,
  688. + <0 191 4>,
  689. + <0 192 4>,
  690. + <0 193 4>,
  691. + <0 194 4>,
  692. + <0 195 4>,
  693. + <0 196 4>,
  694. + <0 197 4>,
  695. + <0 198 4>,
  696. + <0 199 4>,
  697. + <0 200 4>,
  698. + <0 201 4>,
  699. + <0 202 4>,
  700. + <0 203 4>,
  701. + <0 204 4>,
  702. + <0 205 4>,
  703. + <0 206 4>,
  704. + <0 207 4>,
  705. + <0 208 4>,
  706. + <0 209 4>;
  707. + mmu-masters = <&fsl_mc 0x300 0>;
  708. + };
  709. +
  710. + timer {
  711. + compatible = "arm,armv8-timer";
  712. + interrupts = <1 13 0x1>,/*Phy Secure PPI, edge triggered*/
  713. + <1 14 0x1>, /*Phy Non-Secure PPI, edge triggered*/
  714. + <1 11 0x1>, /*Virtual PPI, edge triggered */
  715. + <1 10 0x1>; /*Hypervisor PPI, edge triggered */
  716. + };
  717. +
  718. + fsl_mc: fsl-mc@80c000000 {
  719. + compatible = "fsl,qoriq-mc";
  720. + #stream-id-cells = <2>;
  721. + reg = <0x00000008 0x0c000000 0 0x40>, /* MC portal base */
  722. + <0x00000000 0x08340000 0 0x40000>; /* MC control reg */
  723. + msi-parent = <&its>;
  724. + #address-cells = <3>;
  725. + #size-cells = <1>;
  726. +
  727. + /*
  728. + * Region type 0x0 - MC portals
  729. + * Region type 0x1 - QBMAN portals
  730. + */
  731. + ranges = <0x0 0x0 0x0 0x8 0x0c000000 0x4000000
  732. + 0x1 0x0 0x0 0x8 0x18000000 0x8000000>;
  733. +
  734. + dpmacs {
  735. + #address-cells = <1>;
  736. + #size-cells = <0>;
  737. +
  738. + dpmac1: dpmac@1 {
  739. + compatible = "fsl,qoriq-mc-dpmac";
  740. + reg = <1>;
  741. + };
  742. + dpmac2: dpmac@2 {
  743. + compatible = "fsl,qoriq-mc-dpmac";
  744. + reg = <2>;
  745. + };
  746. + dpmac3: dpmac@3 {
  747. + compatible = "fsl,qoriq-mc-dpmac";
  748. + reg = <3>;
  749. + };
  750. + dpmac4: dpmac@4 {
  751. + compatible = "fsl,qoriq-mc-dpmac";
  752. + reg = <4>;
  753. + };
  754. + dpmac5: dpmac@5 {
  755. + compatible = "fsl,qoriq-mc-dpmac";
  756. + reg = <5>;
  757. + };
  758. + dpmac6: dpmac@6 {
  759. + compatible = "fsl,qoriq-mc-dpmac";
  760. + reg = <6>;
  761. + };
  762. + dpmac7: dpmac@7 {
  763. + compatible = "fsl,qoriq-mc-dpmac";
  764. + reg = <7>;
  765. + };
  766. + dpmac8: dpmac@8 {
  767. + compatible = "fsl,qoriq-mc-dpmac";
  768. + reg = <8>;
  769. + };
  770. + dpmac9: dpmac@9 {
  771. + compatible = "fsl,qoriq-mc-dpmac";
  772. + reg = <9>;
  773. + };
  774. + dpmac10: dpmac@10 {
  775. + compatible = "fsl,qoriq-mc-dpmac";
  776. + reg = <0xa>;
  777. + };
  778. + };
  779. + };
  780. +
  781. +
  782. + memory@80000000 {
  783. + device_type = "memory";
  784. + reg = <0x00000000 0x80000000 0 0x80000000>;
  785. + /* DRAM space 1 - 2 GB DRAM */
  786. + };
  787. +};