xref: /freebsd/sys/contrib/device-tree/src/arm64/freescale/imx8mm-iot-gateway.dts (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1*0e8011faSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*0e8011faSEmmanuel Vadot//
3*0e8011faSEmmanuel Vadot// Copyright 2020 CompuLab
4*0e8011faSEmmanuel Vadot
5*0e8011faSEmmanuel Vadot#include "imx8mm-ucm-som.dtsi"
6*0e8011faSEmmanuel Vadot#include <dt-bindings/phy/phy-imx8-pcie.h>
7*0e8011faSEmmanuel Vadot/ {
8*0e8011faSEmmanuel Vadot	model = "CompuLab i.MX8MM IoT Gateway";
9*0e8011faSEmmanuel Vadot	compatible = "compulab,imx8mm-iot-gateway", "compulab,imx8mm-ucm-som", "fsl,imx8mm";
10*0e8011faSEmmanuel Vadot
11*0e8011faSEmmanuel Vadot	regulator-usbhub-ena {
12*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
13*0e8011faSEmmanuel Vadot		regulator-name = "usbhub_ena";
14*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
15*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
16*0e8011faSEmmanuel Vadot		gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>;
17*0e8011faSEmmanuel Vadot		enable-active-high;
18*0e8011faSEmmanuel Vadot		regulator-always-on;
19*0e8011faSEmmanuel Vadot	};
20*0e8011faSEmmanuel Vadot
21*0e8011faSEmmanuel Vadot	regulator-usbhub-rst {
22*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
23*0e8011faSEmmanuel Vadot		regulator-name = "usbhub_rst";
24*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
25*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
26*0e8011faSEmmanuel Vadot		gpio = <&gpio3 24 GPIO_ACTIVE_HIGH>;
27*0e8011faSEmmanuel Vadot		enable-active-high;
28*0e8011faSEmmanuel Vadot		regulator-always-on;
29*0e8011faSEmmanuel Vadot	};
30*0e8011faSEmmanuel Vadot
31*0e8011faSEmmanuel Vadot	regulator-uart1-mode {
32*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
33*0e8011faSEmmanuel Vadot		regulator-name = "uart1_mode";
34*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
35*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
36*0e8011faSEmmanuel Vadot		gpio = <&gpio4 26 GPIO_ACTIVE_HIGH>;
37*0e8011faSEmmanuel Vadot		enable-active-high;
38*0e8011faSEmmanuel Vadot		regulator-always-on;
39*0e8011faSEmmanuel Vadot	};
40*0e8011faSEmmanuel Vadot
41*0e8011faSEmmanuel Vadot	regulator-uart1-duplex {
42*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
43*0e8011faSEmmanuel Vadot		regulator-name = "uart1_duplex";
44*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
45*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
46*0e8011faSEmmanuel Vadot		gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
47*0e8011faSEmmanuel Vadot		enable-active-high;
48*0e8011faSEmmanuel Vadot		regulator-always-on;
49*0e8011faSEmmanuel Vadot	};
50*0e8011faSEmmanuel Vadot
51*0e8011faSEmmanuel Vadot	regulator-uart1-shdn {
52*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
53*0e8011faSEmmanuel Vadot		regulator-name = "uart1_shdn";
54*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
55*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
56*0e8011faSEmmanuel Vadot		gpio = <&gpio5 5 GPIO_ACTIVE_HIGH>;
57*0e8011faSEmmanuel Vadot		enable-active-high;
58*0e8011faSEmmanuel Vadot		regulator-always-on;
59*0e8011faSEmmanuel Vadot	};
60*0e8011faSEmmanuel Vadot
61*0e8011faSEmmanuel Vadot	regulator-uart1-trmen {
62*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
63*0e8011faSEmmanuel Vadot		regulator-name = "uart1_trmen";
64*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
65*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
66*0e8011faSEmmanuel Vadot		gpio = <&gpio4 25 GPIO_ACTIVE_LOW>;
67*0e8011faSEmmanuel Vadot		regulator-always-on;
68*0e8011faSEmmanuel Vadot	};
69*0e8011faSEmmanuel Vadot
70*0e8011faSEmmanuel Vadot	regulator-usdhc2-v {
71*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
72*0e8011faSEmmanuel Vadot		regulator-name = "usdhc2_v";
73*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
74*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
75*0e8011faSEmmanuel Vadot		gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>;
76*0e8011faSEmmanuel Vadot		enable-active-high;
77*0e8011faSEmmanuel Vadot		regulator-always-on;
78*0e8011faSEmmanuel Vadot	};
79*0e8011faSEmmanuel Vadot
80*0e8011faSEmmanuel Vadot	regulator-mpcie2-rst {
81*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
82*0e8011faSEmmanuel Vadot		regulator-name = "mpcie2_rst";
83*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
84*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
85*0e8011faSEmmanuel Vadot		gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
86*0e8011faSEmmanuel Vadot		enable-active-high;
87*0e8011faSEmmanuel Vadot		regulator-always-on;
88*0e8011faSEmmanuel Vadot	};
89*0e8011faSEmmanuel Vadot
90*0e8011faSEmmanuel Vadot	regulator-mpcie2lora-dis {
91*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
92*0e8011faSEmmanuel Vadot		regulator-name = "mpcie2lora_dis";
93*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
94*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
95*0e8011faSEmmanuel Vadot		gpio = <&gpio3 21 GPIO_ACTIVE_HIGH>;
96*0e8011faSEmmanuel Vadot		enable-active-high;
97*0e8011faSEmmanuel Vadot		regulator-always-on;
98*0e8011faSEmmanuel Vadot	};
99*0e8011faSEmmanuel Vadot
100*0e8011faSEmmanuel Vadot	pcie0_refclk: clock-pcie0-refclk {
101*0e8011faSEmmanuel Vadot		compatible = "fixed-clock";
102*0e8011faSEmmanuel Vadot		#clock-cells = <0>;
103*0e8011faSEmmanuel Vadot		clock-frequency = <100000000>;
104*0e8011faSEmmanuel Vadot	};
105*0e8011faSEmmanuel Vadot};
106*0e8011faSEmmanuel Vadot
107*0e8011faSEmmanuel Vadot&i2c1 {
108*0e8011faSEmmanuel Vadot	clock-frequency = <100000>;
109*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
110*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pinctrl_i2c1>;
111*0e8011faSEmmanuel Vadot	status = "okay";
112*0e8011faSEmmanuel Vadot
113*0e8011faSEmmanuel Vadot	eeprom@54 {
114*0e8011faSEmmanuel Vadot		compatible = "atmel,24c08";
115*0e8011faSEmmanuel Vadot		reg = <0x54>;
116*0e8011faSEmmanuel Vadot		pagesize = <16>;
117*0e8011faSEmmanuel Vadot	};
118*0e8011faSEmmanuel Vadot};
119*0e8011faSEmmanuel Vadot
120*0e8011faSEmmanuel Vadot&ecspi1 {
121*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
122*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
123*0e8011faSEmmanuel Vadot	cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
124*0e8011faSEmmanuel Vadot	status = "okay";
125*0e8011faSEmmanuel Vadot};
126*0e8011faSEmmanuel Vadot
127*0e8011faSEmmanuel Vadot&pcie_phy {
128*0e8011faSEmmanuel Vadot	fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
129*0e8011faSEmmanuel Vadot	fsl,tx-deemph-gen1 = <0x2d>;
130*0e8011faSEmmanuel Vadot	fsl,tx-deemph-gen2 = <0xf>;
131*0e8011faSEmmanuel Vadot	fsl,clkreq-unsupported;
132*0e8011faSEmmanuel Vadot	clocks = <&pcie0_refclk>;
133*0e8011faSEmmanuel Vadot	clock-names = "ref";
134*0e8011faSEmmanuel Vadot	status = "okay";
135*0e8011faSEmmanuel Vadot};
136*0e8011faSEmmanuel Vadot
137*0e8011faSEmmanuel Vadot&pcie0 {
138*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
139*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pinctrl_pcie0>;
140*0e8011faSEmmanuel Vadot	reset-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>;
141*0e8011faSEmmanuel Vadot	status = "okay";
142*0e8011faSEmmanuel Vadot};
143*0e8011faSEmmanuel Vadot
144*0e8011faSEmmanuel Vadot&usbotg1 {
145*0e8011faSEmmanuel Vadot	dr_mode = "host";
146*0e8011faSEmmanuel Vadot	status = "okay";
147*0e8011faSEmmanuel Vadot};
148*0e8011faSEmmanuel Vadot
149*0e8011faSEmmanuel Vadot&usbotg2 {
150*0e8011faSEmmanuel Vadot	#address-cells = <1>;
151*0e8011faSEmmanuel Vadot	#size-cells = <0>;
152*0e8011faSEmmanuel Vadot	dr_mode = "host";
153*0e8011faSEmmanuel Vadot	usb-role-switch;
154*0e8011faSEmmanuel Vadot	status = "okay";
155*0e8011faSEmmanuel Vadot
156*0e8011faSEmmanuel Vadot	usbhub@1 {
157*0e8011faSEmmanuel Vadot		compatible = "usb424,9514";
158*0e8011faSEmmanuel Vadot		reg = <1>;
159*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
160*0e8011faSEmmanuel Vadot		pinctrl-0 = <&pinctrl_usb9514>;
161*0e8011faSEmmanuel Vadot		#address-cells = <1>;
162*0e8011faSEmmanuel Vadot		#size-cells = <0>;
163*0e8011faSEmmanuel Vadot
164*0e8011faSEmmanuel Vadot		ethernet: ethernet@1 {
165*0e8011faSEmmanuel Vadot			compatible = "usb424,ec00";
166*0e8011faSEmmanuel Vadot			reg = <1>;
167*0e8011faSEmmanuel Vadot		};
168*0e8011faSEmmanuel Vadot	};
169*0e8011faSEmmanuel Vadot};
170*0e8011faSEmmanuel Vadot
171*0e8011faSEmmanuel Vadot&usdhc2 {
172*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
173*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pinctrl_usdhc2>;
174*0e8011faSEmmanuel Vadot	bus-width = <4>;
175*0e8011faSEmmanuel Vadot	mmc-ddr-1_8v;
176*0e8011faSEmmanuel Vadot	non-removable;
177*0e8011faSEmmanuel Vadot	status = "okay";
178*0e8011faSEmmanuel Vadot};
179*0e8011faSEmmanuel Vadot
180*0e8011faSEmmanuel Vadot&iomuxc {
181*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
182*0e8011faSEmmanuel Vadot	pinctrl-0 = <&pinctrl_hog>;
183*0e8011faSEmmanuel Vadot
184*0e8011faSEmmanuel Vadot	pinctrl_hog: hoggrp {
185*0e8011faSEmmanuel Vadot		fsl,pins = <
186*0e8011faSEmmanuel Vadot			/* mPCIe2 */
187*0e8011faSEmmanuel Vadot			MX8MM_IOMUXC_SAI5_RXD0_GPIO3_IO21		0x140
188*0e8011faSEmmanuel Vadot			MX8MM_IOMUXC_SAI5_RXD1_GPIO3_IO22		0x140
189*0e8011faSEmmanuel Vadot		>;
190*0e8011faSEmmanuel Vadot	};
191*0e8011faSEmmanuel Vadot
192*0e8011faSEmmanuel Vadot	pinctrl_ecspi1: ecspi1grp {
193*0e8011faSEmmanuel Vadot		fsl,pins = <
194*0e8011faSEmmanuel Vadot			MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK		0x82
195*0e8011faSEmmanuel Vadot			MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI		0x82
196*0e8011faSEmmanuel Vadot			MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO		0x82
197*0e8011faSEmmanuel Vadot		>;
198*0e8011faSEmmanuel Vadot	};
199*0e8011faSEmmanuel Vadot
200*0e8011faSEmmanuel Vadot	pinctrl_ecspi1_cs: ecspi1csgrp {
201*0e8011faSEmmanuel Vadot		fsl,pins = <
202*0e8011faSEmmanuel Vadot			MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9		0x40000
203*0e8011faSEmmanuel Vadot		>;
204*0e8011faSEmmanuel Vadot	};
205*0e8011faSEmmanuel Vadot
206*0e8011faSEmmanuel Vadot	pinctrl_pcie0: pcie0grp {
207*0e8011faSEmmanuel Vadot		fsl,pins = <
208*0e8011faSEmmanuel Vadot			MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20		0x140
209*0e8011faSEmmanuel Vadot		>;
210*0e8011faSEmmanuel Vadot	};
211*0e8011faSEmmanuel Vadot
212*0e8011faSEmmanuel Vadot	pinctrl_usb9514: usb9514grp {
213*0e8011faSEmmanuel Vadot		fsl,pins = <
214*0e8011faSEmmanuel Vadot			MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28		0x140 /* USB_PS_EN */
215*0e8011faSEmmanuel Vadot			MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24		0x140 /* HUB_RSTn */
216*0e8011faSEmmanuel Vadot		>;
217*0e8011faSEmmanuel Vadot	};
218*0e8011faSEmmanuel Vadot};
219