[PATCH 1/2] arm64: dts: rockchip: Fix USB Type-C host mode for Radxa ROCK 5B+/5T

FUKAUMI Naoki naoki at radxa.com
Tue Oct 28 07:50:40 PDT 2025


On 10/28/25 20:50, FUKAUMI Naoki wrote:
> The USB Type-C port on the Radxa ROCK 5B+/5T supports Dual-Role-Data
> and Dual-Role-Power. However, currently it cannot operate as host/
> source.
> 
> By setting "power-role" to "dual" (along with adding related
> properties), the power role can operate as source and the data role
> can operate as host.
> 
> Unfortunately, a remaining issue is that when a USB 3.0 SuperSpeed
> device's orientation is reverse, the root port is detected but the
> device itself is not. This must be addressed separately.
> (USB 2.0/1.1 devices operate even in reverse orientation.)
> 
> Furthermore, this file is also used by the Radxa ROCK 5B, but the
> Type-C port cannot operate as a host regardless of this fix. This must
> also be addressed separately.
> 
> Fixes: 67b2c15d8fb3c ("arm64: dts: rockchip: add USB-C support for ROCK 5B/5B+/5T")
> Signed-off-by: FUKAUMI Naoki <naoki at radxa.com>
> ---
>   arch/arm64/boot/dts/rockchip/rk3588-rock-5b-5bp-5t.dtsi | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b-5bp-5t.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b-5bp-5t.dtsi
> index 3bbe78810ec6f..b77c5a8229e75 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b-5bp-5t.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b-5bp-5t.dtsi
> @@ -331,12 +331,14 @@ usb_con: connector {
>   			data-role = "dual";
>   			/* fusb302 supports PD Rev 2.0 Ver 1.2 */
>   			pd-revision = /bits/ 8 <0x2 0x0 0x1 0x2>;
> -			power-role = "sink";
> +			power-role = "dual";

Ah, this shouldn't be applied for ROCK 5B (which is only "sink").
I will revise the patch to target only ROCK 5B+/5T.

By the way, even without applying this fix, the Type-C port on the ROCK 
5B still won't work as a host. The kernel outputs the following message:

i2c 4-0022: deferred probe pending: typec_fusb302: cannot register tcpm port

Best regards,

--
FUKAUMI Naoki
Radxa Computer (Shenzhen) Co., Ltd.

>   			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 {




More information about the Linux-rockchip mailing list