-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[ARM] 3040/1: AAEC-2000 - Preliminary clock interface support
Patch from Bellido Nicolas Here is a preliminary clock interface support for the AAEC-2000. Signed-off-by: Nicolas Bellido <ml@acolin.be> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
- Loading branch information
Bellido Nicolas
authored and
Russell King
committed
Oct 28, 2005
1 parent
4a91ca2
commit 4224b67
Showing
3 changed files
with
134 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
/* | ||
* linux/arch/arm/mach-aaec2000/clock.c | ||
* | ||
* Copyright (C) 2005 Nicolas Bellido Y Ortega | ||
* | ||
* Based on linux/arch/arm/mach-integrator/clock.c | ||
* | ||
* 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/module.h> | ||
#include <linux/kernel.h> | ||
#include <linux/list.h> | ||
#include <linux/errno.h> | ||
#include <linux/err.h> | ||
|
||
#include <asm/semaphore.h> | ||
#include <asm/hardware/clock.h> | ||
|
||
#include "clock.h" | ||
|
||
static LIST_HEAD(clocks); | ||
static DECLARE_MUTEX(clocks_sem); | ||
|
||
struct clk *clk_get(struct device *dev, const char *id) | ||
{ | ||
struct clk *p, *clk = ERR_PTR(-ENOENT); | ||
|
||
down(&clocks_sem); | ||
list_for_each_entry(p, &clocks, node) { | ||
if (strcmp(id, p->name) == 0 && try_module_get(p->owner)) { | ||
clk = p; | ||
break; | ||
} | ||
} | ||
up(&clocks_sem); | ||
|
||
return clk; | ||
} | ||
EXPORT_SYMBOL(clk_get); | ||
|
||
void clk_put(struct clk *clk) | ||
{ | ||
module_put(clk->owner); | ||
} | ||
EXPORT_SYMBOL(clk_put); | ||
|
||
int clk_enable(struct clk *clk) | ||
{ | ||
return 0; | ||
} | ||
EXPORT_SYMBOL(clk_enable); | ||
|
||
void clk_disable(struct clk *clk) | ||
{ | ||
} | ||
EXPORT_SYMBOL(clk_disable); | ||
|
||
int clk_use(struct clk *clk) | ||
{ | ||
return 0; | ||
} | ||
EXPORT_SYMBOL(clk_use); | ||
|
||
void clk_unuse(struct clk *clk) | ||
{ | ||
} | ||
EXPORT_SYMBOL(clk_unuse); | ||
|
||
unsigned long clk_get_rate(struct clk *clk) | ||
{ | ||
return clk->rate; | ||
} | ||
EXPORT_SYMBOL(clk_get_rate); | ||
|
||
long clk_round_rate(struct clk *clk, unsigned long rate) | ||
{ | ||
return rate; | ||
} | ||
EXPORT_SYMBOL(clk_round_rate); | ||
|
||
int clk_set_rate(struct clk *clk, unsigned long rate) | ||
{ | ||
return 0; | ||
} | ||
EXPORT_SYMBOL(clk_set_rate); | ||
|
||
int clk_register(struct clk *clk) | ||
{ | ||
down(&clocks_sem); | ||
list_add(&clk->node, &clocks); | ||
up(&clocks_sem); | ||
return 0; | ||
} | ||
EXPORT_SYMBOL(clk_register); | ||
|
||
void clk_unregister(struct clk *clk) | ||
{ | ||
down(&clocks_sem); | ||
list_del(&clk->node); | ||
up(&clocks_sem); | ||
} | ||
EXPORT_SYMBOL(clk_unregister); | ||
|
||
static int __init clk_init(void) | ||
{ | ||
return 0; | ||
} | ||
arch_initcall(clk_init); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
/* | ||
* linux/arch/arm/mach-aaec2000/clock.h | ||
* | ||
* Copyright (C) 2005 Nicolas Bellido Y Ortega | ||
* | ||
* Based on linux/arch/arm/mach-integrator/clock.h | ||
* | ||
* 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 module; | ||
|
||
struct clk { | ||
struct list_head node; | ||
unsigned long rate; | ||
struct module *owner; | ||
const char *name; | ||
void *data; | ||
}; | ||
|
||
int clk_register(struct clk *clk); | ||
void clk_unregister(struct clk *clk); |