Lines Matching defs:stub_clk
67 static unsigned int hi6220_acpu_get_freq(struct hi6220_stub_clk *stub_clk)
71 regmap_read(stub_clk->dfs_map, ACPU_DFS_CUR_FREQ, &freq);
75 static int hi6220_acpu_set_freq(struct hi6220_stub_clk *stub_clk,
81 regmap_write(stub_clk->dfs_map, ACPU_DFS_FREQ_REQ, freq);
89 mbox_send_message(stub_clk->mbox, &data);
93 static int hi6220_acpu_round_freq(struct hi6220_stub_clk *stub_clk,
100 regmap_read(stub_clk->dfs_map, ACPU_DFS_FLAG, &limit_flag);
102 regmap_read(stub_clk->dfs_map, ACPU_DFS_FREQ_LMT, &limit_freq);
105 regmap_read(stub_clk->dfs_map, ACPU_DFS_FREQ_MAX, &max_freq);
120 struct hi6220_stub_clk *stub_clk = to_stub_clk(hw);
122 switch (stub_clk->id) {
124 rate = hi6220_acpu_get_freq(stub_clk);
131 dev_err(stub_clk->dev, "%s: un-supported clock id %d\n",
132 __func__, stub_clk->id);
142 struct hi6220_stub_clk *stub_clk = to_stub_clk(hw);
146 switch (stub_clk->id) {
148 ret = hi6220_acpu_set_freq(stub_clk, new_rate);
155 dev_err(stub_clk->dev, "%s: un-supported clock id %d\n",
156 __func__, stub_clk->id);
167 struct hi6220_stub_clk *stub_clk = to_stub_clk(hw);
170 switch (stub_clk->id) {
172 new_rate = hi6220_acpu_round_freq(stub_clk, new_rate);
179 dev_err(stub_clk->dev, "%s: un-supported clock id %d\n",
180 __func__, stub_clk->id);
197 struct hi6220_stub_clk *stub_clk;
202 stub_clk = devm_kzalloc(dev, sizeof(*stub_clk), GFP_KERNEL);
203 if (!stub_clk)
206 stub_clk->dfs_map = syscon_regmap_lookup_by_phandle(np,
208 if (IS_ERR(stub_clk->dfs_map)) {
210 return PTR_ERR(stub_clk->dfs_map);
213 stub_clk->hw.init = &init;
214 stub_clk->dev = dev;
215 stub_clk->id = HI6220_STUB_ACPU0;
218 stub_clk->cl.dev = dev;
219 stub_clk->cl.tx_done = NULL;
220 stub_clk->cl.tx_block = true;
221 stub_clk->cl.tx_tout = 500;
222 stub_clk->cl.knows_txdone = false;
225 stub_clk->mbox = mbox_request_channel(&stub_clk->cl, 0);
226 if (IS_ERR(stub_clk->mbox)) {
228 return PTR_ERR(stub_clk->mbox);
236 clk = devm_clk_register(dev, &stub_clk->hw);
247 regmap_write(stub_clk->dfs_map, ACPU_DFS_FLAG, 0x0);
248 regmap_write(stub_clk->dfs_map, ACPU_DFS_FREQ_REQ, 0x0);
249 regmap_write(stub_clk->dfs_map, ACPU_DFS_FREQ_LMT, 0x0);