]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
pci: mediatek: make pcie-phy optional for gen3
authorChristian Marangi <ansuelsmth@gmail.com>
Mon, 24 Jun 2024 21:03:38 +0000 (23:03 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 8 Jul 2024 17:45:50 +0000 (11:45 -0600)
Set pcie-phy optional for PCIe gen3. MT7988 doesn't require it and
making it mandatory prevent the driver to correctly probe.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
drivers/pci/pcie_mediatek_gen3.c

index 673813b8b755965a2b84616b475e82fff5f64e65..0149edae0bfae12de059bb08df719e3f49852144 100644 (file)
@@ -284,9 +284,8 @@ static int mtk_pcie_power_on(struct udevice *dev)
 
        pcie->priv = dev;
 
-       err = generic_phy_get_by_name(dev, "pcie-phy", &pcie->phy);
-       if (err)
-               return err;
+       /* pcie-phy is optional (mt7988 doesn't need it) */
+       generic_phy_get_by_name(dev, "pcie-phy", &pcie->phy);
 
        /*
         * Upstream linux kernel devine these clock without clock-names
@@ -308,13 +307,15 @@ static int mtk_pcie_power_on(struct udevice *dev)
        if (err)
                return err;
 
-       err = generic_phy_init(&pcie->phy);
-       if (err)
-               return err;
+       if (pcie->phy.dev) {
+               err = generic_phy_init(&pcie->phy);
+               if (err)
+                       return err;
 
-       err = generic_phy_power_on(&pcie->phy);
-       if (err)
-               goto err_phy_on;
+               err = generic_phy_power_on(&pcie->phy);
+               if (err)
+                       goto err_phy_on;
+       }
 
        err = clk_enable(&pcie->pl_250m_ck);
        if (err)
@@ -348,7 +349,8 @@ err_clk_tl_26m:
 err_clk_pl_250m:
        clk_disable(&pcie->pl_250m_ck);
 err_phy_on:
-       generic_phy_exit(&pcie->phy);
+       if (pcie->phy.dev)
+               generic_phy_exit(&pcie->phy);
 
        return err;
 }