]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: phy: mediatek: do not require syscon compatible for pio property
authorFrank Wunderlich <frank-w@public-files.de>
Sat, 10 May 2025 17:49:32 +0000 (19:49 +0200)
committerJakub Kicinski <kuba@kernel.org>
Fri, 16 May 2025 22:40:51 +0000 (15:40 -0700)
Current implementation requires syscon compatible for pio property
which is used for driving the switch leds on mt7988.

Replace syscon_regmap_lookup_by_phandle with of_parse_phandle and
device_node_to_regmap to get the regmap already assigned by pinctrl
driver.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Link: https://patch.msgid.link/20250510174933.154589-1-linux@fw-web.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/mediatek/mtk-ge-soc.c

index cd09684780a491d4eabb36195874b6784a0001bb..a284e8435cb68d0ea89f9b71e6e13500af19dc7b 100644 (file)
@@ -7,6 +7,7 @@
 #include <linux/pinctrl/consumer.h>
 #include <linux/phy.h>
 #include <linux/regmap.h>
+#include <linux/of.h>
 
 #include "../phylib.h"
 #include "mtk.h"
@@ -1322,6 +1323,7 @@ static int mt7988_phy_probe_shared(struct phy_device *phydev)
 {
        struct device_node *np = dev_of_node(&phydev->mdio.bus->dev);
        struct mtk_socphy_shared *shared = phy_package_get_priv(phydev);
+       struct device_node *pio_np;
        struct regmap *regmap;
        u32 reg;
        int ret;
@@ -1339,7 +1341,13 @@ static int mt7988_phy_probe_shared(struct phy_device *phydev)
         * The 4 bits in TPBANK0 are kept as package shared data and are used to
         * set LED polarity for each of the LED0.
         */
-       regmap = syscon_regmap_lookup_by_phandle(np, "mediatek,pio");
+       pio_np = of_parse_phandle(np, "mediatek,pio", 0);
+       if (!pio_np)
+               return -ENODEV;
+
+       regmap = device_node_to_regmap(pio_np);
+       of_node_put(pio_np);
+
        if (IS_ERR(regmap))
                return PTR_ERR(regmap);