From: Chen-Yu Tsai <wenst@chromium.org>
To: Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>
Cc: Chen-Yu Tsai <wenst@chromium.org>,
linux-mediatek@lists.infradead.org,
linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org
Subject: [PATCH 1/2] arm64: dts: mediatek: mt8390-genio-common: Fix type C port mode and connection
Date: Tue, 3 Nov 2026 16:33:32 +0800 [thread overview]
Message-ID: <20261103083335.2944847-2-wenst@chromium.org> (raw)
In-Reply-To: <20261103083335.2944847-1-wenst@chromium.org>
The USB controller complex ssusb1 and xhci1 operate in host mode only,
as it is immediately connected to a USB hub. The user manual has a block
diagram showing this, and a USB usage table showing port 1 as "host
only".
Change the controller's operating mode to "host", and drop the USB role
switch property. Fix the USB type C port data line connections to go
through the USB hub, as shown in the block diagram. Change the data-role
on the type C port to "host".
Fixes: 1afaeca17238 ("arm64: dts: mediatek: mt8390-genio-700: Add USB, TypeC Controller, MUX")
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
---
Compile tested only.
Unfortunately I don't have a board or the schematics to check which of
the USB hub downstream ports the type C port is connected to.
Also, the order of the USB hubs might be reversed. In my previous
experience, port 1 on the XHCI is SuperSpeed, and port 2 is HighSpeed.
---
.../dts/mediatek/mt8390-genio-common.dtsi | 43 ++++++++++++-------
1 file changed, 28 insertions(+), 15 deletions(-)
diff --git a/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi b/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
index 669eaec662f3..821dbf9d3fc5 100644
--- a/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
@@ -512,7 +512,7 @@ rt1715@4e {
connector {
compatible = "usb-c-connector";
label = "USB-C";
- data-role = "dual";
+ data-role = "host";
op-sink-microwatt = <10000000>;
power-role = "dual";
try-power-role = "sink";
@@ -539,14 +539,14 @@ ports {
port@0 {
reg = <0>;
typec_con_hs: endpoint {
- remote-endpoint = <&mtu3_hs1_role_sw>;
+ remote-endpoint = <&usb_2_0_p2>;
};
};
port@1 {
reg = <1>;
typec_con_ss: endpoint {
- remote-endpoint = <&xhci_ss_ep>;
+ remote-endpoint = <&usb_3_0_p2>;
};
};
@@ -1528,19 +1528,12 @@ &xhci0 {
};
&ssusb1 {
- dr_mode = "otg";
- usb-role-switch;
+ dr_mode = "host";
wakeup-source;
vusb33-supply = <&mt6359_vusb_ldo_reg>;
pinctrl-0 = <&usb1_default_pins>;
pinctrl-names = "default";
status = "okay";
-
- port {
- mtu3_hs1_role_sw: endpoint {
- remote-endpoint = <&typec_con_hs>;
- };
- };
};
&xhci1 {
@@ -1555,6 +1548,19 @@ hub_2_0: hub@1 {
peer-hub = <&hub_3_0>;
reset-gpios = <&pio 7 GPIO_ACTIVE_HIGH>;
vdd-supply = <&usb_hub_fixed_3v3>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@2 {
+ reg = <2>;
+
+ usb_2_0_p2: endpoint {
+ remote-endpoint = <&typec_con_hs>;
+ };
+ };
+ };
};
hub_3_0: hub@2 {
@@ -1563,11 +1569,18 @@ hub_3_0: hub@2 {
peer-hub = <&hub_2_0>;
reset-gpios = <&pio 7 GPIO_ACTIVE_HIGH>;
vdd-supply = <&usb_hub_fixed_3v3>;
- };
- port {
- xhci_ss_ep: endpoint {
- remote-endpoint = <&typec_con_ss>;
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@2 {
+ reg = <2>;
+
+ usb_3_0_p2: endpoint {
+ remote-endpoint = <&typec_con_ss>;
+ };
+ };
};
};
};
--
2.56.0.385.gac671c819a-goog
next prev parent reply other threads:[~2026-11-03 8:33 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-03 8:33 [PATCH 0/2] arm64: dts: mediatek: mt8390-genio-common: USB fixes Chen-Yu Tsai
2026-11-03 8:33 ` Chen-Yu Tsai [this message]
2026-11-03 8:33 ` [PATCH 2/2] arm64: dts: mediatek: mt8390-genio-common: Split out USB hub enable pin mux Chen-Yu Tsai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261103083335.2944847-2-wenst@chromium.org \
--to=wenst@chromium.org \
--cc=angelogioacchino.delregno@collabora.com \
--cc=devicetree@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox