diff options
Diffstat (limited to 'arch/mips/ath25/devices.h')
-rw-r--r-- | arch/mips/ath25/devices.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/arch/mips/ath25/devices.h b/arch/mips/ath25/devices.h new file mode 100644 index 000000000000..04d414115356 --- /dev/null +++ b/arch/mips/ath25/devices.h | |||
@@ -0,0 +1,43 @@ | |||
1 | #ifndef __ATH25_DEVICES_H | ||
2 | #define __ATH25_DEVICES_H | ||
3 | |||
4 | #include <linux/cpu.h> | ||
5 | |||
6 | #define ATH25_REG_MS(_val, _field) (((_val) & _field##_M) >> _field##_S) | ||
7 | |||
8 | #define ATH25_IRQ_CPU_CLOCK (MIPS_CPU_IRQ_BASE + 7) /* C0_CAUSE: 0x8000 */ | ||
9 | |||
10 | enum ath25_soc_type { | ||
11 | /* handled by ar5312.c */ | ||
12 | ATH25_SOC_AR2312, | ||
13 | ATH25_SOC_AR2313, | ||
14 | ATH25_SOC_AR5312, | ||
15 | |||
16 | /* handled by ar2315.c */ | ||
17 | ATH25_SOC_AR2315, | ||
18 | ATH25_SOC_AR2316, | ||
19 | ATH25_SOC_AR2317, | ||
20 | ATH25_SOC_AR2318, | ||
21 | |||
22 | ATH25_SOC_UNKNOWN | ||
23 | }; | ||
24 | |||
25 | extern enum ath25_soc_type ath25_soc; | ||
26 | extern struct ar231x_board_config ath25_board; | ||
27 | extern void (*ath25_irq_dispatch)(void); | ||
28 | |||
29 | int ath25_find_config(phys_addr_t offset, unsigned long size); | ||
30 | void ath25_serial_setup(u32 mapbase, int irq, unsigned int uartclk); | ||
31 | int ath25_add_wmac(int nr, u32 base, int irq); | ||
32 | |||
33 | static inline bool is_ar2315(void) | ||
34 | { | ||
35 | return (current_cpu_data.cputype == CPU_4KEC); | ||
36 | } | ||
37 | |||
38 | static inline bool is_ar5312(void) | ||
39 | { | ||
40 | return !is_ar2315(); | ||
41 | } | ||
42 | |||
43 | #endif | ||