Skip to content

Commit

Permalink
ARM: 6103/1: nomadik: define clocks statically
Browse files Browse the repository at this point in the history
Add a table for clocks to be defined statically, so that new clocks can
be added without having to call nmdk_clk_create() for each of them.
Remove the now unused nmdk_clk_create() function.

Acked-by: Alessandro Rubini <rubini@unipv.it>
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Rabin Vincent authored and Russell King committed May 6, 2010
1 parent 2210d64 commit dc6048c
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 18 deletions.
10 changes: 1 addition & 9 deletions arch/arm/mach-nomadik/board-nhk8815.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
#include <mach/setup.h>
#include <mach/nand.h>
#include <mach/fsmc.h>
#include "clock.h"

/* Initial value for SRC control register: all timers use MXTAL/8 source */
#define SRC_CR_INIT_MASK 0x00007fff
Expand Down Expand Up @@ -202,11 +201,6 @@ static struct amba_device *amba_devs[] __initdata = {
&uart1_device,
};

/* We have a fixed clock alone, by now */
static struct clk nhk8815_clk_48 = {
.rate = 48*1000*1000,
};

static struct resource nhk8815_eth_resources[] = {
{
.name = "smc91x-regs",
Expand Down Expand Up @@ -276,10 +270,8 @@ static void __init nhk8815_platform_init(void)
platform_add_devices(nhk8815_platform_devices,
ARRAY_SIZE(nhk8815_platform_devices));

for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
nmdk_clk_create(&nhk8815_clk_48, amba_devs[i]->dev.init_name);
for (i = 0; i < ARRAY_SIZE(amba_devs); i++)
amba_device_register(amba_devs[i], &iomem_resource);
}
}

MACHINE_START(NOMADIK, "NHK8815")
Expand Down
28 changes: 20 additions & 8 deletions arch/arm/mach-nomadik/clock.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,26 @@ void clk_disable(struct clk *clk)
}
EXPORT_SYMBOL(clk_disable);

/* Create a clock structure with the given name */
int nmdk_clk_create(struct clk *clk, const char *dev_id)
{
struct clk_lookup *clkdev;
/* We have a fixed clock alone, for now */
static struct clk clk_48 = {
.rate = 48 * 1000 * 1000,
};

#define CLK(_clk, dev) \
{ \
.clk = _clk, \
.dev_id = dev, \
}

static struct clk_lookup lookups[] = {
CLK(&clk_48, "uart0"),
CLK(&clk_48, "uart1"),
};

clkdev = clkdev_alloc(clk, NULL, dev_id);
if (!clkdev)
return -ENOMEM;
clkdev_add(clkdev);
static int __init clk_init(void)
{
clkdev_add_table(lookups, ARRAY_SIZE(lookups));
return 0;
}

arch_initcall(clk_init);
1 change: 0 additions & 1 deletion arch/arm/mach-nomadik/clock.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,3 @@
struct clk {
unsigned long rate;
};
extern int nmdk_clk_create(struct clk *clk, const char *dev_id);

0 comments on commit dc6048c

Please sign in to comment.