|
@@ -17,8 +17,9 @@
|
|
|
#include <linux/notifier.h>
|
|
|
|
|
|
struct device;
|
|
|
-
|
|
|
struct clk;
|
|
|
+struct device_node;
|
|
|
+struct of_phandle_args;
|
|
|
|
|
|
/**
|
|
|
* DOC: clk notifier callback types
|
|
@@ -248,6 +249,23 @@ struct clk *clk_get(struct device *dev, const char *id);
|
|
|
*/
|
|
|
struct clk *devm_clk_get(struct device *dev, const char *id);
|
|
|
|
|
|
+/**
|
|
|
+ * devm_get_clk_from_child - lookup and obtain a managed reference to a
|
|
|
+ * clock producer from child node.
|
|
|
+ * @dev: device for clock "consumer"
|
|
|
+ * @np: pointer to clock consumer node
|
|
|
+ * @con_id: clock consumer ID
|
|
|
+ *
|
|
|
+ * This function parses the clocks, and uses them to look up the
|
|
|
+ * struct clk from the registered list of clock providers by using
|
|
|
+ * @np and @con_id
|
|
|
+ *
|
|
|
+ * The clock will automatically be freed when the device is unbound
|
|
|
+ * from the bus.
|
|
|
+ */
|
|
|
+struct clk *devm_get_clk_from_child(struct device *dev,
|
|
|
+ struct device_node *np, const char *con_id);
|
|
|
+
|
|
|
/**
|
|
|
* clk_enable - inform the system when the clock source should be running.
|
|
|
* @clk: clock source
|
|
@@ -432,6 +450,12 @@ static inline struct clk *devm_clk_get(struct device *dev, const char *id)
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
|
+static inline struct clk *devm_get_clk_from_child(struct device *dev,
|
|
|
+ struct device_node *np, const char *con_id)
|
|
|
+{
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
static inline void clk_put(struct clk *clk) {}
|
|
|
|
|
|
static inline void devm_clk_put(struct device *dev, struct clk *clk) {}
|
|
@@ -501,9 +525,6 @@ static inline void clk_disable_unprepare(struct clk *clk)
|
|
|
clk_unprepare(clk);
|
|
|
}
|
|
|
|
|
|
-struct device_node;
|
|
|
-struct of_phandle_args;
|
|
|
-
|
|
|
#if defined(CONFIG_OF) && defined(CONFIG_COMMON_CLK)
|
|
|
struct clk *of_clk_get(struct device_node *np, int index);
|
|
|
struct clk *of_clk_get_by_name(struct device_node *np, const char *name);
|