diff options
author | Felix Fietkau <nbd@openwrt.org> | 2007-02-16 09:23:15 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2007-02-16 09:23:15 +0000 |
commit | 3d60d69334f43e0da151208dffee850b26d34c3c (patch) | |
tree | c3e70ccc5a93810bfa7b3e5cb7363823a4b0209d /target/linux/atheros-2.6/files/arch/mips/atheros/ar531x.h | |
parent | 312aeaf1bee32e524f4ab12796e3fba46f36e8aa (diff) | |
download | master-31e0f0ae-3d60d69334f43e0da151208dffee850b26d34c3c.tar.gz master-31e0f0ae-3d60d69334f43e0da151208dffee850b26d34c3c.tar.bz2 master-31e0f0ae-3d60d69334f43e0da151208dffee850b26d34c3c.zip |
major cleanup of the ar531x code, improved hardware detection and support for multiple ethernet interfaces
SVN-Revision: 6307
Diffstat (limited to 'target/linux/atheros-2.6/files/arch/mips/atheros/ar531x.h')
-rw-r--r-- | target/linux/atheros-2.6/files/arch/mips/atheros/ar531x.h | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/target/linux/atheros-2.6/files/arch/mips/atheros/ar531x.h b/target/linux/atheros-2.6/files/arch/mips/atheros/ar531x.h index 208b0101a2..471cc7e7dc 100644 --- a/target/linux/atheros-2.6/files/arch/mips/atheros/ar531x.h +++ b/target/linux/atheros-2.6/files/arch/mips/atheros/ar531x.h @@ -1,10 +1,34 @@ #ifndef __AR531X_H #define __AR531X_H +#include <asm/cpu-info.h> #include <ar531x_platform.h> #include "ar5312.h" #include "ar5315.h" +/* + * Atheros CPUs before the AR2315 are using MIPS 4Kc core, later designs are + * using MIPS 4KEc R2 core. This makes it easy to determine the board at runtime. + */ +#ifdef CONFIG_ATHEROS_AR5312 +#define DO_AR5312(...) \ + if (current_cpu_data.cputype != CPU_4KEC) { \ + __VA_ARGS__ \ + } +#else +#define DO_AR5312(...) +#endif +#ifdef CONFIG_ATHEROS_AR5315 +#define DO_AR5315(...) \ + if (current_cpu_data.cputype == CPU_4KEC) { \ + __VA_ARGS__ \ + } +#else +#define DO_AR5315(...) +#endif + + + #define MIPS_CPU_IRQ_BASE 0x00 #define AR531X_HIGH_PRIO 0x10 #define AR531X_MISC_IRQ_BASE 0x20 @@ -89,18 +113,20 @@ struct ar531x_boarddata { u8 wlan1Mac[6]; /* (ar5212) */ }; +#define BOARD_CONFIG_BUFSZ 0x1000 -extern char *board_config; -extern char *radio_config; +extern char *board_config, *radio_config; extern void serial_setup(unsigned long mapbase, unsigned int uartclk); extern int ar531x_find_config(char *flash_limit); +extern void ar5312_prom_init(void); extern void ar5312_misc_intr_init(int irq_base); -extern void ar5312_irq_dispatch(void); extern void ar5312_plat_setup(void); +extern asmlinkage void ar5312_irq_dispatch(void); +extern void ar5315_prom_init(void); extern void ar5315_misc_intr_init(int irq_base); -extern asmlinkage void ar5315_irq_dispatch(void); extern void ar5315_plat_setup(void); +extern asmlinkage void ar5315_irq_dispatch(void); #endif |