aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-mmp/pxa168.c
diff options
context:
space:
mode:
authorEric Miao <eric.miao@marvell.com>2009-01-20 04:20:56 -0500
committerEric Miao <eric.miao@marvell.com>2009-03-22 22:11:34 -0400
commita7a89d9621ba877ae45784cf7d000182075df9c1 (patch)
treea6baf058a43f72088750af59c3d78ee3f512a69d /arch/arm/mach-mmp/pxa168.c
parente2bb6650ef94c64723e2dd35ab92410b9477bc64 (diff)
[ARM] pxa: add MFP support for pxa168
Signed-off-by: Eric Miao <eric.miao@marvell.com>
Diffstat (limited to 'arch/arm/mach-mmp/pxa168.c')
-rw-r--r--arch/arm/mach-mmp/pxa168.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/mach-mmp/pxa168.c b/arch/arm/mach-mmp/pxa168.c
index 1774682e988e..ae924468658c 100644
--- a/arch/arm/mach-mmp/pxa168.c
+++ b/arch/arm/mach-mmp/pxa168.c
@@ -23,10 +23,23 @@
23#include <mach/gpio.h> 23#include <mach/gpio.h>
24#include <mach/dma.h> 24#include <mach/dma.h>
25#include <mach/devices.h> 25#include <mach/devices.h>
26#include <mach/mfp.h>
26 27
27#include "common.h" 28#include "common.h"
28#include "clock.h" 29#include "clock.h"
29 30
31#define MFPR_VIRT_BASE (APB_VIRT_BASE + 0x1e000)
32
33static struct mfp_addr_map pxa168_mfp_addr_map[] __initdata =
34{
35 MFP_ADDR_X(GPIO0, GPIO36, 0x04c),
36 MFP_ADDR_X(GPIO37, GPIO55, 0x000),
37 MFP_ADDR_X(GPIO56, GPIO123, 0x0e0),
38 MFP_ADDR_X(GPIO124, GPIO127, 0x0f4),
39
40 MFP_ADDR_END,
41};
42
30#define APMASK(i) (GPIO_REGS_VIRT + BANK_OFF(i) + 0x09c) 43#define APMASK(i) (GPIO_REGS_VIRT + BANK_OFF(i) + 0x09c)
31 44
32static void __init pxa168_init_gpio(void) 45static void __init pxa168_init_gpio(void)
@@ -62,6 +75,8 @@ static struct clk_lookup pxa168_clkregs[] = {
62static int __init pxa168_init(void) 75static int __init pxa168_init(void)
63{ 76{
64 if (cpu_is_pxa168()) { 77 if (cpu_is_pxa168()) {
78 mfp_init_base(MFPR_VIRT_BASE);
79 mfp_init_addr(pxa168_mfp_addr_map);
65 pxa_init_dma(IRQ_PXA168_DMA_INT0, 32); 80 pxa_init_dma(IRQ_PXA168_DMA_INT0, 32);
66 clks_register(ARRAY_AND_SIZE(pxa168_clkregs)); 81 clks_register(ARRAY_AND_SIZE(pxa168_clkregs));
67 } 82 }