socfpga_arria10.dtsi 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787
  1. /*
  2. * Copyright Altera Corporation (C) 2014. All rights reserved.
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms and conditions of the GNU General Public License,
  6. * version 2, as published by the Free Software Foundation.
  7. *
  8. * This program is distributed in the hope it will be useful, but WITHOUT
  9. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  10. * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  11. * more details.
  12. *
  13. * You should have received a copy of the GNU General Public License along with
  14. * this program. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #include "skeleton.dtsi"
  17. #include <dt-bindings/interrupt-controller/arm-gic.h>
  18. #include <dt-bindings/reset/altr,rst-mgr-a10.h>
  19. / {
  20. #address-cells = <1>;
  21. #size-cells = <1>;
  22. cpus {
  23. #address-cells = <1>;
  24. #size-cells = <0>;
  25. enable-method = "altr,socfpga-a10-smp";
  26. cpu@0 {
  27. compatible = "arm,cortex-a9";
  28. device_type = "cpu";
  29. reg = <0>;
  30. next-level-cache = <&L2>;
  31. };
  32. cpu@1 {
  33. compatible = "arm,cortex-a9";
  34. device_type = "cpu";
  35. reg = <1>;
  36. next-level-cache = <&L2>;
  37. };
  38. };
  39. intc: intc@ffffd000 {
  40. compatible = "arm,cortex-a9-gic";
  41. #interrupt-cells = <3>;
  42. interrupt-controller;
  43. reg = <0xffffd000 0x1000>,
  44. <0xffffc100 0x100>;
  45. };
  46. soc {
  47. #address-cells = <1>;
  48. #size-cells = <1>;
  49. compatible = "simple-bus";
  50. device_type = "soc";
  51. interrupt-parent = <&intc>;
  52. ranges;
  53. amba {
  54. compatible = "simple-bus";
  55. #address-cells = <1>;
  56. #size-cells = <1>;
  57. ranges;
  58. pdma: pdma@ffda1000 {
  59. compatible = "arm,pl330", "arm,primecell";
  60. reg = <0xffda1000 0x1000>;
  61. interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>,
  62. <0 84 IRQ_TYPE_LEVEL_HIGH>,
  63. <0 85 IRQ_TYPE_LEVEL_HIGH>,
  64. <0 86 IRQ_TYPE_LEVEL_HIGH>,
  65. <0 87 IRQ_TYPE_LEVEL_HIGH>,
  66. <0 88 IRQ_TYPE_LEVEL_HIGH>,
  67. <0 89 IRQ_TYPE_LEVEL_HIGH>,
  68. <0 90 IRQ_TYPE_LEVEL_HIGH>,
  69. <0 91 IRQ_TYPE_LEVEL_HIGH>;
  70. #dma-cells = <1>;
  71. #dma-channels = <8>;
  72. #dma-requests = <32>;
  73. clocks = <&l4_main_clk>;
  74. clock-names = "apb_pclk";
  75. };
  76. };
  77. clkmgr@ffd04000 {
  78. compatible = "altr,clk-mgr";
  79. reg = <0xffd04000 0x1000>;
  80. clocks {
  81. #address-cells = <1>;
  82. #size-cells = <0>;
  83. cb_intosc_hs_div2_clk: cb_intosc_hs_div2_clk {
  84. #clock-cells = <0>;
  85. compatible = "fixed-clock";
  86. };
  87. cb_intosc_ls_clk: cb_intosc_ls_clk {
  88. #clock-cells = <0>;
  89. compatible = "fixed-clock";
  90. };
  91. f2s_free_clk: f2s_free_clk {
  92. #clock-cells = <0>;
  93. compatible = "fixed-clock";
  94. };
  95. osc1: osc1 {
  96. #clock-cells = <0>;
  97. compatible = "fixed-clock";
  98. };
  99. main_pll: main_pll {
  100. #address-cells = <1>;
  101. #size-cells = <0>;
  102. #clock-cells = <0>;
  103. compatible = "altr,socfpga-a10-pll-clock";
  104. clocks = <&osc1>, <&cb_intosc_ls_clk>,
  105. <&f2s_free_clk>;
  106. reg = <0x40>;
  107. main_mpu_base_clk: main_mpu_base_clk {
  108. #clock-cells = <0>;
  109. compatible = "altr,socfpga-a10-perip-clk";
  110. clocks = <&main_pll>;
  111. div-reg = <0x140 0 11>;
  112. };
  113. main_noc_base_clk: main_noc_base_clk {
  114. #clock-cells = <0>;
  115. compatible = "altr,socfpga-a10-perip-clk";
  116. clocks = <&main_pll>;
  117. div-reg = <0x144 0 11>;
  118. };
  119. main_emaca_clk: main_emaca_clk {
  120. #clock-cells = <0>;
  121. compatible = "altr,socfpga-a10-perip-clk";
  122. clocks = <&main_pll>;
  123. reg = <0x68>;
  124. };
  125. main_emacb_clk: main_emacb_clk {
  126. #clock-cells = <0>;
  127. compatible = "altr,socfpga-a10-perip-clk";
  128. clocks = <&main_pll>;
  129. reg = <0x6C>;
  130. };
  131. main_emac_ptp_clk: main_emac_ptp_clk {
  132. #clock-cells = <0>;
  133. compatible = "altr,socfpga-a10-perip-clk";
  134. clocks = <&main_pll>;
  135. reg = <0x70>;
  136. };
  137. main_gpio_db_clk: main_gpio_db_clk {
  138. #clock-cells = <0>;
  139. compatible = "altr,socfpga-a10-perip-clk";
  140. clocks = <&main_pll>;
  141. reg = <0x74>;
  142. };
  143. main_sdmmc_clk: main_sdmmc_clk {
  144. #clock-cells = <0>;
  145. compatible = "altr,socfpga-a10-perip-clk"
  146. ;
  147. clocks = <&main_pll>;
  148. reg = <0x78>;
  149. };
  150. main_s2f_usr0_clk: main_s2f_usr0_clk {
  151. #clock-cells = <0>;
  152. compatible = "altr,socfpga-a10-perip-clk";
  153. clocks = <&main_pll>;
  154. reg = <0x7C>;
  155. };
  156. main_s2f_usr1_clk: main_s2f_usr1_clk {
  157. #clock-cells = <0>;
  158. compatible = "altr,socfpga-a10-perip-clk";
  159. clocks = <&main_pll>;
  160. reg = <0x80>;
  161. };
  162. main_hmc_pll_ref_clk: main_hmc_pll_ref_clk {
  163. #clock-cells = <0>;
  164. compatible = "altr,socfpga-a10-perip-clk";
  165. clocks = <&main_pll>;
  166. reg = <0x84>;
  167. };
  168. main_periph_ref_clk: main_periph_ref_clk {
  169. #clock-cells = <0>;
  170. compatible = "altr,socfpga-a10-perip-clk";
  171. clocks = <&main_pll>;
  172. reg = <0x9C>;
  173. };
  174. };
  175. periph_pll: periph_pll {
  176. #address-cells = <1>;
  177. #size-cells = <0>;
  178. #clock-cells = <0>;
  179. compatible = "altr,socfpga-a10-pll-clock";
  180. clocks = <&osc1>, <&cb_intosc_ls_clk>,
  181. <&f2s_free_clk>, <&main_periph_ref_clk>;
  182. reg = <0xC0>;
  183. peri_mpu_base_clk: peri_mpu_base_clk {
  184. #clock-cells = <0>;
  185. compatible = "altr,socfpga-a10-perip-clk";
  186. clocks = <&periph_pll>;
  187. div-reg = <0x140 16 11>;
  188. };
  189. peri_noc_base_clk: peri_noc_base_clk {
  190. #clock-cells = <0>;
  191. compatible = "altr,socfpga-a10-perip-clk";
  192. clocks = <&periph_pll>;
  193. div-reg = <0x144 16 11>;
  194. };
  195. peri_emaca_clk: peri_emaca_clk {
  196. #clock-cells = <0>;
  197. compatible = "altr,socfpga-a10-perip-clk";
  198. clocks = <&periph_pll>;
  199. reg = <0xE8>;
  200. };
  201. peri_emacb_clk: peri_emacb_clk {
  202. #clock-cells = <0>;
  203. compatible = "altr,socfpga-a10-perip-clk";
  204. clocks = <&periph_pll>;
  205. reg = <0xEC>;
  206. };
  207. peri_emac_ptp_clk: peri_emac_ptp_clk {
  208. #clock-cells = <0>;
  209. compatible = "altr,socfpga-a10-perip-clk";
  210. clocks = <&periph_pll>;
  211. reg = <0xF0>;
  212. };
  213. peri_gpio_db_clk: peri_gpio_db_clk {
  214. #clock-cells = <0>;
  215. compatible = "altr,socfpga-a10-perip-clk";
  216. clocks = <&periph_pll>;
  217. reg = <0xF4>;
  218. };
  219. peri_sdmmc_clk: peri_sdmmc_clk {
  220. #clock-cells = <0>;
  221. compatible = "altr,socfpga-a10-perip-clk";
  222. clocks = <&periph_pll>;
  223. reg = <0xF8>;
  224. };
  225. peri_s2f_usr0_clk: peri_s2f_usr0_clk {
  226. #clock-cells = <0>;
  227. compatible = "altr,socfpga-a10-perip-clk";
  228. clocks = <&periph_pll>;
  229. reg = <0xFC>;
  230. };
  231. peri_s2f_usr1_clk: peri_s2f_usr1_clk {
  232. #clock-cells = <0>;
  233. compatible = "altr,socfpga-a10-perip-clk";
  234. clocks = <&periph_pll>;
  235. reg = <0x100>;
  236. };
  237. peri_hmc_pll_ref_clk: peri_hmc_pll_ref_clk {
  238. #clock-cells = <0>;
  239. compatible = "altr,socfpga-a10-perip-clk";
  240. clocks = <&periph_pll>;
  241. reg = <0x104>;
  242. };
  243. };
  244. mpu_free_clk: mpu_free_clk {
  245. #clock-cells = <0>;
  246. compatible = "altr,socfpga-a10-perip-clk";
  247. clocks = <&main_mpu_base_clk>, <&peri_mpu_base_clk>,
  248. <&osc1>, <&cb_intosc_hs_div2_clk>,
  249. <&f2s_free_clk>;
  250. reg = <0x60>;
  251. };
  252. noc_free_clk: noc_free_clk {
  253. #clock-cells = <0>;
  254. compatible = "altr,socfpga-a10-perip-clk";
  255. clocks = <&main_noc_base_clk>, <&peri_noc_base_clk>,
  256. <&osc1>, <&cb_intosc_hs_div2_clk>,
  257. <&f2s_free_clk>;
  258. reg = <0x64>;
  259. };
  260. s2f_user1_free_clk: s2f_user1_free_clk {
  261. #clock-cells = <0>;
  262. compatible = "altr,socfpga-a10-perip-clk";
  263. clocks = <&main_s2f_usr1_clk>, <&peri_s2f_usr1_clk>,
  264. <&osc1>, <&cb_intosc_hs_div2_clk>,
  265. <&f2s_free_clk>;
  266. reg = <0x104>;
  267. };
  268. sdmmc_free_clk: sdmmc_free_clk {
  269. #clock-cells = <0>;
  270. compatible = "altr,socfpga-a10-perip-clk";
  271. clocks = <&main_sdmmc_clk>, <&peri_sdmmc_clk>,
  272. <&osc1>, <&cb_intosc_hs_div2_clk>,
  273. <&f2s_free_clk>;
  274. fixed-divider = <4>;
  275. reg = <0xF8>;
  276. };
  277. l4_sys_free_clk: l4_sys_free_clk {
  278. #clock-cells = <0>;
  279. compatible = "altr,socfpga-a10-perip-clk";
  280. clocks = <&noc_free_clk>;
  281. fixed-divider = <4>;
  282. };
  283. l4_main_clk: l4_main_clk {
  284. #clock-cells = <0>;
  285. compatible = "altr,socfpga-a10-gate-clk";
  286. clocks = <&noc_free_clk>;
  287. div-reg = <0xA8 0 2>;
  288. clk-gate = <0x48 1>;
  289. };
  290. l4_mp_clk: l4_mp_clk {
  291. #clock-cells = <0>;
  292. compatible = "altr,socfpga-a10-gate-clk";
  293. clocks = <&noc_free_clk>;
  294. div-reg = <0xA8 8 2>;
  295. clk-gate = <0x48 2>;
  296. };
  297. l4_sp_clk: l4_sp_clk {
  298. #clock-cells = <0>;
  299. compatible = "altr,socfpga-a10-gate-clk";
  300. clocks = <&noc_free_clk>;
  301. div-reg = <0xA8 16 2>;
  302. clk-gate = <0x48 3>;
  303. };
  304. mpu_periph_clk: mpu_periph_clk {
  305. #clock-cells = <0>;
  306. compatible = "altr,socfpga-a10-gate-clk";
  307. clocks = <&mpu_free_clk>;
  308. fixed-divider = <4>;
  309. clk-gate = <0x48 0>;
  310. };
  311. sdmmc_clk: sdmmc_clk {
  312. #clock-cells = <0>;
  313. compatible = "altr,socfpga-a10-gate-clk";
  314. clocks = <&sdmmc_free_clk>;
  315. clk-gate = <0xC8 5>;
  316. clk-phase = <0 135>;
  317. };
  318. qspi_clk: qspi_clk {
  319. #clock-cells = <0>;
  320. compatible = "altr,socfpga-a10-gate-clk";
  321. clocks = <&l4_main_clk>;
  322. clk-gate = <0xC8 11>;
  323. };
  324. nand_clk: nand_clk {
  325. #clock-cells = <0>;
  326. compatible = "altr,socfpga-a10-gate-clk";
  327. clocks = <&l4_mp_clk>;
  328. clk-gate = <0xC8 10>;
  329. };
  330. spi_m_clk: spi_m_clk {
  331. #clock-cells = <0>;
  332. compatible = "altr,socfpga-a10-gate-clk";
  333. clocks = <&l4_main_clk>;
  334. clk-gate = <0xC8 9>;
  335. };
  336. usb_clk: usb_clk {
  337. #clock-cells = <0>;
  338. compatible = "altr,socfpga-a10-gate-clk";
  339. clocks = <&l4_mp_clk>;
  340. clk-gate = <0xC8 8>;
  341. };
  342. s2f_usr1_clk: s2f_usr1_clk {
  343. #clock-cells = <0>;
  344. compatible = "altr,socfpga-a10-gate-clk";
  345. clocks = <&peri_s2f_usr1_clk>;
  346. clk-gate = <0xC8 6>;
  347. };
  348. };
  349. };
  350. gmac0: ethernet@ff800000 {
  351. compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
  352. altr,sysmgr-syscon = <&sysmgr 0x44 0>;
  353. reg = <0xff800000 0x2000>;
  354. interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
  355. interrupt-names = "macirq";
  356. /* Filled in by bootloader */
  357. mac-address = [00 00 00 00 00 00];
  358. snps,multicast-filter-bins = <256>;
  359. snps,perfect-filter-entries = <128>;
  360. tx-fifo-depth = <4096>;
  361. rx-fifo-depth = <16384>;
  362. clocks = <&l4_mp_clk>;
  363. clock-names = "stmmaceth";
  364. resets = <&rst EMAC0_RESET>;
  365. reset-names = "stmmaceth";
  366. status = "disabled";
  367. };
  368. gmac1: ethernet@ff802000 {
  369. compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
  370. altr,sysmgr-syscon = <&sysmgr 0x48 0>;
  371. reg = <0xff802000 0x2000>;
  372. interrupts = <0 93 IRQ_TYPE_LEVEL_HIGH>;
  373. interrupt-names = "macirq";
  374. /* Filled in by bootloader */
  375. mac-address = [00 00 00 00 00 00];
  376. snps,multicast-filter-bins = <256>;
  377. snps,perfect-filter-entries = <128>;
  378. tx-fifo-depth = <4096>;
  379. rx-fifo-depth = <16384>;
  380. clocks = <&l4_mp_clk>;
  381. clock-names = "stmmaceth";
  382. resets = <&rst EMAC1_RESET>;
  383. reset-names = "stmmaceth";
  384. status = "disabled";
  385. };
  386. gmac2: ethernet@ff804000 {
  387. compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
  388. altr,sysmgr-syscon = <&sysmgr 0x4C 0>;
  389. reg = <0xff804000 0x2000>;
  390. interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
  391. interrupt-names = "macirq";
  392. /* Filled in by bootloader */
  393. mac-address = [00 00 00 00 00 00];
  394. snps,multicast-filter-bins = <256>;
  395. snps,perfect-filter-entries = <128>;
  396. tx-fifo-depth = <4096>;
  397. rx-fifo-depth = <16384>;
  398. clocks = <&l4_mp_clk>;
  399. clock-names = "stmmaceth";
  400. status = "disabled";
  401. };
  402. gpio0: gpio@ffc02900 {
  403. #address-cells = <1>;
  404. #size-cells = <0>;
  405. compatible = "snps,dw-apb-gpio";
  406. reg = <0xffc02900 0x100>;
  407. status = "disabled";
  408. porta: gpio-controller@0 {
  409. compatible = "snps,dw-apb-gpio-port";
  410. gpio-controller;
  411. #gpio-cells = <2>;
  412. snps,nr-gpios = <29>;
  413. reg = <0>;
  414. interrupt-controller;
  415. #interrupt-cells = <2>;
  416. interrupts = <0 112 IRQ_TYPE_LEVEL_HIGH>;
  417. };
  418. };
  419. gpio1: gpio@ffc02a00 {
  420. #address-cells = <1>;
  421. #size-cells = <0>;
  422. compatible = "snps,dw-apb-gpio";
  423. reg = <0xffc02a00 0x100>;
  424. status = "disabled";
  425. portb: gpio-controller@0 {
  426. compatible = "snps,dw-apb-gpio-port";
  427. gpio-controller;
  428. #gpio-cells = <2>;
  429. snps,nr-gpios = <29>;
  430. reg = <0>;
  431. interrupt-controller;
  432. #interrupt-cells = <2>;
  433. interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>;
  434. };
  435. };
  436. gpio2: gpio@ffc02b00 {
  437. #address-cells = <1>;
  438. #size-cells = <0>;
  439. compatible = "snps,dw-apb-gpio";
  440. reg = <0xffc02b00 0x100>;
  441. status = "disabled";
  442. portc: gpio-controller@0 {
  443. compatible = "snps,dw-apb-gpio-port";
  444. gpio-controller;
  445. #gpio-cells = <2>;
  446. snps,nr-gpios = <27>;
  447. reg = <0>;
  448. interrupt-controller;
  449. #interrupt-cells = <2>;
  450. interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
  451. };
  452. };
  453. i2c0: i2c@ffc02200 {
  454. #address-cells = <1>;
  455. #size-cells = <0>;
  456. compatible = "snps,designware-i2c";
  457. reg = <0xffc02200 0x100>;
  458. interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
  459. clocks = <&l4_sp_clk>;
  460. status = "disabled";
  461. };
  462. i2c1: i2c@ffc02300 {
  463. #address-cells = <1>;
  464. #size-cells = <0>;
  465. compatible = "snps,designware-i2c";
  466. reg = <0xffc02300 0x100>;
  467. interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
  468. clocks = <&l4_sp_clk>;
  469. status = "disabled";
  470. };
  471. i2c2: i2c@ffc02400 {
  472. #address-cells = <1>;
  473. #size-cells = <0>;
  474. compatible = "snps,designware-i2c";
  475. reg = <0xffc02400 0x100>;
  476. interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
  477. clocks = <&l4_sp_clk>;
  478. status = "disabled";
  479. };
  480. i2c3: i2c@ffc02500 {
  481. #address-cells = <1>;
  482. #size-cells = <0>;
  483. compatible = "snps,designware-i2c";
  484. reg = <0xffc02500 0x100>;
  485. interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
  486. clocks = <&l4_sp_clk>;
  487. status = "disabled";
  488. };
  489. i2c4: i2c@ffc02600 {
  490. #address-cells = <1>;
  491. #size-cells = <0>;
  492. compatible = "snps,designware-i2c";
  493. reg = <0xffc02600 0x100>;
  494. interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
  495. clocks = <&l4_sp_clk>;
  496. status = "disabled";
  497. };
  498. sdr: sdr@ffc25000 {
  499. compatible = "syscon";
  500. reg = <0xffcfb100 0x80>;
  501. };
  502. L2: l2-cache@fffff000 {
  503. compatible = "arm,pl310-cache";
  504. reg = <0xfffff000 0x1000>;
  505. interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
  506. cache-unified;
  507. cache-level = <2>;
  508. };
  509. mmc: dwmmc0@ff808000 {
  510. #address-cells = <1>;
  511. #size-cells = <0>;
  512. compatible = "altr,socfpga-dw-mshc";
  513. reg = <0xff808000 0x1000>;
  514. interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
  515. fifo-depth = <0x400>;
  516. clocks = <&l4_mp_clk>, <&sdmmc_clk>;
  517. clock-names = "biu", "ciu";
  518. status = "disabled";
  519. };
  520. ocram: sram@ffe00000 {
  521. compatible = "mmio-sram";
  522. reg = <0xffe00000 0x40000>;
  523. };
  524. eccmgr: eccmgr@ffd06000 {
  525. compatible = "altr,socfpga-a10-ecc-manager";
  526. altr,sysmgr-syscon = <&sysmgr>;
  527. #address-cells = <1>;
  528. #size-cells = <1>;
  529. interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>,
  530. <0 0 IRQ_TYPE_LEVEL_HIGH>;
  531. interrupt-controller;
  532. #interrupt-cells = <2>;
  533. ranges;
  534. sdramedac {
  535. compatible = "altr,sdram-edac-a10";
  536. altr,sdr-syscon = <&sdr>;
  537. interrupts = <17 IRQ_TYPE_LEVEL_HIGH>,
  538. <49 IRQ_TYPE_LEVEL_HIGH>;
  539. };
  540. l2-ecc@ffd06010 {
  541. compatible = "altr,socfpga-a10-l2-ecc";
  542. reg = <0xffd06010 0x4>;
  543. interrupts = <0 IRQ_TYPE_LEVEL_HIGH>,
  544. <32 IRQ_TYPE_LEVEL_HIGH>;
  545. };
  546. ocram-ecc@ff8c3000 {
  547. compatible = "altr,socfpga-a10-ocram-ecc";
  548. reg = <0xff8c3000 0x400>;
  549. interrupts = <1 IRQ_TYPE_LEVEL_HIGH>,
  550. <33 IRQ_TYPE_LEVEL_HIGH>;
  551. };
  552. emac0-rx-ecc@ff8c0800 {
  553. compatible = "altr,socfpga-eth-mac-ecc";
  554. reg = <0xff8c0800 0x400>;
  555. altr,ecc-parent = <&gmac0>;
  556. interrupts = <4 IRQ_TYPE_LEVEL_HIGH>,
  557. <36 IRQ_TYPE_LEVEL_HIGH>;
  558. };
  559. emac0-tx-ecc@ff8c0c00 {
  560. compatible = "altr,socfpga-eth-mac-ecc";
  561. reg = <0xff8c0c00 0x400>;
  562. altr,ecc-parent = <&gmac0>;
  563. interrupts = <5 IRQ_TYPE_LEVEL_HIGH>,
  564. <37 IRQ_TYPE_LEVEL_HIGH>;
  565. };
  566. dma-ecc@ff8c8000 {
  567. compatible = "altr,socfpga-dma-ecc";
  568. reg = <0xff8c8000 0x400>;
  569. altr,ecc-parent = <&pdma>;
  570. interrupts = <10 IRQ_TYPE_LEVEL_HIGH>,
  571. <42 IRQ_TYPE_LEVEL_HIGH>;
  572. };
  573. usb0-ecc@ff8c8800 {
  574. compatible = "altr,socfpga-usb-ecc";
  575. reg = <0xff8c8800 0x400>;
  576. altr,ecc-parent = <&usb0>;
  577. interrupts = <2 IRQ_TYPE_LEVEL_HIGH>,
  578. <34 IRQ_TYPE_LEVEL_HIGH>;
  579. };
  580. };
  581. rst: rstmgr@ffd05000 {
  582. #reset-cells = <1>;
  583. compatible = "altr,rst-mgr";
  584. reg = <0xffd05000 0x100>;
  585. altr,modrst-offset = <0x20>;
  586. };
  587. scu: snoop-control-unit@ffffc000 {
  588. compatible = "arm,cortex-a9-scu";
  589. reg = <0xffffc000 0x100>;
  590. };
  591. sysmgr: sysmgr@ffd06000 {
  592. compatible = "altr,sys-mgr", "syscon";
  593. reg = <0xffd06000 0x300>;
  594. cpu1-start-addr = <0xffd06230>;
  595. };
  596. /* Local timer */
  597. timer@ffffc600 {
  598. compatible = "arm,cortex-a9-twd-timer";
  599. reg = <0xffffc600 0x100>;
  600. interrupts = <1 13 0xf04>;
  601. clocks = <&mpu_periph_clk>;
  602. };
  603. timer0: timer0@ffc02700 {
  604. compatible = "snps,dw-apb-timer";
  605. interrupts = <0 115 IRQ_TYPE_LEVEL_HIGH>;
  606. reg = <0xffc02700 0x100>;
  607. clocks = <&l4_sp_clk>;
  608. clock-names = "timer";
  609. };
  610. timer1: timer1@ffc02800 {
  611. compatible = "snps,dw-apb-timer";
  612. interrupts = <0 116 IRQ_TYPE_LEVEL_HIGH>;
  613. reg = <0xffc02800 0x100>;
  614. clocks = <&l4_sp_clk>;
  615. clock-names = "timer";
  616. };
  617. timer2: timer2@ffd00000 {
  618. compatible = "snps,dw-apb-timer";
  619. interrupts = <0 117 IRQ_TYPE_LEVEL_HIGH>;
  620. reg = <0xffd00000 0x100>;
  621. clocks = <&l4_sys_free_clk>;
  622. clock-names = "timer";
  623. };
  624. timer3: timer3@ffd00100 {
  625. compatible = "snps,dw-apb-timer";
  626. interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>;
  627. reg = <0xffd01000 0x100>;
  628. clocks = <&l4_sys_free_clk>;
  629. clock-names = "timer";
  630. };
  631. uart0: serial0@ffc02000 {
  632. compatible = "snps,dw-apb-uart";
  633. reg = <0xffc02000 0x100>;
  634. interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
  635. reg-shift = <2>;
  636. reg-io-width = <4>;
  637. clocks = <&l4_sp_clk>;
  638. status = "disabled";
  639. };
  640. uart1: serial1@ffc02100 {
  641. compatible = "snps,dw-apb-uart";
  642. reg = <0xffc02100 0x100>;
  643. interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
  644. reg-shift = <2>;
  645. reg-io-width = <4>;
  646. clocks = <&l4_sp_clk>;
  647. status = "disabled";
  648. };
  649. usbphy0: usbphy@0 {
  650. #phy-cells = <0>;
  651. compatible = "usb-nop-xceiv";
  652. status = "okay";
  653. };
  654. usb0: usb@ffb00000 {
  655. compatible = "snps,dwc2";
  656. reg = <0xffb00000 0xffff>;
  657. interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
  658. clocks = <&usb_clk>;
  659. clock-names = "otg";
  660. resets = <&rst USB0_RESET>;
  661. reset-names = "dwc2";
  662. phys = <&usbphy0>;
  663. phy-names = "usb2-phy";
  664. status = "disabled";
  665. };
  666. usb1: usb@ffb40000 {
  667. compatible = "snps,dwc2";
  668. reg = <0xffb40000 0xffff>;
  669. interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>;
  670. clocks = <&usb_clk>;
  671. clock-names = "otg";
  672. resets = <&rst USB1_RESET>;
  673. reset-names = "dwc2";
  674. phys = <&usbphy0>;
  675. phy-names = "usb2-phy";
  676. status = "disabled";
  677. };
  678. watchdog0: watchdog@ffd00200 {
  679. compatible = "snps,dw-wdt";
  680. reg = <0xffd00200 0x100>;
  681. interrupts = <0 119 IRQ_TYPE_LEVEL_HIGH>;
  682. clocks = <&l4_sys_free_clk>;
  683. status = "disabled";
  684. };
  685. watchdog1: watchdog@ffd00300 {
  686. compatible = "snps,dw-wdt";
  687. reg = <0xffd00300 0x100>;
  688. interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>;
  689. clocks = <&l4_sys_free_clk>;
  690. status = "disabled";
  691. };
  692. };
  693. };