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