ns2.dtsi 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766
  1. /*
  2. * BSD LICENSE
  3. *
  4. * Copyright (c) 2015 Broadcom. 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. /memreserve/ 0x81000000 0x00200000;
  33. #include <dt-bindings/interrupt-controller/arm-gic.h>
  34. #include <dt-bindings/clock/bcm-ns2.h>
  35. / {
  36. compatible = "brcm,ns2";
  37. interrupt-parent = <&gic>;
  38. #address-cells = <2>;
  39. #size-cells = <2>;
  40. cpus {
  41. #address-cells = <2>;
  42. #size-cells = <0>;
  43. A57_0: cpu@0 {
  44. device_type = "cpu";
  45. compatible = "arm,cortex-a57", "arm,armv8";
  46. reg = <0 0>;
  47. enable-method = "psci";
  48. next-level-cache = <&CLUSTER0_L2>;
  49. };
  50. A57_1: cpu@1 {
  51. device_type = "cpu";
  52. compatible = "arm,cortex-a57", "arm,armv8";
  53. reg = <0 1>;
  54. enable-method = "psci";
  55. next-level-cache = <&CLUSTER0_L2>;
  56. };
  57. A57_2: cpu@2 {
  58. device_type = "cpu";
  59. compatible = "arm,cortex-a57", "arm,armv8";
  60. reg = <0 2>;
  61. enable-method = "psci";
  62. next-level-cache = <&CLUSTER0_L2>;
  63. };
  64. A57_3: cpu@3 {
  65. device_type = "cpu";
  66. compatible = "arm,cortex-a57", "arm,armv8";
  67. reg = <0 3>;
  68. enable-method = "psci";
  69. next-level-cache = <&CLUSTER0_L2>;
  70. };
  71. CLUSTER0_L2: l2-cache@0 {
  72. compatible = "cache";
  73. };
  74. };
  75. psci {
  76. compatible = "arm,psci-1.0";
  77. method = "smc";
  78. };
  79. timer {
  80. compatible = "arm,armv8-timer";
  81. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(0xff) |
  82. IRQ_TYPE_LEVEL_LOW)>,
  83. <GIC_PPI 14 (GIC_CPU_MASK_RAW(0xff) |
  84. IRQ_TYPE_LEVEL_LOW)>,
  85. <GIC_PPI 11 (GIC_CPU_MASK_RAW(0xff) |
  86. IRQ_TYPE_LEVEL_LOW)>,
  87. <GIC_PPI 10 (GIC_CPU_MASK_RAW(0xff) |
  88. IRQ_TYPE_LEVEL_LOW)>;
  89. };
  90. pmu {
  91. compatible = "arm,armv8-pmuv3";
  92. interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
  93. <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
  94. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  95. <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
  96. interrupt-affinity = <&A57_0>,
  97. <&A57_1>,
  98. <&A57_2>,
  99. <&A57_3>;
  100. };
  101. pcie0: pcie@20020000 {
  102. compatible = "brcm,iproc-pcie";
  103. reg = <0 0x20020000 0 0x1000>;
  104. dma-coherent;
  105. #interrupt-cells = <1>;
  106. interrupt-map-mask = <0 0 0 0>;
  107. interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>;
  108. linux,pci-domain = <0>;
  109. bus-range = <0x00 0xff>;
  110. #address-cells = <3>;
  111. #size-cells = <2>;
  112. device_type = "pci";
  113. ranges = <0x83000000 0 0x00000000 0 0x00000000 0 0x20000000>;
  114. brcm,pcie-ob;
  115. brcm,pcie-ob-oarr-size;
  116. brcm,pcie-ob-axi-offset = <0x00000000>;
  117. brcm,pcie-ob-window-size = <256>;
  118. status = "disabled";
  119. phys = <&pci_phy0>;
  120. phy-names = "pcie-phy";
  121. msi-parent = <&v2m0>;
  122. };
  123. pcie4: pcie@50020000 {
  124. compatible = "brcm,iproc-pcie";
  125. reg = <0 0x50020000 0 0x1000>;
  126. dma-coherent;
  127. #interrupt-cells = <1>;
  128. interrupt-map-mask = <0 0 0 0>;
  129. interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
  130. linux,pci-domain = <4>;
  131. bus-range = <0x00 0xff>;
  132. #address-cells = <3>;
  133. #size-cells = <2>;
  134. device_type = "pci";
  135. ranges = <0x83000000 0 0x00000000 0 0x30000000 0 0x20000000>;
  136. brcm,pcie-ob;
  137. brcm,pcie-ob-oarr-size;
  138. brcm,pcie-ob-axi-offset = <0x30000000>;
  139. brcm,pcie-ob-window-size = <256>;
  140. status = "disabled";
  141. phys = <&pci_phy1>;
  142. phy-names = "pcie-phy";
  143. msi-parent = <&v2m0>;
  144. };
  145. pcie8: pcie@60c00000 {
  146. compatible = "brcm,iproc-pcie-paxc";
  147. reg = <0 0x60c00000 0 0x1000>;
  148. dma-coherent;
  149. linux,pci-domain = <8>;
  150. bus-range = <0x0 0x1>;
  151. #address-cells = <3>;
  152. #size-cells = <2>;
  153. device_type = "pci";
  154. ranges = <0x83000000 0 0x00000000 0 0x60000000 0 0x00c00000>;
  155. status = "disabled";
  156. msi-parent = <&v2m0>;
  157. };
  158. soc: soc {
  159. compatible = "simple-bus";
  160. #address-cells = <1>;
  161. #size-cells = <1>;
  162. ranges = <0 0 0 0xffffffff>;
  163. #include "ns2-clock.dtsi"
  164. enet: ethernet@61000000 {
  165. compatible = "brcm,ns2-amac";
  166. reg = <0x61000000 0x1000>,
  167. <0x61090000 0x1000>,
  168. <0x61030000 0x100>;
  169. reg-names = "amac_base", "idm_base", "nicpm_base";
  170. interrupts = <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>;
  171. dma-coherent;
  172. phy-handle = <&gphy0>;
  173. phy-mode = "rgmii";
  174. status = "disabled";
  175. };
  176. pdc0: iproc-pdc0@612c0000 {
  177. compatible = "brcm,iproc-pdc-mbox";
  178. reg = <0x612c0000 0x445>; /* PDC FS0 regs */
  179. interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
  180. #mbox-cells = <1>;
  181. dma-coherent;
  182. brcm,rx-status-len = <32>;
  183. brcm,use-bcm-hdr;
  184. };
  185. crypto0: crypto@612d0000 {
  186. compatible = "brcm,spum-crypto";
  187. reg = <0x612d0000 0x900>;
  188. mboxes = <&pdc0 0>;
  189. };
  190. pdc1: iproc-pdc1@612e0000 {
  191. compatible = "brcm,iproc-pdc-mbox";
  192. reg = <0x612e0000 0x445>; /* PDC FS1 regs */
  193. interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
  194. #mbox-cells = <1>;
  195. dma-coherent;
  196. brcm,rx-status-len = <32>;
  197. brcm,use-bcm-hdr;
  198. };
  199. crypto1: crypto@612f0000 {
  200. compatible = "brcm,spum-crypto";
  201. reg = <0x612f0000 0x900>;
  202. mboxes = <&pdc1 0>;
  203. };
  204. pdc2: iproc-pdc2@61300000 {
  205. compatible = "brcm,iproc-pdc-mbox";
  206. reg = <0x61300000 0x445>; /* PDC FS2 regs */
  207. interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
  208. #mbox-cells = <1>;
  209. dma-coherent;
  210. brcm,rx-status-len = <32>;
  211. brcm,use-bcm-hdr;
  212. };
  213. crypto2: crypto@61310000 {
  214. compatible = "brcm,spum-crypto";
  215. reg = <0x61310000 0x900>;
  216. mboxes = <&pdc2 0>;
  217. };
  218. pdc3: iproc-pdc3@61320000 {
  219. compatible = "brcm,iproc-pdc-mbox";
  220. reg = <0x61320000 0x445>; /* PDC FS3 regs */
  221. interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
  222. #mbox-cells = <1>;
  223. dma-coherent;
  224. brcm,rx-status-len = <32>;
  225. brcm,use-bcm-hdr;
  226. };
  227. crypto3: crypto@61330000 {
  228. compatible = "brcm,spum-crypto";
  229. reg = <0x61330000 0x900>;
  230. mboxes = <&pdc3 0>;
  231. };
  232. dma0: dma@61360000 {
  233. compatible = "arm,pl330", "arm,primecell";
  234. reg = <0x61360000 0x1000>;
  235. interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>,
  236. <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>,
  237. <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
  238. <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
  239. <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
  240. <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
  241. <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
  242. <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
  243. <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
  244. #dma-cells = <1>;
  245. #dma-channels = <8>;
  246. #dma-requests = <32>;
  247. clocks = <&iprocslow>;
  248. clock-names = "apb_pclk";
  249. };
  250. smmu: mmu@64000000 {
  251. compatible = "arm,mmu-500";
  252. reg = <0x64000000 0x40000>;
  253. #global-interrupts = <2>;
  254. interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
  255. <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>,
  256. <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
  257. <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>,
  258. <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH>,
  259. <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>,
  260. <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH>,
  261. <GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH>,
  262. <GIC_SPI 237 IRQ_TYPE_LEVEL_HIGH>,
  263. <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>,
  264. <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>,
  265. <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
  266. <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>,
  267. <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>,
  268. <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>,
  269. <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>,
  270. <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>,
  271. <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>,
  272. <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
  273. <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>,
  274. <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>,
  275. <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>,
  276. <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>,
  277. <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>,
  278. <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>,
  279. <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>,
  280. <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>,
  281. <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
  282. <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>,
  283. <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
  284. <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>,
  285. <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
  286. <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
  287. <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>;
  288. #iommu-cells = <1>;
  289. };
  290. pinctrl: pinctrl@6501d130 {
  291. compatible = "brcm,ns2-pinmux";
  292. reg = <0x6501d130 0x08>,
  293. <0x660a0028 0x04>,
  294. <0x660009b0 0x40>;
  295. };
  296. gpio_aon: gpio@65024800 {
  297. compatible = "brcm,iproc-gpio";
  298. reg = <0x65024800 0x50>,
  299. <0x65024008 0x18>;
  300. ngpios = <6>;
  301. #gpio-cells = <2>;
  302. gpio-controller;
  303. };
  304. gic: interrupt-controller@65210000 {
  305. compatible = "arm,gic-400";
  306. #interrupt-cells = <3>;
  307. interrupt-controller;
  308. reg = <0x65210000 0x1000>,
  309. <0x65220000 0x1000>,
  310. <0x65240000 0x2000>,
  311. <0x65260000 0x1000>;
  312. interrupts = <GIC_PPI 9 (GIC_CPU_MASK_RAW(0xf) |
  313. IRQ_TYPE_LEVEL_HIGH)>;
  314. #address-cells = <1>;
  315. #size-cells = <1>;
  316. ranges = <0 0x652e0000 0x80000>;
  317. v2m0: v2m@0 {
  318. compatible = "arm,gic-v2m-frame";
  319. interrupt-parent = <&gic>;
  320. msi-controller;
  321. reg = <0x00000 0x1000>;
  322. arm,msi-base-spi = <72>;
  323. arm,msi-num-spis = <16>;
  324. };
  325. v2m1: v2m@10000 {
  326. compatible = "arm,gic-v2m-frame";
  327. interrupt-parent = <&gic>;
  328. msi-controller;
  329. reg = <0x10000 0x1000>;
  330. arm,msi-base-spi = <88>;
  331. arm,msi-num-spis = <16>;
  332. };
  333. v2m2: v2m@20000 {
  334. compatible = "arm,gic-v2m-frame";
  335. interrupt-parent = <&gic>;
  336. msi-controller;
  337. reg = <0x20000 0x1000>;
  338. arm,msi-base-spi = <104>;
  339. arm,msi-num-spis = <16>;
  340. };
  341. v2m3: v2m@30000 {
  342. compatible = "arm,gic-v2m-frame";
  343. interrupt-parent = <&gic>;
  344. msi-controller;
  345. reg = <0x30000 0x1000>;
  346. arm,msi-base-spi = <120>;
  347. arm,msi-num-spis = <16>;
  348. };
  349. v2m4: v2m@40000 {
  350. compatible = "arm,gic-v2m-frame";
  351. interrupt-parent = <&gic>;
  352. msi-controller;
  353. reg = <0x40000 0x1000>;
  354. arm,msi-base-spi = <136>;
  355. arm,msi-num-spis = <16>;
  356. };
  357. v2m5: v2m@50000 {
  358. compatible = "arm,gic-v2m-frame";
  359. interrupt-parent = <&gic>;
  360. msi-controller;
  361. reg = <0x50000 0x1000>;
  362. arm,msi-base-spi = <152>;
  363. arm,msi-num-spis = <16>;
  364. };
  365. v2m6: v2m@60000 {
  366. compatible = "arm,gic-v2m-frame";
  367. interrupt-parent = <&gic>;
  368. msi-controller;
  369. reg = <0x60000 0x1000>;
  370. arm,msi-base-spi = <168>;
  371. arm,msi-num-spis = <16>;
  372. };
  373. v2m7: v2m@70000 {
  374. compatible = "arm,gic-v2m-frame";
  375. interrupt-parent = <&gic>;
  376. msi-controller;
  377. reg = <0x70000 0x1000>;
  378. arm,msi-base-spi = <184>;
  379. arm,msi-num-spis = <16>;
  380. };
  381. };
  382. cci@65590000 {
  383. compatible = "arm,cci-400";
  384. #address-cells = <1>;
  385. #size-cells = <1>;
  386. reg = <0x65590000 0x1000>;
  387. ranges = <0 0x65590000 0x10000>;
  388. pmu@9000 {
  389. compatible = "arm,cci-400-pmu,r1",
  390. "arm,cci-400-pmu";
  391. reg = <0x9000 0x4000>;
  392. interrupts = <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
  393. <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
  394. <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>,
  395. <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>,
  396. <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>,
  397. <GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH>;
  398. };
  399. };
  400. usbdrd_phy: phy@66000960 {
  401. #phy-cells = <0>;
  402. compatible = "brcm,ns2-drd-phy";
  403. reg = <0x66000960 0x24>,
  404. <0x67012800 0x4>,
  405. <0x6501d148 0x4>,
  406. <0x664d0700 0x4>;
  407. reg-names = "icfg", "rst-ctrl",
  408. "crmu-ctrl", "usb2-strap";
  409. id-gpios = <&gpio_g 30 0>;
  410. vbus-gpios = <&gpio_g 31 0>;
  411. status = "disabled";
  412. };
  413. pwm: pwm@66010000 {
  414. compatible = "brcm,iproc-pwm";
  415. reg = <0x66010000 0x28>;
  416. clocks = <&osc>;
  417. #pwm-cells = <3>;
  418. status = "disabled";
  419. };
  420. mdio_mux_iproc: mdio-mux@66020000 {
  421. compatible = "brcm,mdio-mux-iproc";
  422. reg = <0x66020000 0x250>;
  423. #address-cells = <1>;
  424. #size-cells = <0>;
  425. mdio@0 {
  426. reg = <0x0>;
  427. #address-cells = <1>;
  428. #size-cells = <0>;
  429. pci_phy0: pci-phy@0 {
  430. compatible = "brcm,ns2-pcie-phy";
  431. reg = <0x0>;
  432. #phy-cells = <0>;
  433. status = "disabled";
  434. };
  435. };
  436. mdio@7 {
  437. reg = <0x7>;
  438. #address-cells = <1>;
  439. #size-cells = <0>;
  440. pci_phy1: pci-phy@0 {
  441. compatible = "brcm,ns2-pcie-phy";
  442. reg = <0x0>;
  443. #phy-cells = <0>;
  444. status = "disabled";
  445. };
  446. };
  447. mdio@10 {
  448. reg = <0x10>;
  449. #address-cells = <1>;
  450. #size-cells = <0>;
  451. };
  452. };
  453. timer0: timer@66030000 {
  454. compatible = "arm,sp804", "arm,primecell";
  455. reg = <0x66030000 0x1000>;
  456. interrupts = <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>;
  457. clocks = <&iprocslow>,
  458. <&iprocslow>,
  459. <&iprocslow>;
  460. clock-names = "timer1", "timer2", "apb_pclk";
  461. };
  462. timer1: timer@66040000 {
  463. compatible = "arm,sp804", "arm,primecell";
  464. reg = <0x66040000 0x1000>;
  465. interrupts = <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>;
  466. clocks = <&iprocslow>,
  467. <&iprocslow>,
  468. <&iprocslow>;
  469. clock-names = "timer1", "timer2", "apb_pclk";
  470. };
  471. timer2: timer@66050000 {
  472. compatible = "arm,sp804", "arm,primecell";
  473. reg = <0x66050000 0x1000>;
  474. interrupts = <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>;
  475. clocks = <&iprocslow>,
  476. <&iprocslow>,
  477. <&iprocslow>;
  478. clock-names = "timer1", "timer2", "apb_pclk";
  479. };
  480. timer3: timer@66060000 {
  481. compatible = "arm,sp804", "arm,primecell";
  482. reg = <0x66060000 0x1000>;
  483. interrupts = <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>;
  484. clocks = <&iprocslow>,
  485. <&iprocslow>,
  486. <&iprocslow>;
  487. clock-names = "timer1", "timer2", "apb_pclk";
  488. };
  489. i2c0: i2c@66080000 {
  490. compatible = "brcm,iproc-i2c";
  491. reg = <0x66080000 0x100>;
  492. #address-cells = <1>;
  493. #size-cells = <0>;
  494. interrupts = <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH>;
  495. clock-frequency = <100000>;
  496. status = "disabled";
  497. };
  498. wdt0: watchdog@66090000 {
  499. compatible = "arm,sp805", "arm,primecell";
  500. reg = <0x66090000 0x1000>;
  501. interrupts = <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>;
  502. clocks = <&iprocslow>, <&iprocslow>;
  503. clock-names = "wdogclk", "apb_pclk";
  504. };
  505. gpio_g: gpio@660a0000 {
  506. compatible = "brcm,iproc-gpio";
  507. reg = <0x660a0000 0x50>;
  508. ngpios = <32>;
  509. #gpio-cells = <2>;
  510. gpio-controller;
  511. interrupt-controller;
  512. interrupts = <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>;
  513. };
  514. i2c1: i2c@660b0000 {
  515. compatible = "brcm,iproc-i2c";
  516. reg = <0x660b0000 0x100>;
  517. #address-cells = <1>;
  518. #size-cells = <0>;
  519. interrupts = <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>;
  520. clock-frequency = <100000>;
  521. status = "disabled";
  522. };
  523. uart0: serial@66100000 {
  524. compatible = "snps,dw-apb-uart";
  525. reg = <0x66100000 0x100>;
  526. interrupts = <GIC_SPI 390 IRQ_TYPE_LEVEL_HIGH>;
  527. clocks = <&iprocslow>;
  528. reg-shift = <2>;
  529. reg-io-width = <4>;
  530. status = "disabled";
  531. };
  532. uart1: serial@66110000 {
  533. compatible = "snps,dw-apb-uart";
  534. reg = <0x66110000 0x100>;
  535. interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH>;
  536. clocks = <&iprocslow>;
  537. reg-shift = <2>;
  538. reg-io-width = <4>;
  539. status = "disabled";
  540. };
  541. uart2: serial@66120000 {
  542. compatible = "snps,dw-apb-uart";
  543. reg = <0x66120000 0x100>;
  544. interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>;
  545. clocks = <&iprocslow>;
  546. reg-shift = <2>;
  547. reg-io-width = <4>;
  548. status = "disabled";
  549. };
  550. uart3: serial@66130000 {
  551. compatible = "snps,dw-apb-uart";
  552. reg = <0x66130000 0x100>;
  553. interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>;
  554. reg-shift = <2>;
  555. reg-io-width = <4>;
  556. clocks = <&osc>;
  557. status = "disabled";
  558. };
  559. ssp0: spi@66180000 {
  560. compatible = "arm,pl022", "arm,primecell";
  561. reg = <0x66180000 0x1000>;
  562. interrupts = <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>;
  563. clocks = <&iprocslow>, <&iprocslow>;
  564. clock-names = "spiclk", "apb_pclk";
  565. #address-cells = <1>;
  566. #size-cells = <0>;
  567. status = "disabled";
  568. };
  569. ssp1: spi@66190000 {
  570. compatible = "arm,pl022", "arm,primecell";
  571. reg = <0x66190000 0x1000>;
  572. interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>;
  573. clocks = <&iprocslow>, <&iprocslow>;
  574. clock-names = "spiclk", "apb_pclk";
  575. #address-cells = <1>;
  576. #size-cells = <0>;
  577. status = "disabled";
  578. };
  579. hwrng: hwrng@66220000 {
  580. compatible = "brcm,iproc-rng200";
  581. reg = <0x66220000 0x28>;
  582. };
  583. sata_phy: sata_phy@663f0100 {
  584. compatible = "brcm,iproc-ns2-sata-phy";
  585. reg = <0x663f0100 0x1f00>,
  586. <0x663f004c 0x10>;
  587. reg-names = "phy", "phy-ctrl";
  588. #address-cells = <1>;
  589. #size-cells = <0>;
  590. sata_phy0: sata-phy@0 {
  591. reg = <0>;
  592. #phy-cells = <0>;
  593. status = "disabled";
  594. };
  595. sata_phy1: sata-phy@1 {
  596. reg = <1>;
  597. #phy-cells = <0>;
  598. status = "disabled";
  599. };
  600. };
  601. sata: ahci@663f2000 {
  602. compatible = "brcm,iproc-ahci", "generic-ahci";
  603. reg = <0x663f2000 0x1000>;
  604. dma-coherent;
  605. reg-names = "ahci";
  606. interrupts = <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>;
  607. #address-cells = <1>;
  608. #size-cells = <0>;
  609. status = "disabled";
  610. sata0: sata-port@0 {
  611. reg = <0>;
  612. phys = <&sata_phy0>;
  613. phy-names = "sata-phy";
  614. };
  615. sata1: sata-port@1 {
  616. reg = <1>;
  617. phys = <&sata_phy1>;
  618. phy-names = "sata-phy";
  619. };
  620. };
  621. sdio0: sdhci@66420000 {
  622. compatible = "brcm,sdhci-iproc-cygnus";
  623. reg = <0x66420000 0x100>;
  624. interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>;
  625. dma-coherent;
  626. bus-width = <8>;
  627. clocks = <&genpll_sw BCM_NS2_GENPLL_SW_SDIO_CLK>;
  628. status = "disabled";
  629. };
  630. sdio1: sdhci@66430000 {
  631. compatible = "brcm,sdhci-iproc-cygnus";
  632. reg = <0x66430000 0x100>;
  633. interrupts = <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>;
  634. dma-coherent;
  635. bus-width = <8>;
  636. clocks = <&genpll_sw BCM_NS2_GENPLL_SW_SDIO_CLK>;
  637. status = "disabled";
  638. };
  639. nand: nand@66460000 {
  640. compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
  641. reg = <0x66460000 0x600>,
  642. <0x67015408 0x600>,
  643. <0x66460f00 0x20>;
  644. reg-names = "nand", "iproc-idm", "iproc-ext";
  645. interrupts = <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>;
  646. #address-cells = <1>;
  647. #size-cells = <0>;
  648. brcm,nand-has-wp;
  649. };
  650. qspi: spi@66470200 {
  651. compatible = "brcm,spi-bcm-qspi", "brcm,spi-ns2-qspi";
  652. reg = <0x66470200 0x184>,
  653. <0x66470000 0x124>,
  654. <0x67017408 0x004>,
  655. <0x664703a0 0x01c>;
  656. reg-names = "mspi", "bspi", "intr_regs",
  657. "intr_status_reg";
  658. interrupts = <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>;
  659. interrupt-names = "spi_l1_intr";
  660. clocks = <&iprocmed>;
  661. clock-names = "iprocmed";
  662. num-cs = <2>;
  663. #address-cells = <1>;
  664. #size-cells = <0>;
  665. };
  666. };
  667. };