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";
  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";
  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";
  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";
  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. cache-level = <2>;
  74. cache-unified;
  75. };
  76. };
  77. psci {
  78. compatible = "arm,psci-1.0";
  79. method = "smc";
  80. };
  81. timer {
  82. compatible = "arm,armv8-timer";
  83. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(0xff) |
  84. IRQ_TYPE_LEVEL_LOW)>,
  85. <GIC_PPI 14 (GIC_CPU_MASK_RAW(0xff) |
  86. IRQ_TYPE_LEVEL_LOW)>,
  87. <GIC_PPI 11 (GIC_CPU_MASK_RAW(0xff) |
  88. IRQ_TYPE_LEVEL_LOW)>,
  89. <GIC_PPI 10 (GIC_CPU_MASK_RAW(0xff) |
  90. IRQ_TYPE_LEVEL_LOW)>;
  91. };
  92. pmu {
  93. compatible = "arm,cortex-a57-pmu";
  94. interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
  95. <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
  96. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  97. <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
  98. interrupt-affinity = <&A57_0>,
  99. <&A57_1>,
  100. <&A57_2>,
  101. <&A57_3>;
  102. };
  103. pcie0: pcie@20020000 {
  104. compatible = "brcm,iproc-pcie";
  105. reg = <0 0x20020000 0 0x1000>;
  106. dma-coherent;
  107. #interrupt-cells = <1>;
  108. interrupt-map-mask = <0 0 0 0>;
  109. interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>;
  110. linux,pci-domain = <0>;
  111. bus-range = <0x00 0xff>;
  112. #address-cells = <3>;
  113. #size-cells = <2>;
  114. device_type = "pci";
  115. ranges = <0x83000000 0 0x00000000 0 0x00000000 0 0x20000000>;
  116. brcm,pcie-ob;
  117. brcm,pcie-ob-oarr-size;
  118. brcm,pcie-ob-axi-offset = <0x00000000>;
  119. brcm,pcie-ob-window-size = <256>;
  120. status = "disabled";
  121. phys = <&pci_phy0>;
  122. phy-names = "pcie-phy";
  123. msi-parent = <&v2m0>;
  124. };
  125. pcie4: pcie@50020000 {
  126. compatible = "brcm,iproc-pcie";
  127. reg = <0 0x50020000 0 0x1000>;
  128. dma-coherent;
  129. #interrupt-cells = <1>;
  130. interrupt-map-mask = <0 0 0 0>;
  131. interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
  132. linux,pci-domain = <4>;
  133. bus-range = <0x00 0xff>;
  134. #address-cells = <3>;
  135. #size-cells = <2>;
  136. device_type = "pci";
  137. ranges = <0x83000000 0 0x00000000 0 0x30000000 0 0x20000000>;
  138. brcm,pcie-ob;
  139. brcm,pcie-ob-oarr-size;
  140. brcm,pcie-ob-axi-offset = <0x30000000>;
  141. brcm,pcie-ob-window-size = <256>;
  142. status = "disabled";
  143. phys = <&pci_phy1>;
  144. phy-names = "pcie-phy";
  145. msi-parent = <&v2m0>;
  146. };
  147. pcie8: pcie@60c00000 {
  148. compatible = "brcm,iproc-pcie-paxc";
  149. reg = <0 0x60c00000 0 0x1000>;
  150. dma-coherent;
  151. linux,pci-domain = <8>;
  152. bus-range = <0x0 0x1>;
  153. #address-cells = <3>;
  154. #size-cells = <2>;
  155. device_type = "pci";
  156. ranges = <0x83000000 0 0x00000000 0 0x60000000 0 0x00c00000>;
  157. status = "disabled";
  158. msi-parent = <&v2m0>;
  159. };
  160. soc: soc {
  161. compatible = "simple-bus";
  162. #address-cells = <1>;
  163. #size-cells = <1>;
  164. ranges = <0 0 0 0xffffffff>;
  165. #include "ns2-clock.dtsi"
  166. enet: ethernet@61000000 {
  167. compatible = "brcm,ns2-amac";
  168. reg = <0x61000000 0x1000>,
  169. <0x61090000 0x1000>,
  170. <0x61030000 0x100>;
  171. reg-names = "amac_base", "idm_base", "nicpm_base";
  172. interrupts = <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>;
  173. dma-coherent;
  174. phy-handle = <&gphy0>;
  175. phy-mode = "rgmii";
  176. status = "disabled";
  177. };
  178. pdc0: iproc-pdc0@612c0000 {
  179. compatible = "brcm,iproc-pdc-mbox";
  180. reg = <0x612c0000 0x445>; /* PDC FS0 regs */
  181. interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
  182. #mbox-cells = <1>;
  183. dma-coherent;
  184. brcm,rx-status-len = <32>;
  185. brcm,use-bcm-hdr;
  186. };
  187. crypto0: crypto@612d0000 {
  188. compatible = "brcm,spum-crypto";
  189. reg = <0x612d0000 0x900>;
  190. mboxes = <&pdc0 0>;
  191. };
  192. pdc1: iproc-pdc1@612e0000 {
  193. compatible = "brcm,iproc-pdc-mbox";
  194. reg = <0x612e0000 0x445>; /* PDC FS1 regs */
  195. interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
  196. #mbox-cells = <1>;
  197. dma-coherent;
  198. brcm,rx-status-len = <32>;
  199. brcm,use-bcm-hdr;
  200. };
  201. crypto1: crypto@612f0000 {
  202. compatible = "brcm,spum-crypto";
  203. reg = <0x612f0000 0x900>;
  204. mboxes = <&pdc1 0>;
  205. };
  206. pdc2: iproc-pdc2@61300000 {
  207. compatible = "brcm,iproc-pdc-mbox";
  208. reg = <0x61300000 0x445>; /* PDC FS2 regs */
  209. interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
  210. #mbox-cells = <1>;
  211. dma-coherent;
  212. brcm,rx-status-len = <32>;
  213. brcm,use-bcm-hdr;
  214. };
  215. crypto2: crypto@61310000 {
  216. compatible = "brcm,spum-crypto";
  217. reg = <0x61310000 0x900>;
  218. mboxes = <&pdc2 0>;
  219. };
  220. pdc3: iproc-pdc3@61320000 {
  221. compatible = "brcm,iproc-pdc-mbox";
  222. reg = <0x61320000 0x445>; /* PDC FS3 regs */
  223. interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
  224. #mbox-cells = <1>;
  225. dma-coherent;
  226. brcm,rx-status-len = <32>;
  227. brcm,use-bcm-hdr;
  228. };
  229. crypto3: crypto@61330000 {
  230. compatible = "brcm,spum-crypto";
  231. reg = <0x61330000 0x900>;
  232. mboxes = <&pdc3 0>;
  233. };
  234. dma0: dma-controller@61360000 {
  235. compatible = "arm,pl330", "arm,primecell";
  236. reg = <0x61360000 0x1000>;
  237. interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>,
  238. <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>,
  239. <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
  240. <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
  241. <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
  242. <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
  243. <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
  244. <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
  245. <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
  246. #dma-cells = <1>;
  247. clocks = <&iprocslow>;
  248. clock-names = "apb_pclk";
  249. };
  250. smmu: iommu@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 = "wdog_clk", "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. #interrupt-cells = <2>;
  513. interrupts = <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>;
  514. };
  515. i2c1: i2c@660b0000 {
  516. compatible = "brcm,iproc-i2c";
  517. reg = <0x660b0000 0x100>;
  518. #address-cells = <1>;
  519. #size-cells = <0>;
  520. interrupts = <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>;
  521. clock-frequency = <100000>;
  522. status = "disabled";
  523. };
  524. uart0: serial@66100000 {
  525. compatible = "snps,dw-apb-uart";
  526. reg = <0x66100000 0x100>;
  527. interrupts = <GIC_SPI 390 IRQ_TYPE_LEVEL_HIGH>;
  528. clocks = <&iprocslow>;
  529. reg-shift = <2>;
  530. reg-io-width = <4>;
  531. status = "disabled";
  532. };
  533. uart1: serial@66110000 {
  534. compatible = "snps,dw-apb-uart";
  535. reg = <0x66110000 0x100>;
  536. interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH>;
  537. clocks = <&iprocslow>;
  538. reg-shift = <2>;
  539. reg-io-width = <4>;
  540. status = "disabled";
  541. };
  542. uart2: serial@66120000 {
  543. compatible = "snps,dw-apb-uart";
  544. reg = <0x66120000 0x100>;
  545. interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>;
  546. clocks = <&iprocslow>;
  547. reg-shift = <2>;
  548. reg-io-width = <4>;
  549. status = "disabled";
  550. };
  551. uart3: serial@66130000 {
  552. compatible = "snps,dw-apb-uart";
  553. reg = <0x66130000 0x100>;
  554. interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>;
  555. reg-shift = <2>;
  556. reg-io-width = <4>;
  557. clocks = <&osc>;
  558. status = "disabled";
  559. };
  560. ssp0: spi@66180000 {
  561. compatible = "arm,pl022", "arm,primecell";
  562. reg = <0x66180000 0x1000>;
  563. interrupts = <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>;
  564. clocks = <&iprocslow>, <&iprocslow>;
  565. clock-names = "sspclk", "apb_pclk";
  566. #address-cells = <1>;
  567. #size-cells = <0>;
  568. status = "disabled";
  569. };
  570. ssp1: spi@66190000 {
  571. compatible = "arm,pl022", "arm,primecell";
  572. reg = <0x66190000 0x1000>;
  573. interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>;
  574. clocks = <&iprocslow>, <&iprocslow>;
  575. clock-names = "sspclk", "apb_pclk";
  576. #address-cells = <1>;
  577. #size-cells = <0>;
  578. status = "disabled";
  579. };
  580. hwrng: hwrng@66220000 {
  581. compatible = "brcm,iproc-rng200";
  582. reg = <0x66220000 0x28>;
  583. };
  584. sata_phy: sata_phy@663f0100 {
  585. compatible = "brcm,iproc-ns2-sata-phy";
  586. reg = <0x663f0100 0x1f00>,
  587. <0x663f004c 0x10>;
  588. reg-names = "phy", "phy-ctrl";
  589. #address-cells = <1>;
  590. #size-cells = <0>;
  591. sata_phy0: sata-phy@0 {
  592. reg = <0>;
  593. #phy-cells = <0>;
  594. status = "disabled";
  595. };
  596. sata_phy1: sata-phy@1 {
  597. reg = <1>;
  598. #phy-cells = <0>;
  599. status = "disabled";
  600. };
  601. };
  602. sata: sata@663f2000 {
  603. compatible = "brcm,iproc-ahci", "generic-ahci";
  604. reg = <0x663f2000 0x1000>;
  605. dma-coherent;
  606. reg-names = "ahci";
  607. interrupts = <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>;
  608. #address-cells = <1>;
  609. #size-cells = <0>;
  610. status = "disabled";
  611. sata0: sata-port@0 {
  612. reg = <0>;
  613. phys = <&sata_phy0>;
  614. phy-names = "sata-phy";
  615. };
  616. sata1: sata-port@1 {
  617. reg = <1>;
  618. phys = <&sata_phy1>;
  619. phy-names = "sata-phy";
  620. };
  621. };
  622. sdio0: sdhci@66420000 {
  623. compatible = "brcm,sdhci-iproc-cygnus";
  624. reg = <0x66420000 0x100>;
  625. interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>;
  626. dma-coherent;
  627. bus-width = <8>;
  628. clocks = <&genpll_sw BCM_NS2_GENPLL_SW_SDIO_CLK>;
  629. status = "disabled";
  630. };
  631. sdio1: sdhci@66430000 {
  632. compatible = "brcm,sdhci-iproc-cygnus";
  633. reg = <0x66430000 0x100>;
  634. interrupts = <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>;
  635. dma-coherent;
  636. bus-width = <8>;
  637. clocks = <&genpll_sw BCM_NS2_GENPLL_SW_SDIO_CLK>;
  638. status = "disabled";
  639. };
  640. nand: nand@66460000 {
  641. compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
  642. reg = <0x66460000 0x600>,
  643. <0x67015408 0x600>,
  644. <0x66460f00 0x20>;
  645. reg-names = "nand", "iproc-idm", "iproc-ext";
  646. interrupts = <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>;
  647. #address-cells = <1>;
  648. #size-cells = <0>;
  649. brcm,nand-has-wp;
  650. };
  651. qspi: spi@66470200 {
  652. compatible = "brcm,spi-ns2-qspi", "brcm,spi-bcm-qspi";
  653. reg = <0x66470200 0x184>,
  654. <0x66470000 0x124>,
  655. <0x67017408 0x004>,
  656. <0x664703a0 0x01c>;
  657. reg-names = "mspi", "bspi", "intr_regs",
  658. "intr_status_reg";
  659. interrupts = <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>;
  660. interrupt-names = "spi_l1_intr";
  661. clocks = <&iprocmed>;
  662. clock-names = "iprocmed";
  663. num-cs = <2>;
  664. #address-cells = <1>;
  665. #size-cells = <0>;
  666. };
  667. };
  668. };