]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: imx8qm-mek: switch Type-C connector power-role to dual
authorXu Yang <xu.yang_2@nxp.com>
Tue, 24 Mar 2026 11:04:58 +0000 (19:04 +0800)
committerFrank Li <Frank.Li@nxp.com>
Fri, 27 Mar 2026 13:53:32 +0000 (09:53 -0400)
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 Source role only at POR, but after
POR it can operate as a DRP (Dual-Role Power). By switching the power-role
to dual, the port can operate as a sink and enter device mode when attach
to Type-A port.

Since the board design uses EN_SRC to control the 5V VBUS path and EN_SNK
to control the 12V VBUS output, 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.

Fixes: b237975b2cd58 ("arm64: dts: imx8qm-mek: add usb 3.0 and related type C nodes")
Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
arch/arm64/boot/dts/freescale/imx8qm-mek.dts

index dadc136aec6e62d23567297dc3bfc733e65cdbbc..011a89d85961d98925785a8a2f5156cf1b45422d 100644 (file)
                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)>;
+                       /*
+                        * Set operational current to 0mA as we don't want EN_SNK
+                        * enable 12V VBUS switch when it work as a sink.
+                        */
+                       sink-pdos = <PDO_FIXED(5000, 0, PDO_FIXED_USB_COMM)>;
+                       op-sink-microwatt = <0>;
+                       self-powered;
 
                        ports {
                                #address-cells = <1>;