Lines Matching +full:speed +full:- +full:grade
1 // SPDX-License-Identifier: GPL-2.0
5 * The sun50i-cpufreq-nvmem driver reads the efuse value from the SoC to
14 #include <linux/nvmem-consumer.h>
28 * sun50i_cpufreq_get_efuse() - Determine speed grade from efuse value
44 return -ENODEV; in sun50i_cpufreq_get_efuse()
48 return -ENOENT; in sun50i_cpufreq_get_efuse()
51 "allwinner,sun50i-h6-operating-points"); in sun50i_cpufreq_get_efuse()
54 return -ENOENT; in sun50i_cpufreq_get_efuse()
60 if (PTR_ERR(speedbin_nvmem) != -EPROBE_DEFER) in sun50i_cpufreq_get_efuse()
75 * the slowest bin. Expected efuse values are 1-3, slowest in sun50i_cpufreq_get_efuse()
79 *versions = efuse_value - 1; in sun50i_cpufreq_get_efuse()
92 u32 speed = 0; in sun50i_cpufreq_nvmem_probe() local
98 return -ENOMEM; in sun50i_cpufreq_nvmem_probe()
100 ret = sun50i_cpufreq_get_efuse(&speed); in sun50i_cpufreq_nvmem_probe()
106 snprintf(name, MAX_NAME_LEN, "speed%d", speed); in sun50i_cpufreq_nvmem_probe()
112 ret = -ENODEV; in sun50i_cpufreq_nvmem_probe()
124 cpufreq_dt_pdev = platform_device_register_simple("cpufreq-dt", -1, in sun50i_cpufreq_nvmem_probe()
164 .name = "sun50i-cpufreq-nvmem",
169 { .compatible = "allwinner,sun50i-h6" },
198 return -ENODEV; in sun50i_cpufreq_init()
205 platform_device_register_simple("sun50i-cpufreq-nvmem", in sun50i_cpufreq_init()
206 -1, NULL, 0); in sun50i_cpufreq_init()
223 MODULE_DESCRIPTION("Sun50i-h6 cpufreq driver");