at91sam9n12ek.dts 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * at91sam9n12ek.dts - Device Tree file for AT91SAM9N12-EK board
  4. *
  5. * Copyright (C) 2012 Atmel,
  6. * 2012 Hong Xu <[email protected]>
  7. */
  8. /dts-v1/;
  9. #include "at91sam9n12.dtsi"
  10. / {
  11. model = "Atmel AT91SAM9N12-EK";
  12. compatible = "atmel,at91sam9n12ek", "atmel,at91sam9n12", "atmel,at91sam9";
  13. chosen {
  14. bootargs = "root=/dev/mtdblock1 rw rootfstype=jffs2";
  15. stdout-path = "serial0:115200n8";
  16. };
  17. memory@20000000 {
  18. reg = <0x20000000 0x8000000>;
  19. };
  20. clocks {
  21. slow_xtal {
  22. clock-frequency = <32768>;
  23. };
  24. main_xtal {
  25. clock-frequency = <16000000>;
  26. };
  27. };
  28. ahb {
  29. apb {
  30. dbgu: serial@fffff200 {
  31. status = "okay";
  32. };
  33. ssc0: ssc@f0010000 {
  34. status = "okay";
  35. };
  36. tcb0: timer@f8008000 {
  37. timer@0 {
  38. compatible = "atmel,tcb-timer";
  39. reg = <0>;
  40. };
  41. timer@1 {
  42. compatible = "atmel,tcb-timer";
  43. reg = <1>;
  44. };
  45. };
  46. i2c0: i2c@f8010000 {
  47. status = "okay";
  48. wm8904: codec@1a {
  49. compatible = "wlf,wm8904";
  50. reg = <0x1a>;
  51. clocks = <&pmc PMC_TYPE_SYSTEM 8>;
  52. clock-names = "mclk";
  53. };
  54. qt1070: keyboard@1b {
  55. compatible = "qt1070";
  56. reg = <0x1b>;
  57. interrupt-parent = <&pioA>;
  58. interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
  59. pinctrl-names = "default";
  60. pinctrl-0 = <&pinctrl_qt1070_irq>;
  61. };
  62. };
  63. mmc0: mmc@f0008000 {
  64. pinctrl-0 = <
  65. &pinctrl_board_mmc0
  66. &pinctrl_mmc0_slot0_clk_cmd_dat0
  67. &pinctrl_mmc0_slot0_dat1_3>;
  68. status = "okay";
  69. slot@0 {
  70. reg = <0>;
  71. bus-width = <4>;
  72. cd-gpios = <&pioA 7 GPIO_ACTIVE_HIGH>;
  73. };
  74. };
  75. pinctrl@fffff400 {
  76. mmc0 {
  77. pinctrl_board_mmc0: mmc0-board {
  78. atmel,pins =
  79. <AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PA7 gpio CD pin pull up and deglitch */
  80. };
  81. };
  82. qt1070 {
  83. pinctrl_qt1070_irq: qt1070_irq {
  84. atmel,pins =
  85. <AT91_PIOA 2 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
  86. };
  87. };
  88. sound {
  89. pinctrl_pck0_as_audio_mck: pck0_as_audio_mck {
  90. atmel,pins =
  91. <AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;
  92. };
  93. };
  94. usb1 {
  95. pinctrl_usb1_vbus_sense: usb1_vbus_sense {
  96. atmel,pins =
  97. <AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PB16 gpio usb vbus sense, no pull up and deglitch */
  98. };
  99. };
  100. };
  101. spi0: spi@f0000000 {
  102. status = "okay";
  103. cs-gpios = <&pioA 14 0>, <0>, <0>, <0>;
  104. flash@0 {
  105. compatible = "atmel,at25df321a";
  106. spi-max-frequency = <50000000>;
  107. reg = <0>;
  108. };
  109. };
  110. hlcdc: hlcdc@f8038000 {
  111. status = "okay";
  112. hlcdc-display-controller {
  113. pinctrl-names = "default";
  114. pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888>;
  115. port@0 {
  116. hlcdc_panel_output: endpoint@0 {
  117. reg = <0>;
  118. remote-endpoint = <&panel_input>;
  119. };
  120. };
  121. };
  122. };
  123. usb1: gadget@f803c000 {
  124. pinctrl-names = "default";
  125. pinctrl-0 = <&pinctrl_usb1_vbus_sense>;
  126. atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
  127. status = "okay";
  128. };
  129. watchdog@fffffe40 {
  130. status = "okay";
  131. };
  132. rtc@fffffeb0 {
  133. status = "okay";
  134. };
  135. };
  136. ebi: ebi@10000000 {
  137. status = "okay";
  138. nand_controller: nand-controller {
  139. status = "okay";
  140. pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
  141. pinctrl-names = "default";
  142. nand@3 {
  143. reg = <0x3 0x0 0x800000>;
  144. rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
  145. cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
  146. nand-bus-width = <8>;
  147. nand-ecc-mode = "soft";
  148. nand-ecc-strength = <2>;
  149. nand-ecc-step-size = <512>;
  150. nand-on-flash-bbt;
  151. label = "atmel_nand";
  152. };
  153. };
  154. };
  155. usb0: ohci@500000 {
  156. num-ports = <1>;
  157. atmel,vbus-gpio = <&pioB 7 GPIO_ACTIVE_LOW>;
  158. status = "okay";
  159. };
  160. };
  161. backlight: backlight {
  162. compatible = "pwm-backlight";
  163. pwms = <&hlcdc_pwm 0 50000 0>;
  164. brightness-levels = <0 4 8 16 32 64 128 255>;
  165. default-brightness-level = <6>;
  166. power-supply = <&bl_reg>;
  167. status = "okay";
  168. };
  169. bl_reg: backlight_regulator {
  170. compatible = "regulator-fixed";
  171. regulator-name = "backlight-power-supply";
  172. regulator-min-microvolt = <5000000>;
  173. regulator-max-microvolt = <5000000>;
  174. status = "okay";
  175. };
  176. leds {
  177. compatible = "gpio-leds";
  178. d8 {
  179. label = "d8";
  180. gpios = <&pioB 4 GPIO_ACTIVE_LOW>;
  181. linux,default-trigger = "mmc0";
  182. };
  183. d9 {
  184. label = "d9";
  185. gpios = <&pioB 5 GPIO_ACTIVE_LOW>;
  186. linux,default-trigger = "nand-disk";
  187. };
  188. d10 {
  189. label = "d10";
  190. gpios = <&pioB 6 GPIO_ACTIVE_HIGH>;
  191. linux,default-trigger = "heartbeat";
  192. };
  193. };
  194. gpio-keys {
  195. compatible = "gpio-keys";
  196. button-enter {
  197. label = "Enter";
  198. gpios = <&pioB 3 GPIO_ACTIVE_LOW>;
  199. linux,code = <28>;
  200. wakeup-source;
  201. };
  202. };
  203. panel: panel {
  204. compatible = "qiaodian,qd43003c0-40";
  205. backlight = <&backlight>;
  206. power-supply = <&panel_reg>;
  207. #address-cells = <1>;
  208. #size-cells = <0>;
  209. status = "okay";
  210. port@0 {
  211. reg = <0>;
  212. #address-cells = <1>;
  213. #size-cells = <0>;
  214. panel_input: endpoint@0 {
  215. reg = <0>;
  216. remote-endpoint = <&hlcdc_panel_output>;
  217. };
  218. };
  219. };
  220. panel_reg: panel_regulator {
  221. compatible = "regulator-fixed";
  222. regulator-name = "panel-power-supply";
  223. regulator-min-microvolt = <3300000>;
  224. regulator-max-microvolt = <3300000>;
  225. status = "okay";
  226. };
  227. sound {
  228. compatible = "atmel,asoc-wm8904";
  229. pinctrl-names = "default";
  230. pinctrl-0 = <&pinctrl_pck0_as_audio_mck>;
  231. atmel,model = "wm8904 @ AT91SAM9N12";
  232. atmel,audio-routing =
  233. "Headphone Jack", "HPOUTL",
  234. "Headphone Jack", "HPOUTR",
  235. "IN2L", "Line In Jack",
  236. "IN2R", "Line In Jack",
  237. "Mic", "MICBIAS",
  238. "IN1L", "Mic";
  239. atmel,ssc-controller = <&ssc0>;
  240. atmel,audio-codec = <&wm8904>;
  241. };
  242. };