[ARM] aaec2000: convert to simple clk API
aaec2000 only uses the clk API for the framebuffer, so there's no point having a complicated implementation. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
committed by
Russell King
parent
eefc842a6e
commit
4ab08ecfbc
@@ -3,7 +3,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
# Common support (must be linked before board specific support)
|
# Common support (must be linked before board specific support)
|
||||||
obj-y += core.o clock.o
|
obj-y += core.o
|
||||||
|
|
||||||
# Specific board support
|
# Specific board support
|
||||||
obj-$(CONFIG_MACH_AAED2000) += aaed2000.o
|
obj-$(CONFIG_MACH_AAED2000) += aaed2000.o
|
||||||
|
@@ -1,99 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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 <linux/string.h>
|
|
||||||
#include <linux/clk.h>
|
|
||||||
#include <linux/mutex.h>
|
|
||||||
|
|
||||||
#include "clock.h"
|
|
||||||
|
|
||||||
static LIST_HEAD(clocks);
|
|
||||||
static DEFINE_MUTEX(clocks_mutex);
|
|
||||||
|
|
||||||
struct clk *clk_get(struct device *dev, const char *id)
|
|
||||||
{
|
|
||||||
struct clk *p, *clk = ERR_PTR(-ENOENT);
|
|
||||||
|
|
||||||
mutex_lock(&clocks_mutex);
|
|
||||||
list_for_each_entry(p, &clocks, node) {
|
|
||||||
if (strcmp(id, p->name) == 0 && try_module_get(p->owner)) {
|
|
||||||
clk = p;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mutex_unlock(&clocks_mutex);
|
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
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)
|
|
||||||
{
|
|
||||||
mutex_lock(&clocks_mutex);
|
|
||||||
list_add(&clk->node, &clocks);
|
|
||||||
mutex_unlock(&clocks_mutex);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(clk_register);
|
|
||||||
|
|
||||||
void clk_unregister(struct clk *clk)
|
|
||||||
{
|
|
||||||
mutex_lock(&clocks_mutex);
|
|
||||||
list_del(&clk->node);
|
|
||||||
mutex_unlock(&clocks_mutex);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(clk_unregister);
|
|
||||||
|
|
||||||
static int __init clk_init(void)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
arch_initcall(clk_init);
|
|
@@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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);
|
|
@@ -19,6 +19,7 @@
|
|||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/timex.h>
|
#include <linux/timex.h>
|
||||||
#include <linux/signal.h>
|
#include <linux/signal.h>
|
||||||
|
#include <linux/clk.h>
|
||||||
|
|
||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
@@ -30,7 +31,6 @@
|
|||||||
#include <asm/mach/map.h>
|
#include <asm/mach/map.h>
|
||||||
|
|
||||||
#include "core.h"
|
#include "core.h"
|
||||||
#include "clock.h"
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Common I/O mapping:
|
* Common I/O mapping:
|
||||||
@@ -229,9 +229,28 @@ static struct amba_device *amba_devs[] __initdata = {
|
|||||||
&clcd_device,
|
&clcd_device,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct clk aaec2000_clcd_clk = {
|
void clk_disable(struct clk *clk)
|
||||||
.name = "CLCDCLK",
|
{
|
||||||
};
|
}
|
||||||
|
|
||||||
|
int clk_set_rate(struct clk *clk, unsigned long rate)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int clk_enable(struct clk *clk)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct clk *clk_get(struct device *dev, const char *id)
|
||||||
|
{
|
||||||
|
return dev && strcmp(dev_name(dev), "mb:16") == 0 ? NULL : ERR_PTR(-ENOENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
void clk_put(struct clk *clk)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void __init aaec2000_set_clcd_plat_data(struct aaec2000_clcd_info *clcd)
|
void __init aaec2000_set_clcd_plat_data(struct aaec2000_clcd_info *clcd)
|
||||||
{
|
{
|
||||||
@@ -265,8 +284,6 @@ static int __init aaec2000_init(void)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
clk_register(&aaec2000_clcd_clk);
|
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
|
for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
|
||||||
struct amba_device *d = amba_devs[i];
|
struct amba_device *d = amba_devs[i];
|
||||||
amba_device_register(d, &iomem_resource);
|
amba_device_register(d, &iomem_resource);
|
||||||
|
Reference in New Issue
Block a user