[U-Boot] [PATCH v4 1/5] rockchip: Avoid using libfdt with of-platdata
Simon Glass
sjg at chromium.org
Thu Nov 7 15:53:08 UTC 2019
At present a few of the clk and pinctrl drivers use libfdt routines (via
dev_read_..()) when of-platdata is enabled. This is not permitted.
Correct this by returning errors instead. The drivers may need to be
modified to add full support.
Signed-off-by: Simon Glass <sjg at chromium.org>
---
Changes in v4:
- Add new patch for rockchip build errors
Changes in v3: None
drivers/clk/rockchip/clk_rk3328.c | 14 ++++++++++++--
drivers/pinctrl/rockchip/pinctrl-rockchip-core.c | 6 ++++--
2 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/drivers/clk/rockchip/clk_rk3328.c b/drivers/clk/rockchip/clk_rk3328.c
index a89e2ecc4a..e86c17e6d6 100644
--- a/drivers/clk/rockchip/clk_rk3328.c
+++ b/drivers/clk/rockchip/clk_rk3328.c
@@ -669,6 +669,10 @@ static int rk3328_gmac2io_set_parent(struct clk *clk, struct clk *parent)
return 0;
}
+ /* FIXME: Device tree should be read in ofdata_to_platdata() */
+ if (CONFIG_IS_ENABLED(OF_PLATDATA))
+ return -EDEADLK;
+
/*
* Otherwise, we need to check the clock-output-names of the
* requested parent to see if the requested id is "gmac_clkin".
@@ -706,6 +710,10 @@ static int rk3328_gmac2io_ext_set_parent(struct clk *clk, struct clk *parent)
return 0;
}
+ /* FIXME: Device tree should be read in ofdata_to_platdata() */
+ if (CONFIG_IS_ENABLED(OF_PLATDATA))
+ return -EDEADLK;
+
/*
* Otherwise, we need to check the clock-output-names of the
* requested parent to see if the requested id is "gmac_clkin".
@@ -762,9 +770,11 @@ static int rk3328_clk_probe(struct udevice *dev)
static int rk3328_clk_ofdata_to_platdata(struct udevice *dev)
{
- struct rk3328_clk_priv *priv = dev_get_priv(dev);
+ if (!CONFIG_IS_ENABLED(OF_PLATDATA)) {
+ struct rk3328_clk_priv *priv = dev_get_priv(dev);
- priv->cru = dev_read_addr_ptr(dev);
+ priv->cru = dev_read_addr_ptr(dev);
+ }
return 0;
}
diff --git a/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c b/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c
index 80dc431d20..dccc54e95f 100644
--- a/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c
+++ b/drivers/pinctrl/rockchip/pinctrl-rockchip-core.c
@@ -383,8 +383,8 @@ static int rockchip_pinconf_prop_name_to_param(const char *property,
return -EPERM;
}
-static int rockchip_pinctrl_set_state(struct udevice *dev,
- struct udevice *config)
+static int __maybe_unused rockchip_pinctrl_set_state(struct udevice *dev,
+ struct udevice *config)
{
struct rockchip_pinctrl_priv *priv = dev_get_priv(dev);
struct rockchip_pin_ctrl *ctrl = priv->ctrl;
@@ -474,7 +474,9 @@ static int rockchip_pinctrl_set_state(struct udevice *dev,
}
const struct pinctrl_ops rockchip_pinctrl_ops = {
+#if !CONFIG_IS_ENABLED(PLATDATA)
.set_state = rockchip_pinctrl_set_state,
+#endif
.get_gpio_mux = rockchip_pinctrl_get_gpio_mux,
};
--
2.24.0.rc1.363.gb1bccd3e3d-goog
More information about the U-Boot
mailing list