Lines Matching refs:ndiv
55 void (*set_cpu_ndiv)(struct cpufreq_policy *policy, u64 ndiv);
57 int (*get_cpu_ndiv)(u32 cpu, u32 cpuid, u32 clusterid, u64 *ndiv);
116 static int tegra234_get_cpu_ndiv(u32 cpu, u32 cpuid, u32 clusterid, u64 *ndiv)
126 *ndiv = readl(freq_core_reg) & NDIV_MASK;
131 static void tegra234_set_cpu_ndiv(struct cpufreq_policy *policy, u64 ndiv)
145 writel(ndiv, freq_core_reg);
227 *nltbl, u16 ndiv)
229 return nltbl->ref_clk_hz / KHZ * ndiv / (nltbl->pdiv * nltbl->mdiv);
331 static void tegra194_get_cpu_ndiv_sysreg(void *ndiv)
337 *(u64 *)ndiv = ndiv_val;
340 static int tegra194_get_cpu_ndiv(u32 cpu, u32 cpuid, u32 clusterid, u64 *ndiv)
342 return smp_call_function_single(cpu, tegra194_get_cpu_ndiv_sysreg, &ndiv, true);
352 static void tegra194_set_cpu_ndiv(struct cpufreq_policy *policy, u64 ndiv)
354 on_each_cpu_mask(policy->cpus, tegra194_set_cpu_ndiv_sysreg, &ndiv, true);
363 u64 ndiv;
371 /* get last written ndiv value */
372 ret = data->soc->ops->get_cpu_ndiv(cpu, cpuid, clusterid, &ndiv);
379 * to the last written ndiv value from freq_table. This is
383 if (pos->driver_data != ndiv)
387 pr_warn("cpufreq: cpu%d,cur:%u,set:%u,set ndiv:%llu\n",
388 cpu, rate, pos->frequency, ndiv);
596 unsigned int num_freqs, ndiv, delta_ndiv;
648 for (index = 0, ndiv = resp.ndiv_min;
649 ndiv < resp.ndiv_max;
650 index++, ndiv += freq_table_step_size) {
651 freq_table[index].driver_data = ndiv;
652 freq_table[index].frequency = map_ndiv_to_freq(&resp, ndiv);