sama5d3xmb_cmp.dtsi 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * sama5d3xmb_cmp.dts - Device Tree file for SAMA5D3x CMP mother board
  4. *
  5. * Copyright (C) 2016 Atmel,
  6. */
  7. #include "sama5d3xcm_cmp.dtsi"
  8. / {
  9. compatible = "atmel,sama5d3xmb-cmp", "atmel,sama5d3xcm-cmp", "atmel,sama5d3", "atmel,sama5";
  10. ahb {
  11. apb {
  12. mmc0: mmc@f0000000 {
  13. pinctrl-names = "default";
  14. pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>;
  15. status = "okay";
  16. slot@0 {
  17. reg = <0>;
  18. bus-width = <4>;
  19. cd-gpios = <&pioD 17 GPIO_ACTIVE_HIGH>;
  20. };
  21. };
  22. spi0: spi@f0004000 {
  23. dmas = <0>, <0>; /* Do not use DMA for spi0 */
  24. flash@0 {
  25. compatible = "atmel,at25df321a";
  26. spi-max-frequency = <50000000>;
  27. reg = <0>;
  28. };
  29. };
  30. ssc0: ssc@f0008000 {
  31. atmel,clk-from-rk-pin;
  32. };
  33. /*
  34. * i2c0 conflicts with ISI:
  35. * disable it to allow the use of ISI
  36. * can not enable audio when i2c0 disabled
  37. */
  38. i2c0: i2c@f0014000 {
  39. wm8904: wm8904@1a {
  40. compatible = "wlf,wm8904";
  41. reg = <0x1a>;
  42. clocks = <&pmc PMC_TYPE_SYSTEM 8>;
  43. clock-names = "mclk";
  44. };
  45. };
  46. i2c1: i2c@f0018000 {
  47. ov2640: camera@30 {
  48. compatible = "ovti,ov2640";
  49. reg = <0x30>;
  50. pinctrl-names = "default";
  51. pinctrl-0 = <&pinctrl_pck1_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
  52. resetb-gpios = <&pioE 24 GPIO_ACTIVE_LOW>;
  53. pwdn-gpios = <&pioE 29 GPIO_ACTIVE_HIGH>;
  54. /* use pck1 for the master clock of ov2640 */
  55. clocks = <&pmc PMC_TYPE_SYSTEM 9>;
  56. clock-names = "xvclk";
  57. assigned-clocks = <&pmc PMC_TYPE_SYSTEM 9>;
  58. assigned-clock-rates = <25000000>;
  59. port {
  60. ov2640_0: endpoint {
  61. remote-endpoint = <&isi_0>;
  62. bus-width = <8>;
  63. };
  64. };
  65. };
  66. };
  67. usart1: serial@f0020000 {
  68. dmas = <0>, <0>; /* Do not use DMA for usart1 */
  69. pinctrl-names = "default";
  70. pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
  71. status = "okay";
  72. };
  73. isi: isi@f0034000 {
  74. port {
  75. isi_0: endpoint {
  76. remote-endpoint = <&ov2640_0>;
  77. bus-width = <8>;
  78. vsync-active = <1>;
  79. hsync-active = <1>;
  80. };
  81. };
  82. };
  83. mmc1: mmc@f8000000 {
  84. pinctrl-names = "default";
  85. pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
  86. status = "okay";
  87. slot@0 {
  88. reg = <0>;
  89. bus-width = <4>;
  90. cd-gpios = <&pioD 18 GPIO_ACTIVE_HIGH>;
  91. };
  92. };
  93. adc0: adc@f8018000 {
  94. pinctrl-names = "default", "sleep";
  95. pinctrl-0 = <
  96. &pinctrl_adc0_adtrg
  97. &pinctrl_adc0_ad0
  98. &pinctrl_adc0_ad1
  99. &pinctrl_adc0_ad2
  100. &pinctrl_adc0_ad3
  101. &pinctrl_adc0_ad4
  102. >;
  103. pinctrl-1 = <
  104. &pinctrl_adc0_adtrg_sleep
  105. &pinctrl_adc0_ad0_sleep
  106. &pinctrl_adc0_ad1_sleep
  107. &pinctrl_adc0_ad2_sleep
  108. &pinctrl_adc0_ad3_sleep
  109. &pinctrl_adc0_ad4_sleep
  110. >;
  111. status = "okay";
  112. };
  113. macb1: ethernet@f802c000 {
  114. phy-mode = "rmii";
  115. #address-cells = <1>;
  116. #size-cells = <0>;
  117. phy0: ethernet-phy@1 {
  118. /*interrupt-parent = <&pioE>;*/
  119. /*interrupts = <30 IRQ_TYPE_EDGE_FALLING>;*/
  120. reg = <1>;
  121. };
  122. };
  123. pinctrl@fffff200 {
  124. adc0 {
  125. pinctrl_adc0_adtrg_sleep: adc0_adtrg_1 {
  126. atmel,pins =
  127. <AT91_PIOD 19 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
  128. };
  129. pinctrl_adc0_ad0_sleep: adc0_ad0_1 {
  130. atmel,pins =
  131. <AT91_PIOD 20 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
  132. };
  133. pinctrl_adc0_ad1_sleep: adc0_ad1_1 {
  134. atmel,pins =
  135. <AT91_PIOD 21 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
  136. };
  137. pinctrl_adc0_ad2_sleep: adc0_ad2_1 {
  138. atmel,pins =
  139. <AT91_PIOD 22 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
  140. };
  141. pinctrl_adc0_ad3_sleep: adc0_ad3_1 {
  142. atmel,pins =
  143. <AT91_PIOD 23 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
  144. };
  145. pinctrl_adc0_ad4_sleep: adc0_ad4_1 {
  146. atmel,pins =
  147. <AT91_PIOD 24 AT91_PERIPH_GPIO (AT91_PINCTRL_OUTPUT | AT91_PINCTRL_OUTPUT_VAL(0))>;
  148. };
  149. };
  150. board {
  151. pinctrl_gpio_keys: gpio_keys {
  152. atmel,pins =
  153. <AT91_PIOE 27 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
  154. };
  155. pinctrl_mmc0_cd: mmc0_cd {
  156. atmel,pins =
  157. <AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
  158. };
  159. pinctrl_mmc1_cd: mmc1_cd {
  160. atmel,pins =
  161. <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
  162. };
  163. pinctrl_pck0_as_audio_mck: pck0_as_audio_mck {
  164. atmel,pins =
  165. <AT91_PIOD 30 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  166. };
  167. pinctrl_pck1_as_isi_mck: pck1_as_isi_mck-0 {
  168. atmel,pins =
  169. <AT91_PIOD 31 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  170. };
  171. pinctrl_sensor_reset: sensor_reset-0 {
  172. atmel,pins =
  173. <AT91_PIOE 24 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
  174. };
  175. pinctrl_sensor_power: sensor_power-0 {
  176. atmel,pins =
  177. <AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
  178. };
  179. pinctrl_usba_vbus: usba_vbus {
  180. atmel,pins =
  181. <AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
  182. };
  183. };
  184. };
  185. dbgu: serial@ffffee00 {
  186. dmas = <0>, <0>; /* Do not use DMA for dbgu */
  187. status = "okay";
  188. };
  189. watchdog@fffffe40 {
  190. status = "okay";
  191. };
  192. };
  193. usb0: gadget@500000 {
  194. atmel,vbus-gpio = <&pioD 29 GPIO_ACTIVE_HIGH>;
  195. pinctrl-names = "default";
  196. pinctrl-0 = <&pinctrl_usba_vbus>;
  197. status = "okay";
  198. };
  199. };
  200. sound {
  201. compatible = "atmel,asoc-wm8904";
  202. pinctrl-names = "default";
  203. pinctrl-0 = <&pinctrl_pck0_as_audio_mck>;
  204. atmel,model = "wm8904 @ SAMA5D3EK";
  205. atmel,audio-routing =
  206. "Headphone Jack", "HPOUTL",
  207. "Headphone Jack", "HPOUTR",
  208. "IN2L", "Line In Jack",
  209. "IN2R", "Line In Jack",
  210. "Mic", "MICBIAS",
  211. "IN1L", "Mic";
  212. atmel,ssc-controller = <&ssc0>;
  213. atmel,audio-codec = <&wm8904>;
  214. status = "disabled";
  215. };
  216. /* Conflict with LCD pins */
  217. gpio_keys {
  218. compatible = "gpio-keys";
  219. status = "okay";
  220. #address-cells = <1>;
  221. #size-cells = <0>;
  222. pinctrl-names = "default";
  223. pinctrl-0 = <&pinctrl_gpio_keys>;
  224. pb_user1 {
  225. label = "pb_user1";
  226. gpios = <&pioE 27 GPIO_ACTIVE_HIGH>;
  227. linux,code = <0x100>;
  228. wakeup-source;
  229. };
  230. };
  231. };