socfpga.dtsi 18 KB

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