diff options
Diffstat (limited to 'arch/arm/mach-pxa/pxa320.c')
| -rw-r--r-- | arch/arm/mach-pxa/pxa320.c | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/arch/arm/mach-pxa/pxa320.c b/arch/arm/mach-pxa/pxa320.c index 74128eb8f8d..6dc99d4f2dc 100644 --- a/arch/arm/mach-pxa/pxa320.c +++ b/arch/arm/mach-pxa/pxa320.c @@ -15,12 +15,16 @@ #include <linux/module.h> #include <linux/kernel.h> +#include <linux/platform_device.h> +#include <linux/io.h> -#include <asm/hardware.h> -#include <asm/arch/mfp.h> -#include <asm/arch/mfp-pxa320.h> +#include <mach/pxa320.h> -static struct pxa3xx_mfp_addr_map pxa320_mfp_addr_map[] __initdata = { +#include "generic.h" +#include "devices.h" +#include "clock.h" + +static struct mfp_addr_map pxa320_mfp_addr_map[] __initdata = { MFP_ADDR_X(GPIO0, GPIO4, 0x0124), MFP_ADDR_X(GPIO5, GPIO9, 0x028C), @@ -74,16 +78,21 @@ static struct pxa3xx_mfp_addr_map pxa320_mfp_addr_map[] __initdata = { MFP_ADDR_END, }; -static void __init pxa320_init_mfp(void) -{ - pxa3xx_init_mfp(); - pxa3xx_mfp_init_addr(pxa320_mfp_addr_map); -} +static DEFINE_PXA3_CKEN(pxa320_nand, NAND, 104000000, 0); +static DEFINE_PXA3_CKEN(gcu, PXA320_GCU, 0, 0); + +static struct clk_lookup pxa320_clkregs[] = { + INIT_CLKREG(&clk_pxa320_nand, "pxa3xx-nand", NULL), + INIT_CLKREG(&clk_gcu, "pxa3xx-gcu", NULL), +}; static int __init pxa320_init(void) { - if (cpu_is_pxa320()) - pxa320_init_mfp(); + if (cpu_is_pxa320()) { + mfp_init_base(io_p2v(MFPR_BASE)); + mfp_init_addr(pxa320_mfp_addr_map); + clkdev_add_table(ARRAY_AND_SIZE(pxa320_clkregs)); + } return 0; } |
