mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-03 19:24:02 +08:00
34ee550752
The S3C2416/S3C2450 SoCs support two sources for the armclk. The first source is the so called armdiv which divides the msysclk down to provide necessary cpu rates. In this mode the core voltage must be always at 1.3V. The frequency from the armdiv is not allowed to be lower than the hclk frequency. In the second mode the armclk can be sourced directly from the hclk in the so called "dynamic voltags scaling" (dvs) mode. Here the armdiv isn't used at all. Also in this mode the core voltage may be lowered. Existing hardware and tests with it suggest 1.0V as sufficient. When changing the clock source to the armdiv from the hclk, the SoC shows stability issues if the new frequency is higher than the current hclk frequency. Hence the driver always forces the armdiv to the hclk frequency before the source change and lets the cpufreq issue another set_target call for higher frequencies. To mark the hclk frequency as lower as the corresponding armdiv frequency it is set 1MHz below the real frequency. This lets the cpufreq framework change between 133MHz based on hclk and 133MHz based on armdiv at will. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Tested-by: Andrey Gusakov <dron0gus@gmail.com> Signed-off-by: Dave Jones <davej@redhat.com>
53 lines
2.3 KiB
Makefile
53 lines
2.3 KiB
Makefile
# CPUfreq core
|
|
obj-$(CONFIG_CPU_FREQ) += cpufreq.o
|
|
# CPUfreq stats
|
|
obj-$(CONFIG_CPU_FREQ_STAT) += cpufreq_stats.o
|
|
|
|
# CPUfreq governors
|
|
obj-$(CONFIG_CPU_FREQ_GOV_PERFORMANCE) += cpufreq_performance.o
|
|
obj-$(CONFIG_CPU_FREQ_GOV_POWERSAVE) += cpufreq_powersave.o
|
|
obj-$(CONFIG_CPU_FREQ_GOV_USERSPACE) += cpufreq_userspace.o
|
|
obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND) += cpufreq_ondemand.o
|
|
obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE) += cpufreq_conservative.o
|
|
|
|
# CPUfreq cross-arch helpers
|
|
obj-$(CONFIG_CPU_FREQ_TABLE) += freq_table.o
|
|
|
|
##################################################################################
|
|
# x86 drivers.
|
|
# Link order matters. K8 is preferred to ACPI because of firmware bugs in early
|
|
# K8 systems. ACPI is preferred to all other hardware-specific drivers.
|
|
# speedstep-* is preferred over p4-clockmod.
|
|
|
|
obj-$(CONFIG_X86_POWERNOW_K8) += powernow-k8.o mperf.o
|
|
obj-$(CONFIG_X86_ACPI_CPUFREQ) += acpi-cpufreq.o mperf.o
|
|
obj-$(CONFIG_X86_PCC_CPUFREQ) += pcc-cpufreq.o
|
|
obj-$(CONFIG_X86_POWERNOW_K6) += powernow-k6.o
|
|
obj-$(CONFIG_X86_POWERNOW_K7) += powernow-k7.o
|
|
obj-$(CONFIG_X86_LONGHAUL) += longhaul.o
|
|
obj-$(CONFIG_X86_E_POWERSAVER) += e_powersaver.o
|
|
obj-$(CONFIG_ELAN_CPUFREQ) += elanfreq.o
|
|
obj-$(CONFIG_SC520_CPUFREQ) += sc520_freq.o
|
|
obj-$(CONFIG_X86_LONGRUN) += longrun.o
|
|
obj-$(CONFIG_X86_GX_SUSPMOD) += gx-suspmod.o
|
|
obj-$(CONFIG_X86_SPEEDSTEP_ICH) += speedstep-ich.o
|
|
obj-$(CONFIG_X86_SPEEDSTEP_LIB) += speedstep-lib.o
|
|
obj-$(CONFIG_X86_SPEEDSTEP_SMI) += speedstep-smi.o
|
|
obj-$(CONFIG_X86_SPEEDSTEP_CENTRINO) += speedstep-centrino.o
|
|
obj-$(CONFIG_X86_P4_CLOCKMOD) += p4-clockmod.o
|
|
obj-$(CONFIG_X86_CPUFREQ_NFORCE2) += cpufreq-nforce2.o
|
|
|
|
##################################################################################
|
|
# ARM SoC drivers
|
|
obj-$(CONFIG_UX500_SOC_DB8500) += db8500-cpufreq.o
|
|
obj-$(CONFIG_ARM_S3C2416_CPUFREQ) += s3c2416-cpufreq.o
|
|
obj-$(CONFIG_ARM_S3C64XX_CPUFREQ) += s3c64xx-cpufreq.o
|
|
obj-$(CONFIG_ARM_S5PV210_CPUFREQ) += s5pv210-cpufreq.o
|
|
obj-$(CONFIG_ARM_EXYNOS_CPUFREQ) += exynos-cpufreq.o
|
|
obj-$(CONFIG_ARM_EXYNOS4210_CPUFREQ) += exynos4210-cpufreq.o
|
|
obj-$(CONFIG_ARCH_OMAP2PLUS) += omap-cpufreq.o
|
|
|
|
##################################################################################
|
|
# PowerPC platform drivers
|
|
obj-$(CONFIG_CPU_FREQ_MAPLE) += maple-cpufreq.o
|