Lines Matching +full:clk +full:- +full:out

1 // SPDX-License-Identifier: GPL-2.0+
3 * Copyright (C) 2019-2020 Linaro Limited
6 #include <clk-uclass.h>
12 static int scmi_clk_gate(struct clk *clk, int enable) in scmi_clk_gate() argument
15 .clock_id = clk->id, in scmi_clk_gate()
18 struct scmi_clk_state_out out; in scmi_clk_gate() local
21 in, out); in scmi_clk_gate()
24 ret = devm_scmi_process_msg(clk->dev->parent, &msg); in scmi_clk_gate()
28 return scmi_to_linux_errno(out.status); in scmi_clk_gate()
31 static int scmi_clk_enable(struct clk *clk) in scmi_clk_enable() argument
33 return scmi_clk_gate(clk, 1); in scmi_clk_enable()
36 static int scmi_clk_disable(struct clk *clk) in scmi_clk_disable() argument
38 return scmi_clk_gate(clk, 0); in scmi_clk_disable()
41 static ulong scmi_clk_get_rate(struct clk *clk) in scmi_clk_get_rate() argument
44 .clock_id = clk->id, in scmi_clk_get_rate()
46 struct scmi_clk_rate_get_out out; in scmi_clk_get_rate() local
49 in, out); in scmi_clk_get_rate()
52 ret = devm_scmi_process_msg(clk->dev->parent, &msg); in scmi_clk_get_rate()
56 ret = scmi_to_linux_errno(out.status); in scmi_clk_get_rate()
60 return (ulong)(((u64)out.rate_msb << 32) | out.rate_lsb); in scmi_clk_get_rate()
63 static ulong scmi_clk_set_rate(struct clk *clk, ulong rate) in scmi_clk_set_rate() argument
66 .clock_id = clk->id, in scmi_clk_set_rate()
71 struct scmi_clk_rate_set_out out; in scmi_clk_set_rate() local
74 in, out); in scmi_clk_set_rate()
77 ret = devm_scmi_process_msg(clk->dev->parent, &msg); in scmi_clk_set_rate()
81 ret = scmi_to_linux_errno(out.status); in scmi_clk_set_rate()
85 return scmi_clk_get_rate(clk); in scmi_clk_set_rate()