162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2020 Krzysztof Kozlowski <krzk@kernel.org>
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci/dts-v1/;
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#include "imx8mm-var-som.dtsi"
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci/ {
1162306a36Sopenharmony_ci	model = "Variscite VAR-SOM-MX8MM Symphony evaluation board";
1262306a36Sopenharmony_ci	compatible = "variscite,var-som-mx8mm-symphony", "variscite,var-som-mx8mm", "fsl,imx8mm";
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci	reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
1562306a36Sopenharmony_ci		compatible = "regulator-fixed";
1662306a36Sopenharmony_ci		pinctrl-names = "default";
1762306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
1862306a36Sopenharmony_ci		regulator-name = "VSD_3V3";
1962306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
2062306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
2162306a36Sopenharmony_ci		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
2262306a36Sopenharmony_ci		enable-active-high;
2362306a36Sopenharmony_ci	};
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci	reg_usb_otg2_vbus: regulator-usb-otg2-vbus {
2662306a36Sopenharmony_ci		compatible = "regulator-fixed";
2762306a36Sopenharmony_ci		pinctrl-names = "default";
2862306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_reg_usb_otg2_vbus>;
2962306a36Sopenharmony_ci		regulator-name = "usb_otg2_vbus";
3062306a36Sopenharmony_ci		regulator-min-microvolt = <5000000>;
3162306a36Sopenharmony_ci		regulator-max-microvolt = <5000000>;
3262306a36Sopenharmony_ci		gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>;
3362306a36Sopenharmony_ci		enable-active-high;
3462306a36Sopenharmony_ci	};
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci	gpio-keys {
3762306a36Sopenharmony_ci		compatible = "gpio-keys";
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci		key-back {
4062306a36Sopenharmony_ci			label = "Back";
4162306a36Sopenharmony_ci			gpios = <&pca9534 1 GPIO_ACTIVE_LOW>;
4262306a36Sopenharmony_ci			linux,code = <KEY_BACK>;
4362306a36Sopenharmony_ci		};
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci		key-home {
4662306a36Sopenharmony_ci			label = "Home";
4762306a36Sopenharmony_ci			gpios = <&pca9534 2 GPIO_ACTIVE_LOW>;
4862306a36Sopenharmony_ci			linux,code = <KEY_HOME>;
4962306a36Sopenharmony_ci		};
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci		key-menu {
5262306a36Sopenharmony_ci			label = "Menu";
5362306a36Sopenharmony_ci			gpios = <&pca9534 3 GPIO_ACTIVE_LOW>;
5462306a36Sopenharmony_ci			linux,code = <KEY_MENU>;
5562306a36Sopenharmony_ci		};
5662306a36Sopenharmony_ci	};
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci	leds {
5962306a36Sopenharmony_ci		compatible = "gpio-leds";
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci		led {
6262306a36Sopenharmony_ci			label = "Heartbeat";
6362306a36Sopenharmony_ci			gpios = <&pca9534 0 GPIO_ACTIVE_LOW>;
6462306a36Sopenharmony_ci			linux,default-trigger = "heartbeat";
6562306a36Sopenharmony_ci		};
6662306a36Sopenharmony_ci	};
6762306a36Sopenharmony_ci};
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci&ethphy {
7062306a36Sopenharmony_ci	reset-gpios = <&pca9534 5 GPIO_ACTIVE_HIGH>;
7162306a36Sopenharmony_ci};
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci&i2c2 {
7462306a36Sopenharmony_ci	clock-frequency = <400000>;
7562306a36Sopenharmony_ci	pinctrl-names = "default";
7662306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_i2c2>;
7762306a36Sopenharmony_ci	status = "okay";
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci	pca9534: gpio@20 {
8062306a36Sopenharmony_ci		compatible = "nxp,pca9534";
8162306a36Sopenharmony_ci		reg = <0x20>;
8262306a36Sopenharmony_ci		gpio-controller;
8362306a36Sopenharmony_ci		pinctrl-names = "default";
8462306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_pca9534>;
8562306a36Sopenharmony_ci		interrupt-parent = <&gpio1>;
8662306a36Sopenharmony_ci		interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
8762306a36Sopenharmony_ci		#gpio-cells = <2>;
8862306a36Sopenharmony_ci		wakeup-source;
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci		/* USB 3.0 OTG (usbotg1) / SATA port switch, set to USB 3.0 */
9162306a36Sopenharmony_ci		usb3-sata-sel-hog {
9262306a36Sopenharmony_ci			gpio-hog;
9362306a36Sopenharmony_ci			gpios = <4 GPIO_ACTIVE_HIGH>;
9462306a36Sopenharmony_ci			output-low;
9562306a36Sopenharmony_ci			line-name = "usb3_sata_sel";
9662306a36Sopenharmony_ci		};
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci		som-vselect-hog {
9962306a36Sopenharmony_ci			gpio-hog;
10062306a36Sopenharmony_ci			gpios = <6 GPIO_ACTIVE_HIGH>;
10162306a36Sopenharmony_ci			output-low;
10262306a36Sopenharmony_ci			line-name = "som_vselect";
10362306a36Sopenharmony_ci		};
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci		enet-sel-hog {
10662306a36Sopenharmony_ci			gpio-hog;
10762306a36Sopenharmony_ci			gpios = <7 GPIO_ACTIVE_HIGH>;
10862306a36Sopenharmony_ci			output-low;
10962306a36Sopenharmony_ci			line-name = "enet_sel";
11062306a36Sopenharmony_ci		};
11162306a36Sopenharmony_ci	};
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci	extcon_usbotg1: typec@3d {
11462306a36Sopenharmony_ci		compatible = "nxp,ptn5150";
11562306a36Sopenharmony_ci		reg = <0x3d>;
11662306a36Sopenharmony_ci		interrupt-parent = <&gpio1>;
11762306a36Sopenharmony_ci		interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
11862306a36Sopenharmony_ci		pinctrl-names = "default";
11962306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_ptn5150>;
12062306a36Sopenharmony_ci		status = "okay";
12162306a36Sopenharmony_ci	};
12262306a36Sopenharmony_ci};
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci&i2c3 {
12562306a36Sopenharmony_ci	/* Capacitive touch controller */
12662306a36Sopenharmony_ci	ft5x06_ts: touchscreen@38 {
12762306a36Sopenharmony_ci		compatible = "edt,edt-ft5406";
12862306a36Sopenharmony_ci		reg = <0x38>;
12962306a36Sopenharmony_ci		pinctrl-names = "default";
13062306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_captouch>;
13162306a36Sopenharmony_ci		interrupt-parent = <&gpio5>;
13262306a36Sopenharmony_ci		interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci		touchscreen-size-x = <800>;
13562306a36Sopenharmony_ci		touchscreen-size-y = <480>;
13662306a36Sopenharmony_ci		touchscreen-inverted-x;
13762306a36Sopenharmony_ci		touchscreen-inverted-y;
13862306a36Sopenharmony_ci	};
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci	rtc@68 {
14162306a36Sopenharmony_ci		compatible = "dallas,ds1337";
14262306a36Sopenharmony_ci		reg = <0x68>;
14362306a36Sopenharmony_ci	};
14462306a36Sopenharmony_ci};
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ci/* Header */
14762306a36Sopenharmony_ci&uart1 {
14862306a36Sopenharmony_ci	pinctrl-names = "default";
14962306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_uart1>;
15062306a36Sopenharmony_ci	status = "okay";
15162306a36Sopenharmony_ci};
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci/* Header */
15462306a36Sopenharmony_ci&uart3 {
15562306a36Sopenharmony_ci	pinctrl-names = "default";
15662306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_uart3>;
15762306a36Sopenharmony_ci	status = "okay";
15862306a36Sopenharmony_ci};
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ci&usbotg1 {
16162306a36Sopenharmony_ci	disable-over-current;
16262306a36Sopenharmony_ci	extcon = <&extcon_usbotg1>, <&extcon_usbotg1>;
16362306a36Sopenharmony_ci};
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_ci&usbotg2 {
16662306a36Sopenharmony_ci	dr_mode = "host";
16762306a36Sopenharmony_ci	vbus-supply = <&reg_usb_otg2_vbus>;
16862306a36Sopenharmony_ci	srp-disable;
16962306a36Sopenharmony_ci	hnp-disable;
17062306a36Sopenharmony_ci	adp-disable;
17162306a36Sopenharmony_ci	disable-over-current;
17262306a36Sopenharmony_ci	/delete-property/ usb-role-switch;
17362306a36Sopenharmony_ci	/*
17462306a36Sopenharmony_ci	 * FIXME: having USB2 enabled hangs the boot just after:
17562306a36Sopenharmony_ci	 * [    1.943365] ci_hdrc ci_hdrc.1: EHCI Host Controller
17662306a36Sopenharmony_ci	 * [    1.948287] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
17762306a36Sopenharmony_ci	 * [    1.971006] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
17862306a36Sopenharmony_ci	 * [    1.977203] hub 1-0:1.0: USB hub found
17962306a36Sopenharmony_ci	 * [    1.980987] hub 1-0:1.0: 1 port detected
18062306a36Sopenharmony_ci	 */
18162306a36Sopenharmony_ci	status = "disabled";
18262306a36Sopenharmony_ci};
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ci&pinctrl_fec1 {
18562306a36Sopenharmony_ci	fsl,pins = <
18662306a36Sopenharmony_ci		MX8MM_IOMUXC_ENET_MDC_ENET1_MDC			0x3
18762306a36Sopenharmony_ci		MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO		0x3
18862306a36Sopenharmony_ci		MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3		0x1f
18962306a36Sopenharmony_ci		MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2		0x1f
19062306a36Sopenharmony_ci		MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1		0x1f
19162306a36Sopenharmony_ci		MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0		0x1f
19262306a36Sopenharmony_ci		MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3		0x91
19362306a36Sopenharmony_ci		MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2		0x91
19462306a36Sopenharmony_ci		MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1		0x91
19562306a36Sopenharmony_ci		MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0		0x91
19662306a36Sopenharmony_ci		MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC		0x1f
19762306a36Sopenharmony_ci		MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC		0x91
19862306a36Sopenharmony_ci		MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL	0x91
19962306a36Sopenharmony_ci		MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL	0x1f
20062306a36Sopenharmony_ci		/* Remove the MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9 as not used */
20162306a36Sopenharmony_ci	>;
20262306a36Sopenharmony_ci};
20362306a36Sopenharmony_ci
20462306a36Sopenharmony_ci&iomuxc {
20562306a36Sopenharmony_ci	pinctrl_captouch: captouchgrp {
20662306a36Sopenharmony_ci		fsl,pins = <
20762306a36Sopenharmony_ci			MX8MM_IOMUXC_SPDIF_RX_GPIO5_IO4		0x16
20862306a36Sopenharmony_ci		>;
20962306a36Sopenharmony_ci	};
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_ci	pinctrl_i2c2: i2c2grp {
21262306a36Sopenharmony_ci		fsl,pins = <
21362306a36Sopenharmony_ci			MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL		0x400001c3
21462306a36Sopenharmony_ci			MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA		0x400001c3
21562306a36Sopenharmony_ci		>;
21662306a36Sopenharmony_ci	};
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ci	pinctrl_pca9534: pca9534grp {
21962306a36Sopenharmony_ci		fsl,pins = <
22062306a36Sopenharmony_ci			MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7	0x16
22162306a36Sopenharmony_ci		>;
22262306a36Sopenharmony_ci	};
22362306a36Sopenharmony_ci
22462306a36Sopenharmony_ci	pinctrl_ptn5150: ptn5150grp {
22562306a36Sopenharmony_ci		fsl,pins = <
22662306a36Sopenharmony_ci			MX8MM_IOMUXC_GPIO1_IO11_GPIO1_IO11	0x16
22762306a36Sopenharmony_ci		>;
22862306a36Sopenharmony_ci	};
22962306a36Sopenharmony_ci
23062306a36Sopenharmony_ci	pinctrl_reg_usb_otg2_vbus: regusbotg2vbusgrp {
23162306a36Sopenharmony_ci		fsl,pins = <
23262306a36Sopenharmony_ci			MX8MM_IOMUXC_SAI3_TXD_GPIO5_IO1		0x16
23362306a36Sopenharmony_ci		>;
23462306a36Sopenharmony_ci	};
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ci	pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
23762306a36Sopenharmony_ci		fsl,pins = <
23862306a36Sopenharmony_ci			MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19	0x41
23962306a36Sopenharmony_ci		>;
24062306a36Sopenharmony_ci	};
24162306a36Sopenharmony_ci
24262306a36Sopenharmony_ci	pinctrl_uart1: uart1grp {
24362306a36Sopenharmony_ci		fsl,pins = <
24462306a36Sopenharmony_ci			MX8MM_IOMUXC_UART1_RXD_UART1_DCE_RX	0x140
24562306a36Sopenharmony_ci			MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX	0x140
24662306a36Sopenharmony_ci		>;
24762306a36Sopenharmony_ci	};
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_ci	pinctrl_uart3: uart3grp {
25062306a36Sopenharmony_ci		fsl,pins = <
25162306a36Sopenharmony_ci			MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX	0x140
25262306a36Sopenharmony_ci			MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX	0x140
25362306a36Sopenharmony_ci		>;
25462306a36Sopenharmony_ci	};
25562306a36Sopenharmony_ci};
256