usb: cdns: starfive: Get dr mode from wrapper device dts node
authorMinda Chen <minda.chen@starfivetech.com>
Thu, 6 Mar 2025 06:20:28 +0000 (14:20 +0800)
committerMarek Vasut <marex@denx.de>
Mon, 17 Mar 2025 00:55:19 +0000 (01:55 +0100)
Cdns core driver also get dr mode from wrapper devcie dts node
to make it is same with Starfive cdns USB Linux kernel driver,
Starfive 7110 OF_UPSTREAM is enabled

Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
Reviewed-by: Marek Vasut <marex@denx.de>
drivers/phy/starfive/phy-jh7110-pcie.c
drivers/usb/cdns3/core.c

index ecb04bd..a305828 100644 (file)
@@ -170,7 +170,7 @@ static int starfive_pcie_phy_get_syscon(struct udevice *dev)
        int ret;
 
        /* get corresponding syscon phandle */
-       ret = dev_read_phandle_with_args(dev, "starfive,sys-syscon", NULL, 0, 0,
+       ret = dev_read_phandle_with_args(dev, "starfive,sys-syscon", NULL, 1, 0,
                                         &sys_phandle);
 
        if (ret < 0) {
index 4cfd38e..4434dc1 100644 (file)
@@ -410,6 +410,9 @@ int cdns3_bind(struct udevice *parent)
        name = ofnode_get_name(node);
        dr_mode = usb_get_dr_mode(node);
 
+       if (dr_mode == USB_DR_MODE_UNKNOWN)
+               dr_mode = usb_get_dr_mode(dev_ofnode(parent));
+
        switch (dr_mode) {
 #if defined(CONFIG_SPL_USB_HOST) || \
        (!defined(CONFIG_XPL_BUILD) && defined(CONFIG_USB_HOST))