162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0 OR MIT)
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2018 Jon Nettleton <jon@solid-run.com>
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci/dts-v1/;
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#include "dt-bindings/usb/pd.h"
962306a36Sopenharmony_ci#include "imx8mq-sr-som.dtsi"
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci/ {
1262306a36Sopenharmony_ci	model = "SolidRun i.MX8MQ HummingBoard Pulse";
1362306a36Sopenharmony_ci	compatible = "solidrun,hummingboard-pulse", "fsl,imx8mq";
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci	chosen {
1662306a36Sopenharmony_ci		stdout-path = &uart1;
1762306a36Sopenharmony_ci	};
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci	reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
2062306a36Sopenharmony_ci		compatible = "regulator-fixed";
2162306a36Sopenharmony_ci		pinctrl-names = "default";
2262306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_usdhc2_vmmc>;
2362306a36Sopenharmony_ci		regulator-name = "VSD_3V3";
2462306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
2562306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
2662306a36Sopenharmony_ci		gpio = <&gpio1 13 GPIO_ACTIVE_LOW>;
2762306a36Sopenharmony_ci	};
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci	reg_v_5v0: regulator-v-5v0 {
3062306a36Sopenharmony_ci		compatible = "regulator-fixed";
3162306a36Sopenharmony_ci		regulator-name = "v_5v0";
3262306a36Sopenharmony_ci		regulator-max-microvolt = <5000000>;
3362306a36Sopenharmony_ci		regulator-min-microvolt = <5000000>;
3462306a36Sopenharmony_ci		regulator-always-on;
3562306a36Sopenharmony_ci	};
3662306a36Sopenharmony_ci};
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci&i2c2 {
3962306a36Sopenharmony_ci	pinctrl-names = "default";
4062306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_i2c2>;
4162306a36Sopenharmony_ci	clock-frequency = <100000>;
4262306a36Sopenharmony_ci	status = "okay";
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci	typec_ptn5100: usb-typec@50 {
4562306a36Sopenharmony_ci		compatible = "nxp,ptn5110";
4662306a36Sopenharmony_ci		reg = <0x50>;
4762306a36Sopenharmony_ci		pinctrl-names = "default";
4862306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_typec>;
4962306a36Sopenharmony_ci		interrupt-parent = <&gpio1>;
5062306a36Sopenharmony_ci		interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci		connector {
5362306a36Sopenharmony_ci			compatible = "usb-c-connector";
5462306a36Sopenharmony_ci			label = "USB-C";
5562306a36Sopenharmony_ci			data-role = "dual";
5662306a36Sopenharmony_ci			power-role = "dual";
5762306a36Sopenharmony_ci			try-power-role = "sink";
5862306a36Sopenharmony_ci			source-pdos = <PDO_FIXED(5000, 2000,
5962306a36Sopenharmony_ci						 PDO_FIXED_USB_COMM |
6062306a36Sopenharmony_ci						 PDO_FIXED_SUSPEND |
6162306a36Sopenharmony_ci						 PDO_FIXED_EXTPOWER)>;
6262306a36Sopenharmony_ci			sink-pdos = <PDO_FIXED(5000, 2000,
6362306a36Sopenharmony_ci					       PDO_FIXED_USB_COMM |
6462306a36Sopenharmony_ci					       PDO_FIXED_SUSPEND |
6562306a36Sopenharmony_ci					       PDO_FIXED_EXTPOWER)
6662306a36Sopenharmony_ci				     PDO_FIXED(9000, 2000,
6762306a36Sopenharmony_ci					       PDO_FIXED_USB_COMM |
6862306a36Sopenharmony_ci					       PDO_FIXED_SUSPEND |
6962306a36Sopenharmony_ci					       PDO_FIXED_EXTPOWER)>;
7062306a36Sopenharmony_ci			op-sink-microwatt = <9000000>;
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci			port {
7362306a36Sopenharmony_ci				typec1_dr_sw: endpoint {
7462306a36Sopenharmony_ci					remote-endpoint = <&usb1_drd_sw>;
7562306a36Sopenharmony_ci				};
7662306a36Sopenharmony_ci			};
7762306a36Sopenharmony_ci		};
7862306a36Sopenharmony_ci	};
7962306a36Sopenharmony_ci};
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci&i2c3 {
8262306a36Sopenharmony_ci	pinctrl-names = "default";
8362306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_i2c3>;
8462306a36Sopenharmony_ci	clock-frequency = <100000>;
8562306a36Sopenharmony_ci	status = "okay";
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci	eeprom@57 {
8862306a36Sopenharmony_ci		compatible = "atmel,24c02";
8962306a36Sopenharmony_ci		reg = <0x57>;
9062306a36Sopenharmony_ci		status = "okay";
9162306a36Sopenharmony_ci	};
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci	rtc@69 {
9462306a36Sopenharmony_ci		compatible = "abracon,ab1805";
9562306a36Sopenharmony_ci		reg = <0x69>;
9662306a36Sopenharmony_ci		abracon,tc-diode = "schottky";
9762306a36Sopenharmony_ci		abracon,tc-resistor = <3>;
9862306a36Sopenharmony_ci	};
9962306a36Sopenharmony_ci};
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci&uart2 { /* J35 header */
10262306a36Sopenharmony_ci	pinctrl-names = "default";
10362306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_uart2>;
10462306a36Sopenharmony_ci	assigned-clocks = <&clk IMX8MQ_CLK_UART2>;
10562306a36Sopenharmony_ci	assigned-clock-parents = <&clk IMX8MQ_CLK_25M>;
10662306a36Sopenharmony_ci	status = "okay";
10762306a36Sopenharmony_ci};
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci&uart3 { /* Mikrobus */
11062306a36Sopenharmony_ci	pinctrl-names = "default";
11162306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_uart3>;
11262306a36Sopenharmony_ci	assigned-clocks = <&clk IMX8MQ_CLK_UART3>;
11362306a36Sopenharmony_ci	assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>;
11462306a36Sopenharmony_ci	uart-has-rtscts;
11562306a36Sopenharmony_ci	status = "okay";
11662306a36Sopenharmony_ci};
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci&usdhc2 {
11962306a36Sopenharmony_ci	assigned-clocks = <&clk IMX8MQ_CLK_USDHC2>;
12062306a36Sopenharmony_ci	assigned-clock-rates = <200000000>;
12162306a36Sopenharmony_ci	pinctrl-names = "default", "state_100mhz", "state_200mhz";
12262306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
12362306a36Sopenharmony_ci	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
12462306a36Sopenharmony_ci	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
12562306a36Sopenharmony_ci	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
12662306a36Sopenharmony_ci	vmmc-supply = <&reg_usdhc2_vmmc>;
12762306a36Sopenharmony_ci	status = "okay";
12862306a36Sopenharmony_ci};
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci&usb_dwc3_0 {
13162306a36Sopenharmony_ci	dr_mode = "otg";
13262306a36Sopenharmony_ci	status = "okay";
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci	port {
13562306a36Sopenharmony_ci		usb1_drd_sw: endpoint {
13662306a36Sopenharmony_ci			remote-endpoint = <&typec1_dr_sw>;
13762306a36Sopenharmony_ci		};
13862306a36Sopenharmony_ci	};
13962306a36Sopenharmony_ci};
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci&usb_dwc3_1 {
14262306a36Sopenharmony_ci	dr_mode = "host";
14362306a36Sopenharmony_ci	status = "okay";
14462306a36Sopenharmony_ci};
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ci&usb3_phy0 {
14762306a36Sopenharmony_ci	status = "okay";
14862306a36Sopenharmony_ci};
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci&usb3_phy1 {
15162306a36Sopenharmony_ci	status = "okay";
15262306a36Sopenharmony_ci};
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ci&iomuxc {
15562306a36Sopenharmony_ci	pinctrl-names = "default";
15662306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_hog>;
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ci	pinctrl_hog: hoggrp {
15962306a36Sopenharmony_ci		fsl,pins = <
16062306a36Sopenharmony_ci			/* MikroBus Analog */
16162306a36Sopenharmony_ci			MX8MQ_IOMUXC_NAND_DATA05_GPIO3_IO11		0x41
16262306a36Sopenharmony_ci			/* MikroBus Reset */
16362306a36Sopenharmony_ci			MX8MQ_IOMUXC_SAI2_RXD0_GPIO4_IO23		0x41
16462306a36Sopenharmony_ci			/*
16562306a36Sopenharmony_ci			 * The following 2 pins need to be commented out and
16662306a36Sopenharmony_ci			 * reconfigured to enable RTS/CTS on UART3
16762306a36Sopenharmony_ci			 */
16862306a36Sopenharmony_ci			/* MikroBus PWM */
16962306a36Sopenharmony_ci			MX8MQ_IOMUXC_ECSPI1_MISO_GPIO5_IO8		0x41
17062306a36Sopenharmony_ci			/* MikroBus INT */
17162306a36Sopenharmony_ci			MX8MQ_IOMUXC_ECSPI1_SS0_GPIO5_IO9		0x41
17262306a36Sopenharmony_ci		>;
17362306a36Sopenharmony_ci	};
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci	pinctrl_i2c2: i2c2grp {
17662306a36Sopenharmony_ci		fsl,pins = <
17762306a36Sopenharmony_ci			MX8MQ_IOMUXC_I2C2_SCL_I2C2_SCL		0x4000007f
17862306a36Sopenharmony_ci			MX8MQ_IOMUXC_I2C2_SDA_I2C2_SDA		0x4000007f
17962306a36Sopenharmony_ci		>;
18062306a36Sopenharmony_ci	};
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ci	pinctrl_i2c3: i2c3grp {
18362306a36Sopenharmony_ci		fsl,pins = <
18462306a36Sopenharmony_ci			MX8MQ_IOMUXC_I2C3_SCL_I2C3_SCL		0x4000007f
18562306a36Sopenharmony_ci			MX8MQ_IOMUXC_I2C3_SDA_I2C3_SDA		0x4000007f
18662306a36Sopenharmony_ci		>;
18762306a36Sopenharmony_ci	};
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci	pinctrl_typec: typecgrp {
19062306a36Sopenharmony_ci		fsl,pins = <
19162306a36Sopenharmony_ci			MX8MQ_IOMUXC_NAND_RE_B_GPIO3_IO15	0x16
19262306a36Sopenharmony_ci			MX8MQ_IOMUXC_GPIO1_IO06_GPIO1_IO6	0x17059
19362306a36Sopenharmony_ci		>;
19462306a36Sopenharmony_ci	};
19562306a36Sopenharmony_ci
19662306a36Sopenharmony_ci	pinctrl_uart2: uart2grp {
19762306a36Sopenharmony_ci		fsl,pins = <
19862306a36Sopenharmony_ci			MX8MQ_IOMUXC_UART2_TXD_UART2_DCE_TX		0x49
19962306a36Sopenharmony_ci			MX8MQ_IOMUXC_UART2_RXD_UART2_DCE_RX		0x49
20062306a36Sopenharmony_ci		>;
20162306a36Sopenharmony_ci	};
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_ci	pinctrl_uart3: uart3grp {
20462306a36Sopenharmony_ci		fsl,pins = <
20562306a36Sopenharmony_ci			MX8MQ_IOMUXC_UART3_TXD_UART3_DCE_TX		0x49
20662306a36Sopenharmony_ci			MX8MQ_IOMUXC_UART3_RXD_UART3_DCE_RX		0x49
20762306a36Sopenharmony_ci			/*
20862306a36Sopenharmony_ci			 * These pins are by default GPIO on the Mikro Bus
20962306a36Sopenharmony_ci			 * Header. To use RTS/CTS on UART3 comment them out
21062306a36Sopenharmony_ci			 * of the hoggrp and enable them here
21162306a36Sopenharmony_ci			 */
21262306a36Sopenharmony_ci			/* MX8MQ_IOMUXC_ECSPI1_MISO_UART3_DCE_CTS_B	0x49 */
21362306a36Sopenharmony_ci			/* MX8MQ_IOMUXC_ECSPI1_SS0_UART3_DCE_RTS_B	0x49 */
21462306a36Sopenharmony_ci		>;
21562306a36Sopenharmony_ci	};
21662306a36Sopenharmony_ci
21762306a36Sopenharmony_ci	pinctrl_usdhc2_gpio: usdhc2gpiogrp {
21862306a36Sopenharmony_ci		fsl,pins = <
21962306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_CD_B_GPIO2_IO12	0x41
22062306a36Sopenharmony_ci		>;
22162306a36Sopenharmony_ci	};
22262306a36Sopenharmony_ci
22362306a36Sopenharmony_ci	pinctrl_usdhc2_vmmc: usdhc2vmmcgpiogrp {
22462306a36Sopenharmony_ci		fsl,pins = <
22562306a36Sopenharmony_ci			MX8MQ_IOMUXC_GPIO1_IO13_GPIO1_IO13	0x41
22662306a36Sopenharmony_ci		>;
22762306a36Sopenharmony_ci	};
22862306a36Sopenharmony_ci
22962306a36Sopenharmony_ci	pinctrl_usdhc2: usdhc2grp {
23062306a36Sopenharmony_ci		fsl,pins = <
23162306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK			0x83
23262306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD			0xc3
23362306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0		0xc3
23462306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1		0xc3
23562306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2		0xc3
23662306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3		0xc3
23762306a36Sopenharmony_ci			MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT		0xc1
23862306a36Sopenharmony_ci		>;
23962306a36Sopenharmony_ci	};
24062306a36Sopenharmony_ci
24162306a36Sopenharmony_ci	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
24262306a36Sopenharmony_ci		fsl,pins = <
24362306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK			0x8d
24462306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD			0xcd
24562306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0		0xcd
24662306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1		0xcd
24762306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2		0xcd
24862306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3		0xcd
24962306a36Sopenharmony_ci			MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT		0xc1
25062306a36Sopenharmony_ci		>;
25162306a36Sopenharmony_ci	};
25262306a36Sopenharmony_ci
25362306a36Sopenharmony_ci	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
25462306a36Sopenharmony_ci		fsl,pins = <
25562306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_CLK_USDHC2_CLK			0x9f
25662306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_CMD_USDHC2_CMD			0xdf
25762306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_DATA0_USDHC2_DATA0		0xdf
25862306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_DATA1_USDHC2_DATA1		0xdf
25962306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_DATA2_USDHC2_DATA2		0xdf
26062306a36Sopenharmony_ci			MX8MQ_IOMUXC_SD2_DATA3_USDHC2_DATA3		0xdf
26162306a36Sopenharmony_ci			MX8MQ_IOMUXC_GPIO1_IO04_USDHC2_VSELECT		0xc1
26262306a36Sopenharmony_ci		>;
26362306a36Sopenharmony_ci	};
26462306a36Sopenharmony_ci};
265