sama5d3.dtsi 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860
  1. /*
  2. * sama5d3.dtsi - Device Tree Include file for SAMA5D3 family SoC
  3. * applies to SAMA5D31, SAMA5D33, SAMA5D34, SAMA5D35 SoC
  4. *
  5. * Copyright (C) 2013 Atmel,
  6. * 2013 Ludovic Desroches <ludovic.desroches@atmel.com>
  7. *
  8. * Licensed under GPLv2 or later.
  9. */
  10. #include "skeleton.dtsi"
  11. #include <dt-bindings/dma/at91.h>
  12. #include <dt-bindings/pinctrl/at91.h>
  13. #include <dt-bindings/interrupt-controller/irq.h>
  14. #include <dt-bindings/gpio/gpio.h>
  15. / {
  16. model = "Atmel SAMA5D3 family SoC";
  17. compatible = "atmel,sama5d3", "atmel,sama5";
  18. interrupt-parent = <&aic>;
  19. aliases {
  20. serial0 = &dbgu;
  21. serial1 = &usart0;
  22. serial2 = &usart1;
  23. serial3 = &usart2;
  24. serial4 = &usart3;
  25. gpio0 = &pioA;
  26. gpio1 = &pioB;
  27. gpio2 = &pioC;
  28. gpio3 = &pioD;
  29. gpio4 = &pioE;
  30. tcb0 = &tcb0;
  31. i2c0 = &i2c0;
  32. i2c1 = &i2c1;
  33. i2c2 = &i2c2;
  34. ssc0 = &ssc0;
  35. ssc1 = &ssc1;
  36. };
  37. cpus {
  38. #address-cells = <1>;
  39. #size-cells = <0>;
  40. cpu@0 {
  41. device_type = "cpu";
  42. compatible = "arm,cortex-a5";
  43. reg = <0x0>;
  44. };
  45. };
  46. pmu {
  47. compatible = "arm,cortex-a5-pmu";
  48. interrupts = <46 IRQ_TYPE_LEVEL_HIGH 0>;
  49. };
  50. memory {
  51. reg = <0x20000000 0x8000000>;
  52. };
  53. ahb {
  54. compatible = "simple-bus";
  55. #address-cells = <1>;
  56. #size-cells = <1>;
  57. ranges;
  58. apb {
  59. compatible = "simple-bus";
  60. #address-cells = <1>;
  61. #size-cells = <1>;
  62. ranges;
  63. mmc0: mmc@f0000000 {
  64. compatible = "atmel,hsmci";
  65. reg = <0xf0000000 0x600>;
  66. interrupts = <21 IRQ_TYPE_LEVEL_HIGH 0>;
  67. dmas = <&dma0 2 AT91_DMA_CFG_PER_ID(0)>;
  68. dma-names = "rxtx";
  69. pinctrl-names = "default";
  70. pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_dat4_7>;
  71. status = "disabled";
  72. #address-cells = <1>;
  73. #size-cells = <0>;
  74. };
  75. spi0: spi@f0004000 {
  76. #address-cells = <1>;
  77. #size-cells = <0>;
  78. compatible = "atmel,at91rm9200-spi";
  79. reg = <0xf0004000 0x100>;
  80. interrupts = <24 IRQ_TYPE_LEVEL_HIGH 3>;
  81. dmas = <&dma0 2 AT91_DMA_CFG_PER_ID(1)>,
  82. <&dma0 2 AT91_DMA_CFG_PER_ID(2)>;
  83. dma-names = "tx", "rx";
  84. pinctrl-names = "default";
  85. pinctrl-0 = <&pinctrl_spi0>;
  86. status = "disabled";
  87. };
  88. ssc0: ssc@f0008000 {
  89. compatible = "atmel,at91sam9g45-ssc";
  90. reg = <0xf0008000 0x4000>;
  91. interrupts = <38 IRQ_TYPE_LEVEL_HIGH 4>;
  92. pinctrl-names = "default";
  93. pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
  94. status = "disabled";
  95. };
  96. tcb0: timer@f0010000 {
  97. compatible = "atmel,at91sam9x5-tcb";
  98. reg = <0xf0010000 0x100>;
  99. interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>;
  100. };
  101. i2c0: i2c@f0014000 {
  102. compatible = "atmel,at91sam9x5-i2c";
  103. reg = <0xf0014000 0x4000>;
  104. interrupts = <18 IRQ_TYPE_LEVEL_HIGH 6>;
  105. dmas = <&dma0 2 AT91_DMA_CFG_PER_ID(7)>,
  106. <&dma0 2 AT91_DMA_CFG_PER_ID(8)>;
  107. dma-names = "tx", "rx";
  108. pinctrl-names = "default";
  109. pinctrl-0 = <&pinctrl_i2c0>;
  110. #address-cells = <1>;
  111. #size-cells = <0>;
  112. status = "disabled";
  113. };
  114. i2c1: i2c@f0018000 {
  115. compatible = "atmel,at91sam9x5-i2c";
  116. reg = <0xf0018000 0x4000>;
  117. interrupts = <19 IRQ_TYPE_LEVEL_HIGH 6>;
  118. dmas = <&dma0 2 AT91_DMA_CFG_PER_ID(9)>,
  119. <&dma0 2 AT91_DMA_CFG_PER_ID(10)>;
  120. dma-names = "tx", "rx";
  121. pinctrl-names = "default";
  122. pinctrl-0 = <&pinctrl_i2c1>;
  123. #address-cells = <1>;
  124. #size-cells = <0>;
  125. status = "disabled";
  126. };
  127. usart0: serial@f001c000 {
  128. compatible = "atmel,at91sam9260-usart";
  129. reg = <0xf001c000 0x100>;
  130. interrupts = <12 IRQ_TYPE_LEVEL_HIGH 5>;
  131. pinctrl-names = "default";
  132. pinctrl-0 = <&pinctrl_usart0>;
  133. status = "disabled";
  134. };
  135. usart1: serial@f0020000 {
  136. compatible = "atmel,at91sam9260-usart";
  137. reg = <0xf0020000 0x100>;
  138. interrupts = <13 IRQ_TYPE_LEVEL_HIGH 5>;
  139. pinctrl-names = "default";
  140. pinctrl-0 = <&pinctrl_usart1>;
  141. status = "disabled";
  142. };
  143. isi: isi@f0034000 {
  144. compatible = "atmel,at91sam9g45-isi";
  145. reg = <0xf0034000 0x4000>;
  146. interrupts = <37 IRQ_TYPE_LEVEL_HIGH 5>;
  147. status = "disabled";
  148. };
  149. mmc1: mmc@f8000000 {
  150. compatible = "atmel,hsmci";
  151. reg = <0xf8000000 0x600>;
  152. interrupts = <22 IRQ_TYPE_LEVEL_HIGH 0>;
  153. dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(0)>;
  154. dma-names = "rxtx";
  155. pinctrl-names = "default";
  156. pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3>;
  157. status = "disabled";
  158. #address-cells = <1>;
  159. #size-cells = <0>;
  160. };
  161. spi1: spi@f8008000 {
  162. #address-cells = <1>;
  163. #size-cells = <0>;
  164. compatible = "atmel,at91rm9200-spi";
  165. reg = <0xf8008000 0x100>;
  166. interrupts = <25 IRQ_TYPE_LEVEL_HIGH 3>;
  167. dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(15)>,
  168. <&dma1 2 AT91_DMA_CFG_PER_ID(16)>;
  169. dma-names = "tx", "rx";
  170. pinctrl-names = "default";
  171. pinctrl-0 = <&pinctrl_spi1>;
  172. status = "disabled";
  173. };
  174. ssc1: ssc@f800c000 {
  175. compatible = "atmel,at91sam9g45-ssc";
  176. reg = <0xf800c000 0x4000>;
  177. interrupts = <39 IRQ_TYPE_LEVEL_HIGH 4>;
  178. pinctrl-names = "default";
  179. pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
  180. status = "disabled";
  181. };
  182. adc0: adc@f8018000 {
  183. compatible = "atmel,at91sam9260-adc";
  184. reg = <0xf8018000 0x100>;
  185. interrupts = <29 IRQ_TYPE_LEVEL_HIGH 5>;
  186. pinctrl-names = "default";
  187. pinctrl-0 = <
  188. &pinctrl_adc0_adtrg
  189. &pinctrl_adc0_ad0
  190. &pinctrl_adc0_ad1
  191. &pinctrl_adc0_ad2
  192. &pinctrl_adc0_ad3
  193. &pinctrl_adc0_ad4
  194. &pinctrl_adc0_ad5
  195. &pinctrl_adc0_ad6
  196. &pinctrl_adc0_ad7
  197. &pinctrl_adc0_ad8
  198. &pinctrl_adc0_ad9
  199. &pinctrl_adc0_ad10
  200. &pinctrl_adc0_ad11
  201. >;
  202. atmel,adc-channel-base = <0x50>;
  203. atmel,adc-channels-used = <0xfff>;
  204. atmel,adc-drdy-mask = <0x1000000>;
  205. atmel,adc-num-channels = <12>;
  206. atmel,adc-startup-time = <40>;
  207. atmel,adc-status-register = <0x30>;
  208. atmel,adc-trigger-register = <0xc0>;
  209. atmel,adc-use-external;
  210. atmel,adc-vref = <3000>;
  211. atmel,adc-res = <10 12>;
  212. atmel,adc-res-names = "lowres", "highres";
  213. status = "disabled";
  214. trigger@0 {
  215. trigger-name = "external-rising";
  216. trigger-value = <0x1>;
  217. trigger-external;
  218. };
  219. trigger@1 {
  220. trigger-name = "external-falling";
  221. trigger-value = <0x2>;
  222. trigger-external;
  223. };
  224. trigger@2 {
  225. trigger-name = "external-any";
  226. trigger-value = <0x3>;
  227. trigger-external;
  228. };
  229. trigger@3 {
  230. trigger-name = "continuous";
  231. trigger-value = <0x6>;
  232. };
  233. };
  234. tsadcc: tsadcc@f8018000 {
  235. compatible = "atmel,at91sam9x5-tsadcc";
  236. reg = <0xf8018000 0x4000>;
  237. interrupts = <29 IRQ_TYPE_LEVEL_HIGH 5>;
  238. atmel,tsadcc_clock = <300000>;
  239. atmel,filtering_average = <0x03>;
  240. atmel,pendet_debounce = <0x08>;
  241. atmel,pendet_sensitivity = <0x02>;
  242. atmel,ts_sample_hold_time = <0x0a>;
  243. status = "disabled";
  244. };
  245. i2c2: i2c@f801c000 {
  246. compatible = "atmel,at91sam9x5-i2c";
  247. reg = <0xf801c000 0x4000>;
  248. interrupts = <20 IRQ_TYPE_LEVEL_HIGH 6>;
  249. dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(11)>,
  250. <&dma1 2 AT91_DMA_CFG_PER_ID(12)>;
  251. dma-names = "tx", "rx";
  252. #address-cells = <1>;
  253. #size-cells = <0>;
  254. status = "disabled";
  255. };
  256. usart2: serial@f8020000 {
  257. compatible = "atmel,at91sam9260-usart";
  258. reg = <0xf8020000 0x100>;
  259. interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
  260. pinctrl-names = "default";
  261. pinctrl-0 = <&pinctrl_usart2>;
  262. status = "disabled";
  263. };
  264. usart3: serial@f8024000 {
  265. compatible = "atmel,at91sam9260-usart";
  266. reg = <0xf8024000 0x100>;
  267. interrupts = <15 IRQ_TYPE_LEVEL_HIGH 5>;
  268. pinctrl-names = "default";
  269. pinctrl-0 = <&pinctrl_usart3>;
  270. status = "disabled";
  271. };
  272. sha@f8034000 {
  273. compatible = "atmel,sam9g46-sha";
  274. reg = <0xf8034000 0x100>;
  275. interrupts = <42 IRQ_TYPE_LEVEL_HIGH 0>;
  276. };
  277. aes@f8038000 {
  278. compatible = "atmel,sam9g46-aes";
  279. reg = <0xf8038000 0x100>;
  280. interrupts = <43 4 0>;
  281. };
  282. tdes@f803c000 {
  283. compatible = "atmel,sam9g46-tdes";
  284. reg = <0xf803c000 0x100>;
  285. interrupts = <44 IRQ_TYPE_LEVEL_HIGH 0>;
  286. };
  287. dma0: dma-controller@ffffe600 {
  288. compatible = "atmel,at91sam9g45-dma";
  289. reg = <0xffffe600 0x200>;
  290. interrupts = <30 IRQ_TYPE_LEVEL_HIGH 0>;
  291. #dma-cells = <2>;
  292. };
  293. dma1: dma-controller@ffffe800 {
  294. compatible = "atmel,at91sam9g45-dma";
  295. reg = <0xffffe800 0x200>;
  296. interrupts = <31 IRQ_TYPE_LEVEL_HIGH 0>;
  297. #dma-cells = <2>;
  298. };
  299. ramc0: ramc@ffffea00 {
  300. compatible = "atmel,at91sam9g45-ddramc";
  301. reg = <0xffffea00 0x200>;
  302. };
  303. dbgu: serial@ffffee00 {
  304. compatible = "atmel,at91sam9260-usart";
  305. reg = <0xffffee00 0x200>;
  306. interrupts = <2 IRQ_TYPE_LEVEL_HIGH 7>;
  307. pinctrl-names = "default";
  308. pinctrl-0 = <&pinctrl_dbgu>;
  309. status = "disabled";
  310. };
  311. aic: interrupt-controller@fffff000 {
  312. #interrupt-cells = <3>;
  313. compatible = "atmel,sama5d3-aic";
  314. interrupt-controller;
  315. reg = <0xfffff000 0x200>;
  316. atmel,external-irqs = <47>;
  317. };
  318. pinctrl@fffff200 {
  319. #address-cells = <1>;
  320. #size-cells = <1>;
  321. compatible = "atmel,at91sam9x5-pinctrl", "atmel,at91rm9200-pinctrl", "simple-bus";
  322. ranges = <0xfffff200 0xfffff200 0xa00>;
  323. atmel,mux-mask = <
  324. /* A B C */
  325. 0xffffffff 0xc0fc0000 0xc0ff0000 /* pioA */
  326. 0xffffffff 0x0ff8ffff 0x00000000 /* pioB */
  327. 0xffffffff 0xbc00f1ff 0x7c00fc00 /* pioC */
  328. 0xffffffff 0xc001c0e0 0x0001c1e0 /* pioD */
  329. 0xffffffff 0xbf9f8000 0x18000000 /* pioE */
  330. >;
  331. /* shared pinctrl settings */
  332. adc0 {
  333. pinctrl_adc0_adtrg: adc0_adtrg {
  334. atmel,pins =
  335. <AT91_PIOD 19 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD19 periph A ADTRG */
  336. };
  337. pinctrl_adc0_ad0: adc0_ad0 {
  338. atmel,pins =
  339. <AT91_PIOD 20 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD20 periph A AD0 */
  340. };
  341. pinctrl_adc0_ad1: adc0_ad1 {
  342. atmel,pins =
  343. <AT91_PIOD 21 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD21 periph A AD1 */
  344. };
  345. pinctrl_adc0_ad2: adc0_ad2 {
  346. atmel,pins =
  347. <AT91_PIOD 22 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD22 periph A AD2 */
  348. };
  349. pinctrl_adc0_ad3: adc0_ad3 {
  350. atmel,pins =
  351. <AT91_PIOD 23 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD23 periph A AD3 */
  352. };
  353. pinctrl_adc0_ad4: adc0_ad4 {
  354. atmel,pins =
  355. <AT91_PIOD 24 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD24 periph A AD4 */
  356. };
  357. pinctrl_adc0_ad5: adc0_ad5 {
  358. atmel,pins =
  359. <AT91_PIOD 25 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD25 periph A AD5 */
  360. };
  361. pinctrl_adc0_ad6: adc0_ad6 {
  362. atmel,pins =
  363. <AT91_PIOD 26 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD26 periph A AD6 */
  364. };
  365. pinctrl_adc0_ad7: adc0_ad7 {
  366. atmel,pins =
  367. <AT91_PIOD 27 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD27 periph A AD7 */
  368. };
  369. pinctrl_adc0_ad8: adc0_ad8 {
  370. atmel,pins =
  371. <AT91_PIOD 28 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD28 periph A AD8 */
  372. };
  373. pinctrl_adc0_ad9: adc0_ad9 {
  374. atmel,pins =
  375. <AT91_PIOD 29 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD29 periph A AD9 */
  376. };
  377. pinctrl_adc0_ad10: adc0_ad10 {
  378. atmel,pins =
  379. <AT91_PIOD 30 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD30 periph A AD10, conflicts with PCK0 */
  380. };
  381. pinctrl_adc0_ad11: adc0_ad11 {
  382. atmel,pins =
  383. <AT91_PIOD 31 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD31 periph A AD11, conflicts with PCK1 */
  384. };
  385. };
  386. dbgu {
  387. pinctrl_dbgu: dbgu-0 {
  388. atmel,pins =
  389. <AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB30 periph A */
  390. AT91_PIOB 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PB31 periph A with pullup */
  391. };
  392. };
  393. i2c0 {
  394. pinctrl_i2c0: i2c0-0 {
  395. atmel,pins =
  396. <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_NONE /* PA30 periph A TWD0 pin, conflicts with URXD1, ISI_VSYNC */
  397. AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA31 periph A TWCK0 pin, conflicts with UTXD1, ISI_HSYNC */
  398. };
  399. };
  400. i2c1 {
  401. pinctrl_i2c1: i2c1-0 {
  402. atmel,pins =
  403. <AT91_PIOC 26 AT91_PERIPH_B AT91_PINCTRL_NONE /* PC26 periph B TWD1 pin, conflicts with SPI1_NPCS1, ISI_D11 */
  404. AT91_PIOC 27 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PC27 periph B TWCK1 pin, conflicts with SPI1_NPCS2, ISI_D10 */
  405. };
  406. };
  407. isi {
  408. pinctrl_isi: isi-0 {
  409. atmel,pins =
  410. <AT91_PIOA 16 AT91_PERIPH_C AT91_PINCTRL_NONE /* PA16 periph C ISI_D0, conflicts with LCDDAT16 */
  411. AT91_PIOA 17 AT91_PERIPH_C AT91_PINCTRL_NONE /* PA17 periph C ISI_D1, conflicts with LCDDAT17 */
  412. AT91_PIOA 18 AT91_PERIPH_C AT91_PINCTRL_NONE /* PA18 periph C ISI_D2, conflicts with LCDDAT18, TWD2 */
  413. AT91_PIOA 19 AT91_PERIPH_C AT91_PINCTRL_NONE /* PA19 periph C ISI_D3, conflicts with LCDDAT19, TWCK2 */
  414. AT91_PIOA 20 AT91_PERIPH_C AT91_PINCTRL_NONE /* PA20 periph C ISI_D4, conflicts with LCDDAT20, PWMH0 */
  415. AT91_PIOA 21 AT91_PERIPH_C AT91_PINCTRL_NONE /* PA21 periph C ISI_D5, conflicts with LCDDAT21, PWML0 */
  416. AT91_PIOA 22 AT91_PERIPH_C AT91_PINCTRL_NONE /* PA22 periph C ISI_D6, conflicts with LCDDAT22, PWMH1 */
  417. AT91_PIOA 23 AT91_PERIPH_C AT91_PINCTRL_NONE /* PA23 periph C ISI_D7, conflicts with LCDDAT23, PWML1 */
  418. AT91_PIOC 30 AT91_PERIPH_C AT91_PINCTRL_NONE /* PC30 periph C ISI_PCK, conflicts with UTXD0 */
  419. AT91_PIOA 31 AT91_PERIPH_C AT91_PINCTRL_NONE /* PA31 periph C ISI_HSYNC, conflicts with TWCK0, UTXD1 */
  420. AT91_PIOA 30 AT91_PERIPH_C AT91_PINCTRL_NONE /* PA30 periph C ISI_VSYNC, conflicts with TWD0, URXD1 */
  421. AT91_PIOC 29 AT91_PERIPH_C AT91_PINCTRL_NONE /* PC29 periph C ISI_PD8, conflicts with URXD0, PWMFI2 */
  422. AT91_PIOC 28 AT91_PERIPH_C AT91_PINCTRL_NONE>; /* PC28 periph C ISI_PD9, conflicts with SPI1_NPCS3, PWMFI0 */
  423. };
  424. pinctrl_isi_pck_as_mck: isi_pck_as_mck-0 {
  425. atmel,pins =
  426. <AT91_PIOD 31 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PD31 periph B ISI_MCK */
  427. };
  428. };
  429. mmc0 {
  430. pinctrl_mmc0_clk_cmd_dat0: mmc0_clk_cmd_dat0 {
  431. atmel,pins =
  432. <AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD9 periph A MCI0_CK */
  433. AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD0 periph A MCI0_CDA with pullup */
  434. AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PD1 periph A MCI0_DA0 with pullup */
  435. };
  436. pinctrl_mmc0_dat1_3: mmc0_dat1_3 {
  437. atmel,pins =
  438. <AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD2 periph A MCI0_DA1 with pullup */
  439. AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD3 periph A MCI0_DA2 with pullup */
  440. AT91_PIOD 4 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PD4 periph A MCI0_DA3 with pullup */
  441. };
  442. pinctrl_mmc0_dat4_7: mmc0_dat4_7 {
  443. atmel,pins =
  444. <AT91_PIOD 5 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD5 periph A MCI0_DA4 with pullup, conflicts with TIOA0, PWMH2 */
  445. AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD6 periph A MCI0_DA5 with pullup, conflicts with TIOB0, PWML2 */
  446. AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PD7 periph A MCI0_DA6 with pullup, conlicts with TCLK0, PWMH3 */
  447. AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PD8 periph A MCI0_DA7 with pullup, conflicts with PWML3 */
  448. };
  449. };
  450. mmc1 {
  451. pinctrl_mmc1_clk_cmd_dat0: mmc1_clk_cmd_dat0 {
  452. atmel,pins =
  453. <AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB24 periph A MCI1_CK, conflicts with GRX5 */
  454. AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PB19 periph A MCI1_CDA with pullup, conflicts with GTX4 */
  455. AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PB20 periph A MCI1_DA0 with pullup, conflicts with GTX5 */
  456. };
  457. pinctrl_mmc1_dat1_3: mmc1_dat1_3 {
  458. atmel,pins =
  459. <AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PB21 periph A MCI1_DA1 with pullup, conflicts with GTX6 */
  460. AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PB22 periph A MCI1_DA2 with pullup, conflicts with GTX7 */
  461. AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PB23 periph A MCI1_DA3 with pullup, conflicts with GRX4 */
  462. };
  463. };
  464. nand0 {
  465. pinctrl_nand0_ale_cle: nand0_ale_cle-0 {
  466. atmel,pins =
  467. <AT91_PIOE 21 AT91_PERIPH_A AT91_PINCTRL_PULL_UP /* PE21 periph A with pullup */
  468. AT91_PIOE 22 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PE22 periph A with pullup */
  469. };
  470. };
  471. spi0 {
  472. pinctrl_spi0: spi0-0 {
  473. atmel,pins =
  474. <AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD10 periph A SPI0_MISO pin */
  475. AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD11 periph A SPI0_MOSI pin */
  476. AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD12 periph A SPI0_SPCK pin */
  477. };
  478. };
  479. spi1 {
  480. pinctrl_spi1: spi1-0 {
  481. atmel,pins =
  482. <AT91_PIOC 22 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC22 periph A SPI1_MISO pin */
  483. AT91_PIOC 23 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC23 periph A SPI1_MOSI pin */
  484. AT91_PIOC 24 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PC24 periph A SPI1_SPCK pin */
  485. };
  486. };
  487. ssc0 {
  488. pinctrl_ssc0_tx: ssc0_tx {
  489. atmel,pins =
  490. <AT91_PIOC 16 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC16 periph A TK0 */
  491. AT91_PIOC 17 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC17 periph A TF0 */
  492. AT91_PIOC 18 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PC18 periph A TD0 */
  493. };
  494. pinctrl_ssc0_rx: ssc0_rx {
  495. atmel,pins =
  496. <AT91_PIOC 19 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC19 periph A RK0 */
  497. AT91_PIOC 20 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC20 periph A RF0 */
  498. AT91_PIOC 21 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PC21 periph A RD0 */
  499. };
  500. };
  501. ssc1 {
  502. pinctrl_ssc1_tx: ssc1_tx {
  503. atmel,pins =
  504. <AT91_PIOB 2 AT91_PERIPH_B AT91_PINCTRL_NONE /* PB2 periph B TK1, conflicts with GTX2 */
  505. AT91_PIOB 3 AT91_PERIPH_B AT91_PINCTRL_NONE /* PB3 periph B TF1, conflicts with GTX3 */
  506. AT91_PIOB 6 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB6 periph B TD1, conflicts with TD1 */
  507. };
  508. pinctrl_ssc1_rx: ssc1_rx {
  509. atmel,pins =
  510. <AT91_PIOB 7 AT91_PERIPH_B AT91_PINCTRL_NONE /* PB7 periph B RK1, conflicts with EREFCK */
  511. AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE /* PB10 periph B RF1, conflicts with GTXER */
  512. AT91_PIOB 11 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB11 periph B RD1, conflicts with GRXCK */
  513. };
  514. };
  515. usart0 {
  516. pinctrl_usart0: usart0-0 {
  517. atmel,pins =
  518. <AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD17 periph A */
  519. AT91_PIOD 18 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PD18 periph A with pullup */
  520. };
  521. pinctrl_usart0_rts_cts: usart0_rts_cts-0 {
  522. atmel,pins =
  523. <AT91_PIOD 15 AT91_PERIPH_A AT91_PINCTRL_NONE /* PD15 periph A, conflicts with SPI0_NPCS2, CANTX0 */
  524. AT91_PIOD 16 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PD16 periph A, conflicts with SPI0_NPCS3, PWMFI3 */
  525. };
  526. };
  527. usart1 {
  528. pinctrl_usart1: usart1-0 {
  529. atmel,pins =
  530. <AT91_PIOB 28 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB28 periph A */
  531. AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>; /* PB29 periph A with pullup */
  532. };
  533. pinctrl_usart1_rts_cts: usart1_rts_cts-0 {
  534. atmel,pins =
  535. <AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB26 periph A, conflicts with GRX7 */
  536. AT91_PIOB 27 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB27 periph A, conflicts with G125CKO */
  537. };
  538. };
  539. usart2 {
  540. pinctrl_usart2: usart2-0 {
  541. atmel,pins =
  542. <AT91_PIOE 25 AT91_PERIPH_B AT91_PINCTRL_NONE /* PE25 periph B, conflicts with A25 */
  543. AT91_PIOE 26 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>; /* PE26 periph B with pullup, conflicts NCS0 */
  544. };
  545. pinctrl_usart2_rts_cts: usart2_rts_cts-0 {
  546. atmel,pins =
  547. <AT91_PIOE 23 AT91_PERIPH_B AT91_PINCTRL_NONE /* PE23 periph B, conflicts with A23 */
  548. AT91_PIOE 24 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PE24 periph B, conflicts with A24 */
  549. };
  550. };
  551. usart3 {
  552. pinctrl_usart3: usart3-0 {
  553. atmel,pins =
  554. <AT91_PIOE 18 AT91_PERIPH_B AT91_PINCTRL_NONE /* PE18 periph B, conflicts with A18 */
  555. AT91_PIOE 19 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>; /* PE19 periph B with pullup, conflicts with A19 */
  556. };
  557. pinctrl_usart3_rts_cts: usart3_rts_cts-0 {
  558. atmel,pins =
  559. <AT91_PIOE 16 AT91_PERIPH_B AT91_PINCTRL_NONE /* PE16 periph B, conflicts with A16 */
  560. AT91_PIOE 17 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PE17 periph B, conflicts with A17 */
  561. };
  562. };
  563. pioA: gpio@fffff200 {
  564. compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
  565. reg = <0xfffff200 0x100>;
  566. interrupts = <6 IRQ_TYPE_LEVEL_HIGH 1>;
  567. #gpio-cells = <2>;
  568. gpio-controller;
  569. interrupt-controller;
  570. #interrupt-cells = <2>;
  571. };
  572. pioB: gpio@fffff400 {
  573. compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
  574. reg = <0xfffff400 0x100>;
  575. interrupts = <7 IRQ_TYPE_LEVEL_HIGH 1>;
  576. #gpio-cells = <2>;
  577. gpio-controller;
  578. interrupt-controller;
  579. #interrupt-cells = <2>;
  580. };
  581. pioC: gpio@fffff600 {
  582. compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
  583. reg = <0xfffff600 0x100>;
  584. interrupts = <8 IRQ_TYPE_LEVEL_HIGH 1>;
  585. #gpio-cells = <2>;
  586. gpio-controller;
  587. interrupt-controller;
  588. #interrupt-cells = <2>;
  589. };
  590. pioD: gpio@fffff800 {
  591. compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
  592. reg = <0xfffff800 0x100>;
  593. interrupts = <9 IRQ_TYPE_LEVEL_HIGH 1>;
  594. #gpio-cells = <2>;
  595. gpio-controller;
  596. interrupt-controller;
  597. #interrupt-cells = <2>;
  598. };
  599. pioE: gpio@fffffa00 {
  600. compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
  601. reg = <0xfffffa00 0x100>;
  602. interrupts = <10 IRQ_TYPE_LEVEL_HIGH 1>;
  603. #gpio-cells = <2>;
  604. gpio-controller;
  605. interrupt-controller;
  606. #interrupt-cells = <2>;
  607. };
  608. };
  609. pmc: pmc@fffffc00 {
  610. compatible = "atmel,at91rm9200-pmc";
  611. reg = <0xfffffc00 0x120>;
  612. };
  613. rstc@fffffe00 {
  614. compatible = "atmel,at91sam9g45-rstc";
  615. reg = <0xfffffe00 0x10>;
  616. };
  617. pit: timer@fffffe30 {
  618. compatible = "atmel,at91sam9260-pit";
  619. reg = <0xfffffe30 0xf>;
  620. interrupts = <3 IRQ_TYPE_LEVEL_HIGH 5>;
  621. };
  622. watchdog@fffffe40 {
  623. compatible = "atmel,at91sam9260-wdt";
  624. reg = <0xfffffe40 0x10>;
  625. status = "disabled";
  626. };
  627. rtc@fffffeb0 {
  628. compatible = "atmel,at91rm9200-rtc";
  629. reg = <0xfffffeb0 0x30>;
  630. interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
  631. };
  632. };
  633. usb0: gadget@00500000 {
  634. #address-cells = <1>;
  635. #size-cells = <0>;
  636. compatible = "atmel,at91sam9rl-udc";
  637. reg = <0x00500000 0x100000
  638. 0xf8030000 0x4000>;
  639. interrupts = <33 IRQ_TYPE_LEVEL_HIGH 2>;
  640. status = "disabled";
  641. ep0 {
  642. reg = <0>;
  643. atmel,fifo-size = <64>;
  644. atmel,nb-banks = <1>;
  645. };
  646. ep1 {
  647. reg = <1>;
  648. atmel,fifo-size = <1024>;
  649. atmel,nb-banks = <3>;
  650. atmel,can-dma;
  651. atmel,can-isoc;
  652. };
  653. ep2 {
  654. reg = <2>;
  655. atmel,fifo-size = <1024>;
  656. atmel,nb-banks = <3>;
  657. atmel,can-dma;
  658. atmel,can-isoc;
  659. };
  660. ep3 {
  661. reg = <3>;
  662. atmel,fifo-size = <1024>;
  663. atmel,nb-banks = <2>;
  664. atmel,can-dma;
  665. };
  666. ep4 {
  667. reg = <4>;
  668. atmel,fifo-size = <1024>;
  669. atmel,nb-banks = <2>;
  670. atmel,can-dma;
  671. };
  672. ep5 {
  673. reg = <5>;
  674. atmel,fifo-size = <1024>;
  675. atmel,nb-banks = <2>;
  676. atmel,can-dma;
  677. };
  678. ep6 {
  679. reg = <6>;
  680. atmel,fifo-size = <1024>;
  681. atmel,nb-banks = <2>;
  682. atmel,can-dma;
  683. };
  684. ep7 {
  685. reg = <7>;
  686. atmel,fifo-size = <1024>;
  687. atmel,nb-banks = <2>;
  688. atmel,can-dma;
  689. };
  690. ep8 {
  691. reg = <8>;
  692. atmel,fifo-size = <1024>;
  693. atmel,nb-banks = <2>;
  694. };
  695. ep9 {
  696. reg = <9>;
  697. atmel,fifo-size = <1024>;
  698. atmel,nb-banks = <2>;
  699. };
  700. ep10 {
  701. reg = <10>;
  702. atmel,fifo-size = <1024>;
  703. atmel,nb-banks = <2>;
  704. };
  705. ep11 {
  706. reg = <11>;
  707. atmel,fifo-size = <1024>;
  708. atmel,nb-banks = <2>;
  709. };
  710. ep12 {
  711. reg = <12>;
  712. atmel,fifo-size = <1024>;
  713. atmel,nb-banks = <2>;
  714. };
  715. ep13 {
  716. reg = <13>;
  717. atmel,fifo-size = <1024>;
  718. atmel,nb-banks = <2>;
  719. };
  720. ep14 {
  721. reg = <14>;
  722. atmel,fifo-size = <1024>;
  723. atmel,nb-banks = <2>;
  724. };
  725. ep15 {
  726. reg = <15>;
  727. atmel,fifo-size = <1024>;
  728. atmel,nb-banks = <2>;
  729. };
  730. };
  731. usb1: ohci@00600000 {
  732. compatible = "atmel,at91rm9200-ohci", "usb-ohci";
  733. reg = <0x00600000 0x100000>;
  734. interrupts = <32 IRQ_TYPE_LEVEL_HIGH 2>;
  735. status = "disabled";
  736. };
  737. usb2: ehci@00700000 {
  738. compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
  739. reg = <0x00700000 0x100000>;
  740. interrupts = <32 IRQ_TYPE_LEVEL_HIGH 2>;
  741. status = "disabled";
  742. };
  743. nand0: nand@60000000 {
  744. compatible = "atmel,at91rm9200-nand";
  745. #address-cells = <1>;
  746. #size-cells = <1>;
  747. ranges;
  748. reg = < 0x60000000 0x01000000 /* EBI CS3 */
  749. 0xffffc070 0x00000490 /* SMC PMECC regs */
  750. 0xffffc500 0x00000100 /* SMC PMECC Error Location regs */
  751. 0x00110000 0x00018000 /* ROM code */
  752. >;
  753. interrupts = <5 IRQ_TYPE_LEVEL_HIGH 6>;
  754. atmel,nand-addr-offset = <21>;
  755. atmel,nand-cmd-offset = <22>;
  756. pinctrl-names = "default";
  757. pinctrl-0 = <&pinctrl_nand0_ale_cle>;
  758. atmel,pmecc-lookup-table-offset = <0x0 0x8000>;
  759. status = "disabled";
  760. nfc@70000000 {
  761. compatible = "atmel,sama5d3-nfc";
  762. #address-cells = <1>;
  763. #size-cells = <1>;
  764. reg = <
  765. 0x70000000 0x10000000 /* NFC Command Registers */
  766. 0xffffc000 0x00000070 /* NFC HSMC regs */
  767. 0x00200000 0x00100000 /* NFC SRAM banks */
  768. >;
  769. };
  770. };
  771. };
  772. };