sama7g5.dtsi 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * sama7g5.dtsi - Device Tree Include file for SAMA7G5 family SoC
  4. *
  5. * Copyright (C) 2020 Microchip Technology, Inc. and its subsidiaries
  6. *
  7. * Author: Eugen Hristev <[email protected]>
  8. * Author: Claudiu Beznea <[email protected]>
  9. *
  10. */
  11. #include <dt-bindings/interrupt-controller/irq.h>
  12. #include <dt-bindings/interrupt-controller/arm-gic.h>
  13. #include <dt-bindings/clock/at91.h>
  14. #include <dt-bindings/dma/at91.h>
  15. #include <dt-bindings/gpio/gpio.h>
  16. #include <dt-bindings/mfd/at91-usart.h>
  17. / {
  18. model = "Microchip SAMA7G5 family SoC";
  19. compatible = "microchip,sama7g5";
  20. #address-cells = <1>;
  21. #size-cells = <1>;
  22. interrupt-parent = <&gic>;
  23. cpus {
  24. #address-cells = <1>;
  25. #size-cells = <0>;
  26. cpu0: cpu@0 {
  27. device_type = "cpu";
  28. compatible = "arm,cortex-a7";
  29. reg = <0x0>;
  30. clocks = <&pmc PMC_TYPE_CORE PMC_CPUPLL>;
  31. clock-names = "cpu";
  32. operating-points-v2 = <&cpu_opp_table>;
  33. };
  34. };
  35. cpu_opp_table: opp-table {
  36. compatible = "operating-points-v2";
  37. opp-90000000 {
  38. opp-hz = /bits/ 64 <90000000>;
  39. opp-microvolt = <1050000 1050000 1225000>;
  40. clock-latency-ns = <320000>;
  41. };
  42. opp-250000000 {
  43. opp-hz = /bits/ 64 <250000000>;
  44. opp-microvolt = <1050000 1050000 1225000>;
  45. clock-latency-ns = <320000>;
  46. };
  47. opp-600000000 {
  48. opp-hz = /bits/ 64 <600000000>;
  49. opp-microvolt = <1050000 1050000 1225000>;
  50. clock-latency-ns = <320000>;
  51. opp-suspend;
  52. };
  53. opp-800000000 {
  54. opp-hz = /bits/ 64 <800000000>;
  55. opp-microvolt = <1150000 1125000 1225000>;
  56. clock-latency-ns = <320000>;
  57. };
  58. opp-1000000002 {
  59. opp-hz = /bits/ 64 <1000000002>;
  60. opp-microvolt = <1250000 1225000 1300000>;
  61. clock-latency-ns = <320000>;
  62. };
  63. };
  64. clocks {
  65. slow_xtal: slow_xtal {
  66. compatible = "fixed-clock";
  67. #clock-cells = <0>;
  68. };
  69. main_xtal: main_xtal {
  70. compatible = "fixed-clock";
  71. #clock-cells = <0>;
  72. };
  73. usb_clk: usb_clk {
  74. compatible = "fixed-clock";
  75. #clock-cells = <0>;
  76. clock-frequency = <48000000>;
  77. };
  78. };
  79. vddout25: fixed-regulator-vddout25 {
  80. compatible = "regulator-fixed";
  81. regulator-name = "VDDOUT25";
  82. regulator-min-microvolt = <2500000>;
  83. regulator-max-microvolt = <2500000>;
  84. regulator-boot-on;
  85. status = "disabled";
  86. };
  87. ns_sram: sram@100000 {
  88. compatible = "mmio-sram";
  89. #address-cells = <1>;
  90. #size-cells = <1>;
  91. reg = <0x100000 0x20000>;
  92. ranges;
  93. };
  94. soc {
  95. compatible = "simple-bus";
  96. #address-cells = <1>;
  97. #size-cells = <1>;
  98. ranges;
  99. nfc_sram: sram@600000 {
  100. compatible = "mmio-sram";
  101. no-memory-wc;
  102. reg = <0x00600000 0x2400>;
  103. #address-cells = <1>;
  104. #size-cells = <1>;
  105. ranges = <0 0x00600000 0x2400>;
  106. };
  107. nfc_io: nfc-io@10000000 {
  108. compatible = "atmel,sama5d3-nfc-io", "syscon";
  109. reg = <0x10000000 0x8000000>;
  110. };
  111. ebi: ebi@40000000 {
  112. compatible = "atmel,sama5d3-ebi";
  113. #address-cells = <2>;
  114. #size-cells = <1>;
  115. atmel,smc = <&hsmc>;
  116. reg = <0x40000000 0x20000000>;
  117. ranges = <0x0 0x0 0x40000000 0x8000000
  118. 0x1 0x0 0x48000000 0x8000000
  119. 0x2 0x0 0x50000000 0x8000000
  120. 0x3 0x0 0x58000000 0x8000000>;
  121. clocks = <&pmc PMC_TYPE_CORE PMC_MCK1>;
  122. status = "disabled";
  123. nand_controller: nand-controller {
  124. compatible = "atmel,sama5d3-nand-controller";
  125. atmel,nfc-sram = <&nfc_sram>;
  126. atmel,nfc-io = <&nfc_io>;
  127. ecc-engine = <&pmecc>;
  128. #address-cells = <2>;
  129. #size-cells = <1>;
  130. ranges;
  131. status = "disabled";
  132. };
  133. };
  134. securam: securam@e0000000 {
  135. compatible = "microchip,sama7g5-securam", "atmel,sama5d2-securam", "mmio-sram";
  136. reg = <0xe0000000 0x4000>;
  137. clocks = <&pmc PMC_TYPE_PERIPHERAL 18>;
  138. #address-cells = <1>;
  139. #size-cells = <1>;
  140. ranges = <0 0xe0000000 0x4000>;
  141. no-memory-wc;
  142. };
  143. secumod: secumod@e0004000 {
  144. compatible = "microchip,sama7g5-secumod", "atmel,sama5d2-secumod", "syscon";
  145. reg = <0xe0004000 0x4000>;
  146. gpio-controller;
  147. #gpio-cells = <2>;
  148. };
  149. sfrbu: sfr@e0008000 {
  150. compatible = "microchip,sama7g5-sfrbu", "atmel,sama5d2-sfrbu", "syscon";
  151. reg = <0xe0008000 0x20>;
  152. };
  153. pioA: pinctrl@e0014000 {
  154. compatible = "microchip,sama7g5-pinctrl";
  155. reg = <0xe0014000 0x800>;
  156. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
  157. <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
  158. <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
  159. <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
  160. <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
  161. interrupt-controller;
  162. #interrupt-cells = <2>;
  163. gpio-controller;
  164. #gpio-cells = <2>;
  165. clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
  166. };
  167. pmc: pmc@e0018000 {
  168. compatible = "microchip,sama7g5-pmc", "syscon";
  169. reg = <0xe0018000 0x200>;
  170. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  171. #clock-cells = <2>;
  172. clocks = <&clk32k 1>, <&clk32k 0>, <&main_xtal>;
  173. clock-names = "td_slck", "md_slck", "main_xtal";
  174. };
  175. reset_controller: reset-controller@e001d000 {
  176. compatible = "microchip,sama7g5-rstc";
  177. reg = <0xe001d000 0xc>, <0xe001d0e4 0x4>;
  178. #reset-cells = <1>;
  179. clocks = <&clk32k 0>;
  180. };
  181. shdwc: shdwc@e001d010 {
  182. compatible = "microchip,sama7g5-shdwc", "syscon";
  183. reg = <0xe001d010 0x10>;
  184. clocks = <&clk32k 0>;
  185. #address-cells = <1>;
  186. #size-cells = <0>;
  187. atmel,wakeup-rtc-timer;
  188. atmel,wakeup-rtt-timer;
  189. status = "disabled";
  190. };
  191. rtt: rtc@e001d020 {
  192. compatible = "microchip,sama7g5-rtt", "microchip,sam9x60-rtt", "atmel,at91sam9260-rtt";
  193. reg = <0xe001d020 0x30>;
  194. interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
  195. clocks = <&clk32k 0>;
  196. };
  197. clk32k: clock-controller@e001d050 {
  198. compatible = "microchip,sama7g5-sckc", "microchip,sam9x60-sckc";
  199. reg = <0xe001d050 0x4>;
  200. clocks = <&slow_xtal>;
  201. #clock-cells = <1>;
  202. };
  203. gpbr: gpbr@e001d060 {
  204. compatible = "microchip,sama7g5-gpbr", "syscon";
  205. reg = <0xe001d060 0x48>;
  206. };
  207. rtc: rtc@e001d0a8 {
  208. compatible = "microchip,sama7g5-rtc", "microchip,sam9x60-rtc";
  209. reg = <0xe001d0a8 0x30>;
  210. interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
  211. clocks = <&clk32k 1>;
  212. };
  213. ps_wdt: watchdog@e001d180 {
  214. compatible = "microchip,sama7g5-wdt";
  215. reg = <0xe001d180 0x24>;
  216. interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
  217. clocks = <&clk32k 0>;
  218. };
  219. chipid@e0020000 {
  220. compatible = "microchip,sama7g5-chipid";
  221. reg = <0xe0020000 0x8>;
  222. };
  223. tcb1: timer@e0800000 {
  224. compatible = "atmel,sama5d2-tcb", "simple-mfd", "syscon";
  225. #address-cells = <1>;
  226. #size-cells = <0>;
  227. reg = <0xe0800000 0x100>;
  228. interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
  229. clocks = <&pmc PMC_TYPE_PERIPHERAL 91>, <&pmc PMC_TYPE_PERIPHERAL 92>, <&pmc PMC_TYPE_PERIPHERAL 93>, <&clk32k 1>;
  230. clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
  231. };
  232. hsmc: hsmc@e0808000 {
  233. compatible = "atmel,sama5d2-smc", "syscon", "simple-mfd";
  234. reg = <0xe0808000 0x1000>;
  235. interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
  236. clocks = <&pmc PMC_TYPE_PERIPHERAL 21>;
  237. #address-cells = <1>;
  238. #size-cells = <1>;
  239. ranges;
  240. pmecc: ecc-engine@e0808070 {
  241. compatible = "atmel,sama5d2-pmecc";
  242. reg = <0xe0808070 0x490>,
  243. <0xe0808500 0x200>;
  244. };
  245. };
  246. qspi0: spi@e080c000 {
  247. compatible = "microchip,sama7g5-ospi";
  248. reg = <0xe080c000 0x400>, <0x20000000 0x10000000>;
  249. reg-names = "qspi_base", "qspi_mmap";
  250. interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
  251. dmas = <&dma0 AT91_XDMAC_DT_PERID(41)>,
  252. <&dma0 AT91_XDMAC_DT_PERID(40)>;
  253. dma-names = "tx", "rx";
  254. clocks = <&pmc PMC_TYPE_PERIPHERAL 78>, <&pmc PMC_TYPE_GCK 78>;
  255. clock-names = "pclk", "gclk";
  256. #address-cells = <1>;
  257. #size-cells = <0>;
  258. status = "disabled";
  259. };
  260. qspi1: spi@e0810000 {
  261. compatible = "microchip,sama7g5-qspi";
  262. reg = <0xe0810000 0x400>, <0x30000000 0x10000000>;
  263. reg-names = "qspi_base", "qspi_mmap";
  264. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  265. dmas = <&dma0 AT91_XDMAC_DT_PERID(43)>,
  266. <&dma0 AT91_XDMAC_DT_PERID(42)>;
  267. dma-names = "tx", "rx";
  268. clocks = <&pmc PMC_TYPE_PERIPHERAL 79>, <&pmc PMC_TYPE_GCK 79>;
  269. clock-names = "pclk", "gclk";
  270. #address-cells = <1>;
  271. #size-cells = <0>;
  272. status = "disabled";
  273. };
  274. can0: can@e0828000 {
  275. compatible = "bosch,m_can";
  276. reg = <0xe0828000 0x100>, <0x100000 0x7800>;
  277. reg-names = "m_can", "message_ram";
  278. interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH
  279. GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
  280. interrupt-names = "int0", "int1";
  281. clocks = <&pmc PMC_TYPE_PERIPHERAL 61>, <&pmc PMC_TYPE_GCK 61>;
  282. clock-names = "hclk", "cclk";
  283. assigned-clocks = <&pmc PMC_TYPE_GCK 61>;
  284. assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
  285. assigned-clock-rates = <40000000>;
  286. bosch,mram-cfg = <0x3400 0 0 64 0 0 32 32>;
  287. status = "disabled";
  288. };
  289. can1: can@e082c000 {
  290. compatible = "bosch,m_can";
  291. reg = <0xe082c000 0x100>, <0x100000 0xbc00>;
  292. reg-names = "m_can", "message_ram";
  293. interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH
  294. GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
  295. interrupt-names = "int0", "int1";
  296. clocks = <&pmc PMC_TYPE_PERIPHERAL 62>, <&pmc PMC_TYPE_GCK 62>;
  297. clock-names = "hclk", "cclk";
  298. assigned-clocks = <&pmc PMC_TYPE_GCK 62>;
  299. assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
  300. assigned-clock-rates = <40000000>;
  301. bosch,mram-cfg = <0x7800 0 0 64 0 0 32 32>;
  302. status = "disabled";
  303. };
  304. can2: can@e0830000 {
  305. compatible = "bosch,m_can";
  306. reg = <0xe0830000 0x100>, <0x100000 0x10000>;
  307. reg-names = "m_can", "message_ram";
  308. interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH
  309. GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
  310. interrupt-names = "int0", "int1";
  311. clocks = <&pmc PMC_TYPE_PERIPHERAL 63>, <&pmc PMC_TYPE_GCK 63>;
  312. clock-names = "hclk", "cclk";
  313. assigned-clocks = <&pmc PMC_TYPE_GCK 63>;
  314. assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
  315. assigned-clock-rates = <40000000>;
  316. bosch,mram-cfg = <0xbc00 0 0 64 0 0 32 32>;
  317. status = "disabled";
  318. };
  319. can3: can@e0834000 {
  320. compatible = "bosch,m_can";
  321. reg = <0xe0834000 0x100>, <0x110000 0x4400>;
  322. reg-names = "m_can", "message_ram";
  323. interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH
  324. GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
  325. interrupt-names = "int0", "int1";
  326. clocks = <&pmc PMC_TYPE_PERIPHERAL 64>, <&pmc PMC_TYPE_GCK 64>;
  327. clock-names = "hclk", "cclk";
  328. assigned-clocks = <&pmc PMC_TYPE_GCK 64>;
  329. assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
  330. assigned-clock-rates = <40000000>;
  331. bosch,mram-cfg = <0x0 0 0 64 0 0 32 32>;
  332. status = "disabled";
  333. };
  334. can4: can@e0838000 {
  335. compatible = "bosch,m_can";
  336. reg = <0xe0838000 0x100>, <0x110000 0x8800>;
  337. reg-names = "m_can", "message_ram";
  338. interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH
  339. GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
  340. interrupt-names = "int0", "int1";
  341. clocks = <&pmc PMC_TYPE_PERIPHERAL 65>, <&pmc PMC_TYPE_GCK 65>;
  342. clock-names = "hclk", "cclk";
  343. assigned-clocks = <&pmc PMC_TYPE_GCK 65>;
  344. assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
  345. assigned-clock-rates = <40000000>;
  346. bosch,mram-cfg = <0x4400 0 0 64 0 0 32 32>;
  347. status = "disabled";
  348. };
  349. can5: can@e083c000 {
  350. compatible = "bosch,m_can";
  351. reg = <0xe083c000 0x100>, <0x110000 0xcc00>;
  352. reg-names = "m_can", "message_ram";
  353. interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH
  354. GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
  355. interrupt-names = "int0", "int1";
  356. clocks = <&pmc PMC_TYPE_PERIPHERAL 66>, <&pmc PMC_TYPE_GCK 66>;
  357. clock-names = "hclk", "cclk";
  358. assigned-clocks = <&pmc PMC_TYPE_GCK 66>;
  359. assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
  360. assigned-clock-rates = <40000000>;
  361. bosch,mram-cfg = <0x8800 0 0 64 0 0 32 32>;
  362. status = "disabled";
  363. };
  364. adc: adc@e1000000 {
  365. compatible = "microchip,sama7g5-adc";
  366. reg = <0xe1000000 0x200>;
  367. interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
  368. clocks = <&pmc PMC_TYPE_GCK 26>;
  369. assigned-clocks = <&pmc PMC_TYPE_GCK 26>;
  370. assigned-clock-rates = <100000000>;
  371. clock-names = "adc_clk";
  372. dmas = <&dma0 AT91_XDMAC_DT_PERID(0)>;
  373. dma-names = "rx";
  374. atmel,min-sample-rate-hz = <200000>;
  375. atmel,max-sample-rate-hz = <20000000>;
  376. atmel,startup-time-ms = <4>;
  377. status = "disabled";
  378. };
  379. sdmmc0: mmc@e1204000 {
  380. compatible = "microchip,sama7g5-sdhci", "microchip,sam9x60-sdhci";
  381. reg = <0xe1204000 0x4000>;
  382. interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
  383. clocks = <&pmc PMC_TYPE_PERIPHERAL 80>, <&pmc PMC_TYPE_GCK 80>;
  384. clock-names = "hclock", "multclk";
  385. assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
  386. assigned-clocks = <&pmc PMC_TYPE_GCK 80>;
  387. assigned-clock-rates = <200000000>;
  388. microchip,sdcal-inverted;
  389. status = "disabled";
  390. };
  391. sdmmc1: mmc@e1208000 {
  392. compatible = "microchip,sama7g5-sdhci", "microchip,sam9x60-sdhci";
  393. reg = <0xe1208000 0x4000>;
  394. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
  395. clocks = <&pmc PMC_TYPE_PERIPHERAL 81>, <&pmc PMC_TYPE_GCK 81>;
  396. clock-names = "hclock", "multclk";
  397. assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
  398. assigned-clocks = <&pmc PMC_TYPE_GCK 81>;
  399. assigned-clock-rates = <200000000>;
  400. microchip,sdcal-inverted;
  401. status = "disabled";
  402. };
  403. sdmmc2: mmc@e120c000 {
  404. compatible = "microchip,sama7g5-sdhci", "microchip,sam9x60-sdhci";
  405. reg = <0xe120c000 0x4000>;
  406. interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
  407. clocks = <&pmc PMC_TYPE_PERIPHERAL 82>, <&pmc PMC_TYPE_GCK 82>;
  408. clock-names = "hclock", "multclk";
  409. assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_SYSPLL>;
  410. assigned-clocks = <&pmc PMC_TYPE_GCK 82>;
  411. assigned-clock-rates = <200000000>;
  412. microchip,sdcal-inverted;
  413. status = "disabled";
  414. };
  415. pwm: pwm@e1604000 {
  416. compatible = "microchip,sama7g5-pwm", "atmel,sama5d2-pwm";
  417. reg = <0xe1604000 0x4000>;
  418. interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
  419. #pwm-cells = <3>;
  420. clocks = <&pmc PMC_TYPE_PERIPHERAL 77>;
  421. status = "disabled";
  422. };
  423. pdmc0: sound@e1608000 {
  424. compatible = "microchip,sama7g5-pdmc";
  425. reg = <0xe1608000 0x1000>;
  426. interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
  427. #sound-dai-cells = <0>;
  428. dmas = <&dma0 AT91_XDMAC_DT_PERID(37)>;
  429. dma-names = "rx";
  430. clocks = <&pmc PMC_TYPE_PERIPHERAL 68>, <&pmc PMC_TYPE_GCK 68>;
  431. clock-names = "pclk", "gclk";
  432. status = "disabled";
  433. };
  434. pdmc1: sound@e160c000 {
  435. compatible = "microchip,sama7g5-pdmc";
  436. reg = <0xe160c000 0x1000>;
  437. interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
  438. #sound-dai-cells = <0>;
  439. dmas = <&dma0 AT91_XDMAC_DT_PERID(38)>;
  440. dma-names = "rx";
  441. clocks = <&pmc PMC_TYPE_PERIPHERAL 69>, <&pmc PMC_TYPE_GCK 69>;
  442. clock-names = "pclk", "gclk";
  443. status = "disabled";
  444. };
  445. spdifrx: spdifrx@e1614000 {
  446. #sound-dai-cells = <0>;
  447. compatible = "microchip,sama7g5-spdifrx";
  448. reg = <0xe1614000 0x4000>;
  449. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
  450. dmas = <&dma0 AT91_XDMAC_DT_PERID(49)>;
  451. dma-names = "rx";
  452. clocks = <&pmc PMC_TYPE_PERIPHERAL 84>, <&pmc PMC_TYPE_GCK 84>;
  453. clock-names = "pclk", "gclk";
  454. status = "disabled";
  455. };
  456. spdiftx: spdiftx@e1618000 {
  457. #sound-dai-cells = <0>;
  458. compatible = "microchip,sama7g5-spdiftx";
  459. reg = <0xe1618000 0x4000>;
  460. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  461. dmas = <&dma0 AT91_XDMAC_DT_PERID(50)>;
  462. dma-names = "tx";
  463. clocks = <&pmc PMC_TYPE_PERIPHERAL 85>, <&pmc PMC_TYPE_GCK 85>;
  464. clock-names = "pclk", "gclk";
  465. };
  466. i2s0: i2s@e161c000 {
  467. compatible = "microchip,sama7g5-i2smcc";
  468. #sound-dai-cells = <0>;
  469. reg = <0xe161c000 0x4000>;
  470. interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
  471. dmas = <&dma0 AT91_XDMAC_DT_PERID(34)>, <&dma0 AT91_XDMAC_DT_PERID(33)>;
  472. dma-names = "tx", "rx";
  473. clocks = <&pmc PMC_TYPE_PERIPHERAL 57>, <&pmc PMC_TYPE_GCK 57>;
  474. clock-names = "pclk", "gclk";
  475. status = "disabled";
  476. };
  477. i2s1: i2s@e1620000 {
  478. compatible = "microchip,sama7g5-i2smcc";
  479. #sound-dai-cells = <0>;
  480. reg = <0xe1620000 0x4000>;
  481. interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
  482. dmas = <&dma0 AT91_XDMAC_DT_PERID(36)>, <&dma0 AT91_XDMAC_DT_PERID(35)>;
  483. dma-names = "tx", "rx";
  484. clocks = <&pmc PMC_TYPE_PERIPHERAL 58>, <&pmc PMC_TYPE_GCK 58>;
  485. clock-names = "pclk", "gclk";
  486. status = "disabled";
  487. };
  488. eic: interrupt-controller@e1628000 {
  489. compatible = "microchip,sama7g5-eic";
  490. reg = <0xe1628000 0xec>;
  491. interrupt-parent = <&gic>;
  492. interrupt-controller;
  493. #interrupt-cells = <2>;
  494. interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
  495. <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
  496. clocks = <&pmc PMC_TYPE_PERIPHERAL 37>;
  497. clock-names = "pclk";
  498. status = "disabled";
  499. };
  500. pit64b0: timer@e1800000 {
  501. compatible = "microchip,sama7g5-pit64b", "microchip,sam9x60-pit64b";
  502. reg = <0xe1800000 0x4000>;
  503. interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
  504. clocks = <&pmc PMC_TYPE_PERIPHERAL 70>, <&pmc PMC_TYPE_GCK 70>;
  505. clock-names = "pclk", "gclk";
  506. };
  507. pit64b1: timer@e1804000 {
  508. compatible = "microchip,sama7g5-pit64b", "microchip,sam9x60-pit64b";
  509. reg = <0xe1804000 0x4000>;
  510. interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
  511. clocks = <&pmc PMC_TYPE_PERIPHERAL 71>, <&pmc PMC_TYPE_GCK 71>;
  512. clock-names = "pclk", "gclk";
  513. };
  514. aes: crypto@e1810000 {
  515. compatible = "atmel,at91sam9g46-aes";
  516. reg = <0xe1810000 0x100>;
  517. interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
  518. clocks = <&pmc PMC_TYPE_PERIPHERAL 27>;
  519. clock-names = "aes_clk";
  520. dmas = <&dma0 AT91_XDMAC_DT_PERID(1)>,
  521. <&dma0 AT91_XDMAC_DT_PERID(2)>;
  522. dma-names = "tx", "rx";
  523. };
  524. sha: crypto@e1814000 {
  525. compatible = "atmel,at91sam9g46-sha";
  526. reg = <0xe1814000 0x100>;
  527. interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
  528. clocks = <&pmc PMC_TYPE_PERIPHERAL 83>;
  529. clock-names = "sha_clk";
  530. dmas = <&dma0 AT91_XDMAC_DT_PERID(48)>;
  531. dma-names = "tx";
  532. };
  533. flx0: flexcom@e1818000 {
  534. compatible = "atmel,sama5d2-flexcom";
  535. reg = <0xe1818000 0x200>;
  536. clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
  537. #address-cells = <1>;
  538. #size-cells = <1>;
  539. ranges = <0x0 0xe1818000 0x800>;
  540. status = "disabled";
  541. uart0: serial@200 {
  542. compatible = "atmel,at91sam9260-usart";
  543. reg = <0x200 0x200>;
  544. atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
  545. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  546. clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
  547. clock-names = "usart";
  548. dmas = <&dma1 AT91_XDMAC_DT_PERID(6)>,
  549. <&dma1 AT91_XDMAC_DT_PERID(5)>;
  550. dma-names = "tx", "rx";
  551. atmel,use-dma-rx;
  552. atmel,use-dma-tx;
  553. status = "disabled";
  554. };
  555. };
  556. flx1: flexcom@e181c000 {
  557. compatible = "atmel,sama5d2-flexcom";
  558. reg = <0xe181c000 0x200>;
  559. clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
  560. #address-cells = <1>;
  561. #size-cells = <1>;
  562. ranges = <0x0 0xe181c000 0x800>;
  563. status = "disabled";
  564. i2c1: i2c@600 {
  565. compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c";
  566. reg = <0x600 0x200>;
  567. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
  568. #address-cells = <1>;
  569. #size-cells = <0>;
  570. clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
  571. atmel,fifo-size = <32>;
  572. dmas = <&dma0 AT91_XDMAC_DT_PERID(8)>,
  573. <&dma0 AT91_XDMAC_DT_PERID(7)>;
  574. dma-names = "tx", "rx";
  575. status = "disabled";
  576. };
  577. };
  578. flx3: flexcom@e1824000 {
  579. compatible = "atmel,sama5d2-flexcom";
  580. reg = <0xe1824000 0x200>;
  581. clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
  582. #address-cells = <1>;
  583. #size-cells = <1>;
  584. ranges = <0x0 0xe1824000 0x800>;
  585. status = "disabled";
  586. uart3: serial@200 {
  587. compatible = "atmel,at91sam9260-usart";
  588. reg = <0x200 0x200>;
  589. atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
  590. interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
  591. clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
  592. clock-names = "usart";
  593. dmas = <&dma1 AT91_XDMAC_DT_PERID(12)>,
  594. <&dma1 AT91_XDMAC_DT_PERID(11)>;
  595. dma-names = "tx", "rx";
  596. atmel,use-dma-rx;
  597. atmel,use-dma-tx;
  598. status = "disabled";
  599. };
  600. };
  601. trng: rng@e2010000 {
  602. compatible = "microchip,sama7g5-trng", "atmel,at91sam9g45-trng";
  603. reg = <0xe2010000 0x100>;
  604. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  605. clocks = <&pmc PMC_TYPE_PERIPHERAL 97>;
  606. status = "disabled";
  607. };
  608. tdes: crypto@e2014000 {
  609. compatible = "atmel,at91sam9g46-tdes";
  610. reg = <0xe2014000 0x100>;
  611. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  612. clocks = <&pmc PMC_TYPE_PERIPHERAL 96>;
  613. clock-names = "tdes_clk";
  614. dmas = <&dma0 AT91_XDMAC_DT_PERID(54)>,
  615. <&dma0 AT91_XDMAC_DT_PERID(53)>;
  616. dma-names = "tx", "rx";
  617. };
  618. flx4: flexcom@e2018000 {
  619. compatible = "atmel,sama5d2-flexcom";
  620. reg = <0xe2018000 0x200>;
  621. clocks = <&pmc PMC_TYPE_PERIPHERAL 42>;
  622. #address-cells = <1>;
  623. #size-cells = <1>;
  624. ranges = <0x0 0xe2018000 0x800>;
  625. status = "disabled";
  626. uart4: serial@200 {
  627. compatible = "atmel,at91sam9260-usart";
  628. reg = <0x200 0x200>;
  629. atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
  630. interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
  631. clocks = <&pmc PMC_TYPE_PERIPHERAL 42>;
  632. clock-names = "usart";
  633. dmas = <&dma1 AT91_XDMAC_DT_PERID(14)>,
  634. <&dma1 AT91_XDMAC_DT_PERID(13)>;
  635. dma-names = "tx", "rx";
  636. atmel,use-dma-rx;
  637. atmel,use-dma-tx;
  638. atmel,fifo-size = <16>;
  639. status = "disabled";
  640. };
  641. };
  642. flx7: flexcom@e2024000 {
  643. compatible = "atmel,sama5d2-flexcom";
  644. reg = <0xe2024000 0x200>;
  645. clocks = <&pmc PMC_TYPE_PERIPHERAL 45>;
  646. #address-cells = <1>;
  647. #size-cells = <1>;
  648. ranges = <0x0 0xe2024000 0x800>;
  649. status = "disabled";
  650. uart7: serial@200 {
  651. compatible = "atmel,at91sam9260-usart";
  652. reg = <0x200 0x200>;
  653. atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
  654. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
  655. clocks = <&pmc PMC_TYPE_PERIPHERAL 45>;
  656. clock-names = "usart";
  657. dmas = <&dma1 AT91_XDMAC_DT_PERID(20)>,
  658. <&dma1 AT91_XDMAC_DT_PERID(19)>;
  659. dma-names = "tx", "rx";
  660. atmel,use-dma-rx;
  661. atmel,use-dma-tx;
  662. atmel,fifo-size = <16>;
  663. status = "disabled";
  664. };
  665. };
  666. gmac0: ethernet@e2800000 {
  667. compatible = "microchip,sama7g5-gem";
  668. reg = <0xe2800000 0x1000>;
  669. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH
  670. GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH
  671. GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH
  672. GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH
  673. GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH
  674. GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
  675. clocks = <&pmc PMC_TYPE_PERIPHERAL 51>, <&pmc PMC_TYPE_PERIPHERAL 51>, <&pmc PMC_TYPE_GCK 51>, <&pmc PMC_TYPE_GCK 53>;
  676. clock-names = "pclk", "hclk", "tx_clk", "tsu_clk";
  677. assigned-clocks = <&pmc PMC_TYPE_GCK 51>;
  678. assigned-clock-rates = <125000000>;
  679. status = "disabled";
  680. };
  681. gmac1: ethernet@e2804000 {
  682. compatible = "microchip,sama7g5-emac";
  683. reg = <0xe2804000 0x1000>;
  684. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH
  685. GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
  686. clocks = <&pmc PMC_TYPE_PERIPHERAL 52>, <&pmc PMC_TYPE_PERIPHERAL 52>;
  687. clock-names = "pclk", "hclk";
  688. status = "disabled";
  689. };
  690. dma0: dma-controller@e2808000 {
  691. compatible = "microchip,sama7g5-dma";
  692. reg = <0xe2808000 0x1000>;
  693. interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
  694. #dma-cells = <1>;
  695. clocks = <&pmc PMC_TYPE_PERIPHERAL 22>;
  696. clock-names = "dma_clk";
  697. status = "disabled";
  698. };
  699. dma1: dma-controller@e280c000 {
  700. compatible = "microchip,sama7g5-dma";
  701. reg = <0xe280c000 0x1000>;
  702. interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
  703. #dma-cells = <1>;
  704. clocks = <&pmc PMC_TYPE_PERIPHERAL 23>;
  705. clock-names = "dma_clk";
  706. status = "disabled";
  707. };
  708. /* Place dma2 here despite it's address */
  709. dma2: dma-controller@e1200000 {
  710. compatible = "microchip,sama7g5-dma";
  711. reg = <0xe1200000 0x1000>;
  712. interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
  713. #dma-cells = <1>;
  714. clocks = <&pmc PMC_TYPE_PERIPHERAL 24>;
  715. clock-names = "dma_clk";
  716. dma-requests = <0>;
  717. status = "disabled";
  718. };
  719. tcb0: timer@e2814000 {
  720. compatible = "atmel,sama5d2-tcb", "simple-mfd", "syscon";
  721. #address-cells = <1>;
  722. #size-cells = <0>;
  723. reg = <0xe2814000 0x100>;
  724. interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
  725. clocks = <&pmc PMC_TYPE_PERIPHERAL 88>, <&pmc PMC_TYPE_PERIPHERAL 89>, <&pmc PMC_TYPE_PERIPHERAL 90>, <&clk32k 1>;
  726. clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
  727. };
  728. flx8: flexcom@e2818000 {
  729. compatible = "atmel,sama5d2-flexcom";
  730. reg = <0xe2818000 0x200>;
  731. clocks = <&pmc PMC_TYPE_PERIPHERAL 46>;
  732. #address-cells = <1>;
  733. #size-cells = <1>;
  734. ranges = <0x0 0xe2818000 0x800>;
  735. status = "disabled";
  736. i2c8: i2c@600 {
  737. compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c";
  738. reg = <0x600 0x200>;
  739. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
  740. #address-cells = <1>;
  741. #size-cells = <0>;
  742. clocks = <&pmc PMC_TYPE_PERIPHERAL 46>;
  743. atmel,fifo-size = <32>;
  744. dmas = <&dma0 AT91_XDMAC_DT_PERID(22)>,
  745. <&dma0 AT91_XDMAC_DT_PERID(21)>;
  746. dma-names = "tx", "rx";
  747. status = "disabled";
  748. };
  749. };
  750. flx9: flexcom@e281c000 {
  751. compatible = "atmel,sama5d2-flexcom";
  752. reg = <0xe281c000 0x200>;
  753. clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
  754. #address-cells = <1>;
  755. #size-cells = <1>;
  756. ranges = <0x0 0xe281c000 0x800>;
  757. status = "disabled";
  758. i2c9: i2c@600 {
  759. compatible = "microchip,sama7g5-i2c", "microchip,sam9x60-i2c";
  760. reg = <0x600 0x200>;
  761. interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
  762. #address-cells = <1>;
  763. #size-cells = <0>;
  764. clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
  765. atmel,fifo-size = <32>;
  766. dmas = <&dma0 AT91_XDMAC_DT_PERID(24)>,
  767. <&dma0 AT91_XDMAC_DT_PERID(23)>;
  768. dma-names = "tx", "rx";
  769. status = "disabled";
  770. };
  771. };
  772. flx11: flexcom@e2824000 {
  773. compatible = "atmel,sama5d2-flexcom";
  774. reg = <0xe2824000 0x200>;
  775. clocks = <&pmc PMC_TYPE_PERIPHERAL 49>;
  776. #address-cells = <1>;
  777. #size-cells = <1>;
  778. ranges = <0x0 0xe2824000 0x800>;
  779. status = "disabled";
  780. spi11: spi@400 {
  781. compatible = "atmel,at91rm9200-spi";
  782. reg = <0x400 0x200>;
  783. interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
  784. clocks = <&pmc PMC_TYPE_PERIPHERAL 49>;
  785. clock-names = "spi_clk";
  786. #address-cells = <1>;
  787. #size-cells = <0>;
  788. atmel,fifo-size = <32>;
  789. dmas = <&dma0 AT91_XDMAC_DT_PERID(28)>,
  790. <&dma0 AT91_XDMAC_DT_PERID(27)>;
  791. dma-names = "tx", "rx";
  792. status = "disabled";
  793. };
  794. };
  795. uddrc: uddrc@e3800000 {
  796. compatible = "microchip,sama7g5-uddrc";
  797. reg = <0xe3800000 0x4000>;
  798. };
  799. ddr3phy: ddr3phy@e3804000 {
  800. compatible = "microchip,sama7g5-ddr3phy";
  801. reg = <0xe3804000 0x1000>;
  802. };
  803. gic: interrupt-controller@e8c11000 {
  804. compatible = "arm,cortex-a7-gic";
  805. #interrupt-cells = <3>;
  806. #address-cells = <0>;
  807. interrupt-controller;
  808. reg = <0xe8c11000 0x1000>,
  809. <0xe8c12000 0x2000>;
  810. };
  811. };
  812. };