imx6q-gk802.dts 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. /*
  2. * Copyright (C) 2013 Philipp Zabel
  3. *
  4. * This file is licensed under the terms of the GNU General Public License
  5. * version 2. This program is licensed "as is" without any warranty of any
  6. * kind, whether express or implied.
  7. */
  8. /dts-v1/;
  9. #include <dt-bindings/gpio/gpio.h>
  10. #include "imx6q.dtsi"
  11. / {
  12. model = "Zealz GK802";
  13. compatible = "zealz,imx6q-gk802", "fsl,imx6q";
  14. chosen {
  15. stdout-path = &uart4;
  16. };
  17. memory {
  18. reg = <0x10000000 0x40000000>;
  19. };
  20. regulators {
  21. compatible = "simple-bus";
  22. #address-cells = <1>;
  23. #size-cells = <0>;
  24. reg_3p3v: regulator@0 {
  25. compatible = "regulator-fixed";
  26. reg = <0>;
  27. regulator-name = "3P3V";
  28. regulator-min-microvolt = <3300000>;
  29. regulator-max-microvolt = <3300000>;
  30. regulator-always-on;
  31. };
  32. };
  33. gpio-keys {
  34. compatible = "gpio-keys";
  35. recovery-button {
  36. label = "recovery";
  37. gpios = <&gpio3 16 1>;
  38. linux,code = <0x198>; /* KEY_RESTART */
  39. wakeup-source;
  40. };
  41. };
  42. };
  43. &hdmi {
  44. ddc-i2c-bus = <&i2c3>;
  45. status = "okay";
  46. };
  47. /* Internal I2C */
  48. &i2c2 {
  49. pinctrl-names = "default";
  50. pinctrl-0 = <&pinctrl_i2c2>;
  51. clock-frequency = <100000>;
  52. status = "okay";
  53. /* SDMC DM2016 1024 bit EEPROM + 128 bit OTP */
  54. eeprom: dm2016@51 {
  55. compatible = "sdmc,dm2016";
  56. reg = <0x51>;
  57. };
  58. };
  59. /* External I2C via HDMI */
  60. &i2c3 {
  61. pinctrl-names = "default";
  62. pinctrl-0 = <&pinctrl_i2c3>;
  63. clock-frequency = <100000>;
  64. status = "okay";
  65. };
  66. &iomuxc {
  67. pinctrl-names = "default";
  68. pinctrl-0 = <&pinctrl_hog>;
  69. imx6q-gk802 {
  70. pinctrl_hog: hoggrp {
  71. fsl,pins = <
  72. /* Recovery button, active-low */
  73. MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x100b1
  74. /* RTL8192CU enable GPIO, active-low */
  75. MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0
  76. >;
  77. };
  78. pinctrl_i2c2: i2c2grp {
  79. fsl,pins = <
  80. MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
  81. MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
  82. >;
  83. };
  84. pinctrl_i2c3: i2c3grp {
  85. fsl,pins = <
  86. MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1
  87. MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1
  88. >;
  89. };
  90. pinctrl_uart4: uart4grp {
  91. fsl,pins = <
  92. MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1
  93. MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1
  94. >;
  95. };
  96. pinctrl_usdhc3: usdhc3grp {
  97. fsl,pins = <
  98. MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
  99. MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
  100. MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
  101. MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
  102. MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
  103. MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
  104. >;
  105. };
  106. pinctrl_usdhc4: usdhc4grp {
  107. fsl,pins = <
  108. MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059
  109. MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059
  110. MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059
  111. MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059
  112. MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059
  113. MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059
  114. >;
  115. };
  116. };
  117. };
  118. &uart2 {
  119. status = "okay";
  120. };
  121. &uart4 {
  122. pinctrl-names = "default";
  123. pinctrl-0 = <&pinctrl_uart4>;
  124. status = "okay";
  125. };
  126. /* External USB-A port (USBOTG) */
  127. &usbotg {
  128. disable-over-current;
  129. status = "okay";
  130. };
  131. /* Internal USB port (USBH1), connected to RTL8192CU */
  132. &usbh1 {
  133. disable-over-current;
  134. status = "okay";
  135. };
  136. /* External microSD */
  137. &usdhc3 {
  138. pinctrl-names = "default";
  139. pinctrl-0 = <&pinctrl_usdhc3>;
  140. bus-width = <4>;
  141. cd-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
  142. vmmc-supply = <&reg_3p3v>;
  143. status = "okay";
  144. };
  145. /* Internal microSD */
  146. &usdhc4 {
  147. pinctrl-names = "default";
  148. pinctrl-0 = <&pinctrl_usdhc4>;
  149. bus-width = <4>;
  150. vmmc-supply = <&reg_3p3v>;
  151. status = "okay";
  152. };