Blame view
arch/arm/mach-at91/generic.h
2.52 KB
73a59c1c4
|
1 |
/* |
9d0412680
|
2 |
* linux/arch/arm/mach-at91/generic.h |
73a59c1c4
|
3 4 5 6 7 8 9 |
* * Copyright (C) 2005 David Brownell * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ |
bd6029959
|
10 |
#include <linux/clkdev.h> |
1b021a3b2
|
11 |
/* Map io */ |
21d08b9d5
|
12 |
extern void __init at91_map_io(void); |
f0051d82a
|
13 14 |
extern void __init at91_init_sram(int bank, unsigned long base, unsigned int length); |
1b021a3b2
|
15 |
|
2eeaaa21d
|
16 |
/* Processors */ |
e57556e3b
|
17 |
extern void __init at91rm9200_set_type(int type); |
21d08b9d5
|
18 |
extern void __init at91_initialize(unsigned long main_clock); |
9a7e246b5
|
19 |
extern void __init at91x40_initialize(unsigned long main_clock); |
2eeaaa21d
|
20 |
|
ba854e184
|
21 |
/* Interrupts */ |
92100c12c
|
22 23 |
extern void __init at91_init_irq_default(void); extern void __init at91_init_interrupts(unsigned int priority[]); |
9a7e246b5
|
24 |
extern void __init at91x40_init_interrupts(unsigned int priority[]); |
ba854e184
|
25 |
extern void __init at91_aic_init(unsigned int priority[]); |
73a59c1c4
|
26 |
|
ba854e184
|
27 |
/* Timer */ |
73a59c1c4
|
28 29 |
struct sys_timer; extern struct sys_timer at91rm9200_timer; |
4ab0c5998
|
30 |
extern void at91sam926x_ioremap_pit(u32 addr); |
62c1660d9
|
31 |
extern struct sys_timer at91sam926x_timer; |
9a7e246b5
|
32 |
extern struct sys_timer at91x40_timer; |
73a59c1c4
|
33 |
|
ba854e184
|
34 |
/* Clocks */ |
bd6029959
|
35 36 37 38 39 40 41 42 43 44 45 46 |
/* * function to specify the clock of the default console. As we do not * use the device/driver bus, the dev_name is not intialize. So we need * to link the clock to a specific con_id only "usart" */ extern void __init at91rm9200_set_console_clock(int id); extern void __init at91sam9260_set_console_clock(int id); extern void __init at91sam9261_set_console_clock(int id); extern void __init at91sam9263_set_console_clock(int id); extern void __init at91sam9rl_set_console_clock(int id); extern void __init at91sam9g45_set_console_clock(int id); extern void __init at91cap9_set_console_clock(int id); |
465393749
|
47 48 49 50 51 |
#ifdef CONFIG_AT91_PMC_UNIT extern int __init at91_clock_init(unsigned long main_clock); #else static int inline at91_clock_init(unsigned long main_clock) { return 0; } #endif |
907d6deb6
|
52 |
struct device; |
907d6deb6
|
53 54 55 56 |
/* Power Management */ extern void at91_irq_suspend(void); extern void at91_irq_resume(void); |
bb413db59
|
57 |
/* reset */ |
1b2073e77
|
58 |
extern void at91sam9_alt_restart(char, const char *); |
bb413db59
|
59 |
|
f22deee52
|
60 61 |
/* shutdown */ extern void at91_ioremap_shdwc(u32 base_addr); |
f21738341
|
62 63 64 65 66 67 |
/* GPIO */ #define AT91RM9200_PQFP 3 /* AT91RM9200 PQFP package has 3 banks */ #define AT91RM9200_BGA 4 /* AT91RM9200 BGA package has 4 banks */ struct at91_gpio_bank { unsigned short id; /* peripheral ID */ |
80e91cb80
|
68 |
unsigned long regbase; /* offset from system peripheral base */ |
f21738341
|
69 70 71 |
}; extern void __init at91_gpio_init(struct at91_gpio_bank *, int nr_banks); extern void __init at91_gpio_irq_setup(void); |
1f4fd0a0d
|
72 |
|
1f4fd0a0d
|
73 |
extern int at91_extern_irq; |