1// SPDX-License-Identifier: GPL-2.0+ OR X11
2/*
3 * Copyright 2019 Toradex AG
4 */
5
6/dts-v1/;
7#include "imx7-colibri.dtsi"
8#include "imx7-colibri-u-boot.dtsi"
9
10/ {
11	model = "Toradex Colibri iMX7S/D";
12	compatible = "toradex,imx7-colibri", "fsl,imx7";
13
14	aliases {
15		display1 = &lcdif;
16		usb0 = &usbotg1; /* required for ums */
17	};
18
19	chosen {
20		stdout-path = &uart1;
21	};
22
23	reg_5v0: regulator-5v0 {
24		compatible = "regulator-fixed";
25		regulator-name = "5V";
26		regulator-min-microvolt = <5000000>;
27		regulator-max-microvolt = <5000000>;
28	};
29
30	reg_usbh_vbus: regulator-usbh-vbus {
31		compatible = "regulator-fixed";
32		pinctrl-names = "default";
33		pinctrl-0 = <&pinctrl_usbh_reg>;
34		regulator-name = "VCC_USB[1-4]";
35		regulator-min-microvolt = <5000000>;
36		regulator-max-microvolt = <5000000>;
37		gpio = <&gpio4 7 GPIO_ACTIVE_LOW>;
38		vin-supply = <&reg_5v0>;
39	};
40};
41
42&gpmi {
43	pinctrl-names = "default";
44	pinctrl-0 = <&pinctrl_gpmi_nand>;
45	fsl,use-minimum-ecc;
46	nand-on-flash-bbt;
47	nand-ecc-mode = "hw";
48	status = "okay";
49};
50
51&iomuxc {
52	pinctrl_gpmi_nand: gpmi-nand-grp {
53		fsl,pins = <
54			MX7D_PAD_SD3_CLK__NAND_CLE		0x71
55			MX7D_PAD_SD3_CMD__NAND_ALE		0x71
56			MX7D_PAD_SAI1_TX_BCLK__NAND_CE0_B	0x71
57			MX7D_PAD_SAI1_TX_DATA__NAND_READY_B	0x74
58			MX7D_PAD_SD3_STROBE__NAND_RE_B		0x71
59			MX7D_PAD_SD3_RESET_B__NAND_WE_B		0x71
60			MX7D_PAD_SD3_DATA0__NAND_DATA00		0x71
61			MX7D_PAD_SD3_DATA1__NAND_DATA01		0x71
62			MX7D_PAD_SD3_DATA2__NAND_DATA02		0x71
63			MX7D_PAD_SD3_DATA3__NAND_DATA03		0x71
64			MX7D_PAD_SD3_DATA4__NAND_DATA04		0x71
65			MX7D_PAD_SD3_DATA5__NAND_DATA05		0x71
66			MX7D_PAD_SD3_DATA6__NAND_DATA06		0x71
67			MX7D_PAD_SD3_DATA7__NAND_DATA07		0x71
68		>;
69	};
70
71	pinctrl_usbh_reg: gpio-usbh-vbus {
72		fsl,pins = <
73			MX7D_PAD_UART3_CTS_B__GPIO4_IO7	0x14
74		>;
75	};
76};
77
78/* Colibri USBC */
79&usbotg1 {
80	/*
81	 * usbotg1 on Colibri iMX7 can function in both host/otg modes.
82	 * Gadget stack currently does not look at this at all while
83	 * the host stack refuses to bind/load if it is not set to host
84	 * (it obviously won't be enumerated during usb start invocation
85	 * if dr_mode = "otg")
86	 */
87	dr_mode = "host";
88	status = "okay";
89};
90
91/* Colibri USBH */
92&usbotg2 {
93	dr_mode = "host";
94	vbus-supply = <&reg_usbh_vbus>;
95	status = "okay";
96};
97