[PATCH v1 6/7] usb: gadget: ci_udc: Add i.MX8ULP support

alice.guo at oss.nxp.com alice.guo at oss.nxp.com
Tue Dec 16 07:38:38 CET 2025


From: Alice Guo <alice.guo at nxp.com>

Replace fdtdec_get_addr() with fdtdec_get_addr_size_auto_noparent() to
properly handle device tree address translation with different #address-cells
and #size-cells values.

Add i.MX8ULP platform support in ci_udc_otg_phy_mode() function to
ensure correct PHY base address is used.

Signed-off-by: Alice Guo <alice.guo at nxp.com>
---
 drivers/usb/gadget/ci_udc.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/drivers/usb/gadget/ci_udc.c b/drivers/usb/gadget/ci_udc.c
index 154a3ab7f22..98d6dd99055 100644
--- a/drivers/usb/gadget/ci_udc.c
+++ b/drivers/usb/gadget/ci_udc.c
@@ -1213,7 +1213,8 @@ static int ci_udc_phy_setup(struct udevice *dev, struct ci_udc_priv_data *priv)
 			return -EINVAL;
 	}
 
-	addr = (void __iomem *)fdtdec_get_addr(gd->fdt_blob, priv->phy_off, "reg");
+	addr = (void __iomem *)fdtdec_get_addr_size_auto_noparent(gd->fdt_blob, priv->phy_off,
+								  "reg", 0, NULL, false);
 	if ((fdt_addr_t)addr == FDT_ADDR_T_NONE)
 		addr = NULL;
 
@@ -1223,7 +1224,8 @@ static int ci_udc_phy_setup(struct udevice *dev, struct ci_udc_priv_data *priv)
 	if (misc_off < 0)
 		return -EINVAL;
 
-	addr = (void __iomem *)fdtdec_get_addr(gd->fdt_blob, misc_off, "reg");
+	addr = (void __iomem *)fdtdec_get_addr_size_auto_noparent(gd->fdt_blob, misc_off,
+								  "reg", 0, NULL, false);
 	if ((fdt_addr_t)addr == FDT_ADDR_T_NONE)
 		return -EINVAL;
 
@@ -1326,10 +1328,10 @@ static int ci_udc_otg_phy_mode(struct udevice *dev)
 	void *__iomem phy_base = (void *__iomem)devfdt_get_addr(&priv->otgdev);
 	u32 val;
 
-	if (is_mx6() || is_mx7ulp() || is_imx8()) {
-		phy_base = (void __iomem *)fdtdec_get_addr(gd->fdt_blob,
-							   priv->phy_off,
-							   "reg");
+	if (is_mx6() || is_mx7ulp() || is_imx8() || is_imx8ulp()) {
+		phy_base = (void __iomem *)fdtdec_get_addr_size_auto_noparent(gd->fdt_blob,
+									      priv->phy_off, "reg",
+									      0, NULL, false);
 		if ((fdt_addr_t)phy_base == FDT_ADDR_T_NONE)
 			return -EINVAL;
 

-- 
2.43.0



More information about the U-Boot mailing list