xref: /openbmc/linux/arch/arm64/boot/dts/freescale/imx8mq-hummingboard-pulse.dts (revision cbecf716ca618fd44feda6bd9a64a8179d031fc5)
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
87785331b3SBaruch Siach	eeprom@57 {
88785331b3SBaruch Siach		compatible = "atmel,24c02";
89785331b3SBaruch Siach		reg = <0x57>;
90785331b3SBaruch Siach		status = "okay";
91785331b3SBaruch Siach	};
92785331b3SBaruch Siach
93ffe0f9a0SJon Nettleton	rtc@69 {
94ffe0f9a0SJon Nettleton		compatible = "abracon,ab1805";
95ffe0f9a0SJon Nettleton		reg = <0x69>;
96ffe0f9a0SJon Nettleton		abracon,tc-diode = "schottky";
97ffe0f9a0SJon Nettleton		abracon,tc-resistor = <3>;
98ffe0f9a0SJon Nettleton	};
99ffe0f9a0SJon Nettleton};
100ffe0f9a0SJon Nettleton
101ffe0f9a0SJon Nettleton&uart2 { /* J35 header */
102ffe0f9a0SJon Nettleton	pinctrl-names = "default";
103ffe0f9a0SJon Nettleton	pinctrl-0 = <&pinctrl_uart2>;
104ffe0f9a0SJon Nettleton	assigned-clocks = <&clk IMX8MQ_CLK_UART2>;
105ffe0f9a0SJon Nettleton	assigned-clock-parents = <&clk IMX8MQ_CLK_25M>;
106ffe0f9a0SJon Nettleton	status = "okay";
107ffe0f9a0SJon Nettleton};
108ffe0f9a0SJon Nettleton
109ffe0f9a0SJon Nettleton&uart3 { /* Mikrobus */
110ffe0f9a0SJon Nettleton	pinctrl-names = "default";
111ffe0f9a0SJon Nettleton	pinctrl-0 = <&pinctrl_uart3>;
112ffe0f9a0SJon Nettleton	assigned-clocks = <&clk IMX8MQ_CLK_UART3>;
113ffe0f9a0SJon Nettleton	assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>;
114ffe0f9a0SJon Nettleton	uart-has-rtscts;
115ffe0f9a0SJon Nettleton	status = "okay";
116ffe0f9a0SJon Nettleton};
117ffe0f9a0SJon Nettleton
118ffe0f9a0SJon Nettleton&usdhc2 {
119e045f044SAnson Huang	assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>;
120e045f044SAnson Huang	assigned-clock-rates = <200000000>;
121ffe0f9a0SJon Nettleton	pinctrl-names = "default", "state_100mhz", "state_200mhz";
122ffe0f9a0SJon Nettleton	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
123ffe0f9a0SJon Nettleton	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
124ffe0f9a0SJon Nettleton	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
125ffe0f9a0SJon Nettleton	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
126ffe0f9a0SJon Nettleton	vmmc-supply = <&reg_usdhc2_vmmc>;
127ffe0f9a0SJon Nettleton	status = "okay";
128ffe0f9a0SJon Nettleton};
129ffe0f9a0SJon Nettleton
130ffe0f9a0SJon Nettleton&usb_dwc3_0 {
131ffe0f9a0SJon Nettleton	dr_mode = "otg";
132ffe0f9a0SJon Nettleton	status = "okay";
133ffe0f9a0SJon Nettleton
134ffe0f9a0SJon Nettleton	port {
135ffe0f9a0SJon Nettleton		usb1_drd_sw: endpoint {
136ffe0f9a0SJon Nettleton			remote-endpoint = <&typec1_dr_sw>;
137ffe0f9a0SJon Nettleton		};
138ffe0f9a0SJon Nettleton	};
139ffe0f9a0SJon Nettleton};
140ffe0f9a0SJon Nettleton
141ffe0f9a0SJon Nettleton&usb_dwc3_1 {
142ffe0f9a0SJon Nettleton	dr_mode = "host";
143ffe0f9a0SJon Nettleton	status = "okay";
144ffe0f9a0SJon Nettleton};
145ffe0f9a0SJon Nettleton
146ffe0f9a0SJon Nettleton&usb3_phy0 {
147ffe0f9a0SJon Nettleton	status = "okay";
148ffe0f9a0SJon Nettleton};
149ffe0f9a0SJon Nettleton
150ffe0f9a0SJon Nettleton&usb3_phy1 {
151ffe0f9a0SJon Nettleton	status = "okay";
152ffe0f9a0SJon Nettleton};
153ffe0f9a0SJon Nettleton
154ffe0f9a0SJon Nettleton&iomuxc {
155ffe0f9a0SJon Nettleton	pinctrl-names = "default";
156ffe0f9a0SJon Nettleton	pinctrl-0 = <&pinctrl_hog>;
157ffe0f9a0SJon Nettleton
158ffe0f9a0SJon Nettleton	pinctrl_hog: hoggrp {
159ffe0f9a0SJon Nettleton		fsl,pins = <
160ffe0f9a0SJon Nettleton			/* MikroBus Analog */
161ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_NAND_DATA05_GPIO3_IO11		0x41
162ffe0f9a0SJon Nettleton			/* MikroBus Reset */
163ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SAI2_RXD0_GPIO4_IO23		0x41
164ffe0f9a0SJon Nettleton			/*
165ffe0f9a0SJon Nettleton			 * The following 2 pins need to be commented out and
166ffe0f9a0SJon Nettleton			 * reconfigured to enable RTS/CTS on UART3
167ffe0f9a0SJon Nettleton			 */
168ffe0f9a0SJon Nettleton			/* MikroBus PWM */
169ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_ECSPI1_MISO_GPIO5_IO8		0x41
170ffe0f9a0SJon Nettleton			/* MikroBus INT */
171ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_ECSPI1_SS0_GPIO5_IO9		0x41
172ffe0f9a0SJon Nettleton		>;
173ffe0f9a0SJon Nettleton	};
174ffe0f9a0SJon Nettleton
175ffe0f9a0SJon Nettleton	pinctrl_i2c2: i2c2grp {
176ffe0f9a0SJon Nettleton		fsl,pins = <
177ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL		0x4000007f
178ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_I2C2_SDA_I2C2_SDA		0x4000007f
179ffe0f9a0SJon Nettleton		>;
180ffe0f9a0SJon Nettleton	};
181ffe0f9a0SJon Nettleton
182ffe0f9a0SJon Nettleton	pinctrl_i2c3: i2c3grp {
183ffe0f9a0SJon Nettleton		fsl,pins = <
184ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL		0x4000007f
185ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA		0x4000007f
186ffe0f9a0SJon Nettleton		>;
187ffe0f9a0SJon Nettleton	};
188ffe0f9a0SJon Nettleton
189ffe0f9a0SJon Nettleton	pinctrl_typec: typecgrp {
190ffe0f9a0SJon Nettleton		fsl,pins = <
191ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_NAND_RE_B_GPIO3_IO15	0x16
192ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_GPIO1_IO06_GPIO1_IO6	0x17059
193ffe0f9a0SJon Nettleton		>;
194ffe0f9a0SJon Nettleton	};
195ffe0f9a0SJon Nettleton
196ffe0f9a0SJon Nettleton	pinctrl_uart2: uart2grp {
197ffe0f9a0SJon Nettleton		fsl,pins = <
198ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX		0x49
199ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX		0x49
200ffe0f9a0SJon Nettleton		>;
201ffe0f9a0SJon Nettleton	};
202ffe0f9a0SJon Nettleton
203ffe0f9a0SJon Nettleton	pinctrl_uart3: uart3grp {
204ffe0f9a0SJon Nettleton		fsl,pins = <
205ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_UART3_TXD_UART3_DCE_TX		0x49
206ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_UART3_RXD_UART3_DCE_RX		0x49
207ffe0f9a0SJon Nettleton			/*
208ffe0f9a0SJon Nettleton			 * These pins are by default GPIO on the Mikro Bus
209ffe0f9a0SJon Nettleton			 * Header. To use RTS/CTS on UART3 comment them out
210ffe0f9a0SJon Nettleton			 * of the hoggrp and enable them here
211ffe0f9a0SJon Nettleton			 */
212ffe0f9a0SJon Nettleton			/* MX8MQ_IOMUXC_ECSPI1_MISO_UART3_DCE_CTS_B	0x49 */
213ffe0f9a0SJon Nettleton			/* MX8MQ_IOMUXC_ECSPI1_SS0_UART3_DCE_RTS_B	0x49 */
214ffe0f9a0SJon Nettleton		>;
215ffe0f9a0SJon Nettleton	};
216ffe0f9a0SJon Nettleton
217*f05b1256SKrzysztof Kozlowski	pinctrl_usdhc2_gpio: usdhc2gpiogrp {
218ffe0f9a0SJon Nettleton		fsl,pins = <
219ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12	0x41
220ffe0f9a0SJon Nettleton		>;
221ffe0f9a0SJon Nettleton	};
222ffe0f9a0SJon Nettleton
223*f05b1256SKrzysztof Kozlowski	pinctrl_usdhc2_vmmc: usdhc2vmmcgpiogrp {
224ffe0f9a0SJon Nettleton		fsl,pins = <
225ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_GPIO1_IO13_GPIO1_IO13	0x41
226ffe0f9a0SJon Nettleton		>;
227ffe0f9a0SJon Nettleton	};
228ffe0f9a0SJon Nettleton
229ffe0f9a0SJon Nettleton	pinctrl_usdhc2: usdhc2grp {
230ffe0f9a0SJon Nettleton		fsl,pins = <
231ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK			0x83
232ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD			0xc3
233ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0		0xc3
234ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1		0xc3
235ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2		0xc3
236ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3		0xc3
237ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT		0xc1
238ffe0f9a0SJon Nettleton		>;
239ffe0f9a0SJon Nettleton	};
240ffe0f9a0SJon Nettleton
241*f05b1256SKrzysztof Kozlowski	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
242ffe0f9a0SJon Nettleton		fsl,pins = <
243ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK			0x8d
244ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD			0xcd
245ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0		0xcd
246ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1		0xcd
247ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2		0xcd
248ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3		0xcd
249ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT		0xc1
250ffe0f9a0SJon Nettleton		>;
251ffe0f9a0SJon Nettleton	};
252ffe0f9a0SJon Nettleton
253*f05b1256SKrzysztof Kozlowski	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
254ffe0f9a0SJon Nettleton		fsl,pins = <
255ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK			0x9f
256ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD			0xdf
257ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0		0xdf
258ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1		0xdf
259ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2		0xdf
260ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3		0xdf
261ffe0f9a0SJon Nettleton			MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT		0xc1
262ffe0f9a0SJon Nettleton		>;
263ffe0f9a0SJon Nettleton	};
264ffe0f9a0SJon Nettleton};
265