diff options
Diffstat (limited to 'arch/arm/mach-highbank/core.c')
-rw-r--r-- | arch/arm/mach-highbank/core.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/arch/arm/mach-highbank/core.c b/arch/arm/mach-highbank/core.c new file mode 100644 index 0000000000..3423c55b21 --- /dev/null +++ b/arch/arm/mach-highbank/core.c @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2009 Jean-Christophe PLAGNIOL-VILLARD <plagnio@jcrosoft.com> + * + * GPLv2 only + */ + +#include <common.h> +#include <init.h> +#include <io.h> + +#include <linux/clk.h> +#include <linux/clkdev.h> +#include <linux/amba/bus.h> + +#include <asm/hardware/arm_timer.h> + +#include <mach/devices.h> + +#include "sysregs.h" + +void __iomem *sregs_base = IOMEM(0xfff3c00); + + +static void highbank_clk_init(void) +{ + struct clk *clk; + + clk = clk_fixed("dummy_apb_pclk", 0); + clk_register_clkdev(clk, "apb_pclk", NULL); + + clk = clk_fixed("pclk", 150000000); + clk_register_clkdev(clk, NULL, "sp804"); + clk_register_clkdev(clk, NULL, "uart-pl011"); +} + +static void highbank_sp804_init(void) +{ + amba_apb_device_add(NULL, "sp804", DEVICE_ID_SINGLE, 0xfff34000, 4096, NULL, 0); +} + +static int highbank_init(void) +{ + highbank_clk_init(); + highbank_sp804_init(); + + return 0; +} +postcore_initcall(highbank_init); |