socfpga.dtsi 18 KB

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