bcm-nsp.dtsi 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695
  1. /*
  2. * BSD LICENSE
  3. *
  4. * Copyright(c) 2015 Broadcom Corporation. All rights reserved.
  5. *
  6. * Redistribution and use in source and binary forms, with or without
  7. * modification, are permitted provided that the following conditions
  8. * are met:
  9. *
  10. * * Redistributions of source code must retain the above copyright
  11. * notice, this list of conditions and the following disclaimer.
  12. * * Redistributions in binary form must reproduce the above copyright
  13. * notice, this list of conditions and the following disclaimer in
  14. * the documentation and/or other materials provided with the
  15. * distribution.
  16. * * Neither the name of Broadcom Corporation nor the names of its
  17. * contributors may be used to endorse or promote products derived
  18. * from this software without specific prior written permission.
  19. *
  20. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  21. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  22. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  23. * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  24. * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  25. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  26. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  27. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  28. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  29. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  30. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  31. */
  32. #include <dt-bindings/interrupt-controller/arm-gic.h>
  33. #include <dt-bindings/interrupt-controller/irq.h>
  34. #include <dt-bindings/clock/bcm-nsp.h>
  35. / {
  36. #address-cells = <1>;
  37. #size-cells = <1>;
  38. compatible = "brcm,nsp";
  39. model = "Broadcom Northstar Plus SoC";
  40. interrupt-parent = <&gic>;
  41. aliases {
  42. serial0 = &uart0;
  43. serial1 = &uart1;
  44. ethernet0 = &amac0;
  45. ethernet1 = &amac1;
  46. ethernet2 = &amac2;
  47. };
  48. cpus {
  49. #address-cells = <1>;
  50. #size-cells = <0>;
  51. cpu0: cpu@0 {
  52. device_type = "cpu";
  53. compatible = "arm,cortex-a9";
  54. next-level-cache = <&L2>;
  55. reg = <0x0>;
  56. };
  57. cpu1: cpu@1 {
  58. device_type = "cpu";
  59. compatible = "arm,cortex-a9";
  60. next-level-cache = <&L2>;
  61. enable-method = "brcm,bcm-nsp-smp";
  62. secondary-boot-reg = <0xffff0fec>;
  63. reg = <0x1>;
  64. };
  65. };
  66. pmu {
  67. compatible = "arm,cortex-a9-pmu";
  68. interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH
  69. GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
  70. interrupt-affinity = <&cpu0>, <&cpu1>;
  71. };
  72. mpcore-bus@19000000 {
  73. compatible = "simple-bus";
  74. ranges = <0x00000000 0x19000000 0x00023000>;
  75. #address-cells = <1>;
  76. #size-cells = <1>;
  77. a9pll: arm_clk@0 {
  78. #clock-cells = <0>;
  79. compatible = "brcm,nsp-armpll";
  80. clocks = <&osc>;
  81. reg = <0x00000 0x1000>;
  82. };
  83. timer@20200 {
  84. compatible = "arm,cortex-a9-global-timer";
  85. reg = <0x20200 0x100>;
  86. interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
  87. clocks = <&periph_clk>;
  88. };
  89. twd-timer@20600 {
  90. compatible = "arm,cortex-a9-twd-timer";
  91. reg = <0x20600 0x20>;
  92. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
  93. IRQ_TYPE_EDGE_RISING)>;
  94. clocks = <&periph_clk>;
  95. };
  96. twd-watchdog@20620 {
  97. compatible = "arm,cortex-a9-twd-wdt";
  98. reg = <0x20620 0x20>;
  99. interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) |
  100. IRQ_TYPE_LEVEL_HIGH)>;
  101. clocks = <&periph_clk>;
  102. };
  103. gic: interrupt-controller@21000 {
  104. compatible = "arm,cortex-a9-gic";
  105. #interrupt-cells = <3>;
  106. #address-cells = <0>;
  107. interrupt-controller;
  108. reg = <0x21000 0x1000>,
  109. <0x20100 0x100>;
  110. };
  111. L2: cache-controller@22000 {
  112. compatible = "arm,pl310-cache";
  113. reg = <0x22000 0x1000>;
  114. cache-unified;
  115. cache-level = <2>;
  116. };
  117. };
  118. clocks {
  119. #address-cells = <1>;
  120. #size-cells = <1>;
  121. ranges;
  122. osc: oscillator {
  123. #clock-cells = <0>;
  124. compatible = "fixed-clock";
  125. clock-frequency = <25000000>;
  126. };
  127. iprocmed: iprocmed {
  128. #clock-cells = <0>;
  129. compatible = "fixed-factor-clock";
  130. clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
  131. clock-div = <2>;
  132. clock-mult = <1>;
  133. };
  134. iprocslow: iprocslow {
  135. #clock-cells = <0>;
  136. compatible = "fixed-factor-clock";
  137. clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
  138. clock-div = <4>;
  139. clock-mult = <1>;
  140. };
  141. periph_clk: periph_clk {
  142. #clock-cells = <0>;
  143. compatible = "fixed-factor-clock";
  144. clocks = <&a9pll>;
  145. clock-div = <2>;
  146. clock-mult = <1>;
  147. };
  148. };
  149. axi: axi@18000000 {
  150. compatible = "simple-bus";
  151. ranges = <0x00000000 0x18000000 0x0011c40c>;
  152. #address-cells = <1>;
  153. #size-cells = <1>;
  154. gpioa: gpio@20 {
  155. compatible = "brcm,nsp-gpio-a";
  156. reg = <0x0020 0x70>,
  157. <0x3f1c4 0x1c>;
  158. #gpio-cells = <2>;
  159. gpio-controller;
  160. ngpios = <32>;
  161. interrupt-controller;
  162. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  163. gpio-ranges = <&pinctrl 0 0 32>;
  164. };
  165. uart0: serial@300 {
  166. compatible = "ns16550a";
  167. reg = <0x0300 0x100>;
  168. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  169. clocks = <&osc>;
  170. status = "disabled";
  171. };
  172. uart1: serial@400 {
  173. compatible = "ns16550a";
  174. reg = <0x0400 0x100>;
  175. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  176. clocks = <&osc>;
  177. status = "disabled";
  178. };
  179. dma: dma@20000 {
  180. compatible = "arm,pl330", "arm,primecell";
  181. reg = <0x20000 0x1000>;
  182. interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
  183. <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
  184. <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
  185. <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
  186. <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
  187. <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
  188. <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
  189. <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
  190. <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
  191. clocks = <&iprocslow>;
  192. clock-names = "apb_pclk";
  193. #dma-cells = <1>;
  194. dma-coherent;
  195. status = "disabled";
  196. };
  197. sdio: mmc@21000 {
  198. compatible = "brcm,sdhci-iproc-cygnus";
  199. reg = <0x21000 0x100>;
  200. interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
  201. sdhci,auto-cmd12;
  202. clocks = <&lcpll0 BCM_NSP_LCPLL0_SDIO_CLK>;
  203. dma-coherent;
  204. status = "disabled";
  205. };
  206. amac0: ethernet@22000 {
  207. compatible = "brcm,nsp-amac";
  208. reg = <0x022000 0x1000>,
  209. <0x110000 0x1000>;
  210. reg-names = "amac_base", "idm_base";
  211. interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
  212. dma-coherent;
  213. status = "disabled";
  214. };
  215. amac1: ethernet@23000 {
  216. compatible = "brcm,nsp-amac";
  217. reg = <0x023000 0x1000>,
  218. <0x111000 0x1000>;
  219. reg-names = "amac_base", "idm_base";
  220. interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
  221. dma-coherent;
  222. status = "disabled";
  223. };
  224. amac2: ethernet@24000 {
  225. compatible = "brcm,nsp-amac";
  226. reg = <0x024000 0x1000>,
  227. <0x112000 0x1000>;
  228. reg-names = "amac_base", "idm_base";
  229. interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
  230. dma-coherent;
  231. status = "disabled";
  232. };
  233. mailbox: mailbox@25c00 {
  234. compatible = "brcm,iproc-fa2-mbox";
  235. reg = <0x25c00 0x400>;
  236. interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
  237. #mbox-cells = <1>;
  238. brcm,rx-status-len = <32>;
  239. brcm,use-bcm-hdr;
  240. dma-coherent;
  241. };
  242. nand_controller: nand-controller@26000 {
  243. compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
  244. reg = <0x026000 0x600>,
  245. <0x11b408 0x600>,
  246. <0x026f00 0x20>;
  247. reg-names = "nand", "iproc-idm", "iproc-ext";
  248. interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
  249. #address-cells = <1>;
  250. #size-cells = <0>;
  251. brcm,nand-has-wp;
  252. };
  253. qspi: spi@27200 {
  254. compatible = "brcm,spi-nsp-qspi", "brcm,spi-bcm-qspi";
  255. reg = <0x027200 0x184>,
  256. <0x027000 0x124>,
  257. <0x11c408 0x004>,
  258. <0x0273a0 0x01c>;
  259. reg-names = "mspi", "bspi", "intr_regs",
  260. "intr_status_reg";
  261. interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
  262. <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
  263. <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
  264. <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
  265. <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
  266. <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
  267. <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
  268. interrupt-names = "spi_lr_fullness_reached",
  269. "spi_lr_session_aborted",
  270. "spi_lr_impatient",
  271. "spi_lr_session_done",
  272. "spi_lr_overhead",
  273. "mspi_done",
  274. "mspi_halted";
  275. clocks = <&iprocmed>;
  276. clock-names = "iprocmed";
  277. num-cs = <2>;
  278. #address-cells = <1>;
  279. #size-cells = <0>;
  280. status = "disabled";
  281. };
  282. xhci: usb@29000 {
  283. compatible = "generic-xhci";
  284. reg = <0x29000 0x1000>;
  285. interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
  286. phys = <&usb3_phy>;
  287. phy-names = "usb3-phy";
  288. dma-coherent;
  289. status = "disabled";
  290. };
  291. ehci0: usb@2a000 {
  292. compatible = "generic-ehci";
  293. reg = <0x2a000 0x100>;
  294. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  295. dma-coherent;
  296. status = "disabled";
  297. };
  298. ohci0: usb@2b000 {
  299. compatible = "generic-ohci";
  300. reg = <0x2b000 0x100>;
  301. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  302. dma-coherent;
  303. status = "disabled";
  304. };
  305. crypto@2f000 {
  306. compatible = "brcm,spum-nsp-crypto";
  307. reg = <0x2f000 0x900>;
  308. mboxes = <&mailbox 0>;
  309. };
  310. gpiob: gpio@30000 {
  311. compatible = "brcm,iproc-nsp-gpio", "brcm,iproc-gpio";
  312. reg = <0x30000 0x50>;
  313. #gpio-cells = <2>;
  314. gpio-controller;
  315. ngpios = <4>;
  316. interrupt-controller;
  317. interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
  318. };
  319. pwm: pwm@31000 {
  320. compatible = "brcm,iproc-pwm";
  321. reg = <0x31000 0x28>;
  322. clocks = <&osc>;
  323. #pwm-cells = <3>;
  324. status = "disabled";
  325. };
  326. mdio: mdio@32000 {
  327. compatible = "brcm,iproc-mdio";
  328. reg = <0x32000 0x8>;
  329. #size-cells = <0>;
  330. #address-cells = <1>;
  331. };
  332. mdio-mux@32000 {
  333. compatible = "mdio-mux-mmioreg", "mdio-mux";
  334. reg = <0x32000 0x4>;
  335. mux-mask = <0x200>;
  336. #address-cells = <1>;
  337. #size-cells = <0>;
  338. mdio-parent-bus = <&mdio>;
  339. mdio_int: mdio@0 {
  340. reg = <0x0>;
  341. #address-cells = <1>;
  342. #size-cells = <0>;
  343. usb3_phy: usb3-phy@10 {
  344. compatible = "brcm,ns-bx-usb3-phy";
  345. reg = <0x10>;
  346. usb3-dmp-syscon = <&usb3_dmp>;
  347. #phy-cells = <0>;
  348. status = "disabled";
  349. };
  350. };
  351. mdio_ext: mdio@200 {
  352. reg = <0x200>;
  353. #address-cells = <1>;
  354. #size-cells = <0>;
  355. };
  356. };
  357. rng: rng@33000 {
  358. compatible = "brcm,bcm-nsp-rng";
  359. reg = <0x33000 0x14>;
  360. };
  361. ccbtimer0: timer@34000 {
  362. compatible = "arm,sp804", "arm,primecell";
  363. reg = <0x34000 0x1000>;
  364. interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
  365. <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
  366. clocks = <&iprocslow>;
  367. clock-names = "apb_pclk";
  368. };
  369. ccbtimer1: timer@35000 {
  370. compatible = "arm,sp804", "arm,primecell";
  371. reg = <0x35000 0x1000>;
  372. interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
  373. <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
  374. clocks = <&iprocslow>;
  375. clock-names = "apb_pclk";
  376. };
  377. srab: ethernet-switch@36000 {
  378. compatible = "brcm,nsp-srab";
  379. reg = <0x36000 0x1000>,
  380. <0x3f308 0x8>,
  381. <0x3f410 0xc>;
  382. reg-names = "srab", "mux_config", "sgmii_config";
  383. interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
  384. <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
  385. <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
  386. <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
  387. <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
  388. <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
  389. <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
  390. <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
  391. <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
  392. <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
  393. <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
  394. <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
  395. <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
  396. interrupt-names = "link_state_p0",
  397. "link_state_p1",
  398. "link_state_p2",
  399. "link_state_p3",
  400. "link_state_p4",
  401. "link_state_p5",
  402. "link_state_p7",
  403. "link_state_p8",
  404. "phy",
  405. "ts",
  406. "imp_sleep_timer_p5",
  407. "imp_sleep_timer_p7",
  408. "imp_sleep_timer_p8";
  409. status = "disabled";
  410. /* ports are defined in board DTS */
  411. ports {
  412. #address-cells = <1>;
  413. #size-cells = <0>;
  414. };
  415. };
  416. i2c0: i2c@38000 {
  417. compatible = "brcm,iproc-i2c";
  418. reg = <0x38000 0x50>;
  419. #address-cells = <1>;
  420. #size-cells = <0>;
  421. interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
  422. clock-frequency = <100000>;
  423. dma-coherent;
  424. status = "disabled";
  425. };
  426. watchdog@39000 {
  427. compatible = "arm,sp805", "arm,primecell";
  428. reg = <0x39000 0x1000>;
  429. interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
  430. clocks = <&iprocslow>, <&iprocslow>;
  431. clock-names = "wdog_clk", "apb_pclk";
  432. };
  433. lcpll0: lcpll0@3f100 {
  434. #clock-cells = <1>;
  435. compatible = "brcm,nsp-lcpll0";
  436. reg = <0x3f100 0x14>;
  437. clocks = <&osc>;
  438. clock-output-names = "lcpll0", "pcie_phy", "sdio",
  439. "ddr_phy";
  440. };
  441. genpll: genpll@3f140 {
  442. #clock-cells = <1>;
  443. compatible = "brcm,nsp-genpll";
  444. reg = <0x3f140 0x24>;
  445. clocks = <&osc>;
  446. clock-output-names = "genpll", "phy", "ethernetclk",
  447. "usbclk", "iprocfast", "sata1",
  448. "sata2";
  449. };
  450. pinctrl: pinctrl@3f1c0 {
  451. compatible = "brcm,nsp-pinmux";
  452. reg = <0x3f1c0 0x04>,
  453. <0x30028 0x04>,
  454. <0x3f408 0x04>;
  455. };
  456. thermal: thermal@3f2c0 {
  457. compatible = "brcm,ns-thermal";
  458. reg = <0x3f2c0 0x10>;
  459. #thermal-sensor-cells = <0>;
  460. };
  461. sata_phy: sata_phy@40100 {
  462. compatible = "brcm,iproc-nsp-sata-phy";
  463. reg = <0x40100 0x340>;
  464. reg-names = "phy";
  465. #address-cells = <1>;
  466. #size-cells = <0>;
  467. sata_phy0: sata-phy@0 {
  468. reg = <0>;
  469. #phy-cells = <0>;
  470. status = "disabled";
  471. };
  472. sata_phy1: sata-phy@1 {
  473. reg = <1>;
  474. #phy-cells = <0>;
  475. status = "disabled";
  476. };
  477. };
  478. sata: sata@41000 {
  479. compatible = "brcm,bcm-nsp-ahci";
  480. reg-names = "ahci", "top-ctrl";
  481. reg = <0x41000 0x1000>, <0x40020 0x1c>;
  482. interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
  483. #address-cells = <1>;
  484. #size-cells = <0>;
  485. dma-coherent;
  486. status = "disabled";
  487. sata0: sata-port@0 {
  488. reg = <0>;
  489. phys = <&sata_phy0>;
  490. phy-names = "sata-phy";
  491. };
  492. sata1: sata-port@1 {
  493. reg = <1>;
  494. phys = <&sata_phy1>;
  495. phy-names = "sata-phy";
  496. };
  497. };
  498. usb3_dmp: syscon@104000 {
  499. reg = <0x104000 0x1000>;
  500. };
  501. };
  502. pcie0: pcie@18012000 {
  503. compatible = "brcm,iproc-pcie";
  504. reg = <0x18012000 0x1000>;
  505. #interrupt-cells = <1>;
  506. interrupt-map-mask = <0 0 0 0>;
  507. interrupt-map = <0 0 0 0 &gic GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
  508. linux,pci-domain = <0>;
  509. bus-range = <0x00 0xff>;
  510. #address-cells = <3>;
  511. #size-cells = <2>;
  512. device_type = "pci";
  513. /* Note: The HW does not support I/O resources. So,
  514. * only the memory resource range is being specified.
  515. */
  516. ranges = <0x82000000 0 0x08000000 0x08000000 0 0x8000000>;
  517. dma-coherent;
  518. status = "disabled";
  519. msi-parent = <&msi0>;
  520. msi0: msi {
  521. compatible = "brcm,iproc-msi";
  522. msi-controller;
  523. interrupt-parent = <&gic>;
  524. interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
  525. <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
  526. <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
  527. <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
  528. brcm,pcie-msi-inten;
  529. };
  530. };
  531. pcie1: pcie@18013000 {
  532. compatible = "brcm,iproc-pcie";
  533. reg = <0x18013000 0x1000>;
  534. #interrupt-cells = <1>;
  535. interrupt-map-mask = <0 0 0 0>;
  536. interrupt-map = <0 0 0 0 &gic GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
  537. linux,pci-domain = <1>;
  538. bus-range = <0x00 0xff>;
  539. #address-cells = <3>;
  540. #size-cells = <2>;
  541. device_type = "pci";
  542. /* Note: The HW does not support I/O resources. So,
  543. * only the memory resource range is being specified.
  544. */
  545. ranges = <0x82000000 0 0x40000000 0x40000000 0 0x8000000>;
  546. dma-coherent;
  547. status = "disabled";
  548. msi-parent = <&msi1>;
  549. msi1: msi {
  550. compatible = "brcm,iproc-msi";
  551. msi-controller;
  552. interrupt-parent = <&gic>;
  553. interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
  554. <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
  555. <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
  556. <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
  557. brcm,pcie-msi-inten;
  558. };
  559. };
  560. pcie2: pcie@18014000 {
  561. compatible = "brcm,iproc-pcie";
  562. reg = <0x18014000 0x1000>;
  563. #interrupt-cells = <1>;
  564. interrupt-map-mask = <0 0 0 0>;
  565. interrupt-map = <0 0 0 0 &gic GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
  566. linux,pci-domain = <2>;
  567. bus-range = <0x00 0xff>;
  568. #address-cells = <3>;
  569. #size-cells = <2>;
  570. device_type = "pci";
  571. /* Note: The HW does not support I/O resources. So,
  572. * only the memory resource range is being specified.
  573. */
  574. ranges = <0x82000000 0 0x48000000 0x48000000 0 0x8000000>;
  575. dma-coherent;
  576. status = "disabled";
  577. msi-parent = <&msi2>;
  578. msi2: msi {
  579. compatible = "brcm,iproc-msi";
  580. msi-controller;
  581. interrupt-parent = <&gic>;
  582. interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
  583. <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
  584. <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
  585. <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
  586. brcm,pcie-msi-inten;
  587. };
  588. };
  589. thermal-zones {
  590. cpu-thermal {
  591. polling-delay-passive = <0>;
  592. polling-delay = <1000>;
  593. coefficients = <(-556) 418000>;
  594. thermal-sensors = <&thermal>;
  595. trips {
  596. cpu-crit {
  597. temperature = <125000>;
  598. hysteresis = <0>;
  599. type = "critical";
  600. };
  601. };
  602. cooling-maps {
  603. };
  604. };
  605. };
  606. };