Searched refs:stub_clk (Results 1 - 1 of 1) sorted by relevance
/linux-4.4.14/drivers/clk/hisilicon/ |
H A D | clk-hi6220-stub.c | 71 static unsigned int hi6220_acpu_get_freq(struct hi6220_stub_clk *stub_clk) hi6220_acpu_get_freq() argument 75 regmap_read(stub_clk->dfs_map, ACPU_DFS_CUR_FREQ, &freq); hi6220_acpu_get_freq() 79 static int hi6220_acpu_set_freq(struct hi6220_stub_clk *stub_clk, hi6220_acpu_set_freq() argument 85 regmap_write(stub_clk->dfs_map, ACPU_DFS_FREQ_REQ, freq); hi6220_acpu_set_freq() 93 mbox_send_message(stub_clk->mbox, &data); hi6220_acpu_set_freq() 97 static int hi6220_acpu_round_freq(struct hi6220_stub_clk *stub_clk, hi6220_acpu_round_freq() argument 104 regmap_read(stub_clk->dfs_map, ACPU_DFS_FLAG, &limit_flag); hi6220_acpu_round_freq() 106 regmap_read(stub_clk->dfs_map, ACPU_DFS_FREQ_LMT, &limit_freq); hi6220_acpu_round_freq() 109 regmap_read(stub_clk->dfs_map, ACPU_DFS_FREQ_MAX, &max_freq); hi6220_acpu_round_freq() 124 struct hi6220_stub_clk *stub_clk = to_stub_clk(hw); hi6220_stub_clk_recalc_rate() local 126 switch (stub_clk->id) { hi6220_stub_clk_recalc_rate() 128 rate = hi6220_acpu_get_freq(stub_clk); hi6220_stub_clk_recalc_rate() 135 dev_err(stub_clk->dev, "%s: un-supported clock id %d\n", hi6220_stub_clk_recalc_rate() 136 __func__, stub_clk->id); hi6220_stub_clk_recalc_rate() 146 struct hi6220_stub_clk *stub_clk = to_stub_clk(hw); hi6220_stub_clk_set_rate() local 150 switch (stub_clk->id) { hi6220_stub_clk_set_rate() 152 ret = hi6220_acpu_set_freq(stub_clk, new_rate); hi6220_stub_clk_set_rate() 159 dev_err(stub_clk->dev, "%s: un-supported clock id %d\n", hi6220_stub_clk_set_rate() 160 __func__, stub_clk->id); hi6220_stub_clk_set_rate() 171 struct hi6220_stub_clk *stub_clk = to_stub_clk(hw); hi6220_stub_clk_round_rate() local 174 switch (stub_clk->id) { hi6220_stub_clk_round_rate() 176 new_rate = hi6220_acpu_round_freq(stub_clk, new_rate); hi6220_stub_clk_round_rate() 183 dev_err(stub_clk->dev, "%s: un-supported clock id %d\n", hi6220_stub_clk_round_rate() 184 __func__, stub_clk->id); hi6220_stub_clk_round_rate() 201 struct hi6220_stub_clk *stub_clk; hi6220_stub_clk_probe() local 206 stub_clk = devm_kzalloc(dev, sizeof(*stub_clk), GFP_KERNEL); hi6220_stub_clk_probe() 207 if (!stub_clk) hi6220_stub_clk_probe() 210 stub_clk->dfs_map = syscon_regmap_lookup_by_phandle(np, hi6220_stub_clk_probe() 212 if (IS_ERR(stub_clk->dfs_map)) { hi6220_stub_clk_probe() 214 return PTR_ERR(stub_clk->dfs_map); hi6220_stub_clk_probe() 217 stub_clk->hw.init = &init; hi6220_stub_clk_probe() 218 stub_clk->dev = dev; hi6220_stub_clk_probe() 219 stub_clk->id = HI6220_STUB_ACPU0; hi6220_stub_clk_probe() 222 stub_clk->cl.dev = dev; hi6220_stub_clk_probe() 223 stub_clk->cl.tx_done = NULL; hi6220_stub_clk_probe() 224 stub_clk->cl.tx_block = true; hi6220_stub_clk_probe() 225 stub_clk->cl.tx_tout = 500; hi6220_stub_clk_probe() 226 stub_clk->cl.knows_txdone = false; hi6220_stub_clk_probe() 229 stub_clk->mbox = mbox_request_channel(&stub_clk->cl, 0); hi6220_stub_clk_probe() 230 if (IS_ERR(stub_clk->mbox)) { hi6220_stub_clk_probe() 232 return PTR_ERR(stub_clk->mbox); hi6220_stub_clk_probe() 240 clk = devm_clk_register(dev, &stub_clk->hw); hi6220_stub_clk_probe() 251 regmap_write(stub_clk->dfs_map, ACPU_DFS_FLAG, 0x0); hi6220_stub_clk_probe() 252 regmap_write(stub_clk->dfs_map, ACPU_DFS_FREQ_REQ, 0x0); hi6220_stub_clk_probe() 253 regmap_write(stub_clk->dfs_map, ACPU_DFS_FREQ_LMT, 0x0); hi6220_stub_clk_probe()
|
Completed in 66 milliseconds