imx6qdl-udoo.dtsi 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * Copyright 2013 Freescale Semiconductor, Inc.
  4. *
  5. * Author: Fabio Estevam <[email protected]>
  6. */
  7. #include <dt-bindings/gpio/gpio.h>
  8. / {
  9. aliases {
  10. backlight = &backlight;
  11. panelchan = &panelchan;
  12. panel7 = &panel7;
  13. touchscreenp7 = &touchscreenp7;
  14. };
  15. chosen {
  16. stdout-path = &uart2;
  17. };
  18. backlight: backlight {
  19. compatible = "gpio-backlight";
  20. gpios = <&gpio1 4 0>;
  21. default-on;
  22. status = "disabled";
  23. };
  24. gpio-poweroff {
  25. compatible = "gpio-poweroff";
  26. gpios = <&gpio2 4 0>;
  27. pinctrl-0 = <&pinctrl_power_off>;
  28. pinctrl-names = "default";
  29. };
  30. memory@10000000 {
  31. device_type = "memory";
  32. reg = <0x10000000 0x40000000>;
  33. };
  34. panel7: panel7 {
  35. /*
  36. * in reality it is a -20t (parallel) model,
  37. * but with LVDS bridge chip attached,
  38. * so it is equivalent to -19t model in drive
  39. * characteristics
  40. */
  41. compatible = "urt,umsh-8596md-19t";
  42. pinctrl-names = "default";
  43. pinctrl-0 = <&pinctrl_panel>;
  44. power-supply = <&reg_panel>;
  45. backlight = <&backlight>;
  46. status = "disabled";
  47. port {
  48. panel_in: endpoint {
  49. remote-endpoint = <&lvds0_out>;
  50. };
  51. };
  52. };
  53. regulators {
  54. compatible = "simple-bus";
  55. #address-cells = <1>;
  56. #size-cells = <0>;
  57. reg_usb_h1_vbus: regulator@0 {
  58. compatible = "regulator-fixed";
  59. reg = <0>;
  60. regulator-name = "usb_h1_vbus";
  61. regulator-min-microvolt = <5000000>;
  62. regulator-max-microvolt = <5000000>;
  63. enable-active-high;
  64. startup-delay-us = <2>; /* USB2415 requires a POR of 1 us minimum */
  65. gpio = <&gpio7 12 0>;
  66. };
  67. reg_panel: regulator@1 {
  68. compatible = "regulator-fixed";
  69. reg = <1>;
  70. regulator-name = "lcd_panel";
  71. enable-active-high;
  72. gpio = <&gpio1 2 0>;
  73. };
  74. };
  75. sound {
  76. compatible = "fsl,imx6q-udoo-ac97",
  77. "fsl,imx-audio-ac97";
  78. model = "fsl,imx6q-udoo-ac97";
  79. audio-cpu = <&ssi1>;
  80. audio-routing =
  81. "RX", "Mic Jack",
  82. "Headphone Jack", "TX";
  83. mux-int-port = <1>;
  84. mux-ext-port = <6>;
  85. };
  86. };
  87. &fec {
  88. pinctrl-names = "default";
  89. pinctrl-0 = <&pinctrl_enet>;
  90. phy-mode = "rgmii-id";
  91. status = "okay";
  92. };
  93. &hdmi {
  94. ddc-i2c-bus = <&i2c2>;
  95. status = "okay";
  96. };
  97. &i2c2 {
  98. clock-frequency = <100000>;
  99. pinctrl-names = "default";
  100. pinctrl-0 = <&pinctrl_i2c2>;
  101. status = "okay";
  102. };
  103. &i2c3 {
  104. clock-frequency = <100000>;
  105. pinctrl-names = "default";
  106. pinctrl-0 = <&pinctrl_i2c3>;
  107. status = "okay";
  108. touchscreenp7: touchscreenp7@55 {
  109. compatible = "sitronix,st1232";
  110. pinctrl-names = "default";
  111. pinctrl-0 = <&pinctrl_touchscreenp7>;
  112. reg = <0x55>;
  113. interrupt-parent = <&gpio1>;
  114. interrupts = <13 8>;
  115. gpios = <&gpio1 15 0>;
  116. status = "disabled";
  117. };
  118. };
  119. &iomuxc {
  120. imx6q-udoo {
  121. pinctrl_enet: enetgrp {
  122. fsl,pins = <
  123. MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
  124. MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030
  125. MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030
  126. MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
  127. MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
  128. MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
  129. MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
  130. MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
  131. MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
  132. MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
  133. MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
  134. MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
  135. MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
  136. MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
  137. MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
  138. MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
  139. >;
  140. };
  141. pinctrl_i2c2: i2c2grp {
  142. fsl,pins = <
  143. MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
  144. MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
  145. >;
  146. };
  147. pinctrl_i2c3: i2c3grp {
  148. fsl,pins = <
  149. MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001f8b1
  150. MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001f8b1
  151. >;
  152. };
  153. pinctrl_panel: panelgrp {
  154. fsl,pins = <
  155. MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x70
  156. MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x70
  157. >;
  158. };
  159. pinctrl_power_off: poweroffgrp {
  160. fsl,pins = <
  161. MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x30
  162. >;
  163. };
  164. pinctrl_touchscreenp7: touchscreenp7grp {
  165. fsl,pins = <
  166. MX6QDL_PAD_SD2_DAT0__GPIO1_IO15 0x70
  167. MX6QDL_PAD_SD2_DAT2__GPIO1_IO13 0x1b0b0
  168. >;
  169. };
  170. pinctrl_uart2: uart2grp {
  171. fsl,pins = <
  172. MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1
  173. MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1
  174. >;
  175. };
  176. pinctrl_uart4: uart4grp {
  177. fsl,pins = <
  178. MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1
  179. MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1
  180. >;
  181. };
  182. pinctrl_usbh: usbhgrp {
  183. fsl,pins = <
  184. MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x80000000
  185. MX6QDL_PAD_NANDF_CS2__CCM_CLKO2 0x130b0
  186. >;
  187. };
  188. pinctrl_usbotg: usbotg {
  189. fsl,pins = <
  190. MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
  191. MX6QDL_PAD_EIM_D22__USB_OTG_PWR 0x17059
  192. MX6QDL_PAD_EIM_D21__USB_OTG_OC 0x17059
  193. >;
  194. };
  195. pinctrl_usdhc3: usdhc3grp {
  196. fsl,pins = <
  197. MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
  198. MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
  199. MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
  200. MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
  201. MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
  202. MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
  203. MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x1b0b0
  204. >;
  205. };
  206. pinctrl_ac97_running: ac97running {
  207. fsl,pins = <
  208. MX6QDL_PAD_DI0_PIN2__AUD6_TXD 0x1b0b0
  209. MX6QDL_PAD_DI0_PIN3__AUD6_TXFS 0x1b0b0
  210. MX6QDL_PAD_DI0_PIN4__AUD6_RXD 0x13080
  211. MX6QDL_PAD_DI0_PIN15__AUD6_TXC 0x13080
  212. MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x1b0b0
  213. >;
  214. };
  215. pinctrl_ac97_warm_reset: ac97warmreset {
  216. fsl,pins = <
  217. MX6QDL_PAD_DI0_PIN2__AUD6_TXD 0x1b0b0
  218. MX6QDL_PAD_DI0_PIN3__GPIO4_IO19 0x1b0b0
  219. MX6QDL_PAD_DI0_PIN4__AUD6_RXD 0x13080
  220. MX6QDL_PAD_DI0_PIN15__AUD6_TXC 0x13080
  221. MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x1b0b0
  222. >;
  223. };
  224. pinctrl_ac97_reset: ac97reset {
  225. fsl,pins = <
  226. MX6QDL_PAD_DI0_PIN2__GPIO4_IO18 0x1b0b0
  227. MX6QDL_PAD_DI0_PIN3__GPIO4_IO19 0x1b0b0
  228. MX6QDL_PAD_DI0_PIN4__AUD6_RXD 0x13080
  229. MX6QDL_PAD_DI0_PIN15__AUD6_TXC 0x13080
  230. MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x1b0b0
  231. >;
  232. };
  233. };
  234. };
  235. &ldb {
  236. status = "okay";
  237. panelchan: lvds-channel@0 {
  238. port@4 {
  239. reg = <4>;
  240. lvds0_out: endpoint {
  241. remote-endpoint = <&panel_in>;
  242. };
  243. };
  244. };
  245. };
  246. &uart2 {
  247. pinctrl-names = "default";
  248. pinctrl-0 = <&pinctrl_uart2>;
  249. status = "okay";
  250. };
  251. &uart4 {
  252. pinctrl-names = "default";
  253. pinctrl-0 = <&pinctrl_uart4>;
  254. status = "okay";
  255. };
  256. &usbh1 {
  257. pinctrl-names = "default";
  258. pinctrl-0 = <&pinctrl_usbh>;
  259. vbus-supply = <&reg_usb_h1_vbus>;
  260. clocks = <&clks IMX6QDL_CLK_CKO>;
  261. status = "disabled";
  262. };
  263. &usbotg {
  264. pinctrl-names = "default";
  265. pinctrl-0 = <&pinctrl_usbotg>;
  266. status = "okay";
  267. };
  268. &usdhc3 {
  269. pinctrl-names = "default";
  270. pinctrl-0 = <&pinctrl_usdhc3>;
  271. cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
  272. status = "okay";
  273. };
  274. &audmux {
  275. status = "okay";
  276. };
  277. &ssi1 {
  278. cell-index = <0>;
  279. fsl,mode = "ac97-slave";
  280. pinctrl-names = "ac97-running", "ac97-reset", "ac97-warm-reset";
  281. pinctrl-0 = <&pinctrl_ac97_running>;
  282. pinctrl-1 = <&pinctrl_ac97_reset>;
  283. pinctrl-2 = <&pinctrl_ac97_warm_reset>;
  284. ac97-gpios = <&gpio4 19 0 &gpio4 18 0 &gpio2 30 0>;
  285. status = "okay";
  286. };