177a1a182SFabio Estevam// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
277a1a182SFabio Estevam/*
377a1a182SFabio Estevam * Copyright 2022 Fabio Estevam <festevam@denx.de>
477a1a182SFabio Estevam */
577a1a182SFabio Estevam
677a1a182SFabio Estevam/dts-v1/;
777a1a182SFabio Estevam
877a1a182SFabio Estevam#include "imx8mm-tqma8mqml.dtsi"
977a1a182SFabio Estevam
1077a1a182SFabio Estevam/ {
1177a1a182SFabio Estevam	model = "Cloos i.MX8MM PHG board";
1277a1a182SFabio Estevam	compatible = "cloos,imx8mm-phg", "tq,imx8mm-tqma8mqml", "fsl,imx8mm";
1377a1a182SFabio Estevam
1477a1a182SFabio Estevam	aliases {
1577a1a182SFabio Estevam		mmc0 = &usdhc3;
1677a1a182SFabio Estevam		mmc1 = &usdhc2;
1777a1a182SFabio Estevam	};
1877a1a182SFabio Estevam
1977a1a182SFabio Estevam	chosen {
2077a1a182SFabio Estevam		stdout-path = &uart2;
2177a1a182SFabio Estevam	};
2277a1a182SFabio Estevam
2377a1a182SFabio Estevam	beeper {
2477a1a182SFabio Estevam		compatible = "gpio-beeper";
2577a1a182SFabio Estevam		pinctrl-0 = <&pinctrl_beeper>;
2677a1a182SFabio Estevam		gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
2777a1a182SFabio Estevam	};
2877a1a182SFabio Estevam
2977a1a182SFabio Estevam	leds {
3077a1a182SFabio Estevam		compatible = "gpio-leds";
3177a1a182SFabio Estevam		pinctrl-names = "default";
3277a1a182SFabio Estevam		pinctrl-0 = <&pinctrl_gpio_led>;
3377a1a182SFabio Estevam
3477a1a182SFabio Estevam		led-0 {
3577a1a182SFabio Estevam			label = "status1";
3677a1a182SFabio Estevam			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
3777a1a182SFabio Estevam		};
3877a1a182SFabio Estevam
3977a1a182SFabio Estevam		led-1 {
4077a1a182SFabio Estevam			label = "status2";
4177a1a182SFabio Estevam			gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
4277a1a182SFabio Estevam		};
4377a1a182SFabio Estevam
4477a1a182SFabio Estevam		led-2 {
4577a1a182SFabio Estevam			label = "status3";
4677a1a182SFabio Estevam			gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
4777a1a182SFabio Estevam		};
4877a1a182SFabio Estevam
4977a1a182SFabio Estevam		led-3 {
5077a1a182SFabio Estevam			label = "run";
5177a1a182SFabio Estevam			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
5277a1a182SFabio Estevam		};
5377a1a182SFabio Estevam
5477a1a182SFabio Estevam		led-4 {
5577a1a182SFabio Estevam			label = "powerled";
5677a1a182SFabio Estevam			gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
5777a1a182SFabio Estevam		};
5877a1a182SFabio Estevam	};
5977a1a182SFabio Estevam
6077a1a182SFabio Estevam	reg_usb_otg_vbus: regulator-usb-otg-vbus {
6177a1a182SFabio Estevam		compatible = "regulator-fixed";
6277a1a182SFabio Estevam		pinctrl-names = "default";
6377a1a182SFabio Estevam		pinctrl-0 = <&pinctrl_otg_vbus_ctrl>;
6477a1a182SFabio Estevam		regulator-name = "usb_otg_vbus";
6577a1a182SFabio Estevam		regulator-min-microvolt = <5000000>;
6677a1a182SFabio Estevam		regulator-max-microvolt = <5000000>;
6777a1a182SFabio Estevam		gpio = <&gpio2 2 GPIO_ACTIVE_HIGH>;
6877a1a182SFabio Estevam		enable-active-high;
6977a1a182SFabio Estevam	};
7077a1a182SFabio Estevam
7177a1a182SFabio Estevam	reg_usdhc2_vmmc: regulator-vmmc {
7277a1a182SFabio Estevam		compatible = "regulator-fixed";
7377a1a182SFabio Estevam		pinctrl-names = "default";
7477a1a182SFabio Estevam		pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
7577a1a182SFabio Estevam		regulator-name = "VSD_3V3";
7677a1a182SFabio Estevam		regulator-min-microvolt = <3300000>;
7777a1a182SFabio Estevam		regulator-max-microvolt = <3300000>;
7877a1a182SFabio Estevam		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
7977a1a182SFabio Estevam		enable-active-high;
8077a1a182SFabio Estevam		startup-delay-us = <100>;
8177a1a182SFabio Estevam		off-on-delay-us = <12000>;
8277a1a182SFabio Estevam	};
83*3f898456SFabio Estevam
84*3f898456SFabio Estevam	panel {
85*3f898456SFabio Estevam		compatible = "panel-lvds";
86*3f898456SFabio Estevam		width-mm = <170>;
87*3f898456SFabio Estevam		height-mm = <28>;
88*3f898456SFabio Estevam		data-mapping = "jeida-18";
89*3f898456SFabio Estevam
90*3f898456SFabio Estevam		panel-timing {
91*3f898456SFabio Estevam			clock-frequency = <49500000>;
92*3f898456SFabio Estevam			hactive = <800>;
93*3f898456SFabio Estevam			hback-porch = <48>;
94*3f898456SFabio Estevam			hfront-porch = <312>;
95*3f898456SFabio Estevam			hsync-len = <40>;
96*3f898456SFabio Estevam			vactive = <600>;
97*3f898456SFabio Estevam			vback-porch = <19>;
98*3f898456SFabio Estevam			vfront-porch = <61>;
99*3f898456SFabio Estevam			vsync-len = <20>;
100*3f898456SFabio Estevam			hsync-active = <0>;
101*3f898456SFabio Estevam			vsync-active = <0>;
102*3f898456SFabio Estevam			de-active = <1>;
103*3f898456SFabio Estevam			pixelclk-active = <1>;
104*3f898456SFabio Estevam		};
105*3f898456SFabio Estevam
106*3f898456SFabio Estevam		port {
107*3f898456SFabio Estevam			panel_out_bridge: endpoint {
108*3f898456SFabio Estevam				remote-endpoint = <&bridge_out_panel>;
109*3f898456SFabio Estevam			};
110*3f898456SFabio Estevam		};
111*3f898456SFabio Estevam	};
11277a1a182SFabio Estevam};
11377a1a182SFabio Estevam
11477a1a182SFabio Estevam&ecspi1 {
11577a1a182SFabio Estevam	pinctrl-names = "default";
11677a1a182SFabio Estevam	pinctrl-0 = <&pinctrl_ecspi1>;
11777a1a182SFabio Estevam	cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
11877a1a182SFabio Estevam	status = "okay";
11977a1a182SFabio Estevam};
12077a1a182SFabio Estevam
12177a1a182SFabio Estevam&fec1 {
12277a1a182SFabio Estevam	pinctrl-names = "default";
12377a1a182SFabio Estevam	pinctrl-0 = <&pinctrl_fec1>;
12477a1a182SFabio Estevam	phy-mode = "rgmii-id";
12577a1a182SFabio Estevam	phy-handle = <&ethphy0>;
12677a1a182SFabio Estevam	fsl,magic-packet;
12777a1a182SFabio Estevam	status = "okay";
12877a1a182SFabio Estevam
12977a1a182SFabio Estevam	mdio {
13077a1a182SFabio Estevam		#address-cells = <1>;
13177a1a182SFabio Estevam		#size-cells = <0>;
13277a1a182SFabio Estevam
13377a1a182SFabio Estevam		ethphy0: ethernet-phy@0 {
13477a1a182SFabio Estevam			reg = <0>;
13577a1a182SFabio Estevam			compatible = "ethernet-phy-ieee802.3-c22";
13677a1a182SFabio Estevam		};
13777a1a182SFabio Estevam	};
13877a1a182SFabio Estevam};
13977a1a182SFabio Estevam
14077a1a182SFabio Estevam&i2c2 {
14177a1a182SFabio Estevam	clock-frequency = <100000>;
14277a1a182SFabio Estevam	pinctrl-names = "default";
14377a1a182SFabio Estevam	pinctrl-0 = <&pinctrl_i2c2>;
14477a1a182SFabio Estevam	status = "okay";
145*3f898456SFabio Estevam
146*3f898456SFabio Estevam	bridge@2c {
147*3f898456SFabio Estevam		compatible = "ti,sn65dsi83";
148*3f898456SFabio Estevam		reg = <0x2c>;
149*3f898456SFabio Estevam		enable-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
150*3f898456SFabio Estevam		pinctrl-names = "default";
151*3f898456SFabio Estevam		pinctrl-0 = <&pinctrl_dsi_bridge>;
152*3f898456SFabio Estevam
153*3f898456SFabio Estevam		ports {
154*3f898456SFabio Estevam			#address-cells = <1>;
155*3f898456SFabio Estevam			#size-cells = <0>;
156*3f898456SFabio Estevam
157*3f898456SFabio Estevam			port@0 {
158*3f898456SFabio Estevam				reg = <0>;
159*3f898456SFabio Estevam
160*3f898456SFabio Estevam				bridge_in_dsi: endpoint {
161*3f898456SFabio Estevam					remote-endpoint = <&dsi_out_bridge>;
162*3f898456SFabio Estevam					data-lanes = <1 2 3 4>;
16377a1a182SFabio Estevam				};
164*3f898456SFabio Estevam			};
165*3f898456SFabio Estevam
166*3f898456SFabio Estevam			port@2 {
167*3f898456SFabio Estevam				reg = <2>;
168*3f898456SFabio Estevam
169*3f898456SFabio Estevam				bridge_out_panel: endpoint {
170*3f898456SFabio Estevam					remote-endpoint = <&panel_out_bridge>;
171*3f898456SFabio Estevam				};
172*3f898456SFabio Estevam			};
173*3f898456SFabio Estevam		};
174*3f898456SFabio Estevam	};
175*3f898456SFabio Estevam};
176*3f898456SFabio Estevam
177*3f898456SFabio Estevam&lcdif {
178*3f898456SFabio Estevam	status = "okay";
179*3f898456SFabio Estevam};
180*3f898456SFabio Estevam
181*3f898456SFabio Estevam&mipi_dsi {
182*3f898456SFabio Estevam	samsung,esc-clock-frequency = <10000000>;
183*3f898456SFabio Estevam	status = "okay";
184*3f898456SFabio Estevam
185*3f898456SFabio Estevam	ports {
186*3f898456SFabio Estevam		port@1 {
187*3f898456SFabio Estevam			reg = <1>;
188*3f898456SFabio Estevam
189*3f898456SFabio Estevam			dsi_out_bridge: endpoint {
190*3f898456SFabio Estevam				data-lanes = <1 2>;
191*3f898456SFabio Estevam				lane-polarities = <1 0 0 0 0>;
192*3f898456SFabio Estevam				remote-endpoint = <&bridge_in_dsi>;
193*3f898456SFabio Estevam			};
194*3f898456SFabio Estevam		};
195*3f898456SFabio Estevam	};
196*3f898456SFabio Estevam};
197*3f898456SFabio Estevam
19877a1a182SFabio Estevam
19977a1a182SFabio Estevam&uart2 {
20077a1a182SFabio Estevam	pinctrl-names = "default";
20177a1a182SFabio Estevam	pinctrl-0 = <&pinctrl_uart2>;
20277a1a182SFabio Estevam	status = "okay";
20377a1a182SFabio Estevam};
20477a1a182SFabio Estevam
20577a1a182SFabio Estevam&usbphynop1 {
20677a1a182SFabio Estevam	power-domains = <&pgc_otg1>;
20777a1a182SFabio Estevam};
20877a1a182SFabio Estevam
20977a1a182SFabio Estevam&usbphynop2 {
21077a1a182SFabio Estevam	power-domains = <&pgc_otg2>;
21177a1a182SFabio Estevam};
21277a1a182SFabio Estevam
21377a1a182SFabio Estevam&usbotg1 {
21477a1a182SFabio Estevam	dr_mode = "host";
21577a1a182SFabio Estevam	vbus-supply = <&reg_usb_otg_vbus>;
21677a1a182SFabio Estevam	status = "okay";
21777a1a182SFabio Estevam};
21877a1a182SFabio Estevam
21977a1a182SFabio Estevam&usbotg2 {
22077a1a182SFabio Estevam	dr_mode = "host";
22177a1a182SFabio Estevam	status = "okay";
22277a1a182SFabio Estevam};
22377a1a182SFabio Estevam
22477a1a182SFabio Estevam&usdhc2 {
22577a1a182SFabio Estevam	assigned-clocks = <&clk IMX8MM_CLK_USDHC2>;
22677a1a182SFabio Estevam	assigned-clock-rates = <400000000>;
22777a1a182SFabio Estevam	assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_400M>;
22877a1a182SFabio Estevam	pinctrl-names = "default", "state_100mhz", "state_200mhz";
22977a1a182SFabio Estevam	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
23077a1a182SFabio Estevam	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
23177a1a182SFabio Estevam	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
23277a1a182SFabio Estevam	bus-width = <4>;
23377a1a182SFabio Estevam	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
23477a1a182SFabio Estevam	disable-wp;
23577a1a182SFabio Estevam	no-mmc;
23677a1a182SFabio Estevam	no-sdio;
23777a1a182SFabio Estevam	sd-uhs-sdr104;
23877a1a182SFabio Estevam	sd-uhs-ddr50;
23977a1a182SFabio Estevam	vmmc-supply = <&reg_usdhc2_vmmc>;
24077a1a182SFabio Estevam	status = "okay";
24177a1a182SFabio Estevam};
24277a1a182SFabio Estevam
24377a1a182SFabio Estevam&iomuxc {
24477a1a182SFabio Estevam	pinctrl_beeper: beepergrp {
24577a1a182SFabio Estevam		fsl,pins = <
24677a1a182SFabio Estevam			MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0		0x19
24777a1a182SFabio Estevam		>;
24877a1a182SFabio Estevam	};
24977a1a182SFabio Estevam
250*3f898456SFabio Estevam	pinctrl_dsi_bridge: dsibridgeggrp {
251*3f898456SFabio Estevam		fsl,pins = <
252*3f898456SFabio Estevam			MX8MM_IOMUXC_SD1_DATA1_GPIO2_IO3		0x19
253*3f898456SFabio Estevam		>;
254*3f898456SFabio Estevam	};
255*3f898456SFabio Estevam
25677a1a182SFabio Estevam	pinctrl_ecspi1: ecspi1grp {
25777a1a182SFabio Estevam		fsl,pins = <
25877a1a182SFabio Estevam			MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO		0x82
25977a1a182SFabio Estevam			MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI		0x82
26077a1a182SFabio Estevam			MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK		0x82
26177a1a182SFabio Estevam			MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9		0x19
26277a1a182SFabio Estevam		>;
26377a1a182SFabio Estevam	};
26477a1a182SFabio Estevam
26577a1a182SFabio Estevam	pinctrl_fec1: fec1grp {
26677a1a182SFabio Estevam		fsl,pins = <
26777a1a182SFabio Estevam			MX8MM_IOMUXC_ENET_MDC_ENET1_MDC		0x40000002
26877a1a182SFabio Estevam			MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO		0x40000002
26977a1a182SFabio Estevam			MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3		0x14
27077a1a182SFabio Estevam			MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2		0x14
27177a1a182SFabio Estevam			MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1		0x14
27277a1a182SFabio Estevam			MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0		0x14
27377a1a182SFabio Estevam			MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3		0x90
27477a1a182SFabio Estevam			MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2		0x90
27577a1a182SFabio Estevam			MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1		0x90
27677a1a182SFabio Estevam			MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0		0x90
27777a1a182SFabio Estevam			MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC		0x14
27877a1a182SFabio Estevam			MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC		0x90
27977a1a182SFabio Estevam			MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL	0x90
28077a1a182SFabio Estevam			MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL	0x14
28177a1a182SFabio Estevam			MX8MM_IOMUXC_SAI2_RXC_GPIO4_IO22		0x10
28277a1a182SFabio Estevam		>;
28377a1a182SFabio Estevam	};
28477a1a182SFabio Estevam
28577a1a182SFabio Estevam	pinctrl_gpio_led: gpioledgrp {
28677a1a182SFabio Estevam		fsl,pins = <
28777a1a182SFabio Estevam			MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10		0x19
28877a1a182SFabio Estevam			MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3		0x19
28977a1a182SFabio Estevam			MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6		0x19
29077a1a182SFabio Estevam			MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7		0x19
29177a1a182SFabio Estevam			MX8MM_IOMUXC_GPIO1_IO01_GPIO1_IO1		0x19
29277a1a182SFabio Estevam		>;
29377a1a182SFabio Estevam	};
29477a1a182SFabio Estevam
29577a1a182SFabio Estevam	pinctrl_i2c2: i2c2grp {
29677a1a182SFabio Estevam		fsl,pins = <
29777a1a182SFabio Estevam			MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL		0x400001c3
29877a1a182SFabio Estevam			MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA		0x400001c3
29977a1a182SFabio Estevam		>;
30077a1a182SFabio Estevam	};
30177a1a182SFabio Estevam
30277a1a182SFabio Estevam	pinctrl_otg_vbus_ctrl: otgvbusctrlgrp {
30377a1a182SFabio Estevam		fsl,pins = <
30477a1a182SFabio Estevam			MX8MM_IOMUXC_SD1_DATA0_GPIO2_IO2		0x119
30577a1a182SFabio Estevam		>;
30677a1a182SFabio Estevam	};
30777a1a182SFabio Estevam
30877a1a182SFabio Estevam	pinctrl_uart2: uart2grp {
30977a1a182SFabio Estevam		fsl,pins = <
31077a1a182SFabio Estevam			MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX		0x140
31177a1a182SFabio Estevam			MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX		0x140
31277a1a182SFabio Estevam		>;
31377a1a182SFabio Estevam	};
31477a1a182SFabio Estevam
31577a1a182SFabio Estevam	pinctrl_usdhc2_gpio: usdhc2grpgpiogrp {
31677a1a182SFabio Estevam		fsl,pins = <
31777a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12		0x1c4
31877a1a182SFabio Estevam		>;
31977a1a182SFabio Estevam	};
32077a1a182SFabio Estevam
32177a1a182SFabio Estevam	pinctrl_usdhc2: usdhc2grp {
32277a1a182SFabio Estevam		fsl,pins = <
32377a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK		0x190
32477a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d0
32577a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0		0x1d0
32677a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1		0x1d0
32777a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2		0x1d0
32877a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3		0x1d0
32977a1a182SFabio Estevam		>;
33077a1a182SFabio Estevam	};
33177a1a182SFabio Estevam
33277a1a182SFabio Estevam	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
33377a1a182SFabio Estevam		fsl,pins = <
33477a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK		0x194
33577a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d4
33677a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0		0x1d4
33777a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1		0x1d4
33877a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2		0x1d4
33977a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3		0x1d4
34077a1a182SFabio Estevam		>;
34177a1a182SFabio Estevam	};
34277a1a182SFabio Estevam
34377a1a182SFabio Estevam	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
34477a1a182SFabio Estevam		fsl,pins = <
34577a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK		0x196
34677a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d6
34777a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0		0x1d6
34877a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1		0x1d6
34977a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2		0x1d6
35077a1a182SFabio Estevam			MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3		0x1d6
35177a1a182SFabio Estevam		>;
35277a1a182SFabio Estevam	};
35377a1a182SFabio Estevam};
354