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 iMX7D 1GB (eMMC)";
12	compatible = "toradex,imx7d-colibri-emmc", "fsl,imx7d";
13
14	aliases {
15		mmc0 = &usdhc3;
16		mmc1 = &usdhc1;
17		display1 = &lcdif;
18		usb0 = &usbotg1; /* required for ums */
19	};
20
21	chosen {
22		stdout-path = &uart1;
23	};
24
25	reg_5v0: regulator-5v0 {
26		compatible = "regulator-fixed";
27		regulator-name = "5V";
28		regulator-min-microvolt = <5000000>;
29		regulator-max-microvolt = <5000000>;
30	};
31
32	reg_usbh_vbus: regulator-usbh-vbus {
33		compatible = "regulator-fixed";
34		pinctrl-names = "default";
35		pinctrl-0 = <&pinctrl_usbh_reg>;
36		regulator-name = "VCC_USB[1-4]";
37		regulator-min-microvolt = <5000000>;
38		regulator-max-microvolt = <5000000>;
39		gpio = <&gpio4 7 GPIO_ACTIVE_LOW>;
40		vin-supply = <&reg_5v0>;
41	};
42};
43
44&usdhc3 {
45	pinctrl-names = "default";
46	pinctrl-0 = <&pinctrl_usdhc3>;
47	bus-width = <8>;
48	non-removable;
49	status = "okay";
50};
51
52&iomuxc {
53	pinctrl_usdhc3: usdhc3grp {
54		fsl,pins = <
55			MX7D_PAD_SD3_CMD__SD3_CMD		0x59
56			MX7D_PAD_SD3_CLK__SD3_CLK		0x19
57			MX7D_PAD_SD3_DATA0__SD3_DATA0		0x59
58			MX7D_PAD_SD3_DATA1__SD3_DATA1		0x59
59			MX7D_PAD_SD3_DATA2__SD3_DATA2		0x59
60			MX7D_PAD_SD3_DATA3__SD3_DATA3		0x59
61			MX7D_PAD_SD3_DATA4__SD3_DATA4		0x59
62			MX7D_PAD_SD3_DATA5__SD3_DATA5		0x59
63			MX7D_PAD_SD3_DATA6__SD3_DATA6		0x59
64			MX7D_PAD_SD3_DATA7__SD3_DATA7		0x59
65			MX7D_PAD_SD3_STROBE__SD3_STROBE         0x19
66		>;
67	};
68
69	pinctrl_usbh_reg: gpio-usbh-vbus {
70		fsl,pins = <
71			MX7D_PAD_UART3_CTS_B__GPIO4_IO7	0x14
72		>;
73	};
74};
75
76/* Colibri USBC */
77&usbotg1 {
78	/*
79	 * usbotg1 on Colibri iMX7 can function in both host/otg modes.
80	 * Gadget stack currently does not look at this at all while
81	 * the host stack refuses to bind/load if it is not set to host
82	 * (it obviously won't be enumerated during usb start invocation
83	 * if dr_mode = "otg")
84	 */
85	dr_mode = "host";
86	status = "okay";
87};
88
89/* Colibri USBH */
90&usbotg2 {
91	dr_mode = "host";
92	vbus-supply = <&reg_usbh_vbus>;
93	status = "okay";
94};
95