diff options
Diffstat (limited to 'arch/arm/mach-pxa/pxa320.c')
| -rw-r--r-- | arch/arm/mach-pxa/pxa320.c | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/arch/arm/mach-pxa/pxa320.c b/arch/arm/mach-pxa/pxa320.c index cd9eba5b3df..6dc99d4f2dc 100644 --- a/arch/arm/mach-pxa/pxa320.c +++ b/arch/arm/mach-pxa/pxa320.c @@ -5,7 +5,7 @@ * * Copyright (C) 2007 Marvell Internation Ltd. * - * 2007-08-21: eric miao <eric.y.miao@gmail.com> + * 2007-08-21: eric miao <eric.miao@marvell.com> * initial version * * This program is free software; you can redistribute it and/or modify @@ -15,16 +15,23 @@ #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, GPIO26, 0x028C), - MFP_ADDR_X(GPIO27, GPIO62, 0x0400), + MFP_ADDR_X(GPIO5, GPIO9, 0x028C), + MFP_ADDR(GPIO10, 0x0458), + MFP_ADDR_X(GPIO11, GPIO26, 0x02A0), + MFP_ADDR_X(GPIO27, GPIO48, 0x0400), + MFP_ADDR_X(GPIO49, GPIO62, 0x045C), MFP_ADDR_X(GPIO63, GPIO73, 0x04B4), MFP_ADDR_X(GPIO74, GPIO98, 0x04F0), MFP_ADDR_X(GPIO99, GPIO127, 0x0600), @@ -71,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; } |
