sama5d3xmb.dtsi 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * sama5d3xmb.dts - Device Tree file for SAMA5D3x mother board
  4. *
  5. * Copyright (C) 2013 Atmel,
  6. * 2013 Ludovic Desroches <[email protected]>
  7. */
  8. #include "sama5d3xcm.dtsi"
  9. / {
  10. compatible = "atmel,sama5d3xmb", "atmel,sama5d3xcm", "atmel,sama5d3", "atmel,sama5";
  11. ahb {
  12. apb {
  13. mmc0: mmc@f0000000 {
  14. pinctrl-names = "default";
  15. pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>;
  16. status = "okay";
  17. slot@0 {
  18. reg = <0>;
  19. bus-width = <4>;
  20. cd-gpios = <&pioD 17 GPIO_ACTIVE_HIGH>;
  21. };
  22. };
  23. spi0: spi@f0004000 {
  24. dmas = <0>, <0>; /* Do not use DMA for spi0 */
  25. flash@0 {
  26. compatible = "atmel,at25df321a";
  27. spi-max-frequency = <50000000>;
  28. reg = <0>;
  29. };
  30. };
  31. ssc0: ssc@f0008000 {
  32. atmel,clk-from-rk-pin;
  33. };
  34. /*
  35. * i2c0 conflicts with ISI:
  36. * disable it to allow the use of ISI
  37. * can not enable audio when i2c0 disabled
  38. */
  39. i2c0: i2c@f0014000 {
  40. wm8904: wm8904@1a {
  41. compatible = "wlf,wm8904";
  42. reg = <0x1a>;
  43. clocks = <&pmc PMC_TYPE_SYSTEM 8>;
  44. clock-names = "mclk";
  45. };
  46. };
  47. i2c1: i2c@f0018000 {
  48. ov2640: camera@30 {
  49. compatible = "ovti,ov2640";
  50. reg = <0x30>;
  51. pinctrl-names = "default";
  52. pinctrl-0 = <&pinctrl_pck1_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
  53. resetb-gpios = <&pioE 24 GPIO_ACTIVE_LOW>;
  54. pwdn-gpios = <&pioE 29 GPIO_ACTIVE_HIGH>;
  55. /* use pck1 for the master clock of ov2640 */
  56. clocks = <&pmc PMC_TYPE_SYSTEM 9>;
  57. clock-names = "xvclk";
  58. assigned-clocks = <&pmc PMC_TYPE_SYSTEM 9>;
  59. assigned-clock-rates = <25000000>;
  60. port {
  61. ov2640_0: endpoint {
  62. remote-endpoint = <&isi_0>;
  63. bus-width = <8>;
  64. };
  65. };
  66. };
  67. };
  68. usart1: serial@f0020000 {
  69. dmas = <0>, <0>; /* Do not use DMA for usart1 */
  70. pinctrl-names = "default";
  71. pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
  72. status = "okay";
  73. };
  74. isi: isi@f0034000 {
  75. port {
  76. isi_0: endpoint {
  77. remote-endpoint = <&ov2640_0>;
  78. bus-width = <8>;
  79. vsync-active = <1>;
  80. hsync-active = <1>;
  81. };
  82. };
  83. };
  84. mmc1: mmc@f8000000 {
  85. pinctrl-names = "default";
  86. pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
  87. status = "okay";
  88. slot@0 {
  89. reg = <0>;
  90. bus-width = <4>;
  91. cd-gpios = <&pioD 18 GPIO_ACTIVE_HIGH>;
  92. };
  93. };
  94. adc0: adc@f8018000 {
  95. pinctrl-names = "default";
  96. pinctrl-0 = <
  97. &pinctrl_adc0_adtrg
  98. &pinctrl_adc0_ad0
  99. &pinctrl_adc0_ad1
  100. &pinctrl_adc0_ad2
  101. &pinctrl_adc0_ad3
  102. &pinctrl_adc0_ad4
  103. >;
  104. status = "okay";
  105. };
  106. pinctrl@fffff200 {
  107. board {
  108. pinctrl_mmc0_cd: mmc0_cd {
  109. atmel,pins =
  110. <AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD17 GPIO with pullup deglitch */
  111. };
  112. pinctrl_mmc1_cd: mmc1_cd {
  113. atmel,pins =
  114. <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD18 GPIO with pullup deglitch */
  115. };
  116. pinctrl_pck0_as_audio_mck: pck0_as_audio_mck {
  117. atmel,pins =
  118. <AT91_PIOD 30 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PD30 periph B */
  119. };
  120. pinctrl_pck1_as_isi_mck: pck1_as_isi_mck-0 {
  121. atmel,pins =
  122. <AT91_PIOD 31 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PD31 periph B ISI_MCK */
  123. };
  124. pinctrl_sensor_reset: sensor_reset-0 {
  125. atmel,pins =
  126. <AT91_PIOE 24 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; /* PE24 gpio */
  127. };
  128. pinctrl_sensor_power: sensor_power-0 {
  129. atmel,pins =
  130. <AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; /* PE29 gpio */
  131. };
  132. pinctrl_usba_vbus: usba_vbus {
  133. atmel,pins =
  134. <AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PD29 GPIO with deglitch */
  135. };
  136. };
  137. };
  138. dbgu: serial@ffffee00 {
  139. dmas = <0>, <0>; /* Do not use DMA for dbgu */
  140. status = "okay";
  141. };
  142. watchdog@fffffe40 {
  143. status = "okay";
  144. };
  145. };
  146. usb0: gadget@500000 {
  147. atmel,vbus-gpio = <&pioD 29 GPIO_ACTIVE_HIGH>;
  148. pinctrl-names = "default";
  149. pinctrl-0 = <&pinctrl_usba_vbus>;
  150. status = "okay";
  151. };
  152. usb1: ohci@600000 {
  153. num-ports = <3>;
  154. atmel,vbus-gpio = <&pioD 25 GPIO_ACTIVE_HIGH
  155. &pioD 26 GPIO_ACTIVE_LOW
  156. &pioD 27 GPIO_ACTIVE_LOW
  157. >;
  158. status = "okay";
  159. };
  160. usb2: ehci@700000 {
  161. status = "okay";
  162. };
  163. };
  164. sound {
  165. compatible = "atmel,asoc-wm8904";
  166. pinctrl-names = "default";
  167. pinctrl-0 = <&pinctrl_pck0_as_audio_mck>;
  168. atmel,model = "wm8904 @ SAMA5D3EK";
  169. atmel,audio-routing =
  170. "Headphone Jack", "HPOUTL",
  171. "Headphone Jack", "HPOUTR",
  172. "IN2L", "Line In Jack",
  173. "IN2R", "Line In Jack",
  174. "Mic", "MICBIAS",
  175. "IN1L", "Mic";
  176. atmel,ssc-controller = <&ssc0>;
  177. atmel,audio-codec = <&wm8904>;
  178. status = "disabled";
  179. };
  180. };