sama5d2.dtsi 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671
  1. #include "skeleton.dtsi"
  2. / {
  3. model = "Atmel SAMA5D2 family SoC";
  4. compatible = "atmel,sama5d2";
  5. aliases {
  6. spi0 = &spi0;
  7. spi1 = &qspi0;
  8. i2c0 = &i2c0;
  9. i2c1 = &i2c1;
  10. };
  11. clocks {
  12. slow_xtal: slow_xtal {
  13. compatible = "fixed-clock";
  14. #clock-cells = <0>;
  15. clock-frequency = <0>;
  16. };
  17. main_xtal: main_xtal {
  18. compatible = "fixed-clock";
  19. #clock-cells = <0>;
  20. clock-frequency = <0>;
  21. };
  22. };
  23. ahb {
  24. compatible = "simple-bus";
  25. #address-cells = <1>;
  26. #size-cells = <1>;
  27. usb1: ohci@00400000 {
  28. compatible = "atmel,at91rm9200-ohci", "usb-ohci";
  29. reg = <0x00400000 0x100000>;
  30. clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
  31. clock-names = "ohci_clk", "hclk", "uhpck";
  32. status = "disabled";
  33. };
  34. usb2: ehci@00500000 {
  35. compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
  36. reg = <0x00500000 0x100000>;
  37. clocks = <&utmi>, <&uhphs_clk>;
  38. clock-names = "usb_clk", "ehci_clk";
  39. status = "disabled";
  40. };
  41. sdmmc0: sdio-host@a0000000 {
  42. compatible = "atmel,sama5d2-sdhci";
  43. reg = <0xa0000000 0x300>;
  44. clocks = <&sdmmc0_hclk>, <&sdmmc0_gclk>, <&main>;
  45. clock-names = "hclock", "multclk", "baseclk";
  46. status = "disabled";
  47. };
  48. sdmmc1: sdio-host@b0000000 {
  49. compatible = "atmel,sama5d2-sdhci";
  50. reg = <0xb0000000 0x300>;
  51. clocks = <&sdmmc1_hclk>, <&sdmmc1_gclk>, <&main>;
  52. clock-names = "hclock", "multclk", "baseclk";
  53. status = "disabled";
  54. };
  55. apb {
  56. compatible = "simple-bus";
  57. #address-cells = <1>;
  58. #size-cells = <1>;
  59. pmc: pmc@f0014000 {
  60. compatible = "atmel,sama5d2-pmc", "syscon";
  61. reg = <0xf0014000 0x160>;
  62. #address-cells = <1>;
  63. #size-cells = <0>;
  64. #interrupt-cells = <1>;
  65. main: mainck {
  66. compatible = "atmel,at91sam9x5-clk-main";
  67. #clock-cells = <0>;
  68. };
  69. plla: pllack@0 {
  70. compatible = "atmel,sama5d3-clk-pll";
  71. #clock-cells = <0>;
  72. clocks = <&main>;
  73. reg = <0>;
  74. atmel,clk-input-range = <12000000 12000000>;
  75. #atmel,pll-clk-output-range-cells = <4>;
  76. atmel,pll-clk-output-ranges = <600000000 1200000000 0 0>;
  77. };
  78. plladiv: plladivck {
  79. compatible = "atmel,at91sam9x5-clk-plldiv";
  80. #clock-cells = <0>;
  81. clocks = <&plla>;
  82. };
  83. audio_pll_frac: audiopll_fracck {
  84. compatible = "atmel,sama5d2-clk-audio-pll-frac";
  85. #clock-cells = <0>;
  86. clocks = <&main>;
  87. };
  88. audio_pll_pad: audiopll_padck {
  89. compatible = "atmel,sama5d2-clk-audio-pll-pad";
  90. #clock-cells = <0>;
  91. clocks = <&audio_pll_frac>;
  92. };
  93. audio_pll_pmc: audiopll_pmcck {
  94. compatible = "atmel,sama5d2-clk-audio-pll-pmc";
  95. #clock-cells = <0>;
  96. clocks = <&audio_pll_frac>;
  97. };
  98. utmi: utmick {
  99. compatible = "atmel,at91sam9x5-clk-utmi";
  100. #clock-cells = <0>;
  101. clocks = <&main>;
  102. };
  103. mck: masterck {
  104. compatible = "atmel,at91sam9x5-clk-master";
  105. #clock-cells = <0>;
  106. clocks = <&main>, <&plladiv>, <&utmi>;
  107. atmel,clk-output-range = <124000000 166000000>;
  108. atmel,clk-divisors = <1 2 4 3>;
  109. };
  110. h32ck: h32mxck {
  111. #clock-cells = <0>;
  112. compatible = "atmel,sama5d4-clk-h32mx";
  113. clocks = <&mck>;
  114. };
  115. usb: usbck {
  116. compatible = "atmel,at91sam9x5-clk-usb";
  117. #clock-cells = <0>;
  118. clocks = <&plladiv>, <&utmi>;
  119. };
  120. prog: progck {
  121. compatible = "atmel,at91sam9x5-clk-programmable";
  122. #address-cells = <1>;
  123. #size-cells = <0>;
  124. interrupt-parent = <&pmc>;
  125. clocks = <&main>, <&plladiv>, <&utmi>, <&mck>;
  126. prog0: prog@0 {
  127. #clock-cells = <0>;
  128. reg = <0>;
  129. };
  130. prog1: prog@1 {
  131. #clock-cells = <0>;
  132. reg = <1>;
  133. };
  134. prog2: prog@2 {
  135. #clock-cells = <0>;
  136. reg = <2>;
  137. };
  138. };
  139. systemck {
  140. compatible = "atmel,at91rm9200-clk-system";
  141. #address-cells = <1>;
  142. #size-cells = <0>;
  143. ddrck: ddrck@2 {
  144. #clock-cells = <0>;
  145. reg = <2>;
  146. clocks = <&mck>;
  147. };
  148. lcdck: lcdck@3 {
  149. #clock-cells = <0>;
  150. reg = <3>;
  151. clocks = <&mck>;
  152. };
  153. uhpck: uhpck@6 {
  154. #clock-cells = <0>;
  155. reg = <6>;
  156. clocks = <&usb>;
  157. };
  158. udpck: udpck@7 {
  159. #clock-cells = <0>;
  160. reg = <7>;
  161. clocks = <&usb>;
  162. };
  163. pck0: pck0@8 {
  164. #clock-cells = <0>;
  165. reg = <8>;
  166. clocks = <&prog0>;
  167. };
  168. pck1: pck1@9 {
  169. #clock-cells = <0>;
  170. reg = <9>;
  171. clocks = <&prog1>;
  172. };
  173. pck2: pck2@10 {
  174. #clock-cells = <0>;
  175. reg = <10>;
  176. clocks = <&prog2>;
  177. };
  178. iscck: iscck@18 {
  179. #clock-cells = <0>;
  180. reg = <18>;
  181. clocks = <&mck>;
  182. };
  183. };
  184. periph32ck {
  185. compatible = "atmel,at91sam9x5-clk-peripheral";
  186. #address-cells = <1>;
  187. #size-cells = <0>;
  188. clocks = <&h32ck>;
  189. macb0_clk: macb0_clk@5 {
  190. #clock-cells = <0>;
  191. reg = <5>;
  192. atmel,clk-output-range = <0 83000000>;
  193. };
  194. tdes_clk: tdes_clk@11 {
  195. #clock-cells = <0>;
  196. reg = <11>;
  197. atmel,clk-output-range = <0 83000000>;
  198. };
  199. matrix1_clk: matrix1_clk@14 {
  200. #clock-cells = <0>;
  201. reg = <14>;
  202. };
  203. hsmc_clk: hsmc_clk@17 {
  204. #clock-cells = <0>;
  205. reg = <17>;
  206. };
  207. pioA_clk: pioA_clk@18 {
  208. #clock-cells = <0>;
  209. reg = <18>;
  210. atmel,clk-output-range = <0 83000000>;
  211. };
  212. flx0_clk: flx0_clk@19 {
  213. #clock-cells = <0>;
  214. reg = <19>;
  215. atmel,clk-output-range = <0 83000000>;
  216. };
  217. flx1_clk: flx1_clk@20 {
  218. #clock-cells = <0>;
  219. reg = <20>;
  220. atmel,clk-output-range = <0 83000000>;
  221. };
  222. flx2_clk: flx2_clk@21 {
  223. #clock-cells = <0>;
  224. reg = <21>;
  225. atmel,clk-output-range = <0 83000000>;
  226. };
  227. flx3_clk: flx3_clk@22 {
  228. #clock-cells = <0>;
  229. reg = <22>;
  230. atmel,clk-output-range = <0 83000000>;
  231. };
  232. flx4_clk: flx4_clk@23 {
  233. #clock-cells = <0>;
  234. reg = <23>;
  235. atmel,clk-output-range = <0 83000000>;
  236. };
  237. uart0_clk: uart0_clk@24 {
  238. #clock-cells = <0>;
  239. reg = <24>;
  240. atmel,clk-output-range = <0 83000000>;
  241. };
  242. uart1_clk: uart1_clk@25 {
  243. #clock-cells = <0>;
  244. reg = <25>;
  245. atmel,clk-output-range = <0 83000000>;
  246. };
  247. uart2_clk: uart2_clk@26 {
  248. #clock-cells = <0>;
  249. reg = <26>;
  250. atmel,clk-output-range = <0 83000000>;
  251. };
  252. uart3_clk: uart3_clk@27 {
  253. #clock-cells = <0>;
  254. reg = <27>;
  255. atmel,clk-output-range = <0 83000000>;
  256. };
  257. uart4_clk: uart4_clk@28 {
  258. #clock-cells = <0>;
  259. reg = <28>;
  260. atmel,clk-output-range = <0 83000000>;
  261. };
  262. twi0_clk: twi0_clk@29 {
  263. reg = <29>;
  264. #clock-cells = <0>;
  265. atmel,clk-output-range = <0 83000000>;
  266. };
  267. twi1_clk: twi1_clk@30 {
  268. #clock-cells = <0>;
  269. reg = <30>;
  270. atmel,clk-output-range = <0 83000000>;
  271. };
  272. spi0_clk: spi0_clk@33 {
  273. #clock-cells = <0>;
  274. reg = <33>;
  275. atmel,clk-output-range = <0 83000000>;
  276. };
  277. spi1_clk: spi1_clk@34 {
  278. #clock-cells = <0>;
  279. reg = <34>;
  280. atmel,clk-output-range = <0 83000000>;
  281. };
  282. tcb0_clk: tcb0_clk@35 {
  283. #clock-cells = <0>;
  284. reg = <35>;
  285. atmel,clk-output-range = <0 83000000>;
  286. };
  287. tcb1_clk: tcb1_clk@36 {
  288. #clock-cells = <0>;
  289. reg = <36>;
  290. atmel,clk-output-range = <0 83000000>;
  291. };
  292. pwm_clk: pwm_clk@38 {
  293. #clock-cells = <0>;
  294. reg = <38>;
  295. atmel,clk-output-range = <0 83000000>;
  296. };
  297. adc_clk: adc_clk@40 {
  298. #clock-cells = <0>;
  299. reg = <40>;
  300. atmel,clk-output-range = <0 83000000>;
  301. };
  302. uhphs_clk: uhphs_clk@41 {
  303. #clock-cells = <0>;
  304. reg = <41>;
  305. atmel,clk-output-range = <0 83000000>;
  306. };
  307. udphs_clk: udphs_clk@42 {
  308. #clock-cells = <0>;
  309. reg = <42>;
  310. atmel,clk-output-range = <0 83000000>;
  311. };
  312. ssc0_clk: ssc0_clk@43 {
  313. #clock-cells = <0>;
  314. reg = <43>;
  315. atmel,clk-output-range = <0 83000000>;
  316. };
  317. ssc1_clk: ssc1_clk@44 {
  318. #clock-cells = <0>;
  319. reg = <44>;
  320. atmel,clk-output-range = <0 83000000>;
  321. };
  322. trng_clk: trng_clk@47 {
  323. #clock-cells = <0>;
  324. reg = <47>;
  325. atmel,clk-output-range = <0 83000000>;
  326. };
  327. pdmic_clk: pdmic_clk@48 {
  328. #clock-cells = <0>;
  329. reg = <48>;
  330. atmel,clk-output-range = <0 83000000>;
  331. };
  332. i2s0_clk: i2s0_clk@54 {
  333. #clock-cells = <0>;
  334. reg = <54>;
  335. atmel,clk-output-range = <0 83000000>;
  336. };
  337. i2s1_clk: i2s1_clk@55 {
  338. #clock-cells = <0>;
  339. reg = <55>;
  340. atmel,clk-output-range = <0 83000000>;
  341. };
  342. can0_clk: can0_clk@56 {
  343. #clock-cells = <0>;
  344. reg = <56>;
  345. atmel,clk-output-range = <0 83000000>;
  346. };
  347. can1_clk: can1_clk@57 {
  348. #clock-cells = <0>;
  349. reg = <57>;
  350. atmel,clk-output-range = <0 83000000>;
  351. };
  352. classd_clk: classd_clk@59 {
  353. #clock-cells = <0>;
  354. reg = <59>;
  355. atmel,clk-output-range = <0 83000000>;
  356. };
  357. };
  358. periph64ck {
  359. compatible = "atmel,at91sam9x5-clk-peripheral";
  360. #address-cells = <1>;
  361. #size-cells = <0>;
  362. clocks = <&mck>;
  363. dma0_clk: dma0_clk@6 {
  364. #clock-cells = <0>;
  365. reg = <6>;
  366. };
  367. dma1_clk: dma1_clk@7 {
  368. #clock-cells = <0>;
  369. reg = <7>;
  370. };
  371. aes_clk: aes_clk@9 {
  372. #clock-cells = <0>;
  373. reg = <9>;
  374. };
  375. aesb_clk: aesb_clk@10 {
  376. #clock-cells = <0>;
  377. reg = <10>;
  378. };
  379. sha_clk: sha_clk@12 {
  380. #clock-cells = <0>;
  381. reg = <12>;
  382. };
  383. mpddr_clk: mpddr_clk@13 {
  384. #clock-cells = <0>;
  385. reg = <13>;
  386. };
  387. matrix0_clk: matrix0_clk@15 {
  388. #clock-cells = <0>;
  389. reg = <15>;
  390. };
  391. sdmmc0_hclk: sdmmc0_hclk@31 {
  392. #clock-cells = <0>;
  393. reg = <31>;
  394. };
  395. sdmmc1_hclk: sdmmc1_hclk@32 {
  396. #clock-cells = <0>;
  397. reg = <32>;
  398. };
  399. lcdc_clk: lcdc_clk@45 {
  400. #clock-cells = <0>;
  401. reg = <45>;
  402. };
  403. isc_clk: isc_clk@46 {
  404. #clock-cells = <0>;
  405. reg = <46>;
  406. };
  407. qspi0_clk: qspi0_clk@52 {
  408. #clock-cells = <0>;
  409. reg = <52>;
  410. };
  411. qspi1_clk: qspi1_clk@53 {
  412. #clock-cells = <0>;
  413. reg = <53>;
  414. };
  415. };
  416. gck {
  417. compatible = "atmel,sama5d2-clk-generated";
  418. #address-cells = <1>;
  419. #size-cells = <0>;
  420. interrupt-parent = <&pmc>;
  421. clocks = <&main>, <&plla>, <&utmi>, <&mck>;
  422. sdmmc0_gclk: sdmmc0_gclk@31 {
  423. #clock-cells = <0>;
  424. reg = <31>;
  425. };
  426. sdmmc1_gclk: sdmmc1_gclk@32 {
  427. #clock-cells = <0>;
  428. reg = <32>;
  429. };
  430. tcb0_gclk: tcb0_gclk@35 {
  431. #clock-cells = <0>;
  432. reg = <35>;
  433. atmel,clk-output-range = <0 83000000>;
  434. };
  435. tcb1_gclk: tcb1_gclk@36 {
  436. #clock-cells = <0>;
  437. reg = <36>;
  438. atmel,clk-output-range = <0 83000000>;
  439. };
  440. pwm_gclk: pwm_gclk@38 {
  441. #clock-cells = <0>;
  442. reg = <38>;
  443. atmel,clk-output-range = <0 83000000>;
  444. };
  445. pdmic_gclk: pdmic_gclk@48 {
  446. #clock-cells = <0>;
  447. reg = <48>;
  448. };
  449. i2s0_gclk: i2s0_gclk@54 {
  450. #clock-cells = <0>;
  451. reg = <54>;
  452. };
  453. i2s1_gclk: i2s1_gclk@55 {
  454. #clock-cells = <0>;
  455. reg = <55>;
  456. };
  457. can0_gclk: can0_gclk@56 {
  458. #clock-cells = <0>;
  459. reg = <56>;
  460. atmel,clk-output-range = <0 80000000>;
  461. };
  462. can1_gclk: can1_gclk@57 {
  463. #clock-cells = <0>;
  464. reg = <57>;
  465. atmel,clk-output-range = <0 80000000>;
  466. };
  467. classd_gclk: classd_gclk@59 {
  468. #clock-cells = <0>;
  469. reg = <59>;
  470. atmel,clk-output-range = <0 100000000>;
  471. };
  472. };
  473. };
  474. qspi0: spi@f0020000 {
  475. compatible = "atmel,sama5d2-qspi";
  476. reg = <0xf0020000 0x100>, <0xd0000000 0x08000000>;
  477. reg-names = "qspi_base", "qspi_mmap";
  478. #address-cells = <1>;
  479. #size-cells = <0>;
  480. clocks = <&qspi0_clk>;
  481. status = "disabled";
  482. };
  483. spi0: spi@f8000000 {
  484. compatible = "atmel,at91rm9200-spi";
  485. reg = <0xf8000000 0x100>;
  486. clocks = <&spi0_clk>;
  487. clock-names = "spi_clk";
  488. #address-cells = <1>;
  489. #size-cells = <0>;
  490. status = "disabled";
  491. };
  492. macb0: ethernet@f8008000 {
  493. compatible = "cdns,macb";
  494. reg = <0xf8008000 0x1000>;
  495. #address-cells = <1>;
  496. #size-cells = <0>;
  497. clocks = <&macb0_clk>, <&macb0_clk>;
  498. clock-names = "hclk", "pclk";
  499. status = "disabled";
  500. };
  501. uart1: serial@f8020000 {
  502. compatible = "atmel,at91sam9260-usart";
  503. reg = <0xf8020000 0x100>;
  504. status = "disabled";
  505. };
  506. i2c0: i2c@f8028000 {
  507. compatible = "atmel,sama5d2-i2c";
  508. reg = <0xf8028000 0x100>;
  509. #address-cells = <1>;
  510. #size-cells = <0>;
  511. clocks = <&twi0_clk>;
  512. status = "disabled";
  513. };
  514. sckc@f8048050 {
  515. compatible = "atmel,at91sam9x5-sckc";
  516. reg = <0xf8048050 0x4>;
  517. slow_rc_osc: slow_rc_osc {
  518. compatible = "atmel,at91sam9x5-clk-slow-rc-osc";
  519. #clock-cells = <0>;
  520. clock-frequency = <32768>;
  521. clock-accuracy = <250000000>;
  522. atmel,startup-time-usec = <75>;
  523. };
  524. slow_osc: slow_osc {
  525. compatible = "atmel,at91sam9x5-clk-slow-osc";
  526. #clock-cells = <0>;
  527. clocks = <&slow_xtal>;
  528. atmel,startup-time-usec = <1200000>;
  529. };
  530. clk32k: slowck {
  531. compatible = "atmel,at91sam9x5-clk-slow";
  532. #clock-cells = <0>;
  533. clocks = <&slow_rc_osc &slow_osc>;
  534. };
  535. };
  536. spi1: spi@fc000000 {
  537. compatible = "atmel,at91rm9200-spi";
  538. reg = <0xfc000000 0x100>;
  539. #address-cells = <1>;
  540. #size-cells = <0>;
  541. status = "disabled";
  542. };
  543. i2c1: i2c@fc028000 {
  544. compatible = "atmel,sama5d2-i2c";
  545. reg = <0xfc028000 0x100>;
  546. #address-cells = <1>;
  547. #size-cells = <0>;
  548. clocks = <&twi1_clk>;
  549. status = "disabled";
  550. };
  551. pioA: gpio@fc038000 {
  552. compatible = "atmel,sama5d2-gpio";
  553. reg = <0xfc038000 0x600>;
  554. clocks = <&pioA_clk>;
  555. gpio-controller;
  556. #gpio-cells = <2>;
  557. pinctrl {
  558. compatible = "atmel,sama5d2-pinctrl";
  559. };
  560. };
  561. };
  562. };
  563. };