99c13853ff
Patch from Ben Dooks Split the s3c2410 specific clocks from the core clock code, as part of the work to support more of the Samsung line of SoCs. The patch does not use the sysdev mechanism as the clocks are needed for the timer init, which is very early in the kernel init sequence. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
60 lines
1.6 KiB
C
60 lines
1.6 KiB
C
/*
|
|
* linux/arch/arm/mach-s3c2410/clock.h
|
|
*
|
|
* Copyright (c) 2004-2005 Simtec Electronics
|
|
* http://www.simtec.co.uk/products/SWLINUX/
|
|
* Written by Ben Dooks, <ben@simtec.co.uk>
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
struct clk {
|
|
struct list_head list;
|
|
struct module *owner;
|
|
struct clk *parent;
|
|
const char *name;
|
|
int id;
|
|
int usage;
|
|
unsigned long rate;
|
|
unsigned long ctrlbit;
|
|
|
|
int (*enable)(struct clk *, int enable);
|
|
int (*set_rate)(struct clk *c, unsigned long rate);
|
|
unsigned long (*round_rate)(struct clk *c, unsigned long rate);
|
|
int (*set_parent)(struct clk *c, struct clk *parent);
|
|
};
|
|
|
|
/* other clocks which may be registered by board support */
|
|
|
|
extern struct clk s3c24xx_dclk0;
|
|
extern struct clk s3c24xx_dclk1;
|
|
extern struct clk s3c24xx_clkout0;
|
|
extern struct clk s3c24xx_clkout1;
|
|
extern struct clk s3c24xx_uclk;
|
|
|
|
extern struct clk clk_usb_bus;
|
|
|
|
/* core clock support */
|
|
|
|
extern struct clk clk_f;
|
|
extern struct clk clk_h;
|
|
extern struct clk clk_p;
|
|
extern struct clk clk_upll;
|
|
|
|
/* exports for arch/arm/mach-s3c2410
|
|
*
|
|
* Please DO NOT use these outside of arch/arm/mach-s3c2410
|
|
*/
|
|
|
|
extern struct mutex clocks_mutex;
|
|
|
|
extern int s3c2410_clkcon_enable(struct clk *clk, int enable);
|
|
|
|
extern int s3c24xx_register_clock(struct clk *clk);
|
|
|
|
extern int s3c24xx_setup_clocks(unsigned long xtal,
|
|
unsigned long fclk,
|
|
unsigned long hclk,
|
|
unsigned long pclk);
|