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 12 typedef int (*set_wake_t)(unsigned int, unsigned int); 13 14 struct sys_timer; 15 16 extern struct sys_timer pxa_timer; 17 extern void __init pxa_init_irq(int irq_nr, set_wake_t fn); 18 extern void __init pxa_init_gpio(int gpio_nr, set_wake_t fn); 19 extern void __init pxa25x_init_irq(void); 20 extern void __init pxa27x_init_irq(void); 21 extern void __init pxa3xx_init_irq(void); 22 extern void __init pxa_map_io(void); 23 24 extern unsigned int get_clk_frequency_khz(int info); 25 extern int pxa_last_gpio; 26 27 #define SET_BANK(__nr,__start,__size) \ 28 mi->bank[__nr].start = (__start), \ 29 mi->bank[__nr].size = (__size), \ 30 mi->bank[__nr].node = (((unsigned)(__start) - PHYS_OFFSET) >> 27) 31 32 #define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x) 33 34 #ifdef CONFIG_PXA25x 35 extern unsigned pxa25x_get_clk_frequency_khz(int); 36 extern unsigned pxa25x_get_memclk_frequency_10khz(void); 37 #else 38 #define pxa25x_get_clk_frequency_khz(x) (0) 39 #define pxa25x_get_memclk_frequency_10khz() (0) 40 #endif 41 42 #ifdef CONFIG_PXA27x 43 extern unsigned pxa27x_get_clk_frequency_khz(int); 44 extern unsigned pxa27x_get_memclk_frequency_10khz(void); 45 #else 46 #define pxa27x_get_clk_frequency_khz(x) (0) 47 #define pxa27x_get_memclk_frequency_10khz() (0) 48 #endif 49 50 #if defined(CONFIG_PXA25x) || defined(CONFIG_PXA27x) 51 extern void pxa2xx_clear_reset_status(unsigned int); 52 #else 53 static inline void pxa2xx_clear_reset_status(unsigned int mask) {} 54 #endif 55 56 #ifdef CONFIG_PXA3xx 57 extern unsigned pxa3xx_get_clk_frequency_khz(int); 58 extern unsigned pxa3xx_get_memclk_frequency_10khz(void); 59 extern void pxa3xx_clear_reset_status(unsigned int); 60 #else 61 #define pxa3xx_get_clk_frequency_khz(x) (0) 62 #define pxa3xx_get_memclk_frequency_10khz() (0) 63 static inline void pxa3xx_clear_reset_status(unsigned int mask) {} 64 #endif 65 66 extern struct sysdev_class pxa_irq_sysclass; 67 extern struct sysdev_class pxa_gpio_sysclass; 68 extern struct sysdev_class pxa3xx_mfp_sysclass; 69