sama5d2.dtsi 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512
  1. /*
  2. * sama5d2.dtsi - Device Tree Include file for SAMA5D2 family SoC
  3. *
  4. * Copyright (C) 2015 Atmel,
  5. * 2015 Ludovic Desroches <ludovic.desroches@atmel.com>
  6. *
  7. * This file is dual-licensed: you can use it either under the terms
  8. * of the GPL or the X11 license, at your option. Note that this dual
  9. * licensing only applies to this file, and not this project as a
  10. * whole.
  11. *
  12. * a) This file is free software; you can redistribute it and/or
  13. * modify it under the terms of the GNU General Public License as
  14. * published by the Free Software Foundation; either version 2 of the
  15. * License, or (at your option) any later version.
  16. *
  17. * This file is distributed in the hope that it will be useful,
  18. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  19. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  20. * GNU General Public License for more details.
  21. *
  22. * Or, alternatively,
  23. *
  24. * b) Permission is hereby granted, free of charge, to any person
  25. * obtaining a copy of this software and associated documentation
  26. * files (the "Software"), to deal in the Software without
  27. * restriction, including without limitation the rights to use,
  28. * copy, modify, merge, publish, distribute, sublicense, and/or
  29. * sell copies of the Software, and to permit persons to whom the
  30. * Software is furnished to do so, subject to the following
  31. * conditions:
  32. *
  33. * The above copyright notice and this permission notice shall be
  34. * included in all copies or substantial portions of the Software.
  35. *
  36. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  37. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  38. * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  39. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  40. * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  41. * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  42. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  43. * OTHER DEALINGS IN THE SOFTWARE.
  44. */
  45. #include "skeleton.dtsi"
  46. #include <dt-bindings/dma/at91.h>
  47. #include <dt-bindings/interrupt-controller/irq.h>
  48. #include <dt-bindings/clock/at91.h>
  49. / {
  50. model = "Atmel SAMA5D2 family SoC";
  51. compatible = "atmel,sama5d2";
  52. interrupt-parent = <&aic>;
  53. aliases {
  54. serial0 = &uart1;
  55. serial1 = &uart3;
  56. tcb0 = &tcb0;
  57. tcb1 = &tcb1;
  58. };
  59. cpus {
  60. #address-cells = <1>;
  61. #size-cells = <0>;
  62. cpu@0 {
  63. device_type = "cpu";
  64. compatible = "arm,cortex-a5";
  65. reg = <0>;
  66. next-level-cache = <&L2>;
  67. };
  68. };
  69. pmu {
  70. compatible = "arm,cortex-a5-pmu";
  71. interrupts = <2 IRQ_TYPE_LEVEL_HIGH 0>;
  72. };
  73. etb {
  74. compatible = "arm,coresight-etb10", "arm,primecell";
  75. reg = <0x740000 0x1000>;
  76. clocks = <&mck>;
  77. clock-names = "apb_pclk";
  78. port {
  79. etb_in: endpoint {
  80. slave-mode;
  81. remote-endpoint = <&etm_out>;
  82. };
  83. };
  84. };
  85. etm {
  86. compatible = "arm,coresight-etm3x", "arm,primecell";
  87. reg = <0x73C000 0x1000>;
  88. clocks = <&mck>;
  89. clock-names = "apb_pclk";
  90. port {
  91. etm_out: endpoint {
  92. remote-endpoint = <&etb_in>;
  93. };
  94. };
  95. };
  96. memory {
  97. reg = <0x20000000 0x20000000>;
  98. };
  99. clocks {
  100. slow_xtal: slow_xtal {
  101. compatible = "fixed-clock";
  102. #clock-cells = <0>;
  103. clock-frequency = <0>;
  104. };
  105. main_xtal: main_xtal {
  106. compatible = "fixed-clock";
  107. #clock-cells = <0>;
  108. clock-frequency = <0>;
  109. };
  110. };
  111. ns_sram: sram@00200000 {
  112. compatible = "mmio-sram";
  113. reg = <0x00200000 0x20000>;
  114. };
  115. ahb {
  116. compatible = "simple-bus";
  117. #address-cells = <1>;
  118. #size-cells = <1>;
  119. ranges;
  120. nfc_sram: sram@00100000 {
  121. compatible = "mmio-sram";
  122. no-memory-wc;
  123. reg = <0x00100000 0x2400>;
  124. };
  125. usb0: gadget@00300000 {
  126. #address-cells = <1>;
  127. #size-cells = <0>;
  128. compatible = "atmel,sama5d3-udc";
  129. reg = <0x00300000 0x100000
  130. 0xfc02c000 0x400>;
  131. interrupts = <42 IRQ_TYPE_LEVEL_HIGH 2>;
  132. clocks = <&udphs_clk>, <&utmi>;
  133. clock-names = "pclk", "hclk";
  134. status = "disabled";
  135. ep@0 {
  136. reg = <0>;
  137. atmel,fifo-size = <64>;
  138. atmel,nb-banks = <1>;
  139. };
  140. ep@1 {
  141. reg = <1>;
  142. atmel,fifo-size = <1024>;
  143. atmel,nb-banks = <3>;
  144. atmel,can-dma;
  145. atmel,can-isoc;
  146. };
  147. ep@2 {
  148. reg = <2>;
  149. atmel,fifo-size = <1024>;
  150. atmel,nb-banks = <3>;
  151. atmel,can-dma;
  152. atmel,can-isoc;
  153. };
  154. ep@3 {
  155. reg = <3>;
  156. atmel,fifo-size = <1024>;
  157. atmel,nb-banks = <2>;
  158. atmel,can-dma;
  159. atmel,can-isoc;
  160. };
  161. ep@4 {
  162. reg = <4>;
  163. atmel,fifo-size = <1024>;
  164. atmel,nb-banks = <2>;
  165. atmel,can-dma;
  166. atmel,can-isoc;
  167. };
  168. ep@5 {
  169. reg = <5>;
  170. atmel,fifo-size = <1024>;
  171. atmel,nb-banks = <2>;
  172. atmel,can-dma;
  173. atmel,can-isoc;
  174. };
  175. ep@6 {
  176. reg = <6>;
  177. atmel,fifo-size = <1024>;
  178. atmel,nb-banks = <2>;
  179. atmel,can-dma;
  180. atmel,can-isoc;
  181. };
  182. ep@7 {
  183. reg = <7>;
  184. atmel,fifo-size = <1024>;
  185. atmel,nb-banks = <2>;
  186. atmel,can-dma;
  187. atmel,can-isoc;
  188. };
  189. ep@8 {
  190. reg = <8>;
  191. atmel,fifo-size = <1024>;
  192. atmel,nb-banks = <2>;
  193. atmel,can-isoc;
  194. };
  195. ep@9 {
  196. reg = <9>;
  197. atmel,fifo-size = <1024>;
  198. atmel,nb-banks = <2>;
  199. atmel,can-isoc;
  200. };
  201. ep@10 {
  202. reg = <10>;
  203. atmel,fifo-size = <1024>;
  204. atmel,nb-banks = <2>;
  205. atmel,can-isoc;
  206. };
  207. ep@11 {
  208. reg = <11>;
  209. atmel,fifo-size = <1024>;
  210. atmel,nb-banks = <2>;
  211. atmel,can-isoc;
  212. };
  213. ep@12 {
  214. reg = <12>;
  215. atmel,fifo-size = <1024>;
  216. atmel,nb-banks = <2>;
  217. atmel,can-isoc;
  218. };
  219. ep@13 {
  220. reg = <13>;
  221. atmel,fifo-size = <1024>;
  222. atmel,nb-banks = <2>;
  223. atmel,can-isoc;
  224. };
  225. ep@14 {
  226. reg = <14>;
  227. atmel,fifo-size = <1024>;
  228. atmel,nb-banks = <2>;
  229. atmel,can-isoc;
  230. };
  231. ep@15 {
  232. reg = <15>;
  233. atmel,fifo-size = <1024>;
  234. atmel,nb-banks = <2>;
  235. atmel,can-isoc;
  236. };
  237. };
  238. usb1: ohci@00400000 {
  239. compatible = "atmel,at91rm9200-ohci", "usb-ohci";
  240. reg = <0x00400000 0x100000>;
  241. interrupts = <41 IRQ_TYPE_LEVEL_HIGH 2>;
  242. clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
  243. clock-names = "ohci_clk", "hclk", "uhpck";
  244. status = "disabled";
  245. };
  246. usb2: ehci@00500000 {
  247. compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
  248. reg = <0x00500000 0x100000>;
  249. interrupts = <41 IRQ_TYPE_LEVEL_HIGH 2>;
  250. clocks = <&utmi>, <&uhphs_clk>;
  251. clock-names = "usb_clk", "ehci_clk";
  252. status = "disabled";
  253. };
  254. L2: cache-controller@00a00000 {
  255. compatible = "arm,pl310-cache";
  256. reg = <0x00a00000 0x1000>;
  257. interrupts = <63 IRQ_TYPE_LEVEL_HIGH 4>;
  258. cache-unified;
  259. cache-level = <2>;
  260. };
  261. ebi: ebi@10000000 {
  262. compatible = "atmel,sama5d3-ebi";
  263. #address-cells = <2>;
  264. #size-cells = <1>;
  265. atmel,smc = <&hsmc>;
  266. reg = <0x10000000 0x10000000
  267. 0x60000000 0x30000000>;
  268. ranges = <0x0 0x0 0x10000000 0x10000000
  269. 0x1 0x0 0x60000000 0x10000000
  270. 0x2 0x0 0x70000000 0x10000000
  271. 0x3 0x0 0x80000000 0x10000000>;
  272. clocks = <&mck>;
  273. status = "disabled";
  274. nand_controller: nand-controller {
  275. compatible = "atmel,sama5d3-nand-controller";
  276. atmel,nfc-sram = <&nfc_sram>;
  277. atmel,nfc-io = <&nfc_io>;
  278. ecc-engine = <&pmecc>;
  279. #address-cells = <2>;
  280. #size-cells = <1>;
  281. ranges;
  282. status = "disabled";
  283. };
  284. };
  285. nand0: nand@80000000 {
  286. compatible = "atmel,sama5d2-nand";
  287. #address-cells = <1>;
  288. #size-cells = <1>;
  289. ranges;
  290. reg = < /* EBI CS3 */
  291. 0x80000000 0x08000000
  292. /* SMC PMECC regs */
  293. 0xf8014070 0x00000490
  294. /* SMC PMECC Error Location regs */
  295. 0xf8014500 0x00000200
  296. /* ROM Galois tables */
  297. 0x00040000 0x00018000
  298. >;
  299. interrupts = <17 IRQ_TYPE_LEVEL_HIGH 6>;
  300. atmel,nand-addr-offset = <21>;
  301. atmel,nand-cmd-offset = <22>;
  302. atmel,nand-has-dma;
  303. atmel,has-pmecc;
  304. atmel,pmecc-lookup-table-offset = <0x0 0x8000>;
  305. status = "disabled";
  306. nfc@c0000000 {
  307. compatible = "atmel,sama5d3-nfc";
  308. #address-cells = <1>;
  309. #size-cells = <1>;
  310. reg = < /* NFC Command Registers */
  311. 0xc0000000 0x08000000
  312. /* NFC HSMC regs */
  313. 0xf8014000 0x00000070
  314. /* NFC SRAM banks */
  315. 0x00100000 0x00100000
  316. >;
  317. clocks = <&hsmc_clk>;
  318. atmel,write-by-sram;
  319. };
  320. };
  321. sdmmc0: sdio-host@a0000000 {
  322. compatible = "atmel,sama5d2-sdhci";
  323. reg = <0xa0000000 0x300>;
  324. interrupts = <31 IRQ_TYPE_LEVEL_HIGH 0>;
  325. clocks = <&sdmmc0_hclk>, <&sdmmc0_gclk>, <&main>;
  326. clock-names = "hclock", "multclk", "baseclk";
  327. status = "disabled";
  328. };
  329. sdmmc1: sdio-host@b0000000 {
  330. compatible = "atmel,sama5d2-sdhci";
  331. reg = <0xb0000000 0x300>;
  332. interrupts = <32 IRQ_TYPE_LEVEL_HIGH 0>;
  333. clocks = <&sdmmc1_hclk>, <&sdmmc1_gclk>, <&main>;
  334. clock-names = "hclock", "multclk", "baseclk";
  335. status = "disabled";
  336. };
  337. nfc_io: nfc-io@c0000000 {
  338. compatible = "atmel,sama5d3-nfc-io", "syscon";
  339. reg = <0xc0000000 0x8000000>;
  340. };
  341. apb {
  342. compatible = "simple-bus";
  343. #address-cells = <1>;
  344. #size-cells = <1>;
  345. ranges;
  346. hlcdc: hlcdc@f0000000 {
  347. compatible = "atmel,sama5d2-hlcdc";
  348. reg = <0xf0000000 0x2000>;
  349. interrupts = <45 IRQ_TYPE_LEVEL_HIGH 0>;
  350. clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;
  351. clock-names = "periph_clk","sys_clk", "slow_clk";
  352. status = "disabled";
  353. hlcdc-display-controller {
  354. compatible = "atmel,hlcdc-display-controller";
  355. #address-cells = <1>;
  356. #size-cells = <0>;
  357. port@0 {
  358. #address-cells = <1>;
  359. #size-cells = <0>;
  360. reg = <0>;
  361. };
  362. };
  363. hlcdc_pwm: hlcdc-pwm {
  364. compatible = "atmel,hlcdc-pwm";
  365. #pwm-cells = <3>;
  366. };
  367. };
  368. isc: isc@f0008000 {
  369. compatible = "atmel,sama5d2-isc";
  370. reg = <0xf0008000 0x4000>;
  371. interrupts = <46 IRQ_TYPE_LEVEL_HIGH 5>;
  372. clocks = <&isc_clk>, <&iscck>, <&isc_gclk>;
  373. clock-names = "hclock", "iscck", "gck";
  374. #clock-cells = <0>;
  375. clock-output-names = "isc-mck";
  376. status = "disabled";
  377. };
  378. ramc0: ramc@f000c000 {
  379. compatible = "atmel,sama5d3-ddramc";
  380. reg = <0xf000c000 0x200>;
  381. clocks = <&ddrck>, <&mpddr_clk>;
  382. clock-names = "ddrck", "mpddr";
  383. };
  384. dma0: dma-controller@f0010000 {
  385. compatible = "atmel,sama5d4-dma";
  386. reg = <0xf0010000 0x1000>;
  387. interrupts = <6 IRQ_TYPE_LEVEL_HIGH 0>;
  388. #dma-cells = <1>;
  389. clocks = <&dma0_clk>;
  390. clock-names = "dma_clk";
  391. };
  392. /* Place dma1 here despite its address */
  393. dma1: dma-controller@f0004000 {
  394. compatible = "atmel,sama5d4-dma";
  395. reg = <0xf0004000 0x1000>;
  396. interrupts = <7 IRQ_TYPE_LEVEL_HIGH 0>;
  397. #dma-cells = <1>;
  398. clocks = <&dma1_clk>;
  399. clock-names = "dma_clk";
  400. };
  401. pmc: pmc@f0014000 {
  402. compatible = "atmel,sama5d2-pmc", "syscon";
  403. reg = <0xf0014000 0x160>;
  404. interrupts = <74 IRQ_TYPE_LEVEL_HIGH 7>;
  405. interrupt-controller;
  406. #address-cells = <1>;
  407. #size-cells = <0>;
  408. #interrupt-cells = <1>;
  409. main_rc_osc: main_rc_osc {
  410. compatible = "atmel,at91sam9x5-clk-main-rc-osc";
  411. #clock-cells = <0>;
  412. interrupt-parent = <&pmc>;
  413. interrupts = <AT91_PMC_MOSCRCS>;
  414. clock-frequency = <12000000>;
  415. clock-accuracy = <100000000>;
  416. };
  417. main_osc: main_osc {
  418. compatible = "atmel,at91rm9200-clk-main-osc";
  419. #clock-cells = <0>;
  420. interrupt-parent = <&pmc>;
  421. interrupts = <AT91_PMC_MOSCS>;
  422. clocks = <&main_xtal>;
  423. };
  424. main: mainck {
  425. compatible = "atmel,at91sam9x5-clk-main";
  426. #clock-cells = <0>;
  427. interrupt-parent = <&pmc>;
  428. interrupts = <AT91_PMC_MOSCSELS>;
  429. clocks = <&main_rc_osc &main_osc>;
  430. };
  431. plla: pllack {
  432. compatible = "atmel,sama5d3-clk-pll";
  433. #clock-cells = <0>;
  434. interrupt-parent = <&pmc>;
  435. interrupts = <AT91_PMC_LOCKA>;
  436. clocks = <&main>;
  437. reg = <0>;
  438. atmel,clk-input-range = <12000000 12000000>;
  439. #atmel,pll-clk-output-range-cells = <4>;
  440. atmel,pll-clk-output-ranges = <600000000 1200000000 0 0>;
  441. };
  442. plladiv: plladivck {
  443. compatible = "atmel,at91sam9x5-clk-plldiv";
  444. #clock-cells = <0>;
  445. clocks = <&plla>;
  446. };
  447. audio_pll_frac: audiopll_fracck {
  448. compatible = "atmel,sama5d2-clk-audio-pll-frac";
  449. #clock-cells = <0>;
  450. clocks = <&main>;
  451. };
  452. audio_pll_pad: audiopll_padck {
  453. compatible = "atmel,sama5d2-clk-audio-pll-pad";
  454. #clock-cells = <0>;
  455. clocks = <&audio_pll_frac>;
  456. };
  457. audio_pll_pmc: audiopll_pmcck {
  458. compatible = "atmel,sama5d2-clk-audio-pll-pmc";
  459. #clock-cells = <0>;
  460. clocks = <&audio_pll_frac>;
  461. };
  462. utmi: utmick {
  463. compatible = "atmel,at91sam9x5-clk-utmi";
  464. #clock-cells = <0>;
  465. interrupt-parent = <&pmc>;
  466. interrupts = <AT91_PMC_LOCKU>;
  467. clocks = <&main>;
  468. };
  469. mck: masterck {
  470. compatible = "atmel,at91sam9x5-clk-master";
  471. #clock-cells = <0>;
  472. interrupt-parent = <&pmc>;
  473. interrupts = <AT91_PMC_MCKRDY>;
  474. clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>;
  475. atmel,clk-output-range = <124000000 166000000>;
  476. atmel,clk-divisors = <1 2 4 3>;
  477. };
  478. h32ck: h32mxck {
  479. #clock-cells = <0>;
  480. compatible = "atmel,sama5d4-clk-h32mx";
  481. clocks = <&mck>;
  482. };
  483. usb: usbck {
  484. compatible = "atmel,at91sam9x5-clk-usb";
  485. #clock-cells = <0>;
  486. clocks = <&plladiv>, <&utmi>;
  487. };
  488. prog: progck {
  489. compatible = "atmel,at91sam9x5-clk-programmable";
  490. #address-cells = <1>;
  491. #size-cells = <0>;
  492. interrupt-parent = <&pmc>;
  493. clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>, <&mck>;
  494. prog0: prog0 {
  495. #clock-cells = <0>;
  496. reg = <0>;
  497. interrupts = <AT91_PMC_PCKRDY(0)>;
  498. };
  499. prog1: prog1 {
  500. #clock-cells = <0>;
  501. reg = <1>;
  502. interrupts = <AT91_PMC_PCKRDY(1)>;
  503. };
  504. prog2: prog2 {
  505. #clock-cells = <0>;
  506. reg = <2>;
  507. interrupts = <AT91_PMC_PCKRDY(2)>;
  508. };
  509. };
  510. systemck {
  511. compatible = "atmel,at91rm9200-clk-system";
  512. #address-cells = <1>;
  513. #size-cells = <0>;
  514. ddrck: ddrck {
  515. #clock-cells = <0>;
  516. reg = <2>;
  517. clocks = <&mck>;
  518. };
  519. lcdck: lcdck {
  520. #clock-cells = <0>;
  521. reg = <3>;
  522. clocks = <&mck>;
  523. };
  524. uhpck: uhpck {
  525. #clock-cells = <0>;
  526. reg = <6>;
  527. clocks = <&usb>;
  528. };
  529. udpck: udpck {
  530. #clock-cells = <0>;
  531. reg = <7>;
  532. clocks = <&usb>;
  533. };
  534. pck0: pck0 {
  535. #clock-cells = <0>;
  536. reg = <8>;
  537. clocks = <&prog0>;
  538. };
  539. pck1: pck1 {
  540. #clock-cells = <0>;
  541. reg = <9>;
  542. clocks = <&prog1>;
  543. };
  544. pck2: pck2 {
  545. #clock-cells = <0>;
  546. reg = <10>;
  547. clocks = <&prog2>;
  548. };
  549. iscck: iscck {
  550. #clock-cells = <0>;
  551. reg = <18>;
  552. clocks = <&mck>;
  553. };
  554. };
  555. periph32ck {
  556. compatible = "atmel,at91sam9x5-clk-peripheral";
  557. #address-cells = <1>;
  558. #size-cells = <0>;
  559. clocks = <&h32ck>;
  560. macb0_clk: macb0_clk {
  561. #clock-cells = <0>;
  562. reg = <5>;
  563. atmel,clk-output-range = <0 83000000>;
  564. };
  565. tdes_clk: tdes_clk {
  566. #clock-cells = <0>;
  567. reg = <11>;
  568. atmel,clk-output-range = <0 83000000>;
  569. };
  570. matrix1_clk: matrix1_clk {
  571. #clock-cells = <0>;
  572. reg = <14>;
  573. };
  574. hsmc_clk: hsmc_clk {
  575. #clock-cells = <0>;
  576. reg = <17>;
  577. };
  578. pioA_clk: pioA_clk {
  579. #clock-cells = <0>;
  580. reg = <18>;
  581. atmel,clk-output-range = <0 83000000>;
  582. };
  583. flx0_clk: flx0_clk {
  584. #clock-cells = <0>;
  585. reg = <19>;
  586. atmel,clk-output-range = <0 83000000>;
  587. };
  588. flx1_clk: flx1_clk {
  589. #clock-cells = <0>;
  590. reg = <20>;
  591. atmel,clk-output-range = <0 83000000>;
  592. };
  593. flx2_clk: flx2_clk {
  594. #clock-cells = <0>;
  595. reg = <21>;
  596. atmel,clk-output-range = <0 83000000>;
  597. };
  598. flx3_clk: flx3_clk {
  599. #clock-cells = <0>;
  600. reg = <22>;
  601. atmel,clk-output-range = <0 83000000>;
  602. };
  603. flx4_clk: flx4_clk {
  604. #clock-cells = <0>;
  605. reg = <23>;
  606. atmel,clk-output-range = <0 83000000>;
  607. };
  608. uart0_clk: uart0_clk {
  609. #clock-cells = <0>;
  610. reg = <24>;
  611. atmel,clk-output-range = <0 83000000>;
  612. };
  613. uart1_clk: uart1_clk {
  614. #clock-cells = <0>;
  615. reg = <25>;
  616. atmel,clk-output-range = <0 83000000>;
  617. };
  618. uart2_clk: uart2_clk {
  619. #clock-cells = <0>;
  620. reg = <26>;
  621. atmel,clk-output-range = <0 83000000>;
  622. };
  623. uart3_clk: uart3_clk {
  624. #clock-cells = <0>;
  625. reg = <27>;
  626. atmel,clk-output-range = <0 83000000>;
  627. };
  628. uart4_clk: uart4_clk {
  629. #clock-cells = <0>;
  630. reg = <28>;
  631. atmel,clk-output-range = <0 83000000>;
  632. };
  633. twi0_clk: twi0_clk {
  634. reg = <29>;
  635. #clock-cells = <0>;
  636. atmel,clk-output-range = <0 83000000>;
  637. };
  638. twi1_clk: twi1_clk {
  639. #clock-cells = <0>;
  640. reg = <30>;
  641. atmel,clk-output-range = <0 83000000>;
  642. };
  643. spi0_clk: spi0_clk {
  644. #clock-cells = <0>;
  645. reg = <33>;
  646. atmel,clk-output-range = <0 83000000>;
  647. };
  648. spi1_clk: spi1_clk {
  649. #clock-cells = <0>;
  650. reg = <34>;
  651. atmel,clk-output-range = <0 83000000>;
  652. };
  653. tcb0_clk: tcb0_clk {
  654. #clock-cells = <0>;
  655. reg = <35>;
  656. atmel,clk-output-range = <0 83000000>;
  657. };
  658. tcb1_clk: tcb1_clk {
  659. #clock-cells = <0>;
  660. reg = <36>;
  661. atmel,clk-output-range = <0 83000000>;
  662. };
  663. pwm_clk: pwm_clk {
  664. #clock-cells = <0>;
  665. reg = <38>;
  666. atmel,clk-output-range = <0 83000000>;
  667. };
  668. adc_clk: adc_clk {
  669. #clock-cells = <0>;
  670. reg = <40>;
  671. atmel,clk-output-range = <0 83000000>;
  672. };
  673. uhphs_clk: uhphs_clk {
  674. #clock-cells = <0>;
  675. reg = <41>;
  676. atmel,clk-output-range = <0 83000000>;
  677. };
  678. udphs_clk: udphs_clk {
  679. #clock-cells = <0>;
  680. reg = <42>;
  681. atmel,clk-output-range = <0 83000000>;
  682. };
  683. ssc0_clk: ssc0_clk {
  684. #clock-cells = <0>;
  685. reg = <43>;
  686. atmel,clk-output-range = <0 83000000>;
  687. };
  688. ssc1_clk: ssc1_clk {
  689. #clock-cells = <0>;
  690. reg = <44>;
  691. atmel,clk-output-range = <0 83000000>;
  692. };
  693. trng_clk: trng_clk {
  694. #clock-cells = <0>;
  695. reg = <47>;
  696. atmel,clk-output-range = <0 83000000>;
  697. };
  698. pdmic_clk: pdmic_clk {
  699. #clock-cells = <0>;
  700. reg = <48>;
  701. atmel,clk-output-range = <0 83000000>;
  702. };
  703. securam_clk: securam_clk {
  704. #clock-cells = <0>;
  705. reg = <51>;
  706. };
  707. i2s0_clk: i2s0_clk {
  708. #clock-cells = <0>;
  709. reg = <54>;
  710. atmel,clk-output-range = <0 83000000>;
  711. };
  712. i2s1_clk: i2s1_clk {
  713. #clock-cells = <0>;
  714. reg = <55>;
  715. atmel,clk-output-range = <0 83000000>;
  716. };
  717. can0_clk: can0_clk {
  718. #clock-cells = <0>;
  719. reg = <56>;
  720. atmel,clk-output-range = <0 83000000>;
  721. };
  722. can1_clk: can1_clk {
  723. #clock-cells = <0>;
  724. reg = <57>;
  725. atmel,clk-output-range = <0 83000000>;
  726. };
  727. classd_clk: classd_clk {
  728. #clock-cells = <0>;
  729. reg = <59>;
  730. atmel,clk-output-range = <0 83000000>;
  731. };
  732. };
  733. periph64ck {
  734. compatible = "atmel,at91sam9x5-clk-peripheral";
  735. #address-cells = <1>;
  736. #size-cells = <0>;
  737. clocks = <&mck>;
  738. dma0_clk: dma0_clk {
  739. #clock-cells = <0>;
  740. reg = <6>;
  741. };
  742. dma1_clk: dma1_clk {
  743. #clock-cells = <0>;
  744. reg = <7>;
  745. };
  746. aes_clk: aes_clk {
  747. #clock-cells = <0>;
  748. reg = <9>;
  749. };
  750. aesb_clk: aesb_clk {
  751. #clock-cells = <0>;
  752. reg = <10>;
  753. };
  754. sha_clk: sha_clk {
  755. #clock-cells = <0>;
  756. reg = <12>;
  757. };
  758. mpddr_clk: mpddr_clk {
  759. #clock-cells = <0>;
  760. reg = <13>;
  761. };
  762. matrix0_clk: matrix0_clk {
  763. #clock-cells = <0>;
  764. reg = <15>;
  765. };
  766. sdmmc0_hclk: sdmmc0_hclk {
  767. #clock-cells = <0>;
  768. reg = <31>;
  769. };
  770. sdmmc1_hclk: sdmmc1_hclk {
  771. #clock-cells = <0>;
  772. reg = <32>;
  773. };
  774. lcdc_clk: lcdc_clk {
  775. #clock-cells = <0>;
  776. reg = <45>;
  777. };
  778. isc_clk: isc_clk {
  779. #clock-cells = <0>;
  780. reg = <46>;
  781. };
  782. qspi0_clk: qspi0_clk {
  783. #clock-cells = <0>;
  784. reg = <52>;
  785. };
  786. qspi1_clk: qspi1_clk {
  787. #clock-cells = <0>;
  788. reg = <53>;
  789. };
  790. };
  791. gck {
  792. compatible = "atmel,sama5d2-clk-generated";
  793. #address-cells = <1>;
  794. #size-cells = <0>;
  795. interrupt-parent = <&pmc>;
  796. clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>, <&mck>, <&audio_pll_pmc>;
  797. sdmmc0_gclk: sdmmc0_gclk {
  798. #clock-cells = <0>;
  799. reg = <31>;
  800. };
  801. sdmmc1_gclk: sdmmc1_gclk {
  802. #clock-cells = <0>;
  803. reg = <32>;
  804. };
  805. tcb0_gclk: tcb0_gclk {
  806. #clock-cells = <0>;
  807. reg = <35>;
  808. atmel,clk-output-range = <0 83000000>;
  809. };
  810. tcb1_gclk: tcb1_gclk {
  811. #clock-cells = <0>;
  812. reg = <36>;
  813. atmel,clk-output-range = <0 83000000>;
  814. };
  815. pwm_gclk: pwm_gclk {
  816. #clock-cells = <0>;
  817. reg = <38>;
  818. atmel,clk-output-range = <0 83000000>;
  819. };
  820. isc_gclk: isc_gclk {
  821. #clock-cells = <0>;
  822. reg = <46>;
  823. };
  824. pdmic_gclk: pdmic_gclk {
  825. #clock-cells = <0>;
  826. reg = <48>;
  827. };
  828. i2s0_gclk: i2s0_gclk {
  829. #clock-cells = <0>;
  830. reg = <54>;
  831. };
  832. i2s1_gclk: i2s1_gclk {
  833. #clock-cells = <0>;
  834. reg = <55>;
  835. };
  836. can0_gclk: can0_gclk {
  837. #clock-cells = <0>;
  838. reg = <56>;
  839. atmel,clk-output-range = <0 80000000>;
  840. };
  841. can1_gclk: can1_gclk {
  842. #clock-cells = <0>;
  843. reg = <57>;
  844. atmel,clk-output-range = <0 80000000>;
  845. };
  846. classd_gclk: classd_gclk {
  847. #clock-cells = <0>;
  848. reg = <59>;
  849. atmel,clk-output-range = <0 100000000>;
  850. };
  851. };
  852. };
  853. qspi0: spi@f0020000 {
  854. compatible = "atmel,sama5d2-qspi";
  855. reg = <0xf0020000 0x100>, <0xd0000000 0x08000000>;
  856. reg-names = "qspi_base", "qspi_mmap";
  857. interrupts = <52 IRQ_TYPE_LEVEL_HIGH 7>;
  858. clocks = <&qspi0_clk>;
  859. #address-cells = <1>;
  860. #size-cells = <0>;
  861. status = "disabled";
  862. };
  863. qspi1: spi@f0024000 {
  864. compatible = "atmel,sama5d2-qspi";
  865. reg = <0xf0024000 0x100>, <0xd8000000 0x08000000>;
  866. reg-names = "qspi_base", "qspi_mmap";
  867. interrupts = <53 IRQ_TYPE_LEVEL_HIGH 7>;
  868. clocks = <&qspi1_clk>;
  869. #address-cells = <1>;
  870. #size-cells = <0>;
  871. status = "disabled";
  872. };
  873. sha@f0028000 {
  874. compatible = "atmel,at91sam9g46-sha";
  875. reg = <0xf0028000 0x100>;
  876. interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>;
  877. dmas = <&dma0
  878. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  879. AT91_XDMAC_DT_PERID(30))>;
  880. dma-names = "tx";
  881. clocks = <&sha_clk>;
  882. clock-names = "sha_clk";
  883. status = "okay";
  884. };
  885. aes@f002c000 {
  886. compatible = "atmel,at91sam9g46-aes";
  887. reg = <0xf002c000 0x100>;
  888. interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>;
  889. dmas = <&dma0
  890. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  891. AT91_XDMAC_DT_PERID(26))>,
  892. <&dma0
  893. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  894. AT91_XDMAC_DT_PERID(27))>;
  895. dma-names = "tx", "rx";
  896. clocks = <&aes_clk>;
  897. clock-names = "aes_clk";
  898. status = "okay";
  899. };
  900. spi0: spi@f8000000 {
  901. compatible = "atmel,at91rm9200-spi";
  902. reg = <0xf8000000 0x100>;
  903. interrupts = <33 IRQ_TYPE_LEVEL_HIGH 7>;
  904. dmas = <&dma0
  905. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  906. AT91_XDMAC_DT_PERID(6))>,
  907. <&dma0
  908. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  909. AT91_XDMAC_DT_PERID(7))>;
  910. dma-names = "tx", "rx";
  911. clocks = <&spi0_clk>;
  912. clock-names = "spi_clk";
  913. atmel,fifo-size = <16>;
  914. #address-cells = <1>;
  915. #size-cells = <0>;
  916. status = "disabled";
  917. };
  918. ssc0: ssc@f8004000 {
  919. compatible = "atmel,at91sam9g45-ssc";
  920. reg = <0xf8004000 0x4000>;
  921. interrupts = <43 IRQ_TYPE_LEVEL_HIGH 4>;
  922. dmas = <&dma0
  923. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  924. AT91_XDMAC_DT_PERID(21))>,
  925. <&dma0
  926. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  927. AT91_XDMAC_DT_PERID(22))>;
  928. dma-names = "tx", "rx";
  929. clocks = <&ssc0_clk>;
  930. clock-names = "pclk";
  931. status = "disabled";
  932. };
  933. macb0: ethernet@f8008000 {
  934. compatible = "atmel,sama5d2-gem";
  935. reg = <0xf8008000 0x1000>;
  936. interrupts = <5 IRQ_TYPE_LEVEL_HIGH 3 /* Queue 0 */
  937. 66 IRQ_TYPE_LEVEL_HIGH 3 /* Queue 1 */
  938. 67 IRQ_TYPE_LEVEL_HIGH 3>; /* Queue 2 */
  939. #address-cells = <1>;
  940. #size-cells = <0>;
  941. clocks = <&macb0_clk>, <&macb0_clk>;
  942. clock-names = "hclk", "pclk";
  943. status = "disabled";
  944. };
  945. tcb0: timer@f800c000 {
  946. compatible = "atmel,at91sam9x5-tcb";
  947. reg = <0xf800c000 0x100>;
  948. interrupts = <35 IRQ_TYPE_LEVEL_HIGH 0>;
  949. clocks = <&tcb0_clk>, <&clk32k>;
  950. clock-names = "t0_clk", "slow_clk";
  951. };
  952. tcb1: timer@f8010000 {
  953. compatible = "atmel,at91sam9x5-tcb";
  954. reg = <0xf8010000 0x100>;
  955. interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;
  956. clocks = <&tcb1_clk>, <&clk32k>;
  957. clock-names = "t0_clk", "slow_clk";
  958. };
  959. hsmc: hsmc@f8014000 {
  960. compatible = "atmel,sama5d2-smc", "syscon", "simple-mfd";
  961. reg = <0xf8014000 0x1000>;
  962. interrupts = <17 IRQ_TYPE_LEVEL_HIGH 6>;
  963. clocks = <&hsmc_clk>;
  964. #address-cells = <1>;
  965. #size-cells = <1>;
  966. ranges;
  967. pmecc: ecc-engine@f8014070 {
  968. compatible = "atmel,sama5d2-pmecc";
  969. reg = <0xf8014070 0x490>,
  970. <0xf8014500 0x100>;
  971. };
  972. };
  973. pdmic: pdmic@f8018000 {
  974. compatible = "atmel,sama5d2-pdmic";
  975. reg = <0xf8018000 0x124>;
  976. interrupts = <48 IRQ_TYPE_LEVEL_HIGH 7>;
  977. dmas = <&dma0
  978. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
  979. | AT91_XDMAC_DT_PERID(50))>;
  980. dma-names = "rx";
  981. clocks = <&pdmic_clk>, <&pdmic_gclk>;
  982. clock-names = "pclk", "gclk";
  983. status = "disabled";
  984. };
  985. uart0: serial@f801c000 {
  986. compatible = "atmel,at91sam9260-usart";
  987. reg = <0xf801c000 0x100>;
  988. interrupts = <24 IRQ_TYPE_LEVEL_HIGH 7>;
  989. dmas = <&dma0
  990. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  991. AT91_XDMAC_DT_PERID(35))>,
  992. <&dma0
  993. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  994. AT91_XDMAC_DT_PERID(36))>;
  995. dma-names = "tx", "rx";
  996. clocks = <&uart0_clk>;
  997. clock-names = "usart";
  998. status = "disabled";
  999. };
  1000. uart1: serial@f8020000 {
  1001. compatible = "atmel,at91sam9260-usart";
  1002. reg = <0xf8020000 0x100>;
  1003. interrupts = <25 IRQ_TYPE_LEVEL_HIGH 7>;
  1004. dmas = <&dma0
  1005. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1006. AT91_XDMAC_DT_PERID(37))>,
  1007. <&dma0
  1008. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1009. AT91_XDMAC_DT_PERID(38))>;
  1010. dma-names = "tx", "rx";
  1011. clocks = <&uart1_clk>;
  1012. clock-names = "usart";
  1013. status = "disabled";
  1014. };
  1015. uart2: serial@f8024000 {
  1016. compatible = "atmel,at91sam9260-usart";
  1017. reg = <0xf8024000 0x100>;
  1018. interrupts = <26 IRQ_TYPE_LEVEL_HIGH 7>;
  1019. dmas = <&dma0
  1020. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1021. AT91_XDMAC_DT_PERID(39))>,
  1022. <&dma0
  1023. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1024. AT91_XDMAC_DT_PERID(40))>;
  1025. dma-names = "tx", "rx";
  1026. clocks = <&uart2_clk>;
  1027. clock-names = "usart";
  1028. status = "disabled";
  1029. };
  1030. i2c0: i2c@f8028000 {
  1031. compatible = "atmel,sama5d2-i2c";
  1032. reg = <0xf8028000 0x100>;
  1033. interrupts = <29 IRQ_TYPE_LEVEL_HIGH 7>;
  1034. dmas = <&dma0
  1035. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1036. AT91_XDMAC_DT_PERID(0))>,
  1037. <&dma0
  1038. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1039. AT91_XDMAC_DT_PERID(1))>;
  1040. dma-names = "tx", "rx";
  1041. #address-cells = <1>;
  1042. #size-cells = <0>;
  1043. clocks = <&twi0_clk>;
  1044. atmel,fifo-size = <16>;
  1045. status = "disabled";
  1046. };
  1047. pwm0: pwm@f802c000 {
  1048. compatible = "atmel,sama5d2-pwm";
  1049. reg = <0xf802c000 0x4000>;
  1050. interrupts = <38 IRQ_TYPE_LEVEL_HIGH 7>;
  1051. #pwm-cells = <3>;
  1052. clocks = <&pwm_clk>;
  1053. };
  1054. sfr: sfr@f8030000 {
  1055. compatible = "atmel,sama5d2-sfr", "syscon";
  1056. reg = <0xf8030000 0x98>;
  1057. };
  1058. flx0: flexcom@f8034000 {
  1059. compatible = "atmel,sama5d2-flexcom";
  1060. reg = <0xf8034000 0x200>;
  1061. clocks = <&flx0_clk>;
  1062. #address-cells = <1>;
  1063. #size-cells = <1>;
  1064. ranges = <0x0 0xf8034000 0x800>;
  1065. status = "disabled";
  1066. };
  1067. flx1: flexcom@f8038000 {
  1068. compatible = "atmel,sama5d2-flexcom";
  1069. reg = <0xf8038000 0x200>;
  1070. clocks = <&flx1_clk>;
  1071. #address-cells = <1>;
  1072. #size-cells = <1>;
  1073. ranges = <0x0 0xf8038000 0x800>;
  1074. status = "disabled";
  1075. };
  1076. securam: sram@f8044000 {
  1077. compatible = "atmel,sama5d2-securam", "mmio-sram";
  1078. reg = <0xf8044000 0x1420>;
  1079. clocks = <&securam_clk>;
  1080. #address-cells = <1>;
  1081. #size-cells = <1>;
  1082. ranges = <0 0xf8044000 0x1420>;
  1083. };
  1084. rstc@f8048000 {
  1085. compatible = "atmel,sama5d3-rstc";
  1086. reg = <0xf8048000 0x10>;
  1087. clocks = <&clk32k>;
  1088. };
  1089. shdwc@f8048010 {
  1090. compatible = "atmel,sama5d2-shdwc";
  1091. reg = <0xf8048010 0x10>;
  1092. clocks = <&clk32k>;
  1093. #address-cells = <1>;
  1094. #size-cells = <0>;
  1095. atmel,wakeup-rtc-timer;
  1096. };
  1097. pit: timer@f8048030 {
  1098. compatible = "atmel,at91sam9260-pit";
  1099. reg = <0xf8048030 0x10>;
  1100. interrupts = <3 IRQ_TYPE_LEVEL_HIGH 5>;
  1101. clocks = <&h32ck>;
  1102. };
  1103. watchdog@f8048040 {
  1104. compatible = "atmel,sama5d4-wdt";
  1105. reg = <0xf8048040 0x10>;
  1106. interrupts = <4 IRQ_TYPE_LEVEL_HIGH 7>;
  1107. clocks = <&clk32k>;
  1108. status = "disabled";
  1109. };
  1110. clk32k: sckc@f8048050 {
  1111. compatible = "atmel,sama5d4-sckc";
  1112. reg = <0xf8048050 0x4>;
  1113. clocks = <&slow_xtal>;
  1114. #clock-cells = <0>;
  1115. };
  1116. rtc@f80480b0 {
  1117. compatible = "atmel,at91rm9200-rtc";
  1118. reg = <0xf80480b0 0x30>;
  1119. interrupts = <74 IRQ_TYPE_LEVEL_HIGH 7>;
  1120. clocks = <&clk32k>;
  1121. };
  1122. can0: can@f8054000 {
  1123. compatible = "bosch,m_can";
  1124. reg = <0xf8054000 0x4000>, <0x210000 0x4000>;
  1125. reg-names = "m_can", "message_ram";
  1126. interrupts = <56 IRQ_TYPE_LEVEL_HIGH 7>,
  1127. <64 IRQ_TYPE_LEVEL_HIGH 7>;
  1128. interrupt-names = "int0", "int1";
  1129. clocks = <&can0_clk>, <&can0_gclk>;
  1130. clock-names = "hclk", "cclk";
  1131. assigned-clocks = <&can0_gclk>;
  1132. assigned-clock-parents = <&utmi>;
  1133. assigned-clock-rates = <40000000>;
  1134. bosch,mram-cfg = <0x0 0 0 64 0 0 32 32>;
  1135. status = "disabled";
  1136. };
  1137. spi1: spi@fc000000 {
  1138. compatible = "atmel,at91rm9200-spi";
  1139. reg = <0xfc000000 0x100>;
  1140. interrupts = <34 IRQ_TYPE_LEVEL_HIGH 7>;
  1141. dmas = <&dma0
  1142. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1143. AT91_XDMAC_DT_PERID(8))>,
  1144. <&dma0
  1145. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1146. AT91_XDMAC_DT_PERID(9))>;
  1147. dma-names = "tx", "rx";
  1148. clocks = <&spi1_clk>;
  1149. clock-names = "spi_clk";
  1150. atmel,fifo-size = <16>;
  1151. #address-cells = <1>;
  1152. #size-cells = <0>;
  1153. status = "disabled";
  1154. };
  1155. uart3: serial@fc008000 {
  1156. compatible = "atmel,at91sam9260-usart";
  1157. reg = <0xfc008000 0x100>;
  1158. interrupts = <27 IRQ_TYPE_LEVEL_HIGH 7>;
  1159. dmas = <&dma1
  1160. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1161. AT91_XDMAC_DT_PERID(41))>,
  1162. <&dma1
  1163. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1164. AT91_XDMAC_DT_PERID(42))>;
  1165. dma-names = "tx", "rx";
  1166. clocks = <&uart3_clk>;
  1167. clock-names = "usart";
  1168. status = "disabled";
  1169. };
  1170. uart4: serial@fc00c000 {
  1171. compatible = "atmel,at91sam9260-usart";
  1172. reg = <0xfc00c000 0x100>;
  1173. dmas = <&dma0
  1174. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1175. AT91_XDMAC_DT_PERID(43))>,
  1176. <&dma0
  1177. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1178. AT91_XDMAC_DT_PERID(44))>;
  1179. dma-names = "tx", "rx";
  1180. interrupts = <28 IRQ_TYPE_LEVEL_HIGH 7>;
  1181. clocks = <&uart4_clk>;
  1182. clock-names = "usart";
  1183. status = "disabled";
  1184. };
  1185. flx2: flexcom@fc010000 {
  1186. compatible = "atmel,sama5d2-flexcom";
  1187. reg = <0xfc010000 0x200>;
  1188. clocks = <&flx2_clk>;
  1189. #address-cells = <1>;
  1190. #size-cells = <1>;
  1191. ranges = <0x0 0xfc010000 0x800>;
  1192. status = "disabled";
  1193. };
  1194. flx3: flexcom@fc014000 {
  1195. compatible = "atmel,sama5d2-flexcom";
  1196. reg = <0xfc014000 0x200>;
  1197. clocks = <&flx3_clk>;
  1198. #address-cells = <1>;
  1199. #size-cells = <1>;
  1200. ranges = <0x0 0xfc014000 0x800>;
  1201. status = "disabled";
  1202. };
  1203. flx4: flexcom@fc018000 {
  1204. compatible = "atmel,sama5d2-flexcom";
  1205. reg = <0xfc018000 0x200>;
  1206. clocks = <&flx4_clk>;
  1207. #address-cells = <1>;
  1208. #size-cells = <1>;
  1209. ranges = <0x0 0xfc018000 0x800>;
  1210. status = "disabled";
  1211. };
  1212. trng@fc01c000 {
  1213. compatible = "atmel,at91sam9g45-trng";
  1214. reg = <0xfc01c000 0x100>;
  1215. interrupts = <47 IRQ_TYPE_LEVEL_HIGH 0>;
  1216. clocks = <&trng_clk>;
  1217. };
  1218. aic: interrupt-controller@fc020000 {
  1219. #interrupt-cells = <3>;
  1220. compatible = "atmel,sama5d2-aic";
  1221. interrupt-controller;
  1222. reg = <0xfc020000 0x200>;
  1223. atmel,external-irqs = <49>;
  1224. };
  1225. i2c1: i2c@fc028000 {
  1226. compatible = "atmel,sama5d2-i2c";
  1227. reg = <0xfc028000 0x100>;
  1228. interrupts = <30 IRQ_TYPE_LEVEL_HIGH 7>;
  1229. dmas = <&dma0
  1230. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1231. AT91_XDMAC_DT_PERID(2))>,
  1232. <&dma0
  1233. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1234. AT91_XDMAC_DT_PERID(3))>;
  1235. dma-names = "tx", "rx";
  1236. #address-cells = <1>;
  1237. #size-cells = <0>;
  1238. clocks = <&twi1_clk>;
  1239. atmel,fifo-size = <16>;
  1240. status = "disabled";
  1241. };
  1242. adc: adc@fc030000 {
  1243. compatible = "atmel,sama5d2-adc";
  1244. reg = <0xfc030000 0x100>;
  1245. interrupts = <40 IRQ_TYPE_LEVEL_HIGH 7>;
  1246. clocks = <&adc_clk>;
  1247. clock-names = "adc_clk";
  1248. atmel,min-sample-rate-hz = <200000>;
  1249. atmel,max-sample-rate-hz = <20000000>;
  1250. atmel,startup-time-ms = <4>;
  1251. atmel,trigger-edge-type = <IRQ_TYPE_EDGE_RISING>;
  1252. status = "disabled";
  1253. };
  1254. pioA: pinctrl@fc038000 {
  1255. compatible = "atmel,sama5d2-pinctrl";
  1256. reg = <0xfc038000 0x600>;
  1257. interrupts = <18 IRQ_TYPE_LEVEL_HIGH 7>,
  1258. <68 IRQ_TYPE_LEVEL_HIGH 7>,
  1259. <69 IRQ_TYPE_LEVEL_HIGH 7>,
  1260. <70 IRQ_TYPE_LEVEL_HIGH 7>;
  1261. interrupt-controller;
  1262. #interrupt-cells = <2>;
  1263. gpio-controller;
  1264. #gpio-cells = <2>;
  1265. clocks = <&pioA_clk>;
  1266. };
  1267. secumod@fc040000 {
  1268. compatible = "atmel,sama5d2-secumod", "syscon";
  1269. reg = <0xfc040000 0x100>;
  1270. };
  1271. tdes@fc044000 {
  1272. compatible = "atmel,at91sam9g46-tdes";
  1273. reg = <0xfc044000 0x100>;
  1274. interrupts = <11 IRQ_TYPE_LEVEL_HIGH 0>;
  1275. dmas = <&dma0
  1276. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1277. AT91_XDMAC_DT_PERID(28))>,
  1278. <&dma0
  1279. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1280. AT91_XDMAC_DT_PERID(29))>;
  1281. dma-names = "tx", "rx";
  1282. clocks = <&tdes_clk>;
  1283. clock-names = "tdes_clk";
  1284. status = "okay";
  1285. };
  1286. classd: classd@fc048000 {
  1287. compatible = "atmel,sama5d2-classd";
  1288. reg = <0xfc048000 0x100>;
  1289. interrupts = <59 IRQ_TYPE_LEVEL_HIGH 7>;
  1290. dmas = <&dma0
  1291. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  1292. AT91_XDMAC_DT_PERID(47))>;
  1293. dma-names = "tx";
  1294. clocks = <&classd_clk>, <&classd_gclk>;
  1295. clock-names = "pclk", "gclk";
  1296. status = "disabled";
  1297. };
  1298. can1: can@fc050000 {
  1299. compatible = "bosch,m_can";
  1300. reg = <0xfc050000 0x4000>, <0x210000 0x4000>;
  1301. reg-names = "m_can", "message_ram";
  1302. interrupts = <57 IRQ_TYPE_LEVEL_HIGH 7>,
  1303. <65 IRQ_TYPE_LEVEL_HIGH 7>;
  1304. interrupt-names = "int0", "int1";
  1305. clocks = <&can1_clk>, <&can1_gclk>;
  1306. clock-names = "hclk", "cclk";
  1307. assigned-clocks = <&can1_gclk>;
  1308. assigned-clock-parents = <&utmi>;
  1309. assigned-clock-rates = <40000000>;
  1310. bosch,mram-cfg = <0x1100 0 0 64 0 0 32 32>;
  1311. status = "disabled";
  1312. };
  1313. sfrbu: sfr@fc05c000 {
  1314. compatible = "atmel,sama5d2-sfrbu", "syscon";
  1315. reg = <0xfc05c000 0x20>;
  1316. };
  1317. chipid@fc069000 {
  1318. compatible = "atmel,sama5d2-chipid";
  1319. reg = <0xfc069000 0x8>;
  1320. };
  1321. };
  1322. };
  1323. };