diff options
Diffstat (limited to 'arch/arm/mach-samsung/generic.c')
-rw-r--r-- | arch/arm/mach-samsung/generic.c | 117 |
1 files changed, 2 insertions, 115 deletions
diff --git a/arch/arm/mach-samsung/generic.c b/arch/arm/mach-samsung/generic.c index 3c24b1aa35..3f6e8014c8 100644 --- a/arch/arm/mach-samsung/generic.c +++ b/arch/arm/mach-samsung/generic.c @@ -28,100 +28,7 @@ #include <clock.h> #include <io.h> #include <mach/s3c-iomap.h> - -/** - * Calculate the current M-PLL clock. - * @return Current frequency in Hz - */ -uint32_t s3c24xx_get_mpllclk(void) -{ - uint32_t m, p, s, reg_val; - - reg_val = readl(MPLLCON); - m = ((reg_val & 0xFF000) >> 12) + 8; - p = ((reg_val & 0x003F0) >> 4) + 2; - s = reg_val & 0x3; -#ifdef CONFIG_CPU_S3C2410 - return (S3C24XX_CLOCK_REFERENCE * m) / (p << s); -#endif -#ifdef CONFIG_CPU_S3C2440 - return 2 * m * (S3C24XX_CLOCK_REFERENCE / (p << s)); -#endif -} - -/** - * Calculate the current U-PLL clock - * @return Current frequency in Hz - */ -uint32_t s3c24xx_get_upllclk(void) -{ - uint32_t m, p, s, reg_val; - - reg_val = readl(UPLLCON); - m = ((reg_val & 0xFF000) >> 12) + 8; - p = ((reg_val & 0x003F0) >> 4) + 2; - s = reg_val & 0x3; - - return (S3C24XX_CLOCK_REFERENCE * m) / (p << s); -} - -/** - * Calculate the FCLK frequency used for the ARM CPU core - * @return Current frequency in Hz - */ -uint32_t s3c24xx_get_fclk(void) -{ - return s3c24xx_get_mpllclk(); -} - -/** - * Calculate the HCLK frequency used for the AHB bus (CPU to main peripheral) - * @return Current frequency in Hz - */ -uint32_t s3c24xx_get_hclk(void) -{ - uint32_t f_clk; - - f_clk = s3c24xx_get_fclk(); -#ifdef CONFIG_CPU_S3C2410 - if (readl(CLKDIVN) & 0x02) - return f_clk >> 1; -#endif -#ifdef CONFIG_CPU_S3C2440 - switch(readl(CLKDIVN) & 0x06) { - case 2: - return f_clk >> 1; - case 4: - return f_clk >> 2; /* TODO consider CAMDIVN */ - case 6: - return f_clk / 3; /* TODO consider CAMDIVN */ - } -#endif - return f_clk; -} - -/** - * Calculate the PCLK frequency used for the slower peripherals - * @return Current frequency in Hz - */ -uint32_t s3c24xx_get_pclk(void) -{ - uint32_t p_clk; - - p_clk = s3c24xx_get_hclk(); - if (readl(CLKDIVN) & 0x01) - return p_clk >> 1; - return p_clk; -} - -/** - * Calculate the UCLK frequency used by the USB host device - * @return Current frequency in Hz - */ -uint32_t s3c24xx_get_uclk(void) -{ - return s3c24xx_get_upllclk(); -} +#include <mach/s3c-generic.h> /** * Calculate the amount of connected and available memory @@ -169,26 +76,6 @@ uint32_t s3c24x0_get_memory_size(void) return size; } -/** - * Show the user the current clock settings - */ -int s3c24xx_dump_clocks(void) -{ - printf("refclk: %7d kHz\n", S3C24XX_CLOCK_REFERENCE / 1000); - printf("mpll: %7d kHz\n", s3c24xx_get_mpllclk() / 1000); - printf("upll: %7d kHz\n", s3c24xx_get_upllclk() / 1000); - printf("fclk: %7d kHz\n", s3c24xx_get_fclk() / 1000); - printf("hclk: %7d kHz\n", s3c24xx_get_hclk() / 1000); - printf("pclk: %7d kHz\n", s3c24xx_get_pclk() / 1000); - printf("SDRAM1: CL%d@%dMHz\n", ((readl(BANKCON6) & 0xc) >> 2) + 2, s3c24xx_get_hclk() / 1000000); - if ((readl(BANKCON7) & (0x3 << 15)) == (0x3 << 15)) - printf("SDRAM2: CL%d@%dMHz\n", ((readl(BANKCON7) & 0xc) >> 2) + 2, - s3c24xx_get_hclk() / 1000000); - return 0; -} - -late_initcall(s3c24xx_dump_clocks); - static uint64_t s3c24xx_clocksource_read(void) { /* note: its a down counter */ @@ -203,7 +90,7 @@ static struct clocksource cs = { static int clocksource_init (void) { - uint32_t p_clk = s3c24xx_get_pclk(); + uint32_t p_clk = s3c_get_pclk(); writel(0x00000000, TCON); /* stop all timers */ writel(0x00ffffff, TCFG0); /* PCLK / (255 + 1) for timer 4 */ |