diff options
Diffstat (limited to 'include/asm-arm')
-rw-r--r-- | include/asm-arm/arch-aaec2000/debug-macro.S | 1 | ||||
-rw-r--r-- | include/asm-arm/arch-aaec2000/entry-macro.S | 1 | ||||
-rw-r--r-- | include/asm-arm/arch-imx/debug-macro.S | 2 | ||||
-rw-r--r-- | include/asm-arm/arch-imx/imx-uart.h | 10 | ||||
-rw-r--r-- | include/asm-arm/arch-ixp4xx/io.h | 7 | ||||
-rw-r--r-- | include/asm-arm/arch-ixp4xx/memory.h | 2 | ||||
-rw-r--r-- | include/asm-arm/arch-pxa/dma.h | 26 | ||||
-rw-r--r-- | include/asm-arm/arch-pxa/pxa2xx_spi.h | 68 | ||||
-rw-r--r-- | include/asm-arm/bug.h | 1 | ||||
-rw-r--r-- | include/asm-arm/procinfo.h | 2 | ||||
-rw-r--r-- | include/asm-arm/spinlock.h | 6 | ||||
-rw-r--r-- | include/asm-arm/unistd.h | 23 |
12 files changed, 125 insertions, 24 deletions
diff --git a/include/asm-arm/arch-aaec2000/debug-macro.S b/include/asm-arm/arch-aaec2000/debug-macro.S index e4f1fa539a74..7b1fce021d8a 100644 --- a/include/asm-arm/arch-aaec2000/debug-macro.S +++ b/include/asm-arm/arch-aaec2000/debug-macro.S | |||
@@ -9,6 +9,7 @@ | |||
9 | * published by the Free Software Foundation. | 9 | * published by the Free Software Foundation. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include "hardware.h" | ||
12 | .macro addruart,rx | 13 | .macro addruart,rx |
13 | mrc p15, 0, \rx, c1, c0 | 14 | mrc p15, 0, \rx, c1, c0 |
14 | tst \rx, #1 @ MMU enabled? | 15 | tst \rx, #1 @ MMU enabled? |
diff --git a/include/asm-arm/arch-aaec2000/entry-macro.S b/include/asm-arm/arch-aaec2000/entry-macro.S index df31313ab07e..1eb3503bd16e 100644 --- a/include/asm-arm/arch-aaec2000/entry-macro.S +++ b/include/asm-arm/arch-aaec2000/entry-macro.S | |||
@@ -10,6 +10,7 @@ | |||
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | 11 | * |
12 | */ | 12 | */ |
13 | #include <asm/arch/irqs.h> | ||
13 | 14 | ||
14 | .macro disable_fiq | 15 | .macro disable_fiq |
15 | .endm | 16 | .endm |
diff --git a/include/asm-arm/arch-imx/debug-macro.S b/include/asm-arm/arch-imx/debug-macro.S index 83f552f7bcc1..c611871643a2 100644 --- a/include/asm-arm/arch-imx/debug-macro.S +++ b/include/asm-arm/arch-imx/debug-macro.S | |||
@@ -16,7 +16,7 @@ | |||
16 | tst \rx, #1 @ MMU enabled? | 16 | tst \rx, #1 @ MMU enabled? |
17 | moveq \rx, #0x00000000 @ physical | 17 | moveq \rx, #0x00000000 @ physical |
18 | movne \rx, #0xe0000000 @ virtual | 18 | movne \rx, #0xe0000000 @ virtual |
19 | orr \rx, \rx, #0x00200000 | 19 | orreq \rx, \rx, #0x00200000 @ physical |
20 | orr \rx, \rx, #0x00006000 @ UART1 offset | 20 | orr \rx, \rx, #0x00006000 @ UART1 offset |
21 | .endm | 21 | .endm |
22 | 22 | ||
diff --git a/include/asm-arm/arch-imx/imx-uart.h b/include/asm-arm/arch-imx/imx-uart.h new file mode 100644 index 000000000000..3a685e1780ea --- /dev/null +++ b/include/asm-arm/arch-imx/imx-uart.h | |||
@@ -0,0 +1,10 @@ | |||
1 | #ifndef ASMARM_ARCH_UART_H | ||
2 | #define ASMARM_ARCH_UART_H | ||
3 | |||
4 | #define IMXUART_HAVE_RTSCTS (1<<0) | ||
5 | |||
6 | struct imxuart_platform_data { | ||
7 | unsigned int flags; | ||
8 | }; | ||
9 | |||
10 | #endif | ||
diff --git a/include/asm-arm/arch-ixp4xx/io.h b/include/asm-arm/arch-ixp4xx/io.h index 942b622455bc..b59520e56fc7 100644 --- a/include/asm-arm/arch-ixp4xx/io.h +++ b/include/asm-arm/arch-ixp4xx/io.h | |||
@@ -260,6 +260,12 @@ out: | |||
260 | 260 | ||
261 | #endif | 261 | #endif |
262 | 262 | ||
263 | #ifndef CONFIG_PCI | ||
264 | |||
265 | #define __io(v) v | ||
266 | |||
267 | #else | ||
268 | |||
263 | /* | 269 | /* |
264 | * IXP4xx does not have a transparent cpu -> PCI I/O translation | 270 | * IXP4xx does not have a transparent cpu -> PCI I/O translation |
265 | * window. Instead, it has a set of registers that must be tweaked | 271 | * window. Instead, it has a set of registers that must be tweaked |
@@ -578,6 +584,7 @@ __ixp4xx_iowrite32_rep(void __iomem *addr, const void *vaddr, u32 count) | |||
578 | 584 | ||
579 | #define ioport_map(port, nr) ((void __iomem*)(port + PIO_OFFSET)) | 585 | #define ioport_map(port, nr) ((void __iomem*)(port + PIO_OFFSET)) |
580 | #define ioport_unmap(addr) | 586 | #define ioport_unmap(addr) |
587 | #endif // !CONFIG_PCI | ||
581 | 588 | ||
582 | #endif // __ASM_ARM_ARCH_IO_H | 589 | #endif // __ASM_ARM_ARCH_IO_H |
583 | 590 | ||
diff --git a/include/asm-arm/arch-ixp4xx/memory.h b/include/asm-arm/arch-ixp4xx/memory.h index ee211d28a3ef..af9667b57ab3 100644 --- a/include/asm-arm/arch-ixp4xx/memory.h +++ b/include/asm-arm/arch-ixp4xx/memory.h | |||
@@ -14,7 +14,7 @@ | |||
14 | */ | 14 | */ |
15 | #define PHYS_OFFSET UL(0x00000000) | 15 | #define PHYS_OFFSET UL(0x00000000) |
16 | 16 | ||
17 | #ifndef __ASSEMBLY__ | 17 | #if !defined(__ASSEMBLY__) && defined(CONFIG_PCI) |
18 | 18 | ||
19 | void ixp4xx_adjust_zones(int node, unsigned long *size, unsigned long *holes); | 19 | void ixp4xx_adjust_zones(int node, unsigned long *size, unsigned long *holes); |
20 | 20 | ||
diff --git a/include/asm-arm/arch-pxa/dma.h b/include/asm-arm/arch-pxa/dma.h index 3e88a2a02a0f..a008150abc59 100644 --- a/include/asm-arm/arch-pxa/dma.h +++ b/include/asm-arm/arch-pxa/dma.h | |||
@@ -24,27 +24,29 @@ typedef struct pxa_dma_desc { | |||
24 | volatile u32 dcmd; /* DCMD value for the current transfer */ | 24 | volatile u32 dcmd; /* DCMD value for the current transfer */ |
25 | } pxa_dma_desc; | 25 | } pxa_dma_desc; |
26 | 26 | ||
27 | typedef enum { | ||
28 | DMA_PRIO_HIGH = 0, | ||
29 | DMA_PRIO_MEDIUM = 1, | ||
30 | DMA_PRIO_LOW = 2 | ||
31 | } pxa_dma_prio; | ||
32 | |||
27 | #if defined(CONFIG_PXA27x) | 33 | #if defined(CONFIG_PXA27x) |
28 | 34 | ||
29 | #define PXA_DMA_CHANNELS 32 | 35 | #define PXA_DMA_CHANNELS 32 |
30 | #define PXA_DMA_NBCH(prio) ((prio == DMA_PRIO_LOW) ? 16 : 8) | ||
31 | 36 | ||
32 | typedef enum { | 37 | #define pxa_for_each_dma_prio(ch, prio) \ |
33 | DMA_PRIO_HIGH = 0, | 38 | for ( \ |
34 | DMA_PRIO_MEDIUM = 8, | 39 | ch = prio * 4; \ |
35 | DMA_PRIO_LOW = 16 | 40 | ch != (4 << prio) + 16; \ |
36 | } pxa_dma_prio; | 41 | ch = (ch + 1 == (4 << prio)) ? (prio * 4 + 16) : (ch + 1) \ |
42 | ) | ||
37 | 43 | ||
38 | #elif defined(CONFIG_PXA25x) | 44 | #elif defined(CONFIG_PXA25x) |
39 | 45 | ||
40 | #define PXA_DMA_CHANNELS 16 | 46 | #define PXA_DMA_CHANNELS 16 |
41 | #define PXA_DMA_NBCH(prio) ((prio == DMA_PRIO_LOW) ? 8 : 4) | ||
42 | 47 | ||
43 | typedef enum { | 48 | #define pxa_for_each_dma_prio(ch, prio) \ |
44 | DMA_PRIO_HIGH = 0, | 49 | for (ch = prio * 4; ch != (4 << prio); ch++) |
45 | DMA_PRIO_MEDIUM = 4, | ||
46 | DMA_PRIO_LOW = 8 | ||
47 | } pxa_dma_prio; | ||
48 | 50 | ||
49 | #endif | 51 | #endif |
50 | 52 | ||
diff --git a/include/asm-arm/arch-pxa/pxa2xx_spi.h b/include/asm-arm/arch-pxa/pxa2xx_spi.h new file mode 100644 index 000000000000..1e70908b816f --- /dev/null +++ b/include/asm-arm/arch-pxa/pxa2xx_spi.h | |||
@@ -0,0 +1,68 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2005 Stephen Street / StreetFire Sound Labs | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
17 | */ | ||
18 | |||
19 | #ifndef PXA2XX_SPI_H_ | ||
20 | #define PXA2XX_SPI_H_ | ||
21 | |||
22 | #define PXA2XX_CS_ASSERT (0x01) | ||
23 | #define PXA2XX_CS_DEASSERT (0x02) | ||
24 | |||
25 | #if defined(CONFIG_PXA25x) | ||
26 | #define CLOCK_SPEED_HZ 3686400 | ||
27 | #define SSP1_SerClkDiv(x) (((CLOCK_SPEED_HZ/2/(x+1))<<8)&0x0000ff00) | ||
28 | #define SSP2_SerClkDiv(x) (((CLOCK_SPEED_HZ/(x+1))<<8)&0x000fff00) | ||
29 | #define SSP3_SerClkDiv(x) (((CLOCK_SPEED_HZ/(x+1))<<8)&0x000fff00) | ||
30 | #elif defined(CONFIG_PXA27x) | ||
31 | #define CLOCK_SPEED_HZ 13000000 | ||
32 | #define SSP1_SerClkDiv(x) (((CLOCK_SPEED_HZ/(x+1))<<8)&0x000fff00) | ||
33 | #define SSP2_SerClkDiv(x) (((CLOCK_SPEED_HZ/(x+1))<<8)&0x000fff00) | ||
34 | #define SSP3_SerClkDiv(x) (((CLOCK_SPEED_HZ/(x+1))<<8)&0x000fff00) | ||
35 | #endif | ||
36 | |||
37 | #define SSP1_VIRT ((void *)(io_p2v(__PREG(SSCR0_P(1))))) | ||
38 | #define SSP2_VIRT ((void *)(io_p2v(__PREG(SSCR0_P(2))))) | ||
39 | #define SSP3_VIRT ((void *)(io_p2v(__PREG(SSCR0_P(3))))) | ||
40 | |||
41 | enum pxa_ssp_type { | ||
42 | SSP_UNDEFINED = 0, | ||
43 | PXA25x_SSP, /* pxa 210, 250, 255, 26x */ | ||
44 | PXA25x_NSSP, /* pxa 255, 26x (including ASSP) */ | ||
45 | PXA27x_SSP, | ||
46 | }; | ||
47 | |||
48 | /* device.platform_data for SSP controller devices */ | ||
49 | struct pxa2xx_spi_master { | ||
50 | enum pxa_ssp_type ssp_type; | ||
51 | u32 clock_enable; | ||
52 | u16 num_chipselect; | ||
53 | u8 enable_dma; | ||
54 | }; | ||
55 | |||
56 | /* spi_board_info.controller_data for SPI slave devices, | ||
57 | * copied to spi_device.platform_data ... mostly for dma tuning | ||
58 | */ | ||
59 | struct pxa2xx_spi_chip { | ||
60 | u8 tx_threshold; | ||
61 | u8 rx_threshold; | ||
62 | u8 dma_burst_size; | ||
63 | u32 timeout_microsecs; | ||
64 | u8 enable_loopback; | ||
65 | void (*cs_control)(u32 command); | ||
66 | }; | ||
67 | |||
68 | #endif /*PXA2XX_SPI_H_*/ | ||
diff --git a/include/asm-arm/bug.h b/include/asm-arm/bug.h index 7fb02138f585..5ab8216f5204 100644 --- a/include/asm-arm/bug.h +++ b/include/asm-arm/bug.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define _ASMARM_BUG_H | 2 | #define _ASMARM_BUG_H |
3 | 3 | ||
4 | #include <linux/config.h> | 4 | #include <linux/config.h> |
5 | #include <linux/stddef.h> | ||
5 | 6 | ||
6 | #ifdef CONFIG_BUG | 7 | #ifdef CONFIG_BUG |
7 | #ifdef CONFIG_DEBUG_BUGVERBOSE | 8 | #ifdef CONFIG_DEBUG_BUGVERBOSE |
diff --git a/include/asm-arm/procinfo.h b/include/asm-arm/procinfo.h index a9c75b2c314f..842526055225 100644 --- a/include/asm-arm/procinfo.h +++ b/include/asm-arm/procinfo.h | |||
@@ -45,8 +45,6 @@ extern unsigned int elf_hwcap; | |||
45 | 45 | ||
46 | #endif /* __ASSEMBLY__ */ | 46 | #endif /* __ASSEMBLY__ */ |
47 | 47 | ||
48 | #define PROC_INFO_SZ 48 | ||
49 | |||
50 | #define HWCAP_SWP 1 | 48 | #define HWCAP_SWP 1 |
51 | #define HWCAP_HALF 2 | 49 | #define HWCAP_HALF 2 |
52 | #define HWCAP_THUMB 4 | 50 | #define HWCAP_THUMB 4 |
diff --git a/include/asm-arm/spinlock.h b/include/asm-arm/spinlock.h index 43ad4e55878c..406ca97a8ab2 100644 --- a/include/asm-arm/spinlock.h +++ b/include/asm-arm/spinlock.h | |||
@@ -142,6 +142,9 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw) | |||
142 | : "cc"); | 142 | : "cc"); |
143 | } | 143 | } |
144 | 144 | ||
145 | /* write_can_lock - would write_trylock() succeed? */ | ||
146 | #define __raw_write_can_lock(x) ((x)->lock == 0x80000000) | ||
147 | |||
145 | /* | 148 | /* |
146 | * Read locks are a bit more hairy: | 149 | * Read locks are a bit more hairy: |
147 | * - Exclusively load the lock value. | 150 | * - Exclusively load the lock value. |
@@ -198,4 +201,7 @@ static inline void __raw_read_unlock(raw_rwlock_t *rw) | |||
198 | 201 | ||
199 | #define __raw_read_trylock(lock) generic__raw_read_trylock(lock) | 202 | #define __raw_read_trylock(lock) generic__raw_read_trylock(lock) |
200 | 203 | ||
204 | /* read_can_lock - would read_trylock() succeed? */ | ||
205 | #define __raw_read_can_lock(x) ((x)->lock < 0x80000000) | ||
206 | |||
201 | #endif /* __ASM_SPINLOCK_H */ | 207 | #endif /* __ASM_SPINLOCK_H */ |
diff --git a/include/asm-arm/unistd.h b/include/asm-arm/unistd.h index ee8dfea549bc..cbf39a56dbe7 100644 --- a/include/asm-arm/unistd.h +++ b/include/asm-arm/unistd.h | |||
@@ -363,7 +363,7 @@ | |||
363 | /* | 363 | /* |
364 | * The following syscalls are obsolete and no longer available for EABI. | 364 | * The following syscalls are obsolete and no longer available for EABI. |
365 | */ | 365 | */ |
366 | #if defined(__ARM_EABI__) | 366 | #if defined(__ARM_EABI__) && !defined(__KERNEL__) |
367 | #undef __NR_time | 367 | #undef __NR_time |
368 | #undef __NR_umount | 368 | #undef __NR_umount |
369 | #undef __NR_stime | 369 | #undef __NR_stime |
@@ -410,7 +410,8 @@ type name(void) { \ | |||
410 | __asm__ __volatile__ ( \ | 410 | __asm__ __volatile__ ( \ |
411 | __syscall(name) \ | 411 | __syscall(name) \ |
412 | : "=r" (__res_r0) \ | 412 | : "=r" (__res_r0) \ |
413 | : __SYS_REG_LIST() ); \ | 413 | : __SYS_REG_LIST() \ |
414 | : "memory" ); \ | ||
414 | __res = __res_r0; \ | 415 | __res = __res_r0; \ |
415 | __syscall_return(type,__res); \ | 416 | __syscall_return(type,__res); \ |
416 | } | 417 | } |
@@ -424,7 +425,8 @@ type name(type1 arg1) { \ | |||
424 | __asm__ __volatile__ ( \ | 425 | __asm__ __volatile__ ( \ |
425 | __syscall(name) \ | 426 | __syscall(name) \ |
426 | : "=r" (__res_r0) \ | 427 | : "=r" (__res_r0) \ |
427 | : __SYS_REG_LIST( "0" (__r0) ) ); \ | 428 | : __SYS_REG_LIST( "0" (__r0) ) \ |
429 | : "memory" ); \ | ||
428 | __res = __res_r0; \ | 430 | __res = __res_r0; \ |
429 | __syscall_return(type,__res); \ | 431 | __syscall_return(type,__res); \ |
430 | } | 432 | } |
@@ -439,7 +441,8 @@ type name(type1 arg1,type2 arg2) { \ | |||
439 | __asm__ __volatile__ ( \ | 441 | __asm__ __volatile__ ( \ |
440 | __syscall(name) \ | 442 | __syscall(name) \ |
441 | : "=r" (__res_r0) \ | 443 | : "=r" (__res_r0) \ |
442 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1) ) ); \ | 444 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1) ) \ |
445 | : "memory" ); \ | ||
443 | __res = __res_r0; \ | 446 | __res = __res_r0; \ |
444 | __syscall_return(type,__res); \ | 447 | __syscall_return(type,__res); \ |
445 | } | 448 | } |
@@ -456,7 +459,8 @@ type name(type1 arg1,type2 arg2,type3 arg3) { \ | |||
456 | __asm__ __volatile__ ( \ | 459 | __asm__ __volatile__ ( \ |
457 | __syscall(name) \ | 460 | __syscall(name) \ |
458 | : "=r" (__res_r0) \ | 461 | : "=r" (__res_r0) \ |
459 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2) ) ); \ | 462 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2) ) \ |
463 | : "memory" ); \ | ||
460 | __res = __res_r0; \ | 464 | __res = __res_r0; \ |
461 | __syscall_return(type,__res); \ | 465 | __syscall_return(type,__res); \ |
462 | } | 466 | } |
@@ -474,7 +478,8 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \ | |||
474 | __asm__ __volatile__ ( \ | 478 | __asm__ __volatile__ ( \ |
475 | __syscall(name) \ | 479 | __syscall(name) \ |
476 | : "=r" (__res_r0) \ | 480 | : "=r" (__res_r0) \ |
477 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), "r" (__r3) ) ); \ | 481 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), "r" (__r3) ) \ |
482 | : "memory" ); \ | ||
478 | __res = __res_r0; \ | 483 | __res = __res_r0; \ |
479 | __syscall_return(type,__res); \ | 484 | __syscall_return(type,__res); \ |
480 | } | 485 | } |
@@ -494,7 +499,8 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) { \ | |||
494 | __syscall(name) \ | 499 | __syscall(name) \ |
495 | : "=r" (__res_r0) \ | 500 | : "=r" (__res_r0) \ |
496 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), \ | 501 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), \ |
497 | "r" (__r3), "r" (__r4) ) ); \ | 502 | "r" (__r3), "r" (__r4) ) \ |
503 | : "memory" ); \ | ||
498 | __res = __res_r0; \ | 504 | __res = __res_r0; \ |
499 | __syscall_return(type,__res); \ | 505 | __syscall_return(type,__res); \ |
500 | } | 506 | } |
@@ -514,7 +520,8 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6 | |||
514 | __syscall(name) \ | 520 | __syscall(name) \ |
515 | : "=r" (__res_r0) \ | 521 | : "=r" (__res_r0) \ |
516 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), \ | 522 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), \ |
517 | "r" (__r3), "r" (__r4), "r" (__r5) ) ); \ | 523 | "r" (__r3), "r" (__r4), "r" (__r5) ) \ |
524 | : "memory" ); \ | ||
518 | __res = __res_r0; \ | 525 | __res = __res_r0; \ |
519 | __syscall_return(type,__res); \ | 526 | __syscall_return(type,__res); \ |
520 | } | 527 | } |