allow coexistance of N build and AC build.
[tomato.git] / release / src-rt-6.x / linux / linux-2.6 / arch / arm26 / lib / io-acorn.S
blob5f62ade5be39141ea60eaaa3deb41e50dc348fe0
1 /*
2  *  linux/arch/arm26/lib/io-acorn.S
3  *
4  *  Copyright (C) 1995, 1996 Russell King
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10 #include <linux/linkage.h>
11 #include <asm/assembler.h>
12 #include <asm/hardware.h>
14                 .text
15                 .align
17                 .equ    diff_pcio_base, PCIO_BASE - IO_BASE
19                 .macro  outw2   rd
20                 mov     r8, \rd, lsl #16
21                 orr     r8, r8, r8, lsr #16
22                 str     r8, [r3, r0, lsl #2]
23                 mov     r8, \rd, lsr #16
24                 orr     r8, r8, r8, lsl #16
25                 str     r8, [r3, r0, lsl #2]
26                 .endm
28                 .macro  inw2    rd, mask, temp
29                 ldr     \rd, [r0]
30                 and     \rd, \rd, \mask
31                 ldr     \temp, [r0]
32                 orr     \rd, \rd, \temp, lsl #16
33                 .endm
35                 .macro  addr    rd
36                 tst     \rd, #0x80000000
37                 mov     \rd, \rd, lsl #2
38                 add     \rd, \rd, #IO_BASE
39                 addeq   \rd, \rd, #diff_pcio_base
40                 .endm
42 .iosl_warning:
43                 .ascii  "<4>insl/outsl not implemented, called from %08lX\0"
44                 .align
47  * These make no sense on Acorn machines.
48  * Print a warning message.
49  */
50 ENTRY(insl)
51 ENTRY(outsl)
52                 adr     r0, .iosl_warning
53                 mov     r1, lr
54                 b       printk
56 @ Purpose: write a memc register
57 @ Proto  : void memc_write(int register, int value);
58 @ Returns: nothing
60 ENTRY(memc_write)
61                 cmp     r0, #7
62                 RETINSTR(movgt,pc,lr)
63                 mov     r0, r0, lsl #17
64                 mov     r1, r1, lsl #15
65                 mov     r1, r1, lsr #17
66                 orr     r0, r0, r1, lsl #2
67                 add     r0, r0, #0x03600000
68                 strb    r0, [r0]
69                 RETINSTR(mov,pc,lr)