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