Re: [PATCH 1/2] arm64: dts: imx8qm-mek: switch Type-C connector power-role to dual
From: Xu Yang
Date: Mon Mar 23 2026 - 23:26:51 EST
On Mon, Mar 23, 2026 at 02:16:12PM -0400, Frank Li wrote:
> 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.
OK.
>
> >
> > 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.
Yes, PTN5110THQ is EOL, then PTN5110NHQ is used as a replacement. Since PTN5110NHQ
works as DRP at POR, then this will bring an issue that PTN5110NHQ may work as
a sink when attached to PC then EN_SNK will be enabled and 12V will be output to
PC and this will damage the PC. A hardware rework is done to change PTN5110NHQ to
DFP/Source role at POR to avoid the issue.
The hardware rework and this patch fix different issues.
>
> > 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@xxxxxxx>
> > ---
> > 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@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.
OK.
Thanks,
Xu Yang