[U-Boot] [i.MX8MM+CCF 03/41] clk: introduce clk_dev_binded

Peng Fan
2019-04-30T10:17:40Z

When support Clock Common Framework, U-Boot use dev for
clk tree information, there is no clk->parent. When
support composite clk, it contains mux/gate/divider,
but the mux/gate/divider is not binded with device.
So we could not use dev_get_driver_data to get the correct
clk_mux/gate/divider. So add clk_dev_binded to let
choose the correct method.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
drivers/clk/clk.c | 8 ++++++++
include/clk.h | 9 +++++++++
2 files changed, 17 insertions(+)

diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index 0a0fffb50b..025bb99ecc 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -54,3 +54,11 @@ const char *clk_hw_get_name(const struct clk *hw)
{
return hw->dev->name;
}
+
+bool clk_dev_binded(struct clk *clk)
+{
+ if (clk->dev && (clk->dev->flags & DM_FLAG_BOUND))
+ return true;
+
+ return false;
+}
diff --git a/include/clk.h b/include/clk.h
index a4ecca9fbc..8199119d01 100644
--- a/include/clk.h
+++ b/include/clk.h
@@ -337,4 +337,13 @@ static inline bool clk_valid(struct clk *clk)
* @return zero on success, or -ENOENT on error
*/
int clk_get_by_id(ulong id, struct clk **clkp);
+
+/**
+ * clk_dev_binded() - Check whether the clk has a device binded
+ *
+ * @clk A pointer to the clk
+ *
+ * @return true on binded, or false on no
+ */
+bool clk_dev_binded(struct clk *clk);
#endif
--
2.16.4