diff options
author | Andrew Victor <andrew@sanpeople.com> | 2006-09-27 08:23:00 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-09-28 06:53:47 -0400 |
commit | f21738341ca330ec83ef978ee63ffa5ecf13f082 (patch) | |
tree | be42abeb9ef2509a5a0c4187f4aa076d8f3c2dee /arch/arm/mach-at91rm9200/generic.h | |
parent | 2eeaaa21de68cb8869d3a54438a9224321d3dd03 (diff) |
[ARM] 3867/1: AT91 GPIO update
This patch makes the AT91 gpio.c support processor-generic (AT91RM9200
and AT91SAM9xxx). The GPIO controllers supported by a particular AT91
processor are defined in the processor-specific file and are registered
with gpio.c at startup.
Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-at91rm9200/generic.h')
-rw-r--r-- | arch/arm/mach-at91rm9200/generic.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/arch/arm/mach-at91rm9200/generic.h b/arch/arm/mach-at91rm9200/generic.h index c44e0e074682..694e411e285f 100644 --- a/arch/arm/mach-at91rm9200/generic.h +++ b/arch/arm/mach-at91rm9200/generic.h | |||
@@ -9,12 +9,11 @@ | |||
9 | */ | 9 | */ |
10 | 10 | ||
11 | /* Processors */ | 11 | /* Processors */ |
12 | extern void __init at91rm9200_initialize(unsigned long main_clock); | 12 | extern void __init at91rm9200_initialize(unsigned long main_clock, unsigned short banks); |
13 | 13 | ||
14 | /* Interrupts */ | 14 | /* Interrupts */ |
15 | extern void __init at91rm9200_init_irq(unsigned int priority[]); | 15 | extern void __init at91rm9200_init_interrupts(unsigned int priority[]); |
16 | extern void __init at91_aic_init(unsigned int priority[]); | 16 | extern void __init at91_aic_init(unsigned int priority[]); |
17 | extern void __init at91_gpio_irq_setup(unsigned banks); | ||
18 | 17 | ||
19 | /* Timer */ | 18 | /* Timer */ |
20 | struct sys_timer; | 19 | struct sys_timer; |
@@ -29,3 +28,14 @@ extern void __init at91_clock_associate(const char *id, struct device *dev, cons | |||
29 | extern void at91_irq_suspend(void); | 28 | extern void at91_irq_suspend(void); |
30 | extern void at91_irq_resume(void); | 29 | extern void at91_irq_resume(void); |
31 | 30 | ||
31 | /* GPIO */ | ||
32 | #define AT91RM9200_PQFP 3 /* AT91RM9200 PQFP package has 3 banks */ | ||
33 | #define AT91RM9200_BGA 4 /* AT91RM9200 BGA package has 4 banks */ | ||
34 | |||
35 | struct at91_gpio_bank { | ||
36 | unsigned short id; /* peripheral ID */ | ||
37 | unsigned long offset; /* offset from system peripheral base */ | ||
38 | struct clk *clock; /* associated clock */ | ||
39 | }; | ||
40 | extern void __init at91_gpio_init(struct at91_gpio_bank *, int nr_banks); | ||
41 | extern void __init at91_gpio_irq_setup(void); | ||