diff options
Diffstat (limited to 'arch/arm/mach-ixp23xx/include/mach')
| -rw-r--r-- | arch/arm/mach-ixp23xx/include/mach/debug-macro.S | 25 | ||||
| -rw-r--r-- | arch/arm/mach-ixp23xx/include/mach/entry-macro.S | 37 | ||||
| -rw-r--r-- | arch/arm/mach-ixp23xx/include/mach/hardware.h | 32 | ||||
| -rw-r--r-- | arch/arm/mach-ixp23xx/include/mach/io.h | 52 | ||||
| -rw-r--r-- | arch/arm/mach-ixp23xx/include/mach/irqs.h | 223 | ||||
| -rw-r--r-- | arch/arm/mach-ixp23xx/include/mach/ixdp2351.h | 89 | ||||
| -rw-r--r-- | arch/arm/mach-ixp23xx/include/mach/ixp23xx.h | 298 | ||||
| -rw-r--r-- | arch/arm/mach-ixp23xx/include/mach/memory.h | 34 | ||||
| -rw-r--r-- | arch/arm/mach-ixp23xx/include/mach/platform.h | 57 | ||||
| -rw-r--r-- | arch/arm/mach-ixp23xx/include/mach/system.h | 33 | ||||
| -rw-r--r-- | arch/arm/mach-ixp23xx/include/mach/time.h | 3 | ||||
| -rw-r--r-- | arch/arm/mach-ixp23xx/include/mach/timex.h | 7 | ||||
| -rw-r--r-- | arch/arm/mach-ixp23xx/include/mach/uncompress.h | 40 | ||||
| -rw-r--r-- | arch/arm/mach-ixp23xx/include/mach/vmalloc.h | 10 |
14 files changed, 940 insertions, 0 deletions
diff --git a/arch/arm/mach-ixp23xx/include/mach/debug-macro.S b/arch/arm/mach-ixp23xx/include/mach/debug-macro.S new file mode 100644 index 00000000000..f7c6eef7fa2 --- /dev/null +++ b/arch/arm/mach-ixp23xx/include/mach/debug-macro.S | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | /* | ||
| 2 | * arch/arm/mach-ixp23xx/include/mach/debug-macro.S | ||
| 3 | * | ||
| 4 | * Debugging macro include header | ||
| 5 | * | ||
| 6 | * Copyright (C) 1994-1999 Russell King | ||
| 7 | * Moved from linux/arch/arm/kernel/debug.S by Ben Dooks | ||
| 8 | * | ||
| 9 | * This program is free software; you can redistribute it and/or modify | ||
| 10 | * it under the terms of the GNU General Public License version 2 as | ||
| 11 | * published by the Free Software Foundation. | ||
| 12 | */ | ||
| 13 | #include <mach/ixp23xx.h> | ||
| 14 | |||
| 15 | .macro addruart, rp, rv | ||
| 16 | ldr \rp, =IXP23XX_PERIPHERAL_PHYS @ physical | ||
| 17 | ldr \rv, =IXP23XX_PERIPHERAL_VIRT @ virtual | ||
| 18 | #ifdef __ARMEB__ | ||
| 19 | orr \rp, \rp, #0x00000003 | ||
| 20 | orr \rv, \rv, #0x00000003 | ||
| 21 | #endif | ||
| 22 | .endm | ||
| 23 | |||
| 24 | #define UART_SHIFT 2 | ||
| 25 | #include <asm/hardware/debug-8250.S> | ||
diff --git a/arch/arm/mach-ixp23xx/include/mach/entry-macro.S b/arch/arm/mach-ixp23xx/include/mach/entry-macro.S new file mode 100644 index 00000000000..3f5338a7bbd --- /dev/null +++ b/arch/arm/mach-ixp23xx/include/mach/entry-macro.S | |||
| @@ -0,0 +1,37 @@ | |||
| 1 | /* | ||
| 2 | * arch/arm/mach-ixp23xx/include/mach/entry-macro.S | ||
| 3 | */ | ||
| 4 | |||
| 5 | .macro disable_fiq | ||
| 6 | .endm | ||
| 7 | |||
| 8 | .macro get_irqnr_preamble, base, tmp | ||
| 9 | .endm | ||
| 10 | |||
| 11 | .macro arch_ret_to_user, tmp1, tmp2 | ||
| 12 | .endm | ||
| 13 | |||
| 14 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp | ||
| 15 | ldr \irqnr, =(IXP23XX_INTC_VIRT + IXP23XX_INTR_IRQ_ENC_ST_OFFSET) | ||
| 16 | ldr \irqnr, [\irqnr] @ get interrupt number | ||
| 17 | cmp \irqnr, #0x0 @ spurious interrupt ? | ||
| 18 | movne \irqnr, \irqnr, lsr #2 @ skip unwanted low order bits | ||
| 19 | subne \irqnr, \irqnr, #1 @ convert to 0 based | ||
| 20 | |||
| 21 | #if 0 | ||
| 22 | cmp \irqnr, #IRQ_IXP23XX_PCI_INT_RPH | ||
| 23 | bne 1001f | ||
| 24 | mov \irqnr, #IRQ_IXP23XX_INTA | ||
| 25 | |||
| 26 | ldr \irqnr, =0xf5000030 | ||
| 27 | |||
| 28 | mov \tmp, #(1<<26) | ||
| 29 | tst \irqnr, \tmp | ||
| 30 | movne \irqnr, #IRQ_IXP23XX_INTB | ||
| 31 | |||
| 32 | mov \tmp, #(1<<27) | ||
| 33 | tst \irqnr, \tmp | ||
| 34 | movne \irqnr, #IRQ_IXP23XX_INTA | ||
| 35 | 1001: | ||
| 36 | #endif | ||
| 37 | .endm | ||
diff --git a/arch/arm/mach-ixp23xx/include/mach/hardware.h b/arch/arm/mach-ixp23xx/include/mach/hardware.h new file mode 100644 index 00000000000..60e55fa1023 --- /dev/null +++ b/arch/arm/mach-ixp23xx/include/mach/hardware.h | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | /* | ||
| 2 | * arch/arm/mach-ixp23xx/include/mach/hardware.h | ||
| 3 | * | ||
| 4 | * Copyright (C) 2002-2004 Intel Corporation. | ||
| 5 | * Copyricht (C) 2005 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 | * Hardware definitions for IXP23XX based systems | ||
| 12 | */ | ||
| 13 | |||
| 14 | #ifndef __ASM_ARCH_HARDWARE_H | ||
| 15 | #define __ASM_ARCH_HARDWARE_H | ||
| 16 | |||
| 17 | /* PCI IO info */ | ||
| 18 | |||
| 19 | #include "ixp23xx.h" | ||
| 20 | |||
| 21 | /* | ||
| 22 | * Platform helper functions | ||
| 23 | */ | ||
| 24 | #include "platform.h" | ||
| 25 | |||
| 26 | /* | ||
| 27 | * Platform-specific headers | ||
| 28 | */ | ||
| 29 | #include "ixdp2351.h" | ||
| 30 | |||
| 31 | |||
| 32 | #endif | ||
diff --git a/arch/arm/mach-ixp23xx/include/mach/io.h b/arch/arm/mach-ixp23xx/include/mach/io.h new file mode 100644 index 00000000000..a1749d0fd89 --- /dev/null +++ b/arch/arm/mach-ixp23xx/include/mach/io.h | |||
| @@ -0,0 +1,52 @@ | |||
| 1 | /* | ||
| 2 | * arch/arm/mach-ixp23xx/include/mach/io.h | ||
| 3 | * | ||
| 4 | * Original Author: Naeem M Afzal <naeem.m.afzal@intel.com> | ||
| 5 | * Maintainer: Deepak Saxena <dsaxena@plexity.net> | ||
| 6 | * | ||
| 7 | * Copyright (C) 2003-2005 Intel Corp. | ||
| 8 | * Copyright (C) 2005 MontaVista Software, Inc | ||
| 9 | * | ||
| 10 | * This program is free software; you can redistribute it and/or modify | ||
| 11 | * it under the terms of the GNU General Public License version 2 as | ||
| 12 | * published by the Free Software Foundation. | ||
| 13 | */ | ||
| 14 | |||
| 15 | #ifndef __ASM_ARCH_IO_H | ||
| 16 | #define __ASM_ARCH_IO_H | ||
| 17 | |||
| 18 | #define IO_SPACE_LIMIT 0xffffffff | ||
| 19 | |||
| 20 | #define __io(p) ((void __iomem*)((p) + IXP23XX_PCI_IO_VIRT)) | ||
| 21 | #define __mem_pci(a) (a) | ||
| 22 | |||
| 23 | static inline void __iomem * | ||
| 24 | ixp23xx_ioremap(unsigned long addr, unsigned long size, unsigned int mtype) | ||
| 25 | { | ||
| 26 | if (addr >= IXP23XX_PCI_MEM_START && | ||
| 27 | addr <= IXP23XX_PCI_MEM_START + IXP23XX_PCI_MEM_SIZE) { | ||
| 28 | if (addr + size > IXP23XX_PCI_MEM_START + IXP23XX_PCI_MEM_SIZE) | ||
| 29 | return NULL; | ||
| 30 | |||
| 31 | return (void __iomem *) | ||
| 32 | ((addr - IXP23XX_PCI_MEM_START) + IXP23XX_PCI_MEM_VIRT); | ||
| 33 | } | ||
| 34 | |||
| 35 | return __arm_ioremap(addr, size, mtype); | ||
| 36 | } | ||
| 37 | |||
| 38 | static inline void | ||
| 39 | ixp23xx_iounmap(void __iomem *addr) | ||
| 40 | { | ||
| 41 | if ((((u32)addr) >= IXP23XX_PCI_MEM_VIRT) && | ||
| 42 | (((u32)addr) < IXP23XX_PCI_MEM_VIRT + IXP23XX_PCI_MEM_SIZE)) | ||
| 43 | return; | ||
| 44 | |||
| 45 | __iounmap(addr); | ||
| 46 | } | ||
| 47 | |||
| 48 | #define __arch_ioremap ixp23xx_ioremap | ||
| 49 | #define __arch_iounmap ixp23xx_iounmap | ||
| 50 | |||
| 51 | |||
| 52 | #endif | ||
diff --git a/arch/arm/mach-ixp23xx/include/mach/irqs.h b/arch/arm/mach-ixp23xx/include/mach/irqs.h new file mode 100644 index 00000000000..3af33a04b8a --- /dev/null +++ b/arch/arm/mach-ixp23xx/include/mach/irqs.h | |||
| @@ -0,0 +1,223 @@ | |||
| 1 | /* | ||
| 2 | * arch/arm/mach-ixp23xx/include/mach/irqs.h | ||
| 3 | * | ||
| 4 | * IRQ definitions for IXP23XX based systems | ||
| 5 | * | ||
| 6 | * Author: Naeem Afzal <naeem.m.afzal@intel.com> | ||
| 7 | * | ||
| 8 | * Copyright (C) 2003-2004 Intel Corporation. | ||
| 9 | * | ||
| 10 | * This program is free software; you can redistribute it and/or modify | ||
| 11 | * it under the terms of the GNU General Public License version 2 as | ||
| 12 | * published by the Free Software Foundation. | ||
| 13 | */ | ||
| 14 | |||
| 15 | #ifndef __ASM_ARCH_IRQS_H | ||
| 16 | #define __ASM_ARCH_IRQS_H | ||
| 17 | |||
| 18 | #define NR_IXP23XX_IRQS IRQ_IXP23XX_INTB+1 | ||
| 19 | #define IRQ_IXP23XX_EXTIRQS NR_IXP23XX_IRQS | ||
| 20 | |||
| 21 | |||
| 22 | #define IRQ_IXP23XX_DBG0 0 /* Debug/Execution/MBox */ | ||
| 23 | #define IRQ_IXP23XX_DBG1 1 /* Debug/Execution/MBox */ | ||
| 24 | #define IRQ_IXP23XX_NPE_TRG 2 /* npe_trigger */ | ||
| 25 | #define IRQ_IXP23XX_TIMER1 3 /* Timer[0] */ | ||
| 26 | #define IRQ_IXP23XX_TIMER2 4 /* Timer[1] */ | ||
| 27 | #define IRQ_IXP23XX_TIMESTAMP 5 /* Timer[2], Time-stamp */ | ||
| 28 | #define IRQ_IXP23XX_WDOG 6 /* Time[3], Watchdog Timer */ | ||
| 29 | #define IRQ_IXP23XX_PCI_DBELL 7 /* PCI Doorbell */ | ||
| 30 | #define IRQ_IXP23XX_PCI_DMA1 8 /* PCI DMA Channel 1 */ | ||
| 31 | #define IRQ_IXP23XX_PCI_DMA2 9 /* PCI DMA Channel 2 */ | ||
| 32 | #define IRQ_IXP23XX_PCI_DMA3 10 /* PCI DMA Channel 3 */ | ||
| 33 | #define IRQ_IXP23XX_PCI_INT_RPH 11 /* pcxg_pci_int_rph */ | ||
| 34 | #define IRQ_IXP23XX_CPP_PMU 12 /* xpxg_pm_int_rpl */ | ||
| 35 | #define IRQ_IXP23XX_SWINT0 | ||
