xref: /linux/rust/helpers/clk.c (revision fcab107abe1ab5be9dbe874baa722372da8f4f73)
1 // SPDX-License-Identifier: GPL-2.0
2 
3 #include <linux/clk.h>
4 
5 /*
6  * The "inline" implementation of below helpers are only available when
7  * CONFIG_HAVE_CLK or CONFIG_HAVE_CLK_PREPARE aren't set.
8  */
9 #ifndef CONFIG_HAVE_CLK
10 struct clk *rust_helper_clk_get(struct device *dev, const char *id)
11 {
12 	return clk_get(dev, id);
13 }
14 
15 void rust_helper_clk_put(struct clk *clk)
16 {
17 	clk_put(clk);
18 }
19 
20 int rust_helper_clk_enable(struct clk *clk)
21 {
22 	return clk_enable(clk);
23 }
24 
25 void rust_helper_clk_disable(struct clk *clk)
26 {
27 	clk_disable(clk);
28 }
29 
30 unsigned long rust_helper_clk_get_rate(struct clk *clk)
31 {
32 	return clk_get_rate(clk);
33 }
34 
35 int rust_helper_clk_set_rate(struct clk *clk, unsigned long rate)
36 {
37 	return clk_set_rate(clk, rate);
38 }
39 #endif
40 
41 #ifndef CONFIG_HAVE_CLK_PREPARE
42 int rust_helper_clk_prepare(struct clk *clk)
43 {
44 	return clk_prepare(clk);
45 }
46 
47 void rust_helper_clk_unprepare(struct clk *clk)
48 {
49 	clk_unprepare(clk);
50 }
51 #endif
52 
53 struct clk *rust_helper_clk_get_optional(struct device *dev, const char *id)
54 {
55 	return clk_get_optional(dev, id);
56 }
57 
58 int rust_helper_clk_prepare_enable(struct clk *clk)
59 {
60 	return clk_prepare_enable(clk);
61 }
62 
63 void rust_helper_clk_disable_unprepare(struct clk *clk)
64 {
65 	clk_disable_unprepare(clk);
66 }
67