Module Name: src Committed By: reinoud Date: Thu Oct 2 11:17:50 UTC 2014
Modified Files: src/sys/arch/arm/samsung: exynos_soc.c Log Message: Disable maximum frequency setting for exynos5 While here add more known frequency settings for exynos4. They are currently disabled since derived clocks are not adjusted. To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/sys/arch/arm/samsung/exynos_soc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/samsung/exynos_soc.c diff -u src/sys/arch/arm/samsung/exynos_soc.c:1.23 src/sys/arch/arm/samsung/exynos_soc.c:1.24 --- src/sys/arch/arm/samsung/exynos_soc.c:1.23 Tue Sep 30 14:23:41 2014 +++ src/sys/arch/arm/samsung/exynos_soc.c Thu Oct 2 11:17:50 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: exynos_soc.c,v 1.23 2014/09/30 14:23:41 reinoud Exp $ */ +/* $NetBSD: exynos_soc.c,v 1.24 2014/10/02 11:17:50 reinoud Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ #define _ARM32_BUS_DMA_PRIVATE #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: exynos_soc.c,v 1.23 2014/09/30 14:23:41 reinoud Exp $"); +__KERNEL_RCSID(1, "$NetBSD: exynos_soc.c,v 1.24 2014/10/02 11:17:50 reinoud Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -92,11 +92,16 @@ const struct cpu_freq cpu_freq_settings_ {1300, 6, 325, 0}, {1400, 3, 175, 0}, {1600, 3, 200, 0}, +// {1704, 3, 213, 0}, +// {1800, 4, 300, 0}, +// {1920, 3, 240, 0}, +// {2000, 3, 250, 0}, }; #endif #ifdef EXYNOS5 +#define EXYNOS5_DEFAULT_ENTRY 7 const struct cpu_freq cpu_freq_settings_exynos5[] = { { 200, 3, 100, 2}, { 333, 4, 222, 2}, @@ -105,6 +110,7 @@ const struct cpu_freq cpu_freq_settings_ { 600, 4, 200, 1}, { 667, 7, 389, 1}, { 800, 3, 100, 0}, + { 900, 4, 150, 0}, {1000, 3, 125, 0}, {1066, 12, 533, 0}, {1200, 3, 150, 0}, @@ -117,7 +123,7 @@ static struct cpu_freq const *cpu_freq_s static int ncpu_freq_settings = 0; static int cpu_freq_target = 0; -#define NFRQS 15 +#define NFRQS 18 static char sysctl_cpu_freqs_txt[NFRQS*5]; bus_space_handle_t exynos_core_bsh; @@ -477,13 +483,21 @@ exynos_clocks_bootstrap(void) { KASSERT(ncpu_freq_settings != 0); KASSERT(ncpu_freq_settings < NFRQS); + int fsel; #ifdef VERBOSE_INIT_ARM exynos_dump_clocks(); #endif - /* set max cpufreq */ - exynos_set_cpufreq(&cpu_freq_settings[ncpu_freq_settings-1]); + /* set (max) cpufreq */ + fsel = ncpu_freq_settings-1; + +#ifdef EXYNOS5 + /* XXX BUGFIX selecting freq on E5 goes wrong for now XXX */ + fsel = EXYNOS5_DEFAULT_ENTRY; +#endif + + exynos_set_cpufreq(&cpu_freq_settings[fsel]); /* set external USB frequency to XCLKOUT */ exynos_init_clkout_for_usb();