diff --git a/board/freescale/imx8mq_phanbell/imx8m_phanbell.c b/board/freescale/imx8mq_phanbell/imx8m_phanbell.c
index 1689bbb..b066ed2 100644
--- a/board/freescale/imx8mq_phanbell/imx8m_phanbell.c
+++ b/board/freescale/imx8mq_phanbell/imx8m_phanbell.c
@@ -11,10 +11,12 @@
 #include <asm/io.h>
 #include <miiphy.h>
 #include <netdev.h>
+#include <dm.h>
 #include <asm/imx-common/iomux-v3.h>
 #include <asm/imx-common/boot_mode.h>
 #include <asm-generic/gpio.h>
 #include <fsl_esdhc.h>
+#include <i2c.h>
 #include <mmc.h>
 #include <asm/arch/imx8mq_pins.h>
 #include <asm/arch/sys_proto.h>
@@ -164,6 +166,12 @@
 #define USB_PHY_CTRL2			0xF0048
 #define USB_PHY_CTRL2_TXENABLEN0	BIT(8)
 
+#define PTN5150A_BUS				2
+#define PTN5150A_ADDR				0x3D
+#define PTN5150A_CONTROL			0x2
+#define PTN5150A_CONTROL_PORT_MASK	0x6
+
+
 static struct dwc3_device dwc3_device_data = {
 	.maximum_speed = USB_SPEED_HIGH,
 	.base = USB1_BASE_ADDR,
@@ -200,6 +208,37 @@
 	RegData &= ~(USB_PHY_CTRL1_RESET | USB_PHY_CTRL1_ATERESET);
 	writel(RegData, dwc3->base + USB_PHY_CTRL1);
 }
+
+static void configure_cc_switch() {
+	uint8_t value;
+	int ret;
+	struct udevice *bus, *dev;
+
+	ret = uclass_get_device_by_seq(UCLASS_I2C, PTN5150A_BUS, &bus);
+	if (ret) {
+		printf("%s: No bus %d\n", __func__, PTN5150A_BUS);
+		return;
+	}
+
+	ret = dm_i2c_probe(bus, PTN5150A_ADDR, 0, &dev);
+	if (ret) {
+		printf("%s: Can't find device id=0x%x, on bus %d\n",
+			__func__, PTN5150A_ADDR, PTN5150A_BUS);
+		return;
+	}
+
+	if (dm_i2c_read(dev, PTN5150A_CONTROL, &value, 1)) {
+		printf("Unable to configure USB switch");
+		return;
+	}
+
+	value &= ~PTN5150A_CONTROL_PORT_MASK;
+	if (dm_i2c_write(dev, PTN5150A_CONTROL, &value, 1)) {
+		printf("Unable to configure USB switch");
+		return;
+	}
+	printf("Configured USB Switch for UFP\n");
+}
 #endif
 
 #if defined(CONFIG_USB_DWC3) || defined(CONFIG_USB_XHCI_IMX8M)
@@ -207,6 +246,10 @@
 {
 	imx8m_usb_power(index, true);
 
+	/* Explicitly set USB switch to UFP (device) to ensure proper
+	 * fastboot operation on type-C ports. */
+	configure_cc_switch();
+
 	if (index == 0 && init == USB_INIT_DEVICE) {
 		dwc3_nxp_usb_phy_init(&dwc3_device_data);
 		return dwc3_uboot_init(&dwc3_device_data);
