aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-03-22 20:32:09 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-22 20:32:09 -0500
commit591eb85ecd7e6eb8596c6129ae074e16636b99f4 (patch)
tree535fb7e9bc29113ff62fd70b0dcd8ad197ab51e2
parent4658f79bec0b51222e769e328c2923f39f3bda77 (diff)
parent3a2916aa289504d694072a98876d23ca31d6401e (diff)
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: (45 commits) [ARM] 3389/1: typo and grammar fix [ARM] 3386/1: AT91RM9200 Clock update [ARM] 3384/1: AT91RM9200: Timer [ARM] 3382/1: ixp2000: unify defconfigs [ARM] 3381/1: ixp2000: fix slowport write timing control register fields [ARM] 3380/1: ixp2000: simplify ixdp2x00_master_npu() check [ARM] 3379/1: ixp2000: use generic 8250 debug macros [ARM] 3378/1: ixp2000: fix gpio interrupt handling [ARM] Quieten spurious IRQ detection [ARM] Use kcalloc to allocate counter_config array rather than kmalloc [ARM] Oprofile: dynamically allocate counter_config [ARM] Oprofile: Convert semaphore to mutex [ARM] 3376/2: S3C2410 - update defconfig [ARM] 3375/1: S3C2440 - fix osiris machine build [ARM] 3374/1: ep93xx: gpio interrupt support [ARM] 3361/1: S3C24XX - add USB bus clock source [ARM] 3360/1: S3C2440 - add set rate methods and camera clock [ARM] 3359/1: S3C24XX - add support for clk_set_rate [ARM] Convert kmalloc+memset to kzalloc [ARM] 3373/1: move uengine loader to arch/arm/common ...
-rw-r--r--Documentation/arm/Samsung-S3C24XX/Overview.txt42
-rw-r--r--arch/arm/Kconfig16
-rw-r--r--arch/arm/Makefile1
-rw-r--r--arch/arm/common/Makefile1
-rw-r--r--arch/arm/common/dmabounce.c2
-rw-r--r--arch/arm/common/locomo.c49
-rw-r--r--arch/arm/common/sa1111.c46
-rw-r--r--arch/arm/common/scoop.c6
-rw-r--r--arch/arm/common/uengine.c (renamed from arch/arm/mach-ixp2000/uengine.c)2
-rw-r--r--arch/arm/common/vic.c49
-rw-r--r--arch/arm/configs/ep93xx_defconfig (renamed from arch/arm/configs/enp2611_defconfig)553
-rw-r--r--arch/arm/configs/ixdp2401_defconfig976
-rw-r--r--arch/arm/configs/ixdp2800_defconfig975
-rw-r--r--arch/arm/configs/ixdp2801_defconfig976
-rw-r--r--arch/arm/configs/ixp2000_defconfig (renamed from arch/arm/configs/ixdp2400_defconfig)61
-rw-r--r--arch/arm/configs/s3c2410_defconfig147
-rw-r--r--arch/arm/kernel/apm.c4
-rw-r--r--arch/arm/kernel/bios32.c4
-rw-r--r--arch/arm/kernel/debug.S1
-rw-r--r--arch/arm/kernel/ecard.c4
-rw-r--r--arch/arm/kernel/entry-armv.S2
-rw-r--r--arch/arm/kernel/head.S7
-rw-r--r--arch/arm/kernel/irq.c11
-rw-r--r--arch/arm/lib/delay.S20
-rw-r--r--arch/arm/lib/io-acorn.S1
-rw-r--r--arch/arm/mach-at91rm9200/clock.c85
-rw-r--r--arch/arm/mach-at91rm9200/gpio.c4
-rw-r--r--arch/arm/mach-at91rm9200/time.c4
-rw-r--r--arch/arm/mach-ep93xx/Kconfig21
-rw-r--r--arch/arm/mach-ep93xx/Makefile10
-rw-r--r--arch/arm/mach-ep93xx/Makefile.boot2
-rw-r--r--arch/arm/mach-ep93xx/core.c374
-rw-r--r--arch/arm/mach-ep93xx/gesbc9312.c40
-rw-r--r--arch/arm/mach-ep93xx/ts72xx.c118
-rw-r--r--arch/arm/mach-footbridge/dc21285.c4
-rw-r--r--arch/arm/mach-integrator/impd1.c7
-rw-r--r--arch/arm/mach-integrator/integrator_ap.c4
-rw-r--r--arch/arm/mach-iop3xx/iq31244-pci.c4
-rw-r--r--arch/arm/mach-iop3xx/iq80321-pci.c4
-rw-r--r--arch/arm/mach-iop3xx/iq80331-pci.c4
-rw-r--r--arch/arm/mach-iop3xx/iq80332-pci.c4
-rw-r--r--arch/arm/mach-ixp2000/Kconfig9
-rw-r--r--arch/arm/mach-ixp2000/Makefile2
-rw-r--r--arch/arm/mach-ixp2000/core.c13
-rw-r--r--arch/arm/mach-ixp2000/ixdp2x01.c20
-rw-r--r--arch/arm/mach-ixp4xx/common-pci.c3
-rw-r--r--arch/arm/mach-ixp4xx/common.c5
-rw-r--r--arch/arm/mach-lh7a40x/common.h1
-rw-r--r--arch/arm/mach-lh7a40x/irq-kev7a400.c1
-rw-r--r--arch/arm/mach-lh7a40x/irq-lh7a400.c2
-rw-r--r--arch/arm/mach-lh7a40x/irq-lh7a404.c3
-rw-r--r--arch/arm/mach-lh7a40x/irq-lpd7a40x.c1
-rw-r--r--arch/arm/mach-pxa/Makefile2
-rw-r--r--arch/arm/mach-pxa/clock.c124
-rw-r--r--arch/arm/mach-pxa/corgi.c1
-rw-r--r--arch/arm/mach-pxa/poodle.c1
-rw-r--r--arch/arm/mach-pxa/spitz.c1
-rw-r--r--arch/arm/mach-pxa/tosa.c1
-rw-r--r--arch/arm/mach-s3c2410/Kconfig7
-rw-r--r--arch/arm/mach-s3c2410/Makefile1
-rw-r--r--arch/arm/mach-s3c2410/clock.c178
-rw-r--r--arch/arm/mach-s3c2410/clock.h8
-rw-r--r--arch/arm/mach-s3c2410/mach-osiris.c294
-rw-r--r--arch/arm/mach-s3c2410/s3c2440-clock.c89
-rw-r--r--arch/arm/mach-s3c2410/time.c8
-rw-r--r--arch/arm/mach-sa1100/Makefile2
-rw-r--r--arch/arm/mach-sa1100/clock.c132
-rw-r--r--arch/arm/mach-versatile/core.c2
-rw-r--r--arch/arm/mm/Kconfig2
-rw-r--r--arch/arm/mm/init.c1
-rw-r--r--arch/arm/mm/ioremap.c1
-rw-r--r--arch/arm/mm/proc-arm1020.S1
-rw-r--r--arch/arm/mm/proc-arm1020e.S1
-rw-r--r--arch/arm/mm/proc-arm720.S1
-rw-r--r--arch/arm/mm/proc-arm920.S1
-rw-r--r--arch/arm/mm/proc-arm922.S1
-rw-r--r--arch/arm/mm/proc-arm925.S1
-rw-r--r--arch/arm/mm/proc-arm926.S1
-rw-r--r--arch/arm/mm/proc-xscale.S1
-rw-r--r--arch/arm/oprofile/common.c34
-rw-r--r--arch/arm/oprofile/op_counter.h2
-rw-r--r--arch/arm/vfp/entry.S1
-rw-r--r--drivers/net/ixp2000/enp2611.c2
-rw-r--r--drivers/net/ixp2000/ixpdev.c2
-rw-r--r--include/asm-arm/arch-aaec2000/param.h15
-rw-r--r--include/asm-arm/arch-at91rm9200/param.h28
-rw-r--r--include/asm-arm/arch-cl7500/debug-macro.S14
-rw-r--r--include/asm-arm/arch-cl7500/param.h5
-rw-r--r--include/asm-arm/arch-clps711x/param.h19
-rw-r--r--include/asm-arm/arch-ebsa110/debug-macro.S19
-rw-r--r--include/asm-arm/arch-ebsa110/param.h4
-rw-r--r--include/asm-arm/arch-ebsa285/debug-macro.S18
-rw-r--r--include/asm-arm/arch-ebsa285/param.h3
-rw-r--r--include/asm-arm/arch-ep93xx/debug-macro.S22
-rw-r--r--include/asm-arm/arch-ep93xx/dma.h3
-rw-r--r--include/asm-arm/arch-ep93xx/entry-macro.S53
-rw-r--r--include/asm-arm/arch-ep93xx/ep93xx-regs.h125
-rw-r--r--include/asm-arm/arch-ep93xx/gesbc9312.h3
-rw-r--r--include/asm-arm/arch-ep93xx/gpio.h107
-rw-r--r--include/asm-arm/arch-ep93xx/hardware.h12
-rw-r--r--include/asm-arm/arch-ep93xx/io.h8
-rw-r--r--include/asm-arm/arch-ep93xx/irqs.h80
-rw-r--r--include/asm-arm/arch-ep93xx/memory.h14
-rw-r--r--include/asm-arm/arch-ep93xx/platform.h14
-rw-r--r--include/asm-arm/arch-ep93xx/system.h26
-rw-r--r--include/asm-arm/arch-ep93xx/timex.h5
-rw-r--r--include/asm-arm/arch-ep93xx/ts72xx.h90
-rw-r--r--include/asm-arm/arch-ep93xx/uncompress.h53
-rw-r--r--include/asm-arm/arch-ep93xx/vmalloc.h5
-rw-r--r--include/asm-arm/arch-h720x/irq.h14
-rw-r--r--include/asm-arm/arch-h720x/param.h10
-rw-r--r--include/asm-arm/arch-imx/irq.h20
-rw-r--r--include/asm-arm/arch-imx/param.h19
-rw-r--r--include/asm-arm/arch-integrator/debug-macro.S18
-rw-r--r--include/asm-arm/arch-integrator/param.h19
-rw-r--r--include/asm-arm/arch-iop3xx/debug-macro.S19
-rw-r--r--include/asm-arm/arch-iop3xx/param.h3
-rw-r--r--include/asm-arm/arch-ixp2000/debug-macro.S17
-rw-r--r--include/asm-arm/arch-ixp2000/irq.h13
-rw-r--r--include/asm-arm/arch-ixp2000/ixdp2x00.h5
-rw-r--r--include/asm-arm/arch-ixp2000/ixp2000-regs.h4
-rw-r--r--include/asm-arm/arch-ixp2000/param.h3
-rw-r--r--include/asm-arm/arch-ixp2000/system.h2
-rw-r--r--include/asm-arm/arch-ixp4xx/debug-macro.S15
-rw-r--r--include/asm-arm/arch-ixp4xx/irq.h13
-rw-r--r--include/asm-arm/arch-ixp4xx/param.h3
-rw-r--r--include/asm-arm/arch-ixp4xx/platform.h27
-rw-r--r--include/asm-arm/arch-l7200/param.h19
-rw-r--r--include/asm-arm/arch-lh7a40x/irq.h11
-rw-r--r--include/asm-arm/arch-lh7a40x/param.h9
-rw-r--r--include/asm-arm/arch-omap/param.h8
-rw-r--r--include/asm-arm/arch-pxa/debug-macro.S17
-rw-r--r--include/asm-arm/arch-pxa/irq.h14
-rw-r--r--include/asm-arm/arch-pxa/param.h3
-rw-r--r--include/asm-arm/arch-realview/debug-macro.S18
-rw-r--r--include/asm-arm/arch-realview/param.h19
-rw-r--r--include/asm-arm/arch-rpc/debug-macro.S19
-rw-r--r--include/asm-arm/arch-rpc/param.h3
-rw-r--r--include/asm-arm/arch-s3c2410/osiris-cpld.h25
-rw-r--r--include/asm-arm/arch-s3c2410/osiris-map.h41
-rw-r--r--include/asm-arm/arch-s3c2410/param.h27
-rw-r--r--include/asm-arm/arch-s3c2410/regs-gpio.h2
-rw-r--r--include/asm-arm/arch-sa1100/debug-macro.S1
-rw-r--r--include/asm-arm/arch-sa1100/param.h3
-rw-r--r--include/asm-arm/arch-shark/param.h5
-rw-r--r--include/asm-arm/arch-versatile/debug-macro.S18
-rw-r--r--include/asm-arm/arch-versatile/param.h19
-rw-r--r--include/asm-arm/delay.h12
-rw-r--r--include/asm-arm/hardware/debug-8250.S29
-rw-r--r--include/asm-arm/hardware/debug-pl01x.S29
-rw-r--r--include/asm-arm/hardware/uengine.h (renamed from include/asm-arm/arch-ixp2000/uengine.h)0
-rw-r--r--include/asm-arm/hardware/vic.h2
-rw-r--r--include/asm-arm/mach/arch.h5
-rw-r--r--include/asm-arm/mach/irq.h7
-rw-r--r--include/asm-arm/param.h7
155 files changed, 3030 insertions, 3920 deletions
diff --git a/Documentation/arm/Samsung-S3C24XX/Overview.txt b/Documentation/arm/Samsung-S3C24XX/Overview.txt
index 89aa89d526ac..8c6ee684174c 100644
--- a/Documentation/arm/Samsung-S3C24XX/Overview.txt
+++ b/Documentation/arm/Samsung-S3C24XX/Overview.txt
@@ -10,6 +10,8 @@ Introduction
10 by the 's3c2410' architecture of ARM Linux. Currently the S3C2410 and 10 by the 's3c2410' architecture of ARM Linux. Currently the S3C2410 and
11 the S3C2440 are supported CPUs. 11 the S3C2440 are supported CPUs.
12 12
13 Support for the S3C2400 series is in progress.
14
13 15
14Configuration 16Configuration
15------------- 17-------------
@@ -32,6 +34,11 @@ Machines
32 A general purpose development board, see EB2410ITX.txt for further 34 A general purpose development board, see EB2410ITX.txt for further
33 details 35 details
34 36
37 Simtec Electronics IM2440D20 (Osiris)
38
39 CPU Module from Simtec Electronics, with a S3C2440A CPU, nand flash
40 and a PCMCIA controller.
41
35 Samsung SMDK2410 42 Samsung SMDK2410
36 43
37 Samsung's own development board, geared for PDA work. 44 Samsung's own development board, geared for PDA work.
@@ -85,6 +92,26 @@ Adding New Machines
85 mailing list information. 92 mailing list information.
86 93
87 94
95I2C
96---
97
98 The hardware I2C core in the CPU is supported in single master
99 mode, and can be configured via platform data.
100
101
102RTC
103---
104
105 Support for the onboard RTC unit, including alarm function.
106
107
108Watchdog
109--------
110
111 The onchip watchdog is available via the standard watchdog
112 interface.
113
114
88NAND 115NAND
89---- 116----
90 117
@@ -121,6 +148,15 @@ Clock Management
121 various clock units 148 various clock units
122 149
123 150
151Suspend to RAM
152--------------
153
154 For boards that provide support for suspend to RAM, the
155 system can be placed into low power suspend.
156
157 See Suspend.txt for more information.
158
159
124Platform Data 160Platform Data
125------------- 161-------------
126 162
@@ -158,6 +194,7 @@ Platform Data
158 exported outside arch/arm/mach-s3c2410/, or exported to 194 exported outside arch/arm/mach-s3c2410/, or exported to
159 modules via EXPORT_SYMBOL() and related functions. 195 modules via EXPORT_SYMBOL() and related functions.
160 196
197
161Port Contributors 198Port Contributors
162----------------- 199-----------------
163 200
@@ -188,8 +225,11 @@ Document Changes
188 08 Mar 2005 - BJD - Added LCVR to list of people, updated introduction 225 08 Mar 2005 - BJD - Added LCVR to list of people, updated introduction
189 08 Mar 2005 - BJD - Added section on adding machines 226 08 Mar 2005 - BJD - Added section on adding machines
190 09 Sep 2005 - BJD - Added section on platform data 227 09 Sep 2005 - BJD - Added section on platform data
228 11 Feb 2006 - BJD - Added I2C, RTC and Watchdog sections
229 11 Feb 2006 - BJD - Added Osiris machine, and S3C2400 information
230
191 231
192Document Author 232Document Author
193--------------- 233---------------
194 234
195Ben Dooks, (c) 2004-2005 Simtec Electronics 235Ben Dooks, (c) 2004-2005,2006 Simtec Electronics
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 32ba00bd0a2f..0dd24ebdf6ac 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -108,6 +108,13 @@ config ARCH_EBSA110
108 Ethernet interface, two PCMCIA sockets, two serial ports and a 108 Ethernet interface, two PCMCIA sockets, two serial ports and a
109 parallel port. 109 parallel port.
110 110
111config ARCH_EP93XX
112 bool "EP93xx-based"
113 select ARM_AMBA
114 select ARM_VIC
115 help
116 This enables support for the Cirrus EP93xx series of CPUs.
117
111config ARCH_FOOTBRIDGE 118config ARCH_FOOTBRIDGE
112 bool "FootBridge" 119 bool "FootBridge"
113 select FOOTBRIDGE 120 select FOOTBRIDGE
@@ -250,6 +257,8 @@ endchoice
250 257
251source "arch/arm/mach-clps711x/Kconfig" 258source "arch/arm/mach-clps711x/Kconfig"
252 259
260source "arch/arm/mach-ep93xx/Kconfig"
261
253source "arch/arm/mach-footbridge/Kconfig" 262source "arch/arm/mach-footbridge/Kconfig"
254 263
255source "arch/arm/mach-integrator/Kconfig" 264source "arch/arm/mach-integrator/Kconfig"
@@ -434,6 +443,13 @@ config NO_IDLE_HZ
434 Currently at least OMAP, PXA2xx and SA11x0 platforms are known 443 Currently at least OMAP, PXA2xx and SA11x0 platforms are known
435 to have accurate timekeeping with dynamic tick. 444 to have accurate timekeeping with dynamic tick.
436 445
446config HZ
447 int
448 default 128 if ARCH_L7200
449 default 200 if ARCH_EBSA110 || ARCH_S3C2410
450 default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER
451 default 100
452
437config AEABI 453config AEABI
438 bool "Use the ARM EABI to compile the kernel" 454 bool "Use the ARM EABI to compile the kernel"
439 help 455 help
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index fbfc14a56b96..b5b1e4087516 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -105,6 +105,7 @@ endif
105 machine-$(CONFIG_ARCH_AAEC2000) := aaec2000 105 machine-$(CONFIG_ARCH_AAEC2000) := aaec2000
106 machine-$(CONFIG_ARCH_REALVIEW) := realview 106 machine-$(CONFIG_ARCH_REALVIEW) := realview
107 machine-$(CONFIG_ARCH_AT91RM9200) := at91rm9200 107 machine-$(CONFIG_ARCH_AT91RM9200) := at91rm9200
108 machine-$(CONFIG_ARCH_EP93XX) := ep93xx
108 109
109ifeq ($(CONFIG_ARCH_EBSA110),y) 110ifeq ($(CONFIG_ARCH_EBSA110),y)
110# This is what happens if you forget the IOCS16 line. 111# This is what happens if you forget the IOCS16 line.
diff --git a/arch/arm/common/Makefile b/arch/arm/common/Makefile
index c81a2ff6b5be..847e3e6356c6 100644
--- a/arch/arm/common/Makefile
+++ b/arch/arm/common/Makefile
@@ -15,3 +15,4 @@ obj-$(CONFIG_SHARP_LOCOMO) += locomo.o
15obj-$(CONFIG_SHARP_PARAM) += sharpsl_param.o 15obj-$(CONFIG_SHARP_PARAM) += sharpsl_param.o
16obj-$(CONFIG_SHARPSL_PM) += sharpsl_pm.o 16obj-$(CONFIG_SHARPSL_PM) += sharpsl_pm.o
17obj-$(CONFIG_SHARP_SCOOP) += scoop.o 17obj-$(CONFIG_SHARP_SCOOP) += scoop.o
18obj-$(CONFIG_ARCH_IXP2000) += uengine.o
diff --git a/arch/arm/common/dmabounce.c b/arch/arm/common/dmabounce.c
index ad6c89a555bb..7971d0dc6892 100644
--- a/arch/arm/common/dmabounce.c
+++ b/arch/arm/common/dmabounce.c
@@ -5,7 +5,7 @@
5 * limited DMA windows. These functions utilize bounce buffers to 5 * limited DMA windows. These functions utilize bounce buffers to
6 * copy data to/from buffers located outside the DMA region. This 6 * copy data to/from buffers located outside the DMA region. This
7 * only works for systems in which DMA memory is at the bottom of 7 * only works for systems in which DMA memory is at the bottom of
8 * RAM and the remainder of memory is at the top an the DMA memory 8 * RAM, the remainder of memory is at the top and the DMA memory
9 * can be marked as ZONE_DMA. Anything beyond that such as discontigous 9 * can be marked as ZONE_DMA. Anything beyond that such as discontigous
10 * DMA windows will require custom implementations that reserve memory 10 * DMA windows will require custom implementations that reserve memory
11 * areas at early bootup. 11 * areas at early bootup.
diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c
index 23609400a8e2..a7dc1370695b 100644
--- a/arch/arm/common/locomo.c
+++ b/arch/arm/common/locomo.c
@@ -60,7 +60,7 @@ struct locomo {
60 unsigned long phys; 60 unsigned long phys;
61 unsigned int irq; 61 unsigned int irq;
62 spinlock_t lock; 62 spinlock_t lock;
63 void *base; 63 void __iomem *base;
64}; 64};
65 65
66struct locomo_dev_info { 66struct locomo_dev_info {
@@ -162,7 +162,7 @@ static void locomo_handler(unsigned int irq, struct irqdesc *desc,
162{ 162{
163 int req, i; 163 int req, i;
164 struct irqdesc *d; 164 struct irqdesc *d;
165 void *mapbase = get_irq_chipdata(irq); 165 void __iomem *mapbase = get_irq_chipdata(irq);
166 166
167 /* Acknowledge the parent IRQ */ 167 /* Acknowledge the parent IRQ */
168 desc->chip->ack(irq); 168 desc->chip->ack(irq);
@@ -189,7 +189,7 @@ static void locomo_ack_irq(unsigned int irq)
189 189
190static void locomo_mask_irq(unsigned int irq) 190static void locomo_mask_irq(unsigned int irq)
191{ 191{
192 void *mapbase = get_irq_chipdata(irq); 192 void __iomem *mapbase = get_irq_chipdata(irq);
193 unsigned int r; 193 unsigned int r;
194 r = locomo_readl(mapbase + LOCOMO_ICR); 194 r = locomo_readl(mapbase + LOCOMO_ICR);
195 r &= ~(0x0010 << (irq - LOCOMO_IRQ_START)); 195 r &= ~(0x0010 << (irq - LOCOMO_IRQ_START));
@@ -198,7 +198,7 @@ static void locomo_mask_irq(unsigned int irq)
198 198
199static void locomo_unmask_irq(unsigned int irq) 199static void locomo_unmask_irq(unsigned int irq)
200{ 200{
201 void *mapbase = get_irq_chipdata(irq); 201 void __iomem *mapbase = get_irq_chipdata(irq);
202 unsigned int r; 202 unsigned int r;
203 r = locomo_readl(mapbase + LOCOMO_ICR); 203 r = locomo_readl(mapbase + LOCOMO_ICR);
204 r |= (0x0010 << (irq - LOCOMO_IRQ_START)); 204 r |= (0x0010 << (irq - LOCOMO_IRQ_START));
@@ -215,7 +215,7 @@ static void locomo_key_handler(unsigned int irq, struct irqdesc *desc,
215 struct pt_regs *regs) 215 struct pt_regs *regs)
216{ 216{
217 struct irqdesc *d; 217 struct irqdesc *d;
218 void *mapbase = get_irq_chipdata(irq); 218 void __iomem *mapbase = get_irq_chipdata(irq);
219 219
220 if (locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC) & 0x0001) { 220 if (locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC) & 0x0001) {
221 d = irq_desc + LOCOMO_IRQ_KEY_START; 221 d = irq_desc + LOCOMO_IRQ_KEY_START;
@@ -225,7 +225,7 @@ static void locomo_key_handler(unsigned int irq, struct irqdesc *desc,
225 225
226static void locomo_key_ack_irq(unsigned int irq) 226static void locomo_key_ack_irq(unsigned int irq)
227{ 227{
228 void *mapbase = get_irq_chipdata(irq); 228 void __iomem *mapbase = get_irq_chipdata(irq);
229 unsigned int r; 229 unsigned int r;
230 r = locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC); 230 r = locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC);
231 r &= ~(0x0100 << (irq - LOCOMO_IRQ_KEY_START)); 231 r &= ~(0x0100 << (irq - LOCOMO_IRQ_KEY_START));
@@ -234,7 +234,7 @@ static void locomo_key_ack_irq(unsigned int irq)
234 234
235static void locomo_key_mask_irq(unsigned int irq) 235static void locomo_key_mask_irq(unsigned int irq)
236{ 236{
237 void *mapbase = get_irq_chipdata(irq); 237 void __iomem *mapbase = get_irq_chipdata(irq);
238 unsigned int r; 238 unsigned int r;
239 r = locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC); 239 r = locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC);
240 r &= ~(0x0010 << (irq - LOCOMO_IRQ_KEY_START)); 240 r &= ~(0x0010 << (irq - LOCOMO_IRQ_KEY_START));
@@ -243,7 +243,7 @@ static void locomo_key_mask_irq(unsigned int irq)
243 243
244static void locomo_key_unmask_irq(unsigned int irq) 244static void locomo_key_unmask_irq(unsigned int irq)
245{ 245{
246 void *mapbase = get_irq_chipdata(irq); 246 void __iomem *mapbase = get_irq_chipdata(irq);
247 unsigned int r; 247 unsigned int r;
248 r = locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC); 248 r = locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC);
249 r |= (0x0010 << (irq - LOCOMO_IRQ_KEY_START)); 249 r |= (0x0010 << (irq - LOCOMO_IRQ_KEY_START));
@@ -261,7 +261,7 @@ static void locomo_gpio_handler(unsigned int irq, struct irqdesc *desc,
261{ 261{
262 int req, i; 262 int req, i;
263 struct irqdesc *d; 263 struct irqdesc *d;
264 void *mapbase = get_irq_chipdata(irq); 264 void __iomem *mapbase = get_irq_chipdata(irq);
265 265
266 req = locomo_readl(mapbase + LOCOMO_GIR) & 266 req = locomo_readl(mapbase + LOCOMO_GIR) &
267 locomo_readl(mapbase + LOCOMO_GPD) & 267 locomo_readl(mapbase + LOCOMO_GPD) &
@@ -280,7 +280,7 @@ static void locomo_gpio_handler(unsigned int irq, struct irqdesc *desc,
280 280
281static void locomo_gpio_ack_irq(unsigned int irq) 281static void locomo_gpio_ack_irq(unsigned int irq)
282{ 282{
283 void *mapbase = get_irq_chipdata(irq); 283 void __iomem *mapbase = get_irq_chipdata(irq);
284 unsigned int r; 284 unsigned int r;
285 r = locomo_readl(mapbase + LOCOMO_GWE); 285 r = locomo_readl(mapbase + LOCOMO_GWE);
286 r |= (0x0001 << (irq - LOCOMO_IRQ_GPIO_START)); 286 r |= (0x0001 << (irq - LOCOMO_IRQ_GPIO_START));
@@ -297,7 +297,7 @@ static void locomo_gpio_ack_irq(unsigned int irq)
297 297
298static void locomo_gpio_mask_irq(unsigned int irq) 298static void locomo_gpio_mask_irq(unsigned int irq)
299{ 299{
300 void *mapbase = get_irq_chipdata(irq); 300 void __iomem *mapbase = get_irq_chipdata(irq);
301 unsigned int r; 301 unsigned int r;
302 r = locomo_readl(mapbase + LOCOMO_GIE); 302 r = locomo_readl(mapbase + LOCOMO_GIE);
303 r &= ~(0x0001 << (irq - LOCOMO_IRQ_GPIO_START)); 303 r &= ~(0x0001 << (irq - LOCOMO_IRQ_GPIO_START));
@@ -306,7 +306,7 @@ static void locomo_gpio_mask_irq(unsigned int irq)
306 306
307static void locomo_gpio_unmask_irq(unsigned int irq) 307static void locomo_gpio_unmask_irq(unsigned int irq)
308{ 308{
309 void *mapbase = get_irq_chipdata(irq); 309 void __iomem *mapbase = get_irq_chipdata(irq);
310 unsigned int r; 310 unsigned int r;
311 r = locomo_readl(mapbase + LOCOMO_GIE); 311 r = locomo_readl(mapbase + LOCOMO_GIE);
312 r |= (0x0001 << (irq - LOCOMO_IRQ_GPIO_START)); 312 r |= (0x0001 << (irq - LOCOMO_IRQ_GPIO_START));
@@ -323,7 +323,7 @@ static void locomo_lt_handler(unsigned int irq, struct irqdesc *desc,
323 struct pt_regs *regs) 323 struct pt_regs *regs)
324{ 324{
325 struct irqdesc *d; 325 struct irqdesc *d;
326 void *mapbase = get_irq_chipdata(irq); 326 void __iomem *mapbase = get_irq_chipdata(irq);
327 327
328 if (locomo_readl(mapbase + LOCOMO_LTINT) & 0x0001) { 328 if (locomo_readl(mapbase + LOCOMO_LTINT) & 0x0001) {
329 d = irq_desc + LOCOMO_IRQ_LT_START; 329 d = irq_desc + LOCOMO_IRQ_LT_START;
@@ -333,7 +333,7 @@ static void locomo_lt_handler(unsigned int irq, struct irqdesc *desc,
333 333
334static void locomo_lt_ack_irq(unsigned int irq) 334static void locomo_lt_ack_irq(unsigned int irq)
335{ 335{
336 void *mapbase = get_irq_chipdata(irq); 336 void __iomem *mapbase = get_irq_chipdata(irq);
337 unsigned int r; 337 unsigned int r;
338 r = locomo_readl(mapbase + LOCOMO_LTINT); 338 r = locomo_readl(mapbase + LOCOMO_LTINT);
339 r &= ~(0x0100 << (irq - LOCOMO_IRQ_LT_START)); 339 r &= ~(0x0100 << (irq - LOCOMO_IRQ_LT_START));
@@ -342,7 +342,7 @@ static void locomo_lt_ack_irq(unsigned int irq)
342 342
343static void locomo_lt_mask_irq(unsigned int irq) 343static void locomo_lt_mask_irq(unsigned int irq)
344{ 344{
345 void *mapbase = get_irq_chipdata(irq); 345 void __iomem *mapbase = get_irq_chipdata(irq);
346 unsigned int r; 346 unsigned int r;
347 r = locomo_readl(mapbase + LOCOMO_LTINT); 347 r = locomo_readl(mapbase + LOCOMO_LTINT);
348 r &= ~(0x0010 << (irq - LOCOMO_IRQ_LT_START)); 348 r &= ~(0x0010 << (irq - LOCOMO_IRQ_LT_START));
@@ -351,7 +351,7 @@ static void locomo_lt_mask_irq(unsigned int irq)
351 351
352static void locomo_lt_unmask_irq(unsigned int irq) 352static void locomo_lt_unmask_irq(unsigned int irq)
353{ 353{
354 void *mapbase = get_irq_chipdata(irq); 354 void __iomem *mapbase = get_irq_chipdata(irq);
355 unsigned int r; 355 unsigned int r;
356 r = locomo_readl(mapbase + LOCOMO_LTINT); 356 r = locomo_readl(mapbase + LOCOMO_LTINT);
357 r |= (0x0010 << (irq - LOCOMO_IRQ_LT_START)); 357 r |= (0x0010 << (irq - LOCOMO_IRQ_LT_START));
@@ -369,7 +369,7 @@ static void locomo_spi_handler(unsigned int irq, struct irqdesc *desc,
369{ 369{
370 int req, i; 370 int req, i;
371 struct irqdesc *d; 371 struct irqdesc *d;
372 void *mapbase = get_irq_chipdata(irq); 372 void __iomem *mapbase = get_irq_chipdata(irq);
373 373
374 req = locomo_readl(mapbase + LOCOMO_SPIIR) & 0x000F; 374 req = locomo_readl(mapbase + LOCOMO_SPIIR) & 0x000F;
375 if (req) { 375 if (req) {
@@ -386,7 +386,7 @@ static void locomo_spi_handler(unsigned int irq, struct irqdesc *desc,
386 386
387static void locomo_spi_ack_irq(unsigned int irq) 387static void locomo_spi_ack_irq(unsigned int irq)
388{ 388{
389 void *mapbase = get_irq_chipdata(irq); 389 void __iomem *mapbase = get_irq_chipdata(irq);
390 unsigned int r; 390 unsigned int r;
391 r = locomo_readl(mapbase + LOCOMO_SPIWE); 391 r = locomo_readl(mapbase + LOCOMO_SPIWE);
392 r |= (0x0001 << (irq - LOCOMO_IRQ_SPI_START)); 392 r |= (0x0001 << (irq - LOCOMO_IRQ_SPI_START));
@@ -403,7 +403,7 @@ static void locomo_spi_ack_irq(unsigned int irq)
403 403
404static void locomo_spi_mask_irq(unsigned int irq) 404static void locomo_spi_mask_irq(unsigned int irq)
405{ 405{
406 void *mapbase = get_irq_chipdata(irq); 406 void __iomem *mapbase = get_irq_chipdata(irq);
407 unsigned int r; 407 unsigned int r;
408 r = locomo_readl(mapbase + LOCOMO_SPIIE); 408 r = locomo_readl(mapbase + LOCOMO_SPIIE);
409 r &= ~(0x0001 << (irq - LOCOMO_IRQ_SPI_START)); 409 r &= ~(0x0001 << (irq - LOCOMO_IRQ_SPI_START));
@@ -412,7 +412,7 @@ static void locomo_spi_mask_irq(unsigned int irq)
412 412
413static void locomo_spi_unmask_irq(unsigned int irq) 413static void locomo_spi_unmask_irq(unsigned int irq)
414{ 414{
415 void *mapbase = get_irq_chipdata(irq); 415 void __iomem *mapbase = get_irq_chipdata(irq);
416 unsigned int r; 416 unsigned int r;
417 r = locomo_readl(mapbase + LOCOMO_SPIIE); 417 r = locomo_readl(mapbase + LOCOMO_SPIIE);
418 r |= (0x0001 << (irq - LOCOMO_IRQ_SPI_START)); 418 r |= (0x0001 << (irq - LOCOMO_IRQ_SPI_START));
@@ -428,7 +428,7 @@ static struct irqchip locomo_spi_chip = {
428static void locomo_setup_irq(struct locomo *lchip) 428static void locomo_setup_irq(struct locomo *lchip)
429{ 429{
430 int irq; 430 int irq;
431 void *irqbase = lchip->base; 431 void __iomem *irqbase = lchip->base;
432 432
433 /* 433 /*
434 * Install handler for IRQ_LOCOMO_HW. 434 * Install handler for IRQ_LOCOMO_HW.
@@ -501,12 +501,11 @@ locomo_init_one_child(struct locomo *lchip, struct locomo_dev_info *info)
501 struct locomo_dev *dev; 501 struct locomo_dev *dev;
502 int ret; 502 int ret;
503 503
504 dev = kmalloc(sizeof(struct locomo_dev), GFP_KERNEL); 504 dev = kzalloc(sizeof(struct locomo_dev), GFP_KERNEL);
505 if (!dev) { 505 if (!dev) {
506 ret = -ENOMEM; 506 ret = -ENOMEM;
507 goto out; 507 goto out;
508 } 508 }
509 memset(dev, 0, sizeof(struct locomo_dev));
510 509
511 strncpy(dev->dev.bus_id,info->name,sizeof(dev->dev.bus_id)); 510 strncpy(dev->dev.bus_id,info->name,sizeof(dev->dev.bus_id));
512 /* 511 /*
@@ -664,12 +663,10 @@ __locomo_probe(struct device *me, struct resource *mem, int irq)
664 unsigned long r; 663 unsigned long r;
665 int i, ret = -ENODEV; 664 int i, ret = -ENODEV;
666 665
667 lchip = kmalloc(sizeof(struct locomo), GFP_KERNEL); 666 lchip = kzalloc(sizeof(struct locomo), GFP_KERNEL);
668 if (!lchip) 667 if (!lchip)
669 return -ENOMEM; 668 return -ENOMEM;
670 669
671 memset(lchip, 0, sizeof(struct locomo));
672
673 spin_lock_init(&lchip->lock); 670 spin_lock_init(&lchip->lock);
674 671
675 lchip->dev = me; 672 lchip->dev = me;
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
index 93352f6097c1..3f68db84e5e6 100644
--- a/arch/arm/common/sa1111.c
+++ b/arch/arm/common/sa1111.c
@@ -26,6 +26,7 @@
26#include <linux/slab.h> 26#include <linux/slab.h>
27#include <linux/spinlock.h> 27#include <linux/spinlock.h>
28#include <linux/dma-mapping.h> 28#include <linux/dma-mapping.h>
29#include <linux/clk.h>
29 30
30#include <asm/hardware.h> 31#include <asm/hardware.h>
31#include <asm/mach-types.h> 32#include <asm/mach-types.h>
@@ -36,10 +37,6 @@
36 37
37#include <asm/hardware/sa1111.h> 38#include <asm/hardware/sa1111.h>
38 39
39#ifdef CONFIG_ARCH_PXA
40#include <asm/arch/pxa-regs.h>
41#endif
42
43extern void __init sa1110_mb_enable(void); 40extern void __init sa1110_mb_enable(void);
44 41
45/* 42/*
@@ -51,6 +48,7 @@ extern void __init sa1110_mb_enable(void);
51 */ 48 */
52struct sa1111 { 49struct sa1111 {
53 struct device *dev; 50 struct device *dev;
51 struct clk *clk;
54 unsigned long phys; 52 unsigned long phys;
55 int irq; 53 int irq;
56 spinlock_t lock; 54 spinlock_t lock;
@@ -451,19 +449,7 @@ static void sa1111_wake(struct sa1111 *sachip)
451 449
452 spin_lock_irqsave(&sachip->lock, flags); 450 spin_lock_irqsave(&sachip->lock, flags);
453 451
454#ifdef CONFIG_ARCH_SA1100 452 clk_enable(sachip->clk);
455 /*
456 * First, set up the 3.6864MHz clock on GPIO 27 for the SA-1111:
457 * (SA-1110 Developer's Manual, section 9.1.2.1)
458 */
459 GAFR |= GPIO_32_768kHz;
460 GPDR |= GPIO_32_768kHz;
461 TUCR = TUCR_3_6864MHz;
462#elif CONFIG_ARCH_PXA
463 pxa_gpio_mode(GPIO11_3_6MHz_MD);
464#else
465#error missing clock setup
466#endif
467 453
468 /* 454 /*
469 * Turn VCO on, and disable PLL Bypass. 455 * Turn VCO on, and disable PLL Bypass.
@@ -555,12 +541,11 @@ sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent,
555 struct sa1111_dev *dev; 541 struct sa1111_dev *dev;
556 int ret; 542 int ret;
557 543
558 dev = kmalloc(sizeof(struct sa1111_dev), GFP_KERNEL); 544 dev = kzalloc(sizeof(struct sa1111_dev), GFP_KERNEL);
559 if (!dev) { 545 if (!dev) {
560 ret = -ENOMEM; 546 ret = -ENOMEM;
561 goto out; 547 goto out;
562 } 548 }
563 memset(dev, 0, sizeof(struct sa1111_dev));
564 549
565 snprintf(dev->dev.bus_id, sizeof(dev->dev.bus_id), 550 snprintf(dev->dev.bus_id, sizeof(dev->dev.bus_id),
566 "%4.4lx", info->offset); 551 "%4.4lx", info->offset);
@@ -635,11 +620,15 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq)
635 unsigned int has_devs, val; 620 unsigned int has_devs, val;
636 int i, ret = -ENODEV; 621 int i, ret = -ENODEV;
637 622
638 sachip = kmalloc(sizeof(struct sa1111), GFP_KERNEL); 623 sachip = kzalloc(sizeof(struct sa1111), GFP_KERNEL);
639 if (!sachip) 624 if (!sachip)
640 return -ENOMEM; 625 return -ENOMEM;
641 626
642 memset(sachip, 0, sizeof(struct sa1111)); 627 sachip->clk = clk_get(me, "GPIO27_CLK");
628 if (!sachip->clk) {
629 ret = PTR_ERR(sachip->clk);
630 goto err_free;
631 }
643 632
644 spin_lock_init(&sachip->lock); 633 spin_lock_init(&sachip->lock);
645 634
@@ -656,7 +645,7 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq)
656 sachip->base = ioremap(mem->start, PAGE_SIZE * 2); 645 sachip->base = ioremap(mem->start, PAGE_SIZE * 2);
657 if (!sachip->base) { 646 if (!sachip->base) {
658 ret = -ENOMEM; 647 ret = -ENOMEM;
659 goto out; 648 goto err_clkput;
660 } 649 }
661 650
662 /* 651 /*
@@ -666,7 +655,7 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq)
666 if ((id & SKID_ID_MASK) != SKID_SA1111_ID) { 655 if ((id & SKID_ID_MASK) != SKID_SA1111_ID) {
667 printk(KERN_DEBUG "SA1111 not detected: ID = %08lx\n", id); 656 printk(KERN_DEBUG "SA1111 not detected: ID = %08lx\n", id);
668 ret = -ENODEV; 657 ret = -ENODEV;
669 goto unmap; 658 goto err_unmap;
670 } 659 }
671 660
672 printk(KERN_INFO "SA1111 Microprocessor Companion Chip: " 661 printk(KERN_INFO "SA1111 Microprocessor Companion Chip: "
@@ -726,9 +715,11 @@ __sa1111_probe(struct device *me, struct resource *mem, int irq)
726 715
727 return 0; 716 return 0;
728 717
729 unmap: 718 err_unmap:
730 iounmap(sachip->base); 719 iounmap(sachip->base);
731 out: 720 err_clkput:
721 clk_put(sachip->clk);
722 err_free:
732 kfree(sachip); 723 kfree(sachip);
733 return ret; 724 return ret;
734} 725}
@@ -751,6 +742,8 @@ static void __sa1111_remove(struct sa1111 *sachip)
751 sa1111_writel(0, irqbase + SA1111_WAKEEN0); 742 sa1111_writel(0, irqbase + SA1111_WAKEEN0);
752 sa1111_writel(0, irqbase + SA1111_WAKEEN1); 743 sa1111_writel(0, irqbase + SA1111_WAKEEN1);
753 744
745 clk_disable(sachip->clk);
746
754 if (sachip->irq != NO_IRQ) { 747 if (sachip->irq != NO_IRQ) {
755 set_irq_chained_handler(sachip->irq, NULL); 748 set_irq_chained_handler(sachip->irq, NULL);
756 set_irq_data(sachip->irq, NULL); 749 set_irq_data(sachip->irq, NULL);
@@ -759,6 +752,7 @@ static void __sa1111_remove(struct sa1111 *sachip)
759 } 752 }
760 753
761 iounmap(sachip->base); 754 iounmap(sachip->base);
755 clk_put(sachip->clk);
762 kfree(sachip); 756 kfree(sachip);
763} 757}
764 758
@@ -857,6 +851,8 @@ static int sa1111_suspend(struct platform_device *dev, pm_message_t state)
857 sa1111_writel(0, sachip->base + SA1111_SKPWM0); 851 sa1111_writel(0, sachip->base + SA1111_SKPWM0);
858 sa1111_writel(0, sachip->base + SA1111_SKPWM1); 852 sa1111_writel(0, sachip->base + SA1111_SKPWM1);
859 853
854 clk_disable(sachip->clk);
855
860 spin_unlock_irqrestore(&sachip->lock, flags); 856 spin_unlock_irqrestore(&sachip->lock, flags);
861 857
862 return 0; 858 return 0;
diff --git a/arch/arm/common/scoop.c b/arch/arm/common/scoop.c
index a2dfe0b0f1ec..5e830f444c6c 100644
--- a/arch/arm/common/scoop.c
+++ b/arch/arm/common/scoop.c
@@ -132,12 +132,10 @@ int __init scoop_probe(struct platform_device *pdev)
132 if (!mem) 132 if (!mem)
133 return -EINVAL; 133 return -EINVAL;
134 134
135 devptr = kmalloc(sizeof(struct scoop_dev), GFP_KERNEL); 135 devptr = kzalloc(sizeof(struct scoop_dev), GFP_KERNEL);
136
137 if (!devptr) 136 if (!devptr)
138 return -ENOMEM; 137 return -ENOMEM;
139 138
140 memset(devptr, 0, sizeof(struct scoop_dev));
141 spin_lock_init(&devptr->scoop_lock); 139 spin_lock_init(&devptr->scoop_lock);
142 140
143 inf = pdev->dev.platform_data; 141 inf = pdev->dev.platform_data;
diff --git a/arch/arm/mach-ixp2000/uengine.c b/arch/arm/common/uengine.c
index ec4e007a22ef..a1310b71004e 100644
--- a/arch/arm/mach-ixp2000/uengine.c
+++ b/arch/arm/common/uengine.c
@@ -19,7 +19,7 @@
19#include <linux/string.h> 19#include <linux/string.h>
20#include <asm/hardware.h> 20#include <asm/hardware.h>
21#include <asm/arch/ixp2000-regs.h> 21#include <asm/arch/ixp2000-regs.h>
22#include <asm/arch/uengine.h> 22#include <asm/hardware/uengine.h>
23#include <asm/io.h> 23#include <asm/io.h>
24 24
25#define USTORE_ADDRESS 0x000 25#define USTORE_ADDRESS 0x000
diff --git a/arch/arm/common/vic.c b/arch/arm/common/vic.c
index a45ed1687a59..a19bc4a6196d 100644
--- a/arch/arm/common/vic.c
+++ b/arch/arm/common/vic.c
@@ -22,22 +22,21 @@
22#include <linux/list.h> 22#include <linux/list.h>
23 23
24#include <asm/io.h> 24#include <asm/io.h>
25#include <asm/irq.h>
26#include <asm/mach/irq.h> 25#include <asm/mach/irq.h>
27#include <asm/hardware/vic.h> 26#include <asm/hardware/vic.h>
28 27
29static void __iomem *vic_base;
30
31static void vic_mask_irq(unsigned int irq) 28static void vic_mask_irq(unsigned int irq)
32{ 29{
33 irq -= IRQ_VIC_START; 30 void __iomem *base = get_irq_chipdata(irq);
34 writel(1 << irq, vic_base + VIC_INT_ENABLE_CLEAR); 31 irq &= 31;
32 writel(1 << irq, base + VIC_INT_ENABLE_CLEAR);
35} 33}
36 34
37static void vic_unmask_irq(unsigned int irq) 35static void vic_unmask_irq(unsigned int irq)
38{ 36{
39 irq -= IRQ_VIC_START; 37 void __iomem *base = get_irq_chipdata(irq);
40 writel(1 << irq, vic_base + VIC_INT_ENABLE); 38 irq &= 31;
39 writel(1 << irq, base + VIC_INT_ENABLE);
41} 40}
42 41
43static struct irqchip vic_chip = { 42static struct irqchip vic_chip = {
@@ -46,43 +45,49 @@ static struct irqchip vic_chip = {
46 .unmask = vic_unmask_irq, 45 .unmask = vic_unmask_irq,
47}; 46};
48 47
49void __init vic_init(void __iomem *base, u32 vic_sources) 48/**
49 * vic_init - initialise a vectored interrupt controller
50 * @base: iomem base address
51 * @irq_start: starting interrupt number, must be muliple of 32
52 * @vic_sources: bitmask of interrupt sources to allow
53 */
54void __init vic_init(void __iomem *base, unsigned int irq_start,
55 u32 vic_sources)
50{ 56{
51 unsigned int i; 57 unsigned int i;
52 58
53 vic_base = base;
54
55 /* Disable all interrupts initially. */ 59 /* Disable all interrupts initially. */
56 60
57 writel(0, vic_base + VIC_INT_SELECT); 61 writel(0, base + VIC_INT_SELECT);
58 writel(0, vic_base + VIC_INT_ENABLE); 62 writel(0, base + VIC_INT_ENABLE);
59 writel(~0, vic_base + VIC_INT_ENABLE_CLEAR); 63 writel(~0, base + VIC_INT_ENABLE_CLEAR);
60 writel(0, vic_base + VIC_IRQ_STATUS); 64 writel(0, base + VIC_IRQ_STATUS);
61 writel(0, vic_base + VIC_ITCR); 65 writel(0, base + VIC_ITCR);
62 writel(~0, vic_base + VIC_INT_SOFT_CLEAR); 66 writel(~0, base + VIC_INT_SOFT_CLEAR);
63 67
64 /* 68 /*
65 * Make sure we clear all existing interrupts 69 * Make sure we clear all existing interrupts
66 */ 70 */
67 writel(0, vic_base + VIC_VECT_ADDR); 71 writel(0, base + VIC_VECT_ADDR);
68 for (i = 0; i < 19; i++) { 72 for (i = 0; i < 19; i++) {
69 unsigned int value; 73 unsigned int value;
70 74
71 value = readl(vic_base + VIC_VECT_ADDR); 75 value = readl(base + VIC_VECT_ADDR);
72 writel(value, vic_base + VIC_VECT_ADDR); 76 writel(value, base + VIC_VECT_ADDR);
73 } 77 }
74 78
75 for (i = 0; i < 16; i++) { 79 for (i = 0; i < 16; i++) {
76 void __iomem *reg = vic_base + VIC_VECT_CNTL0 + (i * 4); 80 void __iomem *reg = base + VIC_VECT_CNTL0 + (i * 4);
77 writel(VIC_VECT_CNTL_ENABLE | i, reg); 81 writel(VIC_VECT_CNTL_ENABLE | i, reg);
78 } 82 }
79 83
80 writel(32, vic_base + VIC_DEF_VECT_ADDR); 84 writel(32, base + VIC_DEF_VECT_ADDR);
81 85
82 for (i = 0; i < 32; i++) { 86 for (i = 0; i < 32; i++) {
83 unsigned int irq = IRQ_VIC_START + i; 87 unsigned int irq = irq_start + i;
84 88
85 set_irq_chip(irq, &vic_chip); 89 set_irq_chip(irq, &vic_chip);
90 set_irq_chipdata(irq, base);
86 91
87 if (vic_sources & (1 << i)) { 92 if (vic_sources & (1 << i)) {
88 set_irq_handler(irq, do_level_IRQ); 93 set_irq_handler(irq, do_level_IRQ);
diff --git a/arch/arm/configs/enp2611_defconfig b/arch/arm/configs/ep93xx_defconfig
index 5fdaf3ce9d56..8dcc8e8ec813 100644
--- a/arch/arm/configs/enp2611_defconfig
+++ b/arch/arm/configs/ep93xx_defconfig
@@ -1,11 +1,10 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.14-git13 3# Linux kernel version: 2.6.16
4# Thu Nov 10 15:12:48 2005 4# Mon Mar 20 14:54:51 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
8CONFIG_UID16=y
9CONFIG_RWSEM_GENERIC_SPINLOCK=y 8CONFIG_RWSEM_GENERIC_SPINLOCK=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y 9CONFIG_GENERIC_CALIBRATE_DELAY=y
11 10
@@ -13,7 +12,6 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y
13# Code maturity level options 12# Code maturity level options
14# 13#
15CONFIG_EXPERIMENTAL=y 14CONFIG_EXPERIMENTAL=y
16CONFIG_CLEAN_COMPILE=y
17CONFIG_BROKEN_ON_SMP=y 15CONFIG_BROKEN_ON_SMP=y
18CONFIG_INIT_ENV_ARG_LIMIT=32 16CONFIG_INIT_ENV_ARG_LIMIT=32
19 17
@@ -25,38 +23,42 @@ CONFIG_LOCALVERSION_AUTO=y
25CONFIG_SWAP=y 23CONFIG_SWAP=y
26CONFIG_SYSVIPC=y 24CONFIG_SYSVIPC=y
27# CONFIG_POSIX_MQUEUE is not set 25# CONFIG_POSIX_MQUEUE is not set
28CONFIG_BSD_PROCESS_ACCT=y 26# CONFIG_BSD_PROCESS_ACCT is not set
29# CONFIG_BSD_PROCESS_ACCT_V3 is not set
30CONFIG_SYSCTL=y 27CONFIG_SYSCTL=y
31# CONFIG_AUDIT is not set 28# CONFIG_AUDIT is not set
32# CONFIG_HOTPLUG is not set 29CONFIG_IKCONFIG=y
33CONFIG_KOBJECT_UEVENT=y 30CONFIG_IKCONFIG_PROC=y
34# CONFIG_IKCONFIG is not set
35CONFIG_INITRAMFS_SOURCE="" 31CONFIG_INITRAMFS_SOURCE=""
32CONFIG_UID16=y
33CONFIG_CC_OPTIMIZE_FOR_SIZE=y
36CONFIG_EMBEDDED=y 34CONFIG_EMBEDDED=y
37CONFIG_KALLSYMS=y 35CONFIG_KALLSYMS=y
38# CONFIG_KALLSYMS_ALL is not set 36# CONFIG_KALLSYMS_ALL is not set
39# CONFIG_KALLSYMS_EXTRA_PASS is not set 37# CONFIG_KALLSYMS_EXTRA_PASS is not set
38CONFIG_HOTPLUG=y
40CONFIG_PRINTK=y 39CONFIG_PRINTK=y
41CONFIG_BUG=y 40CONFIG_BUG=y
41CONFIG_ELF_CORE=y
42CONFIG_BASE_FULL=y 42CONFIG_BASE_FULL=y
43CONFIG_FUTEX=y 43CONFIG_FUTEX=y
44CONFIG_EPOLL=y 44CONFIG_EPOLL=y
45CONFIG_CC_OPTIMIZE_FOR_SIZE=y
46CONFIG_SHMEM=y 45CONFIG_SHMEM=y
47CONFIG_CC_ALIGN_FUNCTIONS=0 46CONFIG_CC_ALIGN_FUNCTIONS=0
48CONFIG_CC_ALIGN_LABELS=0 47CONFIG_CC_ALIGN_LABELS=0
49CONFIG_CC_ALIGN_LOOPS=0 48CONFIG_CC_ALIGN_LOOPS=0
50CONFIG_CC_ALIGN_JUMPS=0 49CONFIG_CC_ALIGN_JUMPS=0
50CONFIG_SLAB=y
51# CONFIG_TINY_SHMEM is not set 51# CONFIG_TINY_SHMEM is not set
52CONFIG_BASE_SMALL=0 52CONFIG_BASE_SMALL=0
53# CONFIG_SLOB is not set
54CONFIG_OBSOLETE_INTERMODULE=y
53 55
54# 56#
55# Loadable module support 57# Loadable module support
56# 58#
57CONFIG_MODULES=y 59CONFIG_MODULES=y
58CONFIG_MODULE_UNLOAD=y 60CONFIG_MODULE_UNLOAD=y
59# CONFIG_MODULE_FORCE_UNLOAD is not set 61CONFIG_MODULE_FORCE_UNLOAD=y
60CONFIG_OBSOLETE_MODPARM=y 62CONFIG_OBSOLETE_MODPARM=y
61# CONFIG_MODVERSIONS is not set 63# CONFIG_MODVERSIONS is not set
62# CONFIG_MODULE_SRCVERSION_ALL is not set 64# CONFIG_MODULE_SRCVERSION_ALL is not set
@@ -70,14 +72,14 @@ CONFIG_KMOD=y
70# IO Schedulers 72# IO Schedulers
71# 73#
72CONFIG_IOSCHED_NOOP=y 74CONFIG_IOSCHED_NOOP=y
73CONFIG_IOSCHED_AS=y 75# CONFIG_IOSCHED_AS is not set
74CONFIG_IOSCHED_DEADLINE=y 76CONFIG_IOSCHED_DEADLINE=y
75CONFIG_IOSCHED_CFQ=y 77# CONFIG_IOSCHED_CFQ is not set
76CONFIG_DEFAULT_AS=y 78# CONFIG_DEFAULT_AS is not set
77# CONFIG_DEFAULT_DEADLINE is not set 79CONFIG_DEFAULT_DEADLINE=y
78# CONFIG_DEFAULT_CFQ is not set 80# CONFIG_DEFAULT_CFQ is not set
79# CONFIG_DEFAULT_NOOP is not set 81# CONFIG_DEFAULT_NOOP is not set
80CONFIG_DEFAULT_IOSCHED="anticipatory" 82CONFIG_DEFAULT_IOSCHED="deadline"
81 83
82# 84#
83# System Type 85# System Type
@@ -86,11 +88,12 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
86# CONFIG_ARCH_CLPS711X is not set 88# CONFIG_ARCH_CLPS711X is not set
87# CONFIG_ARCH_CO285 is not set 89# CONFIG_ARCH_CO285 is not set
88# CONFIG_ARCH_EBSA110 is not set 90# CONFIG_ARCH_EBSA110 is not set
91CONFIG_ARCH_EP93XX=y
89# CONFIG_ARCH_FOOTBRIDGE is not set 92# CONFIG_ARCH_FOOTBRIDGE is not set
90# CONFIG_ARCH_INTEGRATOR is not set 93# CONFIG_ARCH_INTEGRATOR is not set
91# CONFIG_ARCH_IOP3XX is not set 94# CONFIG_ARCH_IOP3XX is not set
92# CONFIG_ARCH_IXP4XX is not set 95# CONFIG_ARCH_IXP4XX is not set
93CONFIG_ARCH_IXP2000=y 96# CONFIG_ARCH_IXP2000 is not set
94# CONFIG_ARCH_L7200 is not set 97# CONFIG_ARCH_L7200 is not set
95# CONFIG_ARCH_PXA is not set 98# CONFIG_ARCH_PXA is not set
96# CONFIG_ARCH_RPC is not set 99# CONFIG_ARCH_RPC is not set
@@ -104,46 +107,44 @@ CONFIG_ARCH_IXP2000=y
104# CONFIG_ARCH_IMX is not set 107# CONFIG_ARCH_IMX is not set
105# CONFIG_ARCH_H720X is not set 108# CONFIG_ARCH_H720X is not set
106# CONFIG_ARCH_AAEC2000 is not set 109# CONFIG_ARCH_AAEC2000 is not set
107CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y 110# CONFIG_ARCH_AT91RM9200 is not set
108 111
109# 112#
110# Intel IXP2400/2800 Implementation Options 113# Cirrus EP93xx Implementation Options
111# 114#
115CONFIG_CRUNCH=y
112 116
113# 117#
114# IXP2400/2800 Platforms 118# EP93xx Platforms
115# 119#
116CONFIG_ARCH_ENP2611=y 120CONFIG_MACH_GESBC9312=y
117# CONFIG_ARCH_IXDP2400 is not set 121CONFIG_MACH_TS72XX=y
118# CONFIG_ARCH_IXDP2800 is not set
119# CONFIG_ARCH_IXDP2401 is not set
120# CONFIG_ARCH_IXDP2801 is not set
121# CONFIG_IXP2000_SUPPORT_BROKEN_PCI_IO is not set
122 122
123# 123#
124# Processor Type 124# Processor Type
125# 125#
126CONFIG_CPU_32=y 126CONFIG_CPU_32=y
127CONFIG_CPU_XSCALE=y 127CONFIG_CPU_ARM920T=y
128CONFIG_CPU_32v5=y 128CONFIG_CPU_32v4=y
129CONFIG_CPU_ABRT_EV5T=y 129CONFIG_CPU_ABRT_EV4T=y
130CONFIG_CPU_CACHE_V4WT=y
130CONFIG_CPU_CACHE_VIVT=y 131CONFIG_CPU_CACHE_VIVT=y
132CONFIG_CPU_COPY_V4WB=y
131CONFIG_CPU_TLB_V4WBI=y 133CONFIG_CPU_TLB_V4WBI=y
132 134
133# 135#
134# Processor Features 136# Processor Features
135# 137#
136# CONFIG_ARM_THUMB is not set 138CONFIG_ARM_THUMB=y
137CONFIG_CPU_BIG_ENDIAN=y 139# CONFIG_CPU_ICACHE_DISABLE is not set
138CONFIG_XSCALE_PMU=y 140# CONFIG_CPU_DCACHE_DISABLE is not set
141# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
142CONFIG_ARM_VIC=y
139 143
140# 144#
141# Bus support 145# Bus support
142# 146#
143CONFIG_ISA_DMA_API=y 147CONFIG_ARM_AMBA=y
144CONFIG_PCI=y
145CONFIG_PCI_LEGACY_PROC=y
146# CONFIG_PCI_DEBUG is not set
147 148
148# 149#
149# PCCARD (PCMCIA/CardBus) support 150# PCCARD (PCMCIA/CardBus) support
@@ -155,6 +156,8 @@ CONFIG_PCI_LEGACY_PROC=y
155# 156#
156# CONFIG_PREEMPT is not set 157# CONFIG_PREEMPT is not set
157# CONFIG_NO_IDLE_HZ is not set 158# CONFIG_NO_IDLE_HZ is not set
159CONFIG_HZ=100
160# CONFIG_AEABI is not set
158# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 161# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
159CONFIG_SELECT_MEMORY_MODEL=y 162CONFIG_SELECT_MEMORY_MODEL=y
160CONFIG_FLATMEM_MANUAL=y 163CONFIG_FLATMEM_MANUAL=y
@@ -171,7 +174,7 @@ CONFIG_ALIGNMENT_TRAP=y
171# 174#
172CONFIG_ZBOOT_ROM_TEXT=0x0 175CONFIG_ZBOOT_ROM_TEXT=0x0
173CONFIG_ZBOOT_ROM_BSS=0x0 176CONFIG_ZBOOT_ROM_BSS=0x0
174CONFIG_CMDLINE="console=ttyS0,57600 root=/dev/nfs ip=bootp mem=64M@0x0" 177CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/nfs ip=bootp"
175# CONFIG_XIP_KERNEL is not set 178# CONFIG_XIP_KERNEL is not set
176 179
177# 180#
@@ -197,6 +200,7 @@ CONFIG_BINFMT_ELF=y
197# Power management options 200# Power management options
198# 201#
199# CONFIG_PM is not set 202# CONFIG_PM is not set
203# CONFIG_APM is not set
200 204
201# 205#
202# Networking 206# Networking
@@ -206,10 +210,13 @@ CONFIG_NET=y
206# 210#
207# Networking options 211# Networking options
208# 212#
213# CONFIG_NETDEBUG is not set
209CONFIG_PACKET=y 214CONFIG_PACKET=y
210CONFIG_PACKET_MMAP=y 215CONFIG_PACKET_MMAP=y
211CONFIG_UNIX=y 216CONFIG_UNIX=y
212# CONFIG_NET_KEY is not set 217CONFIG_XFRM=y
218# CONFIG_XFRM_USER is not set
219CONFIG_NET_KEY=y
213CONFIG_INET=y 220CONFIG_INET=y
214# CONFIG_IP_MULTICAST is not set 221# CONFIG_IP_MULTICAST is not set
215# CONFIG_IP_ADVANCED_ROUTER is not set 222# CONFIG_IP_ADVANCED_ROUTER is not set
@@ -242,6 +249,11 @@ CONFIG_TCP_CONG_BIC=y
242# SCTP Configuration (EXPERIMENTAL) 249# SCTP Configuration (EXPERIMENTAL)
243# 250#
244# CONFIG_IP_SCTP is not set 251# CONFIG_IP_SCTP is not set
252
253#
254# TIPC Configuration (EXPERIMENTAL)
255#
256# CONFIG_TIPC is not set
245# CONFIG_ATM is not set 257# CONFIG_ATM is not set
246# CONFIG_BRIDGE is not set 258# CONFIG_BRIDGE is not set
247# CONFIG_VLAN_8021Q is not set 259# CONFIG_VLAN_8021Q is not set
@@ -259,7 +271,6 @@ CONFIG_TCP_CONG_BIC=y
259# QoS and/or fair queueing 271# QoS and/or fair queueing
260# 272#
261# CONFIG_NET_SCHED is not set 273# CONFIG_NET_SCHED is not set
262# CONFIG_NET_CLS_ROUTE is not set
263 274
264# 275#
265# Network testing 276# Network testing
@@ -278,21 +289,26 @@ CONFIG_TCP_CONG_BIC=y
278# Generic Driver Options 289# Generic Driver Options
279# 290#
280CONFIG_STANDALONE=y 291CONFIG_STANDALONE=y
281# CONFIG_PREVENT_FIRMWARE_BUILD is not set 292CONFIG_PREVENT_FIRMWARE_BUILD=y
282# CONFIG_FW_LOADER is not set 293# CONFIG_FW_LOADER is not set
283# CONFIG_DEBUG_DRIVER is not set 294# CONFIG_DEBUG_DRIVER is not set
284 295
285# 296#
297# Connector - unified userspace <-> kernelspace linker
298#
299# CONFIG_CONNECTOR is not set
300
301#
286# Memory Technology Devices (MTD) 302# Memory Technology Devices (MTD)
287# 303#
288CONFIG_MTD=y 304CONFIG_MTD=y
289# CONFIG_MTD_DEBUG is not set 305# CONFIG_MTD_DEBUG is not set
290# CONFIG_MTD_CONCAT is not set 306CONFIG_MTD_CONCAT=y
291CONFIG_MTD_PARTITIONS=y 307CONFIG_MTD_PARTITIONS=y
292CONFIG_MTD_REDBOOT_PARTS=y 308CONFIG_MTD_REDBOOT_PARTS=y
293CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 309CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
294CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y 310# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
295CONFIG_MTD_REDBOOT_PARTS_READONLY=y 311# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
296# CONFIG_MTD_CMDLINE_PARTS is not set 312# CONFIG_MTD_CMDLINE_PARTS is not set
297# CONFIG_MTD_AFS_PARTS is not set 313# CONFIG_MTD_AFS_PARTS is not set
298 314
@@ -312,7 +328,11 @@ CONFIG_MTD_BLOCK=y
312CONFIG_MTD_CFI=y 328CONFIG_MTD_CFI=y
313# CONFIG_MTD_JEDECPROBE is not set 329# CONFIG_MTD_JEDECPROBE is not set
314CONFIG_MTD_GEN_PROBE=y 330CONFIG_MTD_GEN_PROBE=y
315# CONFIG_MTD_CFI_ADV_OPTIONS is not set 331CONFIG_MTD_CFI_ADV_OPTIONS=y
332CONFIG_MTD_CFI_NOSWAP=y
333# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
334# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
335# CONFIG_MTD_CFI_GEOMETRY is not set
316CONFIG_MTD_MAP_BANK_WIDTH_1=y 336CONFIG_MTD_MAP_BANK_WIDTH_1=y
317CONFIG_MTD_MAP_BANK_WIDTH_2=y 337CONFIG_MTD_MAP_BANK_WIDTH_2=y
318CONFIG_MTD_MAP_BANK_WIDTH_4=y 338CONFIG_MTD_MAP_BANK_WIDTH_4=y
@@ -323,29 +343,31 @@ CONFIG_MTD_CFI_I1=y
323CONFIG_MTD_CFI_I2=y 343CONFIG_MTD_CFI_I2=y
324# CONFIG_MTD_CFI_I4 is not set 344# CONFIG_MTD_CFI_I4 is not set
325# CONFIG_MTD_CFI_I8 is not set 345# CONFIG_MTD_CFI_I8 is not set
346# CONFIG_MTD_OTP is not set
326CONFIG_MTD_CFI_INTELEXT=y 347CONFIG_MTD_CFI_INTELEXT=y
327# CONFIG_MTD_CFI_AMDSTD is not set 348CONFIG_MTD_CFI_AMDSTD=y
328# CONFIG_MTD_CFI_STAA is not set 349CONFIG_MTD_CFI_AMDSTD_RETRY=0
350CONFIG_MTD_CFI_STAA=y
329CONFIG_MTD_CFI_UTIL=y 351CONFIG_MTD_CFI_UTIL=y
330# CONFIG_MTD_RAM is not set 352# CONFIG_MTD_RAM is not set
331# CONFIG_MTD_ROM is not set 353CONFIG_MTD_ROM=y
332# CONFIG_MTD_ABSENT is not set 354# CONFIG_MTD_ABSENT is not set
333# CONFIG_MTD_XIP is not set 355# CONFIG_MTD_OBSOLETE_CHIPS is not set
334 356
335# 357#
336# Mapping drivers for chip access 358# Mapping drivers for chip access
337# 359#
338CONFIG_MTD_COMPLEX_MAPPINGS=y 360# CONFIG_MTD_COMPLEX_MAPPINGS is not set
339# CONFIG_MTD_PHYSMAP is not set 361CONFIG_MTD_PHYSMAP=y
362CONFIG_MTD_PHYSMAP_START=0x0
363CONFIG_MTD_PHYSMAP_LEN=0x0
364CONFIG_MTD_PHYSMAP_BANKWIDTH=1
340# CONFIG_MTD_ARM_INTEGRATOR is not set 365# CONFIG_MTD_ARM_INTEGRATOR is not set
341CONFIG_MTD_IXP2000=y
342# CONFIG_MTD_PCI is not set
343# CONFIG_MTD_PLATRAM is not set 366# CONFIG_MTD_PLATRAM is not set
344 367
345# 368#
346# Self-contained MTD device drivers 369# Self-contained MTD device drivers
347# 370#
348# CONFIG_MTD_PMC551 is not set
349# CONFIG_MTD_SLRAM is not set 371# CONFIG_MTD_SLRAM is not set
350# CONFIG_MTD_PHRAM is not set 372# CONFIG_MTD_PHRAM is not set
351# CONFIG_MTD_MTDRAM is not set 373# CONFIG_MTD_MTDRAM is not set
@@ -362,7 +384,11 @@ CONFIG_MTD_IXP2000=y
362# 384#
363# NAND Flash Device Drivers 385# NAND Flash Device Drivers
364# 386#
365# CONFIG_MTD_NAND is not set 387CONFIG_MTD_NAND=y
388CONFIG_MTD_NAND_VERIFY_WRITE=y
389CONFIG_MTD_NAND_IDS=y
390# CONFIG_MTD_NAND_DISKONCHIP is not set
391# CONFIG_MTD_NAND_NANDSIM is not set
366 392
367# 393#
368# OneNAND Flash Device Drivers 394# OneNAND Flash Device Drivers
@@ -381,19 +407,12 @@ CONFIG_MTD_IXP2000=y
381# 407#
382# Block devices 408# Block devices
383# 409#
384# CONFIG_BLK_CPQ_DA is not set
385# CONFIG_BLK_CPQ_CISS_DA is not set
386# CONFIG_BLK_DEV_DAC960 is not set
387# CONFIG_BLK_DEV_UMEM is not set
388# CONFIG_BLK_DEV_COW_COMMON is not set 410# CONFIG_BLK_DEV_COW_COMMON is not set
389CONFIG_BLK_DEV_LOOP=y 411# CONFIG_BLK_DEV_LOOP is not set
390# CONFIG_BLK_DEV_CRYPTOLOOP is not set
391# CONFIG_BLK_DEV_NBD is not set 412# CONFIG_BLK_DEV_NBD is not set
392# CONFIG_BLK_DEV_SX8 is not set 413# CONFIG_BLK_DEV_UB is not set
393CONFIG_BLK_DEV_RAM=y 414# CONFIG_BLK_DEV_RAM is not set
394CONFIG_BLK_DEV_RAM_COUNT=16 415CONFIG_BLK_DEV_RAM_COUNT=16
395CONFIG_BLK_DEV_RAM_SIZE=8192
396CONFIG_BLK_DEV_INITRD=y
397# CONFIG_CDROM_PKTCDVD is not set 416# CONFIG_CDROM_PKTCDVD is not set
398# CONFIG_ATA_OVER_ETH is not set 417# CONFIG_ATA_OVER_ETH is not set
399 418
@@ -401,7 +420,40 @@ CONFIG_BLK_DEV_INITRD=y
401# SCSI device support 420# SCSI device support
402# 421#
403# CONFIG_RAID_ATTRS is not set 422# CONFIG_RAID_ATTRS is not set
404# CONFIG_SCSI is not set 423CONFIG_SCSI=y
424# CONFIG_SCSI_PROC_FS is not set
425
426#
427# SCSI support type (disk, tape, CD-ROM)
428#
429CONFIG_BLK_DEV_SD=y
430# CONFIG_CHR_DEV_ST is not set
431# CONFIG_CHR_DEV_OSST is not set
432# CONFIG_BLK_DEV_SR is not set
433# CONFIG_CHR_DEV_SG is not set
434# CONFIG_CHR_DEV_SCH is not set
435
436#
437# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
438#
439# CONFIG_SCSI_MULTI_LUN is not set
440# CONFIG_SCSI_CONSTANTS is not set
441# CONFIG_SCSI_LOGGING is not set
442
443#
444# SCSI Transport Attributes
445#
446# CONFIG_SCSI_SPI_ATTRS is not set
447# CONFIG_SCSI_FC_ATTRS is not set
448# CONFIG_SCSI_ISCSI_ATTRS is not set
449# CONFIG_SCSI_SAS_ATTRS is not set
450
451#
452# SCSI low-level drivers
453#
454# CONFIG_ISCSI_TCP is not set
455# CONFIG_SCSI_SATA is not set
456# CONFIG_SCSI_DEBUG is not set
405 457
406# 458#
407# Multi-device support (RAID and LVM) 459# Multi-device support (RAID and LVM)
@@ -416,28 +468,21 @@ CONFIG_BLK_DEV_INITRD=y
416# 468#
417# IEEE 1394 (FireWire) support 469# IEEE 1394 (FireWire) support
418# 470#
419# CONFIG_IEEE1394 is not set
420 471
421# 472#
422# I2O device support 473# I2O device support
423# 474#
424# CONFIG_I2O is not set
425 475
426# 476#
427# Network device support 477# Network device support
428# 478#
429CONFIG_NETDEVICES=y 479CONFIG_NETDEVICES=y
430CONFIG_DUMMY=y 480# CONFIG_DUMMY is not set
431# CONFIG_BONDING is not set 481# CONFIG_BONDING is not set
432# CONFIG_EQUALIZER is not set 482# CONFIG_EQUALIZER is not set
433# CONFIG_TUN is not set 483# CONFIG_TUN is not set
434 484
435# 485#
436# ARCnet devices
437#
438# CONFIG_ARCNET is not set
439
440#
441# PHY device support 486# PHY device support
442# 487#
443# CONFIG_PHYLIB is not set 488# CONFIG_PHYLIB is not set
@@ -447,66 +492,20 @@ CONFIG_DUMMY=y
447# 492#
448CONFIG_NET_ETHERNET=y 493CONFIG_NET_ETHERNET=y
449CONFIG_MII=y 494CONFIG_MII=y
450# CONFIG_HAPPYMEAL is not set
451# CONFIG_SUNGEM is not set
452# CONFIG_CASSINI is not set
453# CONFIG_NET_VENDOR_3COM is not set
454# CONFIG_SMC91X is not set 495# CONFIG_SMC91X is not set
455# CONFIG_DM9000 is not set 496# CONFIG_DM9000 is not set
456 497
457# 498#
458# Tulip family network device support
459#
460# CONFIG_NET_TULIP is not set
461# CONFIG_HP100 is not set
462CONFIG_NET_PCI=y
463# CONFIG_PCNET32 is not set
464# CONFIG_AMD8111_ETH is not set
465# CONFIG_ADAPTEC_STARFIRE is not set
466# CONFIG_B44 is not set
467# CONFIG_FORCEDETH is not set
468# CONFIG_DGRS is not set
469CONFIG_EEPRO100=y
470# CONFIG_E100 is not set
471# CONFIG_FEALNX is not set
472# CONFIG_NATSEMI is not set
473# CONFIG_NE2K_PCI is not set
474# CONFIG_8139CP is not set
475# CONFIG_8139TOO is not set
476# CONFIG_SIS900 is not set
477# CONFIG_EPIC100 is not set
478# CONFIG_SUNDANCE is not set
479# CONFIG_TLAN is not set
480# CONFIG_VIA_RHINE is not set
481
482#
483# Ethernet (1000 Mbit) 499# Ethernet (1000 Mbit)
484# 500#
485# CONFIG_ACENIC is not set
486# CONFIG_DL2K is not set
487# CONFIG_E1000 is not set
488# CONFIG_NS83820 is not set
489# CONFIG_HAMACHI is not set
490# CONFIG_YELLOWFIN is not set
491# CONFIG_R8169 is not set
492# CONFIG_SIS190 is not set
493# CONFIG_SKGE is not set
494# CONFIG_SK98LIN is not set
495# CONFIG_VIA_VELOCITY is not set
496# CONFIG_TIGON3 is not set
497# CONFIG_BNX2 is not set
498 501
499# 502#
500# Ethernet (10000 Mbit) 503# Ethernet (10000 Mbit)
501# 504#
502# CONFIG_CHELSIO_T1 is not set
503# CONFIG_IXGB is not set
504# CONFIG_S2IO is not set
505 505
506# 506#
507# Token Ring devices 507# Token Ring devices
508# 508#
509# CONFIG_TR is not set
510 509
511# 510#
512# Wireless LAN (non-hamradio) 511# Wireless LAN (non-hamradio)
@@ -516,29 +515,7 @@ CONFIG_EEPRO100=y
516# 515#
517# Wan interfaces 516# Wan interfaces
518# 517#
519CONFIG_WAN=y 518# CONFIG_WAN is not set
520# CONFIG_DSCC4 is not set
521# CONFIG_LANMEDIA is not set
522# CONFIG_SYNCLINK_SYNCPPP is not set
523CONFIG_HDLC=y
524CONFIG_HDLC_RAW=y
525# CONFIG_HDLC_RAW_ETH is not set
526CONFIG_HDLC_CISCO=y
527CONFIG_HDLC_FR=y
528CONFIG_HDLC_PPP=y
529
530#
531# X.25/LAPB support is disabled
532#
533# CONFIG_PCI200SYN is not set
534# CONFIG_WANXL is not set
535# CONFIG_PC300 is not set
536# CONFIG_FARSYNC is not set
537CONFIG_DLCI=y
538CONFIG_DLCI_COUNT=24
539CONFIG_DLCI_MAX=8
540# CONFIG_FDDI is not set
541# CONFIG_HIPPI is not set
542# CONFIG_PPP is not set 519# CONFIG_PPP is not set
543# CONFIG_SLIP is not set 520# CONFIG_SLIP is not set
544# CONFIG_SHAPER is not set 521# CONFIG_SHAPER is not set
@@ -554,28 +531,7 @@ CONFIG_DLCI_MAX=8
554# 531#
555# Input device support 532# Input device support
556# 533#
557CONFIG_INPUT=y 534# CONFIG_INPUT is not set
558
559#
560# Userland interfaces
561#
562CONFIG_INPUT_MOUSEDEV=y
563CONFIG_INPUT_MOUSEDEV_PSAUX=y
564CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
565CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
566# CONFIG_INPUT_JOYDEV is not set
567# CONFIG_INPUT_TSDEV is not set
568# CONFIG_INPUT_EVDEV is not set
569# CONFIG_INPUT_EVBUG is not set
570
571#
572# Input Device Drivers
573#
574# CONFIG_INPUT_KEYBOARD is not set
575# CONFIG_INPUT_MOUSE is not set
576# CONFIG_INPUT_JOYSTICK is not set
577# CONFIG_INPUT_TOUCHSCREEN is not set
578# CONFIG_INPUT_MISC is not set
579 535
580# 536#
581# Hardware I/O ports 537# Hardware I/O ports
@@ -592,20 +548,18 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
592# 548#
593# Serial drivers 549# Serial drivers
594# 550#
595CONFIG_SERIAL_8250=y 551# CONFIG_SERIAL_8250 is not set
596CONFIG_SERIAL_8250_CONSOLE=y
597CONFIG_SERIAL_8250_NR_UARTS=2
598# CONFIG_SERIAL_8250_EXTENDED is not set
599 552
600# 553#
601# Non-8250 serial port support 554# Non-8250 serial port support
602# 555#
556CONFIG_SERIAL_AMBA_PL010=y
557CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
558# CONFIG_SERIAL_AMBA_PL011 is not set
603CONFIG_SERIAL_CORE=y 559CONFIG_SERIAL_CORE=y
604CONFIG_SERIAL_CORE_CONSOLE=y 560CONFIG_SERIAL_CORE_CONSOLE=y
605# CONFIG_SERIAL_JSM is not set
606CONFIG_UNIX98_PTYS=y 561CONFIG_UNIX98_PTYS=y
607CONFIG_LEGACY_PTYS=y 562# CONFIG_LEGACY_PTYS is not set
608CONFIG_LEGACY_PTY_COUNT=256
609 563
610# 564#
611# IPMI 565# IPMI
@@ -622,23 +576,19 @@ CONFIG_WATCHDOG=y
622# Watchdog Device Drivers 576# Watchdog Device Drivers
623# 577#
624# CONFIG_SOFT_WATCHDOG is not set 578# CONFIG_SOFT_WATCHDOG is not set
625CONFIG_IXP2000_WATCHDOG=y
626 579
627# 580#
628# PCI-based Watchdog Cards 581# USB-based Watchdog Cards
629# 582#
630# CONFIG_PCIPCWATCHDOG is not set 583# CONFIG_USBPCWATCHDOG is not set
631# CONFIG_WDTPCI is not set
632# CONFIG_NVRAM is not set 584# CONFIG_NVRAM is not set
633# CONFIG_RTC is not set 585# CONFIG_RTC is not set
634# CONFIG_DTLK is not set 586# CONFIG_DTLK is not set
635# CONFIG_R3964 is not set 587# CONFIG_R3964 is not set
636# CONFIG_APPLICOM is not set
637 588
638# 589#
639# Ftape, the floppy tape device driver 590# Ftape, the floppy tape device driver
640# 591#
641# CONFIG_DRM is not set
642# CONFIG_RAW_DRIVER is not set 592# CONFIG_RAW_DRIVER is not set
643 593
644# 594#
@@ -663,27 +613,8 @@ CONFIG_I2C_ALGOBIT=y
663# 613#
664# I2C Hardware Bus support 614# I2C Hardware Bus support
665# 615#
666# CONFIG_I2C_ALI1535 is not set
667# CONFIG_I2C_ALI1563 is not set
668# CONFIG_I2C_ALI15X3 is not set
669# CONFIG_I2C_AMD756 is not set
670# CONFIG_I2C_AMD8111 is not set
671# CONFIG_I2C_I801 is not set
672# CONFIG_I2C_I810 is not set
673# CONFIG_I2C_PIIX4 is not set
674CONFIG_I2C_IXP2000=y
675# CONFIG_I2C_NFORCE2 is not set
676# CONFIG_I2C_PARPORT_LIGHT is not set 616# CONFIG_I2C_PARPORT_LIGHT is not set
677# CONFIG_I2C_PROSAVAGE is not set
678# CONFIG_I2C_SAVAGE4 is not set
679# CONFIG_SCx200_ACB is not set
680# CONFIG_I2C_SIS5595 is not set
681# CONFIG_I2C_SIS630 is not set
682# CONFIG_I2C_SIS96X is not set
683# CONFIG_I2C_STUB is not set 617# CONFIG_I2C_STUB is not set
684# CONFIG_I2C_VIA is not set
685# CONFIG_I2C_VIAPRO is not set
686# CONFIG_I2C_VOODOO3 is not set
687# CONFIG_I2C_PCA_ISA is not set 618# CONFIG_I2C_PCA_ISA is not set
688 619
689# 620#
@@ -691,17 +622,28 @@ CONFIG_I2C_IXP2000=y
691# 622#
692# CONFIG_SENSORS_DS1337 is not set 623# CONFIG_SENSORS_DS1337 is not set
693# CONFIG_SENSORS_DS1374 is not set 624# CONFIG_SENSORS_DS1374 is not set
694CONFIG_SENSORS_EEPROM=y 625# CONFIG_SENSORS_EEPROM is not set
695# CONFIG_SENSORS_PCF8574 is not set 626# CONFIG_SENSORS_PCF8574 is not set
696# CONFIG_SENSORS_PCA9539 is not set 627# CONFIG_SENSORS_PCA9539 is not set
697# CONFIG_SENSORS_PCF8591 is not set 628# CONFIG_SENSORS_PCF8591 is not set
698# CONFIG_SENSORS_RTC8564 is not set 629# CONFIG_SENSORS_RTC8564 is not set
699# CONFIG_SENSORS_MAX6875 is not set 630# CONFIG_SENSORS_MAX6875 is not set
700# CONFIG_RTC_X1205_I2C is not set 631# CONFIG_RTC_X1205_I2C is not set
701# CONFIG_I2C_DEBUG_CORE is not set 632CONFIG_I2C_DEBUG_CORE=y
702# CONFIG_I2C_DEBUG_ALGO is not set 633CONFIG_I2C_DEBUG_ALGO=y
703# CONFIG_I2C_DEBUG_BUS is not set 634CONFIG_I2C_DEBUG_BUS=y
704# CONFIG_I2C_DEBUG_CHIP is not set 635CONFIG_I2C_DEBUG_CHIP=y
636
637#
638# SPI support
639#
640# CONFIG_SPI is not set
641# CONFIG_SPI_MASTER is not set
642
643#
644# Dallas's 1-wire bus
645#
646# CONFIG_W1 is not set
705 647
706# 648#
707# Hardware Monitoring support 649# Hardware Monitoring support
@@ -716,6 +658,7 @@ CONFIG_HWMON=y
716# CONFIG_SENSORS_ASB100 is not set 658# CONFIG_SENSORS_ASB100 is not set
717# CONFIG_SENSORS_ATXP1 is not set 659# CONFIG_SENSORS_ATXP1 is not set
718# CONFIG_SENSORS_DS1621 is not set 660# CONFIG_SENSORS_DS1621 is not set
661# CONFIG_SENSORS_F71805F is not set
719# CONFIG_SENSORS_FSCHER is not set 662# CONFIG_SENSORS_FSCHER is not set
720# CONFIG_SENSORS_FSCPOS is not set 663# CONFIG_SENSORS_FSCPOS is not set
721# CONFIG_SENSORS_GL518SM is not set 664# CONFIG_SENSORS_GL518SM is not set
@@ -733,10 +676,8 @@ CONFIG_HWMON=y
733# CONFIG_SENSORS_LM92 is not set 676# CONFIG_SENSORS_LM92 is not set
734# CONFIG_SENSORS_MAX1619 is not set 677# CONFIG_SENSORS_MAX1619 is not set
735# CONFIG_SENSORS_PC87360 is not set 678# CONFIG_SENSORS_PC87360 is not set
736# CONFIG_SENSORS_SIS5595 is not set
737# CONFIG_SENSORS_SMSC47M1 is not set 679# CONFIG_SENSORS_SMSC47M1 is not set
738# CONFIG_SENSORS_SMSC47B397 is not set 680# CONFIG_SENSORS_SMSC47B397 is not set
739# CONFIG_SENSORS_VIA686A is not set
740# CONFIG_SENSORS_W83781D is not set 681# CONFIG_SENSORS_W83781D is not set
741# CONFIG_SENSORS_W83792D is not set 682# CONFIG_SENSORS_W83792D is not set
742# CONFIG_SENSORS_W83L785TS is not set 683# CONFIG_SENSORS_W83L785TS is not set
@@ -776,14 +717,144 @@ CONFIG_HWMON=y
776# USB support 717# USB support
777# 718#
778CONFIG_USB_ARCH_HAS_HCD=y 719CONFIG_USB_ARCH_HAS_HCD=y
779CONFIG_USB_ARCH_HAS_OHCI=y 720# CONFIG_USB_ARCH_HAS_OHCI is not set
780# CONFIG_USB is not set 721CONFIG_USB=y
722CONFIG_USB_DEBUG=y
723
724#
725# Miscellaneous USB options
726#
727CONFIG_USB_DEVICEFS=y
728# CONFIG_USB_BANDWIDTH is not set
729CONFIG_USB_DYNAMIC_MINORS=y
730# CONFIG_USB_OTG is not set
731
732#
733# USB Host Controller Drivers
734#
735# CONFIG_USB_ISP116X_HCD is not set
736# CONFIG_USB_SL811_HCD is not set
737
738#
739# USB Device Class drivers
740#
741# CONFIG_USB_ACM is not set
742# CONFIG_USB_PRINTER is not set
781 743
782# 744#
783# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 745# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
784# 746#
785 747
786# 748#
749# may also be needed; see USB_STORAGE Help for more information
750#
751CONFIG_USB_STORAGE=y
752# CONFIG_USB_STORAGE_DEBUG is not set
753# CONFIG_USB_STORAGE_DATAFAB is not set
754# CONFIG_USB_STORAGE_FREECOM is not set
755# CONFIG_USB_STORAGE_DPCM is not set
756# CONFIG_USB_STORAGE_USBAT is not set
757# CONFIG_USB_STORAGE_SDDR09 is not set
758# CONFIG_USB_STORAGE_SDDR55 is not set
759# CONFIG_USB_STORAGE_JUMPSHOT is not set
760# CONFIG_USB_STORAGE_ALAUDA is not set
761# CONFIG_USB_LIBUSUAL is not set
762
763#
764# USB Input Devices
765#
766# CONFIG_USB_HID is not set
767
768#
769# USB HID Boot Protocol drivers
770#
771
772#
773# USB Imaging devices
774#
775# CONFIG_USB_MDC800 is not set
776# CONFIG_USB_MICROTEK is not set
777
778#
779# USB Multimedia devices
780#
781# CONFIG_USB_DABUSB is not set
782
783#
784# Video4Linux support is needed for USB Multimedia device support
785#
786
787#
788# USB Network Adapters
789#
790# CONFIG_USB_CATC is not set
791# CONFIG_USB_KAWETH is not set
792# CONFIG_USB_PEGASUS is not set
793CONFIG_USB_RTL8150=y
794# CONFIG_USB_USBNET is not set
795# CONFIG_USB_MON is not set
796
797#
798# USB port drivers
799#
800
801#
802# USB Serial Converter support
803#
804CONFIG_USB_SERIAL=y
805CONFIG_USB_SERIAL_CONSOLE=y
806# CONFIG_USB_SERIAL_GENERIC is not set
807# CONFIG_USB_SERIAL_AIRPRIME is not set
808# CONFIG_USB_SERIAL_ANYDATA is not set
809# CONFIG_USB_SERIAL_BELKIN is not set
810# CONFIG_USB_SERIAL_WHITEHEAT is not set
811# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
812# CONFIG_USB_SERIAL_CP2101 is not set
813# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
814# CONFIG_USB_SERIAL_EMPEG is not set
815# CONFIG_USB_SERIAL_FTDI_SIO is not set
816# CONFIG_USB_SERIAL_VISOR is not set
817# CONFIG_USB_SERIAL_IPAQ is not set
818# CONFIG_USB_SERIAL_IR is not set
819# CONFIG_USB_SERIAL_EDGEPORT is not set
820# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
821# CONFIG_USB_SERIAL_GARMIN is not set
822# CONFIG_USB_SERIAL_IPW is not set
823# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
824# CONFIG_USB_SERIAL_KEYSPAN is not set
825# CONFIG_USB_SERIAL_KLSI is not set
826# CONFIG_USB_SERIAL_KOBIL_SCT is not set
827# CONFIG_USB_SERIAL_MCT_U232 is not set
828CONFIG_USB_SERIAL_PL2303=y
829# CONFIG_USB_SERIAL_HP4X is not set
830# CONFIG_USB_SERIAL_SAFE is not set
831# CONFIG_USB_SERIAL_TI is not set
832# CONFIG_USB_SERIAL_CYBERJACK is not set
833# CONFIG_USB_SERIAL_XIRCOM is not set
834# CONFIG_USB_SERIAL_OMNINET is not set
835
836#
837# USB Miscellaneous drivers
838#
839# CONFIG_USB_EMI62 is not set
840# CONFIG_USB_EMI26 is not set
841# CONFIG_USB_AUERSWALD is not set
842# CONFIG_USB_RIO500 is not set
843# CONFIG_USB_LEGOTOWER is not set
844# CONFIG_USB_LCD is not set
845# CONFIG_USB_LED is not set
846# CONFIG_USB_CYTHERM is not set
847# CONFIG_USB_PHIDGETKIT is not set
848# CONFIG_USB_PHIDGETSERVO is not set
849# CONFIG_USB_IDMOUSE is not set
850# CONFIG_USB_LD is not set
851# CONFIG_USB_TEST is not set
852
853#
854# USB DSL modem support
855#
856
857#
787# USB Gadget Support 858# USB Gadget Support
788# 859#
789# CONFIG_USB_GADGET is not set 860# CONFIG_USB_GADGET is not set
@@ -797,21 +868,17 @@ CONFIG_USB_ARCH_HAS_OHCI=y
797# File systems 868# File systems
798# 869#
799CONFIG_EXT2_FS=y 870CONFIG_EXT2_FS=y
800CONFIG_EXT2_FS_XATTR=y 871# CONFIG_EXT2_FS_XATTR is not set
801CONFIG_EXT2_FS_POSIX_ACL=y
802# CONFIG_EXT2_FS_SECURITY is not set
803# CONFIG_EXT2_FS_XIP is not set 872# CONFIG_EXT2_FS_XIP is not set
804CONFIG_EXT3_FS=y 873CONFIG_EXT3_FS=y
805CONFIG_EXT3_FS_XATTR=y 874# CONFIG_EXT3_FS_XATTR is not set
806CONFIG_EXT3_FS_POSIX_ACL=y
807# CONFIG_EXT3_FS_SECURITY is not set
808CONFIG_JBD=y 875CONFIG_JBD=y
809# CONFIG_JBD_DEBUG is not set 876# CONFIG_JBD_DEBUG is not set
810CONFIG_FS_MBCACHE=y
811# CONFIG_REISERFS_FS is not set 877# CONFIG_REISERFS_FS is not set
812# CONFIG_JFS_FS is not set 878# CONFIG_JFS_FS is not set
813CONFIG_FS_POSIX_ACL=y 879# CONFIG_FS_POSIX_ACL is not set
814# CONFIG_XFS_FS is not set 880# CONFIG_XFS_FS is not set
881# CONFIG_OCFS2_FS is not set
815# CONFIG_MINIX_FS is not set 882# CONFIG_MINIX_FS is not set
816# CONFIG_ROMFS_FS is not set 883# CONFIG_ROMFS_FS is not set
817CONFIG_INOTIFY=y 884CONFIG_INOTIFY=y
@@ -830,8 +897,11 @@ CONFIG_DNOTIFY=y
830# 897#
831# DOS/FAT/NT Filesystems 898# DOS/FAT/NT Filesystems
832# 899#
900CONFIG_FAT_FS=y
833# CONFIG_MSDOS_FS is not set 901# CONFIG_MSDOS_FS is not set
834# CONFIG_VFAT_FS is not set 902CONFIG_VFAT_FS=y
903CONFIG_FAT_DEFAULT_CODEPAGE=437
904CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
835# CONFIG_NTFS_FS is not set 905# CONFIG_NTFS_FS is not set
836 906
837# 907#
@@ -843,6 +913,7 @@ CONFIG_TMPFS=y
843# CONFIG_HUGETLB_PAGE is not set 913# CONFIG_HUGETLB_PAGE is not set
844CONFIG_RAMFS=y 914CONFIG_RAMFS=y
845# CONFIG_RELAYFS_FS is not set 915# CONFIG_RELAYFS_FS is not set
916# CONFIG_CONFIGFS_FS is not set
846 917
847# 918#
848# Miscellaneous filesystems 919# Miscellaneous filesystems
@@ -911,12 +982,52 @@ CONFIG_MSDOS_PARTITION=y
911# CONFIG_SGI_PARTITION is not set 982# CONFIG_SGI_PARTITION is not set
912# CONFIG_ULTRIX_PARTITION is not set 983# CONFIG_ULTRIX_PARTITION is not set
913# CONFIG_SUN_PARTITION is not set 984# CONFIG_SUN_PARTITION is not set
985# CONFIG_KARMA_PARTITION is not set
914# CONFIG_EFI_PARTITION is not set 986# CONFIG_EFI_PARTITION is not set
915 987
916# 988#
917# Native Language Support 989# Native Language Support
918# 990#
919# CONFIG_NLS is not set 991CONFIG_NLS=y
992CONFIG_NLS_DEFAULT="iso8859-1"
993CONFIG_NLS_CODEPAGE_437=y
994# CONFIG_NLS_CODEPAGE_737 is not set
995# CONFIG_NLS_CODEPAGE_775 is not set
996# CONFIG_NLS_CODEPAGE_850 is not set
997# CONFIG_NLS_CODEPAGE_852 is not set
998# CONFIG_NLS_CODEPAGE_855 is not set
999# CONFIG_NLS_CODEPAGE_857 is not set
1000# CONFIG_NLS_CODEPAGE_860 is not set
1001# CONFIG_NLS_CODEPAGE_861 is not set
1002# CONFIG_NLS_CODEPAGE_862 is not set
1003# CONFIG_NLS_CODEPAGE_863 is not set
1004# CONFIG_NLS_CODEPAGE_864 is not set
1005# CONFIG_NLS_CODEPAGE_865 is not set
1006# CONFIG_NLS_CODEPAGE_866 is not set
1007# CONFIG_NLS_CODEPAGE_869 is not set
1008# CONFIG_NLS_CODEPAGE_936 is not set
1009# CONFIG_NLS_CODEPAGE_950 is not set
1010# CONFIG_NLS_CODEPAGE_932 is not set
1011# CONFIG_NLS_CODEPAGE_949 is not set
1012# CONFIG_NLS_CODEPAGE_874 is not set
1013# CONFIG_NLS_ISO8859_8 is not set
1014# CONFIG_NLS_CODEPAGE_1250 is not set
1015# CONFIG_NLS_CODEPAGE_1251 is not set
1016# CONFIG_NLS_ASCII is not set
1017CONFIG_NLS_ISO8859_1=y
1018# CONFIG_NLS_ISO8859_2 is not set
1019# CONFIG_NLS_ISO8859_3 is not set
1020# CONFIG_NLS_ISO8859_4 is not set
1021# CONFIG_NLS_ISO8859_5 is not set
1022# CONFIG_NLS_ISO8859_6 is not set
1023# CONFIG_NLS_ISO8859_7 is not set
1024# CONFIG_NLS_ISO8859_9 is not set
1025# CONFIG_NLS_ISO8859_13 is not set
1026# CONFIG_NLS_ISO8859_14 is not set
1027# CONFIG_NLS_ISO8859_15 is not set
1028# CONFIG_NLS_KOI8_R is not set
1029# CONFIG_NLS_KOI8_U is not set
1030# CONFIG_NLS_UTF8 is not set
920 1031
921# 1032#
922# Profiling support 1033# Profiling support
@@ -927,13 +1038,14 @@ CONFIG_MSDOS_PARTITION=y
927# Kernel hacking 1038# Kernel hacking
928# 1039#
929# CONFIG_PRINTK_TIME is not set 1040# CONFIG_PRINTK_TIME is not set
930CONFIG_DEBUG_KERNEL=y
931CONFIG_MAGIC_SYSRQ=y 1041CONFIG_MAGIC_SYSRQ=y
1042CONFIG_DEBUG_KERNEL=y
932CONFIG_LOG_BUF_SHIFT=14 1043CONFIG_LOG_BUF_SHIFT=14
933CONFIG_DETECT_SOFTLOCKUP=y 1044CONFIG_DETECT_SOFTLOCKUP=y
934# CONFIG_SCHEDSTATS is not set 1045# CONFIG_SCHEDSTATS is not set
935# CONFIG_DEBUG_SLAB is not set 1046CONFIG_DEBUG_SLAB=y
936# CONFIG_DEBUG_SPINLOCK is not set 1047CONFIG_DEBUG_MUTEXES=y
1048CONFIG_DEBUG_SPINLOCK=y
937# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1049# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
938# CONFIG_DEBUG_KOBJECT is not set 1050# CONFIG_DEBUG_KOBJECT is not set
939CONFIG_DEBUG_BUGVERBOSE=y 1051CONFIG_DEBUG_BUGVERBOSE=y
@@ -941,9 +1053,10 @@ CONFIG_DEBUG_BUGVERBOSE=y
941# CONFIG_DEBUG_FS is not set 1053# CONFIG_DEBUG_FS is not set
942# CONFIG_DEBUG_VM is not set 1054# CONFIG_DEBUG_VM is not set
943CONFIG_FRAME_POINTER=y 1055CONFIG_FRAME_POINTER=y
1056CONFIG_FORCED_INLINING=y
944# CONFIG_RCU_TORTURE_TEST is not set 1057# CONFIG_RCU_TORTURE_TEST is not set
945CONFIG_DEBUG_USER=y 1058CONFIG_DEBUG_USER=y
946# CONFIG_DEBUG_WAITQ is not set 1059CONFIG_DEBUG_WAITQ=y
947CONFIG_DEBUG_ERRORS=y 1060CONFIG_DEBUG_ERRORS=y
948CONFIG_DEBUG_LL=y 1061CONFIG_DEBUG_LL=y
949# CONFIG_DEBUG_ICEDCC is not set 1062# CONFIG_DEBUG_ICEDCC is not set
@@ -969,6 +1082,6 @@ CONFIG_DEBUG_LL=y
969# CONFIG_CRC_CCITT is not set 1082# CONFIG_CRC_CCITT is not set
970# CONFIG_CRC16 is not set 1083# CONFIG_CRC16 is not set
971CONFIG_CRC32=y 1084CONFIG_CRC32=y
972# CONFIG_LIBCRC32C is not set 1085CONFIG_LIBCRC32C=y
973CONFIG_ZLIB_INFLATE=y 1086CONFIG_ZLIB_INFLATE=y
974CONFIG_ZLIB_DEFLATE=y 1087CONFIG_ZLIB_DEFLATE=y
diff --git a/arch/arm/configs/ixdp2401_defconfig b/arch/arm/configs/ixdp2401_defconfig
deleted file mode 100644
index 60d66e82c51f..000000000000
--- a/arch/arm/configs/ixdp2401_defconfig
+++ /dev/null
@@ -1,976 +0,0 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.14-git13
4# Thu Nov 10 15:14:50 2005
5#
6CONFIG_ARM=y
7CONFIG_MMU=y
8CONFIG_UID16=y
9CONFIG_RWSEM_GENERIC_SPINLOCK=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y
11
12#
13# Code maturity level options
14#
15CONFIG_EXPERIMENTAL=y
16CONFIG_CLEAN_COMPILE=y
17CONFIG_BROKEN_ON_SMP=y
18CONFIG_INIT_ENV_ARG_LIMIT=32
19
20#
21# General setup
22#
23CONFIG_LOCALVERSION=""
24CONFIG_LOCALVERSION_AUTO=y
25CONFIG_SWAP=y
26CONFIG_SYSVIPC=y
27# CONFIG_POSIX_MQUEUE is not set
28CONFIG_BSD_PROCESS_ACCT=y
29# CONFIG_BSD_PROCESS_ACCT_V3 is not set
30CONFIG_SYSCTL=y
31# CONFIG_AUDIT is not set
32# CONFIG_HOTPLUG is not set
33CONFIG_KOBJECT_UEVENT=y
34# CONFIG_IKCONFIG is not set
35CONFIG_INITRAMFS_SOURCE=""
36CONFIG_EMBEDDED=y
37CONFIG_KALLSYMS=y
38# CONFIG_KALLSYMS_ALL is not set
39# CONFIG_KALLSYMS_EXTRA_PASS is not set
40CONFIG_PRINTK=y
41CONFIG_BUG=y
42CONFIG_BASE_FULL=y
43CONFIG_FUTEX=y
44CONFIG_EPOLL=y
45CONFIG_CC_OPTIMIZE_FOR_SIZE=y
46CONFIG_SHMEM=y
47CONFIG_CC_ALIGN_FUNCTIONS=0
48CONFIG_CC_ALIGN_LABELS=0
49CONFIG_CC_ALIGN_LOOPS=0
50CONFIG_CC_ALIGN_JUMPS=0
51# CONFIG_TINY_SHMEM is not set
52CONFIG_BASE_SMALL=0
53
54#
55# Loadable module support
56#
57CONFIG_MODULES=y
58CONFIG_MODULE_UNLOAD=y
59# CONFIG_MODULE_FORCE_UNLOAD is not set
60CONFIG_OBSOLETE_MODPARM=y
61# CONFIG_MODVERSIONS is not set
62# CONFIG_MODULE_SRCVERSION_ALL is not set
63CONFIG_KMOD=y
64
65#
66# Block layer
67#
68
69#
70# IO Schedulers
71#
72CONFIG_IOSCHED_NOOP=y
73CONFIG_IOSCHED_AS=y
74CONFIG_IOSCHED_DEADLINE=y
75CONFIG_IOSCHED_CFQ=y
76CONFIG_DEFAULT_AS=y
77# CONFIG_DEFAULT_DEADLINE is not set
78# CONFIG_DEFAULT_CFQ is not set
79# CONFIG_DEFAULT_NOOP is not set
80CONFIG_DEFAULT_IOSCHED="anticipatory"
81
82#
83# System Type
84#
85# CONFIG_ARCH_CLPS7500 is not set
86# CONFIG_ARCH_CLPS711X is not set
87# CONFIG_ARCH_CO285 is not set
88# CONFIG_ARCH_EBSA110 is not set
89# CONFIG_ARCH_FOOTBRIDGE is not set
90# CONFIG_ARCH_INTEGRATOR is not set
91# CONFIG_ARCH_IOP3XX is not set
92# CONFIG_ARCH_IXP4XX is not set
93CONFIG_ARCH_IXP2000=y
94# CONFIG_ARCH_L7200 is not set
95# CONFIG_ARCH_PXA is not set
96# CONFIG_ARCH_RPC is not set
97# CONFIG_ARCH_SA1100 is not set
98# CONFIG_ARCH_S3C2410 is not set
99# CONFIG_ARCH_SHARK is not set
100# CONFIG_ARCH_LH7A40X is not set
101# CONFIG_ARCH_OMAP is not set
102# CONFIG_ARCH_VERSATILE is not set
103# CONFIG_ARCH_REALVIEW is not set
104# CONFIG_ARCH_IMX is not set
105# CONFIG_ARCH_H720X is not set
106# CONFIG_ARCH_AAEC2000 is not set
107CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
108
109#
110# Intel IXP2400/2800 Implementation Options
111#
112
113#
114# IXP2400/2800 Platforms
115#
116# CONFIG_ARCH_ENP2611 is not set
117# CONFIG_ARCH_IXDP2400 is not set
118# CONFIG_ARCH_IXDP2800 is not set
119CONFIG_ARCH_IXDP2401=y
120# CONFIG_ARCH_IXDP2801 is not set
121CONFIG_ARCH_IXDP2X01=y
122# CONFIG_IXP2000_SUPPORT_BROKEN_PCI_IO is not set
123
124#
125# Processor Type
126#
127CONFIG_CPU_32=y
128CONFIG_CPU_XSCALE=y
129CONFIG_CPU_32v5=y
130CONFIG_CPU_ABRT_EV5T=y
131CONFIG_CPU_CACHE_VIVT=y
132CONFIG_CPU_TLB_V4WBI=y
133
134#
135# Processor Features
136#
137# CONFIG_ARM_THUMB is not set
138CONFIG_CPU_BIG_ENDIAN=y
139CONFIG_XSCALE_PMU=y
140
141#
142# Bus support
143#
144CONFIG_ISA_DMA_API=y
145CONFIG_PCI=y
146CONFIG_PCI_LEGACY_PROC=y
147# CONFIG_PCI_DEBUG is not set
148
149#
150# PCCARD (PCMCIA/CardBus) support
151#
152# CONFIG_PCCARD is not set
153
154#
155# Kernel Features
156#
157# CONFIG_PREEMPT is not set
158# CONFIG_NO_IDLE_HZ is not set
159# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
160CONFIG_SELECT_MEMORY_MODEL=y
161CONFIG_FLATMEM_MANUAL=y
162# CONFIG_DISCONTIGMEM_MANUAL is not set
163# CONFIG_SPARSEMEM_MANUAL is not set
164CONFIG_FLATMEM=y
165CONFIG_FLAT_NODE_MEM_MAP=y
166# CONFIG_SPARSEMEM_STATIC is not set
167CONFIG_SPLIT_PTLOCK_CPUS=4096
168CONFIG_ALIGNMENT_TRAP=y
169
170#
171# Boot options
172#
173CONFIG_ZBOOT_ROM_TEXT=0x0
174CONFIG_ZBOOT_ROM_BSS=0x0
175CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs ip=bootp mem=64M@0x0"
176# CONFIG_XIP_KERNEL is not set
177
178#
179# Floating point emulation
180#
181
182#
183# At least one emulation must be selected
184#
185CONFIG_FPE_NWFPE=y
186CONFIG_FPE_NWFPE_XP=y
187# CONFIG_FPE_FASTFPE is not set
188
189#
190# Userspace binary formats
191#
192CONFIG_BINFMT_ELF=y
193# CONFIG_BINFMT_AOUT is not set
194# CONFIG_BINFMT_MISC is not set
195# CONFIG_ARTHUR is not set
196
197#
198# Power management options
199#
200# CONFIG_PM is not set
201
202#
203# Networking
204#
205CONFIG_NET=y
206
207#
208# Networking options
209#
210CONFIG_PACKET=y
211CONFIG_PACKET_MMAP=y
212CONFIG_UNIX=y
213# CONFIG_NET_KEY is not set
214CONFIG_INET=y
215# CONFIG_IP_MULTICAST is not set
216# CONFIG_IP_ADVANCED_ROUTER is not set
217CONFIG_IP_FIB_HASH=y
218CONFIG_IP_PNP=y
219CONFIG_IP_PNP_DHCP=y
220CONFIG_IP_PNP_BOOTP=y
221# CONFIG_IP_PNP_RARP is not set
222# CONFIG_NET_IPIP is not set
223# CONFIG_NET_IPGRE is not set
224# CONFIG_ARPD is not set
225CONFIG_SYN_COOKIES=y
226# CONFIG_INET_AH is not set
227# CONFIG_INET_ESP is not set
228# CONFIG_INET_IPCOMP is not set
229# CONFIG_INET_TUNNEL is not set
230CONFIG_INET_DIAG=y
231CONFIG_INET_TCP_DIAG=y
232# CONFIG_TCP_CONG_ADVANCED is not set
233CONFIG_TCP_CONG_BIC=y
234# CONFIG_IPV6 is not set
235# CONFIG_NETFILTER is not set
236
237#
238# DCCP Configuration (EXPERIMENTAL)
239#
240# CONFIG_IP_DCCP is not set
241
242#
243# SCTP Configuration (EXPERIMENTAL)
244#
245# CONFIG_IP_SCTP is not set
246# CONFIG_ATM is not set
247# CONFIG_BRIDGE is not set
248# CONFIG_VLAN_8021Q is not set
249# CONFIG_DECNET is not set
250# CONFIG_LLC2 is not set
251# CONFIG_IPX is not set
252# CONFIG_ATALK is not set
253# CONFIG_X25 is not set
254# CONFIG_LAPB is not set
255# CONFIG_NET_DIVERT is not set
256# CONFIG_ECONET is not set
257# CONFIG_WAN_ROUTER is not set
258
259#
260# QoS and/or fair queueing
261#
262# CONFIG_NET_SCHED is not set
263# CONFIG_NET_CLS_ROUTE is not set
264
265#
266# Network testing
267#
268# CONFIG_NET_PKTGEN is not set
269# CONFIG_HAMRADIO is not set
270# CONFIG_IRDA is not set
271# CONFIG_BT is not set
272# CONFIG_IEEE80211 is not set
273
274#
275# Device Drivers
276#
277
278#
279# Generic Driver Options
280#
281CONFIG_STANDALONE=y
282# CONFIG_PREVENT_FIRMWARE_BUILD is not set
283# CONFIG_FW_LOADER is not set
284# CONFIG_DEBUG_DRIVER is not set
285
286#
287# Memory Technology Devices (MTD)
288#
289CONFIG_MTD=y
290# CONFIG_MTD_DEBUG is not set
291# CONFIG_MTD_CONCAT is not set
292CONFIG_MTD_PARTITIONS=y
293CONFIG_MTD_REDBOOT_PARTS=y
294CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
295CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
296CONFIG_MTD_REDBOOT_PARTS_READONLY=y
297# CONFIG_MTD_CMDLINE_PARTS is not set
298# CONFIG_MTD_AFS_PARTS is not set
299
300#
301# User Modules And Translation Layers
302#
303CONFIG_MTD_CHAR=y
304CONFIG_MTD_BLOCK=y
305# CONFIG_FTL is not set
306# CONFIG_NFTL is not set
307# CONFIG_INFTL is not set
308# CONFIG_RFD_FTL is not set
309
310#
311# RAM/ROM/Flash chip drivers
312#
313CONFIG_MTD_CFI=y
314# CONFIG_MTD_JEDECPROBE is not set
315CONFIG_MTD_GEN_PROBE=y
316# CONFIG_MTD_CFI_ADV_OPTIONS is not set
317CONFIG_MTD_MAP_BANK_WIDTH_1=y
318CONFIG_MTD_MAP_BANK_WIDTH_2=y
319CONFIG_MTD_MAP_BANK_WIDTH_4=y
320# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
321# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
322# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
323CONFIG_MTD_CFI_I1=y
324CONFIG_MTD_CFI_I2=y
325# CONFIG_MTD_CFI_I4 is not set
326# CONFIG_MTD_CFI_I8 is not set
327CONFIG_MTD_CFI_INTELEXT=y
328# CONFIG_MTD_CFI_AMDSTD is not set
329# CONFIG_MTD_CFI_STAA is not set
330CONFIG_MTD_CFI_UTIL=y
331# CONFIG_MTD_RAM is not set
332# CONFIG_MTD_ROM is not set
333# CONFIG_MTD_ABSENT is not set
334# CONFIG_MTD_XIP is not set
335
336#
337# Mapping drivers for chip access
338#
339CONFIG_MTD_COMPLEX_MAPPINGS=y
340# CONFIG_MTD_PHYSMAP is not set
341# CONFIG_MTD_ARM_INTEGRATOR is not set
342CONFIG_MTD_IXP2000=y
343# CONFIG_MTD_PCI is not set
344# CONFIG_MTD_PLATRAM is not set
345
346#
347# Self-contained MTD device drivers
348#
349# CONFIG_MTD_PMC551 is not set
350# CONFIG_MTD_SLRAM is not set
351# CONFIG_MTD_PHRAM is not set
352# CONFIG_MTD_MTDRAM is not set
353# CONFIG_MTD_BLKMTD is not set
354# CONFIG_MTD_BLOCK2MTD is not set
355
356#
357# Disk-On-Chip Device Drivers
358#
359# CONFIG_MTD_DOC2000 is not set
360# CONFIG_MTD_DOC2001 is not set
361# CONFIG_MTD_DOC2001PLUS is not set
362
363#
364# NAND Flash Device Drivers
365#
366# CONFIG_MTD_NAND is not set
367
368#
369# OneNAND Flash Device Drivers
370#
371# CONFIG_MTD_ONENAND is not set
372
373#
374# Parallel port support
375#
376# CONFIG_PARPORT is not set
377
378#
379# Plug and Play support
380#
381
382#
383# Block devices
384#
385# CONFIG_BLK_CPQ_DA is not set
386# CONFIG_BLK_CPQ_CISS_DA is not set
387# CONFIG_BLK_DEV_DAC960 is not set
388# CONFIG_BLK_DEV_UMEM is not set
389# CONFIG_BLK_DEV_COW_COMMON is not set
390CONFIG_BLK_DEV_LOOP=y
391# CONFIG_BLK_DEV_CRYPTOLOOP is not set
392# CONFIG_BLK_DEV_NBD is not set
393# CONFIG_BLK_DEV_SX8 is not set
394CONFIG_BLK_DEV_RAM=y
395CONFIG_BLK_DEV_RAM_COUNT=16
396CONFIG_BLK_DEV_RAM_SIZE=8192
397CONFIG_BLK_DEV_INITRD=y
398# CONFIG_CDROM_PKTCDVD is not set
399# CONFIG_ATA_OVER_ETH is not set
400
401#
402# SCSI device support
403#
404# CONFIG_RAID_ATTRS is not set
405# CONFIG_SCSI is not set
406
407#
408# Multi-device support (RAID and LVM)
409#
410# CONFIG_MD is not set
411
412#
413# Fusion MPT device support
414#
415# CONFIG_FUSION is not set
416
417#
418# IEEE 1394 (FireWire) support
419#
420# CONFIG_IEEE1394 is not set
421
422#
423# I2O device support
424#
425# CONFIG_I2O is not set
426
427#
428# Network device support
429#
430CONFIG_NETDEVICES=y
431CONFIG_DUMMY=y
432# CONFIG_BONDING is not set
433# CONFIG_EQUALIZER is not set
434# CONFIG_TUN is not set
435
436#
437# ARCnet devices
438#
439# CONFIG_ARCNET is not set
440
441#
442# PHY device support
443#
444# CONFIG_PHYLIB is not set
445
446#
447# Ethernet (10 or 100Mbit)
448#
449CONFIG_NET_ETHERNET=y
450CONFIG_MII=y
451# CONFIG_HAPPYMEAL is not set
452# CONFIG_SUNGEM is not set
453# CONFIG_CASSINI is not set
454# CONFIG_NET_VENDOR_3COM is not set
455# CONFIG_SMC91X is not set
456# CONFIG_DM9000 is not set
457
458#
459# Tulip family network device support
460#
461# CONFIG_NET_TULIP is not set
462# CONFIG_HP100 is not set
463CONFIG_NET_PCI=y
464# CONFIG_PCNET32 is not set
465# CONFIG_AMD8111_ETH is not set
466# CONFIG_ADAPTEC_STARFIRE is not set
467# CONFIG_B44 is not set
468# CONFIG_FORCEDETH is not set
469CONFIG_CS89x0=y
470# CONFIG_DGRS is not set
471CONFIG_EEPRO100=y
472# CONFIG_E100 is not set
473# CONFIG_FEALNX is not set
474# CONFIG_NATSEMI is not set
475# CONFIG_NE2K_PCI is not set
476# CONFIG_8139CP is not set
477# CONFIG_8139TOO is not set
478# CONFIG_SIS900 is not set
479# CONFIG_EPIC100 is not set
480# CONFIG_SUNDANCE is not set
481# CONFIG_TLAN is not set
482# CONFIG_VIA_RHINE is not set
483
484#
485# Ethernet (1000 Mbit)
486#
487# CONFIG_ACENIC is not set
488# CONFIG_DL2K is not set
489# CONFIG_E1000 is not set
490# CONFIG_NS83820 is not set
491# CONFIG_HAMACHI is not set
492# CONFIG_YELLOWFIN is not set
493# CONFIG_R8169 is not set
494# CONFIG_SIS190 is not set
495# CONFIG_SKGE is not set
496# CONFIG_SK98LIN is not set
497# CONFIG_VIA_VELOCITY is not set
498# CONFIG_TIGON3 is not set
499# CONFIG_BNX2 is not set
500
501#
502# Ethernet (10000 Mbit)
503#
504# CONFIG_CHELSIO_T1 is not set
505# CONFIG_IXGB is not set
506# CONFIG_S2IO is not set
507
508#
509# Token Ring devices
510#
511# CONFIG_TR is not set
512
513#
514# Wireless LAN (non-hamradio)
515#
516# CONFIG_NET_RADIO is not set
517
518#
519# Wan interfaces
520#
521CONFIG_WAN=y
522# CONFIG_DSCC4 is not set
523# CONFIG_LANMEDIA is not set
524# CONFIG_SYNCLINK_SYNCPPP is not set
525CONFIG_HDLC=y
526CONFIG_HDLC_RAW=y
527# CONFIG_HDLC_RAW_ETH is not set
528CONFIG_HDLC_CISCO=y
529CONFIG_HDLC_FR=y
530CONFIG_HDLC_PPP=y
531
532#
533# X.25/LAPB support is disabled
534#
535# CONFIG_PCI200SYN is not set
536# CONFIG_WANXL is not set
537# CONFIG_PC300 is not set
538# CONFIG_FARSYNC is not set
539CONFIG_DLCI=y
540CONFIG_DLCI_COUNT=24
541CONFIG_DLCI_MAX=8
542# CONFIG_FDDI is not set
543# CONFIG_HIPPI is not set
544# CONFIG_PPP is not set
545# CONFIG_SLIP is not set
546# CONFIG_SHAPER is not set
547# CONFIG_NETCONSOLE is not set
548# CONFIG_NETPOLL is not set
549# CONFIG_NET_POLL_CONTROLLER is not set
550
551#
552# ISDN subsystem
553#
554# CONFIG_ISDN is not set
555
556#
557# Input device support
558#
559CONFIG_INPUT=y
560
561#
562# Userland interfaces
563#
564CONFIG_INPUT_MOUSEDEV=y
565CONFIG_INPUT_MOUSEDEV_PSAUX=y
566CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
567CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
568# CONFIG_INPUT_JOYDEV is not set
569# CONFIG_INPUT_TSDEV is not set
570# CONFIG_INPUT_EVDEV is not set
571# CONFIG_INPUT_EVBUG is not set
572
573#
574# Input Device Drivers
575#
576# CONFIG_INPUT_KEYBOARD is not set
577# CONFIG_INPUT_MOUSE is not set
578# CONFIG_INPUT_JOYSTICK is not set
579# CONFIG_INPUT_TOUCHSCREEN is not set
580# CONFIG_INPUT_MISC is not set
581
582#
583# Hardware I/O ports
584#
585# CONFIG_SERIO is not set
586# CONFIG_GAMEPORT is not set
587
588#
589# Character devices
590#
591# CONFIG_VT is not set
592# CONFIG_SERIAL_NONSTANDARD is not set
593
594#
595# Serial drivers
596#
597CONFIG_SERIAL_8250=y
598CONFIG_SERIAL_8250_CONSOLE=y
599CONFIG_SERIAL_8250_NR_UARTS=3
600# CONFIG_SERIAL_8250_EXTENDED is not set
601
602#
603# Non-8250 serial port support
604#
605CONFIG_SERIAL_CORE=y
606CONFIG_SERIAL_CORE_CONSOLE=y
607# CONFIG_SERIAL_JSM is not set
608CONFIG_UNIX98_PTYS=y
609CONFIG_LEGACY_PTYS=y
610CONFIG_LEGACY_PTY_COUNT=256
611
612#
613# IPMI
614#
615# CONFIG_IPMI_HANDLER is not set
616
617#
618# Watchdog Cards
619#
620CONFIG_WATCHDOG=y
621# CONFIG_WATCHDOG_NOWAYOUT is not set
622
623#
624# Watchdog Device Drivers
625#
626# CONFIG_SOFT_WATCHDOG is not set
627CONFIG_IXP2000_WATCHDOG=y
628
629#
630# PCI-based Watchdog Cards
631#
632# CONFIG_PCIPCWATCHDOG is not set
633# CONFIG_WDTPCI is not set
634# CONFIG_NVRAM is not set
635# CONFIG_RTC is not set
636# CONFIG_DTLK is not set
637# CONFIG_R3964 is not set
638# CONFIG_APPLICOM is not set
639
640#
641# Ftape, the floppy tape device driver
642#
643# CONFIG_DRM is not set
644# CONFIG_RAW_DRIVER is not set
645
646#
647# TPM devices
648#
649# CONFIG_TCG_TPM is not set
650# CONFIG_TELCLOCK is not set
651
652#
653# I2C support
654#
655CONFIG_I2C=y
656CONFIG_I2C_CHARDEV=y
657
658#
659# I2C Algorithms
660#
661CONFIG_I2C_ALGOBIT=y
662# CONFIG_I2C_ALGOPCF is not set
663# CONFIG_I2C_ALGOPCA is not set
664
665#
666# I2C Hardware Bus support
667#
668# CONFIG_I2C_ALI1535 is not set
669# CONFIG_I2C_ALI1563 is not set
670# CONFIG_I2C_ALI15X3 is not set
671# CONFIG_I2C_AMD756 is not set
672# CONFIG_I2C_AMD8111 is not set
673# CONFIG_I2C_I801 is not set
674# CONFIG_I2C_I810 is not set
675# CONFIG_I2C_PIIX4 is not set
676CONFIG_I2C_IXP2000=y
677# CONFIG_I2C_NFORCE2 is not set
678# CONFIG_I2C_PARPORT_LIGHT is not set
679# CONFIG_I2C_PROSAVAGE is not set
680# CONFIG_I2C_SAVAGE4 is not set
681# CONFIG_SCx200_ACB is not set
682# CONFIG_I2C_SIS5595 is not set
683# CONFIG_I2C_SIS630 is not set
684# CONFIG_I2C_SIS96X is not set
685# CONFIG_I2C_STUB is not set
686# CONFIG_I2C_VIA is not set
687# CONFIG_I2C_VIAPRO is not set
688# CONFIG_I2C_VOODOO3 is not set
689# CONFIG_I2C_PCA_ISA is not set
690
691#
692# Miscellaneous I2C Chip support
693#
694# CONFIG_SENSORS_DS1337 is not set
695# CONFIG_SENSORS_DS1374 is not set
696CONFIG_SENSORS_EEPROM=y
697# CONFIG_SENSORS_PCF8574 is not set
698# CONFIG_SENSORS_PCA9539 is not set
699# CONFIG_SENSORS_PCF8591 is not set
700# CONFIG_SENSORS_RTC8564 is not set
701# CONFIG_SENSORS_MAX6875 is not set
702# CONFIG_RTC_X1205_I2C is not set
703# CONFIG_I2C_DEBUG_CORE is not set
704# CONFIG_I2C_DEBUG_ALGO is not set
705# CONFIG_I2C_DEBUG_BUS is not set
706# CONFIG_I2C_DEBUG_CHIP is not set
707
708#
709# Hardware Monitoring support
710#
711CONFIG_HWMON=y
712# CONFIG_HWMON_VID is not set
713# CONFIG_SENSORS_ADM1021 is not set
714# CONFIG_SENSORS_ADM1025 is not set
715# CONFIG_SENSORS_ADM1026 is not set
716# CONFIG_SENSORS_ADM1031 is not set
717# CONFIG_SENSORS_ADM9240 is not set
718# CONFIG_SENSORS_ASB100 is not set
719# CONFIG_SENSORS_ATXP1 is not set
720# CONFIG_SENSORS_DS1621 is not set
721# CONFIG_SENSORS_FSCHER is not set
722# CONFIG_SENSORS_FSCPOS is not set
723# CONFIG_SENSORS_GL518SM is not set
724# CONFIG_SENSORS_GL520SM is not set
725# CONFIG_SENSORS_IT87 is not set
726# CONFIG_SENSORS_LM63 is not set
727# CONFIG_SENSORS_LM75 is not set
728# CONFIG_SENSORS_LM77 is not set
729# CONFIG_SENSORS_LM78 is not set
730# CONFIG_SENSORS_LM80 is not set
731# CONFIG_SENSORS_LM83 is not set
732# CONFIG_SENSORS_LM85 is not set
733# CONFIG_SENSORS_LM87 is not set
734# CONFIG_SENSORS_LM90 is not set
735# CONFIG_SENSORS_LM92 is not set
736# CONFIG_SENSORS_MAX1619 is not set
737# CONFIG_SENSORS_PC87360 is not set
738# CONFIG_SENSORS_SIS5595 is not set
739# CONFIG_SENSORS_SMSC47M1 is not set
740# CONFIG_SENSORS_SMSC47B397 is not set
741# CONFIG_SENSORS_VIA686A is not set
742# CONFIG_SENSORS_W83781D is not set
743# CONFIG_SENSORS_W83792D is not set
744# CONFIG_SENSORS_W83L785TS is not set
745# CONFIG_SENSORS_W83627HF is not set
746# CONFIG_SENSORS_W83627EHF is not set
747# CONFIG_HWMON_DEBUG_CHIP is not set
748
749#
750# Misc devices
751#
752
753#
754# Multimedia Capabilities Port drivers
755#
756
757#
758# Multimedia devices
759#
760# CONFIG_VIDEO_DEV is not set
761
762#
763# Digital Video Broadcasting Devices
764#
765# CONFIG_DVB is not set
766
767#
768# Graphics support
769#
770# CONFIG_FB is not set
771
772#
773# Sound
774#
775# CONFIG_SOUND is not set
776
777#
778# USB support
779#
780CONFIG_USB_ARCH_HAS_HCD=y
781CONFIG_USB_ARCH_HAS_OHCI=y
782# CONFIG_USB is not set
783
784#
785# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
786#
787
788#
789# USB Gadget Support
790#
791# CONFIG_USB_GADGET is not set
792
793#
794# MMC/SD Card support
795#
796# CONFIG_MMC is not set
797
798#
799# File systems
800#
801CONFIG_EXT2_FS=y
802CONFIG_EXT2_FS_XATTR=y
803CONFIG_EXT2_FS_POSIX_ACL=y
804# CONFIG_EXT2_FS_SECURITY is not set
805# CONFIG_EXT2_FS_XIP is not set
806CONFIG_EXT3_FS=y
807CONFIG_EXT3_FS_XATTR=y
808CONFIG_EXT3_FS_POSIX_ACL=y
809# CONFIG_EXT3_FS_SECURITY is not set
810CONFIG_JBD=y
811# CONFIG_JBD_DEBUG is not set
812CONFIG_FS_MBCACHE=y
813# CONFIG_REISERFS_FS is not set
814# CONFIG_JFS_FS is not set
815CONFIG_FS_POSIX_ACL=y
816# CONFIG_XFS_FS is not set
817# CONFIG_MINIX_FS is not set
818# CONFIG_ROMFS_FS is not set
819CONFIG_INOTIFY=y
820# CONFIG_QUOTA is not set
821CONFIG_DNOTIFY=y
822# CONFIG_AUTOFS_FS is not set
823# CONFIG_AUTOFS4_FS is not set
824# CONFIG_FUSE_FS is not set
825
826#
827# CD-ROM/DVD Filesystems
828#
829# CONFIG_ISO9660_FS is not set
830# CONFIG_UDF_FS is not set
831
832#
833# DOS/FAT/NT Filesystems
834#
835# CONFIG_MSDOS_FS is not set
836# CONFIG_VFAT_FS is not set
837# CONFIG_NTFS_FS is not set
838
839#
840# Pseudo filesystems
841#
842CONFIG_PROC_FS=y
843CONFIG_SYSFS=y
844CONFIG_TMPFS=y
845# CONFIG_HUGETLB_PAGE is not set
846CONFIG_RAMFS=y
847# CONFIG_RELAYFS_FS is not set
848
849#
850# Miscellaneous filesystems
851#
852# CONFIG_ADFS_FS is not set
853# CONFIG_AFFS_FS is not set
854# CONFIG_HFS_FS is not set
855# CONFIG_HFSPLUS_FS is not set
856# CONFIG_BEFS_FS is not set
857# CONFIG_BFS_FS is not set
858# CONFIG_EFS_FS is not set
859# CONFIG_JFFS_FS is not set
860CONFIG_JFFS2_FS=y
861CONFIG_JFFS2_FS_DEBUG=0
862CONFIG_JFFS2_FS_WRITEBUFFER=y
863# CONFIG_JFFS2_SUMMARY is not set
864# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
865CONFIG_JFFS2_ZLIB=y
866CONFIG_JFFS2_RTIME=y
867# CONFIG_JFFS2_RUBIN is not set
868# CONFIG_CRAMFS is not set
869# CONFIG_VXFS_FS is not set
870# CONFIG_HPFS_FS is not set
871# CONFIG_QNX4FS_FS is not set
872# CONFIG_SYSV_FS is not set
873# CONFIG_UFS_FS is not set
874
875#
876# Network File Systems
877#
878CONFIG_NFS_FS=y
879CONFIG_NFS_V3=y
880# CONFIG_NFS_V3_ACL is not set
881# CONFIG_NFS_V4 is not set
882# CONFIG_NFS_DIRECTIO is not set
883# CONFIG_NFSD is not set
884CONFIG_ROOT_NFS=y
885CONFIG_LOCKD=y
886CONFIG_LOCKD_V4=y
887CONFIG_NFS_COMMON=y
888CONFIG_SUNRPC=y
889# CONFIG_RPCSEC_GSS_KRB5 is not set
890# CONFIG_RPCSEC_GSS_SPKM3 is not set
891# CONFIG_SMB_FS is not set
892# CONFIG_CIFS is not set
893# CONFIG_NCP_FS is not set
894# CONFIG_CODA_FS is not set
895# CONFIG_AFS_FS is not set
896# CONFIG_9P_FS is not set
897
898#
899# Partition Types
900#
901CONFIG_PARTITION_ADVANCED=y
902# CONFIG_ACORN_PARTITION is not set
903# CONFIG_OSF_PARTITION is not set
904# CONFIG_AMIGA_PARTITION is not set
905# CONFIG_ATARI_PARTITION is not set
906# CONFIG_MAC_PARTITION is not set
907CONFIG_MSDOS_PARTITION=y
908# CONFIG_BSD_DISKLABEL is not set
909# CONFIG_MINIX_SUBPARTITION is not set
910# CONFIG_SOLARIS_X86_PARTITION is not set
911# CONFIG_UNIXWARE_DISKLABEL is not set
912# CONFIG_LDM_PARTITION is not set
913# CONFIG_SGI_PARTITION is not set
914# CONFIG_ULTRIX_PARTITION is not set
915# CONFIG_SUN_PARTITION is not set
916# CONFIG_EFI_PARTITION is not set
917
918#
919# Native Language Support
920#
921# CONFIG_NLS is not set
922
923#
924# Profiling support
925#
926# CONFIG_PROFILING is not set
927
928#
929# Kernel hacking
930#
931# CONFIG_PRINTK_TIME is not set
932CONFIG_DEBUG_KERNEL=y
933CONFIG_MAGIC_SYSRQ=y
934CONFIG_LOG_BUF_SHIFT=14
935CONFIG_DETECT_SOFTLOCKUP=y
936# CONFIG_SCHEDSTATS is not set
937# CONFIG_DEBUG_SLAB is not set
938# CONFIG_DEBUG_SPINLOCK is not set
939# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
940# CONFIG_DEBUG_KOBJECT is not set
941CONFIG_DEBUG_BUGVERBOSE=y
942# CONFIG_DEBUG_INFO is not set
943# CONFIG_DEBUG_FS is not set
944# CONFIG_DEBUG_VM is not set
945CONFIG_FRAME_POINTER=y
946# CONFIG_RCU_TORTURE_TEST is not set
947CONFIG_DEBUG_USER=y
948# CONFIG_DEBUG_WAITQ is not set
949CONFIG_DEBUG_ERRORS=y
950CONFIG_DEBUG_LL=y
951# CONFIG_DEBUG_ICEDCC is not set
952
953#
954# Security options
955#
956# CONFIG_KEYS is not set
957# CONFIG_SECURITY is not set
958
959#
960# Cryptographic options
961#
962# CONFIG_CRYPTO is not set
963
964#
965# Hardware crypto devices
966#
967
968#
969# Library routines
970#
971# CONFIG_CRC_CCITT is not set
972# CONFIG_CRC16 is not set
973CONFIG_CRC32=y
974# CONFIG_LIBCRC32C is not set
975CONFIG_ZLIB_INFLATE=y
976CONFIG_ZLIB_DEFLATE=y
diff --git a/arch/arm/configs/ixdp2800_defconfig b/arch/arm/configs/ixdp2800_defconfig
deleted file mode 100644
index 4248123815e9..000000000000
--- a/arch/arm/configs/ixdp2800_defconfig
+++ /dev/null
@@ -1,975 +0,0 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.14-git13
4# Thu Nov 10 15:14:56 2005
5#
6CONFIG_ARM=y
7CONFIG_MMU=y
8CONFIG_UID16=y
9CONFIG_RWSEM_GENERIC_SPINLOCK=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y
11
12#
13# Code maturity level options
14#
15CONFIG_EXPERIMENTAL=y
16CONFIG_CLEAN_COMPILE=y
17CONFIG_BROKEN_ON_SMP=y
18CONFIG_INIT_ENV_ARG_LIMIT=32
19
20#
21# General setup
22#
23CONFIG_LOCALVERSION=""
24CONFIG_LOCALVERSION_AUTO=y
25CONFIG_SWAP=y
26CONFIG_SYSVIPC=y
27# CONFIG_POSIX_MQUEUE is not set
28CONFIG_BSD_PROCESS_ACCT=y
29# CONFIG_BSD_PROCESS_ACCT_V3 is not set
30CONFIG_SYSCTL=y
31# CONFIG_AUDIT is not set
32# CONFIG_HOTPLUG is not set
33CONFIG_KOBJECT_UEVENT=y
34# CONFIG_IKCONFIG is not set
35CONFIG_INITRAMFS_SOURCE=""
36CONFIG_EMBEDDED=y
37CONFIG_KALLSYMS=y
38# CONFIG_KALLSYMS_ALL is not set
39# CONFIG_KALLSYMS_EXTRA_PASS is not set
40CONFIG_PRINTK=y
41CONFIG_BUG=y
42CONFIG_BASE_FULL=y
43CONFIG_FUTEX=y
44CONFIG_EPOLL=y
45CONFIG_CC_OPTIMIZE_FOR_SIZE=y
46CONFIG_SHMEM=y
47CONFIG_CC_ALIGN_FUNCTIONS=0
48CONFIG_CC_ALIGN_LABELS=0
49CONFIG_CC_ALIGN_LOOPS=0
50CONFIG_CC_ALIGN_JUMPS=0
51# CONFIG_TINY_SHMEM is not set
52CONFIG_BASE_SMALL=0
53
54#
55# Loadable module support
56#
57CONFIG_MODULES=y
58CONFIG_MODULE_UNLOAD=y
59# CONFIG_MODULE_FORCE_UNLOAD is not set
60CONFIG_OBSOLETE_MODPARM=y
61# CONFIG_MODVERSIONS is not set
62# CONFIG_MODULE_SRCVERSION_ALL is not set
63CONFIG_KMOD=y
64
65#
66# Block layer
67#
68
69#
70# IO Schedulers
71#
72CONFIG_IOSCHED_NOOP=y
73CONFIG_IOSCHED_AS=y
74CONFIG_IOSCHED_DEADLINE=y
75CONFIG_IOSCHED_CFQ=y
76CONFIG_DEFAULT_AS=y
77# CONFIG_DEFAULT_DEADLINE is not set
78# CONFIG_DEFAULT_CFQ is not set
79# CONFIG_DEFAULT_NOOP is not set
80CONFIG_DEFAULT_IOSCHED="anticipatory"
81
82#
83# System Type
84#
85# CONFIG_ARCH_CLPS7500 is not set
86# CONFIG_ARCH_CLPS711X is not set
87# CONFIG_ARCH_CO285 is not set
88# CONFIG_ARCH_EBSA110 is not set
89# CONFIG_ARCH_FOOTBRIDGE is not set
90# CONFIG_ARCH_INTEGRATOR is not set
91# CONFIG_ARCH_IOP3XX is not set
92# CONFIG_ARCH_IXP4XX is not set
93CONFIG_ARCH_IXP2000=y
94# CONFIG_ARCH_L7200 is not set
95# CONFIG_ARCH_PXA is not set
96# CONFIG_ARCH_RPC is not set
97# CONFIG_ARCH_SA1100 is not set
98# CONFIG_ARCH_S3C2410 is not set
99# CONFIG_ARCH_SHARK is not set
100# CONFIG_ARCH_LH7A40X is not set
101# CONFIG_ARCH_OMAP is not set
102# CONFIG_ARCH_VERSATILE is not set
103# CONFIG_ARCH_REALVIEW is not set
104# CONFIG_ARCH_IMX is not set
105# CONFIG_ARCH_H720X is not set
106# CONFIG_ARCH_AAEC2000 is not set
107CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
108
109#
110# Intel IXP2400/2800 Implementation Options
111#
112
113#
114# IXP2400/2800 Platforms
115#
116# CONFIG_ARCH_ENP2611 is not set
117# CONFIG_ARCH_IXDP2400 is not set
118CONFIG_ARCH_IXDP2800=y
119CONFIG_ARCH_IXDP2X00=y
120# CONFIG_ARCH_IXDP2401 is not set
121# CONFIG_ARCH_IXDP2801 is not set
122# CONFIG_IXP2000_SUPPORT_BROKEN_PCI_IO is not set
123
124#
125# Processor Type
126#
127CONFIG_CPU_32=y
128CONFIG_CPU_XSCALE=y
129CONFIG_CPU_32v5=y
130CONFIG_CPU_ABRT_EV5T=y
131CONFIG_CPU_CACHE_VIVT=y
132CONFIG_CPU_TLB_V4WBI=y
133
134#
135# Processor Features
136#
137# CONFIG_ARM_THUMB is not set
138CONFIG_CPU_BIG_ENDIAN=y
139CONFIG_XSCALE_PMU=y
140
141#
142# Bus support
143#
144CONFIG_ISA_DMA_API=y
145CONFIG_PCI=y
146CONFIG_PCI_LEGACY_PROC=y
147# CONFIG_PCI_DEBUG is not set
148
149#
150# PCCARD (PCMCIA/CardBus) support
151#
152# CONFIG_PCCARD is not set
153
154#
155# Kernel Features
156#
157# CONFIG_PREEMPT is not set
158# CONFIG_NO_IDLE_HZ is not set
159# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
160CONFIG_SELECT_MEMORY_MODEL=y
161CONFIG_FLATMEM_MANUAL=y
162# CONFIG_DISCONTIGMEM_MANUAL is not set
163# CONFIG_SPARSEMEM_MANUAL is not set
164CONFIG_FLATMEM=y
165CONFIG_FLAT_NODE_MEM_MAP=y
166# CONFIG_SPARSEMEM_STATIC is not set
167CONFIG_SPLIT_PTLOCK_CPUS=4096
168CONFIG_ALIGNMENT_TRAP=y
169
170#
171# Boot options
172#
173CONFIG_ZBOOT_ROM_TEXT=0x0
174CONFIG_ZBOOT_ROM_BSS=0x0
175CONFIG_CMDLINE="console=ttyS0,9600 root=/dev/nfs ip=bootp mem=64M@0x0"
176# CONFIG_XIP_KERNEL is not set
177
178#
179# Floating point emulation
180#
181
182#
183# At least one emulation must be selected
184#
185CONFIG_FPE_NWFPE=y
186CONFIG_FPE_NWFPE_XP=y
187# CONFIG_FPE_FASTFPE is not set
188
189#
190# Userspace binary formats
191#
192CONFIG_BINFMT_ELF=y
193# CONFIG_BINFMT_AOUT is not set
194# CONFIG_BINFMT_MISC is not set
195# CONFIG_ARTHUR is not set
196
197#
198# Power management options
199#
200# CONFIG_PM is not set
201
202#
203# Networking
204#
205CONFIG_NET=y
206
207#
208# Networking options
209#
210CONFIG_PACKET=y
211CONFIG_PACKET_MMAP=y
212CONFIG_UNIX=y
213# CONFIG_NET_KEY is not set
214CONFIG_INET=y
215# CONFIG_IP_MULTICAST is not set
216# CONFIG_IP_ADVANCED_ROUTER is not set
217CONFIG_IP_FIB_HASH=y
218CONFIG_IP_PNP=y
219CONFIG_IP_PNP_DHCP=y
220CONFIG_IP_PNP_BOOTP=y
221# CONFIG_IP_PNP_RARP is not set
222# CONFIG_NET_IPIP is not set
223# CONFIG_NET_IPGRE is not set
224# CONFIG_ARPD is not set
225CONFIG_SYN_COOKIES=y
226# CONFIG_INET_AH is not set
227# CONFIG_INET_ESP is not set
228# CONFIG_INET_IPCOMP is not set
229# CONFIG_INET_TUNNEL is not set
230CONFIG_INET_DIAG=y
231CONFIG_INET_TCP_DIAG=y
232# CONFIG_TCP_CONG_ADVANCED is not set
233CONFIG_TCP_CONG_BIC=y
234# CONFIG_IPV6 is not set
235# CONFIG_NETFILTER is not set
236
237#
238# DCCP Configuration (EXPERIMENTAL)
239#
240# CONFIG_IP_DCCP is not set
241
242#
243# SCTP Configuration (EXPERIMENTAL)
244#
245# CONFIG_IP_SCTP is not set
246# CONFIG_ATM is not set
247# CONFIG_BRIDGE is not set
248# CONFIG_VLAN_8021Q is not set
249# CONFIG_DECNET is not set
250# CONFIG_LLC2 is not set
251# CONFIG_IPX is not set
252# CONFIG_ATALK is not set
253# CONFIG_X25 is not set
254# CONFIG_LAPB is not set
255# CONFIG_NET_DIVERT is not set
256# CONFIG_ECONET is not set
257# CONFIG_WAN_ROUTER is not set
258
259#
260# QoS and/or fair queueing
261#
262# CONFIG_NET_SCHED is not set
263# CONFIG_NET_CLS_ROUTE is not set
264
265#
266# Network testing
267#
268# CONFIG_NET_PKTGEN is not set
269# CONFIG_HAMRADIO is not set
270# CONFIG_IRDA is not set
271# CONFIG_BT is not set
272# CONFIG_IEEE80211 is not set
273
274#
275# Device Drivers
276#
277
278#
279# Generic Driver Options
280#
281CONFIG_STANDALONE=y
282# CONFIG_PREVENT_FIRMWARE_BUILD is not set
283# CONFIG_FW_LOADER is not set
284# CONFIG_DEBUG_DRIVER is not set
285
286#
287# Memory Technology Devices (MTD)
288#
289CONFIG_MTD=y
290# CONFIG_MTD_DEBUG is not set
291# CONFIG_MTD_CONCAT is not set
292CONFIG_MTD_PARTITIONS=y
293CONFIG_MTD_REDBOOT_PARTS=y
294CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
295CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
296CONFIG_MTD_REDBOOT_PARTS_READONLY=y
297# CONFIG_MTD_CMDLINE_PARTS is not set
298# CONFIG_MTD_AFS_PARTS is not set
299
300#
301# User Modules And Translation Layers
302#
303CONFIG_MTD_CHAR=y
304CONFIG_MTD_BLOCK=y
305# CONFIG_FTL is not set
306# CONFIG_NFTL is not set
307# CONFIG_INFTL is not set
308# CONFIG_RFD_FTL is not set
309
310#
311# RAM/ROM/Flash chip drivers
312#
313CONFIG_MTD_CFI=y
314# CONFIG_MTD_JEDECPROBE is not set
315CONFIG_MTD_GEN_PROBE=y
316# CONFIG_MTD_CFI_ADV_OPTIONS is not set
317CONFIG_MTD_MAP_BANK_WIDTH_1=y
318CONFIG_MTD_MAP_BANK_WIDTH_2=y
319CONFIG_MTD_MAP_BANK_WIDTH_4=y
320# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
321# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
322# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
323CONFIG_MTD_CFI_I1=y
324CONFIG_MTD_CFI_I2=y
325# CONFIG_MTD_CFI_I4 is not set
326# CONFIG_MTD_CFI_I8 is not set
327CONFIG_MTD_CFI_INTELEXT=y
328# CONFIG_MTD_CFI_AMDSTD is not set
329# CONFIG_MTD_CFI_STAA is not set
330CONFIG_MTD_CFI_UTIL=y
331# CONFIG_MTD_RAM is not set
332# CONFIG_MTD_ROM is not set
333# CONFIG_MTD_ABSENT is not set
334# CONFIG_MTD_XIP is not set
335
336#
337# Mapping drivers for chip access
338#
339CONFIG_MTD_COMPLEX_MAPPINGS=y
340# CONFIG_MTD_PHYSMAP is not set
341# CONFIG_MTD_ARM_INTEGRATOR is not set
342CONFIG_MTD_IXP2000=y
343# CONFIG_MTD_PCI is not set
344# CONFIG_MTD_PLATRAM is not set
345
346#
347# Self-contained MTD device drivers
348#
349# CONFIG_MTD_PMC551 is not set
350# CONFIG_MTD_SLRAM is not set
351# CONFIG_MTD_PHRAM is not set
352# CONFIG_MTD_MTDRAM is not set
353# CONFIG_MTD_BLKMTD is not set
354# CONFIG_MTD_BLOCK2MTD is not set
355
356#
357# Disk-On-Chip Device Drivers
358#
359# CONFIG_MTD_DOC2000 is not set
360# CONFIG_MTD_DOC2001 is not set
361# CONFIG_MTD_DOC2001PLUS is not set
362
363#
364# NAND Flash Device Drivers
365#
366# CONFIG_MTD_NAND is not set
367
368#
369# OneNAND Flash Device Drivers
370#
371# CONFIG_MTD_ONENAND is not set
372
373#
374# Parallel port support
375#
376# CONFIG_PARPORT is not set
377
378#
379# Plug and Play support
380#
381
382#
383# Block devices
384#
385# CONFIG_BLK_CPQ_DA is not set
386# CONFIG_BLK_CPQ_CISS_DA is not set
387# CONFIG_BLK_DEV_DAC960 is not set
388# CONFIG_BLK_DEV_UMEM is not set
389# CONFIG_BLK_DEV_COW_COMMON is not set
390CONFIG_BLK_DEV_LOOP=y
391# CONFIG_BLK_DEV_CRYPTOLOOP is not set
392# CONFIG_BLK_DEV_NBD is not set
393# CONFIG_BLK_DEV_SX8 is not set
394CONFIG_BLK_DEV_RAM=y
395CONFIG_BLK_DEV_RAM_COUNT=16
396CONFIG_BLK_DEV_RAM_SIZE=8192
397CONFIG_BLK_DEV_INITRD=y
398# CONFIG_CDROM_PKTCDVD is not set
399# CONFIG_ATA_OVER_ETH is not set
400
401#
402# SCSI device support
403#
404# CONFIG_RAID_ATTRS is not set
405# CONFIG_SCSI is not set
406
407#
408# Multi-device support (RAID and LVM)
409#
410# CONFIG_MD is not set
411
412#
413# Fusion MPT device support
414#
415# CONFIG_FUSION is not set
416
417#
418# IEEE 1394 (FireWire) support
419#
420# CONFIG_IEEE1394 is not set
421
422#
423# I2O device support
424#
425# CONFIG_I2O is not set
426
427#
428# Network device support
429#
430CONFIG_NETDEVICES=y
431CONFIG_DUMMY=y
432# CONFIG_BONDING is not set
433# CONFIG_EQUALIZER is not set
434# CONFIG_TUN is not set
435
436#
437# ARCnet devices
438#
439# CONFIG_ARCNET is not set
440
441#
442# PHY device support
443#
444# CONFIG_PHYLIB is not set
445
446#
447# Ethernet (10 or 100Mbit)
448#
449CONFIG_NET_ETHERNET=y
450CONFIG_MII=y
451# CONFIG_HAPPYMEAL is not set
452# CONFIG_SUNGEM is not set
453# CONFIG_CASSINI is not set
454# CONFIG_NET_VENDOR_3COM is not set
455# CONFIG_SMC91X is not set
456# CONFIG_DM9000 is not set
457
458#
459# Tulip family network device support
460#
461# CONFIG_NET_TULIP is not set
462# CONFIG_HP100 is not set
463CONFIG_NET_PCI=y
464# CONFIG_PCNET32 is not set
465# CONFIG_AMD8111_ETH is not set
466# CONFIG_ADAPTEC_STARFIRE is not set
467# CONFIG_B44 is not set
468# CONFIG_FORCEDETH is not set
469# CONFIG_DGRS is not set
470CONFIG_EEPRO100=y
471# CONFIG_E100 is not set
472# CONFIG_FEALNX is not set
473# CONFIG_NATSEMI is not set
474# CONFIG_NE2K_PCI is not set
475# CONFIG_8139CP is not set
476# CONFIG_8139TOO is not set
477# CONFIG_SIS900 is not set
478# CONFIG_EPIC100 is not set
479# CONFIG_SUNDANCE is not set
480# CONFIG_TLAN is not set
481# CONFIG_VIA_RHINE is not set
482
483#
484# Ethernet (1000 Mbit)
485#
486# CONFIG_ACENIC is not set
487# CONFIG_DL2K is not set
488# CONFIG_E1000 is not set
489# CONFIG_NS83820 is not set
490# CONFIG_HAMACHI is not set
491# CONFIG_YELLOWFIN is not set
492# CONFIG_R8169 is not set
493# CONFIG_SIS190 is not set
494# CONFIG_SKGE is not set
495# CONFIG_SK98LIN is not set
496# CONFIG_VIA_VELOCITY is not set
497# CONFIG_TIGON3 is not set
498# CONFIG_BNX2 is not set
499
500#
501# Ethernet (10000 Mbit)
502#
503# CONFIG_CHELSIO_T1 is not set
504# CONFIG_IXGB is not set
505# CONFIG_S2IO is not set
506
507#
508# Token Ring devices
509#
510# CONFIG_TR is not set
511
512#
513# Wireless LAN (non-hamradio)
514#
515# CONFIG_NET_RADIO is not set
516
517#
518# Wan interfaces
519#
520CONFIG_WAN=y
521# CONFIG_DSCC4 is not set
522# CONFIG_LANMEDIA is not set
523# CONFIG_SYNCLINK_SYNCPPP is not set
524CONFIG_HDLC=y
525CONFIG_HDLC_RAW=y
526# CONFIG_HDLC_RAW_ETH is not set
527CONFIG_HDLC_CISCO=y
528CONFIG_HDLC_FR=y
529CONFIG_HDLC_PPP=y
530
531#
532# X.25/LAPB support is disabled
533#
534# CONFIG_PCI200SYN is not set
535# CONFIG_WANXL is not set
536# CONFIG_PC300 is not set
537# CONFIG_FARSYNC is not set
538CONFIG_DLCI=y
539CONFIG_DLCI_COUNT=24
540CONFIG_DLCI_MAX=8
541# CONFIG_FDDI is not set
542# CONFIG_HIPPI is not set
543# CONFIG_PPP is not set
544# CONFIG_SLIP is not set
545# CONFIG_SHAPER is not set
546# CONFIG_NETCONSOLE is not set
547# CONFIG_NETPOLL is not set
548# CONFIG_NET_POLL_CONTROLLER is not set
549
550#
551# ISDN subsystem
552#
553# CONFIG_ISDN is not set
554
555#
556# Input device support
557#
558CONFIG_INPUT=y
559
560#
561# Userland interfaces
562#
563CONFIG_INPUT_MOUSEDEV=y
564CONFIG_INPUT_MOUSEDEV_PSAUX=y
565CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
566CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
567# CONFIG_INPUT_JOYDEV is not set
568# CONFIG_INPUT_TSDEV is not set
569# CONFIG_INPUT_EVDEV is not set
570# CONFIG_INPUT_EVBUG is not set
571
572#
573# Input Device Drivers
574#
575# CONFIG_INPUT_KEYBOARD is not set
576# CONFIG_INPUT_MOUSE is not set
577# CONFIG_INPUT_JOYSTICK is not set
578# CONFIG_INPUT_TOUCHSCREEN is not set
579# CONFIG_INPUT_MISC is not set
580
581#
582# Hardware I/O ports
583#
584# CONFIG_SERIO is not set
585# CONFIG_GAMEPORT is not set
586
587#
588# Character devices
589#
590# CONFIG_VT is not set
591# CONFIG_SERIAL_NONSTANDARD is not set
592
593#
594# Serial drivers
595#
596CONFIG_SERIAL_8250=y
597CONFIG_SERIAL_8250_CONSOLE=y
598CONFIG_SERIAL_8250_NR_UARTS=1
599# CONFIG_SERIAL_8250_EXTENDED is not set
600
601#
602# Non-8250 serial port support
603#
604CONFIG_SERIAL_CORE=y
605CONFIG_SERIAL_CORE_CONSOLE=y
606# CONFIG_SERIAL_JSM is not set
607CONFIG_UNIX98_PTYS=y
608CONFIG_LEGACY_PTYS=y
609CONFIG_LEGACY_PTY_COUNT=256
610
611#
612# IPMI
613#
614# CONFIG_IPMI_HANDLER is not set
615
616#
617# Watchdog Cards
618#
619CONFIG_WATCHDOG=y
620# CONFIG_WATCHDOG_NOWAYOUT is not set
621
622#
623# Watchdog Device Drivers
624#
625# CONFIG_SOFT_WATCHDOG is not set
626CONFIG_IXP2000_WATCHDOG=y
627
628#
629# PCI-based Watchdog Cards
630#
631# CONFIG_PCIPCWATCHDOG is not set
632# CONFIG_WDTPCI is not set
633# CONFIG_NVRAM is not set
634# CONFIG_RTC is not set
635# CONFIG_DTLK is not set
636# CONFIG_R3964 is not set
637# CONFIG_APPLICOM is not set
638
639#
640# Ftape, the floppy tape device driver
641#
642# CONFIG_DRM is not set
643# CONFIG_RAW_DRIVER is not set
644
645#
646# TPM devices
647#
648# CONFIG_TCG_TPM is not set
649# CONFIG_TELCLOCK is not set
650
651#
652# I2C support
653#
654CONFIG_I2C=y
655CONFIG_I2C_CHARDEV=y
656
657#
658# I2C Algorithms
659#
660CONFIG_I2C_ALGOBIT=y
661# CONFIG_I2C_ALGOPCF is not set
662# CONFIG_I2C_ALGOPCA is not set
663
664#
665# I2C Hardware Bus support
666#
667# CONFIG_I2C_ALI1535 is not set
668# CONFIG_I2C_ALI1563 is not set
669# CONFIG_I2C_ALI15X3 is not set
670# CONFIG_I2C_AMD756 is not set
671# CONFIG_I2C_AMD8111 is not set
672# CONFIG_I2C_I801 is not set
673# CONFIG_I2C_I810 is not set
674# CONFIG_I2C_PIIX4 is not set
675CONFIG_I2C_IXP2000=y
676# CONFIG_I2C_NFORCE2 is not set
677# CONFIG_I2C_PARPORT_LIGHT is not set
678# CONFIG_I2C_PROSAVAGE is not set
679# CONFIG_I2C_SAVAGE4 is not set
680# CONFIG_SCx200_ACB is not set
681# CONFIG_I2C_SIS5595 is not set
682# CONFIG_I2C_SIS630 is not set
683# CONFIG_I2C_SIS96X is not set
684# CONFIG_I2C_STUB is not set
685# CONFIG_I2C_VIA is not set
686# CONFIG_I2C_VIAPRO is not set
687# CONFIG_I2C_VOODOO3 is not set
688# CONFIG_I2C_PCA_ISA is not set
689
690#
691# Miscellaneous I2C Chip support
692#
693# CONFIG_SENSORS_DS1337 is not set
694# CONFIG_SENSORS_DS1374 is not set
695CONFIG_SENSORS_EEPROM=y
696# CONFIG_SENSORS_PCF8574 is not set
697# CONFIG_SENSORS_PCA9539 is not set
698# CONFIG_SENSORS_PCF8591 is not set
699# CONFIG_SENSORS_RTC8564 is not set
700# CONFIG_SENSORS_MAX6875 is not set
701# CONFIG_RTC_X1205_I2C is not set
702# CONFIG_I2C_DEBUG_CORE is not set
703# CONFIG_I2C_DEBUG_ALGO is not set
704# CONFIG_I2C_DEBUG_BUS is not set
705# CONFIG_I2C_DEBUG_CHIP is not set
706
707#
708# Hardware Monitoring support
709#
710CONFIG_HWMON=y
711# CONFIG_HWMON_VID is not set
712# CONFIG_SENSORS_ADM1021 is not set
713# CONFIG_SENSORS_ADM1025 is not set
714# CONFIG_SENSORS_ADM1026 is not set
715# CONFIG_SENSORS_ADM1031 is not set
716# CONFIG_SENSORS_ADM9240 is not set
717# CONFIG_SENSORS_ASB100 is not set
718# CONFIG_SENSORS_ATXP1 is not set
719# CONFIG_SENSORS_DS1621 is not set
720# CONFIG_SENSORS_FSCHER is not set
721# CONFIG_SENSORS_FSCPOS is not set
722# CONFIG_SENSORS_GL518SM is not set
723# CONFIG_SENSORS_GL520SM is not set
724# CONFIG_SENSORS_IT87 is not set
725# CONFIG_SENSORS_LM63 is not set
726# CONFIG_SENSORS_LM75 is not set
727# CONFIG_SENSORS_LM77 is not set
728# CONFIG_SENSORS_LM78 is not set
729# CONFIG_SENSORS_LM80 is not set
730# CONFIG_SENSORS_LM83 is not set
731# CONFIG_SENSORS_LM85 is not set
732# CONFIG_SENSORS_LM87 is not set
733# CONFIG_SENSORS_LM90 is not set
734# CONFIG_SENSORS_LM92 is not set
735# CONFIG_SENSORS_MAX1619 is not set
736# CONFIG_SENSORS_PC87360 is not set
737# CONFIG_SENSORS_SIS5595 is not set
738# CONFIG_SENSORS_SMSC47M1 is not set
739# CONFIG_SENSORS_SMSC47B397 is not set
740# CONFIG_SENSORS_VIA686A is not set
741# CONFIG_SENSORS_W83781D is not set
742# CONFIG_SENSORS_W83792D is not set
743# CONFIG_SENSORS_W83L785TS is not set
744# CONFIG_SENSORS_W83627HF is not set
745# CONFIG_SENSORS_W83627EHF is not set
746# CONFIG_HWMON_DEBUG_CHIP is not set
747
748#
749# Misc devices
750#
751
752#
753# Multimedia Capabilities Port drivers
754#
755
756#
757# Multimedia devices
758#
759# CONFIG_VIDEO_DEV is not set
760
761#
762# Digital Video Broadcasting Devices
763#
764# CONFIG_DVB is not set
765
766#
767# Graphics support
768#
769# CONFIG_FB is not set
770
771#
772# Sound
773#
774# CONFIG_SOUND is not set
775
776#
777# USB support
778#
779CONFIG_USB_ARCH_HAS_HCD=y
780CONFIG_USB_ARCH_HAS_OHCI=y
781# CONFIG_USB is not set
782
783#
784# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
785#
786
787#
788# USB Gadget Support
789#
790# CONFIG_USB_GADGET is not set
791
792#
793# MMC/SD Card support
794#
795# CONFIG_MMC is not set
796
797#
798# File systems
799#
800CONFIG_EXT2_FS=y
801CONFIG_EXT2_FS_XATTR=y
802CONFIG_EXT2_FS_POSIX_ACL=y
803# CONFIG_EXT2_FS_SECURITY is not set
804# CONFIG_EXT2_FS_XIP is not set
805CONFIG_EXT3_FS=y
806CONFIG_EXT3_FS_XATTR=y
807CONFIG_EXT3_FS_POSIX_ACL=y
808# CONFIG_EXT3_FS_SECURITY is not set
809CONFIG_JBD=y
810# CONFIG_JBD_DEBUG is not set
811CONFIG_FS_MBCACHE=y
812# CONFIG_REISERFS_FS is not set
813# CONFIG_JFS_FS is not set
814CONFIG_FS_POSIX_ACL=y
815# CONFIG_XFS_FS is not set
816# CONFIG_MINIX_FS is not set
817# CONFIG_ROMFS_FS is not set
818CONFIG_INOTIFY=y
819# CONFIG_QUOTA is not set
820CONFIG_DNOTIFY=y
821# CONFIG_AUTOFS_FS is not set
822# CONFIG_AUTOFS4_FS is not set
823# CONFIG_FUSE_FS is not set
824
825#
826# CD-ROM/DVD Filesystems
827#
828# CONFIG_ISO9660_FS is not set
829# CONFIG_UDF_FS is not set
830
831#
832# DOS/FAT/NT Filesystems
833#
834# CONFIG_MSDOS_FS is not set
835# CONFIG_VFAT_FS is not set
836# CONFIG_NTFS_FS is not set
837
838#
839# Pseudo filesystems
840#
841CONFIG_PROC_FS=y
842CONFIG_SYSFS=y
843CONFIG_TMPFS=y
844# CONFIG_HUGETLB_PAGE is not set
845CONFIG_RAMFS=y
846# CONFIG_RELAYFS_FS is not set
847
848#
849# Miscellaneous filesystems
850#
851# CONFIG_ADFS_FS is not set
852# CONFIG_AFFS_FS is not set
853# CONFIG_HFS_FS is not set
854# CONFIG_HFSPLUS_FS is not set
855# CONFIG_BEFS_FS is not set
856# CONFIG_BFS_FS is not set
857# CONFIG_EFS_FS is not set
858# CONFIG_JFFS_FS is not set
859CONFIG_JFFS2_FS=y
860CONFIG_JFFS2_FS_DEBUG=0
861CONFIG_JFFS2_FS_WRITEBUFFER=y
862# CONFIG_JFFS2_SUMMARY is not set
863# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
864CONFIG_JFFS2_ZLIB=y
865CONFIG_JFFS2_RTIME=y
866# CONFIG_JFFS2_RUBIN is not set
867# CONFIG_CRAMFS is not set
868# CONFIG_VXFS_FS is not set
869# CONFIG_HPFS_FS is not set
870# CONFIG_QNX4FS_FS is not set
871# CONFIG_SYSV_FS is not set
872# CONFIG_UFS_FS is not set
873
874#
875# Network File Systems
876#
877CONFIG_NFS_FS=y
878CONFIG_NFS_V3=y
879# CONFIG_NFS_V3_ACL is not set
880# CONFIG_NFS_V4 is not set
881# CONFIG_NFS_DIRECTIO is not set
882# CONFIG_NFSD is not set
883CONFIG_ROOT_NFS=y
884CONFIG_LOCKD=y
885CONFIG_LOCKD_V4=y
886CONFIG_NFS_COMMON=y
887CONFIG_SUNRPC=y
888# CONFIG_RPCSEC_GSS_KRB5 is not set
889# CONFIG_RPCSEC_GSS_SPKM3 is not set
890# CONFIG_SMB_FS is not set
891# CONFIG_CIFS is not set
892# CONFIG_NCP_FS is not set
893# CONFIG_CODA_FS is not set
894# CONFIG_AFS_FS is not set
895# CONFIG_9P_FS is not set
896
897#
898# Partition Types
899#
900CONFIG_PARTITION_ADVANCED=y
901# CONFIG_ACORN_PARTITION is not set
902# CONFIG_OSF_PARTITION is not set
903# CONFIG_AMIGA_PARTITION is not set
904# CONFIG_ATARI_PARTITION is not set
905# CONFIG_MAC_PARTITION is not set
906CONFIG_MSDOS_PARTITION=y
907# CONFIG_BSD_DISKLABEL is not set
908# CONFIG_MINIX_SUBPARTITION is not set
909# CONFIG_SOLARIS_X86_PARTITION is not set
910# CONFIG_UNIXWARE_DISKLABEL is not set
911# CONFIG_LDM_PARTITION is not set
912# CONFIG_SGI_PARTITION is not set
913# CONFIG_ULTRIX_PARTITION is not set
914# CONFIG_SUN_PARTITION is not set
915# CONFIG_EFI_PARTITION is not set
916
917#
918# Native Language Support
919#
920# CONFIG_NLS is not set
921
922#
923# Profiling support
924#
925# CONFIG_PROFILING is not set
926
927#
928# Kernel hacking
929#
930# CONFIG_PRINTK_TIME is not set
931CONFIG_DEBUG_KERNEL=y
932CONFIG_MAGIC_SYSRQ=y
933CONFIG_LOG_BUF_SHIFT=14
934CONFIG_DETECT_SOFTLOCKUP=y
935# CONFIG_SCHEDSTATS is not set
936# CONFIG_DEBUG_SLAB is not set
937# CONFIG_DEBUG_SPINLOCK is not set
938# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
939# CONFIG_DEBUG_KOBJECT is not set
940CONFIG_DEBUG_BUGVERBOSE=y
941# CONFIG_DEBUG_INFO is not set
942# CONFIG_DEBUG_FS is not set
943# CONFIG_DEBUG_VM is not set
944CONFIG_FRAME_POINTER=y
945# CONFIG_RCU_TORTURE_TEST is not set
946CONFIG_DEBUG_USER=y
947# CONFIG_DEBUG_WAITQ is not set
948CONFIG_DEBUG_ERRORS=y
949CONFIG_DEBUG_LL=y
950# CONFIG_DEBUG_ICEDCC is not set
951
952#
953# Security options
954#
955# CONFIG_KEYS is not set
956# CONFIG_SECURITY is not set
957
958#
959# Cryptographic options
960#
961# CONFIG_CRYPTO is not set
962
963#
964# Hardware crypto devices
965#
966
967#
968# Library routines
969#
970# CONFIG_CRC_CCITT is not set
971# CONFIG_CRC16 is not set
972CONFIG_CRC32=y
973# CONFIG_LIBCRC32C is not set
974CONFIG_ZLIB_INFLATE=y
975CONFIG_ZLIB_DEFLATE=y
diff --git a/arch/arm/configs/ixdp2801_defconfig b/arch/arm/configs/ixdp2801_defconfig
deleted file mode 100644
index f54f3dcc5b33..000000000000
--- a/arch/arm/configs/ixdp2801_defconfig
+++ /dev/null
@@ -1,976 +0,0 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.14-git13
4# Thu Nov 10 15:15:03 2005
5#
6CONFIG_ARM=y
7CONFIG_MMU=y
8CONFIG_UID16=y
9CONFIG_RWSEM_GENERIC_SPINLOCK=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y
11
12#
13# Code maturity level options
14#
15CONFIG_EXPERIMENTAL=y
16CONFIG_CLEAN_COMPILE=y
17CONFIG_BROKEN_ON_SMP=y
18CONFIG_INIT_ENV_ARG_LIMIT=32
19
20#
21# General setup
22#
23CONFIG_LOCALVERSION=""
24CONFIG_LOCALVERSION_AUTO=y
25CONFIG_SWAP=y
26CONFIG_SYSVIPC=y
27# CONFIG_POSIX_MQUEUE is not set
28CONFIG_BSD_PROCESS_ACCT=y
29# CONFIG_BSD_PROCESS_ACCT_V3 is not set
30CONFIG_SYSCTL=y
31# CONFIG_AUDIT is not set
32# CONFIG_HOTPLUG is not set
33CONFIG_KOBJECT_UEVENT=y
34# CONFIG_IKCONFIG is not set
35CONFIG_INITRAMFS_SOURCE=""
36CONFIG_EMBEDDED=y
37CONFIG_KALLSYMS=y
38# CONFIG_KALLSYMS_ALL is not set
39# CONFIG_KALLSYMS_EXTRA_PASS is not set
40CONFIG_PRINTK=y
41CONFIG_BUG=y
42CONFIG_BASE_FULL=y
43CONFIG_FUTEX=y
44CONFIG_EPOLL=y
45CONFIG_CC_OPTIMIZE_FOR_SIZE=y
46CONFIG_SHMEM=y
47CONFIG_CC_ALIGN_FUNCTIONS=0
48CONFIG_CC_ALIGN_LABELS=0
49CONFIG_CC_ALIGN_LOOPS=0
50CONFIG_CC_ALIGN_JUMPS=0
51# CONFIG_TINY_SHMEM is not set
52CONFIG_BASE_SMALL=0
53
54#
55# Loadable module support
56#
57CONFIG_MODULES=y
58CONFIG_MODULE_UNLOAD=y
59# CONFIG_MODULE_FORCE_UNLOAD is not set
60CONFIG_OBSOLETE_MODPARM=y
61# CONFIG_MODVERSIONS is not set
62# CONFIG_MODULE_SRCVERSION_ALL is not set
63CONFIG_KMOD=y
64
65#
66# Block layer
67#
68
69#
70# IO Schedulers
71#
72CONFIG_IOSCHED_NOOP=y
73CONFIG_IOSCHED_AS=y
74CONFIG_IOSCHED_DEADLINE=y
75CONFIG_IOSCHED_CFQ=y
76CONFIG_DEFAULT_AS=y
77# CONFIG_DEFAULT_DEADLINE is not set
78# CONFIG_DEFAULT_CFQ is not set
79# CONFIG_DEFAULT_NOOP is not set
80CONFIG_DEFAULT_IOSCHED="anticipatory"
81
82#
83# System Type
84#
85# CONFIG_ARCH_CLPS7500 is not set
86# CONFIG_ARCH_CLPS711X is not set
87# CONFIG_ARCH_CO285 is not set
88# CONFIG_ARCH_EBSA110 is not set
89# CONFIG_ARCH_FOOTBRIDGE is not set
90# CONFIG_ARCH_INTEGRATOR is not set
91# CONFIG_ARCH_IOP3XX is not set
92# CONFIG_ARCH_IXP4XX is not set
93CONFIG_ARCH_IXP2000=y
94# CONFIG_ARCH_L7200 is not set
95# CONFIG_ARCH_PXA is not set
96# CONFIG_ARCH_RPC is not set
97# CONFIG_ARCH_SA1100 is not set
98# CONFIG_ARCH_S3C2410 is not set
99# CONFIG_ARCH_SHARK is not set
100# CONFIG_ARCH_LH7A40X is not set
101# CONFIG_ARCH_OMAP is not set
102# CONFIG_ARCH_VERSATILE is not set
103# CONFIG_ARCH_REALVIEW is not set
104# CONFIG_ARCH_IMX is not set
105# CONFIG_ARCH_H720X is not set
106# CONFIG_ARCH_AAEC2000 is not set
107CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
108
109#
110# Intel IXP2400/2800 Implementation Options
111#
112
113#
114# IXP2400/2800 Platforms
115#
116# CONFIG_ARCH_ENP2611 is not set
117# CONFIG_ARCH_IXDP2400 is not set
118# CONFIG_ARCH_IXDP2800 is not set
119# CONFIG_ARCH_IXDP2401 is not set
120CONFIG_ARCH_IXDP2801=y
121CONFIG_ARCH_IXDP2X01=y
122# CONFIG_IXP2000_SUPPORT_BROKEN_PCI_IO is not set
123
124#
125# Processor Type
126#
127CONFIG_CPU_32=y
128CONFIG_CPU_XSCALE=y
129CONFIG_CPU_32v5=y
130CONFIG_CPU_ABRT_EV5T=y
131CONFIG_CPU_CACHE_VIVT=y
132CONFIG_CPU_TLB_V4WBI=y
133
134#
135# Processor Features
136#
137# CONFIG_ARM_THUMB is not set
138CONFIG_CPU_BIG_ENDIAN=y
139CONFIG_XSCALE_PMU=y
140
141#
142# Bus support
143#
144CONFIG_ISA_DMA_API=y
145CONFIG_PCI=y
146CONFIG_PCI_LEGACY_PROC=y
147# CONFIG_PCI_DEBUG is not set
148
149#
150# PCCARD (PCMCIA/CardBus) support
151#
152# CONFIG_PCCARD is not set
153
154#
155# Kernel Features
156#
157# CONFIG_PREEMPT is not set
158# CONFIG_NO_IDLE_HZ is not set
159# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
160CONFIG_SELECT_MEMORY_MODEL=y
161CONFIG_FLATMEM_MANUAL=y
162# CONFIG_DISCONTIGMEM_MANUAL is not set
163# CONFIG_SPARSEMEM_MANUAL is not set
164CONFIG_FLATMEM=y
165CONFIG_FLAT_NODE_MEM_MAP=y
166# CONFIG_SPARSEMEM_STATIC is not set
167CONFIG_SPLIT_PTLOCK_CPUS=4096
168CONFIG_ALIGNMENT_TRAP=y
169
170#
171# Boot options
172#
173CONFIG_ZBOOT_ROM_TEXT=0x0
174CONFIG_ZBOOT_ROM_BSS=0x0
175CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs ip=bootp mem=64M@0x0"
176# CONFIG_XIP_KERNEL is not set
177
178#
179# Floating point emulation
180#
181
182#
183# At least one emulation must be selected
184#
185CONFIG_FPE_NWFPE=y
186CONFIG_FPE_NWFPE_XP=y
187# CONFIG_FPE_FASTFPE is not set
188
189#
190# Userspace binary formats
191#
192CONFIG_BINFMT_ELF=y
193# CONFIG_BINFMT_AOUT is not set
194# CONFIG_BINFMT_MISC is not set
195# CONFIG_ARTHUR is not set
196
197#
198# Power management options
199#
200# CONFIG_PM is not set
201
202#
203# Networking
204#
205CONFIG_NET=y
206
207#
208# Networking options
209#
210CONFIG_PACKET=y
211CONFIG_PACKET_MMAP=y
212CONFIG_UNIX=y
213# CONFIG_NET_KEY is not set
214CONFIG_INET=y
215# CONFIG_IP_MULTICAST is not set
216# CONFIG_IP_ADVANCED_ROUTER is not set
217CONFIG_IP_FIB_HASH=y
218CONFIG_IP_PNP=y
219CONFIG_IP_PNP_DHCP=y
220CONFIG_IP_PNP_BOOTP=y
221# CONFIG_IP_PNP_RARP is not set
222# CONFIG_NET_IPIP is not set
223# CONFIG_NET_IPGRE is not set
224# CONFIG_ARPD is not set
225CONFIG_SYN_COOKIES=y
226# CONFIG_INET_AH is not set
227# CONFIG_INET_ESP is not set
228# CONFIG_INET_IPCOMP is not set
229# CONFIG_INET_TUNNEL is not set
230CONFIG_INET_DIAG=y
231CONFIG_INET_TCP_DIAG=y
232# CONFIG_TCP_CONG_ADVANCED is not set
233CONFIG_TCP_CONG_BIC=y
234# CONFIG_IPV6 is not set
235# CONFIG_NETFILTER is not set
236
237#
238# DCCP Configuration (EXPERIMENTAL)
239#
240# CONFIG_IP_DCCP is not set
241
242#
243# SCTP Configuration (EXPERIMENTAL)
244#
245# CONFIG_IP_SCTP is not set
246# CONFIG_ATM is not set
247# CONFIG_BRIDGE is not set
248# CONFIG_VLAN_8021Q is not set
249# CONFIG_DECNET is not set
250# CONFIG_LLC2 is not set
251# CONFIG_IPX is not set
252# CONFIG_ATALK is not set
253# CONFIG_X25 is not set
254# CONFIG_LAPB is not set
255# CONFIG_NET_DIVERT is not set
256# CONFIG_ECONET is not set
257# CONFIG_WAN_ROUTER is not set
258
259#
260# QoS and/or fair queueing
261#
262# CONFIG_NET_SCHED is not set
263# CONFIG_NET_CLS_ROUTE is not set
264
265#
266# Network testing
267#
268# CONFIG_NET_PKTGEN is not set
269# CONFIG_HAMRADIO is not set
270# CONFIG_IRDA is not set
271# CONFIG_BT is not set
272# CONFIG_IEEE80211 is not set
273
274#
275# Device Drivers
276#
277
278#
279# Generic Driver Options
280#
281CONFIG_STANDALONE=y
282# CONFIG_PREVENT_FIRMWARE_BUILD is not set
283# CONFIG_FW_LOADER is not set
284# CONFIG_DEBUG_DRIVER is not set
285
286#
287# Memory Technology Devices (MTD)
288#
289CONFIG_MTD=y
290# CONFIG_MTD_DEBUG is not set
291# CONFIG_MTD_CONCAT is not set
292CONFIG_MTD_PARTITIONS=y
293CONFIG_MTD_REDBOOT_PARTS=y
294CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
295CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
296CONFIG_MTD_REDBOOT_PARTS_READONLY=y
297# CONFIG_MTD_CMDLINE_PARTS is not set
298# CONFIG_MTD_AFS_PARTS is not set
299
300#
301# User Modules And Translation Layers
302#
303CONFIG_MTD_CHAR=y
304CONFIG_MTD_BLOCK=y
305# CONFIG_FTL is not set
306# CONFIG_NFTL is not set
307# CONFIG_INFTL is not set
308# CONFIG_RFD_FTL is not set
309
310#
311# RAM/ROM/Flash chip drivers
312#
313CONFIG_MTD_CFI=y
314# CONFIG_MTD_JEDECPROBE is not set
315CONFIG_MTD_GEN_PROBE=y
316# CONFIG_MTD_CFI_ADV_OPTIONS is not set
317CONFIG_MTD_MAP_BANK_WIDTH_1=y
318CONFIG_MTD_MAP_BANK_WIDTH_2=y
319CONFIG_MTD_MAP_BANK_WIDTH_4=y
320# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
321# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
322# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
323CONFIG_MTD_CFI_I1=y
324CONFIG_MTD_CFI_I2=y
325# CONFIG_MTD_CFI_I4 is not set
326# CONFIG_MTD_CFI_I8 is not set
327CONFIG_MTD_CFI_INTELEXT=y
328# CONFIG_MTD_CFI_AMDSTD is not set
329# CONFIG_MTD_CFI_STAA is not set
330CONFIG_MTD_CFI_UTIL=y
331# CONFIG_MTD_RAM is not set
332# CONFIG_MTD_ROM is not set
333# CONFIG_MTD_ABSENT is not set
334# CONFIG_MTD_XIP is not set
335
336#
337# Mapping drivers for chip access
338#
339CONFIG_MTD_COMPLEX_MAPPINGS=y
340# CONFIG_MTD_PHYSMAP is not set
341# CONFIG_MTD_ARM_INTEGRATOR is not set
342CONFIG_MTD_IXP2000=y
343# CONFIG_MTD_PCI is not set
344# CONFIG_MTD_PLATRAM is not set
345
346#
347# Self-contained MTD device drivers
348#
349# CONFIG_MTD_PMC551 is not set
350# CONFIG_MTD_SLRAM is not set
351# CONFIG_MTD_PHRAM is not set
352# CONFIG_MTD_MTDRAM is not set
353# CONFIG_MTD_BLKMTD is not set
354# CONFIG_MTD_BLOCK2MTD is not set
355
356#
357# Disk-On-Chip Device Drivers
358#
359# CONFIG_MTD_DOC2000 is not set
360# CONFIG_MTD_DOC2001 is not set
361# CONFIG_MTD_DOC2001PLUS is not set
362
363#
364# NAND Flash Device Drivers
365#
366# CONFIG_MTD_NAND is not set
367
368#
369# OneNAND Flash Device Drivers
370#
371# CONFIG_MTD_ONENAND is not set
372
373#
374# Parallel port support
375#
376# CONFIG_PARPORT is not set
377
378#
379# Plug and Play support
380#
381
382#
383# Block devices
384#
385# CONFIG_BLK_CPQ_DA is not set
386# CONFIG_BLK_CPQ_CISS_DA is not set
387# CONFIG_BLK_DEV_DAC960 is not set
388# CONFIG_BLK_DEV_UMEM is not set
389# CONFIG_BLK_DEV_COW_COMMON is not set
390CONFIG_BLK_DEV_LOOP=y
391# CONFIG_BLK_DEV_CRYPTOLOOP is not set
392# CONFIG_BLK_DEV_NBD is not set
393# CONFIG_BLK_DEV_SX8 is not set
394CONFIG_BLK_DEV_RAM=y
395CONFIG_BLK_DEV_RAM_COUNT=16
396CONFIG_BLK_DEV_RAM_SIZE=8192
397CONFIG_BLK_DEV_INITRD=y
398# CONFIG_CDROM_PKTCDVD is not set
399# CONFIG_ATA_OVER_ETH is not set
400
401#
402# SCSI device support
403#
404# CONFIG_RAID_ATTRS is not set
405# CONFIG_SCSI is not set
406
407#
408# Multi-device support (RAID and LVM)
409#
410# CONFIG_MD is not set
411
412#
413# Fusion MPT device support
414#
415# CONFIG_FUSION is not set
416
417#
418# IEEE 1394 (FireWire) support
419#
420# CONFIG_IEEE1394 is not set
421
422#
423# I2O device support
424#
425# CONFIG_I2O is not set
426
427#
428# Network device support
429#
430CONFIG_NETDEVICES=y
431CONFIG_DUMMY=y
432# CONFIG_BONDING is not set
433# CONFIG_EQUALIZER is not set
434# CONFIG_TUN is not set
435
436#
437# ARCnet devices
438#
439# CONFIG_ARCNET is not set
440
441#
442# PHY device support
443#
444# CONFIG_PHYLIB is not set
445
446#
447# Ethernet (10 or 100Mbit)
448#
449CONFIG_NET_ETHERNET=y
450CONFIG_MII=y
451# CONFIG_HAPPYMEAL is not set
452# CONFIG_SUNGEM is not set
453# CONFIG_CASSINI is not set
454# CONFIG_NET_VENDOR_3COM is not set
455# CONFIG_SMC91X is not set
456# CONFIG_DM9000 is not set
457
458#
459# Tulip family network device support
460#
461# CONFIG_NET_TULIP is not set
462# CONFIG_HP100 is not set
463CONFIG_NET_PCI=y
464# CONFIG_PCNET32 is not set
465# CONFIG_AMD8111_ETH is not set
466# CONFIG_ADAPTEC_STARFIRE is not set
467# CONFIG_B44 is not set
468# CONFIG_FORCEDETH is not set
469CONFIG_CS89x0=y
470# CONFIG_DGRS is not set
471CONFIG_EEPRO100=y
472# CONFIG_E100 is not set
473# CONFIG_FEALNX is not set
474# CONFIG_NATSEMI is not set
475# CONFIG_NE2K_PCI is not set
476# CONFIG_8139CP is not set
477# CONFIG_8139TOO is not set
478# CONFIG_SIS900 is not set
479# CONFIG_EPIC100 is not set
480# CONFIG_SUNDANCE is not set
481# CONFIG_TLAN is not set
482# CONFIG_VIA_RHINE is not set
483
484#
485# Ethernet (1000 Mbit)
486#
487# CONFIG_ACENIC is not set
488# CONFIG_DL2K is not set
489# CONFIG_E1000 is not set
490# CONFIG_NS83820 is not set
491# CONFIG_HAMACHI is not set
492# CONFIG_YELLOWFIN is not set
493# CONFIG_R8169 is not set
494# CONFIG_SIS190 is not set
495# CONFIG_SKGE is not set
496# CONFIG_SK98LIN is not set
497# CONFIG_VIA_VELOCITY is not set
498# CONFIG_TIGON3 is not set
499# CONFIG_BNX2 is not set
500
501#
502# Ethernet (10000 Mbit)
503#
504# CONFIG_CHELSIO_T1 is not set
505# CONFIG_IXGB is not set
506# CONFIG_S2IO is not set
507
508#
509# Token Ring devices
510#
511# CONFIG_TR is not set
512
513#
514# Wireless LAN (non-hamradio)
515#
516# CONFIG_NET_RADIO is not set
517
518#
519# Wan interfaces
520#
521CONFIG_WAN=y
522# CONFIG_DSCC4 is not set
523# CONFIG_LANMEDIA is not set
524# CONFIG_SYNCLINK_SYNCPPP is not set
525CONFIG_HDLC=y
526CONFIG_HDLC_RAW=y
527# CONFIG_HDLC_RAW_ETH is not set
528CONFIG_HDLC_CISCO=y
529CONFIG_HDLC_FR=y
530CONFIG_HDLC_PPP=y
531
532#
533# X.25/LAPB support is disabled
534#
535# CONFIG_PCI200SYN is not set
536# CONFIG_WANXL is not set
537# CONFIG_PC300 is not set
538# CONFIG_FARSYNC is not set
539CONFIG_DLCI=y
540CONFIG_DLCI_COUNT=24
541CONFIG_DLCI_MAX=8
542# CONFIG_FDDI is not set
543# CONFIG_HIPPI is not set
544# CONFIG_PPP is not set
545# CONFIG_SLIP is not set
546# CONFIG_SHAPER is not set
547# CONFIG_NETCONSOLE is not set
548# CONFIG_NETPOLL is not set
549# CONFIG_NET_POLL_CONTROLLER is not set
550
551#
552# ISDN subsystem
553#
554# CONFIG_ISDN is not set
555
556#
557# Input device support
558#
559CONFIG_INPUT=y
560
561#
562# Userland interfaces
563#
564CONFIG_INPUT_MOUSEDEV=y
565CONFIG_INPUT_MOUSEDEV_PSAUX=y
566CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
567CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
568# CONFIG_INPUT_JOYDEV is not set
569# CONFIG_INPUT_TSDEV is not set
570# CONFIG_INPUT_EVDEV is not set
571# CONFIG_INPUT_EVBUG is not set
572
573#
574# Input Device Drivers
575#
576# CONFIG_INPUT_KEYBOARD is not set
577# CONFIG_INPUT_MOUSE is not set
578# CONFIG_INPUT_JOYSTICK is not set
579# CONFIG_INPUT_TOUCHSCREEN is not set
580# CONFIG_INPUT_MISC is not set
581
582#
583# Hardware I/O ports
584#
585# CONFIG_SERIO is not set
586# CONFIG_GAMEPORT is not set
587
588#
589# Character devices
590#
591# CONFIG_VT is not set
592# CONFIG_SERIAL_NONSTANDARD is not set
593
594#
595# Serial drivers
596#
597CONFIG_SERIAL_8250=y
598CONFIG_SERIAL_8250_CONSOLE=y
599CONFIG_SERIAL_8250_NR_UARTS=3
600# CONFIG_SERIAL_8250_EXTENDED is not set
601
602#
603# Non-8250 serial port support
604#
605CONFIG_SERIAL_CORE=y
606CONFIG_SERIAL_CORE_CONSOLE=y
607# CONFIG_SERIAL_JSM is not set
608CONFIG_UNIX98_PTYS=y
609CONFIG_LEGACY_PTYS=y
610CONFIG_LEGACY_PTY_COUNT=256
611
612#
613# IPMI
614#
615# CONFIG_IPMI_HANDLER is not set
616
617#
618# Watchdog Cards
619#
620CONFIG_WATCHDOG=y
621# CONFIG_WATCHDOG_NOWAYOUT is not set
622
623#
624# Watchdog Device Drivers
625#
626# CONFIG_SOFT_WATCHDOG is not set
627CONFIG_IXP2000_WATCHDOG=y
628
629#
630# PCI-based Watchdog Cards
631#
632# CONFIG_PCIPCWATCHDOG is not set
633# CONFIG_WDTPCI is not set
634# CONFIG_NVRAM is not set
635# CONFIG_RTC is not set
636# CONFIG_DTLK is not set
637# CONFIG_R3964 is not set
638# CONFIG_APPLICOM is not set
639
640#
641# Ftape, the floppy tape device driver
642#
643# CONFIG_DRM is not set
644# CONFIG_RAW_DRIVER is not set
645
646#
647# TPM devices
648#
649# CONFIG_TCG_TPM is not set
650# CONFIG_TELCLOCK is not set
651
652#
653# I2C support
654#
655CONFIG_I2C=y
656CONFIG_I2C_CHARDEV=y
657
658#
659# I2C Algorithms
660#
661CONFIG_I2C_ALGOBIT=y
662# CONFIG_I2C_ALGOPCF is not set
663# CONFIG_I2C_ALGOPCA is not set
664
665#
666# I2C Hardware Bus support
667#
668# CONFIG_I2C_ALI1535 is not set
669# CONFIG_I2C_ALI1563 is not set
670# CONFIG_I2C_ALI15X3 is not set
671# CONFIG_I2C_AMD756 is not set
672# CONFIG_I2C_AMD8111 is not set
673# CONFIG_I2C_I801 is not set
674# CONFIG_I2C_I810 is not set
675# CONFIG_I2C_PIIX4 is not set
676CONFIG_I2C_IXP2000=y
677# CONFIG_I2C_NFORCE2 is not set
678# CONFIG_I2C_PARPORT_LIGHT is not set
679# CONFIG_I2C_PROSAVAGE is not set
680# CONFIG_I2C_SAVAGE4 is not set
681# CONFIG_SCx200_ACB is not set
682# CONFIG_I2C_SIS5595 is not set
683# CONFIG_I2C_SIS630 is not set
684# CONFIG_I2C_SIS96X is not set
685# CONFIG_I2C_STUB is not set
686# CONFIG_I2C_VIA is not set
687# CONFIG_I2C_VIAPRO is not set
688# CONFIG_I2C_VOODOO3 is not set
689# CONFIG_I2C_PCA_ISA is not set
690
691#
692# Miscellaneous I2C Chip support
693#
694# CONFIG_SENSORS_DS1337 is not set
695# CONFIG_SENSORS_DS1374 is not set
696CONFIG_SENSORS_EEPROM=y
697# CONFIG_SENSORS_PCF8574 is not set
698# CONFIG_SENSORS_PCA9539 is not set
699# CONFIG_SENSORS_PCF8591 is not set
700# CONFIG_SENSORS_RTC8564 is not set
701# CONFIG_SENSORS_MAX6875 is not set
702# CONFIG_RTC_X1205_I2C is not set
703# CONFIG_I2C_DEBUG_CORE is not set
704# CONFIG_I2C_DEBUG_ALGO is not set
705# CONFIG_I2C_DEBUG_BUS is not set
706# CONFIG_I2C_DEBUG_CHIP is not set
707
708#
709# Hardware Monitoring support
710#
711CONFIG_HWMON=y
712# CONFIG_HWMON_VID is not set
713# CONFIG_SENSORS_ADM1021 is not set
714# CONFIG_SENSORS_ADM1025 is not set
715# CONFIG_SENSORS_ADM1026 is not set
716# CONFIG_SENSORS_ADM1031 is not set
717# CONFIG_SENSORS_ADM9240 is not set
718# CONFIG_SENSORS_ASB100 is not set
719# CONFIG_SENSORS_ATXP1 is not set
720# CONFIG_SENSORS_DS1621 is not set
721# CONFIG_SENSORS_FSCHER is not set
722# CONFIG_SENSORS_FSCPOS is not set
723# CONFIG_SENSORS_GL518SM is not set
724# CONFIG_SENSORS_GL520SM is not set
725# CONFIG_SENSORS_IT87 is not set
726# CONFIG_SENSORS_LM63 is not set
727# CONFIG_SENSORS_LM75 is not set
728# CONFIG_SENSORS_LM77 is not set
729# CONFIG_SENSORS_LM78 is not set
730# CONFIG_SENSORS_LM80 is not set
731# CONFIG_SENSORS_LM83 is not set
732# CONFIG_SENSORS_LM85 is not set
733# CONFIG_SENSORS_LM87 is not set
734# CONFIG_SENSORS_LM90 is not set
735# CONFIG_SENSORS_LM92 is not set
736# CONFIG_SENSORS_MAX1619 is not set
737# CONFIG_SENSORS_PC87360 is not set
738# CONFIG_SENSORS_SIS5595 is not set
739# CONFIG_SENSORS_SMSC47M1 is not set
740# CONFIG_SENSORS_SMSC47B397 is not set
741# CONFIG_SENSORS_VIA686A is not set
742# CONFIG_SENSORS_W83781D is not set
743# CONFIG_SENSORS_W83792D is not set
744# CONFIG_SENSORS_W83L785TS is not set
745# CONFIG_SENSORS_W83627HF is not set
746# CONFIG_SENSORS_W83627EHF is not set
747# CONFIG_HWMON_DEBUG_CHIP is not set
748
749#
750# Misc devices
751#
752
753#
754# Multimedia Capabilities Port drivers
755#
756
757#
758# Multimedia devices
759#
760# CONFIG_VIDEO_DEV is not set
761
762#
763# Digital Video Broadcasting Devices
764#
765# CONFIG_DVB is not set
766
767#
768# Graphics support
769#
770# CONFIG_FB is not set
771
772#
773# Sound
774#
775# CONFIG_SOUND is not set
776
777#
778# USB support
779#
780CONFIG_USB_ARCH_HAS_HCD=y
781CONFIG_USB_ARCH_HAS_OHCI=y
782# CONFIG_USB is not set
783
784#
785# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
786#
787
788#
789# USB Gadget Support
790#
791# CONFIG_USB_GADGET is not set
792
793#
794# MMC/SD Card support
795#
796# CONFIG_MMC is not set
797
798#
799# File systems
800#
801CONFIG_EXT2_FS=y
802CONFIG_EXT2_FS_XATTR=y
803CONFIG_EXT2_FS_POSIX_ACL=y
804# CONFIG_EXT2_FS_SECURITY is not set
805# CONFIG_EXT2_FS_XIP is not set
806CONFIG_EXT3_FS=y
807CONFIG_EXT3_FS_XATTR=y
808CONFIG_EXT3_FS_POSIX_ACL=y
809# CONFIG_EXT3_FS_SECURITY is not set
810CONFIG_JBD=y
811# CONFIG_JBD_DEBUG is not set
812CONFIG_FS_MBCACHE=y
813# CONFIG_REISERFS_FS is not set
814# CONFIG_JFS_FS is not set
815CONFIG_FS_POSIX_ACL=y
816# CONFIG_XFS_FS is not set
817# CONFIG_MINIX_FS is not set
818# CONFIG_ROMFS_FS is not set
819CONFIG_INOTIFY=y
820# CONFIG_QUOTA is not set
821CONFIG_DNOTIFY=y
822# CONFIG_AUTOFS_FS is not set
823# CONFIG_AUTOFS4_FS is not set
824# CONFIG_FUSE_FS is not set
825
826#
827# CD-ROM/DVD Filesystems
828#
829# CONFIG_ISO9660_FS is not set
830# CONFIG_UDF_FS is not set
831
832#
833# DOS/FAT/NT Filesystems
834#
835# CONFIG_MSDOS_FS is not set
836# CONFIG_VFAT_FS is not set
837# CONFIG_NTFS_FS is not set
838
839#
840# Pseudo filesystems
841#
842CONFIG_PROC_FS=y
843CONFIG_SYSFS=y
844CONFIG_TMPFS=y
845# CONFIG_HUGETLB_PAGE is not set
846CONFIG_RAMFS=y
847# CONFIG_RELAYFS_FS is not set
848
849#
850# Miscellaneous filesystems
851#
852# CONFIG_ADFS_FS is not set
853# CONFIG_AFFS_FS is not set
854# CONFIG_HFS_FS is not set
855# CONFIG_HFSPLUS_FS is not set
856# CONFIG_BEFS_FS is not set
857# CONFIG_BFS_FS is not set
858# CONFIG_EFS_FS is not set
859# CONFIG_JFFS_FS is not set
860CONFIG_JFFS2_FS=y
861CONFIG_JFFS2_FS_DEBUG=0
862CONFIG_JFFS2_FS_WRITEBUFFER=y
863# CONFIG_JFFS2_SUMMARY is not set
864# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
865CONFIG_JFFS2_ZLIB=y
866CONFIG_JFFS2_RTIME=y
867# CONFIG_JFFS2_RUBIN is not set
868# CONFIG_CRAMFS is not set
869# CONFIG_VXFS_FS is not set
870# CONFIG_HPFS_FS is not set
871# CONFIG_QNX4FS_FS is not set
872# CONFIG_SYSV_FS is not set
873# CONFIG_UFS_FS is not set
874
875#
876# Network File Systems
877#
878CONFIG_NFS_FS=y
879CONFIG_NFS_V3=y
880# CONFIG_NFS_V3_ACL is not set
881# CONFIG_NFS_V4 is not set
882# CONFIG_NFS_DIRECTIO is not set
883# CONFIG_NFSD is not set
884CONFIG_ROOT_NFS=y
885CONFIG_LOCKD=y
886CONFIG_LOCKD_V4=y
887CONFIG_NFS_COMMON=y
888CONFIG_SUNRPC=y
889# CONFIG_RPCSEC_GSS_KRB5 is not set
890# CONFIG_RPCSEC_GSS_SPKM3 is not set
891# CONFIG_SMB_FS is not set
892# CONFIG_CIFS is not set
893# CONFIG_NCP_FS is not set
894# CONFIG_CODA_FS is not set
895# CONFIG_AFS_FS is not set
896# CONFIG_9P_FS is not set
897
898#
899# Partition Types
900#
901CONFIG_PARTITION_ADVANCED=y
902# CONFIG_ACORN_PARTITION is not set
903# CONFIG_OSF_PARTITION is not set
904# CONFIG_AMIGA_PARTITION is not set
905# CONFIG_ATARI_PARTITION is not set
906# CONFIG_MAC_PARTITION is not set
907CONFIG_MSDOS_PARTITION=y
908# CONFIG_BSD_DISKLABEL is not set
909# CONFIG_MINIX_SUBPARTITION is not set
910# CONFIG_SOLARIS_X86_PARTITION is not set
911# CONFIG_UNIXWARE_DISKLABEL is not set
912# CONFIG_LDM_PARTITION is not set
913# CONFIG_SGI_PARTITION is not set
914# CONFIG_ULTRIX_PARTITION is not set
915# CONFIG_SUN_PARTITION is not set
916# CONFIG_EFI_PARTITION is not set
917
918#
919# Native Language Support
920#
921# CONFIG_NLS is not set
922
923#
924# Profiling support
925#
926# CONFIG_PROFILING is not set
927
928#
929# Kernel hacking
930#
931# CONFIG_PRINTK_TIME is not set
932CONFIG_DEBUG_KERNEL=y
933CONFIG_MAGIC_SYSRQ=y
934CONFIG_LOG_BUF_SHIFT=14
935CONFIG_DETECT_SOFTLOCKUP=y
936# CONFIG_SCHEDSTATS is not set
937# CONFIG_DEBUG_SLAB is not set
938# CONFIG_DEBUG_SPINLOCK is not set
939# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
940# CONFIG_DEBUG_KOBJECT is not set
941CONFIG_DEBUG_BUGVERBOSE=y
942# CONFIG_DEBUG_INFO is not set
943# CONFIG_DEBUG_FS is not set
944# CONFIG_DEBUG_VM is not set
945CONFIG_FRAME_POINTER=y
946# CONFIG_RCU_TORTURE_TEST is not set
947CONFIG_DEBUG_USER=y
948# CONFIG_DEBUG_WAITQ is not set
949CONFIG_DEBUG_ERRORS=y
950CONFIG_DEBUG_LL=y
951# CONFIG_DEBUG_ICEDCC is not set
952
953#
954# Security options
955#
956# CONFIG_KEYS is not set
957# CONFIG_SECURITY is not set
958
959#
960# Cryptographic options
961#
962# CONFIG_CRYPTO is not set
963
964#
965# Hardware crypto devices
966#
967
968#
969# Library routines
970#
971# CONFIG_CRC_CCITT is not set
972# CONFIG_CRC16 is not set
973CONFIG_CRC32=y
974# CONFIG_LIBCRC32C is not set
975CONFIG_ZLIB_INFLATE=y
976CONFIG_ZLIB_DEFLATE=y
diff --git a/arch/arm/configs/ixdp2400_defconfig b/arch/arm/configs/ixp2000_defconfig
index c67fc449a11f..7b02ca04c3ee 100644
--- a/arch/arm/configs/ixdp2400_defconfig
+++ b/arch/arm/configs/ixp2000_defconfig
@@ -1,11 +1,10 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.14-git13 3# Linux kernel version: 2.6.16-rc2
4# Thu Nov 10 15:14:13 2005 4# Wed Feb 8 04:49:11 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
8CONFIG_UID16=y
9CONFIG_RWSEM_GENERIC_SPINLOCK=y 8CONFIG_RWSEM_GENERIC_SPINLOCK=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y 9CONFIG_GENERIC_CALIBRATE_DELAY=y
11 10
@@ -29,27 +28,31 @@ CONFIG_BSD_PROCESS_ACCT=y
29# CONFIG_BSD_PROCESS_ACCT_V3 is not set 28# CONFIG_BSD_PROCESS_ACCT_V3 is not set
30CONFIG_SYSCTL=y 29CONFIG_SYSCTL=y
31# CONFIG_AUDIT is not set 30# CONFIG_AUDIT is not set
32# CONFIG_HOTPLUG is not set
33CONFIG_KOBJECT_UEVENT=y
34# CONFIG_IKCONFIG is not set 31# CONFIG_IKCONFIG is not set
35CONFIG_INITRAMFS_SOURCE="" 32CONFIG_INITRAMFS_SOURCE=""
33CONFIG_UID16=y
34CONFIG_CC_OPTIMIZE_FOR_SIZE=y
36CONFIG_EMBEDDED=y 35CONFIG_EMBEDDED=y
37CONFIG_KALLSYMS=y 36CONFIG_KALLSYMS=y
38# CONFIG_KALLSYMS_ALL is not set 37# CONFIG_KALLSYMS_ALL is not set
39# CONFIG_KALLSYMS_EXTRA_PASS is not set 38# CONFIG_KALLSYMS_EXTRA_PASS is not set
39# CONFIG_HOTPLUG is not set
40CONFIG_PRINTK=y 40CONFIG_PRINTK=y
41CONFIG_BUG=y 41CONFIG_BUG=y
42CONFIG_ELF_CORE=y
42CONFIG_BASE_FULL=y 43CONFIG_BASE_FULL=y
43CONFIG_FUTEX=y 44CONFIG_FUTEX=y
44CONFIG_EPOLL=y 45CONFIG_EPOLL=y
45CONFIG_CC_OPTIMIZE_FOR_SIZE=y
46CONFIG_SHMEM=y 46CONFIG_SHMEM=y
47CONFIG_CC_ALIGN_FUNCTIONS=0 47CONFIG_CC_ALIGN_FUNCTIONS=0
48CONFIG_CC_ALIGN_LABELS=0 48CONFIG_CC_ALIGN_LABELS=0
49CONFIG_CC_ALIGN_LOOPS=0 49CONFIG_CC_ALIGN_LOOPS=0
50CONFIG_CC_ALIGN_JUMPS=0 50CONFIG_CC_ALIGN_JUMPS=0
51CONFIG_SLAB=y
51# CONFIG_TINY_SHMEM is not set 52# CONFIG_TINY_SHMEM is not set
52CONFIG_BASE_SMALL=0 53CONFIG_BASE_SMALL=0
54# CONFIG_SLOB is not set
55CONFIG_OBSOLETE_INTERMODULE=y
53 56
54# 57#
55# Loadable module support 58# Loadable module support
@@ -104,6 +107,7 @@ CONFIG_ARCH_IXP2000=y
104# CONFIG_ARCH_IMX is not set 107# CONFIG_ARCH_IMX is not set
105# CONFIG_ARCH_H720X is not set 108# CONFIG_ARCH_H720X is not set
106# CONFIG_ARCH_AAEC2000 is not set 109# CONFIG_ARCH_AAEC2000 is not set
110# CONFIG_ARCH_AT91RM9200 is not set
107CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y 111CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
108 112
109# 113#
@@ -113,12 +117,13 @@ CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
113# 117#
114# IXP2400/2800 Platforms 118# IXP2400/2800 Platforms
115# 119#
116# CONFIG_ARCH_ENP2611 is not set 120CONFIG_ARCH_ENP2611=y
117CONFIG_ARCH_IXDP2400=y 121CONFIG_ARCH_IXDP2400=y
118# CONFIG_ARCH_IXDP2800 is not set 122CONFIG_ARCH_IXDP2800=y
119CONFIG_ARCH_IXDP2X00=y 123CONFIG_ARCH_IXDP2X00=y
120# CONFIG_ARCH_IXDP2401 is not set 124CONFIG_ARCH_IXDP2401=y
121# CONFIG_ARCH_IXDP2801 is not set 125CONFIG_ARCH_IXDP2801=y
126CONFIG_ARCH_IXDP2X01=y
122# CONFIG_IXP2000_SUPPORT_BROKEN_PCI_IO is not set 127# CONFIG_IXP2000_SUPPORT_BROKEN_PCI_IO is not set
123 128
124# 129#
@@ -141,7 +146,6 @@ CONFIG_XSCALE_PMU=y
141# 146#
142# Bus support 147# Bus support
143# 148#
144CONFIG_ISA_DMA_API=y
145CONFIG_PCI=y 149CONFIG_PCI=y
146CONFIG_PCI_LEGACY_PROC=y 150CONFIG_PCI_LEGACY_PROC=y
147# CONFIG_PCI_DEBUG is not set 151# CONFIG_PCI_DEBUG is not set
@@ -156,6 +160,7 @@ CONFIG_PCI_LEGACY_PROC=y
156# 160#
157# CONFIG_PREEMPT is not set 161# CONFIG_PREEMPT is not set
158# CONFIG_NO_IDLE_HZ is not set 162# CONFIG_NO_IDLE_HZ is not set
163# CONFIG_AEABI is not set
159# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 164# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
160CONFIG_SELECT_MEMORY_MODEL=y 165CONFIG_SELECT_MEMORY_MODEL=y
161CONFIG_FLATMEM_MANUAL=y 166CONFIG_FLATMEM_MANUAL=y
@@ -198,6 +203,7 @@ CONFIG_BINFMT_ELF=y
198# Power management options 203# Power management options
199# 204#
200# CONFIG_PM is not set 205# CONFIG_PM is not set
206# CONFIG_APM is not set
201 207
202# 208#
203# Networking 209# Networking
@@ -243,6 +249,11 @@ CONFIG_TCP_CONG_BIC=y
243# SCTP Configuration (EXPERIMENTAL) 249# SCTP Configuration (EXPERIMENTAL)
244# 250#
245# CONFIG_IP_SCTP is not set 251# CONFIG_IP_SCTP is not set
252
253#
254# TIPC Configuration (EXPERIMENTAL)
255#
256# CONFIG_TIPC is not set
246# CONFIG_ATM is not set 257# CONFIG_ATM is not set
247# CONFIG_BRIDGE is not set 258# CONFIG_BRIDGE is not set
248# CONFIG_VLAN_8021Q is not set 259# CONFIG_VLAN_8021Q is not set
@@ -260,7 +271,6 @@ CONFIG_TCP_CONG_BIC=y
260# QoS and/or fair queueing 271# QoS and/or fair queueing
261# 272#
262# CONFIG_NET_SCHED is not set 273# CONFIG_NET_SCHED is not set
263# CONFIG_NET_CLS_ROUTE is not set
264 274
265# 275#
266# Network testing 276# Network testing
@@ -284,6 +294,11 @@ CONFIG_STANDALONE=y
284# CONFIG_DEBUG_DRIVER is not set 294# CONFIG_DEBUG_DRIVER is not set
285 295
286# 296#
297# Connector - unified userspace <-> kernelspace linker
298#
299# CONFIG_CONNECTOR is not set
300
301#
287# Memory Technology Devices (MTD) 302# Memory Technology Devices (MTD)
288# 303#
289CONFIG_MTD=y 304CONFIG_MTD=y
@@ -331,6 +346,7 @@ CONFIG_MTD_CFI_UTIL=y
331# CONFIG_MTD_RAM is not set 346# CONFIG_MTD_RAM is not set
332# CONFIG_MTD_ROM is not set 347# CONFIG_MTD_ROM is not set
333# CONFIG_MTD_ABSENT is not set 348# CONFIG_MTD_ABSENT is not set
349# CONFIG_MTD_OBSOLETE_CHIPS is not set
334# CONFIG_MTD_XIP is not set 350# CONFIG_MTD_XIP is not set
335 351
336# 352#
@@ -466,6 +482,7 @@ CONFIG_NET_PCI=y
466# CONFIG_ADAPTEC_STARFIRE is not set 482# CONFIG_ADAPTEC_STARFIRE is not set
467# CONFIG_B44 is not set 483# CONFIG_B44 is not set
468# CONFIG_FORCEDETH is not set 484# CONFIG_FORCEDETH is not set
485CONFIG_CS89x0=y
469# CONFIG_DGRS is not set 486# CONFIG_DGRS is not set
470CONFIG_EEPRO100=y 487CONFIG_EEPRO100=y
471# CONFIG_E100 is not set 488# CONFIG_E100 is not set
@@ -486,12 +503,14 @@ CONFIG_EEPRO100=y
486# CONFIG_ACENIC is not set 503# CONFIG_ACENIC is not set
487# CONFIG_DL2K is not set 504# CONFIG_DL2K is not set
488# CONFIG_E1000 is not set 505# CONFIG_E1000 is not set
506CONFIG_ENP2611_MSF_NET=y
489# CONFIG_NS83820 is not set 507# CONFIG_NS83820 is not set
490# CONFIG_HAMACHI is not set 508# CONFIG_HAMACHI is not set
491# CONFIG_YELLOWFIN is not set 509# CONFIG_YELLOWFIN is not set
492# CONFIG_R8169 is not set 510# CONFIG_R8169 is not set
493# CONFIG_SIS190 is not set 511# CONFIG_SIS190 is not set
494# CONFIG_SKGE is not set 512# CONFIG_SKGE is not set
513# CONFIG_SKY2 is not set
495# CONFIG_SK98LIN is not set 514# CONFIG_SK98LIN is not set
496# CONFIG_VIA_VELOCITY is not set 515# CONFIG_VIA_VELOCITY is not set
497# CONFIG_TIGON3 is not set 516# CONFIG_TIGON3 is not set
@@ -595,7 +614,8 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
595# 614#
596CONFIG_SERIAL_8250=y 615CONFIG_SERIAL_8250=y
597CONFIG_SERIAL_8250_CONSOLE=y 616CONFIG_SERIAL_8250_CONSOLE=y
598CONFIG_SERIAL_8250_NR_UARTS=1 617CONFIG_SERIAL_8250_NR_UARTS=3
618CONFIG_SERIAL_8250_RUNTIME_UARTS=4
599# CONFIG_SERIAL_8250_EXTENDED is not set 619# CONFIG_SERIAL_8250_EXTENDED is not set
600 620
601# 621#
@@ -603,7 +623,6 @@ CONFIG_SERIAL_8250_NR_UARTS=1
603# 623#
604CONFIG_SERIAL_CORE=y 624CONFIG_SERIAL_CORE=y
605CONFIG_SERIAL_CORE_CONSOLE=y 625CONFIG_SERIAL_CORE_CONSOLE=y
606# CONFIG_SERIAL_JSM is not set
607CONFIG_UNIX98_PTYS=y 626CONFIG_UNIX98_PTYS=y
608CONFIG_LEGACY_PTYS=y 627CONFIG_LEGACY_PTYS=y
609CONFIG_LEGACY_PTY_COUNT=256 628CONFIG_LEGACY_PTY_COUNT=256
@@ -705,6 +724,12 @@ CONFIG_SENSORS_EEPROM=y
705# CONFIG_I2C_DEBUG_CHIP is not set 724# CONFIG_I2C_DEBUG_CHIP is not set
706 725
707# 726#
727# SPI support
728#
729# CONFIG_SPI is not set
730# CONFIG_SPI_MASTER is not set
731
732#
708# Hardware Monitoring support 733# Hardware Monitoring support
709# 734#
710CONFIG_HWMON=y 735CONFIG_HWMON=y
@@ -738,6 +763,7 @@ CONFIG_HWMON=y
738# CONFIG_SENSORS_SMSC47M1 is not set 763# CONFIG_SENSORS_SMSC47M1 is not set
739# CONFIG_SENSORS_SMSC47B397 is not set 764# CONFIG_SENSORS_SMSC47B397 is not set
740# CONFIG_SENSORS_VIA686A is not set 765# CONFIG_SENSORS_VIA686A is not set
766# CONFIG_SENSORS_VT8231 is not set
741# CONFIG_SENSORS_W83781D is not set 767# CONFIG_SENSORS_W83781D is not set
742# CONFIG_SENSORS_W83792D is not set 768# CONFIG_SENSORS_W83792D is not set
743# CONFIG_SENSORS_W83L785TS is not set 769# CONFIG_SENSORS_W83L785TS is not set
@@ -813,6 +839,7 @@ CONFIG_FS_MBCACHE=y
813# CONFIG_JFS_FS is not set 839# CONFIG_JFS_FS is not set
814CONFIG_FS_POSIX_ACL=y 840CONFIG_FS_POSIX_ACL=y
815# CONFIG_XFS_FS is not set 841# CONFIG_XFS_FS is not set
842# CONFIG_OCFS2_FS is not set
816# CONFIG_MINIX_FS is not set 843# CONFIG_MINIX_FS is not set
817# CONFIG_ROMFS_FS is not set 844# CONFIG_ROMFS_FS is not set
818CONFIG_INOTIFY=y 845CONFIG_INOTIFY=y
@@ -844,6 +871,7 @@ CONFIG_TMPFS=y
844# CONFIG_HUGETLB_PAGE is not set 871# CONFIG_HUGETLB_PAGE is not set
845CONFIG_RAMFS=y 872CONFIG_RAMFS=y
846# CONFIG_RELAYFS_FS is not set 873# CONFIG_RELAYFS_FS is not set
874# CONFIG_CONFIGFS_FS is not set
847 875
848# 876#
849# Miscellaneous filesystems 877# Miscellaneous filesystems
@@ -912,6 +940,7 @@ CONFIG_MSDOS_PARTITION=y
912# CONFIG_SGI_PARTITION is not set 940# CONFIG_SGI_PARTITION is not set
913# CONFIG_ULTRIX_PARTITION is not set 941# CONFIG_ULTRIX_PARTITION is not set
914# CONFIG_SUN_PARTITION is not set 942# CONFIG_SUN_PARTITION is not set
943# CONFIG_KARMA_PARTITION is not set
915# CONFIG_EFI_PARTITION is not set 944# CONFIG_EFI_PARTITION is not set
916 945
917# 946#
@@ -928,12 +957,13 @@ CONFIG_MSDOS_PARTITION=y
928# Kernel hacking 957# Kernel hacking
929# 958#
930# CONFIG_PRINTK_TIME is not set 959# CONFIG_PRINTK_TIME is not set
931CONFIG_DEBUG_KERNEL=y
932CONFIG_MAGIC_SYSRQ=y 960CONFIG_MAGIC_SYSRQ=y
961CONFIG_DEBUG_KERNEL=y
933CONFIG_LOG_BUF_SHIFT=14 962CONFIG_LOG_BUF_SHIFT=14
934CONFIG_DETECT_SOFTLOCKUP=y 963CONFIG_DETECT_SOFTLOCKUP=y
935# CONFIG_SCHEDSTATS is not set 964# CONFIG_SCHEDSTATS is not set
936# CONFIG_DEBUG_SLAB is not set 965# CONFIG_DEBUG_SLAB is not set
966CONFIG_DEBUG_MUTEXES=y
937# CONFIG_DEBUG_SPINLOCK is not set 967# CONFIG_DEBUG_SPINLOCK is not set
938# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 968# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
939# CONFIG_DEBUG_KOBJECT is not set 969# CONFIG_DEBUG_KOBJECT is not set
@@ -942,6 +972,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
942# CONFIG_DEBUG_FS is not set 972# CONFIG_DEBUG_FS is not set
943# CONFIG_DEBUG_VM is not set 973# CONFIG_DEBUG_VM is not set
944CONFIG_FRAME_POINTER=y 974CONFIG_FRAME_POINTER=y
975CONFIG_FORCED_INLINING=y
945# CONFIG_RCU_TORTURE_TEST is not set 976# CONFIG_RCU_TORTURE_TEST is not set
946CONFIG_DEBUG_USER=y 977CONFIG_DEBUG_USER=y
947# CONFIG_DEBUG_WAITQ is not set 978# CONFIG_DEBUG_WAITQ is not set
diff --git a/arch/arm/configs/s3c2410_defconfig b/arch/arm/configs/s3c2410_defconfig
index 6695b07cf1ba..3cec29d56c8e 100644
--- a/arch/arm/configs/s3c2410_defconfig
+++ b/arch/arm/configs/s3c2410_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.16-rc2 3# Linux kernel version: 2.6.16
4# Mon Feb 6 11:17:23 2006 4# Mon Mar 20 20:36:02 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -12,7 +12,6 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y
12# Code maturity level options 12# Code maturity level options
13# 13#
14CONFIG_EXPERIMENTAL=y 14CONFIG_EXPERIMENTAL=y
15CONFIG_CLEAN_COMPILE=y
16CONFIG_BROKEN_ON_SMP=y 15CONFIG_BROKEN_ON_SMP=y
17CONFIG_INIT_ENV_ARG_LIMIT=32 16CONFIG_INIT_ENV_ARG_LIMIT=32
18 17
@@ -87,6 +86,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
87# CONFIG_ARCH_CLPS711X is not set 86# CONFIG_ARCH_CLPS711X is not set
88# CONFIG_ARCH_CO285 is not set 87# CONFIG_ARCH_CO285 is not set
89# CONFIG_ARCH_EBSA110 is not set 88# CONFIG_ARCH_EBSA110 is not set
89# CONFIG_ARCH_EP93XX is not set
90# CONFIG_ARCH_FOOTBRIDGE is not set 90# CONFIG_ARCH_FOOTBRIDGE is not set
91# CONFIG_ARCH_INTEGRATOR is not set 91# CONFIG_ARCH_INTEGRATOR is not set
92# CONFIG_ARCH_IOP3XX is not set 92# CONFIG_ARCH_IOP3XX is not set
@@ -111,6 +111,7 @@ CONFIG_ARCH_S3C2410=y
111# S3C24XX Implementations 111# S3C24XX Implementations
112# 112#
113CONFIG_MACH_ANUBIS=y 113CONFIG_MACH_ANUBIS=y
114CONFIG_MACH_OSIRIS=y
114CONFIG_ARCH_BAST=y 115CONFIG_ARCH_BAST=y
115CONFIG_BAST_PC104_IRQ=y 116CONFIG_BAST_PC104_IRQ=y
116CONFIG_ARCH_H1940=y 117CONFIG_ARCH_H1940=y
@@ -175,6 +176,7 @@ CONFIG_ISA=y
175# 176#
176# CONFIG_PREEMPT is not set 177# CONFIG_PREEMPT is not set
177# CONFIG_NO_IDLE_HZ is not set 178# CONFIG_NO_IDLE_HZ is not set
179CONFIG_HZ=200
178# CONFIG_AEABI is not set 180# CONFIG_AEABI is not set
179# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 181# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
180CONFIG_SELECT_MEMORY_MODEL=y 182CONFIG_SELECT_MEMORY_MODEL=y
@@ -230,6 +232,7 @@ CONFIG_NET=y
230# 232#
231# Networking options 233# Networking options
232# 234#
235# CONFIG_NETDEBUG is not set
233# CONFIG_PACKET is not set 236# CONFIG_PACKET is not set
234CONFIG_UNIX=y 237CONFIG_UNIX=y
235# CONFIG_NET_KEY is not set 238# CONFIG_NET_KEY is not set
@@ -364,7 +367,6 @@ CONFIG_MTD_CFI_UTIL=y
364CONFIG_MTD_ROM=y 367CONFIG_MTD_ROM=y
365# CONFIG_MTD_ABSENT is not set 368# CONFIG_MTD_ABSENT is not set
366# CONFIG_MTD_OBSOLETE_CHIPS is not set 369# CONFIG_MTD_OBSOLETE_CHIPS is not set
367# CONFIG_MTD_XIP is not set
368 370
369# 371#
370# Mapping drivers for chip access 372# Mapping drivers for chip access
@@ -431,6 +433,7 @@ CONFIG_PARPORT_1284=y
431CONFIG_BLK_DEV_LOOP=y 433CONFIG_BLK_DEV_LOOP=y
432# CONFIG_BLK_DEV_CRYPTOLOOP is not set 434# CONFIG_BLK_DEV_CRYPTOLOOP is not set
433CONFIG_BLK_DEV_NBD=m 435CONFIG_BLK_DEV_NBD=m
436# CONFIG_BLK_DEV_UB is not set
434CONFIG_BLK_DEV_RAM=y 437CONFIG_BLK_DEV_RAM=y
435CONFIG_BLK_DEV_RAM_COUNT=16 438CONFIG_BLK_DEV_RAM_COUNT=16
436CONFIG_BLK_DEV_RAM_SIZE=4096 439CONFIG_BLK_DEV_RAM_SIZE=4096
@@ -623,7 +626,6 @@ CONFIG_SERIAL_NONSTANDARD=y
623# CONFIG_MOXA_SMARTIO is not set 626# CONFIG_MOXA_SMARTIO is not set
624# CONFIG_ISI is not set 627# CONFIG_ISI is not set
625# CONFIG_SYNCLINKMP is not set 628# CONFIG_SYNCLINKMP is not set
626# CONFIG_SYNCLINK_GT is not set
627# CONFIG_N_HDLC is not set 629# CONFIG_N_HDLC is not set
628# CONFIG_RISCOM8 is not set 630# CONFIG_RISCOM8 is not set
629# CONFIG_SPECIALIX is not set 631# CONFIG_SPECIALIX is not set
@@ -686,6 +688,11 @@ CONFIG_S3C2410_WATCHDOG=y
686# CONFIG_PCWATCHDOG is not set 688# CONFIG_PCWATCHDOG is not set
687# CONFIG_MIXCOMWD is not set 689# CONFIG_MIXCOMWD is not set
688# CONFIG_WDT is not set 690# CONFIG_WDT is not set
691
692#
693# USB-based Watchdog Cards
694#
695# CONFIG_USBPCWATCHDOG is not set
689# CONFIG_NVRAM is not set 696# CONFIG_NVRAM is not set
690# CONFIG_RTC is not set 697# CONFIG_RTC is not set
691CONFIG_S3C2410_RTC=y 698CONFIG_S3C2410_RTC=y
@@ -751,6 +758,11 @@ CONFIG_SENSORS_EEPROM=m
751# CONFIG_SPI_MASTER is not set 758# CONFIG_SPI_MASTER is not set
752 759
753# 760#
761# Dallas's 1-wire bus
762#
763# CONFIG_W1 is not set
764
765#
754# Hardware Monitoring support 766# Hardware Monitoring support
755# 767#
756CONFIG_HWMON=y 768CONFIG_HWMON=y
@@ -763,6 +775,7 @@ CONFIG_HWMON_VID=m
763# CONFIG_SENSORS_ASB100 is not set 775# CONFIG_SENSORS_ASB100 is not set
764# CONFIG_SENSORS_ATXP1 is not set 776# CONFIG_SENSORS_ATXP1 is not set
765# CONFIG_SENSORS_DS1621 is not set 777# CONFIG_SENSORS_DS1621 is not set
778# CONFIG_SENSORS_F71805F is not set
766# CONFIG_SENSORS_FSCHER is not set 779# CONFIG_SENSORS_FSCHER is not set
767# CONFIG_SENSORS_FSCPOS is not set 780# CONFIG_SENSORS_FSCPOS is not set
768# CONFIG_SENSORS_GL518SM is not set 781# CONFIG_SENSORS_GL518SM is not set
@@ -850,16 +863,138 @@ CONFIG_FONT_8x16=y
850# 863#
851CONFIG_USB_ARCH_HAS_HCD=y 864CONFIG_USB_ARCH_HAS_HCD=y
852CONFIG_USB_ARCH_HAS_OHCI=y 865CONFIG_USB_ARCH_HAS_OHCI=y
853# CONFIG_USB is not set 866CONFIG_USB=y
867# CONFIG_USB_DEBUG is not set
868
869#
870# Miscellaneous USB options
871#
872CONFIG_USB_DEVICEFS=y
873# CONFIG_USB_BANDWIDTH is not set
874# CONFIG_USB_DYNAMIC_MINORS is not set
875# CONFIG_USB_SUSPEND is not set
876# CONFIG_USB_OTG is not set
877
878#
879# USB Host Controller Drivers
880#
881# CONFIG_USB_ISP116X_HCD is not set
882CONFIG_USB_OHCI_HCD=y
883# CONFIG_USB_OHCI_BIG_ENDIAN is not set
884CONFIG_USB_OHCI_LITTLE_ENDIAN=y
885# CONFIG_USB_SL811_HCD is not set
886
887#
888# USB Device Class drivers
889#
890# CONFIG_USB_ACM is not set
891# CONFIG_USB_PRINTER is not set
854 892
855# 893#
856# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 894# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
857# 895#
858 896
859# 897#
898# may also be needed; see USB_STORAGE Help for more information
899#
900# CONFIG_USB_STORAGE is not set
901# CONFIG_USB_LIBUSUAL is not set
902
903#
904# USB Input Devices
905#
906# CONFIG_USB_HID is not set
907
908#
909# USB HID Boot Protocol drivers
910#
911# CONFIG_USB_KBD is not set
912# CONFIG_USB_MOUSE is not set
913# CONFIG_USB_AIPTEK is not set
914# CONFIG_USB_WACOM is not set
915# CONFIG_USB_ACECAD is not set
916# CONFIG_USB_KBTAB is not set
917# CONFIG_USB_POWERMATE is not set
918# CONFIG_USB_MTOUCH is not set
919# CONFIG_USB_ITMTOUCH is not set
920# CONFIG_USB_EGALAX is not set
921# CONFIG_USB_YEALINK is not set
922# CONFIG_USB_XPAD is not set
923# CONFIG_USB_ATI_REMOTE is not set
924# CONFIG_USB_ATI_REMOTE2 is not set
925# CONFIG_USB_KEYSPAN_REMOTE is not set
926# CONFIG_USB_APPLETOUCH is not set
927
928#
929# USB Imaging devices
930#
931# CONFIG_USB_MDC800 is not set
932
933#
934# USB Multimedia devices
935#
936# CONFIG_USB_DABUSB is not set
937
938#
939# Video4Linux support is needed for USB Multimedia device support
940#
941
942#
943# USB Network Adapters
944#
945# CONFIG_USB_CATC is not set
946# CONFIG_USB_KAWETH is not set
947# CONFIG_USB_PEGASUS is not set
948# CONFIG_USB_RTL8150 is not set
949# CONFIG_USB_USBNET is not set
950CONFIG_USB_MON=y
951
952#
953# USB port drivers
954#
955# CONFIG_USB_USS720 is not set
956
957#
958# USB Serial Converter support
959#
960# CONFIG_USB_SERIAL is not set
961
962#
963# USB Miscellaneous drivers
964#
965# CONFIG_USB_EMI62 is not set
966# CONFIG_USB_EMI26 is not set
967# CONFIG_USB_AUERSWALD is not set
968# CONFIG_USB_RIO500 is not set
969# CONFIG_USB_LEGOTOWER is not set
970# CONFIG_USB_LCD is not set
971# CONFIG_USB_LED is not set
972# CONFIG_USB_CYTHERM is not set
973# CONFIG_USB_PHIDGETKIT is not set
974# CONFIG_USB_PHIDGETSERVO is not set
975# CONFIG_USB_IDMOUSE is not set
976# CONFIG_USB_LD is not set
977# CONFIG_USB_TEST is not set
978
979#
980# USB DSL modem support
981#
982
983#
860# USB Gadget Support 984# USB Gadget Support
861# 985#
862# CONFIG_USB_GADGET is not set 986# CONFIG_USB_GADGET is not set
987# CONFIG_USB_GADGET_NET2280 is not set
988# CONFIG_USB_GADGET_PXA2XX is not set
989# CONFIG_USB_GADGET_GOKU is not set
990# CONFIG_USB_GADGET_LH7A40X is not set
991# CONFIG_USB_GADGET_OMAP is not set
992# CONFIG_USB_GADGET_DUMMY_HCD is not set
993# CONFIG_USB_ZERO is not set
994# CONFIG_USB_ETH is not set
995# CONFIG_USB_GADGETFS is not set
996# CONFIG_USB_FILE_STORAGE is not set
997# CONFIG_USB_G_SERIAL is not set
863 998
864# 999#
865# MMC/SD Card support 1000# MMC/SD Card support
diff --git a/arch/arm/kernel/apm.c b/arch/arm/kernel/apm.c
index 766b6c05c6db..2bed290fec76 100644
--- a/arch/arm/kernel/apm.c
+++ b/arch/arm/kernel/apm.c
@@ -357,10 +357,8 @@ static int apm_open(struct inode * inode, struct file * filp)
357{ 357{
358 struct apm_user *as; 358 struct apm_user *as;
359 359
360 as = (struct apm_user *)kmalloc(sizeof(*as), GFP_KERNEL); 360 as = (struct apm_user *)kzalloc(sizeof(*as), GFP_KERNEL);
361 if (as) { 361 if (as) {
362 memset(as, 0, sizeof(*as));
363
364 /* 362 /*
365 * XXX - this is a tiny bit broken, when we consider BSD 363 * XXX - this is a tiny bit broken, when we consider BSD
366 * process accounting. If the device is opened by root, we 364 * process accounting. If the device is opened by root, we
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
index c4923fac8dff..de606dfa8db9 100644
--- a/arch/arm/kernel/bios32.c
+++ b/arch/arm/kernel/bios32.c
@@ -540,12 +540,10 @@ static void __init pcibios_init_hw(struct hw_pci *hw)
540 int nr, busnr; 540 int nr, busnr;
541 541
542 for (nr = busnr = 0; nr < hw->nr_controllers; nr++) { 542 for (nr = busnr = 0; nr < hw->nr_controllers; nr++) {
543 sys = kmalloc(sizeof(struct pci_sys_data), GFP_KERNEL); 543 sys = kzalloc(sizeof(struct pci_sys_data), GFP_KERNEL);
544 if (!sys) 544 if (!sys)
545 panic("PCI: unable to allocate sys data!"); 545 panic("PCI: unable to allocate sys data!");
546 546
547 memset(sys, 0, sizeof(struct pci_sys_data));
548
549 sys->hw = hw; 547 sys->hw = hw;
550 sys->busnr = busnr; 548 sys->busnr = busnr;
551 sys->swizzle = hw->swizzle; 549 sys->swizzle = hw->swizzle;
diff --git a/arch/arm/kernel/debug.S b/arch/arm/kernel/debug.S
index caaa919ab47a..da280bae3d07 100644
--- a/arch/arm/kernel/debug.S
+++ b/arch/arm/kernel/debug.S
@@ -11,7 +11,6 @@
11 */ 11 */
12#include <linux/config.h> 12#include <linux/config.h>
13#include <linux/linkage.h> 13#include <linux/linkage.h>
14#include <asm/hardware.h>
15 14
16 .text 15 .text
17 16
diff --git a/arch/arm/kernel/ecard.c b/arch/arm/kernel/ecard.c
index 74ea29c3205e..00aa225e8d95 100644
--- a/arch/arm/kernel/ecard.c
+++ b/arch/arm/kernel/ecard.c
@@ -807,14 +807,12 @@ static struct expansion_card *__init ecard_alloc_card(int type, int slot)
807 unsigned long base; 807 unsigned long base;
808 int i; 808 int i;
809 809
810 ec = kmalloc(sizeof(ecard_t), GFP_KERNEL); 810 ec = kzalloc(sizeof(ecard_t), GFP_KERNEL);
811 if (!ec) { 811 if (!ec) {
812 ec = ERR_PTR(-ENOMEM); 812 ec = ERR_PTR(-ENOMEM);
813 goto nomem; 813 goto nomem;
814 } 814 }
815 815
816 memset(ec, 0, sizeof(ecard_t));
817
818 ec->slot_no = slot; 816 ec->slot_no = slot;
819 ec->type = type; 817 ec->type = type;
820 ec->irq = NO_IRQ; 818 ec->irq = NO_IRQ;
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index ec48d70c6d8b..355914ffb192 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -484,7 +484,6 @@ call_fpe:
484 movcss r7, r5, lsr #(TIF_USING_IWMMXT + 1) 484 movcss r7, r5, lsr #(TIF_USING_IWMMXT + 1)
485 bcs iwmmxt_task_enable 485 bcs iwmmxt_task_enable
486#endif 486#endif
487 enable_irq
488 add pc, pc, r8, lsr #6 487 add pc, pc, r8, lsr #6
489 mov r0, r0 488 mov r0, r0
490 489
@@ -511,6 +510,7 @@ call_fpe:
511 mov pc, lr @ CP#15 (Control) 510 mov pc, lr @ CP#15 (Control)
512 511
513do_fpe: 512do_fpe:
513 enable_irq
514 ldr r4, .LCfp 514 ldr r4, .LCfp
515 add r10, r10, #TI_FPSTATE @ r10 = workspace 515 add r10, r10, #TI_FPSTATE @ r10 = workspace
516 ldr pc, [r4] @ Call FP module USR entry point 516 ldr pc, [r4] @ Call FP module USR entry point
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index 1aca1775b28f..84277fe818a1 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -28,10 +28,9 @@
28#define PROCINFO_INITFUNC 12 28#define PROCINFO_INITFUNC 12
29 29
30#define MACHINFO_TYPE 0 30#define MACHINFO_TYPE 0
31#define MACHINFO_PHYSRAM 4 31#define MACHINFO_PHYSIO 4
32#define MACHINFO_PHYSIO 8 32#define MACHINFO_PGOFFIO 8
33#define MACHINFO_PGOFFIO 12 33#define MACHINFO_NAME 12
34#define MACHINFO_NAME 16
35 34
36#define KERNEL_RAM_ADDR (PAGE_OFFSET + TEXT_OFFSET) 35#define KERNEL_RAM_ADDR (PAGE_OFFSET + TEXT_OFFSET)
37 36
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c
index 1d50d2b98f55..2d5896b36181 100644
--- a/arch/arm/kernel/irq.c
+++ b/arch/arm/kernel/irq.c
@@ -305,14 +305,19 @@ report_bad_irq(unsigned int irq, struct pt_regs *regs, struct irqdesc *desc, int
305 static int count = 100; 305 static int count = 100;
306 struct irqaction *action; 306 struct irqaction *action;
307 307
308 if (!count || noirqdebug) 308 if (noirqdebug)
309 return; 309 return;
310 310
311 count--;
312
313 if (ret != IRQ_HANDLED && ret != IRQ_NONE) { 311 if (ret != IRQ_HANDLED && ret != IRQ_NONE) {
312 if (!count)
313 return;
314 count--;
314 printk("irq%u: bogus retval mask %x\n", irq, ret); 315 printk("irq%u: bogus retval mask %x\n", irq, ret);
315 } else { 316 } else {
317 desc->irqs_unhandled++;
318 if (desc->irqs_unhandled <= 99900)
319 return;
320 desc->irqs_unhandled = 0;
316 printk("irq%u: nobody cared\n", irq); 321 printk("irq%u: nobody cared\n", irq);
317 } 322 }
318 show_regs(regs); 323 show_regs(regs);
diff --git a/arch/arm/lib/delay.S b/arch/arm/lib/delay.S
index b3fb475b4120..9183b06c0e2f 100644
--- a/arch/arm/lib/delay.S
+++ b/arch/arm/lib/delay.S
@@ -9,28 +9,32 @@
9 */ 9 */
10#include <linux/linkage.h> 10#include <linux/linkage.h>
11#include <asm/assembler.h> 11#include <asm/assembler.h>
12#include <asm/param.h>
12 .text 13 .text
13 14
14.LC0: .word loops_per_jiffy 15.LC0: .word loops_per_jiffy
16.LC1: .word (2199023*HZ)>>11
15 17
16/* 18/*
17 * 0 <= r0 <= 2000 19 * r0 <= 2000
20 * lpj <= 0x01ffffff (max. 3355 bogomips)
21 * HZ <= 1000
18 */ 22 */
23
19ENTRY(__udelay) 24ENTRY(__udelay)
20 mov r2, #0x6800 25 ldr r2, .LC1
21 orr r2, r2, #0x00db
22 mul r0, r2, r0 26 mul r0, r2, r0
23ENTRY(__const_udelay) @ 0 <= r0 <= 0x01ffffff 27ENTRY(__const_udelay) @ 0 <= r0 <= 0x7fffff06
24 ldr r2, .LC0 28 ldr r2, .LC0
25 ldr r2, [r2] @ max = 0x0fffffff 29 ldr r2, [r2] @ max = 0x01ffffff
26 mov r0, r0, lsr #11 @ max = 0x00003fff 30 mov r0, r0, lsr #14 @ max = 0x0001ffff
27 mov r2, r2, lsr #11 @ max = 0x0003ffff 31 mov r2, r2, lsr #10 @ max = 0x00007fff
28 mul r0, r2, r0 @ max = 2^32-1 32 mul r0, r2, r0 @ max = 2^32-1
29 movs r0, r0, lsr #6 33 movs r0, r0, lsr #6
30 RETINSTR(moveq,pc,lr) 34 RETINSTR(moveq,pc,lr)
31 35
32/* 36/*
33 * loops = (r0 * 0x10c6 * 100 * loops_per_jiffy) / 2^32 37 * loops = r0 * HZ * loops_per_jiffy / 1000000
34 * 38 *
35 * Oh, if only we had a cycle counter... 39 * Oh, if only we had a cycle counter...
36 */ 40 */
diff --git a/arch/arm/lib/io-acorn.S b/arch/arm/lib/io-acorn.S
index b153523631c3..1b197ea7aab3 100644
--- a/arch/arm/lib/io-acorn.S
+++ b/arch/arm/lib/io-acorn.S
@@ -12,7 +12,6 @@
12 */ 12 */
13#include <linux/linkage.h> 13#include <linux/linkage.h>
14#include <asm/assembler.h> 14#include <asm/assembler.h>
15#include <asm/hardware.h>
16 15
17 .text 16 .text
18 .align 17 .align
diff --git a/arch/arm/mach-at91rm9200/clock.c b/arch/arm/mach-at91rm9200/clock.c
index ec8195a2a3cc..8b95467c6d61 100644
--- a/arch/arm/mach-at91rm9200/clock.c
+++ b/arch/arm/mach-at91rm9200/clock.c
@@ -201,6 +201,54 @@ static struct clk ohci_clk = {
201 .pmc_mask = 1 << AT91_ID_UHP, 201 .pmc_mask = 1 << AT91_ID_UHP,
202 .mode = pmc_periph_mode, 202 .mode = pmc_periph_mode,
203}; 203};
204static struct clk ether_clk = {
205 .name = "ether_clk",
206 .parent = &mck,
207 .pmc_mask = 1 << AT91_ID_EMAC,
208 .mode = pmc_periph_mode,
209};
210static struct clk mmc_clk = {
211 .name = "mci_clk",
212 .parent = &mck,
213 .pmc_mask = 1 << AT91_ID_MCI,
214 .mode = pmc_periph_mode,
215};
216static struct clk twi_clk = {
217 .name = "twi_clk",
218 .parent = &mck,
219 .pmc_mask = 1 << AT91_ID_TWI,
220 .mode = pmc_periph_mode,
221};
222static struct clk usart0_clk = {
223 .name = "usart0_clk",
224 .parent = &mck,
225 .pmc_mask = 1 << AT91_ID_US0,
226 .mode = pmc_periph_mode,
227};
228static struct clk usart1_clk = {
229 .name = "usart1_clk",
230 .parent = &mck,
231 .pmc_mask = 1 << AT91_ID_US1,
232 .mode = pmc_periph_mode,
233};
234static struct clk usart2_clk = {
235 .name = "usart2_clk",
236 .parent = &mck,
237 .pmc_mask = 1 << AT91_ID_US2,
238 .mode = pmc_periph_mode,
239};
240static struct clk usart3_clk = {
241 .name = "usart3_clk",
242 .parent = &mck,
243 .pmc_mask = 1 << AT91_ID_US3,
244 .mode = pmc_periph_mode,
245};
246static struct clk spi_clk = {
247 .name = "spi0_clk",
248 .parent = &mck,
249 .pmc_mask = 1 << AT91_ID_SPI,
250 .mode = pmc_periph_mode,
251};
204 252
205static struct clk *const clock_list[] = { 253static struct clk *const clock_list[] = {
206 /* four primary clocks -- MUST BE FIRST! */ 254 /* four primary clocks -- MUST BE FIRST! */
@@ -223,15 +271,18 @@ static struct clk *const clock_list[] = {
223 271
224 /* MCK and peripherals */ 272 /* MCK and peripherals */
225 &mck, 273 &mck,
226 // usart0..usart3 274 &usart0_clk,
227 // mmc 275 &usart1_clk,
276 &usart2_clk,
277 &usart3_clk,
278 &mmc_clk,
228 &udc_clk, 279 &udc_clk,
229 // i2c 280 &twi_clk,
230 // spi 281 &spi_clk,
231 // ssc0..ssc2 282 // ssc0..ssc2
232 // tc0..tc5 283 // tc0..tc5
233 &ohci_clk, 284 &ohci_clk,
234 // ether 285 &ether_clk,
235}; 286};
236 287
237 288
@@ -360,7 +411,7 @@ int clk_set_rate(struct clk *clk, unsigned long rate)
360 u32 pckr; 411 u32 pckr;
361 412
362 pckr = at91_sys_read(AT91_PMC_PCKR(clk->id)); 413 pckr = at91_sys_read(AT91_PMC_PCKR(clk->id));
363 pckr &= 0x03; 414 pckr &= AT91_PMC_CSS_PLLB; /* clock selection */
364 pckr |= prescale << 2; 415 pckr |= prescale << 2;
365 at91_sys_write(AT91_PMC_PCKR(clk->id), pckr); 416 at91_sys_write(AT91_PMC_PCKR(clk->id), pckr);
366 clk->rate_hz = actual; 417 clk->rate_hz = actual;
@@ -440,7 +491,7 @@ static int at91_clk_show(struct seq_file *s, void *unused)
440 else 491 else
441 state = ""; 492 state = "";
442 493
443 seq_printf(s, "%-10s users=%d %-3s %9ld Hz %s\n", 494 seq_printf(s, "%-10s users=%2d %-3s %9ld Hz %s\n",
444 clk->name, clk->users, state, clk_get_rate(clk), 495 clk->name, clk->users, state, clk_get_rate(clk),
445 clk->parent ? clk->parent->name : ""); 496 clk->parent ? clk->parent->name : "");
446 } 497 }
@@ -483,11 +534,18 @@ static u32 __init at91_pll_rate(struct clk *pll, u32 freq, u32 reg)
483 freq *= mul + 1; 534 freq *= mul + 1;
484 } else 535 } else
485 freq = 0; 536 freq = 0;
486 if (pll == &pllb && (reg & (1 << 28))) 537
487 freq /= 2;
488 return freq; 538 return freq;
489} 539}
490 540
541static u32 __init at91_usb_rate(struct clk *pll, u32 freq, u32 reg)
542{
543 if (pll == &pllb && (reg & AT91_PMC_USB96M))
544 return freq / 2;
545 else
546 return freq;
547}
548
491static unsigned __init at91_pll_calc(unsigned main_freq, unsigned out_freq) 549static unsigned __init at91_pll_calc(unsigned main_freq, unsigned out_freq)
492{ 550{
493 unsigned i, div = 0, mul = 0, diff = 1 << 30; 551 unsigned i, div = 0, mul = 0, diff = 1 << 30;
@@ -550,8 +608,8 @@ int __init at91_clock_init(unsigned long main_clock)
550 if (!main_clock) { 608 if (!main_clock) {
551 do { 609 do {
552 tmp = at91_sys_read(AT91_CKGR_MCFR); 610 tmp = at91_sys_read(AT91_CKGR_MCFR);
553 } while (!(tmp & 0x10000)); 611 } while (!(tmp & AT91_PMC_MAINRDY));
554 main_clock = (tmp & 0xffff) * (AT91_SLOW_CLOCK / 16); 612 main_clock = (tmp & AT91_PMC_MAINF) * (AT91_SLOW_CLOCK / 16);
555 } 613 }
556 main_clk.rate_hz = main_clock; 614 main_clk.rate_hz = main_clock;
557 615
@@ -566,13 +624,16 @@ int __init at91_clock_init(unsigned long main_clock)
566 * 624 *
567 * REVISIT: assumes MCK doesn't derive from PLLB! 625 * REVISIT: assumes MCK doesn't derive from PLLB!
568 */ 626 */
569 at91_pllb_usb_init = at91_pll_calc(main_clock, 48000000 * 2) | 0x10000000; 627 at91_pllb_usb_init = at91_pll_calc(main_clock, 48000000 * 2) | AT91_PMC_USB96M;
570 pllb.rate_hz = at91_pll_rate(&pllb, main_clock, at91_pllb_usb_init); 628 pllb.rate_hz = at91_pll_rate(&pllb, main_clock, at91_pllb_usb_init);
571 at91_sys_write(AT91_PMC_PCDR, (1 << AT91_ID_UHP) | (1 << AT91_ID_UDP)); 629 at91_sys_write(AT91_PMC_PCDR, (1 << AT91_ID_UHP) | (1 << AT91_ID_UDP));
572 at91_sys_write(AT91_PMC_SCDR, AT91_PMC_UHP | AT91_PMC_UDP); 630 at91_sys_write(AT91_PMC_SCDR, AT91_PMC_UHP | AT91_PMC_UDP);
573 at91_sys_write(AT91_CKGR_PLLBR, 0); 631 at91_sys_write(AT91_CKGR_PLLBR, 0);
574 at91_sys_write(AT91_PMC_SCER, AT91_PMC_MCKUDP); 632 at91_sys_write(AT91_PMC_SCER, AT91_PMC_MCKUDP);
575 633
634 udpck.rate_hz = at91_usb_rate(&pllb, pllb.rate_hz, at91_pllb_usb_init);
635 uhpck.rate_hz = at91_usb_rate(&pllb, pllb.rate_hz, at91_pllb_usb_init);
636
576 /* 637 /*
577 * MCK and CPU derive from one of those primary clocks. 638 * MCK and CPU derive from one of those primary clocks.
578 * For now, assume this parentage won't change. 639 * For now, assume this parentage won't change.
diff --git a/arch/arm/mach-at91rm9200/gpio.c b/arch/arm/mach-at91rm9200/gpio.c
index 0e396feec468..5ab46274e1a3 100644
--- a/arch/arm/mach-at91rm9200/gpio.c
+++ b/arch/arm/mach-at91rm9200/gpio.c
@@ -261,7 +261,7 @@ static void gpio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs
261 void __iomem *pio; 261 void __iomem *pio;
262 u32 isr; 262 u32 isr;
263 263
264 pio = (void __force __iomem *) desc->chipdata; 264 pio = desc->base;
265 265
266 /* temporarily mask (level sensitive) parent IRQ */ 266 /* temporarily mask (level sensitive) parent IRQ */
267 desc->chip->ack(irq); 267 desc->chip->ack(irq);
@@ -312,7 +312,7 @@ void __init at91_gpio_irq_setup(unsigned banks)
312 __raw_writel(~0, controller + PIO_IDR); 312 __raw_writel(~0, controller + PIO_IDR);
313 313
314 set_irq_data(id, (void *) pin); 314 set_irq_data(id, (void *) pin);
315 set_irq_chipdata(id, (void __force *) controller); 315 set_irq_chipdata(id, controller);
316 316
317 for (i = 0; i < 32; i++, pin++) { 317 for (i = 0; i < 32; i++, pin++) {
318 set_irq_chip(pin, &gpio_irqchip); 318 set_irq_chip(pin, &gpio_irqchip);
diff --git a/arch/arm/mach-at91rm9200/time.c b/arch/arm/mach-at91rm9200/time.c
index 1b6dd2deeb22..7ffcf443b99f 100644
--- a/arch/arm/mach-at91rm9200/time.c
+++ b/arch/arm/mach-at91rm9200/time.c
@@ -71,11 +71,11 @@ static irqreturn_t at91rm9200_timer_interrupt(int irq, void *dev_id, struct pt_r
71 if (at91_sys_read(AT91_ST_SR) & AT91_ST_PITS) { /* This is a shared interrupt */ 71 if (at91_sys_read(AT91_ST_SR) & AT91_ST_PITS) { /* This is a shared interrupt */
72 write_seqlock(&xtime_lock); 72 write_seqlock(&xtime_lock);
73 73
74 do { 74 while (((read_CRTR() - at91_sys_read(AT91_ST_RTAR)) & AT91_ST_ALMV) >= LATCH) {
75 timer_tick(regs); 75 timer_tick(regs);
76 rtar = (at91_sys_read(AT91_ST_RTAR) + LATCH) & AT91_ST_ALMV; 76 rtar = (at91_sys_read(AT91_ST_RTAR) + LATCH) & AT91_ST_ALMV;
77 at91_sys_write(AT91_ST_RTAR, rtar); 77 at91_sys_write(AT91_ST_RTAR, rtar);
78 } while (((read_CRTR() - at91_sys_read(AT91_ST_RTAR)) & AT91_ST_ALMV) >= LATCH); 78 }
79 79
80 write_sequnlock(&xtime_lock); 80 write_sequnlock(&xtime_lock);
81 81
diff --git a/arch/arm/mach-ep93xx/Kconfig b/arch/arm/mach-ep93xx/Kconfig
new file mode 100644
index 000000000000..cec5a21ca4e3
--- /dev/null
+++ b/arch/arm/mach-ep93xx/Kconfig
@@ -0,0 +1,21 @@
1if ARCH_EP93XX
2
3menu "Cirrus EP93xx Implementation Options"
4
5comment "EP93xx Platforms"
6
7config MACH_GESBC9312
8 bool "Support Glomation GESBC-9312-sx"
9 help
10 Say 'Y' here if you want your kernel to support the Glomation
11 GESBC-9312-sx board.
12
13config MACH_TS72XX
14 bool "Support Technologic Systems TS-72xx SBC"
15 help
16 Say 'Y' here if you want your kernel to support the
17 Technologic Systems TS-72xx board.
18
19endmenu
20
21endif
diff --git a/arch/arm/mach-ep93xx/Makefile b/arch/arm/mach-ep93xx/Makefile
new file mode 100644
index 000000000000..5393af989e94
--- /dev/null
+++ b/arch/arm/mach-ep93xx/Makefile
@@ -0,0 +1,10 @@
1#
2# Makefile for the linux kernel.
3#
4obj-y := core.o
5obj-m :=
6obj-n :=
7obj- :=
8
9obj-$(CONFIG_MACH_GESBC9312) += gesbc9312.o
10obj-$(CONFIG_MACH_TS72XX) += ts72xx.o
diff --git a/arch/arm/mach-ep93xx/Makefile.boot b/arch/arm/mach-ep93xx/Makefile.boot
new file mode 100644
index 000000000000..d5561ad15bad
--- /dev/null
+++ b/arch/arm/mach-ep93xx/Makefile.boot
@@ -0,0 +1,2 @@
1 zreladdr-y := 0x00008000
2params_phys-y := 0x00000100
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c
new file mode 100644
index 000000000000..865427bfad7e
--- /dev/null
+++ b/arch/arm/mach-ep93xx/core.c
@@ -0,0 +1,374 @@
1/*
2 * arch/arm/mach-ep93xx/core.c
3 * Core routines for Cirrus EP93xx chips.
4 *
5 * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org>
6 *
7 * Thanks go to Michael Burian and Ray Lehtiniemi for their key
8 * role in the ep93xx linux community.
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 as published by
12 * the Free Software Foundation; either version 2 of the License, or (at
13 * your option) any later version.
14 */
15
16#include <linux/config.h>
17#include <linux/kernel.h>
18#include <linux/init.h>
19#include <linux/spinlock.h>
20#include <linux/sched.h>
21#include <linux/interrupt.h>
22#include <linux/serial.h>
23#include <linux/tty.h>
24#include <linux/bitops.h>
25#include <linux/serial.h>
26#include <linux/serial_8250.h>
27#include <linux/serial_core.h>
28#include <linux/device.h>
29#include <linux/mm.h>
30#include <linux/time.h>
31#include <linux/timex.h>
32#include <linux/delay.h>
33#include <linux/amba/bus.h>
34
35#include <asm/types.h>
36#include <asm/setup.h>
37#include <asm/memory.h>
38#include <asm/hardware.h>
39#include <asm/irq.h>
40#include <asm/system.h>
41#include <asm/tlbflush.h>
42#include <asm/pgtable.h>
43#include <asm/io.h>
44
45#include <asm/mach/map.h>
46#include <asm/mach/time.h>
47#include <asm/mach/irq.h>
48#include <asm/arch/gpio.h>
49
50#include <asm/hardware/vic.h>
51
52
53/*************************************************************************
54 * Static I/O mappings that are needed for all EP93xx platforms
55 *************************************************************************/
56static struct map_desc ep93xx_io_desc[] __initdata = {
57 {
58 .virtual = EP93XX_AHB_VIRT_BASE,
59 .pfn = __phys_to_pfn(EP93XX_AHB_PHYS_BASE),
60 .length = EP93XX_AHB_SIZE,
61 .type = MT_DEVICE,
62 }, {
63 .virtual = EP93XX_APB_VIRT_BASE,
64 .pfn = __phys_to_pfn(EP93XX_APB_PHYS_BASE),
65 .length = EP93XX_APB_SIZE,
66 .type = MT_DEVICE,
67 },
68};
69
70void __init ep93xx_map_io(void)
71{
72 iotable_init(ep93xx_io_desc, ARRAY_SIZE(ep93xx_io_desc));
73}
74
75
76/*************************************************************************
77 * Timer handling for EP93xx
78 *************************************************************************
79 * The ep93xx has four internal timers. Timers 1, 2 (both 16 bit) and
80 * 3 (32 bit) count down at 508 kHz, are self-reloading, and can generate
81 * an interrupt on underflow. Timer 4 (40 bit) counts down at 983.04 kHz,
82 * is free-running, and can't generate interrupts.
83 *
84 * The 508 kHz timers are ideal for use for the timer interrupt, as the
85 * most common values of HZ divide 508 kHz nicely. We pick one of the 16
86 * bit timers (timer 1) since we don't need more than 16 bits of reload
87 * value as long as HZ >= 8.
88 *
89 * The higher clock rate of timer 4 makes it a better choice than the
90 * other timers for use in gettimeoffset(), while the fact that it can't
91 * generate interrupts means we don't have to worry about not being able
92 * to use this timer for something else. We also use timer 4 for keeping
93 * track of lost jiffies.
94 */
95static unsigned int last_jiffy_time;
96
97#define TIMER4_TICKS_PER_JIFFY ((CLOCK_TICK_RATE + (HZ/2)) / HZ)
98
99static int ep93xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
100{
101 write_seqlock(&xtime_lock);
102
103 __raw_writel(1, EP93XX_TIMER1_CLEAR);
104 while (__raw_readl(EP93XX_TIMER4_VALUE_LOW) - last_jiffy_time
105 >= TIMER4_TICKS_PER_JIFFY) {
106 last_jiffy_time += TIMER4_TICKS_PER_JIFFY;
107 timer_tick(regs);
108 }
109
110 write_sequnlock(&xtime_lock);
111
112 return IRQ_HANDLED;
113}
114
115static struct irqaction ep93xx_timer_irq = {
116 .name = "ep93xx timer",
117 .flags = SA_INTERRUPT | SA_TIMER,
118 .handler = ep93xx_timer_interrupt,
119};
120
121static void __init ep93xx_timer_init(void)
122{
123 /* Enable periodic HZ timer. */
124 __raw_writel(0x48, EP93XX_TIMER1_CONTROL);
125 __raw_writel((508000 / HZ) - 1, EP93XX_TIMER1_LOAD);
126 __raw_writel(0xc8, EP93XX_TIMER1_CONTROL);
127
128 /* Enable lost jiffy timer. */
129 __raw_writel(0x100, EP93XX_TIMER4_VALUE_HIGH);
130
131 setup_irq(IRQ_EP93XX_TIMER1, &ep93xx_timer_irq);
132}
133
134static unsigned long ep93xx_gettimeoffset(void)
135{
136 int offset;
137
138 offset = __raw_readl(EP93XX_TIMER4_VALUE_LOW) - last_jiffy_time;
139
140 /* Calculate (1000000 / 983040) * offset. */
141 return offset + (53 * offset / 3072);
142}
143
144struct sys_timer ep93xx_timer = {
145 .init = ep93xx_timer_init,
146 .offset = ep93xx_gettimeoffset,
147};
148
149
150/*************************************************************************
151 * GPIO handling for EP93xx
152 *************************************************************************/
153static unsigned char gpio_int_enable[2];
154static unsigned char gpio_int_type1[2];
155static unsigned char gpio_int_type2[2];
156
157static void update_gpio_ab_int_params(int port)
158{
159 if (port == 0) {
160 __raw_writeb(0, EP93XX_GPIO_A_INT_ENABLE);
161 __raw_writeb(gpio_int_type2[0], EP93XX_GPIO_A_INT_TYPE2);
162 __raw_writeb(gpio_int_type1[0], EP93XX_GPIO_A_INT_TYPE1);
163 __raw_writeb(gpio_int_enable[0], EP93XX_GPIO_A_INT_ENABLE);
164 } else if (port == 1) {
165 __raw_writeb(0, EP93XX_GPIO_B_INT_ENABLE);
166 __raw_writeb(gpio_int_type2[1], EP93XX_GPIO_B_INT_TYPE2);
167 __raw_writeb(gpio_int_type1[1], EP93XX_GPIO_B_INT_TYPE1);
168 __raw_writeb(gpio_int_enable[1], EP93XX_GPIO_B_INT_ENABLE);
169 }
170}
171
172
173static unsigned char data_register_offset[8] = {
174 0x00, 0x04, 0x08, 0x0c, 0x20, 0x30, 0x38, 0x40,
175};
176
177static unsigned char data_direction_register_offset[8] = {
178 0x10, 0x14, 0x18, 0x1c, 0x24, 0x34, 0x3c, 0x44,
179};
180
181void gpio_line_config(int line, int direction)
182{
183 unsigned int data_direction_register;
184 unsigned long flags;
185 unsigned char v;
186
187 data_direction_register =
188 EP93XX_GPIO_REG(data_direction_register_offset[line >> 3]);
189
190 local_irq_save(flags);
191 if (direction == GPIO_OUT) {
192 if (line >= 0 && line < 16) {
193 gpio_int_enable[line >> 3] &= ~(1 << (line & 7));
194 update_gpio_ab_int_params(line >> 3);
195 }
196
197 v = __raw_readb(data_direction_register);
198 v |= 1 << (line & 7);
199 __raw_writeb(v, data_direction_register);
200 } else if (direction == GPIO_IN) {
201 v = __raw_readb(data_direction_register);
202 v &= ~(1 << (line & 7));
203 __raw_writeb(v, data_direction_register);
204 }
205 local_irq_restore(flags);
206}
207EXPORT_SYMBOL(gpio_line_config);
208
209int gpio_line_get(int line)
210{
211 unsigned int data_register;
212
213 data_register = EP93XX_GPIO_REG(data_register_offset[line >> 3]);
214
215 return !!(__raw_readb(data_register) & (1 << (line & 7)));
216}
217EXPORT_SYMBOL(gpio_line_get);
218
219void gpio_line_set(int line, int value)
220{
221 unsigned int data_register;
222 unsigned long flags;
223 unsigned char v;
224
225 data_register = EP93XX_GPIO_REG(data_register_offset[line >> 3]);
226
227 local_irq_save(flags);
228 if (value == EP93XX_GPIO_HIGH) {
229 v = __raw_readb(data_register);
230 v |= 1 << (line & 7);
231 __raw_writeb(v, data_register);
232 } else if (value == EP93XX_GPIO_LOW) {
233 v = __raw_readb(data_register);
234 v &= ~(1 << (line & 7));
235 __raw_writeb(v, data_register);
236 }
237 local_irq_restore(flags);
238}
239EXPORT_SYMBOL(gpio_line_set);
240
241
242/*************************************************************************
243 * EP93xx IRQ handling
244 *************************************************************************/
245static void ep93xx_gpio_ab_irq_handler(unsigned int irq,
246 struct irqdesc *desc, struct pt_regs *regs)
247{
248 unsigned char status;
249 int i;
250
251 status = __raw_readb(EP93XX_GPIO_A_INT_STATUS);
252 for (i = 0; i < 8; i++) {
253 if (status & (1 << i)) {
254 desc = irq_desc + IRQ_EP93XX_GPIO(0) + i;
255 desc_handle_irq(IRQ_EP93XX_GPIO(0) + i, desc, regs);
256 }
257 }
258
259 status = __raw_readb(EP93XX_GPIO_B_INT_STATUS);
260 for (i = 0; i < 8; i++) {
261 if (status & (1 << i)) {
262 desc = irq_desc + IRQ_EP93XX_GPIO(8) + i;
263 desc_handle_irq(IRQ_EP93XX_GPIO(8) + i, desc, regs);
264 }
265 }
266}
267
268static void ep93xx_gpio_ab_irq_mask_ack(unsigned int irq)
269{
270 int line = irq - IRQ_EP93XX_GPIO(0);
271 int port = line >> 3;
272
273 gpio_int_enable[port] &= ~(1 << (line & 7));
274 update_gpio_ab_int_params(port);
275
276 if (line >> 3) {
277 __raw_writel(1 << (line & 7), EP93XX_GPIO_B_INT_ACK);
278 } else {
279 __raw_writel(1 << (line & 7), EP93XX_GPIO_A_INT_ACK);
280 }
281}
282
283static void ep93xx_gpio_ab_irq_mask(unsigned int irq)
284{
285 int line = irq - IRQ_EP93XX_GPIO(0);
286 int port = line >> 3;
287
288 gpio_int_enable[port] &= ~(1 << (line & 7));
289 update_gpio_ab_int_params(port);
290}
291
292static void ep93xx_gpio_ab_irq_unmask(unsigned int irq)
293{
294 int line = irq - IRQ_EP93XX_GPIO(0);
295 int port = line >> 3;
296
297 gpio_int_enable[port] |= 1 << (line & 7);
298 update_gpio_ab_int_params(port);
299}
300
301
302/*
303 * gpio_int_type1 controls whether the interrupt is level (0) or
304 * edge (1) triggered, while gpio_int_type2 controls whether it
305 * triggers on low/falling (0) or high/rising (1).
306 */
307static int ep93xx_gpio_ab_irq_type(unsigned int irq, unsigned int type)
308{
309 int port;
310 int line;
311
312 line = irq - IRQ_EP93XX_GPIO(0);
313 gpio_line_config(line, GPIO_IN);
314
315 port = line >> 3;
316 line &= 7;
317
318 if (type & IRQT_RISING) {
319 gpio_int_type1[port] |= 1 << line;
320 gpio_int_type2[port] |= 1 << line;
321 } else if (type & IRQT_FALLING) {
322 gpio_int_type1[port] |= 1 << line;
323 gpio_int_type2[port] &= ~(1 << line);
324 } else if (type & IRQT_HIGH) {
325 gpio_int_type1[port] &= ~(1 << line);
326 gpio_int_type2[port] |= 1 << line;
327 } else if (type & IRQT_LOW) {
328 gpio_int_type1[port] &= ~(1 << line);
329 gpio_int_type2[port] &= ~(1 << line);
330 }
331 update_gpio_ab_int_params(port);
332
333 return 0;
334}
335
336static struct irqchip ep93xx_gpio_ab_irq_chip = {
337 .ack = ep93xx_gpio_ab_irq_mask_ack,
338 .mask = ep93xx_gpio_ab_irq_mask,
339 .unmask = ep93xx_gpio_ab_irq_unmask,
340 .set_type = ep93xx_gpio_ab_irq_type,
341};
342
343
344void __init ep93xx_init_irq(void)
345{
346 int irq;
347
348 vic_init((void *)EP93XX_VIC1_BASE, 0, EP93XX_VIC1_VALID_IRQ_MASK);
349 vic_init((void *)EP93XX_VIC2_BASE, 32, EP93XX_VIC2_VALID_IRQ_MASK);
350
351 for (irq = IRQ_EP93XX_GPIO(0) ; irq <= IRQ_EP93XX_GPIO(15); irq++) {
352 set_irq_chip(irq, &ep93xx_gpio_ab_irq_chip);
353 set_irq_handler(irq, do_level_IRQ);
354 set_irq_flags(irq, IRQF_VALID);
355 }
356 set_irq_chained_handler(IRQ_EP93XX_GPIO_AB, ep93xx_gpio_ab_irq_handler);
357}
358
359
360/*************************************************************************
361 * EP93xx peripheral handling
362 *************************************************************************/
363void __init ep93xx_init_devices(void)
364{
365 unsigned int v;
366
367 /*
368 * Disallow access to MaverickCrunch initially.
369 */
370 v = __raw_readl(EP93XX_SYSCON_DEVICE_CONFIG);
371 v &= ~EP93XX_SYSCON_DEVICE_CONFIG_CRUNCH_ENABLE;
372 __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
373 __raw_writel(v, EP93XX_SYSCON_DEVICE_CONFIG);
374}
diff --git a/arch/arm/mach-ep93xx/gesbc9312.c b/arch/arm/mach-ep93xx/gesbc9312.c
new file mode 100644
index 000000000000..d18fcb1a2f1b
--- /dev/null
+++ b/arch/arm/mach-ep93xx/gesbc9312.c
@@ -0,0 +1,40 @@
1/*
2 * arch/arm/mach-ep93xx/gesbc9312.c
3 * Glomation GESBC-9312-sx support.
4 *
5 * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org>
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 as published by
9 * the Free Software Foundation; either version 2 of the License, or (at
10 * your option) any later version.
11 */
12
13#include <linux/config.h>
14#include <linux/kernel.h>
15#include <linux/init.h>
16#include <linux/mm.h>
17#include <linux/sched.h>
18#include <linux/interrupt.h>
19#include <linux/mtd/physmap.h>
20#include <asm/io.h>
21#include <asm/hardware.h>
22#include <asm/mach-types.h>
23#include <asm/mach/arch.h>
24
25static void __init gesbc9312_init_machine(void)
26{
27 ep93xx_init_devices();
28 physmap_configure(0x60000000, 0x00800000, 4, NULL);
29}
30
31MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx")
32 /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
33 .phys_io = EP93XX_APB_PHYS_BASE,
34 .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc,
35 .boot_params = 0x00000100,
36 .map_io = ep93xx_map_io,
37 .init_irq = ep93xx_init_irq,
38 .timer = &ep93xx_timer,
39 .init_machine = gesbc9312_init_machine,
40MACHINE_END
diff --git a/arch/arm/mach-ep93xx/ts72xx.c b/arch/arm/mach-ep93xx/ts72xx.c
new file mode 100644
index 000000000000..777e75daa8a5
--- /dev/null
+++ b/arch/arm/mach-ep93xx/ts72xx.c
@@ -0,0 +1,118 @@
1/*
2 * arch/arm/mach-ep93xx/ts72xx.c
3 * Technologic Systems TS72xx SBC support.
4 *
5 * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org>
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 as published by
9 * the Free Software Foundation; either version 2 of the License, or (at
10 * your option) any later version.
11 */
12
13#include <linux/config.h>
14#include <linux/kernel.h>
15#include <linux/init.h>
16#include <linux/mm.h>
17#include <linux/sched.h>
18#include <linux/interrupt.h>
19#include <linux/mtd/physmap.h>
20#include <asm/io.h>
21#include <asm/hardware.h>
22#include <asm/mach-types.h>
23#include <asm/mach/arch.h>
24#include <asm/mach/map.h>
25
26static struct map_desc ts72xx_io_desc[] __initdata = {
27 {
28 .virtual = TS72XX_MODEL_VIRT_BASE,
29 .pfn = __phys_to_pfn(TS72XX_MODEL_PHYS_BASE),
30 .length = TS72XX_MODEL_SIZE,
31 .type = MT_DEVICE,
32 }, {
33 .virtual = TS72XX_OPTIONS_VIRT_BASE,
34 .pfn = __phys_to_pfn(TS72XX_OPTIONS_PHYS_BASE),
35 .length = TS72XX_OPTIONS_SIZE,
36 .type = MT_DEVICE,
37 }, {
38 .virtual = TS72XX_OPTIONS2_VIRT_BASE,
39 .pfn = __phys_to_pfn(TS72XX_OPTIONS2_PHYS_BASE),
40 .length = TS72XX_OPTIONS2_SIZE,
41 .type = MT_DEVICE,
42 }
43};
44
45static struct map_desc ts72xx_nand_io_desc[] __initdata = {
46 {
47 .virtual = TS72XX_NAND_DATA_VIRT_BASE,
48 .pfn = __phys_to_pfn(TS72XX_NAND1_DATA_PHYS_BASE),
49 .length = TS72XX_NAND_DATA_SIZE,
50 .type = MT_DEVICE,
51 }, {
52 .virtual = TS72XX_NAND_CONTROL_VIRT_BASE,
53 .pfn = __phys_to_pfn(TS72XX_NAND1_CONTROL_PHYS_BASE),
54 .length = TS72XX_NAND_CONTROL_SIZE,
55 .type = MT_DEVICE,
56 }, {
57 .virtual = TS72XX_NAND_BUSY_VIRT_BASE,
58 .pfn = __phys_to_pfn(TS72XX_NAND1_BUSY_PHYS_BASE),
59 .length = TS72XX_NAND_BUSY_SIZE,
60 .type = MT_DEVICE,
61 }
62};
63
64static struct map_desc ts72xx_alternate_nand_io_desc[] __initdata = {
65 {
66 .virtual = TS72XX_NAND_DATA_VIRT_BASE,
67 .pfn = __phys_to_pfn(TS72XX_NAND2_DATA_PHYS_BASE),
68 .length = TS72XX_NAND_DATA_SIZE,
69 .type = MT_DEVICE,
70 }, {
71 .virtual = TS72XX_NAND_CONTROL_VIRT_BASE,
72 .pfn = __phys_to_pfn(TS72XX_NAND2_CONTROL_PHYS_BASE),
73 .length = TS72XX_NAND_CONTROL_SIZE,
74 .type = MT_DEVICE,
75 }, {
76 .virtual = TS72XX_NAND_BUSY_VIRT_BASE,
77 .pfn = __phys_to_pfn(TS72XX_NAND2_BUSY_PHYS_BASE),
78 .length = TS72XX_NAND_BUSY_SIZE,
79 .type = MT_DEVICE,
80 }
81};
82
83static void __init ts72xx_map_io(void)
84{
85 ep93xx_map_io();
86 iotable_init(ts72xx_io_desc, ARRAY_SIZE(ts72xx_io_desc));
87
88 /*
89 * The TS-7200 has NOR flash, the other models have NAND flash.
90 */
91 if (!board_is_ts7200()) {
92 if (is_ts9420_installed()) {
93 iotable_init(ts72xx_alternate_nand_io_desc,
94 ARRAY_SIZE(ts72xx_alternate_nand_io_desc));
95 } else {
96 iotable_init(ts72xx_nand_io_desc,
97 ARRAY_SIZE(ts72xx_nand_io_desc));
98 }
99 }
100}
101
102static void __init ts72xx_init_machine(void)
103{
104 ep93xx_init_devices();
105 if (board_is_ts7200())
106 physmap_configure(TS72XX_NOR_PHYS_BASE, 0x01000000, 1, NULL);
107}
108
109MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC")
110 /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
111 .phys_io = EP93XX_APB_PHYS_BASE,
112 .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc,
113 .boot_params = 0x00000100,
114 .map_io = ts72xx_map_io,
115 .init_irq = ep93xx_init_irq,
116 .timer = &ep93xx_timer,
117 .init_machine = ts72xx_init_machine,
118MACHINE_END
diff --git a/arch/arm/mach-footbridge/dc21285.c b/arch/arm/mach-footbridge/dc21285.c
index e79884eea1f7..5dace2597838 100644
--- a/arch/arm/mach-footbridge/dc21285.c
+++ b/arch/arm/mach-footbridge/dc21285.c
@@ -255,14 +255,12 @@ int __init dc21285_setup(int nr, struct pci_sys_data *sys)
255 if (nr || !footbridge_cfn_mode()) 255 if (nr || !footbridge_cfn_mode())
256 return 0; 256 return 0;
257 257
258 res = kmalloc(sizeof(struct resource) * 2, GFP_KERNEL); 258 res = kzalloc(sizeof(struct resource) * 2, GFP_KERNEL);
259 if (!res) { 259 if (!res) {
260 printk("out of memory for root bus resources"); 260 printk("out of memory for root bus resources");
261 return 0; 261 return 0;
262 } 262 }
263 263
264 memset(res, 0, sizeof(struct resource) * 2);
265
266 res[0].flags = IORESOURCE_MEM; 264 res[0].flags = IORESOURCE_MEM;
267 res[0].name = "Footbridge non-prefetch"; 265 res[0].name = "Footbridge non-prefetch";
268 res[1].flags = IORESOURCE_MEM | IORESOURCE_PREFETCH; 266 res[1].flags = IORESOURCE_MEM | IORESOURCE_PREFETCH;
diff --git a/arch/arm/mach-integrator/impd1.c b/arch/arm/mach-integrator/impd1.c
index a85d471c5bfa..92d79fb39311 100644
--- a/arch/arm/mach-integrator/impd1.c
+++ b/arch/arm/mach-integrator/impd1.c
@@ -355,12 +355,11 @@ static int impd1_probe(struct lm_device *dev)
355 if (!request_mem_region(dev->resource.start, SZ_4K, "LM registers")) 355 if (!request_mem_region(dev->resource.start, SZ_4K, "LM registers"))
356 return -EBUSY; 356 return -EBUSY;
357 357
358 impd1 = kmalloc(sizeof(struct impd1_module), GFP_KERNEL); 358 impd1 = kzalloc(sizeof(struct impd1_module), GFP_KERNEL);
359 if (!impd1) { 359 if (!impd1) {
360 ret = -ENOMEM; 360 ret = -ENOMEM;
361 goto release_lm; 361 goto release_lm;
362 } 362 }
363 memset(impd1, 0, sizeof(struct impd1_module));
364 363
365 impd1->base = ioremap(dev->resource.start, SZ_4K); 364 impd1->base = ioremap(dev->resource.start, SZ_4K);
366 if (!impd1->base) { 365 if (!impd1->base) {
@@ -389,12 +388,10 @@ static int impd1_probe(struct lm_device *dev)
389 388
390 pc_base = dev->resource.start + idev->offset; 389 pc_base = dev->resource.start + idev->offset;
391 390
392 d = kmalloc(sizeof(struct amba_device), GFP_KERNEL); 391 d = kzalloc(sizeof(struct amba_device), GFP_KERNEL);
393 if (!d) 392 if (!d)
394 continue; 393 continue;
395 394
396 memset(d, 0, sizeof(struct amba_device));
397
398 snprintf(d->dev.bus_id, sizeof(d->dev.bus_id), 395 snprintf(d->dev.bus_id, sizeof(d->dev.bus_id),
399 "lm%x:%5.5lx", dev->id, idev->offset >> 12); 396 "lm%x:%5.5lx", dev->id, idev->offset >> 12);
400 397
diff --git a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c
index d8d3c2a5a97e..6d65c96ebfd2 100644
--- a/arch/arm/mach-integrator/integrator_ap.c
+++ b/arch/arm/mach-integrator/integrator_ap.c
@@ -319,12 +319,10 @@ static void __init ap_init(void)
319 if ((sc_dec & (16 << i)) == 0) 319 if ((sc_dec & (16 << i)) == 0)
320 continue; 320 continue;
321 321
322 lmdev = kmalloc(sizeof(struct lm_device), GFP_KERNEL); 322 lmdev = kzalloc(sizeof(struct lm_device), GFP_KERNEL);
323 if (!lmdev) 323 if (!lmdev)
324 continue; 324 continue;
325 325
326 memset(lmdev, 0, sizeof(struct lm_device));
327
328 lmdev->resource.start = 0xc0000000 + 0x10000000 * i; 326 lmdev->resource.start = 0xc0000000 + 0x10000000 * i;
329 lmdev->resource.end = lmdev->resource.start + 0x0fffffff; 327 lmdev->resource.end = lmdev->resource.start + 0x0fffffff;
330 lmdev->resource.flags = IORESOURCE_MEM; 328 lmdev->resource.flags = IORESOURCE_MEM;
diff --git a/arch/arm/mach-iop3xx/iq31244-pci.c b/arch/arm/mach-iop3xx/iq31244-pci.c
index c6a973ba8fc6..f3c6413fa5bd 100644
--- a/arch/arm/mach-iop3xx/iq31244-pci.c
+++ b/arch/arm/mach-iop3xx/iq31244-pci.c
@@ -74,12 +74,10 @@ static int iq31244_setup(int nr, struct pci_sys_data *sys)
74 if(nr != 0) 74 if(nr != 0)
75 return 0; 75 return 0;
76 76
77 res = kmalloc(sizeof(struct resource) * 2, GFP_KERNEL); 77 res = kzalloc(sizeof(struct resource) * 2, GFP_KERNEL);
78 if (!res) 78 if (!res)
79 panic("PCI: unable to alloc resources"); 79 panic("PCI: unable to alloc resources");
80 80
81 memset(res, 0, sizeof(struct resource) * 2);
82
83 res[0].start = IOP321_PCI_LOWER_IO_VA; 81 res[0].start = IOP321_PCI_LOWER_IO_VA;
84 res[0].end = IOP321_PCI_UPPER_IO_VA; 82 res[0].end = IOP321_PCI_UPPER_IO_VA;
85 res[0].name = "IQ31244 PCI I/O Space"; 83 res[0].name = "IQ31244 PCI I/O Space";
diff --git a/arch/arm/mach-iop3xx/iq80321-pci.c b/arch/arm/mach-iop3xx/iq80321-pci.c
index 802f6d091b75..d9758d3f6e7f 100644
--- a/arch/arm/mach-iop3xx/iq80321-pci.c
+++ b/arch/arm/mach-iop3xx/iq80321-pci.c
@@ -68,12 +68,10 @@ static int iq80321_setup(int nr, struct pci_sys_data *sys)
68 if(nr != 0) 68 if(nr != 0)
69 return 0; 69 return 0;
70 70
71 res = kmalloc(sizeof(struct resource) * 2, GFP_KERNEL); 71 res = kzalloc(sizeof(struct resource) * 2, GFP_KERNEL);
72 if (!res) 72 if (!res)
73 panic("PCI: unable to alloc resources"); 73 panic("PCI: unable to alloc resources");
74 74
75 memset(res, 0, sizeof(struct resource) * 2);
76
77 res[0].start = IOP321_PCI_LOWER_IO_VA; 75 res[0].start = IOP321_PCI_LOWER_IO_VA;
78 res[0].end = IOP321_PCI_UPPER_IO_VA; 76 res[0].end = IOP321_PCI_UPPER_IO_VA;
79 res[0].name = "IQ80321 PCI I/O Space"; 77 res[0].name = "IQ80321 PCI I/O Space";
diff --git a/arch/arm/mach-iop3xx/iq80331-pci.c b/arch/arm/mach-iop3xx/iq80331-pci.c
index 654e450a1311..40d861002492 100644
--- a/arch/arm/mach-iop3xx/iq80331-pci.c
+++ b/arch/arm/mach-iop3xx/iq80331-pci.c
@@ -64,12 +64,10 @@ static int iq80331_setup(int nr, struct pci_sys_data *sys)
64 if(nr != 0) 64 if(nr != 0)
65 return 0; 65 return 0;
66 66
67 res = kmalloc(sizeof(struct resource) * 2, GFP_KERNEL); 67 res = kzalloc(sizeof(struct resource) * 2, GFP_KERNEL);
68 if (!res) 68 if (!res)
69 panic("PCI: unable to alloc resources"); 69 panic("PCI: unable to alloc resources");
70 70
71 memset(res, 0, sizeof(struct resource) * 2);
72
73 res[0].start = IOP331_PCI_LOWER_IO_VA; 71 res[0].start = IOP331_PCI_LOWER_IO_VA;
74 res[0].end = IOP331_PCI_UPPER_IO_VA; 72 res[0].end = IOP331_PCI_UPPER_IO_VA;
75 res[0].name = "IQ80331 PCI I/O Space"; 73 res[0].name = "IQ80331 PCI I/O Space";
diff --git a/arch/arm/mach-iop3xx/iq80332-pci.c b/arch/arm/mach-iop3xx/iq80332-pci.c
index 65951ffe4631..afc0676318e4 100644
--- a/arch/arm/mach-iop3xx/iq80332-pci.c
+++ b/arch/arm/mach-iop3xx/iq80332-pci.c
@@ -70,12 +70,10 @@ static int iq80332_setup(int nr, struct pci_sys_data *sys)
70 if(nr != 0) 70 if(nr != 0)
71 return 0; 71 return 0;
72 72
73 res = kmalloc(sizeof(struct resource) * 2, GFP_KERNEL); 73 res = kzalloc(sizeof(struct resource) * 2, GFP_KERNEL);
74 if (!res) 74 if (!res)
75 panic("PCI: unable to alloc resources"); 75 panic("PCI: unable to alloc resources");
76 76
77 memset(res, 0, sizeof(struct resource) * 2);
78
79 res[0].start = IOP331_PCI_LOWER_IO_VA; 77 res[0].start = IOP331_PCI_LOWER_IO_VA;
80 res[0].end = IOP331_PCI_UPPER_IO_VA; 78 res[0].end = IOP331_PCI_UPPER_IO_VA;
81 res[0].name = "IQ80332 PCI I/O Space"; 79 res[0].name = "IQ80332 PCI I/O Space";
diff --git a/arch/arm/mach-ixp2000/Kconfig b/arch/arm/mach-ixp2000/Kconfig
index ecb58d83478e..86f53f8ccbf5 100644
--- a/arch/arm/mach-ixp2000/Kconfig
+++ b/arch/arm/mach-ixp2000/Kconfig
@@ -43,12 +43,17 @@ config ARCH_IXDP2401
43 this platform, see <file:Documentation/arm/IXP2000>. 43 this platform, see <file:Documentation/arm/IXP2000>.
44 44
45config ARCH_IXDP2801 45config ARCH_IXDP2801
46 bool "Support Intel IXDP2801" 46 bool "Support Intel IXDP2801 and IXDP28x5"
47 help 47 help
48 Say 'Y' here if you want your kernel to support the Intel 48 Say 'Y' here if you want your kernel to support the Intel
49 IXDP2801 reference platform. For more information on 49 IXDP2801/2805/2855 reference platforms. For more information on
50 this platform, see <file:Documentation/arm/IXP2000>. 50 this platform, see <file:Documentation/arm/IXP2000>.
51 51
52config MACH_IXDP28X5
53 bool
54 depends on ARCH_IXDP2801
55 default y
56
52config ARCH_IXDP2X01 57config ARCH_IXDP2X01
53 bool 58 bool
54 depends on ARCH_IXDP2401 || ARCH_IXDP2801 59 depends on ARCH_IXDP2401 || ARCH_IXDP2801
diff --git a/arch/arm/mach-ixp2000/Makefile b/arch/arm/mach-ixp2000/Makefile
index 9621aeb61f46..1e6139d42a92 100644
--- a/arch/arm/mach-ixp2000/Makefile
+++ b/arch/arm/mach-ixp2000/Makefile
@@ -1,7 +1,7 @@
1# 1#
2# Makefile for the linux kernel. 2# Makefile for the linux kernel.
3# 3#
4obj-y := core.o pci.o uengine.o 4obj-y := core.o pci.o
5obj-m := 5obj-m :=
6obj-n := 6obj-n :=
7obj- := 7obj- :=
diff --git a/arch/arm/mach-ixp2000/core.c b/arch/arm/mach-ixp2000/core.c
index cfd5bef3190b..6e8d504aca55 100644
--- a/arch/arm/mach-ixp2000/core.c
+++ b/arch/arm/mach-ixp2000/core.c
@@ -288,8 +288,6 @@ void gpio_line_config(int line, int direction)
288 288
289 local_irq_save(flags); 289 local_irq_save(flags);
290 if (direction == GPIO_OUT) { 290 if (direction == GPIO_OUT) {
291 irq_desc[line + IRQ_IXP2000_GPIO0].valid = 0;
292
293 /* if it's an output, it ain't an interrupt anymore */ 291 /* if it's an output, it ain't an interrupt anymore */
294 GPIO_IRQ_falling_edge &= ~(1 << line); 292 GPIO_IRQ_falling_edge &= ~(1 << line);
295 GPIO_IRQ_rising_edge &= ~(1 << line); 293 GPIO_IRQ_rising_edge &= ~(1 << line);
@@ -351,11 +349,6 @@ static int ixp2000_GPIO_irq_type(unsigned int irq, unsigned int type)
351 GPIO_IRQ_level_high &= ~(1 << line); 349 GPIO_IRQ_level_high &= ~(1 << line);
352 update_gpio_int_csrs(); 350 update_gpio_int_csrs();
353 351
354 /*
355 * Finally, mark the corresponding IRQ as valid.
356 */
357 irq_desc[irq].valid = 1;
358
359 return 0; 352 return 0;
360} 353}
361 354
@@ -506,14 +499,10 @@ void __init ixp2000_init_irq(void)
506 } 499 }
507 set_irq_chained_handler(IRQ_IXP2000_ERRSUM, ixp2000_err_irq_handler); 500 set_irq_chained_handler(IRQ_IXP2000_ERRSUM, ixp2000_err_irq_handler);
508 501
509 /*
510 * GPIO IRQs are invalid until someone sets the interrupt mode
511 * by calling set_irq_type().
512 */
513 for (irq = IRQ_IXP2000_GPIO0; irq <= IRQ_IXP2000_GPIO7; irq++) { 502 for (irq = IRQ_IXP2000_GPIO0; irq <= IRQ_IXP2000_GPIO7; irq++) {
514 set_irq_chip(irq, &ixp2000_GPIO_irq_chip); 503 set_irq_chip(irq, &ixp2000_GPIO_irq_chip);
515 set_irq_handler(irq, do_level_IRQ); 504 set_irq_handler(irq, do_level_IRQ);
516 set_irq_flags(irq, 0); 505 set_irq_flags(irq, IRQF_VALID);
517 } 506 }
518 set_irq_chained_handler(IRQ_IXP2000_GPIO, ixp2000_GPIO_irq_handler); 507 set_irq_chained_handler(IRQ_IXP2000_GPIO, ixp2000_GPIO_irq_handler);
519 508
diff --git a/arch/arm/mach-ixp2000/ixdp2x01.c b/arch/arm/mach-ixp2000/ixdp2x01.c
index 150519fb38ec..f9d4968c1d66 100644
--- a/arch/arm/mach-ixp2000/ixdp2x01.c
+++ b/arch/arm/mach-ixp2000/ixdp2x01.c
@@ -284,7 +284,7 @@ static int ixdp2x01_pci_setup(int nr, struct pci_sys_data *sys)
284{ 284{
285 sys->mem_offset = 0xe0000000; 285 sys->mem_offset = 0xe0000000;
286 286
287 if (machine_is_ixdp2801()) 287 if (machine_is_ixdp2801() || machine_is_ixdp28x5())
288 sys->mem_offset -= ((*IXP2000_PCI_ADDR_EXT & 0xE000) << 16); 288 sys->mem_offset -= ((*IXP2000_PCI_ADDR_EXT & 0xE000) << 16);
289 289
290 return ixp2000_pci_setup(nr, sys); 290 return ixp2000_pci_setup(nr, sys);
@@ -300,7 +300,8 @@ struct hw_pci ixdp2x01_pci __initdata = {
300 300
301int __init ixdp2x01_pci_init(void) 301int __init ixdp2x01_pci_init(void)
302{ 302{
303 if (machine_is_ixdp2401() || machine_is_ixdp2801()) 303 if (machine_is_ixdp2401() || machine_is_ixdp2801() ||\
304 machine_is_ixdp28x5())
304 pci_common_init(&ixdp2x01_pci); 305 pci_common_init(&ixdp2x01_pci);
305 306
306 return 0; 307 return 0;
@@ -400,6 +401,21 @@ MACHINE_START(IXDP2801, "Intel IXDP2801 Development Platform")
400 .timer = &ixdp2x01_timer, 401 .timer = &ixdp2x01_timer,
401 .init_machine = ixdp2x01_init_machine, 402 .init_machine = ixdp2x01_init_machine,
402MACHINE_END 403MACHINE_END
404
405/*
406 * IXDP28x5 is basically an IXDP2801 with a different CPU but Intel
407 * changed the machine ID in the bootloader
408 */
409MACHINE_START(IXDP28X5, "Intel IXDP2805/2855 Development Platform")
410 /* Maintainer: MontaVista Software, Inc. */
411 .phys_io = IXP2000_UART_PHYS_BASE,
412 .io_pg_offst = ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
413 .boot_params = 0x00000100,
414 .map_io = ixdp2x01_map_io,
415 .init_irq = ixdp2x01_init_irq,
416 .timer = &ixdp2x01_timer,
417 .init_machine = ixdp2x01_init_machine,
418MACHINE_END
403#endif 419#endif
404 420
405 421
diff --git a/arch/arm/mach-ixp4xx/common-pci.c b/arch/arm/mach-ixp4xx/common-pci.c
index 6e3462ed5306..2d40fe1145f0 100644
--- a/arch/arm/mach-ixp4xx/common-pci.c
+++ b/arch/arm/mach-ixp4xx/common-pci.c
@@ -463,7 +463,7 @@ int ixp4xx_setup(int nr, struct pci_sys_data *sys)
463 if (nr >= 1) 463 if (nr >= 1)
464 return 0; 464 return 0;
465 465
466 res = kmalloc(sizeof(*res) * 2, GFP_KERNEL); 466 res = kzalloc(sizeof(*res) * 2, GFP_KERNEL);
467 if (res == NULL) { 467 if (res == NULL) {
468 /* 468 /*
469 * If we're out of memory this early, something is wrong, 469 * If we're out of memory this early, something is wrong,
@@ -471,7 +471,6 @@ int ixp4xx_setup(int nr, struct pci_sys_data *sys)
471 */ 471 */
472 panic("PCI: unable to allocate resources?\n"); 472 panic("PCI: unable to allocate resources?\n");
473 } 473 }
474 memset(res, 0, sizeof(*res) * 2);
475 474
476 local_write_config(PCI_COMMAND, 2, PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY); 475 local_write_config(PCI_COMMAND, 2, PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY);
477 476
diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c
index fbadf3021b9e..a0888e160e3b 100644
--- a/arch/arm/mach-ixp4xx/common.c
+++ b/arch/arm/mach-ixp4xx/common.c
@@ -91,7 +91,7 @@ static void ixp4xx_config_irq(unsigned irq, enum ixp4xx_irq_type type);
91/* 91/*
92 * IRQ -> GPIO mapping table 92 * IRQ -> GPIO mapping table
93 */ 93 */
94static int irq2gpio[32] = { 94static char irq2gpio[32] = {
95 -1, -1, -1, -1, -1, -1, 0, 1, 95 -1, -1, -1, -1, -1, -1, 0, 1,
96 -1, -1, -1, -1, -1, -1, -1, -1, 96 -1, -1, -1, -1, -1, -1, -1, -1,
97 -1, -1, -1, 2, 3, 4, 5, 6, 97 -1, -1, -1, 2, 3, 4, 5, 6,
@@ -153,6 +153,9 @@ static int ixp4xx_set_irq_type(unsigned int irq, unsigned int type)
153 /* Set the new style */ 153 /* Set the new style */
154 *int_reg |= (int_style << (line * IXP4XX_GPIO_STYLE_SIZE)); 154 *int_reg |= (int_style << (line * IXP4XX_GPIO_STYLE_SIZE));
155 155
156 /* Configure the line as an input */
157 gpio_line_config(line, IXP4XX_GPIO_IN);
158
156 return 0; 159 return 0;
157} 160}
158 161
diff --git a/arch/arm/mach-lh7a40x/common.h b/arch/arm/mach-lh7a40x/common.h
index 578a52461fdb..ea8de7e3ab1b 100644
--- a/arch/arm/mach-lh7a40x/common.h
+++ b/arch/arm/mach-lh7a40x/common.h
@@ -12,5 +12,6 @@ extern struct sys_timer lh7a40x_timer;
12 12
13extern void lh7a400_init_irq (void); 13extern void lh7a400_init_irq (void);
14extern void lh7a404_init_irq (void); 14extern void lh7a404_init_irq (void);
15extern void lh7a40x_init_board_irq (void);
15 16
16#define IRQ_DISPATCH(irq) desc_handle_irq((irq),(irq_desc + irq), regs) 17#define IRQ_DISPATCH(irq) desc_handle_irq((irq),(irq_desc + irq), regs)
diff --git a/arch/arm/mach-lh7a40x/irq-kev7a400.c b/arch/arm/mach-lh7a40x/irq-kev7a400.c
index 691bb09232a5..8535764d89ca 100644
--- a/arch/arm/mach-lh7a40x/irq-kev7a400.c
+++ b/arch/arm/mach-lh7a40x/irq-kev7a400.c
@@ -16,6 +16,7 @@
16#include <asm/mach/hardware.h> 16#include <asm/mach/hardware.h>
17#include <asm/mach/irqs.h> 17#include <asm/mach/irqs.h>
18 18
19#include "common.h"
19 20
20 /* KEV7a400 CPLD IRQ handling */ 21 /* KEV7a400 CPLD IRQ handling */
21 22
diff --git a/arch/arm/mach-lh7a40x/irq-lh7a400.c b/arch/arm/mach-lh7a40x/irq-lh7a400.c
index f334d81c2cd8..f9fdefef6d6f 100644
--- a/arch/arm/mach-lh7a40x/irq-lh7a400.c
+++ b/arch/arm/mach-lh7a40x/irq-lh7a400.c
@@ -16,9 +16,9 @@
16#include <asm/hardware.h> 16#include <asm/hardware.h>
17#include <asm/irq.h> 17#include <asm/irq.h>
18#include <asm/mach/irq.h> 18#include <asm/mach/irq.h>
19#include <asm/arch/irq.h>
20#include <asm/arch/irqs.h> 19#include <asm/arch/irqs.h>
21 20
21#include "common.h"
22 22
23 /* CPU IRQ handling */ 23 /* CPU IRQ handling */
24 24
diff --git a/arch/arm/mach-lh7a40x/irq-lh7a404.c b/arch/arm/mach-lh7a40x/irq-lh7a404.c
index 122fadabc97d..e902e3d87da4 100644
--- a/arch/arm/mach-lh7a40x/irq-lh7a404.c
+++ b/arch/arm/mach-lh7a40x/irq-lh7a404.c
@@ -16,9 +16,10 @@
16#include <asm/hardware.h> 16#include <asm/hardware.h>
17#include <asm/irq.h> 17#include <asm/irq.h>
18#include <asm/mach/irq.h> 18#include <asm/mach/irq.h>
19#include <asm/arch/irq.h>
20#include <asm/arch/irqs.h> 19#include <asm/arch/irqs.h>
21 20
21#include "common.h"
22
22#define USE_PRIORITIES 23#define USE_PRIORITIES
23 24
24/* See Documentation/arm/Sharp-LH/VectoredInterruptController for more 25/* See Documentation/arm/Sharp-LH/VectoredInterruptController for more
diff --git a/arch/arm/mach-lh7a40x/irq-lpd7a40x.c b/arch/arm/mach-lh7a40x/irq-lpd7a40x.c
index 6262d449120c..dcb4e17b9419 100644
--- a/arch/arm/mach-lh7a40x/irq-lpd7a40x.c
+++ b/arch/arm/mach-lh7a40x/irq-lpd7a40x.c
@@ -19,6 +19,7 @@
19#include <asm/mach/irq.h> 19#include <asm/mach/irq.h>
20#include <asm/arch/irqs.h> 20#include <asm/arch/irqs.h>
21 21
22#include "common.h"
22 23
23static void lh7a40x_ack_cpld_irq (u32 irq) 24static void lh7a40x_ack_cpld_irq (u32 irq)
24{ 25{
diff --git a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile
index 32526a0a6f86..382644401a4d 100644
--- a/arch/arm/mach-pxa/Makefile
+++ b/arch/arm/mach-pxa/Makefile
@@ -3,7 +3,7 @@
3# 3#
4 4
5# Common support (must be linked before board specific support) 5# Common support (must be linked before board specific support)
6obj-y += generic.o irq.o dma.o time.o 6obj-y += clock.o generic.o irq.o dma.o time.o
7obj-$(CONFIG_PXA25x) += pxa25x.o 7obj-$(CONFIG_PXA25x) += pxa25x.o
8obj-$(CONFIG_PXA27x) += pxa27x.o 8obj-$(CONFIG_PXA27x) += pxa27x.o
9 9
diff --git a/arch/arm/mach-pxa/clock.c b/arch/arm/mach-pxa/clock.c
new file mode 100644
index 000000000000..8f7c90a0593b
--- /dev/null
+++ b/arch/arm/mach-pxa/clock.c
@@ -0,0 +1,124 @@
1/*
2 * linux/arch/arm/mach-sa1100/clock.c
3 */
4#include <linux/module.h>
5#include <linux/kernel.h>
6#include <linux/list.h>
7#include <linux/errno.h>
8#include <linux/err.h>
9#include <linux/string.h>
10#include <linux/clk.h>
11#include <linux/spinlock.h>
12
13#include <asm/arch/pxa-regs.h>
14#include <asm/hardware.h>
15#include <asm/semaphore.h>
16
17struct clk {
18 struct list_head node;
19 unsigned long rate;
20 struct module *owner;
21 const char *name;
22 unsigned int enabled;
23 void (*enable)(void);
24 void (*disable)(void);
25};
26
27static LIST_HEAD(clocks);
28static DECLARE_MUTEX(clocks_sem);
29static DEFINE_SPINLOCK(clocks_lock);
30
31struct clk *clk_get(struct device *dev, const char *id)
32{
33 struct clk *p, *clk = ERR_PTR(-ENOENT);
34
35 down(&clocks_sem);
36 list_for_each_entry(p, &clocks, node) {
37 if (strcmp(id, p->name) == 0 && try_module_get(p->owner)) {
38 clk = p;
39 break;
40 }
41 }
42 up(&clocks_sem);
43
44 return clk;
45}
46EXPORT_SYMBOL(clk_get);
47
48void clk_put(struct clk *clk)
49{
50 module_put(clk->owner);
51}
52EXPORT_SYMBOL(clk_put);
53
54int clk_enable(struct clk *clk)
55{
56 unsigned long flags;
57
58 spin_lock_irqsave(&clocks_lock, flags);
59 if (clk->enabled++ == 0)
60 clk->enable();
61 spin_unlock_irqrestore(&clocks_lock, flags);
62 return 0;
63}
64EXPORT_SYMBOL(clk_enable);
65
66void clk_disable(struct clk *clk)
67{
68 unsigned long flags;
69
70 WARN_ON(clk->enabled == 0);
71
72 spin_lock_irqsave(&clocks_lock, flags);
73 if (--clk->enabled == 0)
74 clk->disable();
75 spin_unlock_irqrestore(&clocks_lock, flags);
76}
77EXPORT_SYMBOL(clk_disable);
78
79unsigned long clk_get_rate(struct clk *clk)
80{
81 return clk->rate;
82}
83EXPORT_SYMBOL(clk_get_rate);
84
85
86static void clk_gpio27_enable(void)
87{
88 pxa_gpio_mode(GPIO11_3_6MHz_MD);
89}
90
91static void clk_gpio27_disable(void)
92{
93}
94
95static struct clk clk_gpio27 = {
96 .name = "GPIO27_CLK",
97 .rate = 3686400,
98 .enable = clk_gpio27_enable,
99 .disable = clk_gpio27_disable,
100};
101
102int clk_register(struct clk *clk)
103{
104 down(&clocks_sem);
105 list_add(&clk->node, &clocks);
106 up(&clocks_sem);
107 return 0;
108}
109EXPORT_SYMBOL(clk_register);
110
111void clk_unregister(struct clk *clk)
112{
113 down(&clocks_sem);
114 list_del(&clk->node);
115 up(&clocks_sem);
116}
117EXPORT_SYMBOL(clk_unregister);
118
119static int __init clk_init(void)
120{
121 clk_register(&clk_gpio27);
122 return 0;
123}
124arch_initcall(clk_init);
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c
index 7ffd2de8f2f3..68923b1d2b62 100644
--- a/arch/arm/mach-pxa/corgi.c
+++ b/arch/arm/mach-pxa/corgi.c
@@ -32,7 +32,6 @@
32#include <asm/mach/irq.h> 32#include <asm/mach/irq.h>
33 33
34#include <asm/arch/pxa-regs.h> 34#include <asm/arch/pxa-regs.h>
35#include <asm/arch/irq.h>
36#include <asm/arch/irda.h> 35#include <asm/arch/irda.h>
37#include <asm/arch/mmc.h> 36#include <asm/arch/mmc.h>
38#include <asm/arch/udc.h> 37#include <asm/arch/udc.h>
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c
index 911e6ff5a9bd..b45560a8f6c4 100644
--- a/arch/arm/mach-pxa/poodle.c
+++ b/arch/arm/mach-pxa/poodle.c
@@ -29,7 +29,6 @@
29#include <asm/mach/irq.h> 29#include <asm/mach/irq.h>
30 30
31#include <asm/arch/pxa-regs.h> 31#include <asm/arch/pxa-regs.h>
32#include <asm/arch/irq.h>
33#include <asm/arch/mmc.h> 32#include <asm/arch/mmc.h>
34#include <asm/arch/udc.h> 33#include <asm/arch/udc.h>
35#include <asm/arch/irda.h> 34#include <asm/arch/irda.h>
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
index c094d99ebf56..30ec317bbb97 100644
--- a/arch/arm/mach-pxa/spitz.c
+++ b/arch/arm/mach-pxa/spitz.c
@@ -33,7 +33,6 @@
33#include <asm/mach/irq.h> 33#include <asm/mach/irq.h>
34 34
35#include <asm/arch/pxa-regs.h> 35#include <asm/arch/pxa-regs.h>
36#include <asm/arch/irq.h>
37#include <asm/arch/irda.h> 36#include <asm/arch/irda.h>
38#include <asm/arch/mmc.h> 37#include <asm/arch/mmc.h>
39#include <asm/arch/ohci.h> 38#include <asm/arch/ohci.h>
diff --git a/arch/arm/mach-pxa/tosa.c b/arch/arm/mach-pxa/tosa.c
index d168286ed470..66ec71756d0f 100644
--- a/arch/arm/mach-pxa/tosa.c
+++ b/arch/arm/mach-pxa/tosa.c
@@ -34,7 +34,6 @@
34#include <asm/mach/irq.h> 34#include <asm/mach/irq.h>
35 35
36#include <asm/arch/pxa-regs.h> 36#include <asm/arch/pxa-regs.h>
37#include <asm/arch/irq.h>
38#include <asm/arch/tosa.h> 37#include <asm/arch/tosa.h>
39 38
40#include <asm/hardware/scoop.h> 39#include <asm/hardware/scoop.h>
diff --git a/arch/arm/mach-s3c2410/Kconfig b/arch/arm/mach-s3c2410/Kconfig
index 0b9d7ca49ec1..ed07c4149d82 100644
--- a/arch/arm/mach-s3c2410/Kconfig
+++ b/arch/arm/mach-s3c2410/Kconfig
@@ -9,6 +9,13 @@ config MACH_ANUBIS
9 Say Y gere if you are using the Simtec Electronics ANUBIS 9 Say Y gere if you are using the Simtec Electronics ANUBIS
10 development system 10 development system
11 11
12config MACH_OSIRIS
13 bool "Simtec IM2440D20 (OSIRIS) module"
14 select CPU_S3C2440
15 help
16 Say Y here if you are using the Simtec IM2440D20 module, also
17 known as the Osiris.
18
12config ARCH_BAST 19config ARCH_BAST
13 bool "Simtec Electronics BAST (EB2410ITX)" 20 bool "Simtec Electronics BAST (EB2410ITX)"
14 select CPU_S3C2410 21 select CPU_S3C2410
diff --git a/arch/arm/mach-s3c2410/Makefile b/arch/arm/mach-s3c2410/Makefile
index 1217bf00309c..1b3b476e5637 100644
--- a/arch/arm/mach-s3c2410/Makefile
+++ b/arch/arm/mach-s3c2410/Makefile
@@ -38,6 +38,7 @@ obj-$(CONFIG_BAST_PC104_IRQ) += bast-irq.o
38# machine specific support 38# machine specific support
39 39
40obj-$(CONFIG_MACH_ANUBIS) += mach-anubis.o 40obj-$(CONFIG_MACH_ANUBIS) += mach-anubis.o
41obj-$(CONFIG_MACH_OSIRIS) += mach-osiris.o
41obj-$(CONFIG_ARCH_BAST) += mach-bast.o usb-simtec.o 42obj-$(CONFIG_ARCH_BAST) += mach-bast.o usb-simtec.o
42obj-$(CONFIG_ARCH_H1940) += mach-h1940.o 43obj-$(CONFIG_ARCH_H1940) += mach-h1940.o
43obj-$(CONFIG_MACH_N30) += mach-n30.o 44obj-$(CONFIG_MACH_N30) += mach-n30.o
diff --git a/arch/arm/mach-s3c2410/clock.c b/arch/arm/mach-s3c2410/clock.c
index 08489efdaf06..fec02c92f95f 100644
--- a/arch/arm/mach-s3c2410/clock.c
+++ b/arch/arm/mach-s3c2410/clock.c
@@ -38,12 +38,14 @@
38#include <linux/ioport.h> 38#include <linux/ioport.h>
39#include <linux/clk.h> 39#include <linux/clk.h>
40#include <linux/mutex.h> 40#include <linux/mutex.h>
41#include <linux/delay.h>
41 42
42#include <asm/hardware.h> 43#include <asm/hardware.h>
43#include <asm/irq.h> 44#include <asm/irq.h>
44#include <asm/io.h> 45#include <asm/io.h>
45 46
46#include <asm/arch/regs-clock.h> 47#include <asm/arch/regs-clock.h>
48#include <asm/arch/regs-gpio.h>
47 49
48#include "clock.h" 50#include "clock.h"
49#include "cpu.h" 51#include "cpu.h"
@@ -51,7 +53,8 @@
51/* clock information */ 53/* clock information */
52 54
53static LIST_HEAD(clocks); 55static LIST_HEAD(clocks);
54static DEFINE_MUTEX(clocks_mutex); 56
57DEFINE_MUTEX(clocks_mutex);
55 58
56/* old functions */ 59/* old functions */
57 60
@@ -178,12 +181,24 @@ unsigned long clk_get_rate(struct clk *clk)
178 181
179long clk_round_rate(struct clk *clk, unsigned long rate) 182long clk_round_rate(struct clk *clk, unsigned long rate)
180{ 183{
184 if (!IS_ERR(clk) && clk->round_rate)
185 return (clk->round_rate)(clk, rate);
186
181 return rate; 187 return rate;
182} 188}
183 189
184int clk_set_rate(struct clk *clk, unsigned long rate) 190int clk_set_rate(struct clk *clk, unsigned long rate)
185{ 191{
186 return -EINVAL; 192 int ret;
193
194 if (IS_ERR(clk))
195 return -EINVAL;
196
197 mutex_lock(&clocks_mutex);
198 ret = (clk->set_rate)(clk, rate);
199 mutex_unlock(&clocks_mutex);
200
201 return ret;
187} 202}
188 203
189struct clk *clk_get_parent(struct clk *clk) 204struct clk *clk_get_parent(struct clk *clk)
@@ -191,6 +206,23 @@ struct clk *clk_get_parent(struct clk *clk)
191 return clk->parent; 206 return clk->parent;
192} 207}
193 208
209int clk_set_parent(struct clk *clk, struct clk *parent)
210{
211 int ret = 0;
212
213 if (IS_ERR(clk))
214 return -EINVAL;
215
216 mutex_lock(&clocks_mutex);
217
218 if (clk->set_parent)
219 ret = (clk->set_parent)(clk, parent);
220
221 mutex_unlock(&clocks_mutex);
222
223 return ret;
224}
225
194EXPORT_SYMBOL(clk_get); 226EXPORT_SYMBOL(clk_get);
195EXPORT_SYMBOL(clk_put); 227EXPORT_SYMBOL(clk_put);
196EXPORT_SYMBOL(clk_enable); 228EXPORT_SYMBOL(clk_enable);
@@ -199,6 +231,29 @@ EXPORT_SYMBOL(clk_get_rate);
199EXPORT_SYMBOL(clk_round_rate); 231EXPORT_SYMBOL(clk_round_rate);
200EXPORT_SYMBOL(clk_set_rate); 232EXPORT_SYMBOL(clk_set_rate);
201EXPORT_SYMBOL(clk_get_parent); 233EXPORT_SYMBOL(clk_get_parent);
234EXPORT_SYMBOL(clk_set_parent);
235
236/* base clock enable */
237
238static int s3c24xx_upll_enable(struct clk *clk, int enable)
239{
240 unsigned long clkslow = __raw_readl(S3C2410_CLKSLOW);
241 unsigned long orig = clkslow;
242
243 if (enable)
244 clkslow &= ~S3C2410_CLKSLOW_UCLK_OFF;
245 else
246 clkslow |= S3C2410_CLKSLOW_UCLK_OFF;
247
248 __raw_writel(clkslow, S3C2410_CLKSLOW);
249
250 /* if we started the UPLL, then allow to settle */
251
252 if (enable && !(orig & S3C2410_CLKSLOW_UCLK_OFF))
253 udelay(200);
254
255 return 0;
256}
202 257
203/* base clocks */ 258/* base clocks */
204 259
@@ -210,6 +265,14 @@ static struct clk clk_xtal = {
210 .ctrlbit = 0, 265 .ctrlbit = 0,
211}; 266};
212 267
268static struct clk clk_upll = {
269 .name = "upll",
270 .id = -1,
271 .parent = NULL,
272 .enable = s3c24xx_upll_enable,
273 .ctrlbit = 0,
274};
275
213static struct clk clk_f = { 276static struct clk clk_f = {
214 .name = "fclk", 277 .name = "fclk",
215 .id = -1, 278 .id = -1,
@@ -234,26 +297,124 @@ static struct clk clk_p = {
234 .ctrlbit = 0, 297 .ctrlbit = 0,
235}; 298};
236 299
300struct clk clk_usb_bus = {
301 .name = "usb-bus",
302 .id = -1,
303 .rate = 0,
304 .parent = &clk_upll,
305};
306
237/* clocks that could be registered by external code */ 307/* clocks that could be registered by external code */
238 308
309static int s3c24xx_dclk_enable(struct clk *clk, int enable)
310{
311 unsigned long dclkcon = __raw_readl(S3C2410_DCLKCON);
312
313 if (enable)
314 dclkcon |= clk->ctrlbit;
315 else
316 dclkcon &= ~clk->ctrlbit;
317
318 __raw_writel(dclkcon, S3C2410_DCLKCON);
319
320 return 0;
321}
322
323static int s3c24xx_dclk_setparent(struct clk *clk, struct clk *parent)
324{
325 unsigned long dclkcon;
326 unsigned int uclk;
327
328 if (parent == &clk_upll)
329 uclk = 1;
330 else if (parent == &clk_p)
331 uclk = 0;
332 else
333 return -EINVAL;
334
335 clk->parent = parent;
336
337 dclkcon = __raw_readl(S3C2410_DCLKCON);
338
339 if (clk->ctrlbit == S3C2410_DCLKCON_DCLK0EN) {
340 if (uclk)
341 dclkcon |= S3C2410_DCLKCON_DCLK0_UCLK;
342 else
343 dclkcon &= ~S3C2410_DCLKCON_DCLK0_UCLK;
344 } else {
345 if (uclk)
346 dclkcon |= S3C2410_DCLKCON_DCLK1_UCLK;
347 else
348 dclkcon &= ~S3C2410_DCLKCON_DCLK1_UCLK;
349 }
350
351 __raw_writel(dclkcon, S3C2410_DCLKCON);
352
353 return 0;
354}
355
356
357static int s3c24xx_clkout_setparent(struct clk *clk, struct clk *parent)
358{
359 unsigned long mask;
360 unsigned long source;
361
362 /* calculate the MISCCR setting for the clock */
363
364 if (parent == &clk_xtal)
365 source = S3C2410_MISCCR_CLK0_MPLL;
366 else if (parent == &clk_upll)
367 source = S3C2410_MISCCR_CLK0_UPLL;
368 else if (parent == &clk_f)
369 source = S3C2410_MISCCR_CLK0_FCLK;
370 else if (parent == &clk_p)
371 source = S3C2410_MISCCR_CLK0_PCLK;
372 else if (clk == &s3c24xx_clkout0 && parent == &s3c24xx_dclk0)
373 source = S3C2410_MISCCR_CLK0_DCLK0;
374 else if (clk == &s3c24xx_clkout1 && parent == &s3c24xx_dclk1)
375 source = S3C2410_MISCCR_CLK0_DCLK0;
376 else
377 return -EINVAL;
378
379 if (clk == &s3c24xx_dclk0)
380 mask = S3C2410_MISCCR_CLK0_MASK;
381 else {
382 source <<= 4;
383 mask = S3C2410_MISCCR_CLK1_MASK;
384 }
385
386 s3c2410_modify_misccr(mask, source);
387 return 0;
388}
389
390/* external clock definitions */
391
239struct clk s3c24xx_dclk0 = { 392struct clk s3c24xx_dclk0 = {
240 .name = "dclk0", 393 .name = "dclk0",
241 .id = -1, 394 .id = -1,
395 .ctrlbit = S3C2410_DCLKCON_DCLK0EN,
396 .enable = s3c24xx_dclk_enable,
397 .set_parent = s3c24xx_dclk_setparent,
242}; 398};
243 399
244struct clk s3c24xx_dclk1 = { 400struct clk s3c24xx_dclk1 = {
245 .name = "dclk1", 401 .name = "dclk1",
246 .id = -1, 402 .id = -1,
403 .ctrlbit = S3C2410_DCLKCON_DCLK0EN,
404 .enable = s3c24xx_dclk_enable,
405 .set_parent = s3c24xx_dclk_setparent,
247}; 406};
248 407
249struct clk s3c24xx_clkout0 = { 408struct clk s3c24xx_clkout0 = {
250 .name = "clkout0", 409 .name = "clkout0",
251 .id = -1, 410 .id = -1,
411 .set_parent = s3c24xx_clkout_setparent,
252}; 412};
253 413
254struct clk s3c24xx_clkout1 = { 414struct clk s3c24xx_clkout1 = {
255 .name = "clkout1", 415 .name = "clkout1",
256 .id = -1, 416 .id = -1,
417 .set_parent = s3c24xx_clkout_setparent,
257}; 418};
258 419
259struct clk s3c24xx_uclk = { 420struct clk s3c24xx_uclk = {
@@ -262,7 +423,7 @@ struct clk s3c24xx_uclk = {
262}; 423};
263 424
264 425
265/* clock definitions */ 426/* standard clock definitions */
266 427
267static struct clk init_clocks[] = { 428static struct clk init_clocks[] = {
268 { 429 {
@@ -374,7 +535,7 @@ int s3c24xx_register_clock(struct clk *clk)
374 535
375 /* if this is a standard clock, set the usage state */ 536 /* if this is a standard clock, set the usage state */
376 537
377 if (clk->ctrlbit) { 538 if (clk->ctrlbit && clk->enable == s3c24xx_clkcon_enable) {
378 unsigned long clkcon = __raw_readl(S3C2410_CLKCON); 539 unsigned long clkcon = __raw_readl(S3C2410_CLKCON);
379 540
380 clk->usage = (clkcon & clk->ctrlbit) ? 1 : 0; 541 clk->usage = (clkcon & clk->ctrlbit) ? 1 : 0;
@@ -396,6 +557,7 @@ int __init s3c24xx_setup_clocks(unsigned long xtal,
396 unsigned long hclk, 557 unsigned long hclk,
397 unsigned long pclk) 558 unsigned long pclk)
398{ 559{
560 unsigned long upllcon = __raw_readl(S3C2410_UPLLCON);
399 unsigned long clkslow = __raw_readl(S3C2410_CLKSLOW); 561 unsigned long clkslow = __raw_readl(S3C2410_CLKSLOW);
400 struct clk *clkp = init_clocks; 562 struct clk *clkp = init_clocks;
401 int ptr; 563 int ptr;
@@ -406,6 +568,7 @@ int __init s3c24xx_setup_clocks(unsigned long xtal,
406 /* initialise the main system clocks */ 568 /* initialise the main system clocks */
407 569
408 clk_xtal.rate = xtal; 570 clk_xtal.rate = xtal;
571 clk_upll.rate = s3c2410_get_pll(upllcon, xtal);
409 572
410 clk_h.rate = hclk; 573 clk_h.rate = hclk;
411 clk_p.rate = pclk; 574 clk_p.rate = pclk;
@@ -439,6 +602,9 @@ int __init s3c24xx_setup_clocks(unsigned long xtal,
439 if (s3c24xx_register_clock(&clk_xtal) < 0) 602 if (s3c24xx_register_clock(&clk_xtal) < 0)
440 printk(KERN_ERR "failed to register master xtal\n"); 603 printk(KERN_ERR "failed to register master xtal\n");
441 604
605 if (s3c24xx_register_clock(&clk_upll) < 0)
606 printk(KERN_ERR "failed to register upll clock\n");
607
442 if (s3c24xx_register_clock(&clk_f) < 0) 608 if (s3c24xx_register_clock(&clk_f) < 0)
443 printk(KERN_ERR "failed to register cpu fclk\n"); 609 printk(KERN_ERR "failed to register cpu fclk\n");
444 610
@@ -448,6 +614,10 @@ int __init s3c24xx_setup_clocks(unsigned long xtal,
448 if (s3c24xx_register_clock(&clk_p) < 0) 614 if (s3c24xx_register_clock(&clk_p) < 0)
449 printk(KERN_ERR "failed to register cpu pclk\n"); 615 printk(KERN_ERR "failed to register cpu pclk\n");
450 616
617
618 if (s3c24xx_register_clock(&clk_usb_bus) < 0)
619 printk(KERN_ERR "failed to register usb bus clock\n");
620
451 /* register clocks from clock array */ 621 /* register clocks from clock array */
452 622
453 for (ptr = 0; ptr < ARRAY_SIZE(init_clocks); ptr++, clkp++) { 623 for (ptr = 0; ptr < ARRAY_SIZE(init_clocks); ptr++, clkp++) {
diff --git a/arch/arm/mach-s3c2410/clock.h b/arch/arm/mach-s3c2410/clock.h
index eb5c95d1e7f2..01bb458bf8eb 100644
--- a/arch/arm/mach-s3c2410/clock.h
+++ b/arch/arm/mach-s3c2410/clock.h
@@ -19,7 +19,11 @@ struct clk {
19 int usage; 19 int usage;
20 unsigned long rate; 20 unsigned long rate;
21 unsigned long ctrlbit; 21 unsigned long ctrlbit;
22
22 int (*enable)(struct clk *, int enable); 23 int (*enable)(struct clk *, int enable);
24 int (*set_rate)(struct clk *c, unsigned long rate);
25 unsigned long (*round_rate)(struct clk *c, unsigned long rate);
26 int (*set_parent)(struct clk *c, struct clk *parent);
23}; 27};
24 28
25/* other clocks which may be registered by board support */ 29/* other clocks which may be registered by board support */
@@ -30,11 +34,15 @@ extern struct clk s3c24xx_clkout0;
30extern struct clk s3c24xx_clkout1; 34extern struct clk s3c24xx_clkout1;
31extern struct clk s3c24xx_uclk; 35extern struct clk s3c24xx_uclk;
32 36
37extern struct clk clk_usb_bus;
38
33/* exports for arch/arm/mach-s3c2410 39/* exports for arch/arm/mach-s3c2410
34 * 40 *
35 * Please DO NOT use these outside of arch/arm/mach-s3c2410 41 * Please DO NOT use these outside of arch/arm/mach-s3c2410
36*/ 42*/
37 43
44extern struct mutex clocks_mutex;
45
38extern int s3c24xx_clkcon_enable(struct clk *clk, int enable); 46extern int s3c24xx_clkcon_enable(struct clk *clk, int enable);
39extern int s3c24xx_register_clock(struct clk *clk); 47extern int s3c24xx_register_clock(struct clk *clk);
40 48
diff --git a/arch/arm/mach-s3c2410/mach-osiris.c b/arch/arm/mach-s3c2410/mach-osiris.c
new file mode 100644
index 000000000000..ae0787557751
--- /dev/null
+++ b/arch/arm/mach-s3c2410/mach-osiris.c
@@ -0,0 +1,294 @@
1/* linux/arch/arm/mach-s3c2410/mach-osiris.c
2 *
3 * Copyright (c) 2005 Simtec Electronics
4 * http://armlinux.simtec.co.uk/
5 * Ben Dooks <ben@simtec.co.uk>
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
12#include <linux/kernel.h>
13#include <linux/types.h>
14#include <linux/interrupt.h>
15#include <linux/list.h>
16#include <linux/timer.h>
17#include <linux/init.h>
18#include <linux/device.h>
19
20#include <asm/mach/arch.h>
21#include <asm/mach/map.h>
22#include <asm/mach/irq.h>
23
24#include <asm/arch/osiris-map.h>
25#include <asm/arch/osiris-cpld.h>
26
27#include <asm/hardware.h>
28#include <asm/io.h>
29#include <asm/irq.h>
30#include <asm/mach-types.h>
31
32#include <asm/arch/regs-serial.h>
33#include <asm/arch/regs-gpio.h>
34#include <asm/arch/regs-mem.h>
35#include <asm/arch/regs-lcd.h>
36#include <asm/arch/nand.h>
37
38#include <linux/mtd/mtd.h>
39#include <linux/mtd/nand.h>
40#include <linux/mtd/nand_ecc.h>
41#include <linux/mtd/partitions.h>
42
43#include "clock.h"
44#include "devs.h"
45#include "cpu.h"
46
47/* onboard perihpheral map */
48
49static struct map_desc osiris_iodesc[] __initdata = {
50 /* ISA IO areas (may be over-written later) */
51
52 {
53 .virtual = (u32)S3C24XX_VA_ISA_BYTE,
54 .pfn = __phys_to_pfn(S3C2410_CS5),
55 .length = SZ_16M,
56 .type = MT_DEVICE,
57 }, {
58 .virtual = (u32)S3C24XX_VA_ISA_WORD,
59 .pfn = __phys_to_pfn(S3C2410_CS5),
60 .length = SZ_16M,
61 .type = MT_DEVICE,
62 },
63
64 /* CPLD control registers */
65
66 {
67 .virtual = (u32)OSIRIS_VA_CTRL1,
68 .pfn = __phys_to_pfn(OSIRIS_PA_CTRL1),
69 .length = SZ_16K,
70 .type = MT_DEVICE
71 }, {
72 .virtual = (u32)OSIRIS_VA_CTRL2,
73 .pfn = __phys_to_pfn(OSIRIS_PA_CTRL2),
74 .length = SZ_16K,
75 .type = MT_DEVICE
76 },
77};
78
79#define UCON S3C2410_UCON_DEFAULT | S3C2410_UCON_UCLK
80#define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
81#define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE
82
83static struct s3c24xx_uart_clksrc osiris_serial_clocks[] = {
84 [0] = {
85 .name = "uclk",
86 .divisor = 1,
87 .min_baud = 0,
88 .max_baud = 0,
89 },
90 [1] = {
91 .name = "pclk",
92 .divisor = 1,
93 .min_baud = 0,
94 .max_baud = 0.
95 }
96};
97
98
99static struct s3c2410_uartcfg osiris_uartcfgs[] = {
100 [0] = {
101 .hwport = 0,
102 .flags = 0,
103 .ucon = UCON,
104 .ulcon = ULCON,
105 .ufcon = UFCON,
106 .clocks = osiris_serial_clocks,
107 .clocks_size = ARRAY_SIZE(osiris_serial_clocks)
108 },
109 [1] = {
110 .hwport = 2,
111 .flags = 0,
112 .ucon = UCON,
113 .ulcon = ULCON,
114 .ufcon = UFCON,
115 .clocks = osiris_serial_clocks,
116 .clocks_size = ARRAY_SIZE(osiris_serial_clocks)
117 },
118};
119
120/* NAND Flash on Osiris board */
121
122static int external_map[] = { 2 };
123static int chip0_map[] = { 0 };
124static int chip1_map[] = { 1 };
125
126static struct mtd_partition osiris_default_nand_part[] = {
127 [0] = {
128 .name = "Boot Agent",
129 .size = SZ_16K,
130 .offset = 0
131 },
132 [1] = {
133 .name = "/boot",
134 .size = SZ_4M - SZ_16K,
135 .offset = SZ_16K,
136 },
137 [2] = {
138 .name = "user1",
139 .offset = SZ_4M,
140 .size = SZ_32M - SZ_4M,
141 },
142 [3] = {
143 .name = "user2",
144 .offset = SZ_32M,
145 .size = MTDPART_SIZ_FULL,
146 }
147};
148
149/* the Osiris has 3 selectable slots for nand-flash, the two
150 * on-board chip areas, as well as the external slot.
151 *
152 * Note, there is no current hot-plug support for the External
153 * socket.
154*/
155
156static struct s3c2410_nand_set osiris_nand_sets[] = {
157 [1] = {
158 .name = "External",
159 .nr_chips = 1,
160 .nr_map = external_map,
161 .nr_partitions = ARRAY_SIZE(osiris_default_nand_part),
162 .partitions = osiris_default_nand_part
163 },
164 [0] = {
165 .name = "chip0",
166 .nr_chips = 1,
167 .nr_map = chip0_map,
168 .nr_partitions = ARRAY_SIZE(osiris_default_nand_part),
169 .partitions = osiris_default_nand_part
170 },
171 [2] = {
172 .name = "chip1",
173 .nr_chips = 1,
174 .nr_map = chip1_map,
175 .nr_partitions = ARRAY_SIZE(osiris_default_nand_part),
176 .partitions = osiris_default_nand_part
177 },
178};
179
180static void osiris_nand_select(struct s3c2410_nand_set *set, int slot)
181{
182 unsigned int tmp;
183
184 slot = set->nr_map[slot] & 3;
185
186 pr_debug("osiris_nand: selecting slot %d (set %p,%p)\n",
187 slot, set, set->nr_map);
188
189 tmp = __raw_readb(OSIRIS_VA_CTRL1);
190 tmp &= ~OSIRIS_CTRL1_NANDSEL;
191 tmp |= slot;
192
193 pr_debug("osiris_nand: ctrl1 now %02x\n", tmp);
194
195 __raw_writeb(tmp, OSIRIS_VA_CTRL1);
196}
197
198static struct s3c2410_platform_nand osiris_nand_info = {
199 .tacls = 25,
200 .twrph0 = 60,
201 .twrph1 = 60,
202 .nr_sets = ARRAY_SIZE(osiris_nand_sets),
203 .sets = osiris_nand_sets,
204 .select_chip = osiris_nand_select,
205};
206
207/* PCMCIA control and configuration */
208
209static struct resource osiris_pcmcia_resource[] = {
210 [0] = {
211 .start = 0x0f000000,
212 .end = 0x0f100000,
213 .flags = IORESOURCE_MEM,
214 },
215 [1] = {
216 .start = 0x0c000000,
217 .end = 0x0c100000,
218 .flags = IORESOURCE_MEM,
219 }
220};
221
222static struct platform_device osiris_pcmcia = {
223 .name = "osiris-pcmcia",
224 .id = -1,
225 .num_resources = ARRAY_SIZE(osiris_pcmcia_resource),
226 .resource = osiris_pcmcia_resource,
227};
228
229/* Standard Osiris devices */
230
231static struct platform_device *osiris_devices[] __initdata = {
232 &s3c_device_i2c,
233 &s3c_device_nand,
234 &osiris_pcmcia,
235};
236
237static struct clk *osiris_clocks[] = {
238 &s3c24xx_dclk0,
239 &s3c24xx_dclk1,
240 &s3c24xx_clkout0,
241 &s3c24xx_clkout1,
242 &s3c24xx_uclk,
243};
244
245static struct s3c24xx_board osiris_board __initdata = {
246 .devices = osiris_devices,
247 .devices_count = ARRAY_SIZE(osiris_devices),
248 .clocks = osiris_clocks,
249 .clocks_count = ARRAY_SIZE(osiris_clocks)
250};
251
252static void __init osiris_map_io(void)
253{
254 unsigned long flags;
255
256 /* initialise the clocks */
257
258 s3c24xx_dclk0.parent = NULL;
259 s3c24xx_dclk0.rate = 12*1000*1000;
260
261 s3c24xx_dclk1.parent = NULL;
262 s3c24xx_dclk1.rate = 24*1000*1000;
263
264 s3c24xx_clkout0.parent = &s3c24xx_dclk0;
265 s3c24xx_clkout1.parent = &s3c24xx_dclk1;
266
267 s3c24xx_uclk.parent = &s3c24xx_clkout1;
268
269 s3c_device_nand.dev.platform_data = &osiris_nand_info;
270
271 s3c24xx_init_io(osiris_iodesc, ARRAY_SIZE(osiris_iodesc));
272 s3c24xx_init_clocks(0);
273 s3c24xx_init_uarts(osiris_uartcfgs, ARRAY_SIZE(osiris_uartcfgs));
274 s3c24xx_set_board(&osiris_board);
275
276 /* fix bus configuration (nBE settings wrong on ABLE pre v2.20) */
277
278 local_irq_save(flags);
279 __raw_writel(__raw_readl(S3C2410_BWSCON) | S3C2410_BWSCON_ST1 | S3C2410_BWSCON_ST2 | S3C2410_BWSCON_ST3 | S3C2410_BWSCON_ST4 | S3C2410_BWSCON_ST5, S3C2410_BWSCON);
280 local_irq_restore(flags);
281
282 /* write-protect line to the NAND */
283 s3c2410_gpio_setpin(S3C2410_GPA0, 1);
284}
285
286MACHINE_START(OSIRIS, "Simtec-OSIRIS")
287 /* Maintainer: Ben Dooks <ben@simtec.co.uk> */
288 .phys_io = S3C2410_PA_UART,
289 .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
290 .boot_params = S3C2410_SDRAM_PA + 0x100,
291 .map_io = osiris_map_io,
292 .init_irq = s3c24xx_init_irq,
293 .timer = &s3c24xx_timer,
294MACHINE_END
diff --git a/arch/arm/mach-s3c2410/s3c2440-clock.c b/arch/arm/mach-s3c2410/s3c2440-clock.c
index b557a2be8a01..57a15974d4b5 100644
--- a/arch/arm/mach-s3c2410/s3c2440-clock.c
+++ b/arch/arm/mach-s3c2410/s3c2440-clock.c
@@ -31,6 +31,7 @@
31#include <linux/sysdev.h> 31#include <linux/sysdev.h>
32#include <linux/interrupt.h> 32#include <linux/interrupt.h>
33#include <linux/ioport.h> 33#include <linux/ioport.h>
34#include <linux/mutex.h>
34#include <linux/clk.h> 35#include <linux/clk.h>
35 36
36#include <asm/hardware.h> 37#include <asm/hardware.h>
@@ -45,10 +46,47 @@
45 46
46/* S3C2440 extended clock support */ 47/* S3C2440 extended clock support */
47 48
48static struct clk s3c2440_clk_upll = { 49static unsigned long s3c2440_camif_upll_round(struct clk *clk,
49 .name = "upll", 50 unsigned long rate)
50 .id = -1, 51{
51}; 52 unsigned long parent_rate = clk_get_rate(clk->parent);
53 int div;
54
55 if (rate > parent_rate)
56 return parent_rate;
57
58 /* note, we remove the +/- 1 calculations for the divisor */
59
60 div = (parent_rate / rate) / 2;
61
62 if (div < 1)
63 div = 1;
64 else if (div > 16)
65 div = 16;
66
67 return parent_rate / (div * 2);
68}
69
70static int s3c2440_camif_upll_setrate(struct clk *clk, unsigned long rate)
71{
72 unsigned long parent_rate = clk_get_rate(clk->parent);
73 unsigned long camdivn = __raw_readl(S3C2440_CAMDIVN);
74
75 rate = s3c2440_camif_upll_round(clk, rate);
76
77 camdivn &= ~(S3C2440_CAMDIVN_CAMCLK_SEL | S3C2440_CAMDIVN_CAMCLK_MASK);
78
79 if (rate != parent_rate) {
80 camdivn |= S3C2440_CAMDIVN_CAMCLK_SEL;
81 camdivn |= (((parent_rate / rate) / 2) - 1);
82 }
83
84 __raw_writel(camdivn, S3C2440_CAMDIVN);
85
86 return 0;
87}
88
89/* Extra S3C2440 clocks */
52 90
53static struct clk s3c2440_clk_cam = { 91static struct clk s3c2440_clk_cam = {
54 .name = "camif", 92 .name = "camif",
@@ -57,6 +95,13 @@ static struct clk s3c2440_clk_cam = {
57 .ctrlbit = S3C2440_CLKCON_CAMERA, 95 .ctrlbit = S3C2440_CLKCON_CAMERA,
58}; 96};
59 97
98static struct clk s3c2440_clk_cam_upll = {
99 .name = "camif-upll",
100 .id = -1,
101 .set_rate = s3c2440_camif_upll_setrate,
102 .round_rate = s3c2440_camif_upll_round,
103};
104
60static struct clk s3c2440_clk_ac97 = { 105static struct clk s3c2440_clk_ac97 = {
61 .name = "ac97", 106 .name = "ac97",
62 .id = -1, 107 .id = -1,
@@ -66,38 +111,46 @@ static struct clk s3c2440_clk_ac97 = {
66 111
67static int s3c2440_clk_add(struct sys_device *sysdev) 112static int s3c2440_clk_add(struct sys_device *sysdev)
68{ 113{
69 unsigned long upllcon = __raw_readl(S3C2410_UPLLCON);
70 unsigned long camdivn = __raw_readl(S3C2440_CAMDIVN); 114 unsigned long camdivn = __raw_readl(S3C2440_CAMDIVN);
115 unsigned long clkdivn;
71 struct clk *clk_h; 116 struct clk *clk_h;
72 struct clk *clk_p; 117 struct clk *clk_p;
73 struct clk *clk_xtal; 118 struct clk *clk_upll;
74
75 clk_xtal = clk_get(NULL, "xtal");
76 if (IS_ERR(clk_xtal)) {
77 printk(KERN_ERR "S3C2440: Failed to get clk_xtal\n");
78 return -EINVAL;
79 }
80
81 s3c2440_clk_upll.rate = s3c2410_get_pll(upllcon, clk_xtal->rate);
82 119
83 printk("S3C2440: Clock Support, UPLL %ld.%03ld MHz, DVS %s\n", 120 printk("S3C2440: Clock Support, DVS %s\n",
84 print_mhz(s3c2440_clk_upll.rate),
85 (camdivn & S3C2440_CAMDIVN_DVSEN) ? "on" : "off"); 121 (camdivn & S3C2440_CAMDIVN_DVSEN) ? "on" : "off");
86 122
87 clk_p = clk_get(NULL, "pclk"); 123 clk_p = clk_get(NULL, "pclk");
88 clk_h = clk_get(NULL, "hclk"); 124 clk_h = clk_get(NULL, "hclk");
125 clk_upll = clk_get(NULL, "upll");
89 126
90 if (IS_ERR(clk_p) || IS_ERR(clk_h)) { 127 if (IS_ERR(clk_p) || IS_ERR(clk_h) || IS_ERR(clk_upll)) {
91 printk(KERN_ERR "S3C2440: Failed to get parent clocks\n"); 128 printk(KERN_ERR "S3C2440: Failed to get parent clocks\n");
92 return -EINVAL; 129 return -EINVAL;
93 } 130 }
94 131
132 /* check rate of UPLL, and if it is near 96MHz, then change
133 * to using half the UPLL rate for the system */
134
135 if (clk_get_rate(clk_upll) > (94 * MHZ)) {
136 clk_usb_bus.rate = clk_get_rate(clk_upll) / 2;
137
138 mutex_lock(&clocks_mutex);
139
140 clkdivn = __raw_readl(S3C2410_CLKDIVN);
141 clkdivn |= S3C2440_CLKDIVN_UCLK;
142 __raw_writel(camdivn, S3C2410_CLKDIVN);
143
144 mutex_unlock(&clocks_mutex);
145 }
146
95 s3c2440_clk_cam.parent = clk_h; 147 s3c2440_clk_cam.parent = clk_h;
96 s3c2440_clk_ac97.parent = clk_p; 148 s3c2440_clk_ac97.parent = clk_p;
149 s3c2440_clk_cam_upll.parent = clk_upll;
97 150
98 s3c24xx_register_clock(&s3c2440_clk_ac97); 151 s3c24xx_register_clock(&s3c2440_clk_ac97);
99 s3c24xx_register_clock(&s3c2440_clk_cam); 152 s3c24xx_register_clock(&s3c2440_clk_cam);
100 s3c24xx_register_clock(&s3c2440_clk_upll); 153 s3c24xx_register_clock(&s3c2440_clk_cam_upll);
101 154
102 clk_disable(&s3c2440_clk_ac97); 155 clk_disable(&s3c2440_clk_ac97);
103 clk_disable(&s3c2440_clk_cam); 156 clk_disable(&s3c2440_clk_cam);
diff --git a/arch/arm/mach-s3c2410/time.c b/arch/arm/mach-s3c2410/time.c
index 10a2976aefdd..9d7b799ea4a4 100644
--- a/arch/arm/mach-s3c2410/time.c
+++ b/arch/arm/mach-s3c2410/time.c
@@ -142,6 +142,12 @@ static struct irqaction s3c2410_timer_irq = {
142 .handler = s3c2410_timer_interrupt, 142 .handler = s3c2410_timer_interrupt,
143}; 143};
144 144
145#define use_tclk1_12() ( \
146 machine_is_bast() || \
147 machine_is_vr1000() || \
148 machine_is_anubis() || \
149 machine_is_osiris() )
150
145/* 151/*
146 * Set up timer interrupt, and return the current time in seconds. 152 * Set up timer interrupt, and return the current time in seconds.
147 * 153 *
@@ -165,7 +171,7 @@ static void s3c2410_timer_setup (void)
165 171
166 /* configure the system for whichever machine is in use */ 172 /* configure the system for whichever machine is in use */
167 173
168 if (machine_is_bast() || machine_is_vr1000() || machine_is_anubis()) { 174 if (use_tclk1_12()) {
169 /* timer is at 12MHz, scaler is 1 */ 175 /* timer is at 12MHz, scaler is 1 */
170 timer_usec_ticks = timer_mask_usec_ticks(1, 12000000); 176 timer_usec_ticks = timer_mask_usec_ticks(1, 12000000);
171 tcnt = 12000000 / HZ; 177 tcnt = 12000000 / HZ;
diff --git a/arch/arm/mach-sa1100/Makefile b/arch/arm/mach-sa1100/Makefile
index e4a4a3e8aa8f..e27f15042a22 100644
--- a/arch/arm/mach-sa1100/Makefile
+++ b/arch/arm/mach-sa1100/Makefile
@@ -3,7 +3,7 @@
3# 3#
4 4
5# Common support 5# Common support
6obj-y := generic.o irq.o dma.o time.o 6obj-y := clock.o generic.o irq.o dma.o time.o #nmi-oopser.o
7obj-m := 7obj-m :=
8obj-n := 8obj-n :=
9obj- := 9obj- :=
diff --git a/arch/arm/mach-sa1100/clock.c b/arch/arm/mach-sa1100/clock.c
new file mode 100644
index 000000000000..b1e8fd766c1a
--- /dev/null
+++ b/arch/arm/mach-sa1100/clock.c
@@ -0,0 +1,132 @@
1/*
2 * linux/arch/arm/mach-sa1100/clock.c
3 */
4#include <linux/module.h>
5#include <linux/kernel.h>
6#include <linux/list.h>
7#include <linux/errno.h>
8#include <linux/err.h>
9#include <linux/string.h>
10#include <linux/clk.h>
11#include <linux/spinlock.h>
12
13#include <asm/hardware.h>
14#include <asm/semaphore.h>
15
16struct clk {
17 struct list_head node;
18 unsigned long rate;
19 struct module *owner;
20 const char *name;
21 unsigned int enabled;
22 void (*enable)(void);
23 void (*disable)(void);
24};
25
26static LIST_HEAD(clocks);
27static DECLARE_MUTEX(clocks_sem);
28static DEFINE_SPINLOCK(clocks_lock);
29
30struct clk *clk_get(struct device *dev, const char *id)
31{
32 struct clk *p, *clk = ERR_PTR(-ENOENT);
33
34 down(&clocks_sem);
35 list_for_each_entry(p, &clocks, node) {
36 if (strcmp(id, p->name) == 0 && try_module_get(p->owner)) {
37 clk = p;
38 break;
39 }
40 }
41 up(&clocks_sem);
42
43 return clk;
44}
45EXPORT_SYMBOL(clk_get);
46
47void clk_put(struct clk *clk)
48{
49 module_put(clk->owner);
50}
51EXPORT_SYMBOL(clk_put);
52
53int clk_enable(struct clk *clk)
54{
55 unsigned long flags;
56
57 spin_lock_irqsave(&clocks_lock, flags);
58 if (clk->enabled++ == 0)
59 clk->enable();
60 spin_unlock_irqrestore(&clocks_lock, flags);
61 return 0;
62}
63EXPORT_SYMBOL(clk_enable);
64
65void clk_disable(struct clk *clk)
66{
67 unsigned long flags;
68
69 WARN_ON(clk->enabled == 0);
70
71 spin_lock_irqsave(&clocks_lock, flags);
72 if (--clk->enabled == 0)
73 clk->disable();
74 spin_unlock_irqrestore(&clocks_lock, flags);
75}
76EXPORT_SYMBOL(clk_disable);
77
78unsigned long clk_get_rate(struct clk *clk)
79{
80 return clk->rate;
81}
82EXPORT_SYMBOL(clk_get_rate);
83
84
85static void clk_gpio27_enable(void)
86{
87 /*
88 * First, set up the 3.6864MHz clock on GPIO 27 for the SA-1111:
89 * (SA-1110 Developer's Manual, section 9.1.2.1)
90 */
91 GAFR |= GPIO_32_768kHz;
92 GPDR |= GPIO_32_768kHz;
93 TUCR = TUCR_3_6864MHz;
94}
95
96static void clk_gpio27_disable(void)
97{
98 TUCR = 0;
99 GPDR &= ~GPIO_32_768kHz;
100 GAFR &= ~GPIO_32_768kHz;
101}
102
103static struct clk clk_gpio27 = {
104 .name = "GPIO27_CLK",
105 .rate = 3686400,
106 .enable = clk_gpio27_enable,
107 .disable = clk_gpio27_disable,
108};
109
110int clk_register(struct clk *clk)
111{
112 down(&clocks_sem);
113 list_add(&clk->node, &clocks);
114 up(&clocks_sem);
115 return 0;
116}
117EXPORT_SYMBOL(clk_register);
118
119void clk_unregister(struct clk *clk)
120{
121 down(&clocks_sem);
122 list_del(&clk->node);
123 up(&clocks_sem);
124}
125EXPORT_SYMBOL(clk_unregister);
126
127static int __init clk_init(void)
128{
129 clk_register(&clk_gpio27);
130 return 0;
131}
132arch_initcall(clk_init);
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index 9ebbe808b41d..799697d32dec 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -112,7 +112,7 @@ void __init versatile_init_irq(void)
112{ 112{
113 unsigned int i; 113 unsigned int i;
114 114
115 vic_init(VA_VIC_BASE, ~(1 << 31)); 115 vic_init(VA_VIC_BASE, IRQ_VIC_START, ~(1 << 31));
116 116
117 set_irq_handler(IRQ_VICSOURCE31, sic_handle_irq); 117 set_irq_handler(IRQ_VICSOURCE31, sic_handle_irq);
118 enable_irq(IRQ_VICSOURCE31); 118 enable_irq(IRQ_VICSOURCE31);
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index 3b79d0e23455..eaaec90db972 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -62,7 +62,7 @@ config CPU_ARM720T
62# ARM920T 62# ARM920T
63config CPU_ARM920T 63config CPU_ARM920T
64 bool "Support ARM920T processor" if !ARCH_S3C2410 64 bool "Support ARM920T processor" if !ARCH_S3C2410
65 depends on ARCH_INTEGRATOR || ARCH_S3C2410 || ARCH_IMX || ARCH_AAEC2000 || ARCH_AT91RM9200 65 depends on ARCH_EP93XX || ARCH_INTEGRATOR || ARCH_S3C2410 || ARCH_IMX || ARCH_AAEC2000 || ARCH_AT91RM9200
66 default y if ARCH_S3C2410 || ARCH_AT91RM9200 66 default y if ARCH_S3C2410 || ARCH_AT91RM9200
67 select CPU_32v4 67 select CPU_32v4
68 select CPU_ABRT_EV4T 68 select CPU_ABRT_EV4T
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index b0321e943b76..88279124317a 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -19,7 +19,6 @@
19#include <linux/initrd.h> 19#include <linux/initrd.h>
20 20
21#include <asm/mach-types.h> 21#include <asm/mach-types.h>
22#include <asm/hardware.h>
23#include <asm/setup.h> 22#include <asm/setup.h>
24#include <asm/tlb.h> 23#include <asm/tlb.h>
25 24
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
index da9b35974118..25e0ca3e598c 100644
--- a/arch/arm/mm/ioremap.c
+++ b/arch/arm/mm/ioremap.c
@@ -26,7 +26,6 @@
26#include <linux/vmalloc.h> 26#include <linux/vmalloc.h>
27 27
28#include <asm/cacheflush.h> 28#include <asm/cacheflush.h>
29#include <asm/hardware.h>
30#include <asm/io.h> 29#include <asm/io.h>
31#include <asm/tlbflush.h> 30#include <asm/tlbflush.h>
32 31
diff --git a/arch/arm/mm/proc-arm1020.S b/arch/arm/mm/proc-arm1020.S
index 82ec954e45b6..3aa80094012c 100644
--- a/arch/arm/mm/proc-arm1020.S
+++ b/arch/arm/mm/proc-arm1020.S
@@ -32,7 +32,6 @@
32#include <asm/pgtable.h> 32#include <asm/pgtable.h>
33#include <asm/procinfo.h> 33#include <asm/procinfo.h>
34#include <asm/ptrace.h> 34#include <asm/ptrace.h>
35#include <asm/hardware.h>
36 35
37/* 36/*
38 * This is the maximum size of an area which will be invalidated 37 * This is the maximum size of an area which will be invalidated
diff --git a/arch/arm/mm/proc-arm1020e.S b/arch/arm/mm/proc-arm1020e.S
index 7375fe930f72..767d158f211a 100644
--- a/arch/arm/mm/proc-arm1020e.S
+++ b/arch/arm/mm/proc-arm1020e.S
@@ -32,7 +32,6 @@
32#include <asm/pgtable.h> 32#include <asm/pgtable.h>
33#include <asm/procinfo.h> 33#include <asm/procinfo.h>
34#include <asm/ptrace.h> 34#include <asm/ptrace.h>
35#include <asm/hardware.h>
36 35
37/* 36/*
38 * This is the maximum size of an area which will be invalidated 37 * This is the maximum size of an area which will be invalidated
diff --git a/arch/arm/mm/proc-arm720.S b/arch/arm/mm/proc-arm720.S
index a13e0184d343..471286fdf78f 100644
--- a/arch/arm/mm/proc-arm720.S
+++ b/arch/arm/mm/proc-arm720.S
@@ -37,7 +37,6 @@
37#include <asm/pgtable.h> 37#include <asm/pgtable.h>
38#include <asm/procinfo.h> 38#include <asm/procinfo.h>
39#include <asm/ptrace.h> 39#include <asm/ptrace.h>
40#include <asm/hardware.h>
41 40
42/* 41/*
43 * Function: arm720_proc_init (void) 42 * Function: arm720_proc_init (void)
diff --git a/arch/arm/mm/proc-arm920.S b/arch/arm/mm/proc-arm920.S
index d16513899999..950d3b664c1e 100644
--- a/arch/arm/mm/proc-arm920.S
+++ b/arch/arm/mm/proc-arm920.S
@@ -30,7 +30,6 @@
30#include <asm/assembler.h> 30#include <asm/assembler.h>
31#include <asm/pgtable.h> 31#include <asm/pgtable.h>
32#include <asm/procinfo.h> 32#include <asm/procinfo.h>
33#include <asm/hardware.h>
34#include <asm/page.h> 33#include <asm/page.h>
35#include <asm/ptrace.h> 34#include <asm/ptrace.h>
36#include "proc-macros.S" 35#include "proc-macros.S"
diff --git a/arch/arm/mm/proc-arm922.S b/arch/arm/mm/proc-arm922.S
index 23b8ed97f4e3..410b032faa3b 100644
--- a/arch/arm/mm/proc-arm922.S
+++ b/arch/arm/mm/proc-arm922.S
@@ -31,7 +31,6 @@
31#include <asm/assembler.h> 31#include <asm/assembler.h>
32#include <asm/pgtable.h> 32#include <asm/pgtable.h>
33#include <asm/procinfo.h> 33#include <asm/procinfo.h>
34#include <asm/hardware.h>
35#include <asm/page.h> 34#include <asm/page.h>
36#include <asm/ptrace.h> 35#include <asm/ptrace.h>
37#include "proc-macros.S" 36#include "proc-macros.S"
diff --git a/arch/arm/mm/proc-arm925.S b/arch/arm/mm/proc-arm925.S
index ee95c52db513..6dd2be7cd050 100644
--- a/arch/arm/mm/proc-arm925.S
+++ b/arch/arm/mm/proc-arm925.S
@@ -53,7 +53,6 @@
53#include <asm/assembler.h> 53#include <asm/assembler.h>
54#include <asm/pgtable.h> 54#include <asm/pgtable.h>
55#include <asm/procinfo.h> 55#include <asm/procinfo.h>
56#include <asm/hardware.h>
57#include <asm/page.h> 56#include <asm/page.h>
58#include <asm/ptrace.h> 57#include <asm/ptrace.h>
59#include "proc-macros.S" 58#include "proc-macros.S"
diff --git a/arch/arm/mm/proc-arm926.S b/arch/arm/mm/proc-arm926.S
index 7d042dc20c47..022e86842041 100644
--- a/arch/arm/mm/proc-arm926.S
+++ b/arch/arm/mm/proc-arm926.S
@@ -30,7 +30,6 @@
30#include <asm/assembler.h> 30#include <asm/assembler.h>
31#include <asm/pgtable.h> 31#include <asm/pgtable.h>
32#include <asm/procinfo.h> 32#include <asm/procinfo.h>
33#include <asm/hardware.h>
34#include <asm/page.h> 33#include <asm/page.h>
35#include <asm/ptrace.h> 34#include <asm/ptrace.h>
36#include "proc-macros.S" 35#include "proc-macros.S"
diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S
index 2d3823ec3153..b50f87a0ee76 100644
--- a/arch/arm/mm/proc-xscale.S
+++ b/arch/arm/mm/proc-xscale.S
@@ -24,7 +24,6 @@
24#include <linux/init.h> 24#include <linux/init.h>
25#include <asm/assembler.h> 25#include <asm/assembler.h>
26#include <asm/procinfo.h> 26#include <asm/procinfo.h>
27#include <asm/hardware.h>
28#include <asm/pgtable.h> 27#include <asm/pgtable.h>
29#include <asm/page.h> 28#include <asm/page.h>
30#include <asm/ptrace.h> 29#include <asm/ptrace.h>
diff --git a/arch/arm/oprofile/common.c b/arch/arm/oprofile/common.c
index 6f8bc1f0e6a1..6f833358cd06 100644
--- a/arch/arm/oprofile/common.c
+++ b/arch/arm/oprofile/common.c
@@ -10,17 +10,18 @@
10#include <linux/init.h> 10#include <linux/init.h>
11#include <linux/oprofile.h> 11#include <linux/oprofile.h>
12#include <linux/errno.h> 12#include <linux/errno.h>
13#include <linux/slab.h>
13#include <linux/sysdev.h> 14#include <linux/sysdev.h>
14#include <asm/semaphore.h> 15#include <linux/mutex.h>
15 16
16#include "op_counter.h" 17#include "op_counter.h"
17#include "op_arm_model.h" 18#include "op_arm_model.h"
18 19
19static struct op_arm_model_spec *op_arm_model; 20static struct op_arm_model_spec *op_arm_model;
20static int op_arm_enabled; 21static int op_arm_enabled;
21static struct semaphore op_arm_sem; 22static DEFINE_MUTEX(op_arm_mutex);
22 23
23struct op_counter_config counter_config[OP_MAX_COUNTER]; 24struct op_counter_config *counter_config;
24 25
25static int op_arm_create_files(struct super_block *sb, struct dentry *root) 26static int op_arm_create_files(struct super_block *sb, struct dentry *root)
26{ 27{
@@ -28,7 +29,7 @@ static int op_arm_create_files(struct super_block *sb, struct dentry *root)
28 29
29 for (i = 0; i < op_arm_model->num_counters; i++) { 30 for (i = 0; i < op_arm_model->num_counters; i++) {
30 struct dentry *dir; 31 struct dentry *dir;
31 char buf[2]; 32 char buf[4];
32 33
33 snprintf(buf, sizeof buf, "%d", i); 34 snprintf(buf, sizeof buf, "%d", i);
34 dir = oprofilefs_mkdir(sb, root, buf); 35 dir = oprofilefs_mkdir(sb, root, buf);
@@ -57,40 +58,40 @@ static int op_arm_start(void)
57{ 58{
58 int ret = -EBUSY; 59 int ret = -EBUSY;
59 60
60 down(&op_arm_sem); 61 mutex_lock(&op_arm_mutex);
61 if (!op_arm_enabled) { 62 if (!op_arm_enabled) {
62 ret = op_arm_model->start(); 63 ret = op_arm_model->start();
63 op_arm_enabled = !ret; 64 op_arm_enabled = !ret;
64 } 65 }
65 up(&op_arm_sem); 66 mutex_unlock(&op_arm_mutex);
66 return ret; 67 return ret;
67} 68}
68 69
69static void op_arm_stop(void) 70static void op_arm_stop(void)
70{ 71{
71 down(&op_arm_sem); 72 mutex_lock(&op_arm_mutex);
72 if (op_arm_enabled) 73 if (op_arm_enabled)
73 op_arm_model->stop(); 74 op_arm_model->stop();
74 op_arm_enabled = 0; 75 op_arm_enabled = 0;
75 up(&op_arm_sem); 76 mutex_unlock(&op_arm_mutex);
76} 77}
77 78
78#ifdef CONFIG_PM 79#ifdef CONFIG_PM
79static int op_arm_suspend(struct sys_device *dev, pm_message_t state) 80static int op_arm_suspend(struct sys_device *dev, pm_message_t state)
80{ 81{
81 down(&op_arm_sem); 82 mutex_lock(&op_arm_mutex);
82 if (op_arm_enabled) 83 if (op_arm_enabled)
83 op_arm_model->stop(); 84 op_arm_model->stop();
84 up(&op_arm_sem); 85 mutex_unlock(&op_arm_mutex);
85 return 0; 86 return 0;
86} 87}
87 88
88static int op_arm_resume(struct sys_device *dev) 89static int op_arm_resume(struct sys_device *dev)
89{ 90{
90 down(&op_arm_sem); 91 mutex_lock(&op_arm_mutex);
91 if (op_arm_enabled && op_arm_model->start()) 92 if (op_arm_enabled && op_arm_model->start())
92 op_arm_enabled = 0; 93 op_arm_enabled = 0;
93 up(&op_arm_sem); 94 mutex_unlock(&op_arm_mutex);
94 return 0; 95 return 0;
95} 96}
96 97
@@ -135,12 +136,15 @@ int __init oprofile_arch_init(struct oprofile_operations *ops)
135#endif 136#endif
136 137
137 if (spec) { 138 if (spec) {
138 init_MUTEX(&op_arm_sem);
139
140 ret = spec->init(); 139 ret = spec->init();
141 if (ret < 0) 140 if (ret < 0)
142 return ret; 141 return ret;
143 142
143 counter_config = kcalloc(spec->num_counters, sizeof(struct op_counter_config),
144 GFP_KERNEL);
145 if (!counter_config)
146 return -ENOMEM;
147
144 op_arm_model = spec; 148 op_arm_model = spec;
145 init_driverfs(); 149 init_driverfs();
146 ops->create_files = op_arm_create_files; 150 ops->create_files = op_arm_create_files;
@@ -162,5 +166,5 @@ void oprofile_arch_exit(void)
162 exit_driverfs(); 166 exit_driverfs();
163 op_arm_model = NULL; 167 op_arm_model = NULL;
164 } 168 }
169 kfree(counter_config);
165} 170}
166
diff --git a/arch/arm/oprofile/op_counter.h b/arch/arm/oprofile/op_counter.h
index 153c1d467f24..8c5351d751cf 100644
--- a/arch/arm/oprofile/op_counter.h
+++ b/arch/arm/oprofile/op_counter.h
@@ -24,6 +24,6 @@ struct op_counter_config {
24 unsigned long user; 24 unsigned long user;
25}; 25};
26 26
27extern struct op_counter_config counter_config[]; 27extern struct op_counter_config *counter_config;
28 28
29#endif /* OP_COUNTER_H */ 29#endif /* OP_COUNTER_H */
diff --git a/arch/arm/vfp/entry.S b/arch/arm/vfp/entry.S
index 6f17187ab32a..9ab1abfbe7ad 100644
--- a/arch/arm/vfp/entry.S
+++ b/arch/arm/vfp/entry.S
@@ -22,6 +22,7 @@
22 22
23 .globl do_vfp 23 .globl do_vfp
24do_vfp: 24do_vfp:
25 enable_irq
25 ldr r4, .LCvfp 26 ldr r4, .LCvfp
26 add r10, r10, #TI_VFPSTATE @ r10 = workspace 27 add r10, r10, #TI_VFPSTATE @ r10 = workspace
27 ldr pc, [r4] @ call VFP entry point 28 ldr pc, [r4] @ call VFP entry point
diff --git a/drivers/net/ixp2000/enp2611.c b/drivers/net/ixp2000/enp2611.c
index d82651a97bae..6f7dce8eba51 100644
--- a/drivers/net/ixp2000/enp2611.c
+++ b/drivers/net/ixp2000/enp2611.c
@@ -16,7 +16,7 @@
16#include <linux/etherdevice.h> 16#include <linux/etherdevice.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/moduleparam.h> 18#include <linux/moduleparam.h>
19#include <asm/arch/uengine.h> 19#include <asm/hardware/uengine.h>
20#include <asm/mach-types.h> 20#include <asm/mach-types.h>
21#include <asm/io.h> 21#include <asm/io.h>
22#include "ixpdev.h" 22#include "ixpdev.h"
diff --git a/drivers/net/ixp2000/ixpdev.c b/drivers/net/ixp2000/ixpdev.c
index 09f03f493bea..77f104a005f3 100644
--- a/drivers/net/ixp2000/ixpdev.c
+++ b/drivers/net/ixp2000/ixpdev.c
@@ -16,7 +16,7 @@
16#include <linux/etherdevice.h> 16#include <linux/etherdevice.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/moduleparam.h> 18#include <linux/moduleparam.h>
19#include <asm/arch/uengine.h> 19#include <asm/hardware/uengine.h>
20#include <asm/mach-types.h> 20#include <asm/mach-types.h>
21#include <asm/io.h> 21#include <asm/io.h>
22#include "ixp2400_rx.ucode" 22#include "ixp2400_rx.ucode"
diff --git a/include/asm-arm/arch-aaec2000/param.h b/include/asm-arm/arch-aaec2000/param.h
deleted file mode 100644
index 139936c2faf2..000000000000
--- a/include/asm-arm/arch-aaec2000/param.h
+++ /dev/null
@@ -1,15 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-aaec2000/param.h
3 *
4 * Copyright (c) 2005 Nicolas Bellido Y Ortega
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
11#ifndef __ASM_ARCH_PARAM_H
12#define __ASM_ARCH_PARAM_H
13
14#endif /* __ASM_ARCH_PARAM_H */
15
diff --git a/include/asm-arm/arch-at91rm9200/param.h b/include/asm-arm/arch-at91rm9200/param.h
deleted file mode 100644
index 9480f8446852..000000000000
--- a/include/asm-arm/arch-at91rm9200/param.h
+++ /dev/null
@@ -1,28 +0,0 @@
1/*
2 * include/asm-arm/arch-at91rm9200/param.h
3 *
4 * Copyright (C) 2003 SAN People
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 as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21#ifndef __ASM_ARCH_PARAM_H
22#define __ASM_ARCH_PARAM_H
23
24/*
25 * We use default params
26 */
27
28#endif
diff --git a/include/asm-arm/arch-cl7500/debug-macro.S b/include/asm-arm/arch-cl7500/debug-macro.S
index a5d489d7955a..9a2b67d24098 100644
--- a/include/asm-arm/arch-cl7500/debug-macro.S
+++ b/include/asm-arm/arch-cl7500/debug-macro.S
@@ -17,15 +17,5 @@
17 orr \rx, \rx, #0x00000be0 17 orr \rx, \rx, #0x00000be0
18 .endm 18 .endm
19 19
20 .macro senduart,rd,rx 20#define UART_SHIFT 2
21 strb \rd, [\rx] 21#include <asm/hardware/debug-8250.S>
22 .endm
23
24 .macro busyuart,rd,rx
25 .endm
26
27 .macro waituart,rd,rx
281001: ldrb \rd, [\rx, #0x14]
29 tst \rd, #0x20
30 beq 1001b
31 .endm
diff --git a/include/asm-arm/arch-cl7500/param.h b/include/asm-arm/arch-cl7500/param.h
deleted file mode 100644
index 974bf69fbb1a..000000000000
--- a/include/asm-arm/arch-cl7500/param.h
+++ /dev/null
@@ -1,5 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-cl7500/param.h
3 *
4 * Copyright (C) 1999 Nexus Electronics Ltd
5 */
diff --git a/include/asm-arm/arch-clps711x/param.h b/include/asm-arm/arch-clps711x/param.h
deleted file mode 100644
index 86f6bd29623d..000000000000
--- a/include/asm-arm/arch-clps711x/param.h
+++ /dev/null
@@ -1,19 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-clps711x/param.h
3 *
4 * Copyright (C) 2000 Deep Blue Solutions Ltd.
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 as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
diff --git a/include/asm-arm/arch-ebsa110/debug-macro.S b/include/asm-arm/arch-ebsa110/debug-macro.S
index dcd03a40c502..f61cadabe0ec 100644
--- a/include/asm-arm/arch-ebsa110/debug-macro.S
+++ b/include/asm-arm/arch-ebsa110/debug-macro.S
@@ -16,19 +16,6 @@
16 orr \rx, \rx, #0x00000be0 16 orr \rx, \rx, #0x00000be0
17 .endm 17 .endm
18 18
19 .macro senduart,rd,rx 19#define UART_SHIFT 2
20 strb \rd, [\rx] 20#define FLOW_CONTROL
21 .endm 21#include <asm/hardware/debug-8250.h>
22
23 .macro busyuart,rd,rx
241002: ldrb \rd, [\rx, #0x14]
25 and \rd, \rd, #0x60
26 teq \rd, #0x60
27 bne 1002b
28 .endm
29
30 .macro waituart,rd,rx
311001: ldrb \rd, [\rx, #0x18]
32 tst \rd, #0x10
33 beq 1001b
34 .endm
diff --git a/include/asm-arm/arch-ebsa110/param.h b/include/asm-arm/arch-ebsa110/param.h
deleted file mode 100644
index be19b08d1c75..000000000000
--- a/include/asm-arm/arch-ebsa110/param.h
+++ /dev/null
@@ -1,4 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-ebsa110/param.h
3 */
4#define HZ 200
diff --git a/include/asm-arm/arch-ebsa285/debug-macro.S b/include/asm-arm/arch-ebsa285/debug-macro.S
index 97d15fc629af..b48cec4a0c45 100644
--- a/include/asm-arm/arch-ebsa285/debug-macro.S
+++ b/include/asm-arm/arch-ebsa285/debug-macro.S
@@ -23,22 +23,10 @@
23 orr \rx, \rx, #0x000003f8 23 orr \rx, \rx, #0x000003f8
24 .endm 24 .endm
25 25
26 .macro senduart,rd,rx 26#define UART_SHIFT 0
27 strb \rd, [\rx] 27#define FLOW_CONTROL
28 .endm 28#include <asm/hardware/debug-8250.S>
29 29
30 .macro busyuart,rd,rx
311002: ldrb \rd, [\rx, #0x5]
32 and \rd, \rd, #0x60
33 teq \rd, #0x60
34 bne 1002b
35 .endm
36
37 .macro waituart,rd,rx
381001: ldrb \rd, [\rx, #0x6]
39 tst \rd, #0x10
40 beq 1001b
41 .endm
42#else 30#else
43 /* For EBSA285 debugging */ 31 /* For EBSA285 debugging */
44 .equ dc21285_high, ARMCSR_BASE & 0xff000000 32 .equ dc21285_high, ARMCSR_BASE & 0xff000000
diff --git a/include/asm-arm/arch-ebsa285/param.h b/include/asm-arm/arch-ebsa285/param.h
deleted file mode 100644
index 3827103b27a0..000000000000
--- a/include/asm-arm/arch-ebsa285/param.h
+++ /dev/null
@@ -1,3 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-ebsa285/param.h
3 */
diff --git a/include/asm-arm/arch-ep93xx/debug-macro.S b/include/asm-arm/arch-ep93xx/debug-macro.S
new file mode 100644
index 000000000000..397565a0c671
--- /dev/null
+++ b/include/asm-arm/arch-ep93xx/debug-macro.S
@@ -0,0 +1,22 @@
1/*
2 * linux/include/asm-arm/arch-ep93xx/debug-macro.S
3 * Debugging macro include header
4 *
5 * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org>
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 as published by
9 * the Free Software Foundation; either version 2 of the License, or (at
10 * your option) any later version.
11 */
12#include <asm/arch/ep93xx-regs.h>
13
14 .macro addruart,rx
15 mrc p15, 0, \rx, c1, c0
16 tst \rx, #1 @ MMU enabled?
17 ldreq \rx, =EP93XX_APB_PHYS_BASE @ Physical base
18 ldrne \rx, =EP93XX_APB_VIRT_BASE @ virtual base
19 orr \rx, \rx, #0x000c0000
20 .endm
21
22#include <asm/hardware/debug-pl01x.S>
diff --git a/include/asm-arm/arch-ep93xx/dma.h b/include/asm-arm/arch-ep93xx/dma.h
new file mode 100644
index 000000000000..898b3ab7fd46
--- /dev/null
+++ b/include/asm-arm/arch-ep93xx/dma.h
@@ -0,0 +1,3 @@
1/*
2 * linux/include/asm-arm/arch-ep93xx/dma.h
3 */
diff --git a/include/asm-arm/arch-ep93xx/entry-macro.S b/include/asm-arm/arch-ep93xx/entry-macro.S
new file mode 100644
index 000000000000..84140a28dfcf
--- /dev/null
+++ b/include/asm-arm/arch-ep93xx/entry-macro.S
@@ -0,0 +1,53 @@
1/*
2 * linux/include/asm-arm/arch-ep93xx/entry-macro.S
3 * IRQ demultiplexing for EP93xx
4 *
5 * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org>
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 as published by
9 * the Free Software Foundation; either version 2 of the License, or (at
10 * your option) any later version.
11 */
12#include <asm/arch/ep93xx-regs.h>
13
14 .macro disable_fiq
15 .endm
16
17 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
18 ldr \base, =(EP93XX_AHB_VIRT_BASE)
19 orr \base, \base, #0x000b0000
20 mov \irqnr, #0
21 ldr \irqstat, [\base] @ lower 32 interrupts
22 cmp \irqstat, #0
23 bne 1001f
24
25 eor \base, \base, #0x00070000
26 ldr \irqstat, [\base] @ upper 32 interrupts
27 cmp \irqstat, #0
28 beq 1002f
29 mov \irqnr, #0x20
30
311001:
32 movs \tmp, \irqstat, lsl #16
33 movne \irqstat, \tmp
34 addeq \irqnr, \irqnr, #16
35
36 movs \tmp, \irqstat, lsl #8
37 movne \irqstat, \tmp
38 addeq \irqnr, \irqnr, #8
39
40 movs \tmp, \irqstat, lsl #4
41 movne \irqstat, \tmp
42 addeq \irqnr, \irqnr, #4
43
44 movs \tmp, \irqstat, lsl #2
45 movne \irqstat, \tmp
46 addeq \irqnr, \irqnr, #2
47
48 movs \tmp, \irqstat, lsl #1
49 addeq \irqnr, \irqnr, #1
50 orrs \base, \base, #1
51
521002:
53 .endm
diff --git a/include/asm-arm/arch-ep93xx/ep93xx-regs.h b/include/asm-arm/arch-ep93xx/ep93xx-regs.h
new file mode 100644
index 000000000000..71cea0b5841b
--- /dev/null
+++ b/include/asm-arm/arch-ep93xx/ep93xx-regs.h
@@ -0,0 +1,125 @@
1/*
2 * linux/include/asm-arm/arch-ep93xx/ep93xx-regs.h
3 */
4
5#ifndef __ASM_ARCH_EP93XX_REGS_H
6#define __ASM_ARCH_EP93XX_REGS_H
7
8/*
9 * EP93xx linux memory map:
10 *
11 * virt phys size
12 * fe800000 5M per-platform mappings
13 * fed00000 80800000 2M APB
14 * fef00000 80000000 1M AHB
15 */
16
17#define EP93XX_AHB_PHYS_BASE 0x80000000
18#define EP93XX_AHB_VIRT_BASE 0xfef00000
19#define EP93XX_AHB_SIZE 0x00100000
20
21#define EP93XX_APB_PHYS_BASE 0x80800000
22#define EP93XX_APB_VIRT_BASE 0xfed00000
23#define EP93XX_APB_SIZE 0x00200000
24
25
26/* AHB peripherals */
27#define EP93XX_DMA_BASE (EP93XX_AHB_VIRT_BASE + 0x00000000)
28
29#define EP93XX_ETHERNET_BASE (EP93XX_AHB_VIRT_BASE + 0x00010000)
30
31#define EP93XX_USB_BASE (EP93XX_AHB_VIRT_BASE + 0x00020000)
32#define EP93XX_USB_PHYS_BASE (EP93XX_AHB_PHYS_BASE + 0x00020000)
33
34#define EP93XX_RASTER_BASE (EP93XX_AHB_VIRT_BASE + 0x00030000)
35
36#define EP93XX_GRAPHICS_ACCEL_BASE (EP93XX_AHB_VIRT_BASE + 0x00040000)
37
38#define EP93XX_SDRAM_CONTROLLER_BASE (EP93XX_AHB_VIRT_BASE + 0x00060000)
39
40#define EP93XX_PCMCIA_CONTROLLER_BASE (EP93XX_AHB_VIRT_BASE + 0x00080000)
41
42#define EP93XX_BOOT_ROM_BASE (EP93XX_AHB_VIRT_BASE + 0x00090000)
43
44#define EP93XX_IDE_BASE (EP93XX_AHB_VIRT_BASE + 0x000a0000)
45
46#define EP93XX_VIC1_BASE (EP93XX_AHB_VIRT_BASE + 0x000b0000)
47
48#define EP93XX_VIC2_BASE (EP93XX_AHB_VIRT_BASE + 0x000c0000)
49
50
51/* APB peripherals */
52#define EP93XX_TIMER_BASE (EP93XX_APB_VIRT_BASE + 0x00010000)
53#define EP93XX_TIMER_REG(x) (EP93XX_TIMER_BASE + (x))
54#define EP93XX_TIMER1_LOAD EP93XX_TIMER_REG(0x00)
55#define EP93XX_TIMER1_VALUE EP93XX_TIMER_REG(0x04)
56#define EP93XX_TIMER1_CONTROL EP93XX_TIMER_REG(0x08)
57#define EP93XX_TIMER1_CLEAR EP93XX_TIMER_REG(0x0c)
58#define EP93XX_TIMER2_LOAD EP93XX_TIMER_REG(0x20)
59#define EP93XX_TIMER2_VALUE EP93XX_TIMER_REG(0x24)
60#define EP93XX_TIMER2_CONTROL EP93XX_TIMER_REG(0x28)
61#define EP93XX_TIMER2_CLEAR EP93XX_TIMER_REG(0x2c)
62#define EP93XX_TIMER4_VALUE_LOW EP93XX_TIMER_REG(0x60)
63#define EP93XX_TIMER4_VALUE_HIGH EP93XX_TIMER_REG(0x64)
64#define EP93XX_TIMER3_LOAD EP93XX_TIMER_REG(0x80)
65#define EP93XX_TIMER3_VALUE EP93XX_TIMER_REG(0x84)
66#define EP93XX_TIMER3_CONTROL EP93XX_TIMER_REG(0x88)
67#define EP93XX_TIMER3_CLEAR EP93XX_TIMER_REG(0x8c)
68
69#define EP93XX_I2S_BASE (EP93XX_APB_VIRT_BASE + 0x00020000)
70
71#define EP93XX_SECURITY_BASE (EP93XX_APB_VIRT_BASE + 0x00030000)
72
73#define EP93XX_GPIO_BASE (EP93XX_APB_VIRT_BASE + 0x00040000)
74#define EP93XX_GPIO_REG(x) (EP93XX_GPIO_BASE + (x))
75#define EP93XX_GPIO_A_INT_TYPE1 EP93XX_GPIO_REG(0x90)
76#define EP93XX_GPIO_A_INT_TYPE2 EP93XX_GPIO_REG(0x94)
77#define EP93XX_GPIO_A_INT_ACK EP93XX_GPIO_REG(0x98)
78#define EP93XX_GPIO_A_INT_ENABLE EP93XX_GPIO_REG(0x9c)
79#define EP93XX_GPIO_A_INT_STATUS EP93XX_GPIO_REG(0xa0)
80#define EP93XX_GPIO_B_INT_TYPE1 EP93XX_GPIO_REG(0xac)
81#define EP93XX_GPIO_B_INT_TYPE2 EP93XX_GPIO_REG(0xb0)
82#define EP93XX_GPIO_B_INT_ACK EP93XX_GPIO_REG(0xb4)
83#define EP93XX_GPIO_B_INT_ENABLE EP93XX_GPIO_REG(0xb8)
84#define EP93XX_GPIO_B_INT_STATUS EP93XX_GPIO_REG(0xbc)
85
86#define EP93XX_AAC_BASE (EP93XX_APB_VIRT_BASE + 0x00080000)
87
88#define EP93XX_SPI_BASE (EP93XX_APB_VIRT_BASE + 0x000a0000)
89
90#define EP93XX_IRDA_BASE (EP93XX_APB_VIRT_BASE + 0x000b0000)
91
92#define EP93XX_UART1_BASE (EP93XX_APB_VIRT_BASE + 0x000c0000)
93#define EP93XX_UART1_PHYS_BASE (EP93XX_APB_PHYS_BASE + 0x000c0000)
94
95#define EP93XX_UART2_BASE (EP93XX_APB_VIRT_BASE + 0x000d0000)
96#define EP93XX_UART2_PHYS_BASE (EP93XX_APB_PHYS_BASE + 0x000d0000)
97
98#define EP93XX_UART3_BASE (EP93XX_APB_VIRT_BASE + 0x000e0000)
99#define EP93XX_UART3_PHYS_BASE (EP93XX_APB_PHYS_BASE + 0x000e0000)
100
101#define EP93XX_KEY_MATRIX_BASE (EP93XX_APB_VIRT_BASE + 0x000f0000)
102
103#define EP93XX_ADC_BASE (EP93XX_APB_VIRT_BASE + 0x00100000)
104#define EP93XX_TOUCHSCREEN_BASE (EP93XX_APB_VIRT_BASE + 0x00100000)
105
106#define EP93XX_PWM_BASE (EP93XX_APB_VIRT_BASE + 0x00110000)
107
108#define EP93XX_RTC_BASE (EP93XX_APB_VIRT_BASE + 0x00120000)
109
110#define EP93XX_SYSCON_BASE (EP93XX_APB_VIRT_BASE + 0x00130000)
111#define EP93XX_SYSCON_REG(x) (EP93XX_SYSCON_BASE + (x))
112#define EP93XX_SYSCON_POWER_STATE EP93XX_SYSCON_REG(0x00)
113#define EP93XX_SYSCON_CLOCK_CONTROL EP93XX_SYSCON_REG(0x04)
114#define EP93XX_SYSCON_CLOCK_UARTBAUD 0x20000000
115#define EP93XX_SYSCON_CLOCK_USH_EN 0x10000000
116#define EP93XX_SYSCON_HALT EP93XX_SYSCON_REG(0x08)
117#define EP93XX_SYSCON_STANDBY EP93XX_SYSCON_REG(0x0c)
118#define EP93XX_SYSCON_DEVICE_CONFIG EP93XX_SYSCON_REG(0x80)
119#define EP93XX_SYSCON_DEVICE_CONFIG_CRUNCH_ENABLE 0x00800000
120#define EP93XX_SYSCON_SWLOCK EP93XX_SYSCON_REG(0xc0)
121
122#define EP93XX_WATCHDOG_BASE (EP93XX_APB_VIRT_BASE + 0x00140000)
123
124
125#endif
diff --git a/include/asm-arm/arch-ep93xx/gesbc9312.h b/include/asm-arm/arch-ep93xx/gesbc9312.h
new file mode 100644
index 000000000000..4d0b3023bff7
--- /dev/null
+++ b/include/asm-arm/arch-ep93xx/gesbc9312.h
@@ -0,0 +1,3 @@
1/*
2 * linux/include/asm-arm/arch-ep93xx/gesbc9312.h
3 */
diff --git a/include/asm-arm/arch-ep93xx/gpio.h b/include/asm-arm/arch-ep93xx/gpio.h
new file mode 100644
index 000000000000..1ee14a14cba0
--- /dev/null
+++ b/include/asm-arm/arch-ep93xx/gpio.h
@@ -0,0 +1,107 @@
1/*
2 * linux/include/asm-arm/arch-ep93xx/gpio.h
3 */
4
5#ifndef __ASM_ARCH_GPIO_H
6#define __ASM_ARCH_GPIO_H
7
8#define GPIO_IN 0
9#define GPIO_OUT 1
10
11#define EP93XX_GPIO_LOW 0
12#define EP93XX_GPIO_HIGH 1
13
14extern void gpio_line_config(int line, int direction);
15extern int gpio_line_get(int line);
16extern void gpio_line_set(int line, int value);
17
18/* GPIO port A. */
19#define EP93XX_GPIO_LINE_A(x) ((x) + 0)
20#define EP93XX_GPIO_LINE_EGPIO0 EP93XX_GPIO_LINE_A(0)
21#define EP93XX_GPIO_LINE_EGPIO1 EP93XX_GPIO_LINE_A(1)
22#define EP93XX_GPIO_LINE_EGPIO2 EP93XX_GPIO_LINE_A(2)
23#define EP93XX_GPIO_LINE_EGPIO3 EP93XX_GPIO_LINE_A(3)
24#define EP93XX_GPIO_LINE_EGPIO4 EP93XX_GPIO_LINE_A(4)
25#define EP93XX_GPIO_LINE_EGPIO5 EP93XX_GPIO_LINE_A(5)
26#define EP93XX_GPIO_LINE_EGPIO6 EP93XX_GPIO_LINE_A(6)
27#define EP93XX_GPIO_LINE_EGPIO7 EP93XX_GPIO_LINE_A(7)
28
29/* GPIO port B. */
30#define EP93XX_GPIO_LINE_B(x) ((x) + 8)
31#define EP93XX_GPIO_LINE_EGPIO8 EP93XX_GPIO_LINE_B(0)
32#define EP93XX_GPIO_LINE_EGPIO9 EP93XX_GPIO_LINE_B(1)
33#define EP93XX_GPIO_LINE_EGPIO10 EP93XX_GPIO_LINE_B(2)
34#define EP93XX_GPIO_LINE_EGPIO11 EP93XX_GPIO_LINE_B(3)
35#define EP93XX_GPIO_LINE_EGPIO12 EP93XX_GPIO_LINE_B(4)
36#define EP93XX_GPIO_LINE_EGPIO13 EP93XX_GPIO_LINE_B(5)
37#define EP93XX_GPIO_LINE_EGPIO14 EP93XX_GPIO_LINE_B(6)
38#define EP93XX_GPIO_LINE_EGPIO15 EP93XX_GPIO_LINE_B(7)
39
40/* GPIO port C. */
41#define EP93XX_GPIO_LINE_C(x) ((x) + 16)
42#define EP93XX_GPIO_LINE_ROW0 EP93XX_GPIO_LINE_C(0)
43#define EP93XX_GPIO_LINE_ROW1 EP93XX_GPIO_LINE_C(1)
44#define EP93XX_GPIO_LINE_ROW2 EP93XX_GPIO_LINE_C(2)
45#define EP93XX_GPIO_LINE_ROW3 EP93XX_GPIO_LINE_C(3)
46#define EP93XX_GPIO_LINE_ROW4 EP93XX_GPIO_LINE_C(4)
47#define EP93XX_GPIO_LINE_ROW5 EP93XX_GPIO_LINE_C(5)
48#define EP93XX_GPIO_LINE_ROW6 EP93XX_GPIO_LINE_C(6)
49#define EP93XX_GPIO_LINE_ROW7 EP93XX_GPIO_LINE_C(7)
50
51/* GPIO port D. */
52#define EP93XX_GPIO_LINE_D(x) ((x) + 24)
53#define EP93XX_GPIO_LINE_COL0 EP93XX_GPIO_LINE_D(0)
54#define EP93XX_GPIO_LINE_COL1 EP93XX_GPIO_LINE_D(1)
55#define EP93XX_GPIO_LINE_COL2 EP93XX_GPIO_LINE_D(2)
56#define EP93XX_GPIO_LINE_COL3 EP93XX_GPIO_LINE_D(3)
57#define EP93XX_GPIO_LINE_COL4 EP93XX_GPIO_LINE_D(4)
58#define EP93XX_GPIO_LINE_COL5 EP93XX_GPIO_LINE_D(5)
59#define EP93XX_GPIO_LINE_COL6 EP93XX_GPIO_LINE_D(6)
60#define EP93XX_GPIO_LINE_COL7 EP93XX_GPIO_LINE_D(7)
61
62/* GPIO port E. */
63#define EP93XX_GPIO_LINE_E(x) ((x) + 32)
64#define EP93XX_GPIO_LINE_GRLED EP93XX_GPIO_LINE_E(0)
65#define EP93XX_GPIO_LINE_RDLED EP93XX_GPIO_LINE_E(1)
66#define EP93XX_GPIO_LINE_DIORn EP93XX_GPIO_LINE_E(2)
67#define EP93XX_GPIO_LINE_IDECS1n EP93XX_GPIO_LINE_E(3)
68#define EP93XX_GPIO_LINE_IDECS2n EP93XX_GPIO_LINE_E(4)
69#define EP93XX_GPIO_LINE_IDEDA0 EP93XX_GPIO_LINE_E(5)
70#define EP93XX_GPIO_LINE_IDEDA1 EP93XX_GPIO_LINE_E(6)
71#define EP93XX_GPIO_LINE_IDEDA2 EP93XX_GPIO_LINE_E(7)
72
73/* GPIO port F. */
74#define EP93XX_GPIO_LINE_F(x) ((x) + 40)
75#define EP93XX_GPIO_LINE_WP EP93XX_GPIO_LINE_F(0)
76#define EP93XX_GPIO_LINE_MCCD1 EP93XX_GPIO_LINE_F(1)
77#define EP93XX_GPIO_LINE_MCCD2 EP93XX_GPIO_LINE_F(2)
78#define EP93XX_GPIO_LINE_MCBVD1 EP93XX_GPIO_LINE_F(3)
79#define EP93XX_GPIO_LINE_MCBVD2 EP93XX_GPIO_LINE_F(4)
80#define EP93XX_GPIO_LINE_VS1 EP93XX_GPIO_LINE_F(5)
81#define EP93XX_GPIO_LINE_READY EP93XX_GPIO_LINE_F(6)
82#define EP93XX_GPIO_LINE_VS2 EP93XX_GPIO_LINE_F(7)
83
84/* GPIO port G. */
85#define EP93XX_GPIO_LINE_G(x) ((x) + 48)
86#define EP93XX_GPIO_LINE_EECLK EP93XX_GPIO_LINE_G(0)
87#define EP93XX_GPIO_LINE_EEDAT EP93XX_GPIO_LINE_G(1)
88#define EP93XX_GPIO_LINE_SLA0 EP93XX_GPIO_LINE_G(2)
89#define EP93XX_GPIO_LINE_SLA1 EP93XX_GPIO_LINE_G(3)
90#define EP93XX_GPIO_LINE_DD12 EP93XX_GPIO_LINE_G(4)
91#define EP93XX_GPIO_LINE_DD13 EP93XX_GPIO_LINE_G(5)
92#define EP93XX_GPIO_LINE_DD14 EP93XX_GPIO_LINE_G(6)
93#define EP93XX_GPIO_LINE_DD15 EP93XX_GPIO_LINE_G(7)
94
95/* GPIO port H. */
96#define EP93XX_GPIO_LINE_H(x) ((x) + 56)
97#define EP93XX_GPIO_LINE_DD0 EP93XX_GPIO_LINE_H(0)
98#define EP93XX_GPIO_LINE_DD1 EP93XX_GPIO_LINE_H(1)
99#define EP93XX_GPIO_LINE_DD2 EP93XX_GPIO_LINE_H(2)
100#define EP93XX_GPIO_LINE_DD3 EP93XX_GPIO_LINE_H(3)
101#define EP93XX_GPIO_LINE_DD4 EP93XX_GPIO_LINE_H(4)
102#define EP93XX_GPIO_LINE_DD5 EP93XX_GPIO_LINE_H(5)
103#define EP93XX_GPIO_LINE_DD6 EP93XX_GPIO_LINE_H(6)
104#define EP93XX_GPIO_LINE_DD7 EP93XX_GPIO_LINE_H(7)
105
106
107#endif
diff --git a/include/asm-arm/arch-ep93xx/hardware.h b/include/asm-arm/arch-ep93xx/hardware.h
new file mode 100644
index 000000000000..9b69f454065d
--- /dev/null
+++ b/include/asm-arm/arch-ep93xx/hardware.h
@@ -0,0 +1,12 @@
1/*
2 * linux/include/asm-arm/arch-ep93xx/hardware.h
3 */
4
5#include "ep93xx-regs.h"
6
7#define pcibios_assign_all_busses() 0
8
9#include "platform.h"
10
11#include "gesbc9312.h"
12#include "ts72xx.h"
diff --git a/include/asm-arm/arch-ep93xx/io.h b/include/asm-arm/arch-ep93xx/io.h
new file mode 100644
index 000000000000..7b4d25e29060
--- /dev/null
+++ b/include/asm-arm/arch-ep93xx/io.h
@@ -0,0 +1,8 @@
1/*
2 * linux/include/asm-arm/arch-ep93xx/io.h
3 */
4
5#define IO_SPACE_LIMIT 0xffffffff
6
7#define __io(p) ((void __iomem *)(p))
8#define __mem_pci(p) (p)
diff --git a/include/asm-arm/arch-ep93xx/irqs.h b/include/asm-arm/arch-ep93xx/irqs.h
new file mode 100644
index 000000000000..9a42f5de9e57
--- /dev/null
+++ b/include/asm-arm/arch-ep93xx/irqs.h
@@ -0,0 +1,80 @@
1/*
2 * linux/include/asm-arm/arch-ep93xx/irqs.h
3 */
4
5#ifndef __ASM_ARCH_IRQS_H
6#define __ASM_ARCH_IRQS_H
7
8#define IRQ_EP93XX_COMMRX 2
9#define IRQ_EP93XX_COMMTX 3
10#define IRQ_EP93XX_TIMER1 4
11#define IRQ_EP93XX_TIMER2 5
12#define IRQ_EP93XX_AACINTR 6
13#define IRQ_EP93XX_DMAM2P0 7
14#define IRQ_EP93XX_DMAM2P1 8
15#define IRQ_EP93XX_DMAM2P2 9
16#define IRQ_EP93XX_DMAM2P3 10
17#define IRQ_EP93XX_DMAM2P4 11
18#define IRQ_EP93XX_DMAM2P5 12
19#define IRQ_EP93XX_DMAM2P6 13
20#define IRQ_EP93XX_DMAM2P7 14
21#define IRQ_EP93XX_DMAM2P8 15
22#define IRQ_EP93XX_DMAM2P9 16
23#define IRQ_EP93XX_DMAM2M0 17
24#define IRQ_EP93XX_DMAM2M1 18
25#define IRQ_EP93XX_GPIO0MUX 20
26#define IRQ_EP93XX_GPIO1MUX 21
27#define IRQ_EP93XX_GPIO2MUX 22
28#define IRQ_EP93XX_GPIO3MUX 22
29#define IRQ_EP93XX_UART1RX 23
30#define IRQ_EP93XX_UART1TX 24
31#define IRQ_EP93XX_UART2RX 25
32#define IRQ_EP93XX_UART2TX 26
33#define IRQ_EP93XX_UART3RX 27
34#define IRQ_EP93XX_UART3TX 28
35#define IRQ_EP93XX_KEY 29
36#define IRQ_EP93XX_TOUCH 30
37#define EP93XX_VIC1_VALID_IRQ_MASK 0x7ffffffc
38
39#define IRQ_EP93XX_EXT0 32
40#define IRQ_EP93XX_EXT1 33
41#define IRQ_EP93XX_EXT2 34
42#define IRQ_EP93XX_64HZ 35
43#define IRQ_EP93XX_WATCHDOG 36
44#define IRQ_EP93XX_RTC 37
45#define IRQ_EP93XX_IRDA 38
46#define IRQ_EP93XX_ETHERNET 39
47#define IRQ_EP93XX_EXT3 40
48#define IRQ_EP93XX_PROG 41
49#define IRQ_EP93XX_1HZ 42
50#define IRQ_EP93XX_VSYNC 43
51#define IRQ_EP93XX_VIDEO_FIFO 44
52#define IRQ_EP93XX_SSP1RX 45
53#define IRQ_EP93XX_SSP1TX 46
54#define IRQ_EP93XX_GPIO4MUX 47
55#define IRQ_EP93XX_GPIO5MUX 48
56#define IRQ_EP93XX_GPIO6MUX 49
57#define IRQ_EP93XX_GPIO7MUX 50
58#define IRQ_EP93XX_TIMER3 51
59#define IRQ_EP93XX_UART1 52
60#define IRQ_EP93XX_SSP 53
61#define IRQ_EP93XX_UART2 54
62#define IRQ_EP93XX_UART3 55
63#define IRQ_EP93XX_USB 56
64#define IRQ_EP93XX_ETHERNET_PME 57
65#define IRQ_EP93XX_DSP 58
66#define IRQ_EP93XX_GPIO_AB 59
67#define IRQ_EP93XX_SAI 60
68#define EP93XX_VIC2_VALID_IRQ_MASK 0x1fffffff
69
70#define IRQ_EP93XX_GPIO(x) (64 + (x))
71
72#define NR_EP93XX_IRQS IRQ_EP93XX_GPIO(16)
73
74#define EP93XX_BOARD_IRQ(x) (NR_EP93XX_IRQS + (x))
75#define EP93XX_BOARD_IRQS 32
76
77#define NR_IRQS (NR_EP93XX_IRQS + EP93XX_BOARD_IRQS)
78
79
80#endif
diff --git a/include/asm-arm/arch-ep93xx/memory.h b/include/asm-arm/arch-ep93xx/memory.h
new file mode 100644
index 000000000000..4b1a5c7c8363
--- /dev/null
+++ b/include/asm-arm/arch-ep93xx/memory.h
@@ -0,0 +1,14 @@
1/*
2 * linux/include/asm-arm/arch-ep93xx/memory.h
3 */
4
5#ifndef __ASM_ARCH_MEMORY_H
6#define __ASM_ARCH_MEMORY_H
7
8#define PHYS_OFFSET UL(0x00000000)
9
10#define __bus_to_virt(x) __phys_to_virt(x)
11#define __virt_to_bus(x) __virt_to_phys(x)
12
13
14#endif
diff --git a/include/asm-arm/arch-ep93xx/platform.h b/include/asm-arm/arch-ep93xx/platform.h
new file mode 100644
index 000000000000..df9cbb6ef660
--- /dev/null
+++ b/include/asm-arm/arch-ep93xx/platform.h
@@ -0,0 +1,14 @@
1/*
2 * linux/include/asm-arm/arch-ep93xx/platform.h
3 */
4
5#ifndef __ASSEMBLY__
6
7void ep93xx_map_io(void);
8void ep93xx_init_irq(void);
9void ep93xx_init_time(unsigned long);
10void ep93xx_init_devices(void);
11extern struct sys_timer ep93xx_timer;
12
13
14#endif
diff --git a/include/asm-arm/arch-ep93xx/system.h b/include/asm-arm/arch-ep93xx/system.h
new file mode 100644
index 000000000000..79b718586746
--- /dev/null
+++ b/include/asm-arm/arch-ep93xx/system.h
@@ -0,0 +1,26 @@
1/*
2 * linux/include/asm-arm/arch-ep93xx/system.h
3 */
4
5#include <asm/hardware.h>
6
7static inline void arch_idle(void)
8{
9 cpu_do_idle();
10}
11
12static inline void arch_reset(char mode)
13{
14 u32 devicecfg;
15
16 local_irq_disable();
17
18 devicecfg = __raw_readl(EP93XX_SYSCON_DEVICE_CONFIG);
19 __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
20 __raw_writel(devicecfg | 0x80000000, EP93XX_SYSCON_DEVICE_CONFIG);
21 __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
22 __raw_writel(devicecfg & ~0x80000000, EP93XX_SYSCON_DEVICE_CONFIG);
23
24 while (1)
25 ;
26}
diff --git a/include/asm-arm/arch-ep93xx/timex.h b/include/asm-arm/arch-ep93xx/timex.h
new file mode 100644
index 000000000000..4140bddc97e2
--- /dev/null
+++ b/include/asm-arm/arch-ep93xx/timex.h
@@ -0,0 +1,5 @@
1/*
2 * linux/include/asm-arm/arch-ep93xx/timex.h
3 */
4
5#define CLOCK_TICK_RATE 983040
diff --git a/include/asm-arm/arch-ep93xx/ts72xx.h b/include/asm-arm/arch-ep93xx/ts72xx.h
new file mode 100644
index 000000000000..412215e77f44
--- /dev/null
+++ b/include/asm-arm/arch-ep93xx/ts72xx.h
@@ -0,0 +1,90 @@
1/*
2 * linux/include/asm-arm/arch-ep93xx/ts72xx.h
3 */
4
5/*
6 * TS72xx memory map:
7 *
8 * virt phys size
9 * febff000 22000000 4K model number register
10 * febfe000 22400000 4K options register
11 * febfd000 22800000 4K options register #2
12 * febfc000 [67]0000000 4K NAND data register
13 * febfb000 [67]0400000 4K NAND control register
14 * febfa000 [67]0800000 4K NAND busy register
15 */
16
17#define TS72XX_MODEL_PHYS_BASE 0x22000000
18#define TS72XX_MODEL_VIRT_BASE 0xfebff000
19#define TS72XX_MODEL_SIZE 0x00001000
20
21#define TS72XX_MODEL_TS7200 0x00
22#define TS72XX_MODEL_TS7250 0x01
23#define TS72XX_MODEL_TS7260 0x02
24
25
26#define TS72XX_OPTIONS_PHYS_BASE 0x22400000
27#define TS72XX_OPTIONS_VIRT_BASE 0xfebfe000
28#define TS72XX_OPTIONS_SIZE 0x00001000
29
30#define TS72XX_OPTIONS_COM2_RS485 0x02
31#define TS72XX_OPTIONS_MAX197 0x01
32
33
34#define TS72XX_OPTIONS2_PHYS_BASE 0x22800000
35#define TS72XX_OPTIONS2_VIRT_BASE 0xfebfd000
36#define TS72XX_OPTIONS2_SIZE 0x00001000
37
38#define TS72XX_OPTIONS2_TS9420 0x04
39#define TS72XX_OPTIONS2_TS9420_BOOT 0x02
40
41
42#define TS72XX_NOR_PHYS_BASE 0x60000000
43#define TS72XX_NOR2_PHYS_BASE 0x62000000
44
45#define TS72XX_NAND1_DATA_PHYS_BASE 0x60000000
46#define TS72XX_NAND2_DATA_PHYS_BASE 0x70000000
47#define TS72XX_NAND_DATA_VIRT_BASE 0xfebfc000
48#define TS72XX_NAND_DATA_SIZE 0x00001000
49
50#define TS72XX_NAND1_CONTROL_PHYS_BASE 0x60400000
51#define TS72XX_NAND2_CONTROL_PHYS_BASE 0x70400000
52#define TS72XX_NAND_CONTROL_VIRT_BASE 0xfebfb000
53#define TS72XX_NAND_CONTROL_SIZE 0x00001000
54
55#define TS72XX_NAND1_BUSY_PHYS_BASE 0x60800000
56#define TS72XX_NAND2_BUSY_PHYS_BASE 0x70800000
57#define TS72XX_NAND_BUSY_VIRT_BASE 0xfebfa000
58#define TS72XX_NAND_BUSY_SIZE 0x00001000
59
60
61#ifndef __ASSEMBLY__
62#include <asm/io.h>
63
64static inline int board_is_ts7200(void)
65{
66 return __raw_readb(TS72XX_MODEL_VIRT_BASE) == TS72XX_MODEL_TS7200;
67}
68
69static inline int board_is_ts7250(void)
70{
71 return __raw_readb(TS72XX_MODEL_VIRT_BASE) == TS72XX_MODEL_TS7250;
72}
73
74static inline int board_is_ts7260(void)
75{
76 return __raw_readb(TS72XX_MODEL_VIRT_BASE) == TS72XX_MODEL_TS7260;
77}
78
79static inline int is_max197_installed(void)
80{
81 return !!(__raw_readb(TS72XX_OPTIONS_VIRT_BASE) &
82 TS72XX_OPTIONS_MAX197);
83}
84
85static inline int is_ts9420_installed(void)
86{
87 return !!(__raw_readb(TS72XX_OPTIONS2_VIRT_BASE) &
88 TS72XX_OPTIONS2_TS9420);
89}
90#endif
diff --git a/include/asm-arm/arch-ep93xx/uncompress.h b/include/asm-arm/arch-ep93xx/uncompress.h
new file mode 100644
index 000000000000..4410d217077e
--- /dev/null
+++ b/include/asm-arm/arch-ep93xx/uncompress.h
@@ -0,0 +1,53 @@
1/*
2 * linux/include/asm-arm/arch-ep93xx/uncompress.h
3 *
4 * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org>
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 as published by
8 * the Free Software Foundation; either version 2 of the License, or (at
9 * your option) any later version.
10 */
11
12#include <asm/arch/ep93xx-regs.h>
13
14static unsigned char __raw_readb(unsigned int ptr)
15{
16 return *((volatile unsigned char *)ptr);
17}
18
19static void __raw_writeb(unsigned char value, unsigned int ptr)
20{
21 *((volatile unsigned char *)ptr) = value;
22}
23
24
25#define PHYS_UART1_DATA 0x808c0000
26#define PHYS_UART1_FLAG 0x808c0018
27#define UART1_FLAG_TXFF 0x20
28
29static __inline__ void putc(char c)
30{
31 int i;
32
33 for (i = 0; i < 1000; i++) {
34 /* Transmit fifo not full? */
35 if (!(__raw_readb(PHYS_UART1_FLAG) & UART1_FLAG_TXFF))
36 break;
37 }
38
39 __raw_writeb(c, PHYS_UART1_DATA);
40}
41
42static void putstr(const char *s)
43{
44 while (*s) {
45 putc(*s);
46 if (*s == '\n')
47 putc('\r');
48 s++;
49 }
50}
51
52#define arch_decomp_setup()
53#define arch_decomp_wdog()
diff --git a/include/asm-arm/arch-ep93xx/vmalloc.h b/include/asm-arm/arch-ep93xx/vmalloc.h
new file mode 100644
index 000000000000..205ea6b1cf5e
--- /dev/null
+++ b/include/asm-arm/arch-ep93xx/vmalloc.h
@@ -0,0 +1,5 @@
1/*
2 * linux/include/asm-arm/arch-ep93xx/vmalloc.h
3 */
4
5#define VMALLOC_END 0xfe800000
diff --git a/include/asm-arm/arch-h720x/irq.h b/include/asm-arm/arch-h720x/irq.h
deleted file mode 100644
index b3821e957aa4..000000000000
--- a/include/asm-arm/arch-h720x/irq.h
+++ /dev/null
@@ -1,14 +0,0 @@
1/*
2 * include/asm-arm/arch-h720x/irq.h
3 *
4 * Copyright (C) 2000-2002 Jungjun Kim
5 * (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>
6 * (C) 2003 Thomas Gleixner <tglx@linutronix.de>
7 */
8
9#ifndef __ASM_ARCH_IRQ_H
10#define __ASM_ARCH_IRQ_H
11
12extern void __init h720x_init_irq (void);
13
14#endif /* __ASM_ARCH_IRQ_H */
diff --git a/include/asm-arm/arch-h720x/param.h b/include/asm-arm/arch-h720x/param.h
deleted file mode 100644
index 2b80235f9847..000000000000
--- a/include/asm-arm/arch-h720x/param.h
+++ /dev/null
@@ -1,10 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-h720x/param.h
3 *
4 * Copyright (C) 2000 Jungjun Kim
5 */
6
7#ifndef __ASM_ARCH_PARAM_H
8#define __ASM_ARCH_PARAM_H
9
10#endif
diff --git a/include/asm-arm/arch-imx/irq.h b/include/asm-arm/arch-imx/irq.h
deleted file mode 100644
index 545e065d2325..000000000000
--- a/include/asm-arm/arch-imx/irq.h
+++ /dev/null
@@ -1,20 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-imxads/irq.h
3 *
4 * Copyright (C) 1999 ARM Limited
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 as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20#define fixup_irq(i) (i)
diff --git a/include/asm-arm/arch-imx/param.h b/include/asm-arm/arch-imx/param.h
deleted file mode 100644
index 7c724f03333e..000000000000
--- a/include/asm-arm/arch-imx/param.h
+++ /dev/null
@@ -1,19 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-imx/param.h
3 *
4 * Copyright (C) 1999 ARM Limited
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 as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
diff --git a/include/asm-arm/arch-integrator/debug-macro.S b/include/asm-arm/arch-integrator/debug-macro.S
index 031d30941791..85b327c352df 100644
--- a/include/asm-arm/arch-integrator/debug-macro.S
+++ b/include/asm-arm/arch-integrator/debug-macro.S
@@ -11,8 +11,6 @@
11 * 11 *
12*/ 12*/
13 13
14#include <linux/amba/serial.h>
15
16 .macro addruart,rx 14 .macro addruart,rx
17 mrc p15, 0, \rx, c1, c0 15 mrc p15, 0, \rx, c1, c0
18 tst \rx, #1 @ MMU enabled? 16 tst \rx, #1 @ MMU enabled?
@@ -21,18 +19,4 @@
21 addne \rx, \rx, #0x16000000 >> 4 19 addne \rx, \rx, #0x16000000 >> 4
22 .endm 20 .endm
23 21
24 .macro senduart,rd,rx 22#include <asm/hardware/debug-pl01x.S>
25 strb \rd, [\rx, #UART01x_DR]
26 .endm
27
28 .macro waituart,rd,rx
291001: ldr \rd, [\rx, #0x18] @ UARTFLG
30 tst \rd, #1 << 5 @ UARTFLGUTXFF - 1 when full
31 bne 1001b
32 .endm
33
34 .macro busyuart,rd,rx
351001: ldr \rd, [\rx, #0x18] @ UARTFLG
36 tst \rd, #1 << 3 @ UARTFLGUBUSY - 1 when busy
37 bne 1001b
38 .endm
diff --git a/include/asm-arm/arch-integrator/param.h b/include/asm-arm/arch-integrator/param.h
deleted file mode 100644
index afa582ff3717..000000000000
--- a/include/asm-arm/arch-integrator/param.h
+++ /dev/null
@@ -1,19 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-integrator/param.h
3 *
4 * Copyright (C) 1999 ARM Limited
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 as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
diff --git a/include/asm-arm/arch-iop3xx/debug-macro.S b/include/asm-arm/arch-iop3xx/debug-macro.S
index cc15f80ebd9a..ce007e531994 100644
--- a/include/asm-arm/arch-iop3xx/debug-macro.S
+++ b/include/asm-arm/arch-iop3xx/debug-macro.S
@@ -28,21 +28,8 @@
28#endif 28#endif
29 .endm 29 .endm
30 30
31 .macro senduart,rd,rx
32 strb \rd, [\rx]
33 .endm
34
35 .macro busyuart,rd,rx
361002: ldrb \rd, [\rx, #0x5]
37 and \rd, \rd, #0x60
38 teq \rd, #0x60
39 bne 1002b
40 .endm
41
42 .macro waituart,rd,rx
43#if !defined(CONFIG_ARCH_IQ80321) || !defined(CONFIG_ARCH_IQ31244) || !defined(CONFIG_ARCH_IQ80331) 31#if !defined(CONFIG_ARCH_IQ80321) || !defined(CONFIG_ARCH_IQ31244) || !defined(CONFIG_ARCH_IQ80331)
441001: ldrb \rd, [\rx, #0x6] 32#define FLOW_CONTROL
45 tst \rd, #0x10
46 beq 1001b
47#endif 33#endif
48 .endm 34#define UART_SHIFT 0
35#include <asm/hardware/debug-8250.S>
diff --git a/include/asm-arm/arch-iop3xx/param.h b/include/asm-arm/arch-iop3xx/param.h
deleted file mode 100644
index acf404e87358..000000000000
--- a/include/asm-arm/arch-iop3xx/param.h
+++ /dev/null
@@ -1,3 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-iop3xx/param.h
3 */
diff --git a/include/asm-arm/arch-ixp2000/debug-macro.S b/include/asm-arm/arch-ixp2000/debug-macro.S
index 5631e0889861..bc8b39654793 100644
--- a/include/asm-arm/arch-ixp2000/debug-macro.S
+++ b/include/asm-arm/arch-ixp2000/debug-macro.S
@@ -23,18 +23,5 @@
23#endif 23#endif
24 .endm 24 .endm
25 25
26 .macro senduart,rd,rx 26#define UART_SHIFT 2
27 strb \rd, [\rx] 27#include <asm/hardware/debug-8250.S>
28 .endm
29
30 .macro busyuart,rd,rx
311002: ldrb \rd, [\rx, #0x14]
32 tst \rd, #0x20
33 beq 1002b
34 .endm
35
36 .macro waituart,rd,rx
37 nop
38 nop
39 nop
40 .endm
diff --git a/include/asm-arm/arch-ixp2000/irq.h b/include/asm-arm/arch-ixp2000/irq.h
deleted file mode 100644
index ba00b23f9828..000000000000
--- a/include/asm-arm/arch-ixp2000/irq.h
+++ /dev/null
@@ -1,13 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-ixp2000/irq.h
3 *
4 * Copyright (C) 2002 Intel Corp.
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
11#define fixup_irq(irq) (irq)
12
13
diff --git a/include/asm-arm/arch-ixp2000/ixdp2x00.h b/include/asm-arm/arch-ixp2000/ixdp2x00.h
index 229381c64283..546e2e8e27b8 100644
--- a/include/asm-arm/arch-ixp2000/ixdp2x00.h
+++ b/include/asm-arm/arch-ixp2000/ixdp2x00.h
@@ -72,12 +72,11 @@
72 72
73#ifndef __ASSEMBLY__ 73#ifndef __ASSEMBLY__
74/* 74/*
75 * Master NPU will always have flash and be PCI master. 75 * The master NPU is always PCI master.
76 * Slave NPU may or may not have flash but will never be PCI master.
77 */ 76 */
78static inline unsigned int ixdp2x00_master_npu(void) 77static inline unsigned int ixdp2x00_master_npu(void)
79{ 78{
80 return ((ixp2000_has_flash()) && (ixp2000_is_pcimaster())); 79 return !!ixp2000_is_pcimaster();
81} 80}
82 81
83/* 82/*
diff --git a/include/asm-arm/arch-ixp2000/ixp2000-regs.h b/include/asm-arm/arch-ixp2000/ixp2000-regs.h
index 2b57f91b4ebd..ccae4bec92c5 100644
--- a/include/asm-arm/arch-ixp2000/ixp2000-regs.h
+++ b/include/asm-arm/arch-ixp2000/ixp2000-regs.h
@@ -353,8 +353,8 @@
353 * Masks and shifts for various fields in the WTC and RTC registers. 353 * Masks and shifts for various fields in the WTC and RTC registers.
354 */ 354 */
355#define SLOWPORT_WRTC_MASK_HD 0x0003 355#define SLOWPORT_WRTC_MASK_HD 0x0003
356#define SLOWPORT_WRTC_MASK_SU 0x003c 356#define SLOWPORT_WRTC_MASK_PW 0x003c
357#define SLOWPORT_WRTC_MASK_PW 0x03c0 357#define SLOWPORT_WRTC_MASK_SU 0x03c0
358 358
359#define SLOWPORT_WRTC_SHIFT_HD 0x00 359#define SLOWPORT_WRTC_SHIFT_HD 0x00
360#define SLOWPORT_WRTC_SHIFT_SU 0x02 360#define SLOWPORT_WRTC_SHIFT_SU 0x02
diff --git a/include/asm-arm/arch-ixp2000/param.h b/include/asm-arm/arch-ixp2000/param.h
deleted file mode 100644
index 2646d9e5919d..000000000000
--- a/include/asm-arm/arch-ixp2000/param.h
+++ /dev/null
@@ -1,3 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-ixp2000/param.h
3 */
diff --git a/include/asm-arm/arch-ixp2000/system.h b/include/asm-arm/arch-ixp2000/system.h
index ddbbb34b5f95..3cc9a04f68cb 100644
--- a/include/asm-arm/arch-ixp2000/system.h
+++ b/include/asm-arm/arch-ixp2000/system.h
@@ -37,7 +37,7 @@ static inline void arch_reset(char mode)
37 * to cause a complete reset of the CPU and all external devices 37 * to cause a complete reset of the CPU and all external devices
38 * and move the flash bank register back to 0. 38 * and move the flash bank register back to 0.
39 */ 39 */
40 if (machine_is_ixdp2801()) { 40 if (machine_is_ixdp2801() || machine_is_ixdp28x5()) {
41 unsigned long reset_reg = *IXDP2X01_CPLD_RESET_REG; 41 unsigned long reset_reg = *IXDP2X01_CPLD_RESET_REG;
42 42
43 reset_reg = 0x55AA0000 | (reset_reg & 0x0000FFFF); 43 reset_reg = 0x55AA0000 | (reset_reg & 0x0000FFFF);
diff --git a/include/asm-arm/arch-ixp4xx/debug-macro.S b/include/asm-arm/arch-ixp4xx/debug-macro.S
index 2e23651e217f..37bc8ef23e67 100644
--- a/include/asm-arm/arch-ixp4xx/debug-macro.S
+++ b/include/asm-arm/arch-ixp4xx/debug-macro.S
@@ -20,16 +20,5 @@
20 @ byte writes used - Big Endian. 20 @ byte writes used - Big Endian.
21 .endm 21 .endm
22 22
23 .macro senduart,rd,rx 23#define UART_SHIFT 2
24 strb \rd, [\rx] 24#include <asm/hardware/debug-8250.S>
25 .endm
26
27 .macro waituart,rd,rx
281002: ldrb \rd, [\rx, #0x14]
29 and \rd, \rd, #0x60 @ check THRE and TEMT bits
30 teq \rd, #0x60
31 bne 1002b
32 .endm
33
34 .macro busyuart,rd,rx
35 .endm
diff --git a/include/asm-arm/arch-ixp4xx/irq.h b/include/asm-arm/arch-ixp4xx/irq.h
deleted file mode 100644
index 87da70695f0a..000000000000
--- a/include/asm-arm/arch-ixp4xx/irq.h
+++ /dev/null
@@ -1,13 +0,0 @@
1/*
2 * irq.h
3 *
4 * Copyright (C) 2002 Intel Corporation.
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 */
11
12#define fixup_irq(irq) (irq)
13
diff --git a/include/asm-arm/arch-ixp4xx/param.h b/include/asm-arm/arch-ixp4xx/param.h
deleted file mode 100644
index 8a757125e5e7..000000000000
--- a/include/asm-arm/arch-ixp4xx/param.h
+++ /dev/null
@@ -1,3 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-ixp4xx/param.h
3 */
diff --git a/include/asm-arm/arch-ixp4xx/platform.h b/include/asm-arm/arch-ixp4xx/platform.h
index daf9790645ca..13aee17b0475 100644
--- a/include/asm-arm/arch-ixp4xx/platform.h
+++ b/include/asm-arm/arch-ixp4xx/platform.h
@@ -38,6 +38,33 @@ extern unsigned long ixp4xx_exp_bus_size;
38#define IXP4XX_EXP_BUS_BASE(region)\ 38#define IXP4XX_EXP_BUS_BASE(region)\
39 (IXP4XX_EXP_BUS_BASE_PHYS + ((region) * ixp4xx_exp_bus_size)) 39 (IXP4XX_EXP_BUS_BASE_PHYS + ((region) * ixp4xx_exp_bus_size))
40 40
41#define IXP4XX_EXP_BUS_END(region)\
42 (IXP4XX_EXP_BUS_BASE(region) + ixp4xx_exp_bus_size - 1)
43
44/* Those macros can be used to adjust timing and configure
45 * other features for each region.
46 */
47
48#define IXP4XX_EXP_BUS_RECOVERY_T(x) (((x) & 0x0f) << 16)
49#define IXP4XX_EXP_BUS_HOLD_T(x) (((x) & 0x03) << 20)
50#define IXP4XX_EXP_BUS_STROBE_T(x) (((x) & 0x0f) << 22)
51#define IXP4XX_EXP_BUS_SETUP_T(x) (((x) & 0x03) << 26)
52#define IXP4XX_EXP_BUS_ADDR_T(x) (((x) & 0x03) << 28)
53#define IXP4XX_EXP_BUS_SIZE(x) (((x) & 0x0f) << 10)
54#define IXP4XX_EXP_BUS_CYCLES(x) (((x) & 0x03) << 14)
55
56#define IXP4XX_EXP_BUS_CS_EN (1L << 31)
57#define IXP4XX_EXP_BUS_BYTE_RD16 (1L << 6)
58#define IXP4XX_EXP_BUS_HRDY_POL (1L << 5)
59#define IXP4XX_EXP_BUS_MUX_EN (1L << 4)
60#define IXP4XX_EXP_BUS_SPLT_EN (1L << 3)
61#define IXP4XX_EXP_BUS_WR_EN (1L << 1)
62#define IXP4XX_EXP_BUS_BYTE_EN (1L << 0)
63
64#define IXP4XX_EXP_BUS_CYCLES_INTEL 0x00
65#define IXP4XX_EXP_BUS_CYCLES_MOTOROLA 0x01
66#define IXP4XX_EXP_BUS_CYCLES_HPI 0x02
67
41#define IXP4XX_FLASH_WRITABLE (0x2) 68#define IXP4XX_FLASH_WRITABLE (0x2)
42#define IXP4XX_FLASH_DEFAULT (0xbcd23c40) 69#define IXP4XX_FLASH_DEFAULT (0xbcd23c40)
43#define IXP4XX_FLASH_WRITE (0xbcd23c42) 70#define IXP4XX_FLASH_WRITE (0xbcd23c42)
diff --git a/include/asm-arm/arch-l7200/param.h b/include/asm-arm/arch-l7200/param.h
deleted file mode 100644
index 9962a12ab158..000000000000
--- a/include/asm-arm/arch-l7200/param.h
+++ /dev/null
@@ -1,19 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-l7200/param.h
3 *
4 * Copyright (C) 2000 Rob Scott (rscott@mtrob.fdns.net)
5 * Steve Hill (sjhill@cotw.com)
6 *
7 * This file contains the hardware definitions for the
8 * LinkUp Systems L7200 SOC development board.
9 *
10 * Changelog:
11 * 04-21-2000 RS Created L7200 version
12 * 04-25-2000 SJH Cleaned up file
13 * 05-03-2000 SJH Change comments and rate
14 */
15
16/*
17 * See 'time.h' for how the RTC HZ rate is set
18 */
19#define HZ 128
diff --git a/include/asm-arm/arch-lh7a40x/irq.h b/include/asm-arm/arch-lh7a40x/irq.h
deleted file mode 100644
index 0f5f0b10f6ca..000000000000
--- a/include/asm-arm/arch-lh7a40x/irq.h
+++ /dev/null
@@ -1,11 +0,0 @@
1/* include/asm-arm/arch-lh7a40x/irq.h
2 *
3 * Copyright (C) 2004 Logic Product Development
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * version 2 as published by the Free Software Foundation.
8 *
9 */
10
11void __init lh7a40x_init_board_irq (void);
diff --git a/include/asm-arm/arch-lh7a40x/param.h b/include/asm-arm/arch-lh7a40x/param.h
deleted file mode 100644
index acad0bc5deba..000000000000
--- a/include/asm-arm/arch-lh7a40x/param.h
+++ /dev/null
@@ -1,9 +0,0 @@
1/* include/asm-arm/arch-lh7a40x/param.h
2 *
3 * Copyright (C) 2004 Coastal Environmental Systems
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * version 2 as published by the Free Software Foundation.
8 *
9 */
diff --git a/include/asm-arm/arch-omap/param.h b/include/asm-arm/arch-omap/param.h
deleted file mode 100644
index face9ad41e97..000000000000
--- a/include/asm-arm/arch-omap/param.h
+++ /dev/null
@@ -1,8 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-omap/param.h
3 *
4 */
5
6#ifdef CONFIG_OMAP_32K_TIMER_HZ
7#define HZ CONFIG_OMAP_32K_TIMER_HZ
8#endif
diff --git a/include/asm-arm/arch-pxa/debug-macro.S b/include/asm-arm/arch-pxa/debug-macro.S
index b6ec68879176..9012cbc0ad8b 100644
--- a/include/asm-arm/arch-pxa/debug-macro.S
+++ b/include/asm-arm/arch-pxa/debug-macro.S
@@ -21,18 +21,5 @@
21 orr \rx, \rx, #0x00100000 21 orr \rx, \rx, #0x00100000
22 .endm 22 .endm
23 23
24 .macro senduart,rd,rx 24#define UART_SHIFT 2
25 str \rd, [\rx, #0] 25#include <asm/hardware/debug-8250.S>
26 .endm
27
28 .macro busyuart,rd,rx
291002: ldr \rd, [\rx, #0x14]
30 tst \rd, #(1 << 6)
31 beq 1002b
32 .endm
33
34 .macro waituart,rd,rx
351001: ldr \rd, [\rx, #0x14]
36 tst \rd, #(1 << 5)
37 beq 1001b
38 .endm
diff --git a/include/asm-arm/arch-pxa/irq.h b/include/asm-arm/arch-pxa/irq.h
deleted file mode 100644
index 48c60f5eff6a..000000000000
--- a/include/asm-arm/arch-pxa/irq.h
+++ /dev/null
@@ -1,14 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-pxa/irq.h
3 *
4 * Author: Nicolas Pitre
5 * Created: Jun 15, 2001
6 * Copyright: MontaVista Software Inc.
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 */
12
13#define fixup_irq(x) (x)
14
diff --git a/include/asm-arm/arch-pxa/param.h b/include/asm-arm/arch-pxa/param.h
deleted file mode 100644
index 3197d82d7573..000000000000
--- a/include/asm-arm/arch-pxa/param.h
+++ /dev/null
@@ -1,3 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-pxa/param.h
3 */
diff --git a/include/asm-arm/arch-realview/debug-macro.S b/include/asm-arm/arch-realview/debug-macro.S
index 017ad996848d..f17efc65518a 100644
--- a/include/asm-arm/arch-realview/debug-macro.S
+++ b/include/asm-arm/arch-realview/debug-macro.S
@@ -11,8 +11,6 @@
11 * 11 *
12*/ 12*/
13 13
14#include <linux/amba/serial.h>
15
16 .macro addruart,rx 14 .macro addruart,rx
17 mrc p15, 0, \rx, c1, c0 15 mrc p15, 0, \rx, c1, c0
18 tst \rx, #1 @ MMU enabled? 16 tst \rx, #1 @ MMU enabled?
@@ -21,18 +19,4 @@
21 orr \rx, \rx, #0x00009000 19 orr \rx, \rx, #0x00009000
22 .endm 20 .endm
23 21
24 .macro senduart,rd,rx 22#include <asm/hardware/debug-pl01x.S>
25 strb \rd, [\rx, #UART01x_DR]
26 .endm
27
28 .macro waituart,rd,rx
291001: ldr \rd, [\rx, #0x18] @ UARTFLG
30 tst \rd, #1 << 5 @ UARTFLGUTXFF - 1 when full
31 bne 1001b
32 .endm
33
34 .macro busyuart,rd,rx
351001: ldr \rd, [\rx, #0x18] @ UARTFLG
36 tst \rd, #1 << 3 @ UARTFLGUBUSY - 1 when busy
37 bne 1001b
38 .endm
diff --git a/include/asm-arm/arch-realview/param.h b/include/asm-arm/arch-realview/param.h
deleted file mode 100644
index 89b1235d32bd..000000000000
--- a/include/asm-arm/arch-realview/param.h
+++ /dev/null
@@ -1,19 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-realview/param.h
3 *
4 * Copyright (C) 2002 ARM Limited
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 as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
diff --git a/include/asm-arm/arch-rpc/debug-macro.S b/include/asm-arm/arch-rpc/debug-macro.S
index 456d3d754c3d..c634c8d8f4a1 100644
--- a/include/asm-arm/arch-rpc/debug-macro.S
+++ b/include/asm-arm/arch-rpc/debug-macro.S
@@ -20,19 +20,6 @@
20 orr \rx, \rx, #0x00000fe0 20 orr \rx, \rx, #0x00000fe0
21 .endm 21 .endm
22 22
23 .macro senduart,rd,rx 23#define UART_SHIFT 2
24 strb \rd, [\rx] 24#define FLOW_CONTROL
25 .endm 25#include <asm/hardware/debug-8250.S>
26
27 .macro busyuart,rd,rx
281001: ldrb \rd, [\rx, #0x14]
29 and \rd, \rd, #0x60
30 teq \rd, #0x60
31 bne 1001b
32 .endm
33
34 .macro waituart,rd,rx
351001: ldrb \rd, [\rx, #0x18]
36 tst \rd, #0x10
37 beq 1001b
38 .endm
diff --git a/include/asm-arm/arch-rpc/param.h b/include/asm-arm/arch-rpc/param.h
deleted file mode 100644
index 721dcd658858..000000000000
--- a/include/asm-arm/arch-rpc/param.h
+++ /dev/null
@@ -1,3 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-rpc/param.h
3 */
diff --git a/include/asm-arm/arch-s3c2410/osiris-cpld.h b/include/asm-arm/arch-s3c2410/osiris-cpld.h
new file mode 100644
index 000000000000..e9d1ae1f354f
--- /dev/null
+++ b/include/asm-arm/arch-s3c2410/osiris-cpld.h
@@ -0,0 +1,25 @@
1/* linux/include/asm-arm/arch-s3c2410/osiris-cpld.h
2 *
3 * (c) 2005 Simtec Electronics
4 * http://www.simtec.co.uk/products/
5 * Ben Dooks <ben@simtec.co.uk>
6 *
7 * OSIRIS - CPLD control constants
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
14#ifndef __ASM_ARCH_OSIRISCPLD_H
15#define __ASM_ARCH_OSIRISCPLD_H
16
17/* CTRL1 - NAND WP control */
18
19#define OSIRIS_CTRL1_NANDSEL (0x3)
20#define OSIRIS_CTRL1_BOOT_INT (1<<3)
21#define OSIRIS_CTRL1_PCMCIA (1<<4)
22#define OSIRIS_CTRL1_PCMCIA_nWAIT (1<<6)
23#define OSIRIS_CTRL1_PCMCIA_nIOIS16 (1<<7)
24
25#endif /* __ASM_ARCH_OSIRISCPLD_H */
diff --git a/include/asm-arm/arch-s3c2410/osiris-map.h b/include/asm-arm/arch-s3c2410/osiris-map.h
new file mode 100644
index 000000000000..7c4b0cd2d14d
--- /dev/null
+++ b/include/asm-arm/arch-s3c2410/osiris-map.h
@@ -0,0 +1,41 @@
1/* linux/include/asm-arm/arch-s3c2410/osiris-map.h
2 *
3 * (c) 2005 Simtec Electronics
4 * http://www.simtec.co.uk/products/
5 * Ben Dooks <ben@simtec.co.uk>
6 *
7 * OSIRIS - Memory map definitions
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 * Changelog:
14*/
15
16/* needs arch/map.h including with this */
17
18#ifndef __ASM_ARCH_OSIRISMAP_H
19#define __ASM_ARCH_OSIRISMAP_H
20
21/* start peripherals off after the S3C2410 */
22
23#define OSIRIS_IOADDR(x) (S3C2410_ADDR((x) + 0x05000000))
24
25#define OSIRIS_PA_CPLD (S3C2410_CS1 | (3<<25))
26
27/* we put the CPLD registers next, to get them out of the way */
28
29#define OSIRIS_VA_CTRL1 OSIRIS_IOADDR(0x00000000) /* 0x01300000 */
30#define OSIRIS_PA_CTRL1 (OSIRIS_PA_CPLD)
31
32#define OSIRIS_VA_CTRL2 OSIRIS_IOADDR(0x00100000) /* 0x01400000 */
33#define OSIRIS_PA_CTRL2 (OSIRIS_PA_CPLD + (1<<24))
34
35#define OSIRIS_VA_CTRL3 OSIRIS_IOADDR(0x00200000) /* 0x01500000 */
36#define OSIRIS_PA_CTRL3 (OSIRIS_PA_CPLD + (2<<24))
37
38#define OSIRIS_VA_CTRL4 OSIRIS_IOADDR(0x00300000) /* 0x01600000 */
39#define OSIRIS_PA_CTRL4 (OSIRIS_PA_CPLD + (3<<24))
40
41#endif /* __ASM_ARCH_OSIRISMAP_H */
diff --git a/include/asm-arm/arch-s3c2410/param.h b/include/asm-arm/arch-s3c2410/param.h
deleted file mode 100644
index 483d3f149883..000000000000
--- a/include/asm-arm/arch-s3c2410/param.h
+++ /dev/null
@@ -1,27 +0,0 @@
1/* linux/include/asm-arm/arch-s3c2410/param.h
2 *
3 * (c) 2003 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk>
5 *
6 * S3C2410 - Machine parameters
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 *
12 * Changelog:
13 * 02-Sep-2003 BJD Created file
14 * 12-Mar-2004 BJD Added include protection
15*/
16
17#ifndef __ASM_ARCH_PARAM_H
18#define __ASM_ARCH_PARAM_H
19
20/* we cannot get our timer down to 100Hz with the setup as is, but we can
21 * manage 200 clock ticks per second... if this is a problem, we can always
22 * add a software pre-scaler to the evil timer systems.
23*/
24
25#define HZ 200
26
27#endif /* __ASM_ARCH_PARAM_H */
diff --git a/include/asm-arm/arch-s3c2410/regs-gpio.h b/include/asm-arm/arch-s3c2410/regs-gpio.h
index 9697f93afe74..d2574084697f 100644
--- a/include/asm-arm/arch-s3c2410/regs-gpio.h
+++ b/include/asm-arm/arch-s3c2410/regs-gpio.h
@@ -979,6 +979,7 @@
979#define S3C2410_MISCCR_CLK0_HCLK (3<<4) 979#define S3C2410_MISCCR_CLK0_HCLK (3<<4)
980#define S3C2410_MISCCR_CLK0_PCLK (4<<4) 980#define S3C2410_MISCCR_CLK0_PCLK (4<<4)
981#define S3C2410_MISCCR_CLK0_DCLK0 (5<<4) 981#define S3C2410_MISCCR_CLK0_DCLK0 (5<<4)
982#define S3C2410_MISCCR_CLK0_MASK (7<<4)
982 983
983#define S3C2410_MISCCR_CLK1_MPLL (0<<8) 984#define S3C2410_MISCCR_CLK1_MPLL (0<<8)
984#define S3C2410_MISCCR_CLK1_UPLL (1<<8) 985#define S3C2410_MISCCR_CLK1_UPLL (1<<8)
@@ -986,6 +987,7 @@
986#define S3C2410_MISCCR_CLK1_HCLK (3<<8) 987#define S3C2410_MISCCR_CLK1_HCLK (3<<8)
987#define S3C2410_MISCCR_CLK1_PCLK (4<<8) 988#define S3C2410_MISCCR_CLK1_PCLK (4<<8)
988#define S3C2410_MISCCR_CLK1_DCLK1 (5<<8) 989#define S3C2410_MISCCR_CLK1_DCLK1 (5<<8)
990#define S3C2410_MISCCR_CLK1_MASK (7<<8)
989 991
990#define S3C2410_MISCCR_USBSUSPND0 (1<<12) 992#define S3C2410_MISCCR_USBSUSPND0 (1<<12)
991#define S3C2410_MISCCR_USBSUSPND1 (1<<13) 993#define S3C2410_MISCCR_USBSUSPND1 (1<<13)
diff --git a/include/asm-arm/arch-sa1100/debug-macro.S b/include/asm-arm/arch-sa1100/debug-macro.S
index 755fa3453862..267c317a7408 100644
--- a/include/asm-arm/arch-sa1100/debug-macro.S
+++ b/include/asm-arm/arch-sa1100/debug-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/hardware.h>
13 14
14 .macro addruart,rx 15 .macro addruart,rx
15 mrc p15, 0, \rx, c1, c0 16 mrc p15, 0, \rx, c1, c0
diff --git a/include/asm-arm/arch-sa1100/param.h b/include/asm-arm/arch-sa1100/param.h
deleted file mode 100644
index 867488909ecd..000000000000
--- a/include/asm-arm/arch-sa1100/param.h
+++ /dev/null
@@ -1,3 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-sa1100/param.h
3 */
diff --git a/include/asm-arm/arch-shark/param.h b/include/asm-arm/arch-shark/param.h
deleted file mode 100644
index 997eeb71de00..000000000000
--- a/include/asm-arm/arch-shark/param.h
+++ /dev/null
@@ -1,5 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-shark/param.h
3 *
4 * by Alexander Schulz
5 */
diff --git a/include/asm-arm/arch-versatile/debug-macro.S b/include/asm-arm/arch-versatile/debug-macro.S
index ef6167116dbb..fe106d184e62 100644
--- a/include/asm-arm/arch-versatile/debug-macro.S
+++ b/include/asm-arm/arch-versatile/debug-macro.S
@@ -11,8 +11,6 @@
11 * 11 *
12*/ 12*/
13 13
14#include <linux/amba/serial.h>
15
16 .macro addruart,rx 14 .macro addruart,rx
17 mrc p15, 0, \rx, c1, c0 15 mrc p15, 0, \rx, c1, c0
18 tst \rx, #1 @ MMU enabled? 16 tst \rx, #1 @ MMU enabled?
@@ -22,18 +20,4 @@
22 orr \rx, \rx, #0x00001000 20 orr \rx, \rx, #0x00001000
23 .endm 21 .endm
24 22
25 .macro senduart,rd,rx 23#include <asm/hardware/debug-pl01x.S>
26 strb \rd, [\rx, #UART01x_DR]
27 .endm
28
29 .macro waituart,rd,rx
301001: ldr \rd, [\rx, #0x18] @ UARTFLG
31 tst \rd, #1 << 5 @ UARTFLGUTXFF - 1 when full
32 bne 1001b
33 .endm
34
35 .macro busyuart,rd,rx
361001: ldr \rd, [\rx, #0x18] @ UARTFLG
37 tst \rd, #1 << 3 @ UARTFLGUBUSY - 1 when busy
38 bne 1001b
39 .endm
diff --git a/include/asm-arm/arch-versatile/param.h b/include/asm-arm/arch-versatile/param.h
deleted file mode 100644
index 34b897335f87..000000000000
--- a/include/asm-arm/arch-versatile/param.h
+++ /dev/null
@@ -1,19 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-versatile/param.h
3 *
4 * Copyright (C) 2002 ARM Limited
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 as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
diff --git a/include/asm-arm/delay.h b/include/asm-arm/delay.h
index 1704360e9699..b2deda181549 100644
--- a/include/asm-arm/delay.h
+++ b/include/asm-arm/delay.h
@@ -6,6 +6,8 @@
6#ifndef __ASM_ARM_DELAY_H 6#ifndef __ASM_ARM_DELAY_H
7#define __ASM_ARM_DELAY_H 7#define __ASM_ARM_DELAY_H
8 8
9#include <asm/param.h> /* HZ */
10
9extern void __delay(int loops); 11extern void __delay(int loops);
10 12
11/* 13/*
@@ -13,7 +15,7 @@ extern void __delay(int loops);
13 * it, it means that you're calling udelay() with an out of range value. 15 * it, it means that you're calling udelay() with an out of range value.
14 * 16 *
15 * With currently imposed limits, this means that we support a max delay 17 * With currently imposed limits, this means that we support a max delay
16 * of 2000us and 671 bogomips 18 * of 2000us. Further limits: HZ<=1000 and bogomips<=3355
17 */ 19 */
18extern void __bad_udelay(void); 20extern void __bad_udelay(void);
19 21
@@ -32,10 +34,10 @@ extern void __const_udelay(unsigned long);
32 34
33#define MAX_UDELAY_MS 2 35#define MAX_UDELAY_MS 2
34 36
35#define udelay(n) \ 37#define udelay(n) \
36 (__builtin_constant_p(n) ? \ 38 (__builtin_constant_p(n) ? \
37 ((n) > (MAX_UDELAY_MS * 1000) ? __bad_udelay() : \ 39 ((n) > (MAX_UDELAY_MS * 1000) ? __bad_udelay() : \
38 __const_udelay((n) * 0x68dbul)) : \ 40 __const_udelay((n) * ((2199023U*HZ)>>11))) : \
39 __udelay(n)) 41 __udelay(n))
40 42
41#endif /* defined(_ARM_DELAY_H) */ 43#endif /* defined(_ARM_DELAY_H) */
diff --git a/include/asm-arm/hardware/debug-8250.S b/include/asm-arm/hardware/debug-8250.S
new file mode 100644
index 000000000000..4594fea91ec1
--- /dev/null
+++ b/include/asm-arm/hardware/debug-8250.S
@@ -0,0 +1,29 @@
1/*
2 * linux/include/asm-arm/hardware/debug-8250.h
3 *
4 * Copyright (C) 1994-1999 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/serial_reg.h>
11
12 .macro senduart,rd,rx
13 strb \rd, [\rx, #UART_TX << UART_SHIFT]
14 .endm
15
16 .macro busyuart,rd,rx
171002: ldrb \rd, [\rx, #UART_LSR << UART_SHIFT]
18 and \rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE
19 teq \rd, #UART_LSR_TEMT | UART_LSR_THRE
20 bne 1002b
21 .endm
22
23 .macro waituart,rd,rx
24#ifdef FLOW_CONTROL
251001: ldrb \rd, [\rx, #UART_MSR << UART_SHIFT]
26 tst \rd, #UART_MSR_CTS
27 beq 1001b
28#endif
29 .endm
diff --git a/include/asm-arm/hardware/debug-pl01x.S b/include/asm-arm/hardware/debug-pl01x.S
new file mode 100644
index 000000000000..db0d0f7de5e9
--- /dev/null
+++ b/include/asm-arm/hardware/debug-pl01x.S
@@ -0,0 +1,29 @@
1/* linux/include/asm-arm/arch-integrator/debug-macro.S
2 *
3 * Debugging macro include header
4 *
5 * Copyright (C) 1994-1999 Russell King
6 * Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 *
12*/
13#include <linux/amba/serial.h>
14
15 .macro senduart,rd,rx
16 strb \rd, [\rx, #UART01x_DR]
17 .endm
18
19 .macro waituart,rd,rx
201001: ldr \rd, [\rx, #UART01x_FR]
21 tst \rd, #UART01x_FR_TXFF
22 bne 1001b
23 .endm
24
25 .macro busyuart,rd,rx
261001: ldr \rd, [\rx, #UART01x_FR]
27 tst \rd, #UART01x_FR_BUSY
28 bne 1001b
29 .endm
diff --git a/include/asm-arm/arch-ixp2000/uengine.h b/include/asm-arm/hardware/uengine.h
index b442d65c6593..b442d65c6593 100644
--- a/include/asm-arm/arch-ixp2000/uengine.h
+++ b/include/asm-arm/hardware/uengine.h
diff --git a/include/asm-arm/hardware/vic.h b/include/asm-arm/hardware/vic.h
index 81825eb54c9e..ed9ca3736a0b 100644
--- a/include/asm-arm/hardware/vic.h
+++ b/include/asm-arm/hardware/vic.h
@@ -39,7 +39,7 @@
39#define VIC_VECT_CNTL_ENABLE (1 << 5) 39#define VIC_VECT_CNTL_ENABLE (1 << 5)
40 40
41#ifndef __ASSEMBLY__ 41#ifndef __ASSEMBLY__
42void vic_init(void __iomem *base, u32 vic_sources); 42void vic_init(void __iomem *base, unsigned int irq_start, u32 vic_sources);
43#endif 43#endif
44 44
45#endif 45#endif
diff --git a/include/asm-arm/mach/arch.h b/include/asm-arm/mach/arch.h
index 2cd57b4d64d9..fd2f9bf4dcc6 100644
--- a/include/asm-arm/mach/arch.h
+++ b/include/asm-arm/mach/arch.h
@@ -10,19 +10,16 @@
10 10
11#ifndef __ASSEMBLY__ 11#ifndef __ASSEMBLY__
12 12
13#include <linux/compiler.h>
14
15struct tag; 13struct tag;
16struct meminfo; 14struct meminfo;
17struct sys_timer; 15struct sys_timer;
18 16
19struct machine_desc { 17struct machine_desc {
20 /* 18 /*
21 * Note! The first five elements are used 19 * Note! The first four elements are used
22 * by assembler code in head-armv.S 20 * by assembler code in head-armv.S
23 */ 21 */
24 unsigned int nr; /* architecture number */ 22 unsigned int nr; /* architecture number */
25 unsigned int __deprecated phys_ram; /* start of physical ram */
26 unsigned int phys_io; /* start of physical io */ 23 unsigned int phys_io; /* start of physical io */
27 unsigned int io_pg_offst; /* byte offset for io 24 unsigned int io_pg_offst; /* byte offset for io
28 * page tabe entry */ 25 * page tabe entry */
diff --git a/include/asm-arm/mach/irq.h b/include/asm-arm/mach/irq.h
index 0ce6ca588d8c..d4d420ecf3a8 100644
--- a/include/asm-arm/mach/irq.h
+++ b/include/asm-arm/mach/irq.h
@@ -61,7 +61,7 @@ struct irqdesc {
61 struct irqchip *chip; 61 struct irqchip *chip;
62 struct irqaction *action; 62 struct irqaction *action;
63 struct list_head pend; 63 struct list_head pend;
64 void *chipdata; 64 void __iomem *base;
65 void *data; 65 void *data;
66 unsigned int disable_depth; 66 unsigned int disable_depth;
67 67
@@ -74,6 +74,7 @@ struct irqdesc {
74 unsigned int noautoenable : 1; /* don't automatically enable IRQ */ 74 unsigned int noautoenable : 1; /* don't automatically enable IRQ */
75 unsigned int unused :25; 75 unsigned int unused :25;
76 76
77 unsigned int irqs_unhandled;
77 struct proc_dir_entry *procdir; 78 struct proc_dir_entry *procdir;
78 79
79#ifdef CONFIG_SMP 80#ifdef CONFIG_SMP
@@ -113,8 +114,8 @@ void __set_irq_handler(unsigned int irq, irq_handler_t, int);
113#define set_irq_handler(irq,handler) __set_irq_handler(irq,handler,0) 114#define set_irq_handler(irq,handler) __set_irq_handler(irq,handler,0)
114#define set_irq_chained_handler(irq,handler) __set_irq_handler(irq,handler,1) 115#define set_irq_chained_handler(irq,handler) __set_irq_handler(irq,handler,1)
115#define set_irq_data(irq,d) do { irq_desc[irq].data = d; } while (0) 116#define set_irq_data(irq,d) do { irq_desc[irq].data = d; } while (0)
116#define set_irq_chipdata(irq,d) do { irq_desc[irq].chipdata = d; } while (0) 117#define set_irq_chipdata(irq,d) do { irq_desc[irq].base = d; } while (0)
117#define get_irq_chipdata(irq) (irq_desc[irq].chipdata) 118#define get_irq_chipdata(irq) (irq_desc[irq].base)
118 119
119void set_irq_chip(unsigned int irq, struct irqchip *); 120void set_irq_chip(unsigned int irq, struct irqchip *);
120void set_irq_flags(unsigned int irq, unsigned int flags); 121void set_irq_flags(unsigned int irq, unsigned int flags);
diff --git a/include/asm-arm/param.h b/include/asm-arm/param.h
index 94223d4d7e88..15806468ba72 100644
--- a/include/asm-arm/param.h
+++ b/include/asm-arm/param.h
@@ -11,12 +11,7 @@
11#define __ASM_PARAM_H 11#define __ASM_PARAM_H
12 12
13#ifdef __KERNEL__ 13#ifdef __KERNEL__
14# include <asm/arch/param.h> /* for kernel version of HZ */ 14# define HZ CONFIG_HZ /* Internal kernel timer frequency */
15
16# ifndef HZ
17# define HZ 100 /* Internal kernel timer frequency */
18# endif
19
20# define USER_HZ 100 /* User interfaces are in "ticks" */ 15# define USER_HZ 100 /* User interfaces are in "ticks" */
21# define CLOCKS_PER_SEC (USER_HZ) /* like times() */ 16# define CLOCKS_PER_SEC (USER_HZ) /* like times() */
22#else 17#else