ARM: S3C64XX: Migrate clock handling to Common Clock Framework
This patch migrates the s3c64xx platform to use the new clock driver using Common Clock Framework. Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/serial_core.h>
|
||||
@@ -38,7 +39,6 @@
|
||||
#include <mach/regs-gpio.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/clock.h>
|
||||
#include <plat/devs.h>
|
||||
#include <plat/pm.h>
|
||||
#include <plat/gpio-cfg.h>
|
||||
@@ -50,6 +50,19 @@
|
||||
|
||||
#include "common.h"
|
||||
|
||||
/* External clock frequency */
|
||||
static unsigned long xtal_f = 12000000, xusbxti_f = 48000000;
|
||||
|
||||
void __init s3c64xx_set_xtal_freq(unsigned long freq)
|
||||
{
|
||||
xtal_f = freq;
|
||||
}
|
||||
|
||||
void __init s3c64xx_set_xusbxti_freq(unsigned long freq)
|
||||
{
|
||||
xusbxti_f = freq;
|
||||
}
|
||||
|
||||
/* uart registration process */
|
||||
|
||||
static void __init s3c64xx_init_uarts(struct s3c2410_uartcfg *cfg, int no)
|
||||
@@ -67,7 +80,6 @@ static struct cpu_table cpu_ids[] __initdata = {
|
||||
.idcode = S3C6400_CPU_ID,
|
||||
.idmask = S3C64XX_CPU_MASK,
|
||||
.map_io = s3c6400_map_io,
|
||||
.init_clocks = s3c6400_init_clocks,
|
||||
.init_uarts = s3c64xx_init_uarts,
|
||||
.init = s3c6400_init,
|
||||
.name = name_s3c6400,
|
||||
@@ -75,7 +87,6 @@ static struct cpu_table cpu_ids[] __initdata = {
|
||||
.idcode = S3C6410_CPU_ID,
|
||||
.idmask = S3C64XX_CPU_MASK,
|
||||
.map_io = s3c6410_map_io,
|
||||
.init_clocks = s3c6410_init_clocks,
|
||||
.init_uarts = s3c64xx_init_uarts,
|
||||
.init = s3c6410_init,
|
||||
.name = name_s3c6410,
|
||||
@@ -213,8 +224,10 @@ void __init s3c64xx_init_irq(u32 vic0_valid, u32 vic1_valid)
|
||||
{
|
||||
/*
|
||||
* FIXME: there is no better place to put this at the moment
|
||||
* (samsung_wdt_reset_init needs clocks)
|
||||
* (s3c64xx_clk_init needs ioremap and must happen before init_time
|
||||
* samsung_wdt_reset_init needs clocks)
|
||||
*/
|
||||
s3c64xx_clk_init(NULL, xtal_f, xusbxti_f, soc_is_s3c6400(), S3C_VA_SYS);
|
||||
samsung_wdt_reset_init(S3C_VA_WATCHDOG);
|
||||
|
||||
printk(KERN_DEBUG "%s: initialising interrupts\n", __func__);
|
||||
|
Reference in New Issue
Block a user