ns2.dtsi 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727
  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@000 {
  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_NONE>;
  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_NONE>;
  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. pdc1: iproc-pdc1@612e0000 {
  186. compatible = "brcm,iproc-pdc-mbox";
  187. reg = <0x612e0000 0x445>; /* PDC FS1 regs */
  188. interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
  189. #mbox-cells = <1>;
  190. dma-coherent;
  191. brcm,rx-status-len = <32>;
  192. brcm,use-bcm-hdr;
  193. };
  194. pdc2: iproc-pdc2@61300000 {
  195. compatible = "brcm,iproc-pdc-mbox";
  196. reg = <0x61300000 0x445>; /* PDC FS2 regs */
  197. interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
  198. #mbox-cells = <1>;
  199. dma-coherent;
  200. brcm,rx-status-len = <32>;
  201. brcm,use-bcm-hdr;
  202. };
  203. pdc3: iproc-pdc3@61320000 {
  204. compatible = "brcm,iproc-pdc-mbox";
  205. reg = <0x61320000 0x445>; /* PDC FS3 regs */
  206. interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
  207. #mbox-cells = <1>;
  208. dma-coherent;
  209. brcm,rx-status-len = <32>;
  210. brcm,use-bcm-hdr;
  211. };
  212. dma0: dma@61360000 {
  213. compatible = "arm,pl330", "arm,primecell";
  214. reg = <0x61360000 0x1000>;
  215. interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>,
  216. <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>,
  217. <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
  218. <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
  219. <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
  220. <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
  221. <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
  222. <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
  223. <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
  224. #dma-cells = <1>;
  225. #dma-channels = <8>;
  226. #dma-requests = <32>;
  227. clocks = <&iprocslow>;
  228. clock-names = "apb_pclk";
  229. };
  230. smmu: mmu@64000000 {
  231. compatible = "arm,mmu-500";
  232. reg = <0x64000000 0x40000>;
  233. #global-interrupts = <2>;
  234. interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
  235. <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>,
  236. <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
  237. <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>,
  238. <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH>,
  239. <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>,
  240. <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH>,
  241. <GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH>,
  242. <GIC_SPI 237 IRQ_TYPE_LEVEL_HIGH>,
  243. <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>,
  244. <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>,
  245. <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
  246. <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>,
  247. <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>,
  248. <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>,
  249. <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>,
  250. <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>,
  251. <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>,
  252. <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
  253. <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>,
  254. <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>,
  255. <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>,
  256. <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>,
  257. <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>,
  258. <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>,
  259. <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>,
  260. <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>,
  261. <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
  262. <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>,
  263. <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
  264. <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>,
  265. <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
  266. <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
  267. <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>;
  268. #iommu-cells = <1>;
  269. };
  270. pinctrl: pinctrl@6501d130 {
  271. compatible = "brcm,ns2-pinmux";
  272. reg = <0x6501d130 0x08>,
  273. <0x660a0028 0x04>,
  274. <0x660009b0 0x40>;
  275. };
  276. gpio_aon: gpio@65024800 {
  277. compatible = "brcm,iproc-gpio";
  278. reg = <0x65024800 0x50>,
  279. <0x65024008 0x18>;
  280. ngpios = <6>;
  281. #gpio-cells = <2>;
  282. gpio-controller;
  283. };
  284. gic: interrupt-controller@65210000 {
  285. compatible = "arm,gic-400";
  286. #interrupt-cells = <3>;
  287. interrupt-controller;
  288. reg = <0x65210000 0x1000>,
  289. <0x65220000 0x1000>,
  290. <0x65240000 0x2000>,
  291. <0x65260000 0x1000>;
  292. interrupts = <GIC_PPI 9 (GIC_CPU_MASK_RAW(0xf) |
  293. IRQ_TYPE_LEVEL_HIGH)>;
  294. #address-cells = <1>;
  295. #size-cells = <1>;
  296. ranges = <0 0x652e0000 0x80000>;
  297. v2m0: v2m@00000 {
  298. compatible = "arm,gic-v2m-frame";
  299. interrupt-parent = <&gic>;
  300. msi-controller;
  301. reg = <0x00000 0x1000>;
  302. arm,msi-base-spi = <72>;
  303. arm,msi-num-spis = <16>;
  304. };
  305. v2m1: v2m@10000 {
  306. compatible = "arm,gic-v2m-frame";
  307. interrupt-parent = <&gic>;
  308. msi-controller;
  309. reg = <0x10000 0x1000>;
  310. arm,msi-base-spi = <88>;
  311. arm,msi-num-spis = <16>;
  312. };
  313. v2m2: v2m@20000 {
  314. compatible = "arm,gic-v2m-frame";
  315. interrupt-parent = <&gic>;
  316. msi-controller;
  317. reg = <0x20000 0x1000>;
  318. arm,msi-base-spi = <104>;
  319. arm,msi-num-spis = <16>;
  320. };
  321. v2m3: v2m@30000 {
  322. compatible = "arm,gic-v2m-frame";
  323. interrupt-parent = <&gic>;
  324. msi-controller;
  325. reg = <0x30000 0x1000>;
  326. arm,msi-base-spi = <120>;
  327. arm,msi-num-spis = <16>;
  328. };
  329. v2m4: v2m@40000 {
  330. compatible = "arm,gic-v2m-frame";
  331. interrupt-parent = <&gic>;
  332. msi-controller;
  333. reg = <0x40000 0x1000>;
  334. arm,msi-base-spi = <136>;
  335. arm,msi-num-spis = <16>;
  336. };
  337. v2m5: v2m@50000 {
  338. compatible = "arm,gic-v2m-frame";
  339. interrupt-parent = <&gic>;
  340. msi-controller;
  341. reg = <0x50000 0x1000>;
  342. arm,msi-base-spi = <152>;
  343. arm,msi-num-spis = <16>;
  344. };
  345. v2m6: v2m@60000 {
  346. compatible = "arm,gic-v2m-frame";
  347. interrupt-parent = <&gic>;
  348. msi-controller;
  349. reg = <0x60000 0x1000>;
  350. arm,msi-base-spi = <168>;
  351. arm,msi-num-spis = <16>;
  352. };
  353. v2m7: v2m@70000 {
  354. compatible = "arm,gic-v2m-frame";
  355. interrupt-parent = <&gic>;
  356. msi-controller;
  357. reg = <0x70000 0x1000>;
  358. arm,msi-base-spi = <184>;
  359. arm,msi-num-spis = <16>;
  360. };
  361. };
  362. cci@65590000 {
  363. compatible = "arm,cci-400";
  364. #address-cells = <1>;
  365. #size-cells = <1>;
  366. reg = <0x65590000 0x1000>;
  367. ranges = <0 0x65590000 0x10000>;
  368. pmu@9000 {
  369. compatible = "arm,cci-400-pmu,r1",
  370. "arm,cci-400-pmu";
  371. reg = <0x9000 0x4000>;
  372. interrupts = <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
  373. <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
  374. <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>,
  375. <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>,
  376. <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>,
  377. <GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH>;
  378. };
  379. };
  380. pwm: pwm@66010000 {
  381. compatible = "brcm,iproc-pwm";
  382. reg = <0x66010000 0x28>;
  383. clocks = <&osc>;
  384. #pwm-cells = <3>;
  385. status = "disabled";
  386. };
  387. mdio_mux_iproc: mdio-mux@6602023c {
  388. compatible = "brcm,mdio-mux-iproc";
  389. reg = <0x6602023c 0x14>;
  390. #address-cells = <1>;
  391. #size-cells = <0>;
  392. mdio@0 {
  393. reg = <0x0>;
  394. #address-cells = <1>;
  395. #size-cells = <0>;
  396. pci_phy0: pci-phy@0 {
  397. compatible = "brcm,ns2-pcie-phy";
  398. reg = <0x0>;
  399. #phy-cells = <0>;
  400. status = "disabled";
  401. };
  402. };
  403. mdio@7 {
  404. reg = <0x7>;
  405. #address-cells = <1>;
  406. #size-cells = <0>;
  407. pci_phy1: pci-phy@0 {
  408. compatible = "brcm,ns2-pcie-phy";
  409. reg = <0x0>;
  410. #phy-cells = <0>;
  411. status = "disabled";
  412. };
  413. };
  414. mdio@10 {
  415. reg = <0x10>;
  416. #address-cells = <1>;
  417. #size-cells = <0>;
  418. };
  419. };
  420. timer0: timer@66030000 {
  421. compatible = "arm,sp804", "arm,primecell";
  422. reg = <0x66030000 0x1000>;
  423. interrupts = <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>;
  424. clocks = <&iprocslow>,
  425. <&iprocslow>,
  426. <&iprocslow>;
  427. clock-names = "timer1", "timer2", "apb_pclk";
  428. };
  429. timer1: timer@66040000 {
  430. compatible = "arm,sp804", "arm,primecell";
  431. reg = <0x66040000 0x1000>;
  432. interrupts = <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>;
  433. clocks = <&iprocslow>,
  434. <&iprocslow>,
  435. <&iprocslow>;
  436. clock-names = "timer1", "timer2", "apb_pclk";
  437. };
  438. timer2: timer@66050000 {
  439. compatible = "arm,sp804", "arm,primecell";
  440. reg = <0x66050000 0x1000>;
  441. interrupts = <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>;
  442. clocks = <&iprocslow>,
  443. <&iprocslow>,
  444. <&iprocslow>;
  445. clock-names = "timer1", "timer2", "apb_pclk";
  446. };
  447. timer3: timer@66060000 {
  448. compatible = "arm,sp804", "arm,primecell";
  449. reg = <0x66060000 0x1000>;
  450. interrupts = <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>;
  451. clocks = <&iprocslow>,
  452. <&iprocslow>,
  453. <&iprocslow>;
  454. clock-names = "timer1", "timer2", "apb_pclk";
  455. };
  456. i2c0: i2c@66080000 {
  457. compatible = "brcm,iproc-i2c";
  458. reg = <0x66080000 0x100>;
  459. #address-cells = <1>;
  460. #size-cells = <0>;
  461. interrupts = <GIC_SPI 394 IRQ_TYPE_NONE>;
  462. clock-frequency = <100000>;
  463. status = "disabled";
  464. };
  465. wdt0: watchdog@66090000 {
  466. compatible = "arm,sp805", "arm,primecell";
  467. reg = <0x66090000 0x1000>;
  468. interrupts = <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>;
  469. clocks = <&iprocslow>, <&iprocslow>;
  470. clock-names = "wdogclk", "apb_pclk";
  471. };
  472. gpio_g: gpio@660a0000 {
  473. compatible = "brcm,iproc-gpio";
  474. reg = <0x660a0000 0x50>;
  475. ngpios = <32>;
  476. #gpio-cells = <2>;
  477. gpio-controller;
  478. interrupt-controller;
  479. interrupts = <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>;
  480. };
  481. i2c1: i2c@660b0000 {
  482. compatible = "brcm,iproc-i2c";
  483. reg = <0x660b0000 0x100>;
  484. #address-cells = <1>;
  485. #size-cells = <0>;
  486. interrupts = <GIC_SPI 395 IRQ_TYPE_NONE>;
  487. clock-frequency = <100000>;
  488. status = "disabled";
  489. };
  490. uart0: serial@66100000 {
  491. compatible = "snps,dw-apb-uart";
  492. reg = <0x66100000 0x100>;
  493. interrupts = <GIC_SPI 390 IRQ_TYPE_LEVEL_HIGH>;
  494. clocks = <&iprocslow>;
  495. reg-shift = <2>;
  496. reg-io-width = <4>;
  497. status = "disabled";
  498. };
  499. uart1: serial@66110000 {
  500. compatible = "snps,dw-apb-uart";
  501. reg = <0x66110000 0x100>;
  502. interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH>;
  503. clocks = <&iprocslow>;
  504. reg-shift = <2>;
  505. reg-io-width = <4>;
  506. status = "disabled";
  507. };
  508. uart2: serial@66120000 {
  509. compatible = "snps,dw-apb-uart";
  510. reg = <0x66120000 0x100>;
  511. interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>;
  512. clocks = <&iprocslow>;
  513. reg-shift = <2>;
  514. reg-io-width = <4>;
  515. status = "disabled";
  516. };
  517. uart3: serial@66130000 {
  518. compatible = "snps,dw-apb-uart";
  519. reg = <0x66130000 0x100>;
  520. interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>;
  521. reg-shift = <2>;
  522. reg-io-width = <4>;
  523. clocks = <&osc>;
  524. status = "disabled";
  525. };
  526. ssp0: ssp@66180000 {
  527. compatible = "arm,pl022", "arm,primecell";
  528. reg = <0x66180000 0x1000>;
  529. interrupts = <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>;
  530. clocks = <&iprocslow>, <&iprocslow>;
  531. clock-names = "spiclk", "apb_pclk";
  532. #address-cells = <1>;
  533. #size-cells = <0>;
  534. status = "disabled";
  535. };
  536. ssp1: ssp@66190000 {
  537. compatible = "arm,pl022", "arm,primecell";
  538. reg = <0x66190000 0x1000>;
  539. interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>;
  540. clocks = <&iprocslow>, <&iprocslow>;
  541. clock-names = "spiclk", "apb_pclk";
  542. #address-cells = <1>;
  543. #size-cells = <0>;
  544. status = "disabled";
  545. };
  546. hwrng: hwrng@66220000 {
  547. compatible = "brcm,iproc-rng200";
  548. reg = <0x66220000 0x28>;
  549. };
  550. sata_phy: sata_phy@663f0100 {
  551. compatible = "brcm,iproc-ns2-sata-phy";
  552. reg = <0x663f0100 0x1f00>,
  553. <0x663f004c 0x10>;
  554. reg-names = "phy", "phy-ctrl";
  555. #address-cells = <1>;
  556. #size-cells = <0>;
  557. sata_phy0: sata-phy@0 {
  558. reg = <0>;
  559. #phy-cells = <0>;
  560. status = "disabled";
  561. };
  562. sata_phy1: sata-phy@1 {
  563. reg = <1>;
  564. #phy-cells = <0>;
  565. status = "disabled";
  566. };
  567. };
  568. sata: ahci@663f2000 {
  569. compatible = "brcm,iproc-ahci", "generic-ahci";
  570. reg = <0x663f2000 0x1000>;
  571. dma-coherent;
  572. reg-names = "ahci";
  573. interrupts = <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>;
  574. #address-cells = <1>;
  575. #size-cells = <0>;
  576. status = "disabled";
  577. sata0: sata-port@0 {
  578. reg = <0>;
  579. phys = <&sata_phy0>;
  580. phy-names = "sata-phy";
  581. };
  582. sata1: sata-port@1 {
  583. reg = <1>;
  584. phys = <&sata_phy1>;
  585. phy-names = "sata-phy";
  586. };
  587. };
  588. sdio0: sdhci@66420000 {
  589. compatible = "brcm,sdhci-iproc-cygnus";
  590. reg = <0x66420000 0x100>;
  591. interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>;
  592. dma-coherent;
  593. bus-width = <8>;
  594. clocks = <&genpll_sw BCM_NS2_GENPLL_SW_SDIO_CLK>;
  595. status = "disabled";
  596. };
  597. sdio1: sdhci@66430000 {
  598. compatible = "brcm,sdhci-iproc-cygnus";
  599. reg = <0x66430000 0x100>;
  600. interrupts = <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>;
  601. dma-coherent;
  602. bus-width = <8>;
  603. clocks = <&genpll_sw BCM_NS2_GENPLL_SW_SDIO_CLK>;
  604. status = "disabled";
  605. };
  606. nand: nand@66460000 {
  607. compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
  608. reg = <0x66460000 0x600>,
  609. <0x67015408 0x600>,
  610. <0x66460f00 0x20>;
  611. reg-names = "nand", "iproc-idm", "iproc-ext";
  612. interrupts = <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>;
  613. #address-cells = <1>;
  614. #size-cells = <0>;
  615. brcm,nand-has-wp;
  616. };
  617. qspi: spi@66470200 {
  618. compatible = "brcm,spi-bcm-qspi", "brcm,spi-ns2-qspi";
  619. reg = <0x66470200 0x184>,
  620. <0x66470000 0x124>,
  621. <0x67017408 0x004>,
  622. <0x664703a0 0x01c>;
  623. reg-names = "mspi", "bspi", "intr_regs",
  624. "intr_status_reg";
  625. interrupts = <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>;
  626. interrupt-names = "spi_l1_intr";
  627. clocks = <&iprocmed>;
  628. clock-names = "iprocmed";
  629. num-cs = <2>;
  630. #address-cells = <1>;
  631. #size-cells = <0>;
  632. };
  633. };
  634. };