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