[ARM] 5474/1: U300 clocking framework
This adds the clocking framework and hooks into the clkdevice for U300 series platforms. Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
bd41b99d46
commit
cd27e48541
3 changed files with 1547 additions and 0 deletions
1487
arch/arm/mach-u300/clock.c
Normal file
1487
arch/arm/mach-u300/clock.c
Normal file
File diff suppressed because it is too large
Load diff
53
arch/arm/mach-u300/clock.h
Normal file
53
arch/arm/mach-u300/clock.h
Normal file
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
* arch/arm/mach-u300/include/mach/clock.h
|
||||
*
|
||||
* Copyright (C) 2004 - 2005 Nokia corporation
|
||||
* Written by Tuukka Tikkanen <tuukka.tikkanen@elektrobit.com>
|
||||
* Based on clocks.h by Tony Lindgren, Gordon McNutt and RidgeRun, Inc
|
||||
* Copyright (C) 2007-2009 ST-Ericsson AB
|
||||
* Adopted to ST-Ericsson U300 platforms by
|
||||
* Jonas Aaberg <jonas.aberg@stericsson.com>
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __MACH_CLOCK_H
|
||||
#define __MACH_CLOCK_H
|
||||
|
||||
#include <linux/clk.h>
|
||||
|
||||
struct clk {
|
||||
struct list_head node;
|
||||
struct module *owner;
|
||||
struct device *dev;
|
||||
const char *name;
|
||||
struct clk *parent;
|
||||
|
||||
spinlock_t lock;
|
||||
unsigned long rate;
|
||||
bool reset;
|
||||
__u16 clk_val;
|
||||
__s8 usecount;
|
||||
__u32 res_reg;
|
||||
__u16 res_mask;
|
||||
|
||||
bool hw_ctrld;
|
||||
|
||||
void (*recalc) (struct clk *);
|
||||
int (*set_rate) (struct clk *, unsigned long);
|
||||
unsigned long (*get_rate) (struct clk *);
|
||||
unsigned long (*round_rate) (struct clk *, unsigned long);
|
||||
void (*init) (struct clk *);
|
||||
void (*enable) (struct clk *);
|
||||
void (*disable) (struct clk *);
|
||||
};
|
||||
|
||||
void u300_clock_primecells(void);
|
||||
void u300_unclock_primecells(void);
|
||||
void u300_enable_intcon_clock(void);
|
||||
void u300_enable_timer_clock(void);
|
||||
|
||||
#endif
|
7
arch/arm/mach-u300/include/mach/clkdev.h
Normal file
7
arch/arm/mach-u300/include/mach/clkdev.h
Normal file
|
@ -0,0 +1,7 @@
|
|||
#ifndef __MACH_CLKDEV_H
|
||||
#define __MACH_CLKDEV_H
|
||||
|
||||
int __clk_get(struct clk *clk);
|
||||
void __clk_put(struct clk *clk);
|
||||
|
||||
#endif
|
Loading…
Reference in a new issue