at91-sam9x60ek.dts 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * at91-sam9x60ek.dts - Device Tree file for Microchip SAM9X60-EK board
  4. *
  5. * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries
  6. *
  7. * Author: Sandeep Sheriker M <[email protected]>
  8. */
  9. /dts-v1/;
  10. #include "sam9x60.dtsi"
  11. #include <dt-bindings/input/input.h>
  12. / {
  13. model = "Microchip SAM9X60-EK";
  14. compatible = "microchip,sam9x60ek", "microchip,sam9x60", "atmel,at91sam9";
  15. aliases {
  16. i2c0 = &i2c0;
  17. i2c1 = &i2c1;
  18. serial1 = &uart1;
  19. };
  20. chosen {
  21. stdout-path = "serial0:115200n8";
  22. };
  23. clocks {
  24. slow_xtal {
  25. clock-frequency = <32768>;
  26. };
  27. main_xtal {
  28. clock-frequency = <24000000>;
  29. };
  30. };
  31. gpio-keys {
  32. compatible = "gpio-keys";
  33. pinctrl-names = "default";
  34. pinctrl-0 = <&pinctrl_key_gpio_default>;
  35. button-1 {
  36. label = "SW1";
  37. gpios = <&pioD 18 GPIO_ACTIVE_LOW>;
  38. linux,code = <KEY_PROG1>;
  39. wakeup-source;
  40. };
  41. };
  42. leds {
  43. compatible = "gpio-leds";
  44. pinctrl-names = "default";
  45. pinctrl-0 = <&pinctrl_gpio_leds>;
  46. status = "okay"; /* Conflict with pwm0. */
  47. red {
  48. label = "red";
  49. gpios = <&pioB 11 GPIO_ACTIVE_HIGH>;
  50. };
  51. green {
  52. label = "green";
  53. gpios = <&pioB 12 GPIO_ACTIVE_HIGH>;
  54. };
  55. blue {
  56. label = "blue";
  57. gpios = <&pioB 13 GPIO_ACTIVE_HIGH>;
  58. linux,default-trigger = "heartbeat";
  59. };
  60. };
  61. vdd_1v8: fixed-regulator-vdd_1v8 {
  62. compatible = "regulator-fixed";
  63. regulator-name = "VDD_1V8";
  64. regulator-min-microvolt = <1800000>;
  65. regulator-max-microvolt = <1800000>;
  66. regulator-always-on;
  67. status = "okay";
  68. };
  69. vdd_1v15: fixed-regulator-vdd_1v15 {
  70. compatible = "regulator-fixed";
  71. regulator-name = "VDD_1V15";
  72. regulator-min-microvolt = <1150000>;
  73. regulator-max-microvolt = <1150000>;
  74. regulator-always-on;
  75. status = "okay";
  76. };
  77. vdd1_3v3: fixed-regulator-vdd1_3v3 {
  78. compatible = "regulator-fixed";
  79. regulator-name = "VDD1_3V3";
  80. regulator-min-microvolt = <3300000>;
  81. regulator-max-microvolt = <3300000>;
  82. regulator-always-on;
  83. status = "okay";
  84. };
  85. vdd2_3v3: regulator-fixed-vdd2_3v3 {
  86. compatible = "regulator-fixed";
  87. regulator-name = "VDD2_3V3";
  88. regulator-min-microvolt = <3300000>;
  89. regulator-max-microvolt = <3300000>;
  90. regulator-always-on;
  91. status = "okay";
  92. };
  93. };
  94. &adc {
  95. vddana-supply = <&vdd1_3v3>;
  96. vref-supply = <&vdd1_3v3>;
  97. pinctrl-names = "default";
  98. pinctrl-0 = <&pinctrl_adc_default &pinctrl_adtrg_default>;
  99. status = "okay";
  100. };
  101. &can0 {
  102. pinctrl-names = "default";
  103. pinctrl-0 = <&pinctrl_can0_rx_tx>;
  104. status = "disabled"; /* Conflict with dbgu. */
  105. };
  106. &can1 {
  107. pinctrl-names = "default";
  108. pinctrl-0 = <&pinctrl_can1_rx_tx>;
  109. status = "okay";
  110. };
  111. &classd {
  112. pinctrl-names = "default";
  113. pinctrl-0 = <&pinctrl_classd_default>;
  114. atmel,pwm-type = "diff";
  115. atmel,non-overlap-time = <10>;
  116. status = "okay";
  117. };
  118. &dbgu {
  119. pinctrl-names = "default";
  120. pinctrl-0 = <&pinctrl_dbgu>;
  121. status = "okay"; /* Conflict with can0. */
  122. };
  123. &ebi {
  124. pinctrl-names = "default";
  125. pinctrl-0 = <&pinctrl_ebi_addr_nand &pinctrl_ebi_data_0_7>;
  126. status = "okay";
  127. nand_controller: nand-controller {
  128. pinctrl-names = "default";
  129. pinctrl-0 = <&pinctrl_nand_oe_we &pinctrl_nand_cs &pinctrl_nand_rb>;
  130. status = "okay";
  131. nand@3 {
  132. reg = <0x3 0x0 0x800000>;
  133. rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
  134. cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
  135. nand-bus-width = <8>;
  136. nand-ecc-mode = "hw";
  137. nand-ecc-strength = <8>;
  138. nand-ecc-step-size = <512>;
  139. nand-on-flash-bbt;
  140. label = "atmel_nand";
  141. partitions {
  142. compatible = "fixed-partitions";
  143. #address-cells = <1>;
  144. #size-cells = <1>;
  145. at91bootstrap@0 {
  146. label = "at91bootstrap";
  147. reg = <0x0 0x40000>;
  148. };
  149. uboot@40000 {
  150. label = "u-boot";
  151. reg = <0x40000 0xc0000>;
  152. };
  153. ubootenvred@100000 {
  154. label = "U-Boot Env Redundant";
  155. reg = <0x100000 0x40000>;
  156. };
  157. ubootenv@140000 {
  158. label = "U-Boot Env";
  159. reg = <0x140000 0x40000>;
  160. };
  161. dtb@180000 {
  162. label = "device tree";
  163. reg = <0x180000 0x80000>;
  164. };
  165. kernel@200000 {
  166. label = "kernel";
  167. reg = <0x200000 0x600000>;
  168. };
  169. rootfs@800000 {
  170. label = "rootfs";
  171. reg = <0x800000 0x1f800000>;
  172. };
  173. };
  174. };
  175. };
  176. };
  177. &flx0 {
  178. atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
  179. status = "okay";
  180. i2c0: i2c@600 {
  181. compatible = "microchip,sam9x60-i2c";
  182. reg = <0x600 0x200>;
  183. interrupts = <5 IRQ_TYPE_LEVEL_HIGH 7>;
  184. #address-cells = <1>;
  185. #size-cells = <0>;
  186. clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
  187. pinctrl-names = "default";
  188. pinctrl-0 = <&pinctrl_flx0_default>;
  189. atmel,fifo-size = <16>;
  190. i2c-analog-filter;
  191. i2c-digital-filter;
  192. i2c-digital-filter-width-ns = <35>;
  193. status = "okay";
  194. eeprom@53 {
  195. compatible = "atmel,24c02";
  196. reg = <0x53>;
  197. pagesize = <16>;
  198. status = "okay";
  199. };
  200. };
  201. };
  202. &flx4 {
  203. atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
  204. status = "disabled";
  205. spi0: spi@400 {
  206. compatible = "microchip,sam9x60-spi", "atmel,at91rm9200-spi";
  207. reg = <0x400 0x200>;
  208. interrupts = <13 IRQ_TYPE_LEVEL_HIGH 7>;
  209. clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
  210. clock-names = "spi_clk";
  211. pinctrl-names = "default";
  212. pinctrl-0 = <&pinctrl_flx4_default>;
  213. atmel,fifo-size = <16>;
  214. #address-cells = <1>;
  215. #size-cells = <0>;
  216. status = "disabled";
  217. };
  218. };
  219. &flx5 {
  220. atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
  221. status = "okay";
  222. uart1: serial@200 {
  223. compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
  224. reg = <0x200 0x200>;
  225. atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
  226. interrupts = <14 IRQ_TYPE_LEVEL_HIGH 7>;
  227. dmas = <&dma0
  228. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  229. AT91_XDMAC_DT_PERID(10))>,
  230. <&dma0
  231. (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
  232. AT91_XDMAC_DT_PERID(11))>;
  233. dma-names = "tx", "rx";
  234. clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
  235. clock-names = "usart";
  236. pinctrl-0 = <&pinctrl_flx5_default>;
  237. pinctrl-names = "default";
  238. atmel,use-dma-rx;
  239. atmel,use-dma-tx;
  240. status = "okay";
  241. };
  242. };
  243. &flx6 {
  244. atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
  245. status = "okay";
  246. i2c1: i2c@600 {
  247. compatible = "microchip,sam9x60-i2c";
  248. reg = <0x600 0x200>;
  249. interrupts = <9 IRQ_TYPE_LEVEL_HIGH 7>;
  250. #address-cells = <1>;
  251. #size-cells = <0>;
  252. clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
  253. pinctrl-names = "default";
  254. pinctrl-0 = <&pinctrl_flx6_default>;
  255. atmel,fifo-size = <16>;
  256. i2c-analog-filter;
  257. i2c-digital-filter;
  258. i2c-digital-filter-width-ns = <35>;
  259. status = "okay";
  260. gpio_exp: mcp23008@20 {
  261. compatible = "microchip,mcp23008";
  262. reg = <0x20>;
  263. };
  264. };
  265. };
  266. &gpbr {
  267. status = "okay";
  268. };
  269. &i2s {
  270. pinctrl-names = "default";
  271. pinctrl-0 = <&pinctrl_i2s_default>;
  272. #sound-dai-cells = <0>;
  273. status = "disabled"; /* Conflict with QSPI. */
  274. };
  275. &macb0 {
  276. phy-mode = "rmii";
  277. #address-cells = <1>;
  278. #size-cells = <0>;
  279. pinctrl-names = "default";
  280. pinctrl-0 = <&pinctrl_macb0_rmii>;
  281. status = "okay";
  282. ethernet-phy@0 {
  283. reg = <0x0>;
  284. };
  285. };
  286. &pinctrl {
  287. adc {
  288. pinctrl_adc_default: adc_default {
  289. atmel,pins = <AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
  290. };
  291. pinctrl_adtrg_default: adtrg_default {
  292. atmel,pins = <AT91_PIOB 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
  293. };
  294. };
  295. dbgu {
  296. pinctrl_dbgu: dbgu-0 {
  297. atmel,pins = <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
  298. AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
  299. };
  300. };
  301. i2s {
  302. pinctrl_i2s_default: i2s {
  303. atmel,pins =
  304. <AT91_PIOB 19 AT91_PERIPH_B AT91_PINCTRL_NONE /* I2SCK */
  305. AT91_PIOB 20 AT91_PERIPH_B AT91_PINCTRL_NONE /* I2SWS */
  306. AT91_PIOB 21 AT91_PERIPH_B AT91_PINCTRL_NONE /* I2SDIN */
  307. AT91_PIOB 22 AT91_PERIPH_B AT91_PINCTRL_NONE /* I2SDOUT */
  308. AT91_PIOB 23 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* I2SMCK */
  309. };
  310. };
  311. qspi {
  312. pinctrl_qspi: qspi {
  313. atmel,pins =
  314. <AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_SLEWRATE_DIS
  315. AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_SLEWRATE_DIS
  316. AT91_PIOB 21 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_SLEWRATE_DIS)
  317. AT91_PIOB 22 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_SLEWRATE_DIS)
  318. AT91_PIOB 23 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_SLEWRATE_DIS)
  319. AT91_PIOB 24 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_SLEWRATE_DIS)>;
  320. };
  321. };
  322. nand {
  323. pinctrl_nand_oe_we: nand-oe-we-0 {
  324. atmel,pins =
  325. <AT91_PIOD 0 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
  326. AT91_PIOD 1 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
  327. };
  328. pinctrl_nand_rb: nand-rb-0 {
  329. atmel,pins =
  330. <AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
  331. };
  332. pinctrl_nand_cs: nand-cs-0 {
  333. atmel,pins =
  334. <AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
  335. };
  336. };
  337. ebi {
  338. pinctrl_ebi_data_0_7: ebi-data-lsb-0 {
  339. atmel,pins =
  340. <AT91_PIOD 6 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
  341. AT91_PIOD 7 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
  342. AT91_PIOD 8 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
  343. AT91_PIOD 9 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
  344. AT91_PIOD 10 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
  345. AT91_PIOD 11 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
  346. AT91_PIOD 12 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
  347. AT91_PIOD 13 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
  348. };
  349. pinctrl_ebi_data_0_15: ebi-data-msb-0 {
  350. atmel,pins =
  351. <AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_NONE
  352. AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_NONE
  353. AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_NONE
  354. AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_NONE
  355. AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_NONE
  356. AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_NONE
  357. AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_NONE
  358. AT91_PIOD 13 AT91_PERIPH_A AT91_PINCTRL_NONE
  359. AT91_PIOD 14 AT91_PERIPH_A AT91_PINCTRL_NONE
  360. AT91_PIOD 15 AT91_PERIPH_A AT91_PINCTRL_NONE
  361. AT91_PIOD 16 AT91_PERIPH_A AT91_PINCTRL_NONE
  362. AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_NONE
  363. AT91_PIOD 18 AT91_PERIPH_A AT91_PINCTRL_NONE
  364. AT91_PIOD 19 AT91_PERIPH_A AT91_PINCTRL_NONE
  365. AT91_PIOD 20 AT91_PERIPH_A AT91_PINCTRL_NONE
  366. AT91_PIOD 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;
  367. };
  368. pinctrl_ebi_addr_nand: ebi-addr-0 {
  369. atmel,pins =
  370. <AT91_PIOD 2 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
  371. AT91_PIOD 3 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
  372. };
  373. };
  374. flexcom {
  375. pinctrl_flx0_default: flx0_twi {
  376. atmel,pins =
  377. <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
  378. AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
  379. };
  380. pinctrl_flx4_default: flx4_spi {
  381. atmel,pins =
  382. <AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE
  383. AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE
  384. AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE
  385. AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE>;
  386. };
  387. pinctrl_flx5_default: flx_uart {
  388. atmel,pins =
  389. <AT91_PIOA 7 AT91_PERIPH_C AT91_PINCTRL_NONE
  390. AT91_PIOA 8 AT91_PERIPH_B AT91_PINCTRL_NONE
  391. AT91_PIOA 21 AT91_PERIPH_B AT91_PINCTRL_NONE
  392. AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  393. };
  394. pinctrl_flx6_default: flx6_twi {
  395. atmel,pins =
  396. <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
  397. AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
  398. };
  399. };
  400. classd {
  401. pinctrl_classd_default: classd {
  402. atmel,pins =
  403. <AT91_PIOA 24 AT91_PERIPH_C AT91_PINCTRL_PULL_UP
  404. AT91_PIOA 25 AT91_PERIPH_C AT91_PINCTRL_PULL_DOWN
  405. AT91_PIOA 26 AT91_PERIPH_C AT91_PINCTRL_PULL_UP
  406. AT91_PIOA 27 AT91_PERIPH_C AT91_PINCTRL_PULL_DOWN>;
  407. };
  408. };
  409. can0 {
  410. pinctrl_can0_rx_tx: can0_rx_tx {
  411. atmel,pins =
  412. <AT91_PIOA 9 AT91_PERIPH_B AT91_PINCTRL_NONE /* CANRX0 */
  413. AT91_PIOA 10 AT91_PERIPH_B AT91_PINCTRL_NONE /* CANTX0 */
  414. AT91_PIOD 20 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN /* Enable CAN0 mux */
  415. AT91_PIOD 21 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>; /* Enable CAN Transceivers */
  416. };
  417. };
  418. can1 {
  419. pinctrl_can1_rx_tx: can1_rx_tx {
  420. atmel,pins =
  421. <AT91_PIOA 6 AT91_PERIPH_B AT91_PINCTRL_NONE /* CANRX1 RXD1 */
  422. AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_NONE /* CANTX1 TXD1 */
  423. AT91_PIOD 19 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN /* Enable CAN1 mux */
  424. AT91_PIOD 21 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>; /* Enable CAN Transceivers */
  425. };
  426. };
  427. macb0 {
  428. pinctrl_macb0_rmii: macb0_rmii-0 {
  429. atmel,pins =
  430. <AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB0 periph A */
  431. AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB1 periph A */
  432. AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB2 periph A */
  433. AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB3 periph A */
  434. AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB4 periph A */
  435. AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB5 periph A */
  436. AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB6 periph A */
  437. AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB7 periph A */
  438. AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB9 periph A */
  439. AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB10 periph A */
  440. };
  441. };
  442. pwm0 {
  443. pinctrl_pwm0_0: pwm0_0 {
  444. atmel,pins = <AT91_PIOB 11 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  445. };
  446. pinctrl_pwm0_1: pwm0_1 {
  447. atmel,pins = <AT91_PIOB 12 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  448. };
  449. pinctrl_pwm0_2: pwm0_2 {
  450. atmel,pins = <AT91_PIOB 13 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  451. };
  452. pinctrl_pwm0_3: pwm0_3 {
  453. atmel,pins = <AT91_PIOB 14 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  454. };
  455. };
  456. sdmmc0 {
  457. pinctrl_sdmmc0_default: sdmmc0 {
  458. atmel,pins =
  459. <AT91_PIOA 17 AT91_PERIPH_A (AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA17 CK periph A with pullup */
  460. AT91_PIOA 16 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA16 CMD periph A with pullup */
  461. AT91_PIOA 15 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA15 DAT0 periph A */
  462. AT91_PIOA 18 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA18 DAT1 periph A with pullup */
  463. AT91_PIOA 19 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA19 DAT2 periph A with pullup */
  464. AT91_PIOA 20 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)>; /* PA20 DAT3 periph A with pullup */
  465. };
  466. pinctrl_sdmmc0_cd: sdmmc0_cd {
  467. atmel,pins =
  468. <AT91_PIOA 23 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
  469. };
  470. };
  471. sdmmc1 {
  472. pinctrl_sdmmc1_default: sdmmc1 {
  473. atmel,pins =
  474. <AT91_PIOA 13 AT91_PERIPH_B (AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA13 CK periph B */
  475. AT91_PIOA 12 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA12 CMD periph B with pullup */
  476. AT91_PIOA 11 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA11 DAT0 periph B with pullup */
  477. AT91_PIOA 2 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA2 DAT1 periph B with pullup */
  478. AT91_PIOA 3 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA3 DAT2 periph B with pullup */
  479. AT91_PIOA 4 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)>; /* PA4 DAT3 periph B with pullup */
  480. };
  481. };
  482. gpio_keys {
  483. pinctrl_key_gpio_default: pinctrl_key_gpio {
  484. atmel,pins = <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
  485. };
  486. };
  487. usb0 {
  488. pinctrl_usba_vbus: usba_vbus {
  489. atmel,pins = <AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
  490. };
  491. };
  492. usb1 {
  493. pinctrl_usb_default: usb_default {
  494. atmel,pins = <AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
  495. AT91_PIOD 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
  496. };
  497. };
  498. leds {
  499. pinctrl_gpio_leds: gpio_leds {
  500. atmel,pins = <AT91_PIOB 11 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
  501. AT91_PIOB 12 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
  502. AT91_PIOB 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
  503. };
  504. };
  505. }; /* pinctrl */
  506. &pwm0 {
  507. pinctrl-names = "default";
  508. pinctrl-0 = <&pinctrl_pwm0_0 &pinctrl_pwm0_1 &pinctrl_pwm0_2 &pinctrl_pwm0_3>;
  509. status = "disabled"; /* Conflict with leds. */
  510. };
  511. &sdmmc0 {
  512. bus-width = <4>;
  513. pinctrl-names = "default";
  514. pinctrl-0 = <&pinctrl_sdmmc0_default &pinctrl_sdmmc0_cd>;
  515. status = "okay";
  516. cd-gpios = <&pioA 23 GPIO_ACTIVE_LOW>;
  517. disable-wp;
  518. };
  519. &sdmmc1 {
  520. bus-width = <4>;
  521. pinctrl-names = "default";
  522. pinctrl-0 = <&pinctrl_sdmmc1_default>;
  523. no-1-8-v;
  524. non-removable;
  525. status = "disabled"; /* Conflict with flx4. */
  526. };
  527. &qspi {
  528. pinctrl-names = "default";
  529. pinctrl-0 = <&pinctrl_qspi>;
  530. status = "okay"; /* Conflict with i2s. */
  531. flash@0 {
  532. #address-cells = <1>;
  533. #size-cells = <1>;
  534. compatible = "jedec,spi-nor";
  535. reg = <0>;
  536. spi-max-frequency = <80000000>;
  537. spi-tx-bus-width = <4>;
  538. spi-rx-bus-width = <4>;
  539. m25p,fast-read;
  540. at91bootstrap@0 {
  541. label = "qspi: at91bootstrap";
  542. reg = <0x0 0x40000>;
  543. };
  544. bootloader@40000 {
  545. label = "qspi: bootloader";
  546. reg = <0x40000 0xc0000>;
  547. };
  548. bootloaderenvred@100000 {
  549. label = "qspi: bootloader env redundant";
  550. reg = <0x100000 0x40000>;
  551. };
  552. bootloaderenv@140000 {
  553. label = "qspi: bootloader env";
  554. reg = <0x140000 0x40000>;
  555. };
  556. dtb@180000 {
  557. label = "qspi: device tree";
  558. reg = <0x180000 0x80000>;
  559. };
  560. kernel@200000 {
  561. label = "qspi: kernel";
  562. reg = <0x200000 0x600000>;
  563. };
  564. };
  565. };
  566. &rtt {
  567. atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
  568. status = "okay";
  569. };
  570. &shutdown_controller {
  571. debounce-delay-us = <976>;
  572. status = "okay";
  573. input@0 {
  574. reg = <0>;
  575. };
  576. };
  577. &tcb0 {
  578. timer0: timer@0 {
  579. compatible = "atmel,tcb-timer";
  580. reg = <0>;
  581. };
  582. timer1: timer@1 {
  583. compatible = "atmel,tcb-timer";
  584. reg = <1>;
  585. };
  586. };
  587. &usb0 {
  588. atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
  589. pinctrl-names = "default";
  590. pinctrl-0 = <&pinctrl_usba_vbus>;
  591. status = "okay";
  592. };
  593. &usb1 {
  594. num-ports = <3>;
  595. atmel,vbus-gpio = <0
  596. &pioD 15 GPIO_ACTIVE_HIGH
  597. &pioD 16 GPIO_ACTIVE_HIGH>;
  598. pinctrl-names = "default";
  599. pinctrl-0 = <&pinctrl_usb_default>;
  600. status = "okay";
  601. };
  602. &usb2 {
  603. status = "okay";
  604. };
  605. &watchdog {
  606. status = "okay";
  607. };