imx51-eukrea-mbimxsd51-baseboard.dts 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. /*
  2. * Copyright 2013 Eukréa Electromatique <denis@eukrea.com>
  3. *
  4. * This program is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU General Public License
  6. * as published by the Free Software Foundation; either version 2
  7. * of the License, or (at your option) any later version.
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU General Public License
  14. * along with this program; if not, write to the Free Software
  15. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  16. * MA 02110-1301, USA.
  17. */
  18. /dts-v1/;
  19. #include "imx51-eukrea-cpuimx51.dtsi"
  20. #include <dt-bindings/gpio/gpio.h>
  21. / {
  22. model = "Eukrea CPUIMX51";
  23. compatible = "eukrea,mbimxsd51","eukrea,cpuimx51", "fsl,imx51";
  24. clocks {
  25. clk24M: can_clock {
  26. compatible = "fixed-clock";
  27. #clock-cells = <0>;
  28. clock-frequency = <24000000>;
  29. };
  30. };
  31. gpio_keys {
  32. compatible = "gpio-keys";
  33. pinctrl-names = "default";
  34. pinctrl-0 = <&pinctrl_gpiokeys_1>;
  35. button-1 {
  36. label = "BP1";
  37. gpios = <&gpio3 31 GPIO_ACTIVE_LOW>;
  38. linux,code = <256>;
  39. wakeup-source;
  40. linux,input-type = <1>;
  41. };
  42. };
  43. leds {
  44. compatible = "gpio-leds";
  45. pinctrl-names = "default";
  46. pinctrl-0 = <&pinctrl_gpioled>;
  47. led1 {
  48. label = "led1";
  49. gpios = <&gpio3 30 GPIO_ACTIVE_LOW>;
  50. linux,default-trigger = "heartbeat";
  51. };
  52. };
  53. regulators {
  54. compatible = "simple-bus";
  55. #address-cells = <1>;
  56. #size-cells = <0>;
  57. reg_can: regulator@0 {
  58. compatible = "regulator-fixed";
  59. reg = <0>;
  60. regulator-name = "CAN_RST";
  61. regulator-min-microvolt = <3300000>;
  62. regulator-max-microvolt = <3300000>;
  63. gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>;
  64. startup-delay-us = <20000>;
  65. enable-active-high;
  66. };
  67. };
  68. sound {
  69. compatible = "eukrea,asoc-tlv320";
  70. eukrea,model = "imx51-eukrea-tlv320aic23";
  71. ssi-controller = <&ssi2>;
  72. fsl,mux-int-port = <2>;
  73. fsl,mux-ext-port = <3>;
  74. };
  75. usbphy {
  76. #address-cells = <1>;
  77. #size-cells = <0>;
  78. compatible = "simple-bus";
  79. usbh1phy: usbh1phy@0 {
  80. compatible = "usb-nop-xceiv";
  81. reg = <0>;
  82. clocks = <&clks IMX5_CLK_USB_PHY_GATE>;
  83. clock-names = "main_clk";
  84. clock-frequency = <19200000>;
  85. };
  86. };
  87. };
  88. &audmux {
  89. pinctrl-names = "default";
  90. pinctrl-0 = <&pinctrl_audmux>;
  91. status = "okay";
  92. };
  93. &esdhc1 {
  94. pinctrl-names = "default";
  95. pinctrl-0 = <&pinctrl_esdhc1 &pinctrl_esdhc1_cd>;
  96. cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
  97. status = "okay";
  98. };
  99. &ecspi1 {
  100. pinctrl-names = "default";
  101. pinctrl-0 = <&pinctrl_ecspi1>;
  102. fsl,spi-num-chipselects = <1>;
  103. cs-gpios = <&gpio4 24 GPIO_ACTIVE_LOW>;
  104. status = "okay";
  105. can0: can@0 {
  106. pinctrl-names = "default";
  107. pinctrl-0 = <&pinctrl_can>;
  108. compatible = "microchip,mcp2515";
  109. reg = <0>;
  110. clocks = <&clk24M>;
  111. spi-max-frequency = <10000000>;
  112. interrupt-parent = <&gpio1>;
  113. interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
  114. vdd-supply = <&reg_can>;
  115. };
  116. };
  117. &i2c1 {
  118. tlv320aic23: codec@1a {
  119. compatible = "ti,tlv320aic23";
  120. reg = <0x1a>;
  121. };
  122. };
  123. &iomuxc {
  124. imx51-eukrea {
  125. pinctrl_audmux: audmuxgrp {
  126. fsl,pins = <
  127. MX51_PAD_AUD3_BB_TXD__AUD3_TXD 0x80000000
  128. MX51_PAD_AUD3_BB_RXD__AUD3_RXD 0x80000000
  129. MX51_PAD_AUD3_BB_CK__AUD3_TXC 0x80000000
  130. MX51_PAD_AUD3_BB_FS__AUD3_TXFS 0x80000000
  131. >;
  132. };
  133. pinctrl_can: cangrp {
  134. fsl,pins = <
  135. MX51_PAD_CSI2_PIXCLK__GPIO4_15 0x80000000 /* nReset */
  136. MX51_PAD_GPIO1_1__GPIO1_1 0x80000000 /* IRQ */
  137. >;
  138. };
  139. pinctrl_ecspi1: ecspi1grp {
  140. fsl,pins = <
  141. MX51_PAD_CSPI1_MISO__ECSPI1_MISO 0x185
  142. MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI 0x185
  143. MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK 0x185
  144. MX51_PAD_CSPI1_SS0__GPIO4_24 0x80000000 /* CS0 */
  145. >;
  146. };
  147. pinctrl_esdhc1: esdhc1grp {
  148. fsl,pins = <
  149. MX51_PAD_SD1_CMD__SD1_CMD 0x400020d5
  150. MX51_PAD_SD1_CLK__SD1_CLK 0x20d5
  151. MX51_PAD_SD1_DATA0__SD1_DATA0 0x20d5
  152. MX51_PAD_SD1_DATA1__SD1_DATA1 0x20d5
  153. MX51_PAD_SD1_DATA2__SD1_DATA2 0x20d5
  154. MX51_PAD_SD1_DATA3__SD1_DATA3 0x20d5
  155. >;
  156. };
  157. pinctrl_uart1: uart1grp {
  158. fsl,pins = <
  159. MX51_PAD_UART1_RXD__UART1_RXD 0x1c5
  160. MX51_PAD_UART1_TXD__UART1_TXD 0x1c5
  161. >;
  162. };
  163. pinctrl_uart3: uart3grp {
  164. fsl,pins = <
  165. MX51_PAD_UART3_RXD__UART3_RXD 0x1c5
  166. MX51_PAD_UART3_TXD__UART3_TXD 0x1c5
  167. >;
  168. };
  169. pinctrl_uart3_rtscts: uart3rtsctsgrp {
  170. fsl,pins = <
  171. MX51_PAD_KEY_COL4__UART3_RTS 0x1c5
  172. MX51_PAD_KEY_COL5__UART3_CTS 0x1c5
  173. >;
  174. };
  175. pinctrl_backlight_1: backlightgrp-1 {
  176. fsl,pins = <
  177. MX51_PAD_DI1_D1_CS__GPIO3_4 0x1f5
  178. >;
  179. };
  180. pinctrl_esdhc1_cd: esdhc1_cd {
  181. fsl,pins = <
  182. MX51_PAD_GPIO1_0__GPIO1_0 0xd5
  183. >;
  184. };
  185. pinctrl_gpiokeys_1: gpiokeysgrp-1 {
  186. fsl,pins = <
  187. MX51_PAD_NANDF_D9__GPIO3_31 0x1f5
  188. >;
  189. };
  190. pinctrl_gpioled: gpioledgrp-1 {
  191. fsl,pins = <
  192. MX51_PAD_NANDF_D10__GPIO3_30 0x80000000
  193. >;
  194. };
  195. pinctrl_reg_lcd_3v3: reg_lcd_3v3 {
  196. fsl,pins = <
  197. MX51_PAD_CSI1_D9__GPIO3_13 0x1f5
  198. >;
  199. };
  200. pinctrl_usbh1: usbh1grp {
  201. fsl,pins = <
  202. MX51_PAD_USBH1_CLK__USBH1_CLK 0x1e5
  203. MX51_PAD_USBH1_DIR__USBH1_DIR 0x1e5
  204. MX51_PAD_USBH1_NXT__USBH1_NXT 0x1e5
  205. MX51_PAD_USBH1_DATA0__USBH1_DATA0 0x1e5
  206. MX51_PAD_USBH1_DATA1__USBH1_DATA1 0x1e5
  207. MX51_PAD_USBH1_DATA2__USBH1_DATA2 0x1e5
  208. MX51_PAD_USBH1_DATA3__USBH1_DATA3 0x1e5
  209. MX51_PAD_USBH1_DATA4__USBH1_DATA4 0x1e5
  210. MX51_PAD_USBH1_DATA5__USBH1_DATA5 0x1e5
  211. MX51_PAD_USBH1_DATA6__USBH1_DATA6 0x1e5
  212. MX51_PAD_USBH1_DATA7__USBH1_DATA7 0x1e5
  213. MX51_PAD_USBH1_STP__USBH1_STP 0x1e5
  214. >;
  215. };
  216. pinctrl_usbh1_vbus: usbh1-vbusgrp {
  217. fsl,pins = <
  218. MX51_PAD_EIM_CS3__GPIO2_28 0x1f5
  219. >;
  220. };
  221. };
  222. };
  223. &ssi2 {
  224. codec-handle = <&tlv320aic23>;
  225. status = "okay";
  226. };
  227. &uart1 {
  228. pinctrl-names = "default";
  229. pinctrl-0 = <&pinctrl_uart1>;
  230. uart-has-rtscts;
  231. status = "okay";
  232. };
  233. &uart3 {
  234. pinctrl-names = "default";
  235. pinctrl-0 = <&pinctrl_uart3 &pinctrl_uart3_rtscts>;
  236. uart-has-rtscts;
  237. status = "okay";
  238. };
  239. &usbh1 {
  240. pinctrl-names = "default";
  241. pinctrl-0 = <&pinctrl_usbh1>;
  242. fsl,usbphy = <&usbh1phy>;
  243. dr_mode = "host";
  244. phy_type = "ulpi";
  245. status = "okay";
  246. };
  247. &usbotg {
  248. dr_mode = "otg";
  249. phy_type = "utmi_wide";
  250. status = "okay";
  251. };
  252. &usbphy0 {
  253. pinctrl-names = "default";
  254. pinctrl-0 = <&pinctrl_usbh1_vbus>;
  255. reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
  256. };