mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-12-27 01:06:46 +02:00
e1c9572b15
fonera mp3-hack git-svn-id: svn://svn.openwrt.org/openwrt/trunk@8509 3c298f89-4303-0410-b956-a3cf2f4a3e73
141 lines
5.0 KiB
C
141 lines
5.0 KiB
C
/*
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
|
* License. See the file "COPYING" in the main directory of this archive
|
|
* for more details.
|
|
*
|
|
* Copyright © 2003 Atheros Communications, Inc., All Rights Reserved.
|
|
*/
|
|
|
|
/*
|
|
* This file contains definitions needed in order to compile
|
|
* AR531X products for linux. Definitions that are largely
|
|
* AR531X-specific and independent of operating system belong
|
|
* in ar531x.h rather than this file.
|
|
*/
|
|
#ifndef __AR531XLNX_H
|
|
#define __AR531XLNX_H
|
|
#include "ar531x.h"
|
|
|
|
#define AR531X_HIGH_PRIO 0x10
|
|
#define AR531X_MISC_IRQ_BASE 0x20
|
|
#define AR531X_GPIO_IRQ_BASE 0x30
|
|
|
|
/* Software's idea of interrupts handled by "CPU Interrupt Controller" */
|
|
#ifndef CONFIG_AR531X_COBRA
|
|
#define CONFIG_AR531X_COBRA 0
|
|
#endif
|
|
|
|
#if CONFIG_AR531X_COBRA
|
|
#define AR531X_IRQ_NONE MIPS_CPU_IRQ_BASE+0
|
|
#define AR531X_IRQ_MISC_INTRS MIPS_CPU_IRQ_BASE+2 /* C0_CAUSE: 0x0400 */
|
|
#define AR531X_IRQ_WLAN0_INTRS MIPS_CPU_IRQ_BASE+3 /* C0_CAUSE: 0x0800 */
|
|
#define AR531X_IRQ_ENET0_INTRS MIPS_CPU_IRQ_BASE+4 /* C0_CAUSE: 0x1000 */
|
|
#define AR531X_IRQ_LCBUS_PCI MIPS_CPU_IRQ_BASE+6 /* C0_CAUSE: 0x4000 */
|
|
#define AR531X_IRQ_WLAN0_POLL MIPS_CPU_IRQ_BASE+6 /* C0_CAUSE: 0x4000 */
|
|
#define AR531X_IRQ_CPU_CLOCK MIPS_CPU_IRQ_BASE+7 /* C0_CAUSE: 0x8000 */
|
|
#else
|
|
#define AR531X_IRQ_NONE MIPS_CPU_IRQ_BASE+0
|
|
#define AR531X_IRQ_WLAN0_INTRS MIPS_CPU_IRQ_BASE+2 /* C0_CAUSE: 0x0400 */
|
|
#define AR531X_IRQ_ENET0_INTRS MIPS_CPU_IRQ_BASE+3 /* C0_CAUSE: 0x0800 */
|
|
#define AR531X_IRQ_ENET1_INTRS MIPS_CPU_IRQ_BASE+4 /* C0_CAUSE: 0x1000 */
|
|
#define AR531X_IRQ_WLAN1_INTRS MIPS_CPU_IRQ_BASE+5 /* C0_CAUSE: 0x2000 */
|
|
#define AR531X_IRQ_MISC_INTRS MIPS_CPU_IRQ_BASE+6 /* C0_CAUSE: 0x4000 */
|
|
#define AR531X_IRQ_CPU_CLOCK MIPS_CPU_IRQ_BASE+7 /* C0_CAUSE: 0x8000 */
|
|
#endif
|
|
|
|
/* Miscellaneous interrupts, which share IP6 or IP2 */
|
|
#define AR531X_MISC_IRQ_NONE AR531X_MISC_IRQ_BASE+0
|
|
#define AR531X_MISC_IRQ_TIMER AR531X_MISC_IRQ_BASE+1
|
|
#define AR531X_MISC_IRQ_AHB_PROC AR531X_MISC_IRQ_BASE+2
|
|
#define AR531X_MISC_IRQ_AHB_DMA AR531X_MISC_IRQ_BASE+3
|
|
#define AR531X_MISC_IRQ_GPIO AR531X_MISC_IRQ_BASE+4
|
|
#define AR531X_MISC_IRQ_UART0 AR531X_MISC_IRQ_BASE+5
|
|
#define AR531X_MISC_IRQ_UART0_DMA AR531X_MISC_IRQ_BASE+6
|
|
#define AR531X_MISC_IRQ_WATCHDOG AR531X_MISC_IRQ_BASE+7
|
|
#define AR531X_MISC_IRQ_LOCAL AR531X_MISC_IRQ_BASE+8
|
|
#define AR531X_MISC_IRQ_COUNT 9
|
|
|
|
/* GPIO Interrupts [0..7], share AR531X_MISC_IRQ_GPIO */
|
|
#define AR531X_GPIO_IRQ_NONE AR531X_MISC_IRQ_BASE+0
|
|
#define AR531X_GPIO_IRQ(n) AR531X_MISC_IRQ_BASE+(n)+1
|
|
#define AR531X_GPIO_IRQ_COUNT 9
|
|
|
|
#define PHYS_TO_K1(physaddr) KSEG1ADDR(physaddr)
|
|
//#define PHYS_TO_K0(physaddr) KSEG0ADDR(physaddr)
|
|
#define UNMAPPED_TO_PHYS(vaddr) PHYSADDR(vaddr)
|
|
#define IS_UNMAPPED_VADDR(vaddr) \
|
|
((KSEGX(vaddr) == KSEG0) || (KSEGX(vaddr) == KSEG1))
|
|
|
|
/* IOCTL commands for /proc/ar531x */
|
|
#define AR531X_CTRL_DO_BREAKPOINT 1
|
|
#define AR531X_CTRL_DO_MADWIFI 2
|
|
|
|
/*
|
|
* Definitions for operating system portability.
|
|
* These are vxWorks-->Linux translations.
|
|
*/
|
|
#define LOCAL static
|
|
#define BOOL int
|
|
#define TRUE 1
|
|
#define FALSE 0
|
|
#define UINT8 u8
|
|
#define UINT16 u16
|
|
#define UINT32 u32
|
|
#define PRINTF printk
|
|
#if /* DEBUG */ 1
|
|
#define DEBUG_PRINTF printk
|
|
#define printf printk
|
|
#define INLINE
|
|
#else
|
|
DEBUG_PRINTF while (0) printk
|
|
#define INLINE inline
|
|
#endif
|
|
#define sysUDelay(usecs) udelay(usecs)
|
|
#define sysMsDelay(msecs) mdelay(msecs)
|
|
typedef volatile UINT8 *VIRT_ADDR;
|
|
#define MALLOC(sz) kmalloc(sz, GFP_KERNEL)
|
|
#define MALLOC_NOSLEEP(sz) kmalloc(sz, GFP_ATOMIC)
|
|
#define FREE(ptr) kfree((void *)ptr)
|
|
#define BSP_BUG() do { printk("kernel BSP BUG at %s:%d!\n", __FILE__, __LINE__); *(int *)0=0; } while (0)
|
|
#define BSP_BUG_ON(condition) do { if (unlikely((condition)!=0)) BSP_BUG(); } while(0)
|
|
#define ASSERT(x) BSP_BUG_ON(!(x))
|
|
|
|
extern struct ar531x_boarddata *ar531x_board_configuration;
|
|
extern char *ar531x_radio_configuration;
|
|
extern char *enet_mac_address_get(int MACUnit);
|
|
|
|
extern void kgdbInit(void);
|
|
extern int kgdbEnabled(void);
|
|
extern void breakpoint(void);
|
|
extern int kgdbInterrupt(void);
|
|
extern unsigned int ar531x_cpu_frequency(void);
|
|
extern unsigned int ar531x_sys_frequency(void);
|
|
|
|
/* GPIO support */
|
|
extern struct irqaction spurious_gpio;
|
|
extern unsigned int gpioIntMask;
|
|
extern void ar531x_gpio_intr_init(int irq_base);
|
|
extern void ar531x_gpio_ctrl_output(int gpio);
|
|
extern void ar531x_gpio_ctrl_input(int gpio);
|
|
extern void ar531x_gpio_set(int gpio, int val);
|
|
extern int ar531x_gpio_get(int gpio);
|
|
extern void ar531x_gpio_intr_enable(unsigned int irq);
|
|
extern void ar531x_gpio_intr_disable(unsigned int irq);
|
|
|
|
/* Watchdog Timer support */
|
|
extern int watchdog_start(unsigned int milliseconds);
|
|
extern int watchdog_stop(void);
|
|
extern int watchdog_is_enabled(void);
|
|
extern unsigned int watchdog_min_timer_reached(void);
|
|
extern void watchdog_notify_alive(void);
|
|
|
|
#define A_DATA_CACHE_INVAL(start, length) \
|
|
dma_cache_inv((UINT32)(start),(length))
|
|
|
|
#define sysWbFlush() mb()
|
|
|
|
#define intDisable(x) cli()
|
|
#define intEnable(x) sti()
|
|
|
|
#endif /* __AR531XLNX_H */
|