[PATCH 1/2] arm64: dts: imx8qm-mek: switch Type-C connector power-role to dual

Frank Li Frank.li at nxp.com
Mon Mar 23 11:16:12 PDT 2026


On Mon, Mar 23, 2026 at 07:09:22PM +0800, Xu Yang wrote:
> When attach to PC Type-A port, the USB device controller does not function
> at all. Because it is configured as source-only and a Type-A port doesn't
> support PD capability, a data role swap is impossible.
>
> Actually, PTN5110THQ is configured for DFP/Source role only at POR, but
> after POR it can operate as a DRP. By switching the power-role to dual,
> the port can operate as a sink and enter device mode when attached to
> Type-A port.

when first use term DFP/DRP,
	DFP (Downstream Facing Port)  ...

Except well known term, like POR.

>
> Since the board design uses EN_SRC to control the 5V VBUS path and EN_SNK
> to control the 12V VBUS output,

I remember a hardware rework to fix this problem.

> to avoid outputting a higher VBUS when in
> sink role, we set the operation current limit to 0mA so that SW will not
> control EN_SNK at all.
>
> Signed-off-by: Xu Yang <xu.yang_2 at nxp.com>
> ---
>  arch/arm64/boot/dts/freescale/imx8qm-mek.dts | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8qm-mek.dts b/arch/arm64/boot/dts/freescale/imx8qm-mek.dts
> index dadc136aec6e..8a832a0e105d 100644
> --- a/arch/arm64/boot/dts/freescale/imx8qm-mek.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8qm-mek.dts
> @@ -611,9 +611,13 @@ ptn5110: tcpc at 51 {
>  		usb_con1: connector {
>  			compatible = "usb-c-connector";
>  			label = "USB-C";
> -			power-role = "source";
> +			power-role = "dual";
>  			data-role = "dual";
> +			try-power-role = "sink";
>  			source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
> +			sink-pdos = <PDO_FIXED(5000, 0, PDO_FIXED_USB_COMM)>;
> +			op-sink-microwatt = <0>;

Need comment here.

Frank
> +			self-powered;
>
>  			ports {
>  				#address-cells = <1>;
> --
> 2.34.1
>



More information about the linux-arm-kernel mailing list