sam9x60.dtsi 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * sam9x60.dtsi - Device Tree Include file for Microchip SAM9X60 SoC
  4. *
  5. * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries
  6. *
  7. * Author: Sandeep Sheriker M <[email protected]>
  8. */
  9. #include <dt-bindings/dma/at91.h>
  10. #include <dt-bindings/pinctrl/at91.h>
  11. #include <dt-bindings/interrupt-controller/irq.h>
  12. #include <dt-bindings/gpio/gpio.h>
  13. #include <dt-bindings/clock/at91.h>
  14. #include <dt-bindings/mfd/at91-usart.h>
  15. #include <dt-bindings/mfd/atmel-flexcom.h>
  16. / {
  17. #address-cells = <1>;
  18. #size-cells = <1>;
  19. model = "Microchip SAM9X60 SoC";
  20. compatible = "microchip,sam9x60";
  21. interrupt-parent = <&aic>;
  22. aliases {
  23. serial0 = &dbgu;
  24. gpio0 = &pioA;
  25. gpio1 = &pioB;
  26. gpio2 = &pioC;
  27. gpio3 = &pioD;
  28. tcb0 = &tcb0;
  29. tcb1 = &tcb1;
  30. };
  31. cpus {
  32. #address-cells = <1>;
  33. #size-cells = <0>;
  34. cpu@0 {
  35. compatible = "arm,arm926ej-s";
  36. device_type = "cpu";
  37. reg = <0>;
  38. };
  39. };
  40. memory@20000000 {
  41. device_type = "memory";
  42. reg = <0x20000000 0x10000000>;
  43. };
  44. clocks {
  45. slow_xtal: slow_xtal {
  46. compatible = "fixed-clock";
  47. #clock-cells = <0>;
  48. };
  49. main_xtal: main_xtal {
  50. compatible = "fixed-clock";
  51. #clock-cells = <0>;
  52. };
  53. };
  54. sram: sram@300000 {
  55. compatible = "mmio-sram";
  56. reg = <0x00300000 0x100000>;
  57. #address-cells = <1>;
  58. #size-cells = <1>;
  59. ranges = <0 0x00300000 0x100000>;
  60. };
  61. ahb {
  62. compatible = "simple-bus";
  63. #address-cells = <1>;
  64. #size-cells = <1>;
  65. ranges;
  66. usb0: gadget@500000 {
  67. #address-cells = <1>;
  68. #size-cells = <0>;
  69. compatible = "microchip,sam9x60-udc";
  70. reg = <0x00500000 0x100000
  71. 0xf803c000 0x400>;
  72. interrupts = <23 IRQ_TYPE_LEVEL_HIGH 2>;
  73. clocks = <&pmc PMC_TYPE_PERIPHERAL 23>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
  74. clock-names = "pclk", "hclk";
  75. assigned-clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>;
  76. assigned-clock-rates = <480000000>;
  77. status = "disabled";
  78. };
  79. usb1: ohci@600000 {
  80. compatible = "atmel,at91rm9200-ohci", "usb-ohci";
  81. reg = <0x00600000 0x100000>;
  82. interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
  83. clocks = <&pmc PMC_TYPE_PERIPHERAL 22>, <&pmc PMC_TYPE_PERIPHERAL 22>, <&pmc PMC_TYPE_SYSTEM 6>;
  84. clock-names = "ohci_clk", "hclk", "uhpck";
  85. status = "disabled";
  86. };
  87. usb2: ehci@700000 {
  88. compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
  89. reg = <0x00700000 0x100000>;
  90. interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
  91. clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_PERIPHERAL 22>;
  92. clock-names = "usb_clk", "ehci_clk";
  93. assigned-clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>;
  94. assigned-clock-rates = <480000000>;
  95. status = "disabled";
  96. };
  97. ebi: ebi@10000000 {
  98. compatible = "microchip,sam9x60-ebi";
  99. #address-cells = <2>;
  100. #size-cells = <1>;
  101. atmel,smc = <&smc>;
  102. microchip,sfr = <&sfr>;
  103. reg = <0x10000000 0x60000000>;
  104. ranges = <0x0 0x0 0x10000000 0x10000000
  105. 0x1 0x0 0x20000000 0x10000000
  106. 0x2 0x0 0x30000000 0x10000000
  107. 0x3 0x0 0x40000000 0x10000000
  108. 0x4 0x0 0x50000000 0x10000000
  109. 0x5 0x0 0x60000000 0x10000000>;
  110. clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
  111. status = "disabled";
  112. nand_controller: nand-controller {
  113. compatible = "microchip,sam9x60-nand-controller";
  114. ecc-engine = <&pmecc>;
  115. #address-cells = <2>;
  116. #size-cells = <1>;
  117. ranges;
  118. status = "disabled";
  119. };
  120. };
  121. sdmmc0: sdio-host@80000000 {
  122. compatible = "microchip,sam9x60-sdhci";
  123. reg = <0x80000000 0x300>;
  124. interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>;
  125. clocks = <&pmc PMC_TYPE_PERIPHERAL 12>, <&pmc PMC_TYPE_GCK 12>;
  126. clock-names = "hclock", "multclk";
  127. assigned-clocks = <&pmc PMC_TYPE_GCK 12>;
  128. assigned-clock-rates = <100000000>;
  129. status = "disabled";
  130. };
  131. sdmmc1: sdio-host@90000000 {
  132. compatible = "microchip,sam9x60-sdhci";
  133. reg = <0x90000000 0x300>;
  134. interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>;
  135. clocks = <&pmc PMC_TYPE_PERIPHERAL 26>, <&pmc PMC_TYPE_GCK 26>;
  136. clock-names = "hclock", "multclk";
  137. assigned-clocks = <&pmc PMC_TYPE_GCK 26>;
  138. assigned-clock-rates = <100000000>;
  139. status = "disabled";
  140. };
  141. apb {
  142. compatible = "simple-bus";
  143. #address-cells = <1>;
  144. #size-cells = <1>;
  145. ranges;
  146. flx4: flexcom@f0000000 {
  147. compatible = "atmel,sama5d2-flexcom";
  148. reg = <0xf0000000 0x200>;
  149. clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
  150. #address-cells = <1>;
  151. #size-cells = <1>;
  152. ranges = <0x0 0xf0000000 0x800>;
  153. status = "disabled";
  154. };
  155. flx5: flexcom@f0004000 {
  156. compatible = "atmel,sama5d2-flexcom";
  157. reg = <0xf0004000 0x200>;
  158. clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
  159. #address-cells = <1>;
  160. #size-cells = <1>;
  161. ranges = <0x0 0xf0004000 0x800>;
  162. status = "disabled";
  163. };
  164. dma0: dma-controller@f0008000 {
  165. compatible = "microchip,sam9x60-dma", "atmel,sama5d4-dma";
  166. reg = <0xf0008000 0x1000>;
  167. interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0>;
  168. #dma-cells = <1>;
  169. clocks = <&pmc PMC_TYPE_PERIPHERAL 20>;
  170. clock-names = "dma_clk";
  171. };
  172. ssc: ssc@f0010000 {
  173. compatible = "atmel,at91sam9g45-ssc";
  174. reg = <0xf0010000 0x4000>;
  175. interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>;
  176. dmas = <&dma0
  177. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  178. AT91_XDMAC_DT_PERID(38))>,
  179. <&dma0
  180. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  181. AT91_XDMAC_DT_PERID(39))>;
  182. dma-names = "tx", "rx";
  183. clocks = <&pmc PMC_TYPE_PERIPHERAL 28>;
  184. clock-names = "pclk";
  185. status = "disabled";
  186. };
  187. qspi: spi@f0014000 {
  188. compatible = "microchip,sam9x60-qspi";
  189. reg = <0xf0014000 0x100>, <0x70000000 0x10000000>;
  190. reg-names = "qspi_base", "qspi_mmap";
  191. interrupts = <35 IRQ_TYPE_LEVEL_HIGH 7>;
  192. dmas = <&dma0
  193. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  194. AT91_XDMAC_DT_PERID(26))>,
  195. <&dma0
  196. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  197. AT91_XDMAC_DT_PERID(27))>;
  198. dma-names = "tx", "rx";
  199. clocks = <&pmc PMC_TYPE_PERIPHERAL 35>, <&pmc PMC_TYPE_SYSTEM 19>;
  200. clock-names = "pclk", "qspick";
  201. atmel,pmc = <&pmc>;
  202. #address-cells = <1>;
  203. #size-cells = <0>;
  204. status = "disabled";
  205. };
  206. i2s: i2s@f001c000 {
  207. compatible = "microchip,sam9x60-i2smcc";
  208. reg = <0xf001c000 0x100>;
  209. interrupts = <34 IRQ_TYPE_LEVEL_HIGH 7>;
  210. dmas = <&dma0
  211. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  212. AT91_XDMAC_DT_PERID(36))>,
  213. <&dma0
  214. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  215. AT91_XDMAC_DT_PERID(37))>;
  216. dma-names = "tx", "rx";
  217. clocks = <&pmc PMC_TYPE_PERIPHERAL 34>, <&pmc PMC_TYPE_GCK 34>;
  218. clock-names = "pclk", "gclk";
  219. status = "disabled";
  220. };
  221. flx11: flexcom@f0020000 {
  222. compatible = "atmel,sama5d2-flexcom";
  223. reg = <0xf0020000 0x200>;
  224. clocks = <&pmc PMC_TYPE_PERIPHERAL 32>;
  225. #address-cells = <1>;
  226. #size-cells = <1>;
  227. ranges = <0x0 0xf0020000 0x800>;
  228. status = "disabled";
  229. };
  230. flx12: flexcom@f0024000 {
  231. compatible = "atmel,sama5d2-flexcom";
  232. reg = <0xf0024000 0x200>;
  233. clocks = <&pmc PMC_TYPE_PERIPHERAL 33>;
  234. #address-cells = <1>;
  235. #size-cells = <1>;
  236. ranges = <0x0 0xf0024000 0x800>;
  237. status = "disabled";
  238. };
  239. pit64b: timer@f0028000 {
  240. compatible = "microchip,sam9x60-pit64b";
  241. reg = <0xf0028000 0x100>;
  242. interrupts = <37 IRQ_TYPE_LEVEL_HIGH 7>;
  243. clocks = <&pmc PMC_TYPE_PERIPHERAL 37>, <&pmc PMC_TYPE_GCK 37>;
  244. clock-names = "pclk", "gclk";
  245. };
  246. sha: crypto@f002c000 {
  247. compatible = "atmel,at91sam9g46-sha";
  248. reg = <0xf002c000 0x100>;
  249. interrupts = <41 IRQ_TYPE_LEVEL_HIGH 0>;
  250. dmas = <&dma0
  251. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  252. AT91_XDMAC_DT_PERID(34))>;
  253. dma-names = "tx";
  254. clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
  255. clock-names = "sha_clk";
  256. };
  257. trng: trng@f0030000 {
  258. compatible = "microchip,sam9x60-trng";
  259. reg = <0xf0030000 0x100>;
  260. interrupts = <38 IRQ_TYPE_LEVEL_HIGH 0>;
  261. clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
  262. };
  263. aes: crypto@f0034000 {
  264. compatible = "atmel,at91sam9g46-aes";
  265. reg = <0xf0034000 0x100>;
  266. interrupts = <39 IRQ_TYPE_LEVEL_HIGH 0>;
  267. dmas = <&dma0
  268. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  269. AT91_XDMAC_DT_PERID(32))>,
  270. <&dma0
  271. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  272. AT91_XDMAC_DT_PERID(33))>;
  273. dma-names = "tx", "rx";
  274. clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
  275. clock-names = "aes_clk";
  276. };
  277. tdes: crypto@f0038000 {
  278. compatible = "atmel,at91sam9g46-tdes";
  279. reg = <0xf0038000 0x100>;
  280. interrupts = <40 IRQ_TYPE_LEVEL_HIGH 0>;
  281. dmas = <&dma0
  282. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  283. AT91_XDMAC_DT_PERID(31))>,
  284. <&dma0
  285. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  286. AT91_XDMAC_DT_PERID(30))>;
  287. dma-names = "tx", "rx";
  288. clocks = <&pmc PMC_TYPE_PERIPHERAL 40>;
  289. clock-names = "tdes_clk";
  290. };
  291. classd: classd@f003c000 {
  292. compatible = "atmel,sama5d2-classd";
  293. reg = <0xf003c000 0x100>;
  294. interrupts = <42 IRQ_TYPE_LEVEL_HIGH 7>;
  295. dmas = <&dma0
  296. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  297. AT91_XDMAC_DT_PERID(35))>;
  298. dma-names = "tx";
  299. clocks = <&pmc PMC_TYPE_PERIPHERAL 42>, <&pmc PMC_TYPE_GCK 42>;
  300. clock-names = "pclk", "gclk";
  301. status = "disabled";
  302. };
  303. can0: can@f8000000 {
  304. compatible = "microchip,sam9x60-can", "atmel,at91sam9x5-can";
  305. reg = <0xf8000000 0x300>;
  306. interrupts = <29 IRQ_TYPE_LEVEL_HIGH 3>;
  307. clocks = <&pmc PMC_TYPE_PERIPHERAL 29>;
  308. clock-names = "can_clk";
  309. status = "disabled";
  310. };
  311. can1: can@f8004000 {
  312. compatible = "microchip,sam9x60-can", "atmel,at91sam9x5-can";
  313. reg = <0xf8004000 0x300>;
  314. interrupts = <30 IRQ_TYPE_LEVEL_HIGH 3>;
  315. clocks = <&pmc PMC_TYPE_PERIPHERAL 30>;
  316. clock-names = "can_clk";
  317. status = "disabled";
  318. };
  319. tcb0: timer@f8008000 {
  320. compatible = "microchip,sam9x60-tcb", "atmel,at91sam9x5-tcb", "simple-mfd", "syscon";
  321. #address-cells = <1>;
  322. #size-cells = <0>;
  323. reg = <0xf8008000 0x100>;
  324. interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>;
  325. clocks = <&pmc PMC_TYPE_PERIPHERAL 17>, <&clk32k 0>;
  326. clock-names = "t0_clk", "slow_clk";
  327. };
  328. tcb1: timer@f800c000 {
  329. compatible = "microchip,sam9x60-tcb", "atmel,at91sam9x5-tcb", "simple-mfd", "syscon";
  330. #address-cells = <1>;
  331. #size-cells = <0>;
  332. reg = <0xf800c000 0x100>;
  333. interrupts = <45 IRQ_TYPE_LEVEL_HIGH 0>;
  334. clocks = <&pmc PMC_TYPE_PERIPHERAL 45>, <&clk32k 0>;
  335. clock-names = "t0_clk", "slow_clk";
  336. };
  337. flx6: flexcom@f8010000 {
  338. compatible = "atmel,sama5d2-flexcom";
  339. reg = <0xf8010000 0x200>;
  340. clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
  341. #address-cells = <1>;
  342. #size-cells = <1>;
  343. ranges = <0x0 0xf8010000 0x800>;
  344. status = "disabled";
  345. };
  346. flx7: flexcom@f8014000 {
  347. compatible = "atmel,sama5d2-flexcom";
  348. reg = <0xf8014000 0x200>;
  349. clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
  350. #address-cells = <1>;
  351. #size-cells = <1>;
  352. ranges = <0x0 0xf8014000 0x800>;
  353. status = "disabled";
  354. };
  355. flx8: flexcom@f8018000 {
  356. compatible = "atmel,sama5d2-flexcom";
  357. reg = <0xf8018000 0x200>;
  358. clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
  359. #address-cells = <1>;
  360. #size-cells = <1>;
  361. ranges = <0x0 0xf8018000 0x800>;
  362. status = "disabled";
  363. };
  364. flx0: flexcom@f801c000 {
  365. compatible = "atmel,sama5d2-flexcom";
  366. reg = <0xf801c000 0x200>;
  367. clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
  368. #address-cells = <1>;
  369. #size-cells = <1>;
  370. ranges = <0x0 0xf801c000 0x800>;
  371. status = "disabled";
  372. };
  373. flx1: flexcom@f8020000 {
  374. compatible = "atmel,sama5d2-flexcom";
  375. reg = <0xf8020000 0x200>;
  376. clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
  377. #address-cells = <1>;
  378. #size-cells = <1>;
  379. ranges = <0x0 0xf8020000 0x800>;
  380. status = "disabled";
  381. };
  382. flx2: flexcom@f8024000 {
  383. compatible = "atmel,sama5d2-flexcom";
  384. reg = <0xf8024000 0x200>;
  385. clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
  386. #address-cells = <1>;
  387. #size-cells = <1>;
  388. ranges = <0x0 0xf8024000 0x800>;
  389. status = "disabled";
  390. };
  391. flx3: flexcom@f8028000 {
  392. compatible = "atmel,sama5d2-flexcom";
  393. reg = <0xf8028000 0x200>;
  394. clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
  395. #address-cells = <1>;
  396. #size-cells = <1>;
  397. ranges = <0x0 0xf8028000 0x800>;
  398. status = "disabled";
  399. };
  400. macb0: ethernet@f802c000 {
  401. compatible = "cdns,sam9x60-macb", "cdns,macb";
  402. reg = <0xf802c000 0x1000>;
  403. interrupts = <24 IRQ_TYPE_LEVEL_HIGH 3>;
  404. clocks = <&pmc PMC_TYPE_PERIPHERAL 24>, <&pmc PMC_TYPE_PERIPHERAL 24>;
  405. clock-names = "hclk", "pclk";
  406. status = "disabled";
  407. };
  408. macb1: ethernet@f8030000 {
  409. compatible = "cdns,sam9x60-macb", "cdns,macb";
  410. reg = <0xf8030000 0x1000>;
  411. interrupts = <27 IRQ_TYPE_LEVEL_HIGH 3>;
  412. clocks = <&pmc PMC_TYPE_PERIPHERAL 27>, <&pmc PMC_TYPE_PERIPHERAL 27>;
  413. clock-names = "hclk", "pclk";
  414. status = "disabled";
  415. };
  416. pwm0: pwm@f8034000 {
  417. compatible = "microchip,sam9x60-pwm";
  418. reg = <0xf8034000 0x300>;
  419. interrupts = <18 IRQ_TYPE_LEVEL_HIGH 4>;
  420. clocks = <&pmc PMC_TYPE_PERIPHERAL 18>;
  421. #pwm-cells = <3>;
  422. status = "disabled";
  423. };
  424. hlcdc: hlcdc@f8038000 {
  425. compatible = "microchip,sam9x60-hlcdc";
  426. reg = <0xf8038000 0x4000>;
  427. interrupts = <25 IRQ_TYPE_LEVEL_HIGH 0>;
  428. clocks = <&pmc PMC_TYPE_PERIPHERAL 25>, <&pmc PMC_TYPE_GCK 25>, <&clk32k 1>;
  429. clock-names = "periph_clk","sys_clk", "slow_clk";
  430. assigned-clocks = <&pmc PMC_TYPE_GCK 25>;
  431. assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_MCK>;
  432. status = "disabled";
  433. hlcdc-display-controller {
  434. compatible = "atmel,hlcdc-display-controller";
  435. #address-cells = <1>;
  436. #size-cells = <0>;
  437. port@0 {
  438. #address-cells = <1>;
  439. #size-cells = <0>;
  440. reg = <0>;
  441. };
  442. };
  443. hlcdc_pwm: hlcdc-pwm {
  444. compatible = "atmel,hlcdc-pwm";
  445. #pwm-cells = <3>;
  446. };
  447. };
  448. flx9: flexcom@f8040000 {
  449. compatible = "atmel,sama5d2-flexcom";
  450. reg = <0xf8040000 0x200>;
  451. clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
  452. #address-cells = <1>;
  453. #size-cells = <1>;
  454. ranges = <0x0 0xf8040000 0x800>;
  455. status = "disabled";
  456. };
  457. flx10: flexcom@f8044000 {
  458. compatible = "atmel,sama5d2-flexcom";
  459. reg = <0xf8044000 0x200>;
  460. clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
  461. #address-cells = <1>;
  462. #size-cells = <1>;
  463. ranges = <0x0 0xf8044000 0x800>;
  464. status = "disabled";
  465. };
  466. isi: isi@f8048000 {
  467. compatible = "microchip,sam9x60-isi", "atmel,at91sam9g45-isi";
  468. reg = <0xf8048000 0x100>;
  469. interrupts = <43 IRQ_TYPE_LEVEL_HIGH 5>;
  470. clocks = <&pmc PMC_TYPE_PERIPHERAL 43>;
  471. clock-names = "isi_clk";
  472. status = "disabled";
  473. port {
  474. #address-cells = <1>;
  475. #size-cells = <0>;
  476. };
  477. };
  478. adc: adc@f804c000 {
  479. compatible = "microchip,sam9x60-adc", "atmel,sama5d2-adc";
  480. reg = <0xf804c000 0x100>;
  481. interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
  482. clocks = <&pmc PMC_TYPE_PERIPHERAL 19>;
  483. clock-names = "adc_clk";
  484. dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | AT91_XDMAC_DT_PERID(40))>;
  485. dma-names = "rx";
  486. atmel,min-sample-rate-hz = <200000>;
  487. atmel,max-sample-rate-hz = <20000000>;
  488. atmel,startup-time-ms = <4>;
  489. atmel,trigger-edge-type = <IRQ_TYPE_EDGE_RISING>;
  490. #io-channel-cells = <1>;
  491. status = "disabled";
  492. };
  493. sfr: sfr@f8050000 {
  494. compatible = "microchip,sam9x60-sfr", "syscon";
  495. reg = <0xf8050000 0x100>;
  496. };
  497. matrix: matrix@ffffde00 {
  498. compatible = "microchip,sam9x60-matrix", "atmel,at91sam9x5-matrix", "syscon";
  499. reg = <0xffffde00 0x200>;
  500. };
  501. pmecc: ecc-engine@ffffe000 {
  502. compatible = "microchip,sam9x60-pmecc", "atmel,at91sam9g45-pmecc";
  503. reg = <0xffffe000 0x300>,
  504. <0xffffe600 0x100>;
  505. };
  506. mpddrc: mpddrc@ffffe800 {
  507. compatible = "microchip,sam9x60-ddramc", "atmel,sama5d3-ddramc";
  508. reg = <0xffffe800 0x200>;
  509. clocks = <&pmc PMC_TYPE_SYSTEM 2>, <&pmc PMC_TYPE_PERIPHERAL 49>;
  510. clock-names = "ddrck", "mpddr";
  511. };
  512. smc: smc@ffffea00 {
  513. compatible = "microchip,sam9x60-smc", "atmel,at91sam9260-smc", "syscon";
  514. reg = <0xffffea00 0x100>;
  515. };
  516. aic: interrupt-controller@fffff100 {
  517. compatible = "microchip,sam9x60-aic";
  518. #interrupt-cells = <3>;
  519. interrupt-controller;
  520. reg = <0xfffff100 0x100>;
  521. atmel,external-irqs = <31>;
  522. };
  523. dbgu: serial@fffff200 {
  524. compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
  525. reg = <0xfffff200 0x200>;
  526. atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
  527. interrupts = <47 IRQ_TYPE_LEVEL_HIGH 7>;
  528. dmas = <&dma0
  529. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  530. AT91_XDMAC_DT_PERID(28))>,
  531. <&dma0
  532. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  533. AT91_XDMAC_DT_PERID(29))>;
  534. dma-names = "tx", "rx";
  535. clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
  536. clock-names = "usart";
  537. status = "disabled";
  538. };
  539. pinctrl: pinctrl@fffff400 {
  540. #address-cells = <1>;
  541. #size-cells = <1>;
  542. compatible = "microchip,sam9x60-pinctrl", "atmel,at91sam9x5-pinctrl", "atmel,at91rm9200-pinctrl", "simple-bus";
  543. ranges = <0xfffff400 0xfffff400 0x800>;
  544. /* mux-mask corresponding to sam9x60 SoC in TFBGA228L package */
  545. atmel,mux-mask = <
  546. /* A B C */
  547. 0xffffffff 0xffe03fff 0xef00019d /* pioA */
  548. 0x03ffffff 0x02fc7e7f 0x00780000 /* pioB */
  549. 0xffffffff 0xffffffff 0xf83fffff /* pioC */
  550. 0x003fffff 0x003f8000 0x00000000 /* pioD */
  551. >;
  552. pioA: gpio@fffff400 {
  553. compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
  554. reg = <0xfffff400 0x200>;
  555. interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
  556. #gpio-cells = <2>;
  557. gpio-controller;
  558. interrupt-controller;
  559. #interrupt-cells = <2>;
  560. clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;
  561. };
  562. pioB: gpio@fffff600 {
  563. compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
  564. reg = <0xfffff600 0x200>;
  565. interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
  566. #gpio-cells = <2>;
  567. gpio-controller;
  568. #gpio-lines = <26>;
  569. interrupt-controller;
  570. #interrupt-cells = <2>;
  571. clocks = <&pmc PMC_TYPE_PERIPHERAL 3>;
  572. };
  573. pioC: gpio@fffff800 {
  574. compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
  575. reg = <0xfffff800 0x200>;
  576. interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
  577. #gpio-cells = <2>;
  578. gpio-controller;
  579. interrupt-controller;
  580. #interrupt-cells = <2>;
  581. clocks = <&pmc PMC_TYPE_PERIPHERAL 4>;
  582. };
  583. pioD: gpio@fffffa00 {
  584. compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
  585. reg = <0xfffffa00 0x200>;
  586. interrupts = <44 IRQ_TYPE_LEVEL_HIGH 1>;
  587. #gpio-cells = <2>;
  588. gpio-controller;
  589. #gpio-lines = <22>;
  590. interrupt-controller;
  591. #interrupt-cells = <2>;
  592. clocks = <&pmc PMC_TYPE_PERIPHERAL 44>;
  593. };
  594. };
  595. pmc: pmc@fffffc00 {
  596. compatible = "microchip,sam9x60-pmc", "syscon";
  597. reg = <0xfffffc00 0x200>;
  598. interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
  599. #clock-cells = <2>;
  600. clocks = <&clk32k 1>, <&clk32k 0>, <&main_xtal>;
  601. clock-names = "td_slck", "md_slck", "main_xtal";
  602. };
  603. reset_controller: reset-controller@fffffe00 {
  604. compatible = "microchip,sam9x60-rstc";
  605. reg = <0xfffffe00 0x10>;
  606. clocks = <&clk32k 0>;
  607. };
  608. shutdown_controller: shdwc@fffffe10 {
  609. compatible = "microchip,sam9x60-shdwc";
  610. reg = <0xfffffe10 0x10>;
  611. clocks = <&clk32k 0>;
  612. #address-cells = <1>;
  613. #size-cells = <0>;
  614. atmel,wakeup-rtc-timer;
  615. atmel,wakeup-rtt-timer;
  616. status = "disabled";
  617. };
  618. rtt: rtc@fffffe20 {
  619. compatible = "microchip,sam9x60-rtt", "atmel,at91sam9260-rtt";
  620. reg = <0xfffffe20 0x20>;
  621. interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
  622. clocks = <&clk32k 0>;
  623. };
  624. pit: timer@fffffe40 {
  625. compatible = "atmel,at91sam9260-pit";
  626. reg = <0xfffffe40 0x10>;
  627. interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
  628. clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
  629. };
  630. clk32k: sckc@fffffe50 {
  631. compatible = "microchip,sam9x60-sckc";
  632. reg = <0xfffffe50 0x4>;
  633. clocks = <&slow_xtal>;
  634. #clock-cells = <1>;
  635. };
  636. gpbr: syscon@fffffe60 {
  637. compatible = "microchip,sam9x60-gpbr", "atmel,at91sam9260-gpbr", "syscon";
  638. reg = <0xfffffe60 0x10>;
  639. };
  640. rtc: rtc@fffffea8 {
  641. compatible = "microchip,sam9x60-rtc", "atmel,at91sam9x5-rtc";
  642. reg = <0xfffffea8 0x100>;
  643. interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
  644. clocks = <&clk32k 0>;
  645. };
  646. watchdog: watchdog@ffffff80 {
  647. compatible = "microchip,sam9x60-wdt";
  648. reg = <0xffffff80 0x24>;
  649. interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
  650. clocks = <&clk32k 0>;
  651. status = "disabled";
  652. };
  653. };
  654. };
  655. };