at91-sama5d3_xplained.dts 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * at91-sama5d3_xplained.dts - Device Tree file for the SAMA5D3 Xplained board
  4. *
  5. * Copyright (C) 2014 Atmel,
  6. * 2014 Nicolas Ferre <[email protected]>
  7. */
  8. /dts-v1/;
  9. #include "sama5d36.dtsi"
  10. #include <dt-bindings/input/input.h>
  11. / {
  12. model = "SAMA5D3 Xplained";
  13. compatible = "atmel,sama5d3-xplained", "atmel,sama5d3", "atmel,sama5";
  14. chosen {
  15. stdout-path = "serial0:115200n8";
  16. };
  17. memory@20000000 {
  18. reg = <0x20000000 0x10000000>;
  19. };
  20. clocks {
  21. slow_xtal {
  22. clock-frequency = <32768>;
  23. };
  24. main_xtal {
  25. clock-frequency = <12000000>;
  26. };
  27. };
  28. ahb {
  29. apb {
  30. mmc0: mmc@f0000000 {
  31. pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>;
  32. vmmc-supply = <&vcc_mmc0_reg>;
  33. vqmmc-supply = <&vcc_3v3_reg>;
  34. status = "okay";
  35. slot@0 {
  36. reg = <0>;
  37. bus-width = <8>;
  38. cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>;
  39. };
  40. };
  41. mmc1: mmc@f8000000 {
  42. vmmc-supply = <&vcc_3v3_reg>;
  43. vqmmc-supply = <&vcc_3v3_reg>;
  44. status = "disabled";
  45. slot@0 {
  46. reg = <0>;
  47. bus-width = <4>;
  48. cd-gpios = <&pioE 1 GPIO_ACTIVE_LOW>;
  49. };
  50. };
  51. spi0: spi@f0004000 {
  52. pinctrl-names = "default", "cs";
  53. pinctrl-1 = <&pinctrl_spi0_cs>;
  54. cs-gpios = <&pioD 13 0>, <0>, <0>, <&pioD 16 0>;
  55. status = "okay";
  56. };
  57. can0: can@f000c000 {
  58. status = "okay";
  59. };
  60. tcb0: timer@f0010000 {
  61. timer0: timer@0 {
  62. compatible = "atmel,tcb-timer";
  63. reg = <0>;
  64. };
  65. timer1: timer@1 {
  66. compatible = "atmel,tcb-timer";
  67. reg = <1>;
  68. };
  69. };
  70. i2c0: i2c@f0014000 {
  71. pinctrl-0 = <&pinctrl_i2c0_pu>;
  72. status = "okay";
  73. };
  74. i2c1: i2c@f0018000 {
  75. status = "okay";
  76. pmic: act8865@5b {
  77. compatible = "active-semi,act8865";
  78. reg = <0x5b>;
  79. status = "disabled";
  80. regulators {
  81. vcc_1v8_reg: DCDC_REG1 {
  82. regulator-name = "VCC_1V8";
  83. regulator-min-microvolt = <1800000>;
  84. regulator-max-microvolt = <1800000>;
  85. regulator-always-on;
  86. };
  87. vcc_1v2_reg: DCDC_REG2 {
  88. regulator-name = "VCC_1V2";
  89. regulator-min-microvolt = <1200000>;
  90. regulator-max-microvolt = <1200000>;
  91. regulator-always-on;
  92. };
  93. vcc_3v3_reg: DCDC_REG3 {
  94. regulator-name = "VCC_3V3";
  95. regulator-min-microvolt = <3300000>;
  96. regulator-max-microvolt = <3300000>;
  97. regulator-always-on;
  98. };
  99. vddfuse_reg: LDO_REG1 {
  100. regulator-name = "FUSE_2V5";
  101. regulator-min-microvolt = <2500000>;
  102. regulator-max-microvolt = <2500000>;
  103. };
  104. vddana_reg: LDO_REG2 {
  105. regulator-name = "VDDANA";
  106. regulator-min-microvolt = <3300000>;
  107. regulator-max-microvolt = <3300000>;
  108. regulator-always-on;
  109. };
  110. };
  111. };
  112. };
  113. macb0: ethernet@f0028000 {
  114. phy-mode = "rgmii-rxid";
  115. #address-cells = <1>;
  116. #size-cells = <0>;
  117. status = "okay";
  118. ethernet-phy@7 {
  119. reg = <0x7>;
  120. };
  121. };
  122. pwm0: pwm@f002c000 {
  123. pinctrl-names = "default";
  124. pinctrl-0 = <&pinctrl_pwm0_pwmh0_0 &pinctrl_pwm0_pwmh1_0>;
  125. status = "okay";
  126. };
  127. usart0: serial@f001c000 {
  128. status = "okay";
  129. };
  130. usart1: serial@f0020000 {
  131. pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
  132. status = "okay";
  133. };
  134. uart0: serial@f0024000 {
  135. status = "okay";
  136. };
  137. mmc1: mmc@f8000000 {
  138. pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
  139. status = "okay";
  140. slot@0 {
  141. reg = <0>;
  142. bus-width = <4>;
  143. cd-gpios = <&pioE 1 GPIO_ACTIVE_HIGH>;
  144. };
  145. };
  146. spi1: spi@f8008000 {
  147. pinctrl-names = "default", "cs";
  148. pinctrl-1 = <&pinctrl_spi1_cs>;
  149. cs-gpios = <&pioC 25 0>;
  150. status = "okay";
  151. };
  152. adc0: adc@f8018000 {
  153. atmel,adc-vref = <3300>;
  154. atmel,adc-channels-used = <0xfe>;
  155. pinctrl-0 = <
  156. &pinctrl_adc0_adtrg
  157. &pinctrl_adc0_ad1
  158. &pinctrl_adc0_ad2
  159. &pinctrl_adc0_ad3
  160. &pinctrl_adc0_ad4
  161. &pinctrl_adc0_ad5
  162. &pinctrl_adc0_ad6
  163. &pinctrl_adc0_ad7
  164. >;
  165. status = "okay";
  166. };
  167. i2c2: i2c@f801c000 {
  168. dmas = <0>, <0>; /* Do not use DMA for i2c2 */
  169. pinctrl-0 = <&pinctrl_i2c2_pu>;
  170. status = "okay";
  171. };
  172. macb1: ethernet@f802c000 {
  173. phy-mode = "rmii";
  174. #address-cells = <1>;
  175. #size-cells = <0>;
  176. status = "okay";
  177. ethernet-phy@1 {
  178. reg = <0x1>;
  179. };
  180. };
  181. dbgu: serial@ffffee00 {
  182. status = "okay";
  183. };
  184. pinctrl@fffff200 {
  185. board {
  186. pinctrl_i2c0_pu: i2c0_pu {
  187. atmel,pins =
  188. <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
  189. <AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
  190. };
  191. pinctrl_i2c2_pu: i2c2_pu {
  192. atmel,pins =
  193. <AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
  194. <AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
  195. };
  196. pinctrl_key_gpio: key_gpio_0 {
  197. atmel,pins =
  198. <AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
  199. };
  200. pinctrl_mmc0_cd: mmc0_cd {
  201. atmel,pins =
  202. <AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
  203. };
  204. pinctrl_mmc1_cd: mmc1_cd {
  205. atmel,pins =
  206. <AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
  207. };
  208. pinctrl_usba_vbus: usba_vbus {
  209. atmel,pins =
  210. <AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PE9, conflicts with A9 */
  211. };
  212. pinctrl_usb_default: usb_default {
  213. atmel,pins =
  214. <AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
  215. AT91_PIOE 4 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
  216. };
  217. pinctrl_gpio_leds: gpio_leds_default {
  218. atmel,pins =
  219. <AT91_PIOE 23 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
  220. AT91_PIOE 24 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
  221. };
  222. pinctrl_spi0_cs: spi0_cs_default {
  223. atmel,pins =
  224. <AT91_PIOD 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
  225. AT91_PIOD 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
  226. };
  227. pinctrl_spi1_cs: spi1_cs_default {
  228. atmel,pins = <AT91_PIOC 25 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
  229. };
  230. pinctrl_vcc_mmc0_reg_gpio: vcc_mmc0_reg_gpio_default {
  231. atmel,pins = <AT91_PIOE 2 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
  232. };
  233. };
  234. };
  235. };
  236. usb0: gadget@500000 {
  237. atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>; /* PE9, conflicts with A9 */
  238. pinctrl-names = "default";
  239. pinctrl-0 = <&pinctrl_usba_vbus>;
  240. status = "okay";
  241. };
  242. usb1: ohci@600000 {
  243. num-ports = <3>;
  244. atmel,vbus-gpio = <0
  245. &pioE 3 GPIO_ACTIVE_LOW
  246. &pioE 4 GPIO_ACTIVE_LOW
  247. >;
  248. pinctrl-names = "default";
  249. pinctrl-0 = <&pinctrl_usb_default>;
  250. status = "okay";
  251. };
  252. usb2: ehci@700000 {
  253. status = "okay";
  254. };
  255. ebi: ebi@10000000 {
  256. pinctrl-0 = <&pinctrl_ebi_nand_addr>;
  257. pinctrl-names = "default";
  258. status = "okay";
  259. nand_controller: nand-controller {
  260. status = "okay";
  261. nand@3 {
  262. reg = <0x3 0x0 0x2>;
  263. atmel,rb = <0>;
  264. nand-bus-width = <8>;
  265. nand-ecc-mode = "hw";
  266. nand-ecc-strength = <4>;
  267. nand-ecc-step-size = <512>;
  268. nand-on-flash-bbt;
  269. label = "atmel_nand";
  270. partitions {
  271. compatible = "fixed-partitions";
  272. #address-cells = <1>;
  273. #size-cells = <1>;
  274. at91bootstrap@0 {
  275. label = "at91bootstrap";
  276. reg = <0x0 0x40000>;
  277. };
  278. bootloader@40000 {
  279. label = "bootloader";
  280. reg = <0x40000 0xc0000>;
  281. };
  282. bootloaderenvred@100000 {
  283. label = "bootloader env redundant";
  284. reg = <0x100000 0x40000>;
  285. };
  286. bootloaderenv@140000 {
  287. label = "bootloader env";
  288. reg = <0x140000 0x40000>;
  289. };
  290. dtb@180000 {
  291. label = "device tree";
  292. reg = <0x180000 0x80000>;
  293. };
  294. kernel@200000 {
  295. label = "kernel";
  296. reg = <0x200000 0x600000>;
  297. };
  298. rootfs@800000 {
  299. label = "rootfs";
  300. reg = <0x800000 0x0f800000>;
  301. };
  302. };
  303. };
  304. };
  305. };
  306. };
  307. vcc_mmc0_reg: fixedregulator_mmc0 {
  308. compatible = "regulator-fixed";
  309. pinctrl-names = "default";
  310. pinctrl-0 = <&pinctrl_vcc_mmc0_reg_gpio>;
  311. gpio = <&pioE 2 GPIO_ACTIVE_LOW>;
  312. regulator-name = "mmc0-card-supply";
  313. regulator-min-microvolt = <3300000>;
  314. regulator-max-microvolt = <3300000>;
  315. regulator-always-on;
  316. };
  317. gpio-keys {
  318. compatible = "gpio-keys";
  319. pinctrl-names = "default";
  320. pinctrl-0 = <&pinctrl_key_gpio>;
  321. button {
  322. label = "PB_USER";
  323. gpios = <&pioE 29 GPIO_ACTIVE_LOW>;
  324. linux,code = <KEY_PROG1>;
  325. wakeup-source;
  326. };
  327. };
  328. leds {
  329. compatible = "gpio-leds";
  330. pinctrl-names = "default";
  331. pinctrl-0 = <&pinctrl_gpio_leds>;
  332. status = "okay";
  333. d2 {
  334. label = "d2";
  335. gpios = <&pioE 23 GPIO_ACTIVE_LOW>; /* PE23, conflicts with A23, CTS2 */
  336. linux,default-trigger = "heartbeat";
  337. };
  338. d3 {
  339. label = "d3"; /* Conflict with EBI CS0, USART2 CTS. */
  340. gpios = <&pioE 24 GPIO_ACTIVE_HIGH>;
  341. };
  342. };
  343. };