imx8mq-hummingboard-pulse.dts 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. // SPDX-License-Identifier: (GPL-2.0 OR MIT)
  2. /*
  3. * Copyright (C) 2018 Jon Nettleton <[email protected]>
  4. */
  5. /dts-v1/;
  6. #include "dt-bindings/usb/pd.h"
  7. #include "imx8mq-sr-som.dtsi"
  8. / {
  9. model = "SolidRun i.MX8MQ HummingBoard Pulse";
  10. compatible = "solidrun,hummingboard-pulse", "fsl,imx8mq";
  11. chosen {
  12. stdout-path = &uart1;
  13. };
  14. reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
  15. compatible = "regulator-fixed";
  16. pinctrl-names = "default";
  17. pinctrl-0 = <&pinctrl_usdhc2_vmmc>;
  18. regulator-name = "VSD_3V3";
  19. regulator-min-microvolt = <3300000>;
  20. regulator-max-microvolt = <3300000>;
  21. gpio = <&gpio1 13 GPIO_ACTIVE_LOW>;
  22. };
  23. reg_v_5v0: regulator-v-5v0 {
  24. compatible = "regulator-fixed";
  25. regulator-name = "v_5v0";
  26. regulator-max-microvolt = <5000000>;
  27. regulator-min-microvolt = <5000000>;
  28. regulator-always-on;
  29. };
  30. };
  31. &i2c2 {
  32. pinctrl-names = "default";
  33. pinctrl-0 = <&pinctrl_i2c2>;
  34. clock-frequency = <100000>;
  35. status = "okay";
  36. typec_ptn5100: usb-typec@50 {
  37. compatible = "nxp,ptn5110";
  38. reg = <0x50>;
  39. pinctrl-names = "default";
  40. pinctrl-0 = <&pinctrl_typec>;
  41. interrupt-parent = <&gpio1>;
  42. interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
  43. connector {
  44. compatible = "usb-c-connector";
  45. label = "USB-C";
  46. data-role = "dual";
  47. power-role = "dual";
  48. try-power-role = "sink";
  49. source-pdos = <PDO_FIXED(5000, 2000,
  50. PDO_FIXED_USB_COMM |
  51. PDO_FIXED_SUSPEND |
  52. PDO_FIXED_EXTPOWER)>;
  53. sink-pdos = <PDO_FIXED(5000, 2000,
  54. PDO_FIXED_USB_COMM |
  55. PDO_FIXED_SUSPEND |
  56. PDO_FIXED_EXTPOWER)
  57. PDO_FIXED(9000, 2000,
  58. PDO_FIXED_USB_COMM |
  59. PDO_FIXED_SUSPEND |
  60. PDO_FIXED_EXTPOWER)>;
  61. op-sink-microwatt = <9000000>;
  62. port {
  63. typec1_dr_sw: endpoint {
  64. remote-endpoint = <&usb1_drd_sw>;
  65. };
  66. };
  67. };
  68. };
  69. };
  70. &i2c3 {
  71. pinctrl-names = "default";
  72. pinctrl-0 = <&pinctrl_i2c3>;
  73. clock-frequency = <100000>;
  74. status = "okay";
  75. eeprom@57 {
  76. compatible = "atmel,24c02";
  77. reg = <0x57>;
  78. status = "okay";
  79. };
  80. rtc@69 {
  81. compatible = "abracon,ab1805";
  82. reg = <0x69>;
  83. abracon,tc-diode = "schottky";
  84. abracon,tc-resistor = <3>;
  85. };
  86. };
  87. &uart2 { /* J35 header */
  88. pinctrl-names = "default";
  89. pinctrl-0 = <&pinctrl_uart2>;
  90. assigned-clocks = <&clk IMX8MQ_CLK_UART2>;
  91. assigned-clock-parents = <&clk IMX8MQ_CLK_25M>;
  92. status = "okay";
  93. };
  94. &uart3 { /* Mikrobus */
  95. pinctrl-names = "default";
  96. pinctrl-0 = <&pinctrl_uart3>;
  97. assigned-clocks = <&clk IMX8MQ_CLK_UART3>;
  98. assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>;
  99. uart-has-rtscts;
  100. status = "okay";
  101. };
  102. &usdhc2 {
  103. assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>;
  104. assigned-clock-rates = <200000000>;
  105. pinctrl-names = "default", "state_100mhz", "state_200mhz";
  106. pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
  107. pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
  108. pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
  109. cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
  110. vmmc-supply = <&reg_usdhc2_vmmc>;
  111. status = "okay";
  112. };
  113. &usb_dwc3_0 {
  114. dr_mode = "otg";
  115. status = "okay";
  116. port {
  117. usb1_drd_sw: endpoint {
  118. remote-endpoint = <&typec1_dr_sw>;
  119. };
  120. };
  121. };
  122. &usb_dwc3_1 {
  123. dr_mode = "host";
  124. status = "okay";
  125. };
  126. &usb3_phy0 {
  127. status = "okay";
  128. };
  129. &usb3_phy1 {
  130. status = "okay";
  131. };
  132. &iomuxc {
  133. pinctrl-names = "default";
  134. pinctrl-0 = <&pinctrl_hog>;
  135. pinctrl_hog: hoggrp {
  136. fsl,pins = <
  137. /* MikroBus Analog */
  138. MX8MQ_IOMUXC_NAND_DATA05_GPIO3_IO11 0x41
  139. /* MikroBus Reset */
  140. MX8MQ_IOMUXC_SAI2_RXD0_GPIO4_IO23 0x41
  141. /*
  142. * The following 2 pins need to be commented out and
  143. * reconfigured to enable RTS/CTS on UART3
  144. */
  145. /* MikroBus PWM */
  146. MX8MQ_IOMUXC_ECSPI1_MISO_GPIO5_IO8 0x41
  147. /* MikroBus INT */
  148. MX8MQ_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x41
  149. >;
  150. };
  151. pinctrl_i2c2: i2c2grp {
  152. fsl,pins = <
  153. MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL 0x4000007f
  154. MX8MQ_IOMUXC_I2C2_SDA_I2C2_SDA 0x4000007f
  155. >;
  156. };
  157. pinctrl_i2c3: i2c3grp {
  158. fsl,pins = <
  159. MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL 0x4000007f
  160. MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA 0x4000007f
  161. >;
  162. };
  163. pinctrl_typec: typecgrp {
  164. fsl,pins = <
  165. MX8MQ_IOMUXC_NAND_RE_B_GPIO3_IO15 0x16
  166. MX8MQ_IOMUXC_GPIO1_IO06_GPIO1_IO6 0x17059
  167. >;
  168. };
  169. pinctrl_uart2: uart2grp {
  170. fsl,pins = <
  171. MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX 0x49
  172. MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX 0x49
  173. >;
  174. };
  175. pinctrl_uart3: uart3grp {
  176. fsl,pins = <
  177. MX8MQ_IOMUXC_UART3_TXD_UART3_DCE_TX 0x49
  178. MX8MQ_IOMUXC_UART3_RXD_UART3_DCE_RX 0x49
  179. /*
  180. * These pins are by default GPIO on the Mikro Bus
  181. * Header. To use RTS/CTS on UART3 comment them out
  182. * of the hoggrp and enable them here
  183. */
  184. /* MX8MQ_IOMUXC_ECSPI1_MISO_UART3_DCE_CTS_B 0x49 */
  185. /* MX8MQ_IOMUXC_ECSPI1_SS0_UART3_DCE_RTS_B 0x49 */
  186. >;
  187. };
  188. pinctrl_usdhc2_gpio: usdhc2gpiogrp {
  189. fsl,pins = <
  190. MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12 0x41
  191. >;
  192. };
  193. pinctrl_usdhc2_vmmc: usdhc2vmmcgpiogrp {
  194. fsl,pins = <
  195. MX8MQ_IOMUXC_GPIO1_IO13_GPIO1_IO13 0x41
  196. >;
  197. };
  198. pinctrl_usdhc2: usdhc2grp {
  199. fsl,pins = <
  200. MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x83
  201. MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xc3
  202. MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xc3
  203. MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xc3
  204. MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xc3
  205. MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xc3
  206. MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1
  207. >;
  208. };
  209. pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
  210. fsl,pins = <
  211. MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x8d
  212. MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xcd
  213. MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xcd
  214. MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xcd
  215. MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xcd
  216. MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xcd
  217. MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1
  218. >;
  219. };
  220. pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
  221. fsl,pins = <
  222. MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK 0x9f
  223. MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD 0xdf
  224. MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0 0xdf
  225. MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1 0xdf
  226. MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2 0xdf
  227. MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3 0xdf
  228. MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0xc1
  229. >;
  230. };
  231. };