]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
phy: mvebu-cp110-utmi: fix dr_mode property read from dts
authorAleksandar Gerasimovski <aleksandar.gerasimovski@belden.com>
Tue, 6 Jan 2026 15:06:43 +0000 (15:06 +0000)
committerVinod Koul <vkoul@kernel.org>
Wed, 21 Jan 2026 07:56:59 +0000 (13:26 +0530)
The problem with the current implementation is that it does not consider
that the USB controller can have multiple PHY handles with different
arguments count, as for example we have in our cn9131 based platform:
"phys = <&cp0_comphy1 0>, <&cp0_utmi0>;".

In such case calling "of_usb_get_dr_mode_by_phy" with -1 (no phy-cells)
leads to not proper phy detection, taking the "marvell,cp110-utmi-phy"
dts definition we can call the "of_usb_get_dr_mode_by_phy" with 0
(#phy-cells = <0>) and safely look for that phy.

Signed-off-by: Aleksandar Gerasimovski <aleksandar.gerasimovski@belden.com>
Link: https://patch.msgid.link/20260106150643.922110-1-aleksandar.gerasimovski@belden.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/marvell/phy-mvebu-cp110-utmi.c

index 59903f86b13f56cd2c051c76fffc0912c74796b1..dd3e515a8e865061fe397c24289905d5e0000e59 100644 (file)
@@ -338,7 +338,7 @@ static int mvebu_cp110_utmi_phy_probe(struct platform_device *pdev)
                        return -ENOMEM;
                }
 
-               port->dr_mode = of_usb_get_dr_mode_by_phy(child, -1);
+               port->dr_mode = of_usb_get_dr_mode_by_phy(child, 0);
                if ((port->dr_mode != USB_DR_MODE_HOST) &&
                    (port->dr_mode != USB_DR_MODE_PERIPHERAL)) {
                        dev_err(&pdev->dev,