diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-27 21:17:02 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-27 21:17:02 -0400 |
commit | 9e4db1c3eed55c22328d8022c2c80adb3093833f (patch) | |
tree | 9643545e6bd182f1d3e19942f590a6a1e3198320 /arch/arm/mach-ebsa110 | |
parent | de8856d2c11f562c60ed9340a83db4a4f829a6e6 (diff) | |
parent | aae528d9a8ad79d4b21b1b723abc9447fdb0d200 (diff) |
Merge branch 'platforms' of git://git.linaro.org/people/rmk/linux-arm
Pull ARM platform updates from Russell King:
"This covers platform stuff for platforms I have a direct interest in
(iow, I have the hardware). Essentially:
- as we no longer support any other Acorn platforms other than RiscPC
anymore, we can collect all that code into mach-rpc.
- convert Acorn expansion card stuff to use IRQ allocation functions,
and get rid of NO_IRQ from there.
- cleanups to the ebsa110 platform to move some private stuff out of
its header files.
- large amount of SA11x0 updates:
- conversion of private DMA implementation to DMA engine support
(this actually gives us greater flexibility in drivers over the old
API.)
- re-worked ucb1x00 updates - convert to genirq, remove sa11x0
dependencies, fix various minor issues
- move platform specific sa11x0 framebuffer data into platform files
in arch/arm instead of keeping this in the driver itself
- update sa11x0 IrDA driver for DMA engine, and allow it to use DMA
for SIR transmissions as well as FIR
- rework sa1111 support for genirq, and irq allocation
- fix sa1111 IRQ support so it works again
- use sparse IRQ support
After this, I have one more pull request remaining from my current
set, which I think is going to be the most problematical as it
generates 8 conflicts."
Fixed up the trivial conflict in arch/arm/mach-rpc/Makefile as per
Russell.
* 'platforms' of git://git.linaro.org/people/rmk/linux-arm: (125 commits)
ARM: 7343/1: sa11x0: convert to sparse IRQ
ARM: 7342/2: sa1100: prepare for sparse irq conversion
ARM: 7341/1: input: prepare jornada720 keyboard and ts for sa11x0 sparse irq
ARM: 7340/1: rtc: sa1100: include mach/irqs.h instead of asm/irq.h
ARM: sa11x0: remove unused DMA controller definitions
ARM: sa11x0: remove old SoC private DMA driver
USB: sa1111: add hcd .reset method
USB: sa1111: add OHCI shutdown methods
USB: sa1111: reorganize ohci-sa1111.c
USB: sa1111: get rid of nasty printk(KERN_DEBUG "%s: ...", __FILE__)
USB: sa1111: sparse and checkpatch cleanups
ARM: sa11x0: don't static map sa1111
ARM: sa1111: use dev_err() rather than printk()
ARM: sa1111: cleanup sub-device registration and unregistration
ARM: sa1111: only setup DMA for DMA capable devices
ARM: sa1111: register sa1111 devices with dmabounce in bus notifier
ARM: sa1111: move USB interface register definitions to ohci-sa1111.c
ARM: sa1111: move PCMCIA interface register definitions to sa1111_generic.c
ARM: sa1111: move PS/2 interface register definitions to sa1111p2.c
ARM: sa1111: delete unused physical GPIO register definitions
...
Diffstat (limited to 'arch/arm/mach-ebsa110')
-rw-r--r-- | arch/arm/mach-ebsa110/core.c | 13 | ||||
-rw-r--r-- | arch/arm/mach-ebsa110/core.h | 41 | ||||
-rw-r--r-- | arch/arm/mach-ebsa110/include/mach/hardware.h | 39 | ||||
-rw-r--r-- | arch/arm/mach-ebsa110/io.c | 20 | ||||
-rw-r--r-- | arch/arm/mach-ebsa110/leds.c | 2 |
5 files changed, 68 insertions, 47 deletions
diff --git a/arch/arm/mach-ebsa110/core.c b/arch/arm/mach-ebsa110/core.c index 804c9122b7b3..e400d75d11ae 100644 --- a/arch/arm/mach-ebsa110/core.c +++ b/arch/arm/mach-ebsa110/core.c | |||
@@ -30,10 +30,7 @@ | |||
30 | 30 | ||
31 | #include <asm/mach/time.h> | 31 | #include <asm/mach/time.h> |
32 | 32 | ||
33 | #define IRQ_MASK 0xfe000000 /* read */ | 33 | #include "core.h" |
34 | #define IRQ_MSET 0xfe000000 /* write */ | ||
35 | #define IRQ_STAT 0xff000000 /* read */ | ||
36 | #define IRQ_MCLR 0xff000000 /* write */ | ||
37 | 34 | ||
38 | static void ebsa110_mask_irq(struct irq_data *d) | 35 | static void ebsa110_mask_irq(struct irq_data *d) |
39 | { | 36 | { |
@@ -79,22 +76,22 @@ static struct map_desc ebsa110_io_desc[] __initdata = { | |||
79 | { /* IRQ_STAT/IRQ_MCLR */ | 76 | { /* IRQ_STAT/IRQ_MCLR */ |
80 | .virtual = IRQ_STAT, | 77 | .virtual = IRQ_STAT, |
81 | .pfn = __phys_to_pfn(TRICK4_PHYS), | 78 | .pfn = __phys_to_pfn(TRICK4_PHYS), |
82 | .length = PGDIR_SIZE, | 79 | .length = TRICK4_SIZE, |
83 | .type = MT_DEVICE | 80 | .type = MT_DEVICE |
84 | }, { /* IRQ_MASK/IRQ_MSET */ | 81 | }, { /* IRQ_MASK/IRQ_MSET */ |
85 | .virtual = IRQ_MASK, | 82 | .virtual = IRQ_MASK, |
86 | .pfn = __phys_to_pfn(TRICK3_PHYS), | 83 | .pfn = __phys_to_pfn(TRICK3_PHYS), |
87 | .length = PGDIR_SIZE, | 84 | .length = TRICK3_SIZE, |
88 | .type = MT_DEVICE | 85 | .type = MT_DEVICE |
89 | }, { /* SOFT_BASE */ | 86 | }, { /* SOFT_BASE */ |
90 | .virtual = SOFT_BASE, | 87 | .virtual = SOFT_BASE, |
91 | .pfn = __phys_to_pfn(TRICK1_PHYS), | 88 | .pfn = __phys_to_pfn(TRICK1_PHYS), |
92 | .length = PGDIR_SIZE, | 89 | .length = TRICK1_SIZE, |
93 | .type = MT_DEVICE | 90 | .type = MT_DEVICE |
94 | }, { /* PIT_BASE */ | 91 | }, { /* PIT_BASE */ |
95 | .virtual = PIT_BASE, | 92 | .virtual = PIT_BASE, |
96 | .pfn = __phys_to_pfn(TRICK0_PHYS), | 93 | .pfn = __phys_to_pfn(TRICK0_PHYS), |
97 | .length = PGDIR_SIZE, | 94 | .length = TRICK0_SIZE, |
98 | .type = MT_DEVICE | 95 | .type = MT_DEVICE |
99 | }, | 96 | }, |
100 | 97 | ||
diff --git a/arch/arm/mach-ebsa110/core.h b/arch/arm/mach-ebsa110/core.h new file mode 100644 index 000000000000..c93c9e43012d --- /dev/null +++ b/arch/arm/mach-ebsa110/core.h | |||
@@ -0,0 +1,41 @@ | |||
1 | /* | ||
2 | * Copyright (C) 1996-2000 Russell King. | ||
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 version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | * | ||
8 | * This file contains the core hardware definitions of the EBSA-110. | ||
9 | */ | ||
10 | #ifndef CORE_H | ||
11 | #define CORE_H | ||
12 | |||
13 | /* Physical addresses/sizes */ | ||
14 | #define ISAMEM_PHYS 0xe0000000 | ||
15 | #define ISAMEM_SIZE 0x10000000 | ||
16 | |||
17 | #define ISAIO_PHYS 0xf0000000 | ||
18 | #define ISAIO_SIZE PGDIR_SIZE | ||
19 | |||
20 | #define TRICK0_PHYS 0xf2000000 | ||
21 | #define TRICK0_SIZE PGDIR_SIZE | ||
22 | #define TRICK1_PHYS 0xf2400000 | ||
23 | #define TRICK1_SIZE PGDIR_SIZE | ||
24 | #define TRICK2_PHYS 0xf2800000 | ||
25 | #define TRICK3_PHYS 0xf2c00000 | ||
26 | #define TRICK3_SIZE PGDIR_SIZE | ||
27 | #define TRICK4_PHYS 0xf3000000 | ||
28 | #define TRICK4_SIZE PGDIR_SIZE | ||
29 | #define TRICK5_PHYS 0xf3400000 | ||
30 | #define TRICK6_PHYS 0xf3800000 | ||
31 | #define TRICK7_PHYS 0xf3c00000 | ||
32 | |||
33 | /* Virtual addresses */ | ||
34 | #define PIT_BASE 0xfc000000 /* trick 0 */ | ||
35 | #define SOFT_BASE 0xfd000000 /* trick 1 */ | ||
36 | #define IRQ_MASK 0xfe000000 /* trick 3 - read */ | ||
37 | #define IRQ_MSET 0xfe000000 /* trick 3 - write */ | ||
38 | #define IRQ_STAT 0xff000000 /* trick 4 - read */ | ||
39 | #define IRQ_MCLR 0xff000000 /* trick 4 - write */ | ||
40 | |||
41 | #endif | ||
diff --git a/arch/arm/mach-ebsa110/include/mach/hardware.h b/arch/arm/mach-ebsa110/include/mach/hardware.h index 4b2fb7743909..f4e5407bd004 100644 --- a/arch/arm/mach-ebsa110/include/mach/hardware.h +++ b/arch/arm/mach-ebsa110/include/mach/hardware.h | |||
@@ -12,48 +12,9 @@ | |||
12 | #ifndef __ASM_ARCH_HARDWARE_H | 12 | #ifndef __ASM_ARCH_HARDWARE_H |
13 | #define __ASM_ARCH_HARDWARE_H | 13 | #define __ASM_ARCH_HARDWARE_H |
14 | 14 | ||
15 | /* | ||
16 | * The EBSA110 has a weird "ISA IO" region: | ||
17 | * | ||
18 | * Region 0 (addr = 0xf0000000 + io << 2) | ||
19 | * -------------------------------------------------------- | ||
20 | * Physical region IO region | ||
21 | * f0000fe0 - f0000ffc 3f8 - 3ff ttyS0 | ||
22 | * f0000e60 - f0000e64 398 - 399 | ||
23 | * f0000de0 - f0000dfc 378 - 37f lp0 | ||
24 | * f0000be0 - f0000bfc 2f8 - 2ff ttyS1 | ||
25 | * | ||
26 | * Region 1 (addr = 0xf0000000 + (io & ~1) << 1 + (io & 1)) | ||
27 | * -------------------------------------------------------- | ||
28 | * Physical region IO region | ||
29 | * f00014f1 a79 pnp write data | ||
30 | * f00007c0 - f00007c1 3e0 - 3e1 pcmcia | ||
31 | * f00004f1 279 pnp address | ||
32 | * f0000440 - f000046c 220 - 236 eth0 | ||
33 | * f0000405 203 pnp read data | ||
34 | */ | ||
35 | |||
36 | #define ISAMEM_PHYS 0xe0000000 | ||
37 | #define ISAMEM_SIZE 0x10000000 | ||
38 | |||
39 | #define ISAIO_PHYS 0xf0000000 | ||
40 | #define ISAIO_SIZE PGDIR_SIZE | ||
41 | |||
42 | #define TRICK0_PHYS 0xf2000000 | ||
43 | #define TRICK1_PHYS 0xf2400000 | ||
44 | #define TRICK2_PHYS 0xf2800000 | ||
45 | #define TRICK3_PHYS 0xf2c00000 | ||
46 | #define TRICK4_PHYS 0xf3000000 | ||
47 | #define TRICK5_PHYS 0xf3400000 | ||
48 | #define TRICK6_PHYS 0xf3800000 | ||
49 | #define TRICK7_PHYS 0xf3c00000 | ||
50 | |||
51 | #define ISAMEM_BASE 0xe0000000 | 15 | #define ISAMEM_BASE 0xe0000000 |
52 | #define ISAIO_BASE 0xf0000000 | 16 | #define ISAIO_BASE 0xf0000000 |
53 | 17 | ||
54 | #define PIT_BASE 0xfc000000 | ||
55 | #define SOFT_BASE 0xfd000000 | ||
56 | |||
57 | /* | 18 | /* |
58 | * RAM definitions | 19 | * RAM definitions |
59 | */ | 20 | */ |
diff --git a/arch/arm/mach-ebsa110/io.c b/arch/arm/mach-ebsa110/io.c index c52e3047a7eb..756cc377a73d 100644 --- a/arch/arm/mach-ebsa110/io.c +++ b/arch/arm/mach-ebsa110/io.c | |||
@@ -177,6 +177,26 @@ void writesl(void __iomem *addr, const void *data, int len) | |||
177 | } | 177 | } |
178 | EXPORT_SYMBOL(writesl); | 178 | EXPORT_SYMBOL(writesl); |
179 | 179 | ||
180 | /* | ||
181 | * The EBSA110 has a weird "ISA IO" region: | ||
182 | * | ||
183 | * Region 0 (addr = 0xf0000000 + io << 2) | ||
184 | * -------------------------------------------------------- | ||
185 | * Physical region IO region | ||
186 | * f0000fe0 - f0000ffc 3f8 - 3ff ttyS0 | ||
187 | * f0000e60 - f0000e64 398 - 399 | ||
188 | * f0000de0 - f0000dfc 378 - 37f lp0 | ||
189 | * f0000be0 - f0000bfc 2f8 - 2ff ttyS1 | ||
190 | * | ||
191 | * Region 1 (addr = 0xf0000000 + (io & ~1) << 1 + (io & 1)) | ||
192 | * -------------------------------------------------------- | ||
193 | * Physical region IO region | ||
194 | * f00014f1 a79 pnp write data | ||
195 | * f00007c0 - f00007c1 3e0 - 3e1 pcmcia | ||
196 | * f00004f1 279 pnp address | ||
197 | * f0000440 - f000046c 220 - 236 eth0 | ||
198 | * f0000405 203 pnp read data | ||
199 | */ | ||
180 | #define SUPERIO_PORT(p) \ | 200 | #define SUPERIO_PORT(p) \ |
181 | (((p) >> 3) == (0x3f8 >> 3) || \ | 201 | (((p) >> 3) == (0x3f8 >> 3) || \ |
182 | ((p) >> 3) == (0x2f8 >> 3) || \ | 202 | ((p) >> 3) == (0x2f8 >> 3) || \ |
diff --git a/arch/arm/mach-ebsa110/leds.c b/arch/arm/mach-ebsa110/leds.c index 6a6ea57c2a4e..d43121a30aa7 100644 --- a/arch/arm/mach-ebsa110/leds.c +++ b/arch/arm/mach-ebsa110/leds.c | |||
@@ -20,6 +20,8 @@ | |||
20 | #include <asm/system.h> | 20 | #include <asm/system.h> |
21 | #include <asm/mach-types.h> | 21 | #include <asm/mach-types.h> |
22 | 22 | ||
23 | #include "core.h" | ||
24 | |||
23 | static spinlock_t leds_lock; | 25 | static spinlock_t leds_lock; |
24 | 26 | ||
25 | static void ebsa110_leds_event(led_event_t ledevt) | 27 | static void ebsa110_leds_event(led_event_t ledevt) |