at91sam9261.dtsi 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876
  1. /*
  2. * at91sam9261.dtsi - Device Tree Include file for AT91SAM9261 SoC
  3. *
  4. * Copyright (C) 2013 Jean-Jacques Hiblot <jjhiblot@traphandler.com>
  5. *
  6. * Licensed under GPLv2 only.
  7. */
  8. #include "skeleton.dtsi"
  9. #include <dt-bindings/pinctrl/at91.h>
  10. #include <dt-bindings/interrupt-controller/irq.h>
  11. #include <dt-bindings/gpio/gpio.h>
  12. #include <dt-bindings/clock/at91.h>
  13. / {
  14. model = "Atmel AT91SAM9261 family SoC";
  15. compatible = "atmel,at91sam9261";
  16. interrupt-parent = <&aic>;
  17. aliases {
  18. serial0 = &dbgu;
  19. serial1 = &usart0;
  20. serial2 = &usart1;
  21. serial3 = &usart2;
  22. gpio0 = &pioA;
  23. gpio1 = &pioB;
  24. gpio2 = &pioC;
  25. tcb0 = &tcb0;
  26. i2c0 = &i2c0;
  27. ssc0 = &ssc0;
  28. ssc1 = &ssc1;
  29. ssc2 = &ssc2;
  30. };
  31. cpus {
  32. #address-cells = <0>;
  33. #size-cells = <0>;
  34. cpu {
  35. compatible = "arm,arm926ej-s";
  36. device_type = "cpu";
  37. };
  38. };
  39. memory {
  40. reg = <0x20000000 0x08000000>;
  41. };
  42. clocks {
  43. main_xtal: main_xtal {
  44. compatible = "fixed-clock";
  45. #clock-cells = <0>;
  46. clock-frequency = <0>;
  47. };
  48. slow_xtal: slow_xtal {
  49. compatible = "fixed-clock";
  50. #clock-cells = <0>;
  51. clock-frequency = <0>;
  52. };
  53. };
  54. sram: sram@00300000 {
  55. compatible = "mmio-sram";
  56. reg = <0x00300000 0x28000>;
  57. };
  58. ahb {
  59. compatible = "simple-bus";
  60. #address-cells = <1>;
  61. #size-cells = <1>;
  62. ranges;
  63. usb0: ohci@00500000 {
  64. compatible = "atmel,at91rm9200-ohci", "usb-ohci";
  65. reg = <0x00500000 0x100000>;
  66. interrupts = <20 IRQ_TYPE_LEVEL_HIGH 2>;
  67. clocks = <&ohci_clk>, <&hclk0>, <&uhpck>;
  68. clock-names = "ohci_clk", "hclk", "uhpck";
  69. status = "disabled";
  70. };
  71. fb0: fb@0x00600000 {
  72. compatible = "atmel,at91sam9261-lcdc";
  73. reg = <0x00600000 0x1000>;
  74. interrupts = <21 IRQ_TYPE_LEVEL_HIGH 3>;
  75. pinctrl-names = "default";
  76. pinctrl-0 = <&pinctrl_fb>;
  77. clocks = <&lcd_clk>, <&hclk1>;
  78. clock-names = "lcdc_clk", "hclk";
  79. status = "disabled";
  80. };
  81. nand0: nand@40000000 {
  82. compatible = "atmel,at91rm9200-nand";
  83. #address-cells = <1>;
  84. #size-cells = <1>;
  85. reg = <0x40000000 0x10000000>;
  86. atmel,nand-addr-offset = <22>;
  87. atmel,nand-cmd-offset = <21>;
  88. pinctrl-names = "default";
  89. pinctrl-0 = <&pinctrl_nand>;
  90. gpios = <&pioC 15 GPIO_ACTIVE_HIGH>,
  91. <&pioC 14 GPIO_ACTIVE_HIGH>,
  92. <0>;
  93. status = "disabled";
  94. };
  95. apb {
  96. compatible = "simple-bus";
  97. #address-cells = <1>;
  98. #size-cells = <1>;
  99. ranges;
  100. tcb0: timer@fffa0000 {
  101. compatible = "atmel,at91rm9200-tcb";
  102. reg = <0xfffa0000 0x100>;
  103. interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>,
  104. <18 IRQ_TYPE_LEVEL_HIGH 0>,
  105. <19 IRQ_TYPE_LEVEL_HIGH 0>;
  106. clocks = <&tc0_clk>, <&tc1_clk>, <&tc2_clk>, <&slow_xtal>;
  107. clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
  108. };
  109. usb1: gadget@fffa4000 {
  110. compatible = "atmel,at91sam9261-udc";
  111. reg = <0xfffa4000 0x4000>;
  112. interrupts = <10 IRQ_TYPE_LEVEL_HIGH 2>;
  113. clocks = <&udc_clk>, <&udpck>;
  114. clock-names = "pclk", "hclk";
  115. atmel,matrix = <&matrix>;
  116. status = "disabled";
  117. };
  118. mmc0: mmc@fffa8000 {
  119. compatible = "atmel,hsmci";
  120. reg = <0xfffa8000 0x600>;
  121. interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>;
  122. pinctrl-names = "default";
  123. pinctrl-0 = <&pinctrl_mmc0_clk>, <&pinctrl_mmc0_slot0_cmd_dat0>, <&pinctrl_mmc0_slot0_dat1_3>;
  124. #address-cells = <1>;
  125. #size-cells = <0>;
  126. clocks = <&mci0_clk>;
  127. clock-names = "mci_clk";
  128. status = "disabled";
  129. };
  130. i2c0: i2c@fffac000 {
  131. compatible = "atmel,at91sam9261-i2c";
  132. pinctrl-names = "default";
  133. pinctrl-0 = <&pinctrl_i2c_twi>;
  134. reg = <0xfffac000 0x100>;
  135. interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>;
  136. #address-cells = <1>;
  137. #size-cells = <0>;
  138. clocks = <&twi0_clk>;
  139. status = "disabled";
  140. };
  141. usart0: serial@fffb0000 {
  142. compatible = "atmel,at91sam9260-usart";
  143. reg = <0xfffb0000 0x200>;
  144. interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
  145. atmel,use-dma-rx;
  146. atmel,use-dma-tx;
  147. pinctrl-names = "default";
  148. pinctrl-0 = <&pinctrl_usart0>;
  149. clocks = <&usart0_clk>;
  150. clock-names = "usart";
  151. status = "disabled";
  152. };
  153. usart1: serial@fffb4000 {
  154. compatible = "atmel,at91sam9260-usart";
  155. reg = <0xfffb4000 0x200>;
  156. interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
  157. atmel,use-dma-rx;
  158. atmel,use-dma-tx;
  159. pinctrl-names = "default";
  160. pinctrl-0 = <&pinctrl_usart1>;
  161. clocks = <&usart1_clk>;
  162. clock-names = "usart";
  163. status = "disabled";
  164. };
  165. usart2: serial@fffb8000{
  166. compatible = "atmel,at91sam9260-usart";
  167. reg = <0xfffb8000 0x200>;
  168. interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
  169. atmel,use-dma-rx;
  170. atmel,use-dma-tx;
  171. pinctrl-names = "default";
  172. pinctrl-0 = <&pinctrl_usart2>;
  173. clocks = <&usart2_clk>;
  174. clock-names = "usart";
  175. status = "disabled";
  176. };
  177. ssc0: ssc@fffbc000 {
  178. compatible = "atmel,at91rm9200-ssc";
  179. reg = <0xfffbc000 0x4000>;
  180. interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
  181. pinctrl-names = "default";
  182. pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
  183. clocks = <&ssc0_clk>;
  184. clock-names = "pclk";
  185. status = "disabled";
  186. };
  187. ssc1: ssc@fffc0000 {
  188. compatible = "atmel,at91rm9200-ssc";
  189. reg = <0xfffc0000 0x4000>;
  190. interrupts = <15 IRQ_TYPE_LEVEL_HIGH 5>;
  191. pinctrl-names = "default";
  192. pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
  193. clocks = <&ssc1_clk>;
  194. clock-names = "pclk";
  195. status = "disabled";
  196. };
  197. ssc2: ssc@fffc4000 {
  198. compatible = "atmel,at91rm9200-ssc";
  199. reg = <0xfffc4000 0x4000>;
  200. interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
  201. pinctrl-names = "default";
  202. pinctrl-0 = <&pinctrl_ssc2_tx &pinctrl_ssc2_rx>;
  203. clocks = <&ssc2_clk>;
  204. clock-names = "pclk";
  205. status = "disabled";
  206. };
  207. spi0: spi@fffc8000 {
  208. #address-cells = <1>;
  209. #size-cells = <0>;
  210. compatible = "atmel,at91rm9200-spi";
  211. reg = <0xfffc8000 0x200>;
  212. cs-gpios = <0>, <0>, <0>, <0>;
  213. interrupts = <12 IRQ_TYPE_LEVEL_HIGH 3>;
  214. pinctrl-names = "default";
  215. pinctrl-0 = <&pinctrl_spi0>;
  216. clocks = <&spi0_clk>;
  217. clock-names = "spi_clk";
  218. status = "disabled";
  219. };
  220. spi1: spi@fffcc000 {
  221. #address-cells = <1>;
  222. #size-cells = <0>;
  223. compatible = "atmel,at91rm9200-spi";
  224. reg = <0xfffcc000 0x200>;
  225. interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
  226. pinctrl-names = "default";
  227. pinctrl-0 = <&pinctrl_spi1>;
  228. clocks = <&spi1_clk>;
  229. clock-names = "spi_clk";
  230. status = "disabled";
  231. };
  232. ramc: ramc@ffffea00 {
  233. compatible = "atmel,at91sam9260-sdramc";
  234. reg = <0xffffea00 0x200>;
  235. };
  236. matrix: matrix@ffffee00 {
  237. compatible = "atmel,at91sam9260-bus-matrix", "syscon";
  238. reg = <0xffffee00 0x200>;
  239. };
  240. aic: interrupt-controller@fffff000 {
  241. #interrupt-cells = <3>;
  242. compatible = "atmel,at91rm9200-aic";
  243. interrupt-controller;
  244. reg = <0xfffff000 0x200>;
  245. atmel,external-irqs = <29 30 31>;
  246. };
  247. dbgu: serial@fffff200 {
  248. compatible = "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
  249. reg = <0xfffff200 0x200>;
  250. interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
  251. pinctrl-names = "default";
  252. pinctrl-0 = <&pinctrl_dbgu>;
  253. clocks = <&mck>;
  254. clock-names = "usart";
  255. status = "disabled";
  256. };
  257. pinctrl@fffff400 {
  258. #address-cells = <1>;
  259. #size-cells = <1>;
  260. compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
  261. ranges = <0xfffff400 0xfffff400 0x600>;
  262. atmel,mux-mask =
  263. /* A B */
  264. <0xffffffff 0xfffffff7>, /* pioA */
  265. <0xffffffff 0xfffffff4>, /* pioB */
  266. <0xffffffff 0xffffff07>; /* pioC */
  267. /* shared pinctrl settings */
  268. dbgu {
  269. pinctrl_dbgu: dbgu-0 {
  270. atmel,pins =
  271. <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  272. <AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
  273. };
  274. };
  275. usart0 {
  276. pinctrl_usart0: usart0-0 {
  277. atmel,pins =
  278. <AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
  279. <AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_NONE>;
  280. };
  281. pinctrl_usart0_rts: usart0_rts-0 {
  282. atmel,pins =
  283. <AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
  284. };
  285. pinctrl_usart0_cts: usart0_cts-0 {
  286. atmel,pins =
  287. <AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE>;
  288. };
  289. };
  290. usart1 {
  291. pinctrl_usart1: usart1-0 {
  292. atmel,pins =
  293. <AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
  294. <AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_NONE>;
  295. };
  296. pinctrl_usart1_rts: usart1_rts-0 {
  297. atmel,pins =
  298. <AT91_PIOA 12 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  299. };
  300. pinctrl_usart1_cts: usart1_cts-0 {
  301. atmel,pins =
  302. <AT91_PIOA 13 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  303. };
  304. };
  305. usart2 {
  306. pinctrl_usart2: usart2-0 {
  307. atmel,pins =
  308. <AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
  309. <AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
  310. };
  311. pinctrl_usart2_rts: usart2_rts-0 {
  312. atmel,pins =
  313. <AT91_PIOA 15 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  314. };
  315. pinctrl_usart2_cts: usart2_cts-0 {
  316. atmel,pins =
  317. <AT91_PIOA 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  318. };
  319. };
  320. nand {
  321. pinctrl_nand: nand-0 {
  322. atmel,pins =
  323. <AT91_PIOC 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>,
  324. <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
  325. };
  326. };
  327. mmc0 {
  328. pinctrl_mmc0_clk: mmc0_clk-0 {
  329. atmel,pins =
  330. <AT91_PIOA 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  331. };
  332. pinctrl_mmc0_slot0_cmd_dat0: mmc0_slot0_cmd_dat0-0 {
  333. atmel,pins =
  334. <AT91_PIOA 1 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
  335. <AT91_PIOA 0 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
  336. };
  337. pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
  338. atmel,pins =
  339. <AT91_PIOA 4 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
  340. <AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
  341. <AT91_PIOA 6 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
  342. };
  343. };
  344. ssc0 {
  345. pinctrl_ssc0_tx: ssc0_tx-0 {
  346. atmel,pins =
  347. <AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  348. <AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  349. <AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;
  350. };
  351. pinctrl_ssc0_rx: ssc0_rx-0 {
  352. atmel,pins =
  353. <AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  354. <AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  355. <AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
  356. };
  357. };
  358. ssc1 {
  359. pinctrl_ssc1_tx: ssc1_tx-0 {
  360. atmel,pins =
  361. <AT91_PIOA 17 AT91_PERIPH_B AT91_PINCTRL_NONE>,
  362. <AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_NONE>,
  363. <AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  364. };
  365. pinctrl_ssc1_rx: ssc1_rx-0 {
  366. atmel,pins =
  367. <AT91_PIOA 20 AT91_PERIPH_B AT91_PINCTRL_NONE>,
  368. <AT91_PIOA 21 AT91_PERIPH_B AT91_PINCTRL_NONE>,
  369. <AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  370. };
  371. };
  372. ssc2 {
  373. pinctrl_ssc2_tx: ssc2_tx-0 {
  374. atmel,pins =
  375. <AT91_PIOC 25 AT91_PERIPH_B AT91_PINCTRL_NONE>,
  376. <AT91_PIOC 26 AT91_PERIPH_B AT91_PINCTRL_NONE>,
  377. <AT91_PIOC 27 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  378. };
  379. pinctrl_ssc2_rx: ssc2_rx-0 {
  380. atmel,pins =
  381. <AT91_PIOC 28 AT91_PERIPH_B AT91_PINCTRL_NONE>,
  382. <AT91_PIOC 29 AT91_PERIPH_B AT91_PINCTRL_NONE>,
  383. <AT91_PIOC 30 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  384. };
  385. };
  386. spi0 {
  387. pinctrl_spi0: spi0-0 {
  388. atmel,pins =
  389. <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  390. <AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  391. <AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;
  392. };
  393. };
  394. spi1 {
  395. pinctrl_spi1: spi1-0 {
  396. atmel,pins =
  397. <AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  398. <AT91_PIOB 31 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  399. <AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;
  400. };
  401. };
  402. tcb0 {
  403. pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
  404. atmel,pins = <AT91_PIOC 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  405. };
  406. pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
  407. atmel,pins = <AT91_PIOC 17 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  408. };
  409. pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
  410. atmel,pins = <AT91_PIOC 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  411. };
  412. pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
  413. atmel,pins = <AT91_PIOC 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  414. };
  415. pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
  416. atmel,pins = <AT91_PIOC 21 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  417. };
  418. pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
  419. atmel,pins = <AT91_PIOC 23 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  420. };
  421. pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
  422. atmel,pins = <AT91_PIOC 20 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  423. };
  424. pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
  425. atmel,pins = <AT91_PIOC 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  426. };
  427. pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
  428. atmel,pins = <AT91_PIOC 24 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  429. };
  430. };
  431. i2c0 {
  432. pinctrl_i2c_bitbang: i2c-0-bitbang {
  433. atmel,pins =
  434. <AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>,
  435. <AT91_PIOA 8 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
  436. };
  437. pinctrl_i2c_twi: i2c-0-twi {
  438. atmel,pins =
  439. <AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  440. <AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>;
  441. };
  442. };
  443. fb {
  444. pinctrl_fb: fb-0 {
  445. atmel,pins =
  446. <AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  447. <AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  448. <AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  449. <AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  450. <AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  451. <AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  452. <AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  453. <AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  454. <AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  455. <AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  456. <AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  457. <AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  458. <AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  459. <AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  460. <AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE>,
  461. <AT91_PIOB 23 AT91_PERIPH_B AT91_PINCTRL_NONE>,
  462. <AT91_PIOB 24 AT91_PERIPH_B AT91_PINCTRL_NONE>,
  463. <AT91_PIOB 25 AT91_PERIPH_B AT91_PINCTRL_NONE>,
  464. <AT91_PIOB 26 AT91_PERIPH_B AT91_PINCTRL_NONE>,
  465. <AT91_PIOB 27 AT91_PERIPH_B AT91_PINCTRL_NONE>,
  466. <AT91_PIOB 28 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  467. };
  468. };
  469. pioA: gpio@fffff400 {
  470. compatible = "atmel,at91rm9200-gpio";
  471. reg = <0xfffff400 0x200>;
  472. interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
  473. #gpio-cells = <2>;
  474. gpio-controller;
  475. interrupt-controller;
  476. #interrupt-cells = <2>;
  477. clocks = <&pioA_clk>;
  478. };
  479. pioB: gpio@fffff600 {
  480. compatible = "atmel,at91rm9200-gpio";
  481. reg = <0xfffff600 0x200>;
  482. interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
  483. #gpio-cells = <2>;
  484. gpio-controller;
  485. interrupt-controller;
  486. #interrupt-cells = <2>;
  487. clocks = <&pioB_clk>;
  488. };
  489. pioC: gpio@fffff800 {
  490. compatible = "atmel,at91rm9200-gpio";
  491. reg = <0xfffff800 0x200>;
  492. interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
  493. #gpio-cells = <2>;
  494. gpio-controller;
  495. interrupt-controller;
  496. #interrupt-cells = <2>;
  497. clocks = <&pioC_clk>;
  498. };
  499. };
  500. pmc: pmc@fffffc00 {
  501. compatible = "atmel,at91rm9200-pmc", "syscon";
  502. reg = <0xfffffc00 0x100>;
  503. interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
  504. interrupt-controller;
  505. #address-cells = <1>;
  506. #size-cells = <0>;
  507. #interrupt-cells = <1>;
  508. main_osc: main_osc {
  509. compatible = "atmel,at91rm9200-clk-main-osc";
  510. #clock-cells = <0>;
  511. interrupts-extended = <&pmc AT91_PMC_MOSCS>;
  512. clocks = <&main_xtal>;
  513. };
  514. main: mainck {
  515. compatible = "atmel,at91rm9200-clk-main";
  516. #clock-cells = <0>;
  517. clocks = <&main_osc>;
  518. };
  519. plla: pllack {
  520. compatible = "atmel,at91rm9200-clk-pll";
  521. #clock-cells = <0>;
  522. interrupts-extended = <&pmc AT91_PMC_LOCKA>;
  523. clocks = <&main>;
  524. reg = <0>;
  525. atmel,clk-input-range = <1000000 32000000>;
  526. #atmel,pll-clk-output-range-cells = <4>;
  527. atmel,pll-clk-output-ranges = <80000000 200000000 0 1>,
  528. <190000000 240000000 2 1>;
  529. };
  530. pllb: pllbck {
  531. compatible = "atmel,at91rm9200-clk-pll";
  532. #clock-cells = <0>;
  533. interrupts-extended = <&pmc AT91_PMC_LOCKB>;
  534. clocks = <&main>;
  535. reg = <1>;
  536. atmel,clk-input-range = <1000000 5000000>;
  537. #atmel,pll-clk-output-range-cells = <4>;
  538. atmel,pll-clk-output-ranges = <70000000 130000000 1 1>;
  539. };
  540. mck: masterck {
  541. compatible = "atmel,at91rm9200-clk-master";
  542. #clock-cells = <0>;
  543. interrupts-extended = <&pmc AT91_PMC_MCKRDY>;
  544. clocks = <&slow_xtal>, <&main>, <&plla>, <&pllb>;
  545. atmel,clk-output-range = <0 94000000>;
  546. atmel,clk-divisors = <1 2 4 0>;
  547. };
  548. usb: usbck {
  549. compatible = "atmel,at91rm9200-clk-usb";
  550. #clock-cells = <0>;
  551. atmel,clk-divisors = <1 2 4 0>;
  552. clocks = <&pllb>;
  553. };
  554. prog: progck {
  555. compatible = "atmel,at91rm9200-clk-programmable";
  556. #address-cells = <1>;
  557. #size-cells = <0>;
  558. interrupt-parent = <&pmc>;
  559. clocks = <&slow_xtal>, <&main>, <&plla>, <&pllb>;
  560. prog0: prog0 {
  561. #clock-cells = <0>;
  562. reg = <0>;
  563. interrupts = <AT91_PMC_PCKRDY(0)>;
  564. };
  565. prog1: prog1 {
  566. #clock-cells = <0>;
  567. reg = <1>;
  568. interrupts = <AT91_PMC_PCKRDY(1)>;
  569. };
  570. prog2: prog2 {
  571. #clock-cells = <0>;
  572. reg = <2>;
  573. interrupts = <AT91_PMC_PCKRDY(2)>;
  574. };
  575. prog3: prog3 {
  576. #clock-cells = <0>;
  577. reg = <3>;
  578. interrupts = <AT91_PMC_PCKRDY(3)>;
  579. };
  580. };
  581. systemck {
  582. compatible = "atmel,at91rm9200-clk-system";
  583. #address-cells = <1>;
  584. #size-cells = <0>;
  585. uhpck: uhpck {
  586. #clock-cells = <0>;
  587. reg = <6>;
  588. clocks = <&usb>;
  589. };
  590. udpck: udpck {
  591. #clock-cells = <0>;
  592. reg = <7>;
  593. clocks = <&usb>;
  594. };
  595. pck0: pck0 {
  596. #clock-cells = <0>;
  597. reg = <8>;
  598. clocks = <&prog0>;
  599. };
  600. pck1: pck1 {
  601. #clock-cells = <0>;
  602. reg = <9>;
  603. clocks = <&prog1>;
  604. };
  605. pck2: pck2 {
  606. #clock-cells = <0>;
  607. reg = <10>;
  608. clocks = <&prog2>;
  609. };
  610. pck3: pck3 {
  611. #clock-cells = <0>;
  612. reg = <11>;
  613. clocks = <&prog3>;
  614. };
  615. hclk0: hclk0 {
  616. #clock-cells = <0>;
  617. reg = <16>;
  618. clocks = <&mck>;
  619. };
  620. hclk1: hclk1 {
  621. #clock-cells = <0>;
  622. reg = <17>;
  623. clocks = <&mck>;
  624. };
  625. };
  626. periphck {
  627. compatible = "atmel,at91rm9200-clk-peripheral";
  628. #address-cells = <1>;
  629. #size-cells = <0>;
  630. clocks = <&mck>;
  631. pioA_clk: pioA_clk {
  632. #clock-cells = <0>;
  633. reg = <2>;
  634. };
  635. pioB_clk: pioB_clk {
  636. #clock-cells = <0>;
  637. reg = <3>;
  638. };
  639. pioC_clk: pioC_clk {
  640. #clock-cells = <0>;
  641. reg = <4>;
  642. };
  643. usart0_clk: usart0_clk {
  644. #clock-cells = <0>;
  645. reg = <6>;
  646. };
  647. usart1_clk: usart1_clk {
  648. #clock-cells = <0>;
  649. reg = <7>;
  650. };
  651. usart2_clk: usart2_clk {
  652. #clock-cells = <0>;
  653. reg = <8>;
  654. };
  655. mci0_clk: mci0_clk {
  656. #clock-cells = <0>;
  657. reg = <9>;
  658. };
  659. udc_clk: udc_clk {
  660. #clock-cells = <0>;
  661. reg = <10>;
  662. };
  663. twi0_clk: twi0_clk {
  664. reg = <11>;
  665. #clock-cells = <0>;
  666. };
  667. spi0_clk: spi0_clk {
  668. #clock-cells = <0>;
  669. reg = <12>;
  670. };
  671. spi1_clk: spi1_clk {
  672. #clock-cells = <0>;
  673. reg = <13>;
  674. };
  675. ssc0_clk: ssc0_clk {
  676. #clock-cells = <0>;
  677. reg = <14>;
  678. };
  679. ssc1_clk: ssc1_clk {
  680. #clock-cells = <0>;
  681. reg = <15>;
  682. };
  683. ssc2_clk: ssc2_clk {
  684. #clock-cells = <0>;
  685. reg = <16>;
  686. };
  687. tc0_clk: tc0_clk {
  688. #clock-cells = <0>;
  689. reg = <17>;
  690. };
  691. tc1_clk: tc1_clk {
  692. #clock-cells = <0>;
  693. reg = <18>;
  694. };
  695. tc2_clk: tc2_clk {
  696. #clock-cells = <0>;
  697. reg = <19>;
  698. };
  699. ohci_clk: ohci_clk {
  700. #clock-cells = <0>;
  701. reg = <20>;
  702. };
  703. lcd_clk: lcd_clk {
  704. #clock-cells = <0>;
  705. reg = <21>;
  706. };
  707. };
  708. };
  709. rstc@fffffd00 {
  710. compatible = "atmel,at91sam9260-rstc";
  711. reg = <0xfffffd00 0x10>;
  712. clocks = <&slow_xtal>;
  713. };
  714. shdwc@fffffd10 {
  715. compatible = "atmel,at91sam9260-shdwc";
  716. reg = <0xfffffd10 0x10>;
  717. clocks = <&slow_xtal>;
  718. };
  719. pit: timer@fffffd30 {
  720. compatible = "atmel,at91sam9260-pit";
  721. reg = <0xfffffd30 0xf>;
  722. interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
  723. clocks = <&mck>;
  724. };
  725. rtc@fffffd20 {
  726. compatible = "atmel,at91sam9260-rtt";
  727. reg = <0xfffffd20 0x10>;
  728. interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
  729. clocks = <&slow_xtal>;
  730. status = "disabled";
  731. };
  732. watchdog@fffffd40 {
  733. compatible = "atmel,at91sam9260-wdt";
  734. reg = <0xfffffd40 0x10>;
  735. interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
  736. clocks = <&slow_xtal>;
  737. status = "disabled";
  738. };
  739. gpbr: syscon@fffffd50 {
  740. compatible = "atmel,at91sam9260-gpbr", "syscon";
  741. reg = <0xfffffd50 0x10>;
  742. status = "disabled";
  743. };
  744. };
  745. };
  746. i2c@0 {
  747. compatible = "i2c-gpio";
  748. pinctrl-names = "default";
  749. pinctrl-0 = <&pinctrl_i2c_bitbang>;
  750. gpios = <&pioA 7 GPIO_ACTIVE_HIGH>, /* sda */
  751. <&pioA 8 GPIO_ACTIVE_HIGH>; /* scl */
  752. i2c-gpio,sda-open-drain;
  753. i2c-gpio,scl-open-drain;
  754. i2c-gpio,delay-us = <2>; /* ~100 kHz */
  755. #address-cells = <1>;
  756. #size-cells = <0>;
  757. status = "disabled";
  758. };
  759. };