mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
ARM: SoC cleanups for 3.16
Cleanups for 3.16. Among these are:
- A bunch of misc cleanups for Broadcom platforms, mostly housekeeping
- Enabling Common Clock Framework on the older s3c24xx Samsung chipsets
- Cleanup of the Versatile Express system controller code, moving it to syscon
- Power management cleanups for OMAP platforms
+ a handful of other cleanups across the place
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.14 (GNU/Linux)
iQIcBAABAgAGBQJTjMwHAAoJEIwa5zzehBx3MjMP/iELgDsqbNE2wxF9Fb5EEnoe
S11q1QIvVrMVdMcKFN5HfW7f+xNso6+4SwXW0cRrJokGvaqRE758WZWuZq0QBUeS
RYMhfpqmI6pTTJUyy6i6OyXhuRqu8rQ1NPEAatYrKzmtwFX1H4t25f1YtZWhBcK8
ONi45FHeH1OKGGpjpT63uhWEzLk+LZI2MtgxmWoFcemf7guX6vEPJVuVRi8eqLoS
9vl1cAkweYgGhjvQFcSXENaguV50dZlLc9C41dJk9KVvJfRt7o+/cRbG5YpGvnp5
Liu+OWM72w0BkgNk6wDN4kaPX5UGLF8QX11JlvDRCJ2FcPtM4NBG/C9TqLMfkKDR
Ze+ITiXh6NjefdTZWJaM4vzsd6vFws8EYAP24IWFlZ451bNLVN1lzlgqluPNoKmj
CAsFPZhY/x5X9a8VLZ72ohx3N17T/iMsOlbiWtnlfqDcL6N0IoLG1YkFFeQIKEAH
mpobWus8Myq1miWqSaeXh5wOqUVQmYR0I8jNoTfte1nBYSaIGhtMixoQhM6Zw50C
dgSh4p7qhrZUOnYmkPqFXr7NCJ9n3RD10Xu8d/3IIp0u9RJ5Kx6NCEg9adq22jZQ
XGrr/vH0sM8MzpKmfTMi5t2Cx5kP2G+O3enq0hQi4x3Cb4o8vwWQlMgydTd+xBjj
aLo3WTTw0h6nTuKkZL2p
=wuX4
-----END PGP SIGNATURE-----
Merge tag 'cleanup-for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc into next
Pull ARM SoC cleanups from Olof Johansson:
"Cleanups for 3.16. Among these are:
- a bunch of misc cleanups for Broadcom platforms, mostly
housekeeping
- enabling Common Clock Framework on the older s3c24xx Samsung
chipsets
- cleanup of the Versatile Express system controller code, moving it
to syscon
- power management cleanups for OMAP platforms
plus a handful of other cleanups across the place"
* tag 'cleanup-for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (87 commits)
ARM: kconfig: allow PCI support to be selected with ARCH_MULTIPLATFORM
clk: samsung: fix build error
ARM: vexpress: refine dependencies for new code
clk: samsung: clk-s3c2410-dlck: do not use PNAME macro as it declares __initdata
cpufreq: exynos: Fix the compile error
ARM: S3C24XX: move debug-macro.S into the common space
ARM: S3C24XX: use generic DEBUG_UART_PHY/_VIRT in debug macro
ARM: S3C24XX: trim down debug uart handling
ARM: compressed/head.S: remove s3c24xx special case
ARM: EXYNOS: Remove unnecessary inclusion of cpu.h
ARM: EXYNOS: Migrate Exynos specific macros from plat to mach
ARM: EXYNOS: Remove exynos_subsys registration
ARM: EXYNOS: Remove duplicate lines in Makefile
ARM: EXYNOS: use v7_exit_coherency_flush macro for cache disabling
ARM: OMAP4: PRCM: remove references to cm-regbits-44xx.h from PRCM core files
ARM: OMAP3/4: PRM: add support of late_init call to prm_ll_ops
ARM: OMAP3/OMAP4: PRM: add prm_features flags and add IO wakeup under it
ARM: OMAP3/4: PRM: provide io chain reconfig function through irq setup
ARM: OMAP2+: PRM: remove unnecessary cpu_is_XXX calls from prm_init / exit
ARM: OMAP2+: PRCM: cleanup some header includes
...
This commit is contained in:
commit
0a58471541
211 changed files with 4666 additions and 5172 deletions
|
|
@ -17,6 +17,7 @@
|
|||
#include <linux/regulator/consumer.h>
|
||||
#include <linux/cpufreq.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/of.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
|
||||
|
|
@ -163,14 +164,22 @@ static int exynos_cpufreq_probe(struct platform_device *pdev)
|
|||
if (!exynos_info)
|
||||
return -ENOMEM;
|
||||
|
||||
if (soc_is_exynos4210())
|
||||
if (of_machine_is_compatible("samsung,exynos4210")) {
|
||||
exynos_info->type = EXYNOS_SOC_4210;
|
||||
ret = exynos4210_cpufreq_init(exynos_info);
|
||||
else if (soc_is_exynos4212() || soc_is_exynos4412())
|
||||
} else if (of_machine_is_compatible("samsung,exynos4212")) {
|
||||
exynos_info->type = EXYNOS_SOC_4212;
|
||||
ret = exynos4x12_cpufreq_init(exynos_info);
|
||||
else if (soc_is_exynos5250())
|
||||
} else if (of_machine_is_compatible("samsung,exynos4412")) {
|
||||
exynos_info->type = EXYNOS_SOC_4412;
|
||||
ret = exynos4x12_cpufreq_init(exynos_info);
|
||||
} else if (of_machine_is_compatible("samsung,exynos5250")) {
|
||||
exynos_info->type = EXYNOS_SOC_5250;
|
||||
ret = exynos5250_cpufreq_init(exynos_info);
|
||||
else
|
||||
return 0;
|
||||
} else {
|
||||
pr_err("%s: Unknown SoC type\n", __func__);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
if (ret)
|
||||
goto err_vdd_arm;
|
||||
|
|
|
|||
|
|
@ -17,6 +17,13 @@ enum cpufreq_level_index {
|
|||
L20,
|
||||
};
|
||||
|
||||
enum exynos_soc_type {
|
||||
EXYNOS_SOC_4210,
|
||||
EXYNOS_SOC_4212,
|
||||
EXYNOS_SOC_4412,
|
||||
EXYNOS_SOC_5250,
|
||||
};
|
||||
|
||||
#define APLL_FREQ(f, a0, a1, a2, a3, a4, a5, a6, a7, b0, b1, b2, m, p, s) \
|
||||
{ \
|
||||
.freq = (f) * 1000, \
|
||||
|
|
@ -34,6 +41,7 @@ struct apll_freq {
|
|||
};
|
||||
|
||||
struct exynos_dvfs_info {
|
||||
enum exynos_soc_type type;
|
||||
unsigned long mpll_freq_khz;
|
||||
unsigned int pll_safe_idx;
|
||||
struct clk *cpu_clk;
|
||||
|
|
|
|||
|
|
@ -100,7 +100,6 @@ static struct apll_freq apll_freq_4412[] = {
|
|||
static void exynos4x12_set_clkdiv(unsigned int div_index)
|
||||
{
|
||||
unsigned int tmp;
|
||||
unsigned int stat_cpu1;
|
||||
|
||||
/* Change Divider - CPU0 */
|
||||
|
||||
|
|
@ -115,13 +114,11 @@ static void exynos4x12_set_clkdiv(unsigned int div_index)
|
|||
tmp = apll_freq_4x12[div_index].clk_div_cpu1;
|
||||
|
||||
__raw_writel(tmp, EXYNOS4_CLKDIV_CPU1);
|
||||
if (soc_is_exynos4212())
|
||||
stat_cpu1 = 0x11;
|
||||
else
|
||||
stat_cpu1 = 0x111;
|
||||
|
||||
while (__raw_readl(EXYNOS4_CLKDIV_STATCPU1) & stat_cpu1)
|
||||
do {
|
||||
cpu_relax();
|
||||
tmp = __raw_readl(EXYNOS4_CLKDIV_STATCPU1);
|
||||
} while (tmp != 0x0);
|
||||
}
|
||||
|
||||
static void exynos4x12_set_apll(unsigned int index)
|
||||
|
|
@ -184,7 +181,7 @@ int exynos4x12_cpufreq_init(struct exynos_dvfs_info *info)
|
|||
if (IS_ERR(mout_apll))
|
||||
goto err_mout_apll;
|
||||
|
||||
if (soc_is_exynos4212())
|
||||
if (info->type == EXYNOS_SOC_4212)
|
||||
apll_freq_4x12 = apll_freq_4212;
|
||||
else
|
||||
apll_freq_4x12 = apll_freq_4412;
|
||||
|
|
|
|||
|
|
@ -141,6 +141,7 @@ static int s3c_cpufreq_calcdivs(struct s3c_cpufreq_config *cfg)
|
|||
|
||||
static void s3c_cpufreq_setfvco(struct s3c_cpufreq_config *cfg)
|
||||
{
|
||||
cfg->mpll = _clk_mpll;
|
||||
(cfg->info->set_fvco)(cfg);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue