12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /* linux/arch/arm/plat-s3c64xx/clock.c
- *
- * Copyright 2008 Openmoko, Inc.
- * Copyright 2008 Simtec Electronics
- * Ben Dooks <ben@simtec.co.uk>
- * http://armlinux.simtec.co.uk/
- *
- * S3C64XX Base clock support
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
- #include <linux/init.h>
- #include <linux/module.h>
- #include <linux/interrupt.h>
- #include <linux/ioport.h>
- #include <linux/clk.h>
- #include <linux/err.h>
- #include <linux/io.h>
- #include <mach/hardware.h>
- #include <mach/map.h>
- #include <mach/regs-sys.h>
- #include <mach/regs-clock.h>
- #include <plat/cpu.h>
- #include <plat/devs.h>
- #include <plat/cpu-freq.h>
- #include <plat/clock.h>
- #include <plat/clock-clksrc.h>
- #include <plat/pll.h>
- /* fin_apll, fin_mpll and fin_epll are all the same clock, which we call
- * ext_xtal_mux for want of an actual name from the manual.
- */
- static struct clk clk_ext_xtal_mux = {
- .name = "ext_xtal",
- };
- #define clk_fin_apll clk_ext_xtal_mux
- #define clk_fin_mpll clk_ext_xtal_mux
- #define clk_fin_epll clk_ext_xtal_mux
- #define clk_fout_mpll clk_mpll
- #define clk_fout_epll clk_epll
- struct clk clk_h2 = {
- .name = "hclk2",
- .rate = 0,
- };
- struct clk clk_27m = {
- .name = "clk_27m",
- .rate = 27000000,
- };
- static int clk_48m_ctrl(struct clk *clk, int enable)
- {
- unsigned long flags;
- u32 val;
- /* can't rely on clock lock, this register has other usages */
- local_irq_save(flags);
|