xref: /linux/arch/arm64/boot/dts/freescale/imx8mn-tqma8mqnl-mba8mx-usbotg.dtso (revision 7f71507851fc7764b36a3221839607d3a45c2025)
1// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
2/*
3 * Copyright (c) 2022-2024 TQ-Systems GmbH <linux@ew.tq-group.com>,
4 * D-82229 Seefeld, Germany.
5 * Author: Alexander Stein
6 */
7
8/dts-v1/;
9/plugin/;
10
11#include <dt-bindings/gpio/gpio.h>
12
13#include "imx8mn-pinfunc.h"
14
15&{/} {
16	connector {
17		compatible = "gpio-usb-b-connector", "usb-b-connector";
18		type = "micro";
19		label = "X19";
20		pinctrl-names = "default";
21		pinctrl-0 = <&pinctrl_usb1_connector>;
22		id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
23
24		port {
25			usb_dr_connector: endpoint {
26				remote-endpoint = <&usb1_drd_sw>;
27			};
28		};
29	};
30};
31
32/*
33 * rst_usb_hub_hog and sel_usb_hub_hog have property 'output-high',
34 * dt overlay don't support /delete-property/. Both 'output-low' and
35 * 'output-high' will be exist under hog nodes if overlay file set
36 * 'output-low'. Workaround is disable these hog and create new hog with
37 * 'output-low'.
38 */
39
40&rst_usb_hub_hog {
41	status = "disabled";
42};
43
44&expander0 {
45	rst-usb-low-hub-hog {
46		gpio-hog;
47		gpios = <13 0>;
48		output-low;
49		line-name = "RST_USB_HUB#";
50	};
51};
52
53&sel_usb_hub_hog {
54	status = "disabled";
55};
56
57&gpio2 {
58	sel-usb-low-hub-hog {
59		gpio-hog;
60		gpios = <1 GPIO_ACTIVE_HIGH>;
61		output-low;
62	};
63};
64
65&usbotg1 {
66	pinctrl-names = "default";
67	pinctrl-0 = <&pinctrl_usbotg>;
68	dr_mode = "otg";
69	srp-disable;
70	hnp-disable;
71	adp-disable;
72	power-active-high;
73	/delete-property/ disable-over-current;
74	over-current-active-low;
75	usb-role-switch;
76	status = "okay";
77
78	port {
79		usb1_drd_sw: endpoint {
80			remote-endpoint = <&usb_dr_connector>;
81		};
82	};
83};
84
85&iomuxc {
86	pinctrl_usb1_connector: usb1-connectorgrp {
87		fsl,pins = <MX8MN_IOMUXC_GPIO1_IO10_GPIO1_IO10		0x1c0>;
88	};
89};
90