mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
arm64: dts: rockchip: Fix USB Type-C host mode for Radxa ROCK 5B+/5T
The Radxa ROCK 5B+/5T USB Type-C port supports Dual Role Data and
should also act as a host. However, currently, when acting as a host,
only self-powered devices work.
Since the ROCK 5B+ supports Dual Role Power, set the power-role
property to "dual" and the try-power-role property to "sink". (along
with related properties)
The ROCK 5T should only support the "source" power-role.
This allows the port to act as a host, supply power to the port, and
allow bus-powered devices to work.
Note that on the ROCK 5T, with this patch applied, it has been
observed that some bus-powered devices do not work correctly. Also,
it has been observed that after connecting a device (and the data-role
switches to host), connecting a host device does not switch the
data-role back to the device role. These issues should be addressed
separately.
Note that there is a separate known issue where USB 3.0 SuperSpeed
devices do not work when oriented in reverse. This issue should also be
addressed separately. (USB 2.0/1.1 devices work in both orientations)
Fixes: 67b2c15d8f ("arm64: dts: rockchip: add USB-C support for ROCK 5B/5B+/5T")
Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Link: https://patch.msgid.link/20251104085227.820-1-naoki@radxa.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
This commit is contained in:
committed by
Heiko Stuebner
parent
c6c76445c3
commit
fbf90d1b69
@@ -331,12 +331,12 @@
|
||||
data-role = "dual";
|
||||
/* fusb302 supports PD Rev 2.0 Ver 1.2 */
|
||||
pd-revision = /bits/ 8 <0x2 0x0 0x1 0x2>;
|
||||
power-role = "sink";
|
||||
try-power-role = "sink";
|
||||
op-sink-microwatt = <1000000>;
|
||||
sink-pdos =
|
||||
<PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>,
|
||||
<PDO_VAR(5000, 20000, 5000)>;
|
||||
source-pdos =
|
||||
<PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
|
||||
|
||||
altmodes {
|
||||
displayport {
|
||||
|
||||
@@ -110,6 +110,11 @@
|
||||
};
|
||||
};
|
||||
|
||||
&usb_con {
|
||||
power-role = "dual";
|
||||
try-power-role = "sink";
|
||||
};
|
||||
|
||||
&usbdp_phy0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usbc_sbu_dc>;
|
||||
|
||||
@@ -49,6 +49,10 @@
|
||||
};
|
||||
};
|
||||
|
||||
&usb_con {
|
||||
power-role = "sink";
|
||||
};
|
||||
|
||||
&usbdp_phy0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usbc_sbu_dc>;
|
||||
|
||||
@@ -130,6 +130,10 @@
|
||||
};
|
||||
};
|
||||
|
||||
&usb_con {
|
||||
power-role = "source";
|
||||
};
|
||||
|
||||
&usbdp_phy0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usbc_sbu_dc>;
|
||||
|
||||
Reference in New Issue
Block a user