summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis-Alexis Eyraud <louisalexis.eyraud@collabora.com>2025-05-02 16:17:19 +0300
committerAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>2025-05-06 11:27:52 +0300
commitf9167f15dd4e70b124023a2f7ba2b09401b3b6ff (patch)
treef3213927f35024f8412a80c043300af0b485bd02
parent0eae9cee0d74c09f5ee7ccc0dcc6b7fbb669f68b (diff)
downloadlinux-f9167f15dd4e70b124023a2f7ba2b09401b3b6ff.tar.xz
arm64: dts: mediatek: mt8390-genio-common: Set ssusb2 default dual role mode to host
On the Mediatek Genio 510-EVK and 700-EVK boards, ssusb2 controller is one but has two ports: one is routed to the M.2 slot, the other is on the RPi header who does support full OTG. Since Mediatek Genio 700-EVK USB support was added, dual role mode property is set to otg for ssusb2. This config prevents the M.2 Wifi/Bluetooth module, present on those boards and exposing Bluetooth as an USB device to be properly detected at startup as the default role is device. To keep the OTG functionality and make the M.2 module be detected at the same time, add role-switch-default-mode property set to host and also fix the polarity of GPIO associated to the USB connector, so the ssusb2 controller role is properly set to host when the other port is unused. Fixes: 1afaeca17238 ("arm64: dts: mediatek: mt8390-genio-700: Add USB, TypeC Controller, MUX") Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com> Link: https://lore.kernel.org/r/20250502-mtk-genio-510-700-fix-bt-detection-v2-1-870aa2145480@collabora.com Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
-rw-r--r--arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi12
1 files changed, 11 insertions, 1 deletions
diff --git a/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi b/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
index 127764c4d6be..aa8dd12a84ea 100644
--- a/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
@@ -1333,8 +1333,18 @@
};
&ssusb2 {
+ /*
+ * the ssusb2 controller is one but we got two ports : one is routed
+ * to the M.2 slot, the other is on the RPi header who does support
+ * full OTG.
+ * As the controller is shared between them, the role switch default
+ * mode is set to host to make any peripheral inserted in the M.2
+ * slot (i.e BT/WIFI module) be detected when the other port is
+ * unused.
+ */
dr_mode = "otg";
maximum-speed = "high-speed";
+ role-switch-default-mode = "host";
usb-role-switch;
vusb33-supply = <&mt6359_vusb_ldo_reg>;
wakeup-source;
@@ -1345,7 +1355,7 @@
connector {
compatible = "gpio-usb-b-connector", "usb-b-connector";
type = "micro";
- id-gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
+ id-gpios = <&pio 89 GPIO_ACTIVE_LOW>;
vbus-supply = <&usb_p2_vbus>;
};
};