socfpga.dtsi 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794
  1. /*
  2. * Copyright (C) 2012 Altera <www.altera.com>
  3. *
  4. * SPDX-License-Identifier: GPL-2.0+
  5. */
  6. #include "skeleton.dtsi"
  7. #include <dt-bindings/reset/altr,rst-mgr.h>
  8. / {
  9. #address-cells = <1>;
  10. #size-cells = <1>;
  11. aliases {
  12. ethernet0 = &gmac0;
  13. ethernet1 = &gmac1;
  14. serial0 = &uart0;
  15. serial1 = &uart1;
  16. timer0 = &timer0;
  17. timer1 = &timer1;
  18. timer2 = &timer2;
  19. timer3 = &timer3;
  20. spi0 = &qspi;
  21. spi1 = &spi0;
  22. spi2 = &spi1;
  23. };
  24. cpus {
  25. #address-cells = <1>;
  26. #size-cells = <0>;
  27. cpu@0 {
  28. compatible = "arm,cortex-a9";
  29. device_type = "cpu";
  30. reg = <0>;
  31. next-level-cache = <&L2>;
  32. };
  33. cpu@1 {
  34. compatible = "arm,cortex-a9";
  35. device_type = "cpu";
  36. reg = <1>;
  37. next-level-cache = <&L2>;
  38. };
  39. };
  40. intc: intc@fffed000 {
  41. compatible = "arm,cortex-a9-gic";
  42. #interrupt-cells = <3>;
  43. interrupt-controller;
  44. reg = <0xfffed000 0x1000>,
  45. <0xfffec100 0x100>;
  46. };
  47. soc {
  48. #address-cells = <1>;
  49. #size-cells = <1>;
  50. compatible = "simple-bus";
  51. device_type = "soc";
  52. interrupt-parent = <&intc>;
  53. ranges;
  54. amba {
  55. compatible = "arm,amba-bus";
  56. #address-cells = <1>;
  57. #size-cells = <1>;
  58. ranges;
  59. pdma: pdma@ffe01000 {
  60. compatible = "arm,pl330", "arm,primecell";
  61. reg = <0xffe01000 0x1000>;
  62. interrupts = <0 104 4>,
  63. <0 105 4>,
  64. <0 106 4>,
  65. <0 107 4>,
  66. <0 108 4>,
  67. <0 109 4>,
  68. <0 110 4>,
  69. <0 111 4>;
  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. can0: can@ffc00000 {
  78. compatible = "bosch,d_can";
  79. reg = <0xffc00000 0x1000>;
  80. interrupts = <0 131 4>, <0 132 4>, <0 133 4>, <0 134 4>;
  81. clocks = <&can0_clk>;
  82. status = "disabled";
  83. };
  84. can1: can@ffc01000 {
  85. compatible = "bosch,d_can";
  86. reg = <0xffc01000 0x1000>;
  87. interrupts = <0 135 4>, <0 136 4>, <0 137 4>, <0 138 4>;
  88. clocks = <&can1_clk>;
  89. status = "disabled";
  90. };
  91. clkmgr@ffd04000 {
  92. compatible = "altr,clk-mgr";
  93. reg = <0xffd04000 0x1000>;
  94. clocks {
  95. #address-cells = <1>;
  96. #size-cells = <0>;
  97. osc1: osc1 {
  98. #clock-cells = <0>;
  99. compatible = "fixed-clock";
  100. };
  101. osc2: osc2 {
  102. #clock-cells = <0>;
  103. compatible = "fixed-clock";
  104. };
  105. f2s_periph_ref_clk: f2s_periph_ref_clk {
  106. #clock-cells = <0>;
  107. compatible = "fixed-clock";
  108. };
  109. f2s_sdram_ref_clk: f2s_sdram_ref_clk {
  110. #clock-cells = <0>;
  111. compatible = "fixed-clock";
  112. };
  113. main_pll: main_pll {
  114. #address-cells = <1>;
  115. #size-cells = <0>;
  116. #clock-cells = <0>;
  117. compatible = "altr,socfpga-pll-clock";
  118. clocks = <&osc1>;
  119. reg = <0x40>;
  120. mpuclk: mpuclk {
  121. #clock-cells = <0>;
  122. compatible = "altr,socfpga-perip-clk";
  123. clocks = <&main_pll>;
  124. div-reg = <0xe0 0 9>;
  125. reg = <0x48>;
  126. };
  127. mainclk: mainclk {
  128. #clock-cells = <0>;
  129. compatible = "altr,socfpga-perip-clk";
  130. clocks = <&main_pll>;
  131. div-reg = <0xe4 0 9>;
  132. reg = <0x4C>;
  133. };
  134. dbg_base_clk: dbg_base_clk {
  135. #clock-cells = <0>;
  136. compatible = "altr,socfpga-perip-clk";
  137. clocks = <&main_pll>;
  138. div-reg = <0xe8 0 9>;
  139. reg = <0x50>;
  140. };
  141. main_qspi_clk: main_qspi_clk {
  142. #clock-cells = <0>;
  143. compatible = "altr,socfpga-perip-clk";
  144. clocks = <&main_pll>;
  145. reg = <0x54>;
  146. };
  147. main_nand_sdmmc_clk: main_nand_sdmmc_clk {
  148. #clock-cells = <0>;
  149. compatible = "altr,socfpga-perip-clk";
  150. clocks = <&main_pll>;
  151. reg = <0x58>;
  152. };
  153. cfg_h2f_usr0_clk: cfg_h2f_usr0_clk {
  154. #clock-cells = <0>;
  155. compatible = "altr,socfpga-perip-clk";
  156. clocks = <&main_pll>;
  157. reg = <0x5C>;
  158. };
  159. };
  160. periph_pll: periph_pll {
  161. #address-cells = <1>;
  162. #size-cells = <0>;
  163. #clock-cells = <0>;
  164. compatible = "altr,socfpga-pll-clock";
  165. clocks = <&osc1>, <&osc2>, <&f2s_periph_ref_clk>;
  166. reg = <0x80>;
  167. emac0_clk: emac0_clk {
  168. #clock-cells = <0>;
  169. compatible = "altr,socfpga-perip-clk";
  170. clocks = <&periph_pll>;
  171. reg = <0x88>;
  172. };
  173. emac1_clk: emac1_clk {
  174. #clock-cells = <0>;
  175. compatible = "altr,socfpga-perip-clk";
  176. clocks = <&periph_pll>;
  177. reg = <0x8C>;
  178. };
  179. per_qspi_clk: per_qsi_clk {
  180. #clock-cells = <0>;
  181. compatible = "altr,socfpga-perip-clk";
  182. clocks = <&periph_pll>;
  183. reg = <0x90>;
  184. };
  185. per_nand_mmc_clk: per_nand_mmc_clk {
  186. #clock-cells = <0>;
  187. compatible = "altr,socfpga-perip-clk";
  188. clocks = <&periph_pll>;
  189. reg = <0x94>;
  190. };
  191. per_base_clk: per_base_clk {
  192. #clock-cells = <0>;
  193. compatible = "altr,socfpga-perip-clk";
  194. clocks = <&periph_pll>;
  195. reg = <0x98>;
  196. };
  197. h2f_usr1_clk: h2f_usr1_clk {
  198. #clock-cells = <0>;
  199. compatible = "altr,socfpga-perip-clk";
  200. clocks = <&periph_pll>;
  201. reg = <0x9C>;
  202. };
  203. };
  204. sdram_pll: sdram_pll {
  205. #address-cells = <1>;
  206. #size-cells = <0>;
  207. #clock-cells = <0>;
  208. compatible = "altr,socfpga-pll-clock";
  209. clocks = <&osc1>, <&osc2>, <&f2s_sdram_ref_clk>;
  210. reg = <0xC0>;
  211. ddr_dqs_clk: ddr_dqs_clk {
  212. #clock-cells = <0>;
  213. compatible = "altr,socfpga-perip-clk";
  214. clocks = <&sdram_pll>;
  215. reg = <0xC8>;
  216. };
  217. ddr_2x_dqs_clk: ddr_2x_dqs_clk {
  218. #clock-cells = <0>;
  219. compatible = "altr,socfpga-perip-clk";
  220. clocks = <&sdram_pll>;
  221. reg = <0xCC>;
  222. };
  223. ddr_dq_clk: ddr_dq_clk {
  224. #clock-cells = <0>;
  225. compatible = "altr,socfpga-perip-clk";
  226. clocks = <&sdram_pll>;
  227. reg = <0xD0>;
  228. };
  229. h2f_usr2_clk: h2f_usr2_clk {
  230. #clock-cells = <0>;
  231. compatible = "altr,socfpga-perip-clk";
  232. clocks = <&sdram_pll>;
  233. reg = <0xD4>;
  234. };
  235. };
  236. mpu_periph_clk: mpu_periph_clk {
  237. #clock-cells = <0>;
  238. compatible = "altr,socfpga-perip-clk";
  239. clocks = <&mpuclk>;
  240. fixed-divider = <4>;
  241. };
  242. mpu_l2_ram_clk: mpu_l2_ram_clk {
  243. #clock-cells = <0>;
  244. compatible = "altr,socfpga-perip-clk";
  245. clocks = <&mpuclk>;
  246. fixed-divider = <2>;
  247. };
  248. l4_main_clk: l4_main_clk {
  249. #clock-cells = <0>;
  250. compatible = "altr,socfpga-gate-clk";
  251. clocks = <&mainclk>;
  252. clk-gate = <0x60 0>;
  253. };
  254. l3_main_clk: l3_main_clk {
  255. #clock-cells = <0>;
  256. compatible = "altr,socfpga-perip-clk";
  257. clocks = <&mainclk>;
  258. fixed-divider = <1>;
  259. };
  260. l3_mp_clk: l3_mp_clk {
  261. #clock-cells = <0>;
  262. compatible = "altr,socfpga-gate-clk";
  263. clocks = <&mainclk>;
  264. div-reg = <0x64 0 2>;
  265. clk-gate = <0x60 1>;
  266. };
  267. l3_sp_clk: l3_sp_clk {
  268. #clock-cells = <0>;
  269. compatible = "altr,socfpga-gate-clk";
  270. clocks = <&mainclk>;
  271. div-reg = <0x64 2 2>;
  272. };
  273. l4_mp_clk: l4_mp_clk {
  274. #clock-cells = <0>;
  275. compatible = "altr,socfpga-gate-clk";
  276. clocks = <&mainclk>, <&per_base_clk>;
  277. div-reg = <0x64 4 3>;
  278. clk-gate = <0x60 2>;
  279. };
  280. l4_sp_clk: l4_sp_clk {
  281. #clock-cells = <0>;
  282. compatible = "altr,socfpga-gate-clk";
  283. clocks = <&mainclk>, <&per_base_clk>;
  284. div-reg = <0x64 7 3>;
  285. clk-gate = <0x60 3>;
  286. };
  287. dbg_at_clk: dbg_at_clk {
  288. #clock-cells = <0>;
  289. compatible = "altr,socfpga-gate-clk";
  290. clocks = <&dbg_base_clk>;
  291. div-reg = <0x68 0 2>;
  292. clk-gate = <0x60 4>;
  293. };
  294. dbg_clk: dbg_clk {
  295. #clock-cells = <0>;
  296. compatible = "altr,socfpga-gate-clk";
  297. clocks = <&dbg_base_clk>;
  298. div-reg = <0x68 2 2>;
  299. clk-gate = <0x60 5>;
  300. };
  301. dbg_trace_clk: dbg_trace_clk {
  302. #clock-cells = <0>;
  303. compatible = "altr,socfpga-gate-clk";
  304. clocks = <&dbg_base_clk>;
  305. div-reg = <0x6C 0 3>;
  306. clk-gate = <0x60 6>;
  307. };
  308. dbg_timer_clk: dbg_timer_clk {
  309. #clock-cells = <0>;
  310. compatible = "altr,socfpga-gate-clk";
  311. clocks = <&dbg_base_clk>;
  312. clk-gate = <0x60 7>;
  313. };
  314. cfg_clk: cfg_clk {
  315. #clock-cells = <0>;
  316. compatible = "altr,socfpga-gate-clk";
  317. clocks = <&cfg_h2f_usr0_clk>;
  318. clk-gate = <0x60 8>;
  319. };
  320. h2f_user0_clk: h2f_user0_clk {
  321. #clock-cells = <0>;
  322. compatible = "altr,socfpga-gate-clk";
  323. clocks = <&cfg_h2f_usr0_clk>;
  324. clk-gate = <0x60 9>;
  325. };
  326. emac_0_clk: emac_0_clk {
  327. #clock-cells = <0>;
  328. compatible = "altr,socfpga-gate-clk";
  329. clocks = <&emac0_clk>;
  330. clk-gate = <0xa0 0>;
  331. };
  332. emac_1_clk: emac_1_clk {
  333. #clock-cells = <0>;
  334. compatible = "altr,socfpga-gate-clk";
  335. clocks = <&emac1_clk>;
  336. clk-gate = <0xa0 1>;
  337. };
  338. usb_mp_clk: usb_mp_clk {
  339. #clock-cells = <0>;
  340. compatible = "altr,socfpga-gate-clk";
  341. clocks = <&per_base_clk>;
  342. clk-gate = <0xa0 2>;
  343. div-reg = <0xa4 0 3>;
  344. };
  345. spi_m_clk: spi_m_clk {
  346. #clock-cells = <0>;
  347. compatible = "altr,socfpga-gate-clk";
  348. clocks = <&per_base_clk>;
  349. clk-gate = <0xa0 3>;
  350. div-reg = <0xa4 3 3>;
  351. };
  352. can0_clk: can0_clk {
  353. #clock-cells = <0>;
  354. compatible = "altr,socfpga-gate-clk";
  355. clocks = <&per_base_clk>;
  356. clk-gate = <0xa0 4>;
  357. div-reg = <0xa4 6 3>;
  358. };
  359. can1_clk: can1_clk {
  360. #clock-cells = <0>;
  361. compatible = "altr,socfpga-gate-clk";
  362. clocks = <&per_base_clk>;
  363. clk-gate = <0xa0 5>;
  364. div-reg = <0xa4 9 3>;
  365. };
  366. gpio_db_clk: gpio_db_clk {
  367. #clock-cells = <0>;
  368. compatible = "altr,socfpga-gate-clk";
  369. clocks = <&per_base_clk>;
  370. clk-gate = <0xa0 6>;
  371. div-reg = <0xa8 0 24>;
  372. };
  373. h2f_user1_clk: h2f_user1_clk {
  374. #clock-cells = <0>;
  375. compatible = "altr,socfpga-gate-clk";
  376. clocks = <&h2f_usr1_clk>;
  377. clk-gate = <0xa0 7>;
  378. };
  379. sdmmc_clk: sdmmc_clk {
  380. #clock-cells = <0>;
  381. compatible = "altr,socfpga-gate-clk";
  382. clocks = <&f2s_periph_ref_clk>, <&main_nand_sdmmc_clk>, <&per_nand_mmc_clk>;
  383. clk-gate = <0xa0 8>;
  384. clk-phase = <0 135>;
  385. };
  386. nand_x_clk: nand_x_clk {
  387. #clock-cells = <0>;
  388. compatible = "altr,socfpga-gate-clk";
  389. clocks = <&f2s_periph_ref_clk>, <&main_nand_sdmmc_clk>, <&per_nand_mmc_clk>;
  390. clk-gate = <0xa0 9>;
  391. };
  392. nand_clk: nand_clk {
  393. #clock-cells = <0>;
  394. compatible = "altr,socfpga-gate-clk";
  395. clocks = <&f2s_periph_ref_clk>, <&main_nand_sdmmc_clk>, <&per_nand_mmc_clk>;
  396. clk-gate = <0xa0 10>;
  397. fixed-divider = <4>;
  398. };
  399. qspi_clk: qspi_clk {
  400. #clock-cells = <0>;
  401. compatible = "altr,socfpga-gate-clk";
  402. clocks = <&f2s_periph_ref_clk>, <&main_qspi_clk>, <&per_qspi_clk>;
  403. clk-gate = <0xa0 11>;
  404. };
  405. };
  406. };
  407. gmac0: ethernet@ff700000 {
  408. compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
  409. altr,sysmgr-syscon = <&sysmgr 0x60 0>;
  410. reg = <0xff700000 0x2000>;
  411. interrupts = <0 115 4>;
  412. interrupt-names = "macirq";
  413. mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
  414. clocks = <&emac0_clk>;
  415. clock-names = "stmmaceth";
  416. resets = <&rst EMAC0_RESET>;
  417. reset-names = "stmmaceth";
  418. snps,multicast-filter-bins = <256>;
  419. snps,perfect-filter-entries = <128>;
  420. status = "disabled";
  421. };
  422. gmac1: ethernet@ff702000 {
  423. compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
  424. altr,sysmgr-syscon = <&sysmgr 0x60 2>;
  425. reg = <0xff702000 0x2000>;
  426. interrupts = <0 120 4>;
  427. interrupt-names = "macirq";
  428. mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
  429. clocks = <&emac1_clk>;
  430. clock-names = "stmmaceth";
  431. resets = <&rst EMAC1_RESET>;
  432. reset-names = "stmmaceth";
  433. snps,multicast-filter-bins = <256>;
  434. snps,perfect-filter-entries = <128>;
  435. status = "disabled";
  436. };
  437. i2c0: i2c@ffc04000 {
  438. #address-cells = <1>;
  439. #size-cells = <0>;
  440. compatible = "snps,designware-i2c";
  441. reg = <0xffc04000 0x1000>;
  442. clocks = <&l4_sp_clk>;
  443. interrupts = <0 158 0x4>;
  444. status = "disabled";
  445. };
  446. i2c1: i2c@ffc05000 {
  447. #address-cells = <1>;
  448. #size-cells = <0>;
  449. compatible = "snps,designware-i2c";
  450. reg = <0xffc05000 0x1000>;
  451. clocks = <&l4_sp_clk>;
  452. interrupts = <0 159 0x4>;
  453. status = "disabled";
  454. };
  455. i2c2: i2c@ffc06000 {
  456. #address-cells = <1>;
  457. #size-cells = <0>;
  458. compatible = "snps,designware-i2c";
  459. reg = <0xffc06000 0x1000>;
  460. clocks = <&l4_sp_clk>;
  461. interrupts = <0 160 0x4>;
  462. status = "disabled";
  463. };
  464. i2c3: i2c@ffc07000 {
  465. #address-cells = <1>;
  466. #size-cells = <0>;
  467. compatible = "snps,designware-i2c";
  468. reg = <0xffc07000 0x1000>;
  469. clocks = <&l4_sp_clk>;
  470. interrupts = <0 161 0x4>;
  471. status = "disabled";
  472. };
  473. gpio0: gpio@ff708000 {
  474. #address-cells = <1>;
  475. #size-cells = <0>;
  476. compatible = "snps,dw-apb-gpio";
  477. reg = <0xff708000 0x1000>;
  478. clocks = <&per_base_clk>;
  479. status = "disabled";
  480. porta: gpio-controller@0 {
  481. compatible = "snps,dw-apb-gpio-port";
  482. bank-name = "porta";
  483. gpio-controller;
  484. #gpio-cells = <2>;
  485. snps,nr-gpios = <29>;
  486. reg = <0>;
  487. interrupt-controller;
  488. #interrupt-cells = <2>;
  489. interrupts = <0 164 4>;
  490. };
  491. };
  492. gpio1: gpio@ff709000 {
  493. #address-cells = <1>;
  494. #size-cells = <0>;
  495. compatible = "snps,dw-apb-gpio";
  496. reg = <0xff709000 0x1000>;
  497. clocks = <&per_base_clk>;
  498. status = "disabled";
  499. portb: gpio-controller@0 {
  500. compatible = "snps,dw-apb-gpio-port";
  501. bank-name = "portb";
  502. gpio-controller;
  503. #gpio-cells = <2>;
  504. snps,nr-gpios = <29>;
  505. reg = <0>;
  506. interrupt-controller;
  507. #interrupt-cells = <2>;
  508. interrupts = <0 165 4>;
  509. };
  510. };
  511. gpio2: gpio@ff70a000 {
  512. #address-cells = <1>;
  513. #size-cells = <0>;
  514. compatible = "snps,dw-apb-gpio";
  515. reg = <0xff70a000 0x1000>;
  516. clocks = <&per_base_clk>;
  517. status = "disabled";
  518. portc: gpio-controller@0 {
  519. compatible = "snps,dw-apb-gpio-port";
  520. bank-name = "portc";
  521. gpio-controller;
  522. #gpio-cells = <2>;
  523. snps,nr-gpios = <27>;
  524. reg = <0>;
  525. interrupt-controller;
  526. #interrupt-cells = <2>;
  527. interrupts = <0 166 4>;
  528. };
  529. };
  530. sdr: sdr@ffc25000 {
  531. compatible = "syscon";
  532. reg = <0xffc25000 0x1000>;
  533. };
  534. sdramedac {
  535. compatible = "altr,sdram-edac";
  536. altr,sdr-syscon = <&sdr>;
  537. interrupts = <0 39 4>;
  538. };
  539. L2: l2-cache@fffef000 {
  540. compatible = "arm,pl310-cache";
  541. reg = <0xfffef000 0x1000>;
  542. interrupts = <0 38 0x04>;
  543. cache-unified;
  544. cache-level = <2>;
  545. arm,tag-latency = <1 1 1>;
  546. arm,data-latency = <2 1 1>;
  547. };
  548. mmc0: dwmmc0@ff704000 {
  549. compatible = "altr,socfpga-dw-mshc";
  550. reg = <0xff704000 0x1000>;
  551. interrupts = <0 139 4>;
  552. fifo-depth = <0x400>;
  553. #address-cells = <1>;
  554. #size-cells = <0>;
  555. clocks = <&l4_mp_clk>, <&sdmmc_clk>;
  556. clock-names = "biu", "ciu";
  557. };
  558. qspi: spi@ff705000 {
  559. compatible = "cadence,qspi";
  560. #address-cells = <1>;
  561. #size-cells = <0>;
  562. reg = <0xff705000 0x1000>,
  563. <0xffa00000 0x1000>;
  564. interrupts = <0 151 4>;
  565. clocks = <&qspi_clk>;
  566. ext-decoder = <0>; /* external decoder */
  567. num-cs = <4>;
  568. fifo-depth = <128>;
  569. sram-size = <128>;
  570. bus-num = <2>;
  571. status = "disabled";
  572. };
  573. spi0: spi@fff00000 {
  574. compatible = "snps,dw-apb-ssi";
  575. #address-cells = <1>;
  576. #size-cells = <0>;
  577. reg = <0xfff00000 0x1000>;
  578. interrupts = <0 154 4>;
  579. num-cs = <4>;
  580. bus-num = <0>;
  581. tx-dma-channel = <&pdma 16>;
  582. rx-dma-channel = <&pdma 17>;
  583. clocks = <&per_base_clk>;
  584. status = "disabled";
  585. };
  586. spi1: spi@fff01000 {
  587. compatible = "snps,dw-apb-ssi";
  588. #address-cells = <1>;
  589. #size-cells = <0>;
  590. reg = <0xfff01000 0x1000>;
  591. interrupts = <0 156 4>;
  592. num-cs = <4>;
  593. bus-num = <1>;
  594. tx-dma-channel = <&pdma 20>;
  595. rx-dma-channel = <&pdma 21>;
  596. clocks = <&per_base_clk>;
  597. status = "disabled";
  598. };
  599. /* Local timer */
  600. timer@fffec600 {
  601. compatible = "arm,cortex-a9-twd-timer";
  602. reg = <0xfffec600 0x100>;
  603. interrupts = <1 13 0xf04>;
  604. clocks = <&mpu_periph_clk>;
  605. };
  606. timer0: timer0@ffc08000 {
  607. compatible = "snps,dw-apb-timer";
  608. interrupts = <0 167 4>;
  609. reg = <0xffc08000 0x1000>;
  610. clocks = <&l4_sp_clk>;
  611. clock-names = "timer";
  612. };
  613. timer1: timer1@ffc09000 {
  614. compatible = "snps,dw-apb-timer";
  615. interrupts = <0 168 4>;
  616. reg = <0xffc09000 0x1000>;
  617. clocks = <&l4_sp_clk>;
  618. clock-names = "timer";
  619. };
  620. timer2: timer2@ffd00000 {
  621. compatible = "snps,dw-apb-timer";
  622. interrupts = <0 169 4>;
  623. reg = <0xffd00000 0x1000>;
  624. clocks = <&osc1>;
  625. clock-names = "timer";
  626. };
  627. timer3: timer3@ffd01000 {
  628. compatible = "snps,dw-apb-timer";
  629. interrupts = <0 170 4>;
  630. reg = <0xffd01000 0x1000>;
  631. clocks = <&osc1>;
  632. clock-names = "timer";
  633. };
  634. uart0: serial0@ffc02000 {
  635. compatible = "snps,dw-apb-uart";
  636. reg = <0xffc02000 0x1000>;
  637. interrupts = <0 162 4>;
  638. reg-shift = <2>;
  639. reg-io-width = <4>;
  640. clocks = <&l4_sp_clk>;
  641. };
  642. uart1: serial1@ffc03000 {
  643. compatible = "snps,dw-apb-uart";
  644. reg = <0xffc03000 0x1000>;
  645. interrupts = <0 163 4>;
  646. reg-shift = <2>;
  647. reg-io-width = <4>;
  648. clocks = <&l4_sp_clk>;
  649. };
  650. rst: rstmgr@ffd05000 {
  651. #reset-cells = <1>;
  652. compatible = "altr,rst-mgr";
  653. reg = <0xffd05000 0x1000>;
  654. };
  655. usbphy0: usbphy@0 {
  656. #phy-cells = <0>;
  657. compatible = "usb-nop-xceiv";
  658. status = "okay";
  659. };
  660. usb0: usb@ffb00000 {
  661. compatible = "snps,dwc2";
  662. reg = <0xffb00000 0xffff>;
  663. interrupts = <0 125 4>;
  664. clocks = <&usb_mp_clk>;
  665. clock-names = "otg";
  666. phys = <&usbphy0>;
  667. phy-names = "usb2-phy";
  668. status = "disabled";
  669. };
  670. usb1: usb@ffb40000 {
  671. compatible = "snps,dwc2";
  672. reg = <0xffb40000 0xffff>;
  673. interrupts = <0 128 4>;
  674. clocks = <&usb_mp_clk>;
  675. clock-names = "otg";
  676. phys = <&usbphy0>;
  677. phy-names = "usb2-phy";
  678. status = "disabled";
  679. };
  680. watchdog0: watchdog@ffd02000 {
  681. compatible = "snps,dw-wdt";
  682. reg = <0xffd02000 0x1000>;
  683. interrupts = <0 171 4>;
  684. clocks = <&osc1>;
  685. status = "disabled";
  686. };
  687. watchdog1: watchdog@ffd03000 {
  688. compatible = "snps,dw-wdt";
  689. reg = <0xffd03000 0x1000>;
  690. interrupts = <0 172 4>;
  691. clocks = <&osc1>;
  692. status = "disabled";
  693. };
  694. sysmgr: sysmgr@ffd08000 {
  695. compatible = "altr,sys-mgr", "syscon";
  696. reg = <0xffd08000 0x4000>;
  697. };
  698. };
  699. };