Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | * linux/arch/arm/mach-pxa/generic.h | |
3 | * | |
4 | * Author: Nicolas Pitre | |
5 | * Copyright: MontaVista Software Inc. | |
6 | * | |
7 | * This program is free software; you can redistribute it and/or modify | |
8 | * it under the terms of the GNU General Public License version 2 as | |
9 | * published by the Free Software Foundation. | |
10 | */ | |
11 | ||
7b6d864b RH |
12 | #include <linux/reboot.h> |
13 | ||
a3f4c927 | 14 | struct irq_data; |
1da177e4 | 15 | |
1da177e4 | 16 | extern unsigned int get_clk_frequency_khz(int info); |
4508f775 RJ |
17 | extern void __init pxa_dt_irq_init(int (*fn)(struct irq_data *, |
18 | unsigned int)); | |
19 | extern void __init pxa_map_io(void); | |
20 | extern void pxa_timer_init(void); | |
1da177e4 LT |
21 | |
22 | #define SET_BANK(__nr,__start,__size) \ | |
23 | mi->bank[__nr].start = (__start), \ | |
be370302 | 24 | mi->bank[__nr].size = (__size) |
1da177e4 | 25 | |
3d3934c3 | 26 | #define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x) |
27 | ||
4508f775 | 28 | #define pxa25x_handle_irq icip_handle_irq |
5e1d0128 | 29 | extern int __init pxa25x_clocks_init(void); |
4508f775 RJ |
30 | extern void __init pxa25x_init_irq(void); |
31 | extern void __init pxa25x_map_io(void); | |
32 | extern void __init pxa26x_init_irq(void); | |
33 | ||
34 | #define pxa27x_handle_irq ichp_handle_irq | |
5e1d0128 | 35 | extern int __init pxa27x_clocks_init(void); |
4508f775 RJ |
36 | extern unsigned pxa27x_get_clk_frequency_khz(int); |
37 | extern void __init pxa27x_init_irq(void); | |
38 | extern void __init pxa27x_map_io(void); | |
39 | ||
40 | #define pxa3xx_handle_irq ichp_handle_irq | |
a1c0a6ad | 41 | extern int __init pxa3xx_clocks_init(void); |
4508f775 RJ |
42 | extern void __init pxa3xx_init_irq(void); |
43 | extern void __init pxa3xx_map_io(void); | |
44 | ||
45 | extern struct syscore_ops pxa_irq_syscore_ops; | |
46 | extern struct syscore_ops pxa2xx_mfp_syscore_ops; | |
47 | extern struct syscore_ops pxa3xx_mfp_syscore_ops; | |
48 | ||
49 | void __init pxa_set_ffuart_info(void *info); | |
50 | void __init pxa_set_btuart_info(void *info); | |
51 | void __init pxa_set_stuart_info(void *info); | |
52 | void __init pxa_set_hwuart_info(void *info); | |
53 | ||
54 | void pxa_restart(enum reboot_mode, const char *); | |
55 | ||
56 | #if defined(CONFIG_PXA25x) || defined(CONFIG_PXA27x) | |
57 | extern void pxa2xx_clear_reset_status(unsigned int); | |
58 | #else | |
59 | static inline void pxa2xx_clear_reset_status(unsigned int mask) {} | |
60 | #endif | |
61 | ||
62 | /* | |
63 | * Once fully converted to the clock framework, all these functions should be | |
64 | * removed, and replaced with a clk_get(NULL, "core"). | |
65 | */ | |
15a40333 RK |
66 | #ifdef CONFIG_PXA25x |
67 | extern unsigned pxa25x_get_clk_frequency_khz(int); | |
15a40333 RK |
68 | #else |
69 | #define pxa25x_get_clk_frequency_khz(x) (0) | |
15a40333 RK |
70 | #endif |
71 | ||
72 | #ifdef CONFIG_PXA27x | |
15a40333 RK |
73 | #else |
74 | #define pxa27x_get_clk_frequency_khz(x) (0) | |
15a40333 RK |
75 | #endif |
76 | ||
2c8086a5 | 77 | #ifdef CONFIG_PXA3xx |
4508f775 | 78 | extern unsigned pxa3xx_get_clk_frequency_khz(int); |
2c8086a5 | 79 | #else |
80 | #define pxa3xx_get_clk_frequency_khz(x) (0) | |
2c8086a5 | 81 | #endif |