]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
pinctrl: rockchip: Use syscon_regmap_lookup_by_phandle()
authorJonas Karlman <jonas@kwiboo.se>
Sat, 31 Jan 2026 23:38:18 +0000 (23:38 +0000)
committerTom Rini <trini@konsulko.com>
Tue, 10 Mar 2026 16:07:03 +0000 (10:07 -0600)
Use syscon_regmap_lookup_by_phandle() to simplify the code.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
drivers/pinctrl/rockchip/pinctrl-rockchip-core.c

index 4de67aba1c3453673891482babf2f009fa053a97..273e356e7c02172154193eccf1137bf46eff1ce9 100644 (file)
@@ -10,6 +10,7 @@
 #include <syscon.h>
 #include <fdtdec.h>
 #include <linux/bitops.h>
+#include <linux/err.h>
 #include <linux/libfdt.h>
 
 #include "pinctrl-rockchip.h"
@@ -641,37 +642,21 @@ int rockchip_pinctrl_probe(struct udevice *dev)
 {
        struct rockchip_pinctrl_priv *priv = dev_get_priv(dev);
        struct rockchip_pin_ctrl *ctrl;
-       struct udevice *syscon;
-       struct regmap *regmap;
-       int ret = 0;
 
-       /* get rockchip grf syscon phandle */
-       ret = uclass_get_device_by_phandle(UCLASS_SYSCON, dev, "rockchip,grf",
-                                          &syscon);
-       if (ret) {
-               debug("unable to find rockchip,grf syscon device (%d)\n", ret);
-               return ret;
+       priv->regmap_base =
+                       syscon_regmap_lookup_by_phandle(dev, "rockchip,grf");
+       if (IS_ERR(priv->regmap_base)) {
+               debug("unable to find rockchip,grf regmap\n");
+               return PTR_ERR(priv->regmap_base);
        }
 
-       /* get grf-reg base address */
-       regmap = syscon_get_regmap(syscon);
-       if (!regmap) {
-               debug("unable to find rockchip grf regmap\n");
-               return -ENODEV;
-       }
-       priv->regmap_base = regmap;
-
-       /* option: get pmu-reg base address */
-       ret = uclass_get_device_by_phandle(UCLASS_SYSCON, dev, "rockchip,pmu",
-                                          &syscon);
-       if (!ret) {
-               /* get pmugrf-reg base address */
-               regmap = syscon_get_regmap(syscon);
-               if (!regmap) {
-                       debug("unable to find rockchip pmu regmap\n");
-                       return -ENODEV;
+       if (dev_read_bool(dev, "rockchip,pmu")) {
+               priv->regmap_pmu =
+                       syscon_regmap_lookup_by_phandle(dev, "rockchip,pmu");
+               if (IS_ERR(priv->regmap_pmu)) {
+                       debug("unable to find rockchip,pmu regmap\n");
+                       return PTR_ERR(priv->regmap_pmu);
                }
-               priv->regmap_pmu = regmap;
        }
 
        ctrl = rockchip_pinctrl_get_soc_data(dev);