[PATCH 1/8] clk: Add range accessors
Maxime Ripard
maxime at cerno.tech
Thu Feb 25 15:59:02 UTC 2021
Some devices might need to access the current available range of a clock
to discover their capabilities. Let's add those accessors.
Signed-off-by: Maxime Ripard <maxime at cerno.tech>
---
drivers/clk/clk.c | 30 ++++++++++++++++++++++++++++++
include/linux/clk.h | 16 ++++++++++++++++
2 files changed, 46 insertions(+)
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index 8c1d04db990d..b7307d4f090d 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -2407,6 +2407,36 @@ int clk_set_max_rate(struct clk *clk, unsigned long rate)
}
EXPORT_SYMBOL_GPL(clk_set_max_rate);
+long clk_get_min_rate(struct clk *clk)
+{
+ unsigned long min_rate, max_rate;
+
+ if (!clk)
+ return 0;
+
+ clk_prepare_lock();
+ clk_core_get_boundaries(clk->core, &min_rate, &max_rate);
+ clk_prepare_unlock();
+
+ return min_rate;
+}
+EXPORT_SYMBOL_GPL(clk_get_min_rate);
+
+long clk_get_max_rate(struct clk *clk)
+{
+ unsigned long min_rate, max_rate;
+
+ if (!clk)
+ return 0;
+
+ clk_prepare_lock();
+ clk_core_get_boundaries(clk->core, &min_rate, &max_rate);
+ clk_prepare_unlock();
+
+ return max_rate;
+}
+EXPORT_SYMBOL_GPL(clk_get_max_rate);
+
/**
* clk_get_parent - return the parent of a clk
* @clk: the clk whose parent gets returned
diff --git a/include/linux/clk.h b/include/linux/clk.h
index 31ff1bf1b79f..6f0c00ddf3ac 100644
--- a/include/linux/clk.h
+++ b/include/linux/clk.h
@@ -709,6 +709,22 @@ int clk_set_min_rate(struct clk *clk, unsigned long rate);
*/
int clk_set_max_rate(struct clk *clk, unsigned long rate);
+/**
+ * clk_get_min_rate - get the minimum clock rate for a clock source
+ * @clk: clock source
+ *
+ * Returns the minimum rate or negative errno.
+ */
+long clk_get_min_rate(struct clk *clk);
+
+/**
+ * clk_get_max_rate - get the maximum clock rate for a clock source
+ * @clk: clock source
+ *
+ * Returns the maximum rate or negative errno.
+ */
+long clk_get_max_rate(struct clk *clk);
+
/**
* clk_set_parent - set the parent clock source for this clock
* @clk: clock source
--
2.29.2
More information about the dri-devel
mailing list