aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-mmp/pxa168.c
diff options
context:
space:
mode:
authorEric Miao <eric.miao@marvell.com>2009-01-20 01:38:24 -0500
committerEric Miao <eric.miao@marvell.com>2009-03-22 22:11:34 -0400
commite2bb6650ef94c64723e2dd35ab92410b9477bc64 (patch)
tree14dc515236c9a27d39b26005c66404dd08c8570f /arch/arm/mach-mmp/pxa168.c
parent40305a583a3e080a8d1aa126fa810480ec8cbabd (diff)
[ARM] pxa: add GPIO 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.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/mach-mmp/pxa168.c b/arch/arm/mach-mmp/pxa168.c
index 1935c7545117..1774682e988e 100644
--- a/arch/arm/mach-mmp/pxa168.c
+++ b/arch/arm/mach-mmp/pxa168.c
@@ -12,6 +12,7 @@
12#include <linux/kernel.h> 12#include <linux/kernel.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/list.h> 14#include <linux/list.h>
15#include <linux/io.h>
15#include <linux/clk.h> 16#include <linux/clk.h>
16 17
17#include <asm/mach/time.h> 18#include <asm/mach/time.h>
@@ -19,15 +20,33 @@
19#include <mach/cputype.h> 20#include <mach/cputype.h>
20#include <mach/regs-apbc.h> 21#include <mach/regs-apbc.h>
21#include <mach/irqs.h> 22#include <mach/irqs.h>
23#include <mach/gpio.h>
22#include <mach/dma.h> 24#include <mach/dma.h>
23#include <mach/devices.h> 25#include <mach/devices.h>
24 26
25#include "common.h" 27#include "common.h"
26#include "clock.h" 28#include "clock.h"
27 29
30#define APMASK(i) (GPIO_REGS_VIRT + BANK_OFF(i) + 0x09c)
31
32static void __init pxa168_init_gpio(void)
33{
34 int i;
35
36 /* enable GPIO clock */
37 __raw_writel(APBC_APBCLK | APBC_FNCLK, APBC_PXA168_GPIO);
38
39 /* unmask GPIO edge detection for all 4 banks - APMASKx */
40 for (i = 0; i < 4; i++)
41 __raw_writel(0xffffffff, APMASK(i));
42
43 pxa_init_gpio(IRQ_PXA168_GPIOX, 0, 127, NULL);
44}
45
28void __init pxa168_init_irq(void) 46void __init pxa168_init_irq(void)
29{ 47{
30 icu_init_irq(); 48 icu_init_irq();
49 pxa168_init_gpio();
31} 50}
32 51
33/* APB peripheral clocks */ 52/* APB peripheral clocks */