Lines Matching +full:ramp +full:- +full:speed
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (C) 2002 - 2005 Benjamin Herrenschmidt <benh@kernel.crashing.org>
4 * and Markus Demleitner <msdemlei@cl.uni-heidelberg.de>
41 #define PCR_SPEED_FULL 0x00000000U /* 1:1 speed value */
42 #define PCR_SPEED_HALF 0x00020000U /* 1:2 speed value */
43 #define PCR_SPEED_QUARTER 0x00040000U /* 1:4 speed value */
44 #define PCR_SPEED_MASK 0x000e0000U /* speed mask */
57 #define PSR_CUR_SPEED_MASK 0x0300000000000000U /* current speed */
61 * The G5 only supports two frequencies (Quarter speed is not supported)
73 * the various frequencies, retrieved from the device-tree
152 /* If frequency is going up, first ramp up the voltage */ in g5_scom_switch_freq()
182 /* If frequency is going down, last ramp the voltage */ in g5_scom_switch_freq()
257 /* If frequency is going up, first ramp up the voltage */ in g5_pfunc_switch_freq()
286 /* If frequency is going down, last ramp the voltage */ in g5_pfunc_switch_freq()
350 int rc = -ENODEV; in g5_neo2_cpufreq_init()
361 return -ENODEV; in g5_neo2_cpufreq_init()
364 valp = of_get_property(cpunode, "cpu-version", NULL); in g5_neo2_cpufreq_init()
366 DBG("No cpu-version property !\n"); in g5_neo2_cpufreq_init()
375 /* Look for the powertune data in the device-tree */ in g5_neo2_cpufreq_init()
376 g5_pmode_data = of_get_property(cpunode, "power-mode-data",&psize); in g5_neo2_cpufreq_init()
378 DBG("No power-mode-data !\n"); in g5_neo2_cpufreq_init()
381 g5_pmode_max = psize / sizeof(u32) - 1; in g5_neo2_cpufreq_init()
391 ssize = (shdr->len * sizeof(u32)) - sizeof(*shdr); in g5_neo2_cpufreq_init()
409 pfunc_set_vdnap0 = pmf_find_function(root, "set-vdnap0"); in g5_neo2_cpufreq_init()
411 pmf_find_function(root, "slewing-done"); in g5_neo2_cpufreq_init()
427 * From what I see, clock-frequency is always the maximal frequency. in g5_neo2_cpufreq_init()
433 valp = of_get_property(cpunode, "clock-frequency", NULL); in g5_neo2_cpufreq_init()
435 return -ENODEV; in g5_neo2_cpufreq_init()
452 g5_pmode_cur = -1; in g5_neo2_cpufreq_init()
466 * hotplug CPU with a dynamic device-tree ... in g5_neo2_cpufreq_init()
496 rc = -ENODEV; in g5_pm72_cpufreq_init()
501 for_each_node_by_name(hwclock, "i2c-hwclock") { in g5_pm72_cpufreq_init()
503 "hwctrl-location", NULL); in g5_pm72_cpufreq_init()
508 if (!of_get_property(hwclock, "platform-get-frequency", NULL)) in g5_pm72_cpufreq_init()
514 rc = -ENODEV; in g5_pm72_cpufreq_init()
522 pmf_find_function(hwclock, "get-frequency"); in g5_pm72_cpufreq_init()
524 pmf_find_function(hwclock, "set-frequency-high"); in g5_pm72_cpufreq_init()
526 pmf_find_function(hwclock, "set-frequency-low"); in g5_pm72_cpufreq_init()
528 pmf_find_function(hwclock, "slewing-done"); in g5_pm72_cpufreq_init()
530 pmf_find_function(hwclock, "set-voltage-high-0"); in g5_pm72_cpufreq_init()
532 pmf_find_function(hwclock, "set-voltage-low-0"); in g5_pm72_cpufreq_init()
534 pmf_find_function(hwclock, "set-voltage-high-1"); in g5_pm72_cpufreq_init()
536 pmf_find_function(hwclock, "set-voltage-low-1"); in g5_pm72_cpufreq_init()
542 rc = -ENODEV; in g5_pm72_cpufreq_init()
560 /* Note: The device tree also contains a "platform-set-values" in g5_pm72_cpufreq_init()
566 /* Get max frequency from device-tree */ in g5_pm72_cpufreq_init()
567 valp = of_get_property(cpunode, "clock-frequency", NULL); in g5_pm72_cpufreq_init()
570 rc = -ENODEV; in g5_pm72_cpufreq_init()
586 rc = -ENODEV; in g5_pm72_cpufreq_init()
597 rc = -ENXIO; in g5_pm72_cpufreq_init()
617 g5_pmode_cur = -1; in g5_pm72_cpufreq_init()
656 return -ENODEV; in g5_cpufreq_init()