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