summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2022-03-30 18:08:22 -0400
committerTom Rini <[email protected]>2022-03-30 18:14:33 -0400
commit23e354f82c04a1c070ca59907abc6b042761b0e7 (patch)
treefc73baee17217f3b8c2f116a868eaa190a1bb0a4 /include
parentd2e5250be49fce4653689c41a5dc7e2d7e7ecf33 (diff)
parent682e73d23555afdd733c20810d282d9cc2bc0e0f (diff)
Merge tag 'clk-2022.04-next' of https://source.denx.de/u-boot/custodians/u-boot-clk into next
Clock patches for u-boot/next This is mostly cleanups/consolidations. clk_free is made to return void, and the CCF wrappers present in almost every CCF clock are consolidated. I would particularly like to have the latter upstream, since there are at least two series adding support for new CCF drivers (imx8mq and imxrt1170) which can benefit from these commits. I had to fix up the last commit since I missed an include for at91. CI: https://source.denx.de/u-boot/custodians/u-boot-clk/-/pipelines/11521
Diffstat (limited to 'include')
-rw-r--r--include/clk-uclass.h8
-rw-r--r--include/clk.h8
-rw-r--r--include/linux/clk-provider.h8
3 files changed, 15 insertions, 9 deletions
diff --git a/include/clk-uclass.h b/include/clk-uclass.h
index e44f1caf516..65ebff9ed27 100644
--- a/include/clk-uclass.h
+++ b/include/clk-uclass.h
@@ -32,7 +32,7 @@ struct clk_ops {
int (*of_xlate)(struct clk *clock,
struct ofnode_phandle_args *args);
int (*request)(struct clk *clock);
- int (*rfree)(struct clk *clock);
+ void (*rfree)(struct clk *clock);
ulong (*round_rate)(struct clk *clk, ulong rate);
ulong (*get_rate)(struct clk *clk);
ulong (*set_rate)(struct clk *clk, ulong rate);
@@ -81,11 +81,9 @@ int request(struct clk *clock);
* rfree() - Free a previously requested clock.
* @clock: The clock to free.
*
- * This is the implementation of the client clk_free() API.
- *
- * Return: 0 if OK, or a negative error code.
+ * Free any resources allocated in request().
*/
-int rfree(struct clk *clock);
+void rfree(struct clk *clock);
/**
* round_rate() - Adjust a rate to the exact rate a clock can provide.
diff --git a/include/clk.h b/include/clk.h
index 23e4d4ea729..76bb64bb5ee 100644
--- a/include/clk.h
+++ b/include/clk.h
@@ -414,9 +414,9 @@ int clk_request(struct udevice *dev, struct clk *clk);
* @clk: A clock struct that was previously successfully requested by
* clk_request/get_by_*().
*
- * Return: 0 if OK, or a negative error code.
+ * Free resources allocated by clk_request() (or any clk_get_* function).
*/
-int clk_free(struct clk *clk);
+void clk_free(struct clk *clk);
/**
* clk_get_rate() - Get current clock rate.
@@ -562,9 +562,9 @@ static inline int clk_request(struct udevice *dev, struct clk *clk)
return -ENOSYS;
}
-static inline int clk_free(struct clk *clk)
+static inline void clk_free(struct clk *clk)
{
- return 0;
+ return;
}
static inline ulong clk_get_rate(struct clk *clk)
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
index 9a6116646de..2d04882d053 100644
--- a/include/linux/clk-provider.h
+++ b/include/linux/clk-provider.h
@@ -254,4 +254,12 @@ const char *clk_hw_get_name(const struct clk *hw);
ulong clk_generic_get_rate(struct clk *clk);
struct clk *dev_get_clk_ptr(struct udevice *dev);
+
+ulong ccf_clk_get_rate(struct clk *clk);
+ulong ccf_clk_set_rate(struct clk *clk, unsigned long rate);
+int ccf_clk_set_parent(struct clk *clk, struct clk *parent);
+int ccf_clk_enable(struct clk *clk);
+int ccf_clk_disable(struct clk *clk);
+extern const struct clk_ops ccf_clk_ops;
+
#endif /* __LINUX_CLK_PROVIDER_H */