]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: imx8qxp-mek: switch Type-C connector power-role to dual
authorXu Yang <xu.yang_2@nxp.com>
Tue, 24 Mar 2026 11:04:59 +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: 2faf4ebcee2e5 ("arm64: dts: freescale: imx8qxp-mek: enable cadence usb3")
Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
arch/arm64/boot/dts/freescale/imx8qxp-mek.dts

index 40a0bc9f4e8485ba5c9d57245a8ea2e0a625d602..623169f7ddb5fa29686e65b8e09e149bd4a3cd08 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>;