Lines Matching refs:cpuclk

51 	struct cpu_clk *cpuclk = to_cpu_clk(hwclk);
54 reg = readl(cpuclk->reg_base + SYS_CTRL_CLK_DIVIDER_VALUE_OFFSET);
55 div = (reg >> (cpuclk->cpu * 8)) & SYS_CTRL_CLK_DIVIDER_MASK;
78 struct cpu_clk *cpuclk = to_cpu_clk(hwclk);
83 reg = (readl(cpuclk->reg_base + SYS_CTRL_CLK_DIVIDER_VALUE_OFFSET)
84 & (~(SYS_CTRL_CLK_DIVIDER_MASK << (cpuclk->cpu * 8))))
85 | (div << (cpuclk->cpu * 8));
86 writel(reg, cpuclk->reg_base + SYS_CTRL_CLK_DIVIDER_VALUE_OFFSET);
88 reload_mask = 1 << (20 + cpuclk->cpu);
90 reg = readl(cpuclk->reg_base + SYS_CTRL_CLK_DIVIDER_CTRL_OFFSET)
92 writel(reg, cpuclk->reg_base + SYS_CTRL_CLK_DIVIDER_CTRL_OFFSET);
95 reg = readl(cpuclk->reg_base + SYS_CTRL_CLK_DIVIDER_CTRL_OFFSET)
97 writel(reg, cpuclk->reg_base + SYS_CTRL_CLK_DIVIDER_CTRL_OFFSET);
102 writel(reg, cpuclk->reg_base + SYS_CTRL_CLK_DIVIDER_CTRL_OFFSET);
113 struct cpu_clk *cpuclk = to_cpu_clk(hwclk);
119 if (!cpuclk->pmu_dfs)
124 reg = readl(cpuclk->reg_base + SYS_CTRL_CLK_DIVIDER_CTRL2_OFFSET);
138 reg = readl(cpuclk->pmu_dfs);
141 writel(reg, cpuclk->pmu_dfs);
143 reg = readl(cpuclk->reg_base + SYS_CTRL_CLK_DIVIDER_CTRL_OFFSET);
146 writel(reg, cpuclk->reg_base + SYS_CTRL_CLK_DIVIDER_CTRL_OFFSET);
148 return mvebu_pmsu_dfs_request(cpuclk->cpu);
168 struct cpu_clk *cpuclk;
184 cpuclk = kcalloc(ncpus, sizeof(*cpuclk), GFP_KERNEL);
185 if (WARN_ON(!cpuclk))
202 cpuclk[cpu].parent_name = of_clk_get_parent_name(node, 0);
203 cpuclk[cpu].clk_name = clk_name;
204 cpuclk[cpu].cpu = cpu;
205 cpuclk[cpu].reg_base = clock_complex_base;
207 cpuclk[cpu].pmu_dfs = pmu_dfs_base + 4 * cpu;
208 cpuclk[cpu].hw.init = &init;
210 init.name = cpuclk[cpu].clk_name;
213 init.parent_names = &cpuclk[cpu].parent_name;
216 clk = clk_register(NULL, &cpuclk[cpu].hw);
229 kfree(cpuclk[ncpus].clk_name);
231 kfree(cpuclk);