sama5d3.dtsi 28 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036
  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. / {
  12. model = "Atmel SAMA5D3 family SoC";
  13. compatible = "atmel,sama5d3", "atmel,sama5";
  14. interrupt-parent = <&aic>;
  15. aliases {
  16. serial0 = &dbgu;
  17. serial1 = &usart0;
  18. serial2 = &usart1;
  19. serial3 = &usart2;
  20. serial4 = &usart3;
  21. gpio0 = &pioA;
  22. gpio1 = &pioB;
  23. gpio2 = &pioC;
  24. gpio3 = &pioD;
  25. gpio4 = &pioE;
  26. tcb0 = &tcb0;
  27. tcb1 = &tcb1;
  28. i2c0 = &i2c0;
  29. i2c1 = &i2c1;
  30. i2c2 = &i2c2;
  31. ssc0 = &ssc0;
  32. ssc1 = &ssc1;
  33. };
  34. cpus {
  35. cpu@0 {
  36. compatible = "arm,cortex-a5";
  37. };
  38. };
  39. memory {
  40. reg = <0x20000000 0x8000000>;
  41. };
  42. ahb {
  43. compatible = "simple-bus";
  44. #address-cells = <1>;
  45. #size-cells = <1>;
  46. ranges;
  47. apb {
  48. compatible = "simple-bus";
  49. #address-cells = <1>;
  50. #size-cells = <1>;
  51. ranges;
  52. mmc0: mmc@f0000000 {
  53. compatible = "atmel,hsmci";
  54. reg = <0xf0000000 0x600>;
  55. interrupts = <21 4 0>;
  56. dmas = <&dma0 2 0>;
  57. dma-names = "rxtx";
  58. pinctrl-names = "default";
  59. pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_dat4_7>;
  60. status = "disabled";
  61. #address-cells = <1>;
  62. #size-cells = <0>;
  63. };
  64. spi0: spi@f0004000 {
  65. #address-cells = <1>;
  66. #size-cells = <0>;
  67. compatible = "atmel,at91sam9x5-spi";
  68. reg = <0xf0004000 0x100>;
  69. interrupts = <24 4 3>;
  70. pinctrl-names = "default";
  71. pinctrl-0 = <&pinctrl_spi0>;
  72. status = "disabled";
  73. };
  74. ssc0: ssc@f0008000 {
  75. compatible = "atmel,at91sam9g45-ssc";
  76. reg = <0xf0008000 0x4000>;
  77. interrupts = <38 4 4>;
  78. pinctrl-names = "default";
  79. pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
  80. status = "disabled";
  81. };
  82. can0: can@f000c000 {
  83. compatible = "atmel,at91sam9x5-can";
  84. reg = <0xf000c000 0x300>;
  85. interrupts = <40 4 3>;
  86. pinctrl-names = "default";
  87. pinctrl-0 = <&pinctrl_can0_rx_tx>;
  88. status = "disabled";
  89. };
  90. tcb0: timer@f0010000 {
  91. compatible = "atmel,at91sam9x5-tcb";
  92. reg = <0xf0010000 0x100>;
  93. interrupts = <26 4 0>;
  94. };
  95. i2c0: i2c@f0014000 {
  96. compatible = "atmel,at91sam9x5-i2c";
  97. reg = <0xf0014000 0x4000>;
  98. interrupts = <18 4 6>;
  99. dmas = <&dma0 2 7>,
  100. <&dma0 2 8>;
  101. dma-names = "tx", "rx";
  102. pinctrl-names = "default";
  103. pinctrl-0 = <&pinctrl_i2c0>;
  104. #address-cells = <1>;
  105. #size-cells = <0>;
  106. status = "disabled";
  107. };
  108. i2c1: i2c@f0018000 {
  109. compatible = "atmel,at91sam9x5-i2c";
  110. reg = <0xf0018000 0x4000>;
  111. interrupts = <19 4 6>;
  112. dmas = <&dma0 2 9>,
  113. <&dma0 2 10>;
  114. dma-names = "tx", "rx";
  115. pinctrl-names = "default";
  116. pinctrl-0 = <&pinctrl_i2c1>;
  117. #address-cells = <1>;
  118. #size-cells = <0>;
  119. status = "disabled";
  120. };
  121. usart0: serial@f001c000 {
  122. compatible = "atmel,at91sam9260-usart";
  123. reg = <0xf001c000 0x100>;
  124. interrupts = <12 4 5>;
  125. pinctrl-names = "default";
  126. pinctrl-0 = <&pinctrl_usart0>;
  127. status = "disabled";
  128. };
  129. usart1: serial@f0020000 {
  130. compatible = "atmel,at91sam9260-usart";
  131. reg = <0xf0020000 0x100>;
  132. interrupts = <13 4 5>;
  133. pinctrl-names = "default";
  134. pinctrl-0 = <&pinctrl_usart1>;
  135. status = "disabled";
  136. };
  137. macb0: ethernet@f0028000 {
  138. compatible = "cdns,pc302-gem", "cdns,gem";
  139. reg = <0xf0028000 0x100>;
  140. interrupts = <34 4 3>;
  141. pinctrl-names = "default";
  142. pinctrl-0 = <&pinctrl_macb0_data_rgmii &pinctrl_macb0_signal_rgmii>;
  143. status = "disabled";
  144. };
  145. isi: isi@f0034000 {
  146. compatible = "atmel,at91sam9g45-isi";
  147. reg = <0xf0034000 0x4000>;
  148. interrupts = <37 4 5>;
  149. status = "disabled";
  150. };
  151. mmc1: mmc@f8000000 {
  152. compatible = "atmel,hsmci";
  153. reg = <0xf8000000 0x600>;
  154. interrupts = <22 4 0>;
  155. dmas = <&dma1 2 0>;
  156. dma-names = "rxtx";
  157. pinctrl-names = "default";
  158. pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3>;
  159. status = "disabled";
  160. #address-cells = <1>;
  161. #size-cells = <0>;
  162. };
  163. mmc2: mmc@f8004000 {
  164. compatible = "atmel,hsmci";
  165. reg = <0xf8004000 0x600>;
  166. interrupts = <23 4 0>;
  167. dmas = <&dma1 2 1>;
  168. dma-names = "rxtx";
  169. pinctrl-names = "default";
  170. pinctrl-0 = <&pinctrl_mmc2_clk_cmd_dat0 &pinctrl_mmc2_dat1_3>;
  171. status = "disabled";
  172. #address-cells = <1>;
  173. #size-cells = <0>;
  174. };
  175. spi1: spi@f8008000 {
  176. #address-cells = <1>;
  177. #size-cells = <0>;
  178. compatible = "atmel,at91sam9x5-spi";
  179. reg = <0xf8008000 0x100>;
  180. interrupts = <25 4 3>;
  181. pinctrl-names = "default";
  182. pinctrl-0 = <&pinctrl_spi1>;
  183. status = "disabled";
  184. };
  185. ssc1: ssc@f800c000 {
  186. compatible = "atmel,at91sam9g45-ssc";
  187. reg = <0xf800c000 0x4000>;
  188. interrupts = <39 4 4>;
  189. pinctrl-names = "default";
  190. pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
  191. status = "disabled";
  192. };
  193. can1: can@f8010000 {
  194. compatible = "atmel,at91sam9x5-can";
  195. reg = <0xf8010000 0x300>;
  196. interrupts = <41 4 3>;
  197. pinctrl-names = "default";
  198. pinctrl-0 = <&pinctrl_can1_rx_tx>;
  199. };
  200. tcb1: timer@f8014000 {
  201. compatible = "atmel,at91sam9x5-tcb";
  202. reg = <0xf8014000 0x100>;
  203. interrupts = <27 4 0>;
  204. };
  205. adc0: adc@f8018000 {
  206. compatible = "atmel,at91sam9260-adc";
  207. reg = <0xf8018000 0x100>;
  208. interrupts = <29 4 5>;
  209. pinctrl-names = "default";
  210. pinctrl-0 = <
  211. &pinctrl_adc0_adtrg
  212. &pinctrl_adc0_ad0
  213. &pinctrl_adc0_ad1
  214. &pinctrl_adc0_ad2
  215. &pinctrl_adc0_ad3
  216. &pinctrl_adc0_ad4
  217. &pinctrl_adc0_ad5
  218. &pinctrl_adc0_ad6
  219. &pinctrl_adc0_ad7
  220. &pinctrl_adc0_ad8
  221. &pinctrl_adc0_ad9
  222. &pinctrl_adc0_ad10
  223. &pinctrl_adc0_ad11
  224. >;
  225. atmel,adc-channel-base = <0x50>;
  226. atmel,adc-channels-used = <0xfff>;
  227. atmel,adc-drdy-mask = <0x1000000>;
  228. atmel,adc-num-channels = <12>;
  229. atmel,adc-startup-time = <40>;
  230. atmel,adc-status-register = <0x30>;
  231. atmel,adc-trigger-register = <0xc0>;
  232. atmel,adc-use-external;
  233. atmel,adc-vref = <3000>;
  234. atmel,adc-res = <10 12>;
  235. atmel,adc-res-names = "lowres", "highres";
  236. status = "disabled";
  237. trigger@0 {
  238. trigger-name = "external-rising";
  239. trigger-value = <0x1>;
  240. trigger-external;
  241. };
  242. trigger@1 {
  243. trigger-name = "external-falling";
  244. trigger-value = <0x2>;
  245. trigger-external;
  246. };
  247. trigger@2 {
  248. trigger-name = "external-any";
  249. trigger-value = <0x3>;
  250. trigger-external;
  251. };
  252. trigger@3 {
  253. trigger-name = "continuous";
  254. trigger-value = <0x6>;
  255. };
  256. };
  257. tsadcc: tsadcc@f8018000 {
  258. compatible = "atmel,at91sam9x5-tsadcc";
  259. reg = <0xf8018000 0x4000>;
  260. interrupts = <29 4 5>;
  261. atmel,tsadcc_clock = <300000>;
  262. atmel,filtering_average = <0x03>;
  263. atmel,pendet_debounce = <0x08>;
  264. atmel,pendet_sensitivity = <0x02>;
  265. atmel,ts_sample_hold_time = <0x0a>;
  266. status = "disabled";
  267. };
  268. i2c2: i2c@f801c000 {
  269. compatible = "atmel,at91sam9x5-i2c";
  270. reg = <0xf801c000 0x4000>;
  271. interrupts = <20 4 6>;
  272. dmas = <&dma1 2 11>,
  273. <&dma1 2 12>;
  274. dma-names = "tx", "rx";
  275. #address-cells = <1>;
  276. #size-cells = <0>;
  277. status = "disabled";
  278. };
  279. usart2: serial@f8020000 {
  280. compatible = "atmel,at91sam9260-usart";
  281. reg = <0xf8020000 0x100>;
  282. interrupts = <14 4 5>;
  283. pinctrl-names = "default";
  284. pinctrl-0 = <&pinctrl_usart2>;
  285. status = "disabled";
  286. };
  287. usart3: serial@f8024000 {
  288. compatible = "atmel,at91sam9260-usart";
  289. reg = <0xf8024000 0x100>;
  290. interrupts = <15 4 5>;
  291. pinctrl-names = "default";
  292. pinctrl-0 = <&pinctrl_usart3>;
  293. status = "disabled";
  294. };
  295. macb1: ethernet@f802c000 {
  296. compatible = "cdns,at32ap7000-macb", "cdns,macb";
  297. reg = <0xf802c000 0x100>;
  298. interrupts = <35 4 3>;
  299. pinctrl-names = "default";
  300. pinctrl-0 = <&pinctrl_macb1_rmii>;
  301. status = "disabled";
  302. };
  303. sha@f8034000 {
  304. compatible = "atmel,sam9g46-sha";
  305. reg = <0xf8034000 0x100>;
  306. interrupts = <42 4 0>;
  307. };
  308. aes@f8038000 {
  309. compatible = "atmel,sam9g46-aes";
  310. reg = <0xf8038000 0x100>;
  311. interrupts = <43 4 0>;
  312. };
  313. tdes@f803c000 {
  314. compatible = "atmel,sam9g46-tdes";
  315. reg = <0xf803c000 0x100>;
  316. interrupts = <44 4 0>;
  317. };
  318. dma0: dma-controller@ffffe600 {
  319. compatible = "atmel,at91sam9g45-dma";
  320. reg = <0xffffe600 0x200>;
  321. interrupts = <30 4 0>;
  322. #dma-cells = <2>;
  323. };
  324. dma1: dma-controller@ffffe800 {
  325. compatible = "atmel,at91sam9g45-dma";
  326. reg = <0xffffe800 0x200>;
  327. interrupts = <31 4 0>;
  328. #dma-cells = <2>;
  329. };
  330. ramc0: ramc@ffffea00 {
  331. compatible = "atmel,at91sam9g45-ddramc";
  332. reg = <0xffffea00 0x200>;
  333. };
  334. dbgu: serial@ffffee00 {
  335. compatible = "atmel,at91sam9260-usart";
  336. reg = <0xffffee00 0x200>;
  337. interrupts = <2 4 7>;
  338. pinctrl-names = "default";
  339. pinctrl-0 = <&pinctrl_dbgu>;
  340. status = "disabled";
  341. };
  342. aic: interrupt-controller@fffff000 {
  343. #interrupt-cells = <3>;
  344. compatible = "atmel,sama5d3-aic";
  345. interrupt-controller;
  346. reg = <0xfffff000 0x200>;
  347. atmel,external-irqs = <47>;
  348. };
  349. pinctrl@fffff200 {
  350. #address-cells = <1>;
  351. #size-cells = <1>;
  352. compatible = "atmel,at91sam9x5-pinctrl", "atmel,at91rm9200-pinctrl", "simple-bus";
  353. ranges = <0xfffff200 0xfffff200 0xa00>;
  354. atmel,mux-mask = <
  355. /* A B C */
  356. 0xffffffff 0xc0fc0000 0xc0ff0000 /* pioA */
  357. 0xffffffff 0x0ff8ffff 0x00000000 /* pioB */
  358. 0xffffffff 0xbc00f1ff 0x7c00fc00 /* pioC */
  359. 0xffffffff 0xc001c0e0 0x0001c1e0 /* pioD */
  360. 0xffffffff 0xbf9f8000 0x18000000 /* pioE */
  361. >;
  362. /* shared pinctrl settings */
  363. adc0 {
  364. pinctrl_adc0_adtrg: adc0_adtrg {
  365. atmel,pins =
  366. <3 19 0x1 0x0>; /* PD19 periph A ADTRG */
  367. };
  368. pinctrl_adc0_ad0: adc0_ad0 {
  369. atmel,pins =
  370. <3 20 0x1 0x0>; /* PD20 periph A AD0 */
  371. };
  372. pinctrl_adc0_ad1: adc0_ad1 {
  373. atmel,pins =
  374. <3 21 0x1 0x0>; /* PD21 periph A AD1 */
  375. };
  376. pinctrl_adc0_ad2: adc0_ad2 {
  377. atmel,pins =
  378. <3 22 0x1 0x0>; /* PD22 periph A AD2 */
  379. };
  380. pinctrl_adc0_ad3: adc0_ad3 {
  381. atmel,pins =
  382. <3 23 0x1 0x0>; /* PD23 periph A AD3 */
  383. };
  384. pinctrl_adc0_ad4: adc0_ad4 {
  385. atmel,pins =
  386. <3 24 0x1 0x0>; /* PD24 periph A AD4 */
  387. };
  388. pinctrl_adc0_ad5: adc0_ad5 {
  389. atmel,pins =
  390. <3 25 0x1 0x0>; /* PD25 periph A AD5 */
  391. };
  392. pinctrl_adc0_ad6: adc0_ad6 {
  393. atmel,pins =
  394. <3 26 0x1 0x0>; /* PD26 periph A AD6 */
  395. };
  396. pinctrl_adc0_ad7: adc0_ad7 {
  397. atmel,pins =
  398. <3 27 0x1 0x0>; /* PD27 periph A AD7 */
  399. };
  400. pinctrl_adc0_ad8: adc0_ad8 {
  401. atmel,pins =
  402. <3 28 0x1 0x0>; /* PD28 periph A AD8 */
  403. };
  404. pinctrl_adc0_ad9: adc0_ad9 {
  405. atmel,pins =
  406. <3 29 0x1 0x0>; /* PD29 periph A AD9 */
  407. };
  408. pinctrl_adc0_ad10: adc0_ad10 {
  409. atmel,pins =
  410. <3 30 0x1 0x0>; /* PD30 periph A AD10, conflicts with PCK0 */
  411. };
  412. pinctrl_adc0_ad11: adc0_ad11 {
  413. atmel,pins =
  414. <3 31 0x1 0x0>; /* PD31 periph A AD11, conflicts with PCK1 */
  415. };
  416. };
  417. can0 {
  418. pinctrl_can0_rx_tx: can0_rx_tx {
  419. atmel,pins =
  420. <3 14 0x3 0x0 /* PD14 periph C RX, conflicts with SCK0, SPI0_NPCS1 */
  421. 3 15 0x3 0x0>; /* PD15 periph C TX, conflicts with CTS0, SPI0_NPCS2 */
  422. };
  423. };
  424. can1 {
  425. pinctrl_can1_rx_tx: can1_rx_tx {
  426. atmel,pins =
  427. <1 14 0x2 0x0 /* PB14 periph B RX, conflicts with GCRS */
  428. 1 15 0x2 0x0>; /* PB15 periph B TX, conflicts with GCOL */
  429. };
  430. };
  431. dbgu {
  432. pinctrl_dbgu: dbgu-0 {
  433. atmel,pins =
  434. <1 30 0x1 0x0 /* PB30 periph A */
  435. 1 31 0x1 0x1>; /* PB31 periph A with pullup */
  436. };
  437. };
  438. i2c0 {
  439. pinctrl_i2c0: i2c0-0 {
  440. atmel,pins =
  441. <0 30 0x1 0x0 /* PA30 periph A TWD0 pin, conflicts with URXD1, ISI_VSYNC */
  442. 0 31 0x1 0x0>; /* PA31 periph A TWCK0 pin, conflicts with UTXD1, ISI_HSYNC */
  443. };
  444. };
  445. i2c1 {
  446. pinctrl_i2c1: i2c1-0 {
  447. atmel,pins =
  448. <2 26 0x2 0x0 /* PC26 periph B TWD1 pin, conflicts with SPI1_NPCS1, ISI_D11 */
  449. 2 27 0x2 0x0>; /* PC27 periph B TWCK1 pin, conflicts with SPI1_NPCS2, ISI_D10 */
  450. };
  451. };
  452. isi {
  453. pinctrl_isi: isi-0 {
  454. atmel,pins =
  455. <0 16 0x3 0x0 /* PA16 periph C ISI_D0, conflicts with LCDDAT16 */
  456. 0 17 0x3 0x0 /* PA17 periph C ISI_D1, conflicts with LCDDAT17 */
  457. 0 18 0x3 0x0 /* PA18 periph C ISI_D2, conflicts with LCDDAT18, TWD2 */
  458. 0 19 0x3 0x0 /* PA19 periph C ISI_D3, conflicts with LCDDAT19, TWCK2 */
  459. 0 20 0x3 0x0 /* PA20 periph C ISI_D4, conflicts with LCDDAT20, PWMH0 */
  460. 0 21 0x3 0x0 /* PA21 periph C ISI_D5, conflicts with LCDDAT21, PWML0 */
  461. 0 22 0x3 0x0 /* PA22 periph C ISI_D6, conflicts with LCDDAT22, PWMH1 */
  462. 0 23 0x3 0x0 /* PA23 periph C ISI_D7, conflicts with LCDDAT23, PWML1 */
  463. 2 30 0x3 0x0 /* PC30 periph C ISI_PCK, conflicts with UTXD0 */
  464. 0 31 0x3 0x0 /* PA31 periph C ISI_HSYNC, conflicts with TWCK0, UTXD1 */
  465. 0 30 0x3 0x0 /* PA30 periph C ISI_VSYNC, conflicts with TWD0, URXD1 */
  466. 2 29 0x3 0x0 /* PC29 periph C ISI_PD8, conflicts with URXD0, PWMFI2 */
  467. 2 28 0x3 0x0>; /* PC28 periph C ISI_PD9, conflicts with SPI1_NPCS3, PWMFI0 */
  468. };
  469. pinctrl_isi_pck_as_mck: isi_pck_as_mck-0 {
  470. atmel,pins =
  471. <3 31 0x2 0x0>; /* PD31 periph B ISI_MCK */
  472. };
  473. };
  474. lcd {
  475. pinctrl_lcd: lcd-0 {
  476. atmel,pins =
  477. <0 24 0x1 0x0 /* PA24 periph A LCDPWM */
  478. 0 26 0x1 0x0 /* PA26 periph A LCDVSYNC */
  479. 0 27 0x1 0x0 /* PA27 periph A LCDHSYNC */
  480. 0 25 0x1 0x0 /* PA25 periph A LCDDISP */
  481. 0 29 0x1 0x0 /* PA29 periph A LCDDEN */
  482. 0 28 0x1 0x0 /* PA28 periph A LCDPCK */
  483. 0 0 0x1 0x0 /* PA0 periph A LCDD0 pin */
  484. 0 1 0x1 0x0 /* PA1 periph A LCDD1 pin */
  485. 0 2 0x1 0x0 /* PA2 periph A LCDD2 pin */
  486. 0 3 0x1 0x0 /* PA3 periph A LCDD3 pin */
  487. 0 4 0x1 0x0 /* PA4 periph A LCDD4 pin */
  488. 0 5 0x1 0x0 /* PA5 periph A LCDD5 pin */
  489. 0 6 0x1 0x0 /* PA6 periph A LCDD6 pin */
  490. 0 7 0x1 0x0 /* PA7 periph A LCDD7 pin */
  491. 0 8 0x1 0x0 /* PA8 periph A LCDD8 pin */
  492. 0 9 0x1 0x0 /* PA9 periph A LCDD9 pin */
  493. 0 10 0x1 0x0 /* PA10 periph A LCDD10 pin */
  494. 0 11 0x1 0x0 /* PA11 periph A LCDD11 pin */
  495. 0 12 0x1 0x0 /* PA12 periph A LCDD12 pin */
  496. 0 13 0x1 0x0 /* PA13 periph A LCDD13 pin */
  497. 0 14 0x1 0x0 /* PA14 periph A LCDD14 pin */
  498. 0 15 0x1 0x0 /* PA15 periph A LCDD15 pin */
  499. 2 14 0x3 0x0 /* PC14 periph C LCDD16 pin */
  500. 2 13 0x3 0x0 /* PC13 periph C LCDD17 pin */
  501. 2 12 0x3 0x0 /* PC12 periph C LCDD18 pin */
  502. 2 11 0x3 0x0 /* PC11 periph C LCDD19 pin */
  503. 2 10 0x3 0x0 /* PC10 periph C LCDD20 pin */
  504. 2 15 0x3 0x0 /* PC15 periph C LCDD21 pin */
  505. 4 27 0x3 0x0 /* PE27 periph C LCDD22 pin */
  506. 4 28 0x3 0x0>; /* PE28 periph C LCDD23 pin */
  507. };
  508. };
  509. macb0 {
  510. pinctrl_macb0_data_rgmii: macb0_data_rgmii {
  511. atmel,pins =
  512. <1 0 0x1 0x0 /* PB0 periph A GTX0, conflicts with PWMH0 */
  513. 1 1 0x1 0x0 /* PB1 periph A GTX1, conflicts with PWML0 */
  514. 1 2 0x1 0x0 /* PB2 periph A GTX2, conflicts with TK1 */
  515. 1 3 0x1 0x0 /* PB3 periph A GTX3, conflicts with TF1 */
  516. 1 4 0x1 0x0 /* PB4 periph A GRX0, conflicts with PWMH1 */
  517. 1 5 0x1 0x0 /* PB5 periph A GRX1, conflicts with PWML1 */
  518. 1 6 0x1 0x0 /* PB6 periph A GRX2, conflicts with TD1 */
  519. 1 7 0x1 0x0>; /* PB7 periph A GRX3, conflicts with RK1 */
  520. };
  521. pinctrl_macb0_data_gmii: macb0_data_gmii {
  522. atmel,pins =
  523. <1 19 0x2 0x0 /* PB19 periph B GTX4, conflicts with MCI1_CDA */
  524. 1 20 0x2 0x0 /* PB20 periph B GTX5, conflicts with MCI1_DA0 */
  525. 1 21 0x2 0x0 /* PB21 periph B GTX6, conflicts with MCI1_DA1 */
  526. 1 22 0x2 0x0 /* PB22 periph B GTX7, conflicts with MCI1_DA2 */
  527. 1 23 0x2 0x0 /* PB23 periph B GRX4, conflicts with MCI1_DA3 */
  528. 1 24 0x2 0x0 /* PB24 periph B GRX5, conflicts with MCI1_CK */
  529. 1 25 0x2 0x0 /* PB25 periph B GRX6, conflicts with SCK1 */
  530. 1 26 0x2 0x0>; /* PB26 periph B GRX7, conflicts with CTS1 */
  531. };
  532. pinctrl_macb0_signal_rgmii: macb0_signal_rgmii {
  533. atmel,pins =
  534. <1 8 0x1 0x0 /* PB8 periph A GTXCK, conflicts with PWMH2 */
  535. 1 9 0x1 0x0 /* PB9 periph A GTXEN, conflicts with PWML2 */
  536. 1 11 0x1 0x0 /* PB11 periph A GRXCK, conflicts with RD1 */
  537. 1 13 0x1 0x0 /* PB13 periph A GRXER, conflicts with PWML3 */
  538. 1 16 0x1 0x0 /* PB16 periph A GMDC */
  539. 1 17 0x1 0x0 /* PB17 periph A GMDIO */
  540. 1 18 0x1 0x0>; /* PB18 periph A G125CK */
  541. };
  542. pinctrl_macb0_signal_gmii: macb0_signal_gmii {
  543. atmel,pins =
  544. <1 9 0x1 0x0 /* PB9 periph A GTXEN, conflicts with PWML2 */
  545. 1 10 0x1 0x0 /* PB10 periph A GTXER, conflicts with RF1 */
  546. 1 11 0x1 0x0 /* PB11 periph A GRXCK, conflicts with RD1 */
  547. 1 12 0x1 0x0 /* PB12 periph A GRXDV, conflicts with PWMH3 */
  548. 1 13 0x1 0x0 /* PB13 periph A GRXER, conflicts with PWML3 */
  549. 1 14 0x1 0x0 /* PB14 periph A GCRS, conflicts with CANRX1 */
  550. 1 15 0x1 0x0 /* PB15 periph A GCOL, conflicts with CANTX1 */
  551. 1 16 0x1 0x0 /* PB16 periph A GMDC */
  552. 1 17 0x1 0x0 /* PB17 periph A GMDIO */
  553. 1 27 0x2 0x0>; /* PB27 periph B G125CKO */
  554. };
  555. };
  556. macb1 {
  557. pinctrl_macb1_rmii: macb1_rmii-0 {
  558. atmel,pins =
  559. <2 0 0x1 0x0 /* PC0 periph A ETX0, conflicts with TIOA3 */
  560. 2 1 0x1 0x0 /* PC1 periph A ETX1, conflicts with TIOB3 */
  561. 2 2 0x1 0x0 /* PC2 periph A ERX0, conflicts with TCLK3 */
  562. 2 3 0x1 0x0 /* PC3 periph A ERX1, conflicts with TIOA4 */
  563. 2 4 0x1 0x0 /* PC4 periph A ETXEN, conflicts with TIOB4 */
  564. 2 5 0x1 0x0 /* PC5 periph A ECRSDV,conflicts with TCLK4 */
  565. 2 6 0x1 0x0 /* PC6 periph A ERXER, conflicts with TIOA5 */
  566. 2 7 0x1 0x0 /* PC7 periph A EREFCK, conflicts with TIOB5 */
  567. 2 8 0x1 0x0 /* PC8 periph A EMDC, conflicts with TCLK5 */
  568. 2 9 0x1 0x0>; /* PC9 periph A EMDIO */
  569. };
  570. };
  571. mmc0 {
  572. pinctrl_mmc0_clk_cmd_dat0: mmc0_clk_cmd_dat0 {
  573. atmel,pins =
  574. <3 9 0x1 0x0 /* PD9 periph A MCI0_CK */
  575. 3 0 0x1 0x1 /* PD0 periph A MCI0_CDA with pullup */
  576. 3 1 0x1 0x1>; /* PD1 periph A MCI0_DA0 with pullup */
  577. };
  578. pinctrl_mmc0_dat1_3: mmc0_dat1_3 {
  579. atmel,pins =
  580. <3 2 0x1 0x1 /* PD2 periph A MCI0_DA1 with pullup */
  581. 3 3 0x1 0x1 /* PD3 periph A MCI0_DA2 with pullup */
  582. 3 4 0x1 0x1>; /* PD4 periph A MCI0_DA3 with pullup */
  583. };
  584. pinctrl_mmc0_dat4_7: mmc0_dat4_7 {
  585. atmel,pins =
  586. <3 5 0x1 0x1 /* PD5 periph A MCI0_DA4 with pullup, conflicts with TIOA0, PWMH2 */
  587. 3 6 0x1 0x1 /* PD6 periph A MCI0_DA5 with pullup, conflicts with TIOB0, PWML2 */
  588. 3 7 0x1 0x1 /* PD7 periph A MCI0_DA6 with pullup, conlicts with TCLK0, PWMH3 */
  589. 3 8 0x1 0x1>; /* PD8 periph A MCI0_DA7 with pullup, conflicts with PWML3 */
  590. };
  591. };
  592. mmc1 {
  593. pinctrl_mmc1_clk_cmd_dat0: mmc1_clk_cmd_dat0 {
  594. atmel,pins =
  595. <1 24 0x1 0x0 /* PB24 periph A MCI1_CK, conflicts with GRX5 */
  596. 1 19 0x1 0x1 /* PB19 periph A MCI1_CDA with pullup, conflicts with GTX4 */
  597. 1 20 0x1 0x1>; /* PB20 periph A MCI1_DA0 with pullup, conflicts with GTX5 */
  598. };
  599. pinctrl_mmc1_dat1_3: mmc1_dat1_3 {
  600. atmel,pins =
  601. <1 21 0x1 0x1 /* PB21 periph A MCI1_DA1 with pullup, conflicts with GTX6 */
  602. 1 22 0x1 0x1 /* PB22 periph A MCI1_DA2 with pullup, conflicts with GTX7 */
  603. 1 23 0x1 0x1>; /* PB23 periph A MCI1_DA3 with pullup, conflicts with GRX4 */
  604. };
  605. };
  606. mmc2 {
  607. pinctrl_mmc2_clk_cmd_dat0: mmc2_clk_cmd_dat0 {
  608. atmel,pins =
  609. <2 15 0x1 0x0 /* PC15 periph A MCI2_CK, conflicts with PCK2 */
  610. 2 10 0x1 0x1 /* PC10 periph A MCI2_CDA with pullup */
  611. 2 11 0x1 0x1>; /* PC11 periph A MCI2_DA0 with pullup */
  612. };
  613. pinctrl_mmc2_dat1_3: mmc2_dat1_3 {
  614. atmel,pins =
  615. <2 12 0x1 0x0 /* PC12 periph A MCI2_DA1 with pullup, conflicts with TIOA1 */
  616. 2 13 0x1 0x0 /* PC13 periph A MCI2_DA2 with pullup, conflicts with TIOB1 */
  617. 2 14 0x1 0x0>; /* PC14 periph A MCI2_DA3 with pullup, conflicts with TCLK1 */
  618. };
  619. };
  620. nand0 {
  621. pinctrl_nand0_ale_cle: nand0_ale_cle-0 {
  622. atmel,pins =
  623. <4 21 0x1 0x1 /* PE21 periph A with pullup */
  624. 4 22 0x1 0x1>; /* PE22 periph A with pullup */
  625. };
  626. };
  627. pioA: gpio@fffff200 {
  628. compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
  629. reg = <0xfffff200 0x100>;
  630. interrupts = <6 4 1>;
  631. #gpio-cells = <2>;
  632. gpio-controller;
  633. interrupt-controller;
  634. #interrupt-cells = <2>;
  635. };
  636. pioB: gpio@fffff400 {
  637. compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
  638. reg = <0xfffff400 0x100>;
  639. interrupts = <7 4 1>;
  640. #gpio-cells = <2>;
  641. gpio-controller;
  642. interrupt-controller;
  643. #interrupt-cells = <2>;
  644. };
  645. pioC: gpio@fffff600 {
  646. compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
  647. reg = <0xfffff600 0x100>;
  648. interrupts = <8 4 1>;
  649. #gpio-cells = <2>;
  650. gpio-controller;
  651. interrupt-controller;
  652. #interrupt-cells = <2>;
  653. };
  654. pioD: gpio@fffff800 {
  655. compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
  656. reg = <0xfffff800 0x100>;
  657. interrupts = <9 4 1>;
  658. #gpio-cells = <2>;
  659. gpio-controller;
  660. interrupt-controller;
  661. #interrupt-cells = <2>;
  662. };
  663. pioE: gpio@fffffa00 {
  664. compatible = "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
  665. reg = <0xfffffa00 0x100>;
  666. interrupts = <10 4 1>;
  667. #gpio-cells = <2>;
  668. gpio-controller;
  669. interrupt-controller;
  670. #interrupt-cells = <2>;
  671. };
  672. spi0 {
  673. pinctrl_spi0: spi0-0 {
  674. atmel,pins =
  675. <3 10 0x1 0x0 /* PD10 periph A SPI0_MISO pin */
  676. 3 11 0x1 0x0 /* PD11 periph A SPI0_MOSI pin */
  677. 3 12 0x1 0x0 /* PD12 periph A SPI0_SPCK pin */
  678. 3 13 0x0 0x0>; /* PD13 GPIO SPI0_NPCS0 pin */
  679. };
  680. };
  681. spi1 {
  682. pinctrl_spi1: spi1-0 {
  683. atmel,pins =
  684. <2 22 0x1 0x0 /* PC22 periph A SPI1_MISO pin */
  685. 2 23 0x1 0x0 /* PC23 periph A SPI1_MOSI pin */
  686. 2 24 0x1 0x0 /* PC24 periph A SPI1_SPCK pin */
  687. 2 25 0x0 0x0>; /* PC25 GPIO SPI1_NPCS0 pin */
  688. };
  689. };
  690. ssc0 {
  691. pinctrl_ssc0_tx: ssc0_tx {
  692. atmel,pins =
  693. <2 16 0x1 0x0 /* PC16 periph A TK0 */
  694. 2 17 0x1 0x0 /* PC17 periph A TF0 */
  695. 2 18 0x1 0x0>; /* PC18 periph A TD0 */
  696. };
  697. pinctrl_ssc0_rx: ssc0_rx {
  698. atmel,pins =
  699. <2 19 0x1 0x0 /* PC19 periph A RK0 */
  700. 2 20 0x1 0x0 /* PC20 periph A RF0 */
  701. 2 21 0x1 0x0>; /* PC21 periph A RD0 */
  702. };
  703. };
  704. ssc1 {
  705. pinctrl_ssc1_tx: ssc1_tx {
  706. atmel,pins =
  707. <1 2 0x2 0x0 /* PB2 periph B TK1, conflicts with GTX2 */
  708. 1 3 0x2 0x0 /* PB3 periph B TF1, conflicts with GTX3 */
  709. 1 6 0x2 0x0>; /* PB6 periph B TD1, conflicts with TD1 */
  710. };
  711. pinctrl_ssc1_rx: ssc1_rx {
  712. atmel,pins =
  713. <1 7 0x2 0x0 /* PB7 periph B RK1, conflicts with EREFCK */
  714. 1 10 0x2 0x0 /* PB10 periph B RF1, conflicts with GTXER */
  715. 1 11 0x2 0x0>; /* PB11 periph B RD1, conflicts with GRXCK */
  716. };
  717. };
  718. uart0 {
  719. pinctrl_uart0: uart0-0 {
  720. atmel,pins =
  721. <2 29 0x1 0x0 /* PC29 periph A, conflicts with PWMFI2, ISI_D8 */
  722. 2 30 0x1 0x1>; /* PC30 periph A with pullup, conflicts with ISI_PCK */
  723. };
  724. };
  725. uart1 {
  726. pinctrl_uart1: uart1-0 {
  727. atmel,pins =
  728. <0 30 0x2 0x0 /* PA30 periph B, conflicts with TWD0, ISI_VSYNC */
  729. 0 31 0x2 0x1>; /* PA31 periph B with pullup, conflicts with TWCK0, ISI_HSYNC */
  730. };
  731. };
  732. usart0 {
  733. pinctrl_usart0: usart0-0 {
  734. atmel,pins =
  735. <3 17 0x1 0x0 /* PD17 periph A */
  736. 3 18 0x1 0x1>; /* PD18 periph A with pullup */
  737. };
  738. pinctrl_usart0_rts_cts: usart0_rts_cts-0 {
  739. atmel,pins =
  740. <3 15 0x1 0x0 /* PD15 periph A, conflicts with SPI0_NPCS2, CANTX0 */
  741. 3 16 0x1 0x0>; /* PD16 periph A, conflicts with SPI0_NPCS3, PWMFI3 */
  742. };
  743. };
  744. usart1 {
  745. pinctrl_usart1: usart1-0 {
  746. atmel,pins =
  747. <1 28 0x1 0x0 /* PB28 periph A */
  748. 1 29 0x1 0x1>; /* PB29 periph A with pullup */
  749. };
  750. pinctrl_usart1_rts_cts: usart1_rts_cts-0 {
  751. atmel,pins =
  752. <1 26 0x1 0x0 /* PB26 periph A, conflicts with GRX7 */
  753. 1 27 0x1 0x0>; /* PB27 periph A, conflicts with G125CKO */
  754. };
  755. };
  756. usart2 {
  757. pinctrl_usart2: usart2-0 {
  758. atmel,pins =
  759. <4 25 0x2 0x0 /* PE25 periph B, conflicts with A25 */
  760. 4 26 0x2 0x1>; /* PE26 periph B with pullup, conflicts NCS0 */
  761. };
  762. pinctrl_usart2_rts_cts: usart2_rts_cts-0 {
  763. atmel,pins =
  764. <4 23 0x2 0x0 /* PE23 periph B, conflicts with A23 */
  765. 4 24 0x2 0x0>; /* PE24 periph B, conflicts with A24 */
  766. };
  767. };
  768. usart3 {
  769. pinctrl_usart3: usart3-0 {
  770. atmel,pins =
  771. <4 18 0x2 0x0 /* PE18 periph B, conflicts with A18 */
  772. 4 19 0x2 0x1>; /* PE19 periph B with pullup, conflicts with A19 */
  773. };
  774. pinctrl_usart3_rts_cts: usart3_rts_cts-0 {
  775. atmel,pins =
  776. <4 16 0x2 0x0 /* PE16 periph B, conflicts with A16 */
  777. 4 17 0x2 0x0>; /* PE17 periph B, conflicts with A17 */
  778. };
  779. };
  780. };
  781. pmc: pmc@fffffc00 {
  782. compatible = "atmel,at91rm9200-pmc";
  783. reg = <0xfffffc00 0x120>;
  784. };
  785. rstc@fffffe00 {
  786. compatible = "atmel,at91sam9g45-rstc";
  787. reg = <0xfffffe00 0x10>;
  788. };
  789. pit: timer@fffffe30 {
  790. compatible = "atmel,at91sam9260-pit";
  791. reg = <0xfffffe30 0xf>;
  792. interrupts = <3 4 5>;
  793. };
  794. watchdog@fffffe40 {
  795. compatible = "atmel,at91sam9260-wdt";
  796. reg = <0xfffffe40 0x10>;
  797. status = "disabled";
  798. };
  799. rtc@fffffeb0 {
  800. compatible = "atmel,at91rm9200-rtc";
  801. reg = <0xfffffeb0 0x30>;
  802. interrupts = <1 4 7>;
  803. };
  804. };
  805. usb0: gadget@00500000 {
  806. #address-cells = <1>;
  807. #size-cells = <0>;
  808. compatible = "atmel,at91sam9rl-udc";
  809. reg = <0x00500000 0x100000
  810. 0xf8030000 0x4000>;
  811. interrupts = <33 4 2>;
  812. status = "disabled";
  813. ep0 {
  814. reg = <0>;
  815. atmel,fifo-size = <64>;
  816. atmel,nb-banks = <1>;
  817. };
  818. ep1 {
  819. reg = <1>;
  820. atmel,fifo-size = <1024>;
  821. atmel,nb-banks = <3>;
  822. atmel,can-dma;
  823. atmel,can-isoc;
  824. };
  825. ep2 {
  826. reg = <2>;
  827. atmel,fifo-size = <1024>;
  828. atmel,nb-banks = <3>;
  829. atmel,can-dma;
  830. atmel,can-isoc;
  831. };
  832. ep3 {
  833. reg = <3>;
  834. atmel,fifo-size = <1024>;
  835. atmel,nb-banks = <2>;
  836. atmel,can-dma;
  837. };
  838. ep4 {
  839. reg = <4>;
  840. atmel,fifo-size = <1024>;
  841. atmel,nb-banks = <2>;
  842. atmel,can-dma;
  843. };
  844. ep5 {
  845. reg = <5>;
  846. atmel,fifo-size = <1024>;
  847. atmel,nb-banks = <2>;
  848. atmel,can-dma;
  849. };
  850. ep6 {
  851. reg = <6>;
  852. atmel,fifo-size = <1024>;
  853. atmel,nb-banks = <2>;
  854. atmel,can-dma;
  855. };
  856. ep7 {
  857. reg = <7>;
  858. atmel,fifo-size = <1024>;
  859. atmel,nb-banks = <2>;
  860. atmel,can-dma;
  861. };
  862. ep8 {
  863. reg = <8>;
  864. atmel,fifo-size = <1024>;
  865. atmel,nb-banks = <2>;
  866. };
  867. ep9 {
  868. reg = <9>;
  869. atmel,fifo-size = <1024>;
  870. atmel,nb-banks = <2>;
  871. };
  872. ep10 {
  873. reg = <10>;
  874. atmel,fifo-size = <1024>;
  875. atmel,nb-banks = <2>;
  876. };
  877. ep11 {
  878. reg = <11>;
  879. atmel,fifo-size = <1024>;
  880. atmel,nb-banks = <2>;
  881. };
  882. ep12 {
  883. reg = <12>;
  884. atmel,fifo-size = <1024>;
  885. atmel,nb-banks = <2>;
  886. };
  887. ep13 {
  888. reg = <13>;
  889. atmel,fifo-size = <1024>;
  890. atmel,nb-banks = <2>;
  891. };
  892. ep14 {
  893. reg = <14>;
  894. atmel,fifo-size = <1024>;
  895. atmel,nb-banks = <2>;
  896. };
  897. ep15 {
  898. reg = <15>;
  899. atmel,fifo-size = <1024>;
  900. atmel,nb-banks = <2>;
  901. };
  902. };
  903. usb1: ohci@00600000 {
  904. compatible = "atmel,at91rm9200-ohci", "usb-ohci";
  905. reg = <0x00600000 0x100000>;
  906. interrupts = <32 4 2>;
  907. status = "disabled";
  908. };
  909. usb2: ehci@00700000 {
  910. compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
  911. reg = <0x00700000 0x100000>;
  912. interrupts = <32 4 2>;
  913. status = "disabled";
  914. };
  915. nand0: nand@60000000 {
  916. compatible = "atmel,at91rm9200-nand";
  917. #address-cells = <1>;
  918. #size-cells = <1>;
  919. reg = < 0x60000000 0x01000000 /* EBI CS3 */
  920. 0xffffc070 0x00000490 /* SMC PMECC regs */
  921. 0xffffc500 0x00000100 /* SMC PMECC Error Location regs */
  922. 0x00100000 0x00100000 /* ROM code */
  923. 0x70000000 0x10000000 /* NFC Command Registers */
  924. 0xffffc000 0x00000070 /* NFC HSMC regs */
  925. 0x00200000 0x00100000 /* NFC SRAM banks */
  926. >;
  927. interrupts = <5 4 6>;
  928. atmel,nand-addr-offset = <21>;
  929. atmel,nand-cmd-offset = <22>;
  930. pinctrl-names = "default";
  931. pinctrl-0 = <&pinctrl_nand0_ale_cle>;
  932. atmel,pmecc-lookup-table-offset = <0x10000 0x18000>;
  933. status = "disabled";
  934. };
  935. };
  936. };