• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright 2020 Gateworks Corporation
4 */
5
6#include <dt-bindings/gpio/gpio.h>
7#include <dt-bindings/leds/common.h>
8
9/ {
10	aliases {
11		usb0 = &usbotg1;
12		usb1 = &usbotg2;
13	};
14
15	led-controller {
16		compatible = "gpio-leds";
17		pinctrl-names = "default";
18		pinctrl-0 = <&pinctrl_gpio_leds>;
19
20		led-0 {
21			function = LED_FUNCTION_STATUS;
22			color = <LED_COLOR_ID_GREEN>;
23			gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>;
24			default-state = "on";
25			linux,default-trigger = "heartbeat";
26		};
27
28		led-1 {
29			function = LED_FUNCTION_STATUS;
30			color = <LED_COLOR_ID_RED>;
31			gpios = <&gpio5 4 GPIO_ACTIVE_HIGH>;
32			default-state = "off";
33		};
34	};
35
36	pps {
37		compatible = "pps-gpio";
38		pinctrl-names = "default";
39		pinctrl-0 = <&pinctrl_pps>;
40		gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
41		status = "okay";
42	};
43
44	reg_3p3v: regulator-3p3v {
45		compatible = "regulator-fixed";
46		regulator-name = "3P3V";
47		regulator-min-microvolt = <3300000>;
48		regulator-max-microvolt = <3300000>;
49		regulator-always-on;
50	};
51
52	reg_usb_otg1_vbus: regulator-usb-otg1 {
53		pinctrl-names = "default";
54		pinctrl-0 = <&pinctrl_reg_usb1_en>;
55		compatible = "regulator-fixed";
56		regulator-name = "usb_otg1_vbus";
57		gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
58		enable-active-high;
59		regulator-min-microvolt = <5000000>;
60		regulator-max-microvolt = <5000000>;
61	};
62
63	reg_usb_otg2_vbus: regulator-usb-otg2 {
64		pinctrl-names = "default";
65		pinctrl-0 = <&pinctrl_reg_usb2_en>;
66		compatible = "regulator-fixed";
67		regulator-name = "usb_otg2_vbus";
68		gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>;
69		enable-active-high;
70		regulator-min-microvolt = <5000000>;
71		regulator-max-microvolt = <5000000>;
72	};
73};
74
75/* off-board header */
76&ecspi2 {
77	pinctrl-names = "default";
78	pinctrl-0 = <&pinctrl_spi2>;
79	cs-gpios = <&gpio5 13 GPIO_ACTIVE_HIGH>;
80	status = "okay";
81};
82
83&i2c2 {
84	clock-frequency = <400000>;
85	pinctrl-names = "default";
86	pinctrl-0 = <&pinctrl_i2c2>;
87	status = "okay";
88
89	accelerometer@19 {
90		pinctrl-names = "default";
91		pinctrl-0 = <&pinctrl_accel>;
92		compatible = "st,lis2de12";
93		reg = <0x19>;
94		st,drdy-int-pin = <1>;
95		interrupt-parent = <&gpio4>;
96		interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
97		interrupt-names = "INT1";
98	};
99};
100
101/* off-board header */
102&i2c3 {
103	clock-frequency = <400000>;
104	pinctrl-names = "default";
105	pinctrl-0 = <&pinctrl_i2c3>;
106	status = "okay";
107};
108
109/* off-board header */
110&sai3 {
111	pinctrl-names = "default";
112	pinctrl-0 = <&pinctrl_sai3>;
113	assigned-clocks = <&clk IMX8MM_CLK_SAI3>;
114	assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
115	assigned-clock-rates = <24576000>;
116	status = "okay";
117};
118
119/* GPS */
120&uart1 {
121	pinctrl-names = "default";
122	pinctrl-0 = <&pinctrl_uart1>;
123	status = "okay";
124};
125
126/* off-board header */
127&uart3 {
128	pinctrl-names = "default";
129	pinctrl-0 = <&pinctrl_uart3>;
130	status = "okay";
131};
132
133/* RS232 */
134&uart4 {
135	pinctrl-names = "default";
136	pinctrl-0 = <&pinctrl_uart4>;
137	status = "okay";
138};
139
140&usbotg1 {
141	dr_mode = "otg";
142	over-current-active-low;
143	vbus-supply = <&reg_usb_otg1_vbus>;
144	status = "okay";
145};
146
147&usbotg2 {
148	dr_mode = "host";
149	disable-over-current;
150	vbus-supply = <&reg_usb_otg2_vbus>;
151	status = "okay";
152};
153
154/* microSD */
155&usdhc2 {
156	pinctrl-names = "default", "state_100mhz", "state_200mhz";
157	pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
158	pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
159	pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
160	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
161	bus-width = <4>;
162	vmmc-supply = <&reg_3p3v>;
163	status = "okay";
164};
165
166&iomuxc {
167	pinctrl-names = "default";
168	pinctrl-0 = <&pinctrl_hog>;
169
170	pinctrl_hog: hoggrp {
171		fsl,pins = <
172			MX8MM_IOMUXC_SPDIF_TX_GPIO5_IO3		0x40000041 /* PLUG_TEST */
173			MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6	0x40000041 /* PCI_USBSEL */
174			MX8MM_IOMUXC_SAI1_RXD5_GPIO4_IO7	0x40000041 /* PCIE_WDIS# */
175			MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7	0x40000041 /* DIO0 */
176			MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9	0x40000041 /* DIO1 */
177			MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0	0x40000104 /* RS485_TERM */
178			MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0	0x40000104 /* RS485 */
179			MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2	0x40000104 /* RS485_HALF */
180		>;
181	};
182
183	pinctrl_accel: accelgrp {
184		fsl,pins = <
185			MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5	0x159
186		>;
187	};
188
189	pinctrl_gpio_leds: gpioledgrp {
190		fsl,pins = <
191			MX8MM_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5	0x19
192			MX8MM_IOMUXC_SPDIF_RX_GPIO5_IO4		0x19
193		>;
194	};
195
196	pinctrl_i2c3: i2c3grp {
197		fsl,pins = <
198			MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL		0x400001c3
199			MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA		0x400001c3
200		>;
201	};
202
203	pinctrl_pps: ppsgrp {
204		fsl,pins = <
205			MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15	0x41
206		>;
207	};
208
209	pinctrl_reg_usb1_en: regusb1grp {
210		fsl,pins = <
211			MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12	0x41
212			MX8MM_IOMUXC_GPIO1_IO13_USB1_OTG_OC	0x41
213		>;
214	};
215
216	pinctrl_reg_usb2_en: regusb2grp {
217		fsl,pins = <
218			MX8MM_IOMUXC_GPIO1_IO08_GPIO1_IO8	0x41
219		>;
220	};
221
222	pinctrl_sai3: sai3grp {
223		fsl,pins = <
224			MX8MM_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC     0xd6
225			MX8MM_IOMUXC_SAI3_TXC_SAI3_TX_BCLK      0xd6
226			MX8MM_IOMUXC_SAI3_MCLK_SAI3_MCLK        0xd6
227			MX8MM_IOMUXC_SAI3_TXD_SAI3_TX_DATA0     0xd6
228			MX8MM_IOMUXC_SAI3_RXD_SAI3_RX_DATA0	0xd6
229		>;
230	};
231
232	pinctrl_spi2: spi2grp {
233		fsl,pins = <
234			MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK	0xd6
235			MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI	0xd6
236			MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO	0xd6
237			MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13	0xd6
238		>;
239	};
240
241	pinctrl_uart1: uart1grp {
242		fsl,pins = <
243			MX8MM_IOMUXC_UART1_RXD_UART1_DCE_RX	0x140
244			MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX	0x140
245		>;
246	};
247
248	pinctrl_uart3: uart3grp {
249		fsl,pins = <
250			MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX	0x140
251			MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX	0x140
252		>;
253	};
254
255	pinctrl_uart4: uart4grp {
256		fsl,pins = <
257			MX8MM_IOMUXC_UART4_RXD_UART4_DCE_RX	0x140
258			MX8MM_IOMUXC_UART4_TXD_UART4_DCE_TX	0x140
259		>;
260	};
261
262	pinctrl_usdhc1: usdhc1grp {
263		fsl,pins = <
264			MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK		0x190
265			MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD		0x1d0
266			MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0	0x1d0
267			MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1	0x1d0
268			MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2	0x1d0
269			MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3	0x1d0
270		>;
271	};
272
273	pinctrl_usdhc2: usdhc2grp {
274		fsl,pins = <
275			MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK		0x190
276			MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d0
277			MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d0
278			MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d0
279			MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d0
280			MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d0
281		>;
282	};
283
284	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
285		fsl,pins = <
286			MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK		0x194
287			MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d4
288			MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d4
289			MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d4
290			MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d4
291			MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d4
292		>;
293	};
294
295	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
296		fsl,pins = <
297			MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK		0x196
298			MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD		0x1d6
299			MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0	0x1d6
300			MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1	0x1d6
301			MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2	0x1d6
302			MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3	0x1d6
303		>;
304	};
305
306	pinctrl_usdhc2_gpio: usdhc2gpiogrp {
307		fsl,pins = <
308			MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12	0x1c4
309			MX8MM_IOMUXC_SD2_RESET_B_USDHC2_RESET_B	0x1d0
310			MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT	0x1d0
311		>;
312	};
313};
314