aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/Kconfig20
-rw-r--r--arch/arm/Makefile3
-rw-r--r--arch/arm/configs/ep80219_defconfig5
-rw-r--r--arch/arm/configs/iq31244_defconfig5
-rw-r--r--arch/arm/configs/iq80321_defconfig5
-rw-r--r--arch/arm/configs/iq80331_defconfig4
-rw-r--r--arch/arm/configs/iq80332_defconfig4
-rw-r--r--arch/arm/mach-iop32x/Kconfig28
-rw-r--r--arch/arm/mach-iop32x/Makefile11
-rw-r--r--arch/arm/mach-iop32x/Makefile.boot3
-rw-r--r--arch/arm/mach-iop32x/common.c (renamed from arch/arm/mach-iop3xx/common.c)2
-rw-r--r--arch/arm/mach-iop32x/iq31244-mm.c (renamed from arch/arm/mach-iop3xx/iq31244-mm.c)2
-rw-r--r--arch/arm/mach-iop32x/iq31244-pci.c (renamed from arch/arm/mach-iop3xx/iq31244-pci.c)4
-rw-r--r--arch/arm/mach-iop32x/iq80321-mm.c (renamed from arch/arm/mach-iop3xx/iq80321-mm.c)2
-rw-r--r--arch/arm/mach-iop32x/iq80321-pci.c (renamed from arch/arm/mach-iop3xx/iq80321-pci.c)2
-rw-r--r--arch/arm/mach-iop32x/irq.c (renamed from arch/arm/mach-iop3xx/iop321-irq.c)6
-rw-r--r--arch/arm/mach-iop32x/pci.c (renamed from arch/arm/mach-iop3xx/iop321-pci.c)2
-rw-r--r--arch/arm/mach-iop32x/setup.c (renamed from arch/arm/mach-iop3xx/iop321-setup.c)2
-rw-r--r--arch/arm/mach-iop32x/time.c (renamed from arch/arm/mach-iop3xx/iop321-time.c)2
-rw-r--r--arch/arm/mach-iop33x/Kconfig27
-rw-r--r--arch/arm/mach-iop33x/Makefile11
-rw-r--r--arch/arm/mach-iop33x/Makefile.boot3
-rw-r--r--arch/arm/mach-iop33x/common.c22
-rw-r--r--arch/arm/mach-iop33x/iq80331-mm.c (renamed from arch/arm/mach-iop3xx/iq80331-mm.c)2
-rw-r--r--arch/arm/mach-iop33x/iq80331-pci.c (renamed from arch/arm/mach-iop3xx/iq80331-pci.c)2
-rw-r--r--arch/arm/mach-iop33x/iq80332-mm.c (renamed from arch/arm/mach-iop3xx/iq80332-mm.c)2
-rw-r--r--arch/arm/mach-iop33x/iq80332-pci.c (renamed from arch/arm/mach-iop3xx/iq80332-pci.c)2
-rw-r--r--arch/arm/mach-iop33x/irq.c (renamed from arch/arm/mach-iop3xx/iop331-irq.c)4
-rw-r--r--arch/arm/mach-iop33x/pci.c (renamed from arch/arm/mach-iop3xx/iop331-pci.c)2
-rw-r--r--arch/arm/mach-iop33x/setup.c (renamed from arch/arm/mach-iop3xx/iop331-setup.c)2
-rw-r--r--arch/arm/mach-iop33x/time.c (renamed from arch/arm/mach-iop3xx/iop331-time.c)2
-rw-r--r--arch/arm/mach-iop3xx/Kconfig66
-rw-r--r--arch/arm/mach-iop3xx/Makefile23
-rw-r--r--arch/arm/mach-iop3xx/Makefile.boot9
-rw-r--r--arch/arm/mm/Kconfig2
-rw-r--r--drivers/i2c/busses/Kconfig2
-rw-r--r--include/asm-arm/arch-iop32x/debug-macro.S20
-rw-r--r--include/asm-arm/arch-iop32x/dma.h (renamed from include/asm-arm/arch-iop3xx/dma.h)2
-rw-r--r--include/asm-arm/arch-iop32x/entry-macro.S28
-rw-r--r--include/asm-arm/arch-iop32x/hardware.h (renamed from include/asm-arm/arch-iop3xx/hardware.h)5
-rw-r--r--include/asm-arm/arch-iop32x/io.h (renamed from include/asm-arm/arch-iop3xx/io.h)2
-rw-r--r--include/asm-arm/arch-iop32x/iop321.h (renamed from include/asm-arm/arch-iop3xx/iop321.h)8
-rw-r--r--include/asm-arm/arch-iop32x/iq31244.h (renamed from include/asm-arm/arch-iop3xx/iq31244.h)2
-rw-r--r--include/asm-arm/arch-iop32x/iq80321.h (renamed from include/asm-arm/arch-iop3xx/iq80321.h)2
-rw-r--r--include/asm-arm/arch-iop32x/irqs.h (renamed from include/asm-arm/arch-iop3xx/iop321-irqs.h)12
-rw-r--r--include/asm-arm/arch-iop32x/memory.h (renamed from include/asm-arm/arch-iop3xx/memory.h)13
-rw-r--r--include/asm-arm/arch-iop32x/system.h (renamed from include/asm-arm/arch-iop3xx/system.h)8
-rw-r--r--include/asm-arm/arch-iop32x/timex.h8
-rw-r--r--include/asm-arm/arch-iop32x/uncompress.h38
-rw-r--r--include/asm-arm/arch-iop32x/vmalloc.h (renamed from include/asm-arm/arch-iop3xx/vmalloc.h)2
-rw-r--r--include/asm-arm/arch-iop33x/debug-macro.S24
-rw-r--r--include/asm-arm/arch-iop33x/dma.h9
-rw-r--r--include/asm-arm/arch-iop33x/entry-macro.S (renamed from include/asm-arm/arch-iop3xx/entry-macro.S)29
-rw-r--r--include/asm-arm/arch-iop33x/hardware.h54
-rw-r--r--include/asm-arm/arch-iop33x/io.h21
-rw-r--r--include/asm-arm/arch-iop33x/iop331.h (renamed from include/asm-arm/arch-iop3xx/iop331.h)9
-rw-r--r--include/asm-arm/arch-iop33x/iq80331.h (renamed from include/asm-arm/arch-iop3xx/iq80331.h)2
-rw-r--r--include/asm-arm/arch-iop33x/iq80332.h (renamed from include/asm-arm/arch-iop3xx/iq80332.h)2
-rw-r--r--include/asm-arm/arch-iop33x/irqs.h (renamed from include/asm-arm/arch-iop3xx/iop331-irqs.h)12
-rw-r--r--include/asm-arm/arch-iop33x/memory.h26
-rw-r--r--include/asm-arm/arch-iop33x/system.h29
-rw-r--r--include/asm-arm/arch-iop33x/timex.h8
-rw-r--r--include/asm-arm/arch-iop33x/uncompress.h36
-rw-r--r--include/asm-arm/arch-iop33x/vmalloc.h16
-rw-r--r--include/asm-arm/arch-iop3xx/debug-macro.S35
-rw-r--r--include/asm-arm/arch-iop3xx/irqs.h21
-rw-r--r--include/asm-arm/arch-iop3xx/timex.h20
-rw-r--r--include/asm-arm/arch-iop3xx/uncompress.h48
68 files changed, 499 insertions, 347 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index d9376f048ed7..0fb17bbb86bc 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -202,12 +202,20 @@ config ARCH_IMX
202 help 202 help
203 Support for Motorola's i.MX family of processors (MX1, MXL). 203 Support for Motorola's i.MX family of processors (MX1, MXL).
204 204
205config ARCH_IOP3XX 205config ARCH_IOP32X
206 bool "IOP3xx-based" 206 bool "IOP32x-based"
207 depends on MMU 207 depends on MMU
208 select PCI 208 select PCI
209 help 209 help
210 Support for Intel's IOP3XX (XScale) family of processors. 210 Support for Intel's 80219 and IOP32X (XScale) family of
211 processors.
212
213config ARCH_IOP33X
214 bool "IOP33x-based"
215 depends on MMU
216 select PCI
217 help
218 Support for Intel's IOP33X (XScale) family of processors.
211 219
212config ARCH_IXP4XX 220config ARCH_IXP4XX
213 bool "IXP4xx-based" 221 bool "IXP4xx-based"
@@ -312,7 +320,9 @@ source "arch/arm/mach-footbridge/Kconfig"
312 320
313source "arch/arm/mach-integrator/Kconfig" 321source "arch/arm/mach-integrator/Kconfig"
314 322
315source "arch/arm/mach-iop3xx/Kconfig" 323source "arch/arm/mach-iop32x/Kconfig"
324
325source "arch/arm/mach-iop33x/Kconfig"
316 326
317source "arch/arm/mach-ixp4xx/Kconfig" 327source "arch/arm/mach-ixp4xx/Kconfig"
318 328
@@ -848,7 +858,7 @@ source "drivers/block/Kconfig"
848 858
849source "drivers/acorn/block/Kconfig" 859source "drivers/acorn/block/Kconfig"
850 860
851if PCMCIA || ARCH_CLPS7500 || ARCH_IOP3XX || ARCH_IXP4XX \ 861if PCMCIA || ARCH_CLPS7500 || ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX \
852 || ARCH_L7200 || ARCH_LH7A40X || ARCH_PXA || ARCH_RPC \ 862 || ARCH_L7200 || ARCH_LH7A40X || ARCH_PXA || ARCH_RPC \
853 || ARCH_S3C2410 || ARCH_SA1100 || ARCH_SHARK || FOOTBRIDGE \ 863 || ARCH_S3C2410 || ARCH_SA1100 || ARCH_SHARK || FOOTBRIDGE \
854 || ARCH_IXP23XX 864 || ARCH_IXP23XX
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 92873cdee31f..ac786bf0f546 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -101,7 +101,8 @@ endif
101 machine-$(CONFIG_ARCH_INTEGRATOR) := integrator 101 machine-$(CONFIG_ARCH_INTEGRATOR) := integrator
102 textofs-$(CONFIG_ARCH_CLPS711X) := 0x00028000 102 textofs-$(CONFIG_ARCH_CLPS711X) := 0x00028000
103 machine-$(CONFIG_ARCH_CLPS711X) := clps711x 103 machine-$(CONFIG_ARCH_CLPS711X) := clps711x
104 machine-$(CONFIG_ARCH_IOP3XX) := iop3xx 104 machine-$(CONFIG_ARCH_IOP32X) := iop32x
105 machine-$(CONFIG_ARCH_IOP33X) := iop33x
105 machine-$(CONFIG_ARCH_IXP4XX) := ixp4xx 106 machine-$(CONFIG_ARCH_IXP4XX) := ixp4xx
106 machine-$(CONFIG_ARCH_IXP2000) := ixp2000 107 machine-$(CONFIG_ARCH_IXP2000) := ixp2000
107 machine-$(CONFIG_ARCH_IXP23XX) := ixp23xx 108 machine-$(CONFIG_ARCH_IXP23XX) := ixp23xx
diff --git a/arch/arm/configs/ep80219_defconfig b/arch/arm/configs/ep80219_defconfig
index 199f1567345d..f91cf8ff359d 100644
--- a/arch/arm/configs/ep80219_defconfig
+++ b/arch/arm/configs/ep80219_defconfig
@@ -66,7 +66,8 @@ CONFIG_KMOD=y
66# CONFIG_ARCH_EBSA110 is not set 66# CONFIG_ARCH_EBSA110 is not set
67# CONFIG_ARCH_FOOTBRIDGE is not set 67# CONFIG_ARCH_FOOTBRIDGE is not set
68# CONFIG_ARCH_INTEGRATOR is not set 68# CONFIG_ARCH_INTEGRATOR is not set
69CONFIG_ARCH_IOP3XX=y 69CONFIG_ARCH_IOP32X=y
70# CONFIG_ARCH_IOP33X is not set
70# CONFIG_ARCH_IXP4XX is not set 71# CONFIG_ARCH_IXP4XX is not set
71# CONFIG_ARCH_IXP2000 is not set 72# CONFIG_ARCH_IXP2000 is not set
72# CONFIG_ARCH_L7200 is not set 73# CONFIG_ARCH_L7200 is not set
@@ -93,8 +94,6 @@ CONFIG_ARCH_IQ31244=y
93# CONFIG_ARCH_IQ80331 is not set 94# CONFIG_ARCH_IQ80331 is not set
94# CONFIG_MACH_IQ80332 is not set 95# CONFIG_MACH_IQ80332 is not set
95CONFIG_ARCH_EP80219=y 96CONFIG_ARCH_EP80219=y
96CONFIG_ARCH_IOP32X=y
97# CONFIG_ARCH_IOP33X is not set
98 97
99# 98#
100# IOP3xx Chipset Features 99# IOP3xx Chipset Features
diff --git a/arch/arm/configs/iq31244_defconfig b/arch/arm/configs/iq31244_defconfig
index 27f884417b90..ce1b1f20b763 100644
--- a/arch/arm/configs/iq31244_defconfig
+++ b/arch/arm/configs/iq31244_defconfig
@@ -67,7 +67,8 @@ CONFIG_KMOD=y
67# CONFIG_ARCH_EBSA110 is not set 67# CONFIG_ARCH_EBSA110 is not set
68# CONFIG_ARCH_FOOTBRIDGE is not set 68# CONFIG_ARCH_FOOTBRIDGE is not set
69# CONFIG_ARCH_INTEGRATOR is not set 69# CONFIG_ARCH_INTEGRATOR is not set
70CONFIG_ARCH_IOP3XX=y 70CONFIG_ARCH_IOP32X=y
71# CONFIG_ARCH_IOP33X is not set
71# CONFIG_ARCH_IXP4XX is not set 72# CONFIG_ARCH_IXP4XX is not set
72# CONFIG_ARCH_IXP2000 is not set 73# CONFIG_ARCH_IXP2000 is not set
73# CONFIG_ARCH_L7200 is not set 74# CONFIG_ARCH_L7200 is not set
@@ -94,8 +95,6 @@ CONFIG_ARCH_IQ31244=y
94# CONFIG_ARCH_IQ80331 is not set 95# CONFIG_ARCH_IQ80331 is not set
95# CONFIG_MACH_IQ80332 is not set 96# CONFIG_MACH_IQ80332 is not set
96# CONFIG_ARCH_EP80219 is not set 97# CONFIG_ARCH_EP80219 is not set
97CONFIG_ARCH_IOP32X=y
98# CONFIG_ARCH_IOP33X is not set
99 98
100# 99#
101# IOP3xx Chipset Features 100# IOP3xx Chipset Features
diff --git a/arch/arm/configs/iq80321_defconfig b/arch/arm/configs/iq80321_defconfig
index 33f21a24cf4e..f00b0d2159dd 100644
--- a/arch/arm/configs/iq80321_defconfig
+++ b/arch/arm/configs/iq80321_defconfig
@@ -66,7 +66,8 @@ CONFIG_KMOD=y
66# CONFIG_ARCH_EBSA110 is not set 66# CONFIG_ARCH_EBSA110 is not set
67# CONFIG_ARCH_FOOTBRIDGE is not set 67# CONFIG_ARCH_FOOTBRIDGE is not set
68# CONFIG_ARCH_INTEGRATOR is not set 68# CONFIG_ARCH_INTEGRATOR is not set
69CONFIG_ARCH_IOP3XX=y 69CONFIG_ARCH_IOP32X=y
70# CONFIG_ARCH_IOP33X is not set
70# CONFIG_ARCH_IXP4XX is not set 71# CONFIG_ARCH_IXP4XX is not set
71# CONFIG_ARCH_IXP2000 is not set 72# CONFIG_ARCH_IXP2000 is not set
72# CONFIG_ARCH_L7200 is not set 73# CONFIG_ARCH_L7200 is not set
@@ -93,8 +94,6 @@ CONFIG_ARCH_IQ80321=y
93# CONFIG_ARCH_IQ80331 is not set 94# CONFIG_ARCH_IQ80331 is not set
94# CONFIG_MACH_IQ80332 is not set 95# CONFIG_MACH_IQ80332 is not set
95# CONFIG_ARCH_EP80219 is not set 96# CONFIG_ARCH_EP80219 is not set
96CONFIG_ARCH_IOP32X=y
97# CONFIG_ARCH_IOP33X is not set
98 97
99# 98#
100# IOP3xx Chipset Features 99# IOP3xx Chipset Features
diff --git a/arch/arm/configs/iq80331_defconfig b/arch/arm/configs/iq80331_defconfig
index 67a8bd7dba29..af3a87e469d5 100644
--- a/arch/arm/configs/iq80331_defconfig
+++ b/arch/arm/configs/iq80331_defconfig
@@ -66,7 +66,8 @@ CONFIG_KMOD=y
66# CONFIG_ARCH_EBSA110 is not set 66# CONFIG_ARCH_EBSA110 is not set
67# CONFIG_ARCH_FOOTBRIDGE is not set 67# CONFIG_ARCH_FOOTBRIDGE is not set
68# CONFIG_ARCH_INTEGRATOR is not set 68# CONFIG_ARCH_INTEGRATOR is not set
69CONFIG_ARCH_IOP3XX=y 69# CONFIG_ARCH_IOP32X is not set
70CONFIG_ARCH_IOP33X=y
70# CONFIG_ARCH_IXP4XX is not set 71# CONFIG_ARCH_IXP4XX is not set
71# CONFIG_ARCH_IXP2000 is not set 72# CONFIG_ARCH_IXP2000 is not set
72# CONFIG_ARCH_L7200 is not set 73# CONFIG_ARCH_L7200 is not set
@@ -93,7 +94,6 @@ CONFIG_ARCH_IOP3XX=y
93CONFIG_ARCH_IQ80331=y 94CONFIG_ARCH_IQ80331=y
94# CONFIG_MACH_IQ80332 is not set 95# CONFIG_MACH_IQ80332 is not set
95# CONFIG_ARCH_EP80219 is not set 96# CONFIG_ARCH_EP80219 is not set
96CONFIG_ARCH_IOP33X=y
97 97
98# 98#
99# IOP3xx Chipset Features 99# IOP3xx Chipset Features
diff --git a/arch/arm/configs/iq80332_defconfig b/arch/arm/configs/iq80332_defconfig
index c8dea45cb017..931c78755a30 100644
--- a/arch/arm/configs/iq80332_defconfig
+++ b/arch/arm/configs/iq80332_defconfig
@@ -66,7 +66,8 @@ CONFIG_KMOD=y
66# CONFIG_ARCH_EBSA110 is not set 66# CONFIG_ARCH_EBSA110 is not set
67# CONFIG_ARCH_FOOTBRIDGE is not set 67# CONFIG_ARCH_FOOTBRIDGE is not set
68# CONFIG_ARCH_INTEGRATOR is not set 68# CONFIG_ARCH_INTEGRATOR is not set
69CONFIG_ARCH_IOP3XX=y 69# CONFIG_ARCH_IOP32X is not set
70CONFIG_ARCH_IOP33X=y
70# CONFIG_ARCH_IXP4XX is not set 71# CONFIG_ARCH_IXP4XX is not set
71# CONFIG_ARCH_IXP2000 is not set 72# CONFIG_ARCH_IXP2000 is not set
72# CONFIG_ARCH_L7200 is not set 73# CONFIG_ARCH_L7200 is not set
@@ -93,7 +94,6 @@ CONFIG_ARCH_IOP3XX=y
93# CONFIG_ARCH_IQ80331 is not set 94# CONFIG_ARCH_IQ80331 is not set
94CONFIG_MACH_IQ80332=y 95CONFIG_MACH_IQ80332=y
95# CONFIG_ARCH_EP80219 is not set 96# CONFIG_ARCH_EP80219 is not set
96CONFIG_ARCH_IOP33X=y
97 97
98# 98#
99# IOP3xx Chipset Features 99# IOP3xx Chipset Features
diff --git a/arch/arm/mach-iop32x/Kconfig b/arch/arm/mach-iop32x/Kconfig
new file mode 100644
index 000000000000..21e3e8c8c2ad
--- /dev/null
+++ b/arch/arm/mach-iop32x/Kconfig
@@ -0,0 +1,28 @@
1if ARCH_IOP32X
2
3menu "IOP32x Implementation Options"
4
5comment "IOP32x Platform Types"
6
7config ARCH_IQ80321
8 bool "Enable support for IQ80321"
9 help
10 Say Y here if you want to run your kernel on the Intel IQ80321
11 evaluation kit for the IOP321 chipset.
12
13config ARCH_IQ31244
14 bool "Enable support for IQ31244"
15 help
16 Say Y here if you want to run your kernel on the Intel IQ31244
17 evaluation kit for the IOP321 chipset.
18
19config ARCH_EP80219
20 bool "Enable support for EP80219"
21 select ARCH_IQ31244
22 help
23 Say Y here if you want to run your kernel on the Intel EP80219
24 evaluation kit for the Intel 80219 chipset (a IOP321 variant).
25
26endmenu
27
28endif
diff --git a/arch/arm/mach-iop32x/Makefile b/arch/arm/mach-iop32x/Makefile
new file mode 100644
index 000000000000..94144f7efa6c
--- /dev/null
+++ b/arch/arm/mach-iop32x/Makefile
@@ -0,0 +1,11 @@
1#
2# Makefile for the linux kernel.
3#
4
5obj-y := common.o setup.o irq.o pci.o time.o
6obj-m :=
7obj-n :=
8obj- :=
9
10obj-$(CONFIG_ARCH_IQ80321) += iq80321-mm.o iq80321-pci.o
11obj-$(CONFIG_ARCH_IQ31244) += iq31244-mm.o iq31244-pci.o
diff --git a/arch/arm/mach-iop32x/Makefile.boot b/arch/arm/mach-iop32x/Makefile.boot
new file mode 100644
index 000000000000..47000dccd61f
--- /dev/null
+++ b/arch/arm/mach-iop32x/Makefile.boot
@@ -0,0 +1,3 @@
1 zreladdr-y := 0xa0008000
2params_phys-y := 0xa0000100
3initrd_phys-y := 0xa0800000
diff --git a/arch/arm/mach-iop3xx/common.c b/arch/arm/mach-iop32x/common.c
index d7f50e57e753..8044af6a54e1 100644
--- a/arch/arm/mach-iop3xx/common.c
+++ b/arch/arm/mach-iop32x/common.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * arch/arm/mach-iop3xx/common.c 2 * arch/arm/mach-iop32x/common.c
3 * 3 *
4 * Common routines shared across all IOP3xx implementations 4 * Common routines shared across all IOP3xx implementations
5 * 5 *
diff --git a/arch/arm/mach-iop3xx/iq31244-mm.c b/arch/arm/mach-iop32x/iq31244-mm.c
index e874b54eefe3..ffc6692c95ad 100644
--- a/arch/arm/mach-iop3xx/iq31244-mm.c
+++ b/arch/arm/mach-iop32x/iq31244-mm.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/arch/arm/mach-iop3xx/mm.c 2 * linux/arch/arm/mach-iop32x/iq31244-mm.c
3 * 3 *
4 * Low level memory initialization for iq80321 platform 4 * Low level memory initialization for iq80321 platform
5 * 5 *
diff --git a/arch/arm/mach-iop3xx/iq31244-pci.c b/arch/arm/mach-iop32x/iq31244-pci.c
index f3c6413fa5bd..e447c8103ecd 100644
--- a/arch/arm/mach-iop3xx/iq31244-pci.c
+++ b/arch/arm/mach-iop32x/iq31244-pci.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * arch/arm/mach-iop3xx/iq80321-pci.c 2 * arch/arm/mach-iop32x/iq31244-pci.c
3 * 3 *
4 * PCI support for the Intel IQ80321 reference board 4 * PCI support for the Intel IQ31244 reference board
5 * 5 *
6 * Author: Rory Bolt <rorybolt@pacbell.net> 6 * Author: Rory Bolt <rorybolt@pacbell.net>
7 * Copyright (C) 2002 Rory Bolt 7 * Copyright (C) 2002 Rory Bolt
diff --git a/arch/arm/mach-iop3xx/iq80321-mm.c b/arch/arm/mach-iop32x/iq80321-mm.c
index d9cac5e1fc3d..5f702a7ff622 100644
--- a/arch/arm/mach-iop3xx/iq80321-mm.c
+++ b/arch/arm/mach-iop32x/iq80321-mm.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/arch/arm/mach-iop3xx/mm.c 2 * linux/arch/arm/mach-iop32x/iq80321-mm.c
3 * 3 *
4 * Low level memory initialization for iq80321 platform 4 * Low level memory initialization for iq80321 platform
5 * 5 *
diff --git a/arch/arm/mach-iop3xx/iq80321-pci.c b/arch/arm/mach-iop32x/iq80321-pci.c
index d9758d3f6e7f..8767950e131f 100644
--- a/arch/arm/mach-iop3xx/iq80321-pci.c
+++ b/arch/arm/mach-iop32x/iq80321-pci.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * arch/arm/mach-iop3xx/iq80321-pci.c 2 * arch/arm/mach-iop32x/iq80321-pci.c
3 * 3 *
4 * PCI support for the Intel IQ80321 reference board 4 * PCI support for the Intel IQ80321 reference board
5 * 5 *
diff --git a/arch/arm/mach-iop3xx/iop321-irq.c b/arch/arm/mach-iop32x/irq.c
index 88ac333472c8..c5f633d2d632 100644
--- a/arch/arm/mach-iop3xx/iop321-irq.c
+++ b/arch/arm/mach-iop32x/irq.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * linux/arch/arm/mach-iop3xx/iop321-irq.c 2 * linux/arch/arm/mach-iop32x/irq.c
3 * 3 *
4 * Generic IOP321 IRQ handling functionality 4 * Generic IOP32X IRQ handling functionality
5 * 5 *
6 * Author: Rory Bolt <rorybolt@pacbell.net> 6 * Author: Rory Bolt <rorybolt@pacbell.net>
7 * Copyright (C) 2002 Rory Bolt 7 * Copyright (C) 2002 Rory Bolt
@@ -86,7 +86,7 @@ void __init iop321_init_irq(void)
86 machine_is_iq31244()) // all interrupts are inputs to chip 86 machine_is_iq31244()) // all interrupts are inputs to chip
87 *IOP321_PCIIRSR = 0x0f; 87 *IOP321_PCIIRSR = 0x0f;
88 88
89 for(i = IOP321_IRQ_OFS; i < NR_IOP321_IRQS; i++) 89 for(i = IOP321_IRQ_OFS; i < NR_IRQS; i++)
90 { 90 {
91 set_irq_chip(i, &ext_chip); 91 set_irq_chip(i, &ext_chip);
92 set_irq_handler(i, do_level_IRQ); 92 set_irq_handler(i, do_level_IRQ);
diff --git a/arch/arm/mach-iop3xx/iop321-pci.c b/arch/arm/mach-iop32x/pci.c
index 8ba6a0e23134..1a7c683673f2 100644
--- a/arch/arm/mach-iop3xx/iop321-pci.c
+++ b/arch/arm/mach-iop32x/pci.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * arch/arm/mach-iop3xx/iop321-pci.c 2 * arch/arm/mach-iop32x/pci.c
3 * 3 *
4 * PCI support for the Intel IOP321 chipset 4 * PCI support for the Intel IOP321 chipset
5 * 5 *
diff --git a/arch/arm/mach-iop3xx/iop321-setup.c b/arch/arm/mach-iop32x/setup.c
index b6d096903c4a..729678799271 100644
--- a/arch/arm/mach-iop3xx/iop321-setup.c
+++ b/arch/arm/mach-iop32x/setup.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/arch/arm/mach-iop3xx/iop321-setup.c 2 * linux/arch/arm/mach-iop32x/setup.c
3 * 3 *
4 * Author: Nicolas Pitre <nico@cam.org> 4 * Author: Nicolas Pitre <nico@cam.org>
5 * Copyright (C) 2001 MontaVista Software, Inc. 5 * Copyright (C) 2001 MontaVista Software, Inc.
diff --git a/arch/arm/mach-iop3xx/iop321-time.c b/arch/arm/mach-iop32x/time.c
index 04b1a6f7ebae..3cabbbca0a02 100644
--- a/arch/arm/mach-iop3xx/iop321-time.c
+++ b/arch/arm/mach-iop32x/time.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * arch/arm/mach-iop3xx/iop321-time.c 2 * arch/arm/mach-iop32x/time.c
3 * 3 *
4 * Timer code for IOP321 based systems 4 * Timer code for IOP321 based systems
5 * 5 *
diff --git a/arch/arm/mach-iop33x/Kconfig b/arch/arm/mach-iop33x/Kconfig
new file mode 100644
index 000000000000..410df546e954
--- /dev/null
+++ b/arch/arm/mach-iop33x/Kconfig
@@ -0,0 +1,27 @@
1if ARCH_IOP33X
2
3menu "IOP33x Implementation Options"
4
5comment "IOP33x Platform Types"
6
7config ARCH_IQ80331
8 bool "Enable support for IQ80331"
9 help
10 Say Y here if you want to run your kernel on the Intel IQ80331
11 evaluation kit for the IOP331 chipset.
12
13config MACH_IQ80332
14 bool "Enable support for IQ80332"
15 help
16 Say Y here if you want to run your kernel on the Intel IQ80332
17 evaluation kit for the IOP332 chipset.
18
19config IOP331_STEPD
20 bool "Chip stepping D of the IOP80331 processor or IOP80333"
21 help
22 Say Y here if you have StepD of the IOP80331 or IOP8033
23 based platforms.
24
25endmenu
26
27endif
diff --git a/arch/arm/mach-iop33x/Makefile b/arch/arm/mach-iop33x/Makefile
new file mode 100644
index 000000000000..0f1a8fffe187
--- /dev/null
+++ b/arch/arm/mach-iop33x/Makefile
@@ -0,0 +1,11 @@
1#
2# Makefile for the linux kernel.
3#
4
5obj-y := common.o setup.o irq.o pci.o time.o
6obj-m :=
7obj-n :=
8obj- :=
9
10obj-$(CONFIG_ARCH_IQ80331) += iq80331-mm.o iq80331-pci.o
11obj-$(CONFIG_MACH_IQ80332) += iq80332-mm.o iq80332-pci.o
diff --git a/arch/arm/mach-iop33x/Makefile.boot b/arch/arm/mach-iop33x/Makefile.boot
new file mode 100644
index 000000000000..67039c3e0c48
--- /dev/null
+++ b/arch/arm/mach-iop33x/Makefile.boot
@@ -0,0 +1,3 @@
1 zreladdr-y := 0x00008000
2params_phys-y := 0x00000100
3initrd_phys-y := 0x00800000
diff --git a/arch/arm/mach-iop33x/common.c b/arch/arm/mach-iop33x/common.c
new file mode 100644
index 000000000000..dd75f2b8e74f
--- /dev/null
+++ b/arch/arm/mach-iop33x/common.c
@@ -0,0 +1,22 @@
1/*
2 * arch/arm/mach-iop33x/common.c
3 *
4 * Common routines shared across all IOP3xx implementations
5 *
6 * Author: Deepak Saxena <dsaxena@mvista.com>
7 *
8 * Copyright 2003 (c) MontaVista, Software, Inc.
9 *
10 * This file is licensed under the terms of the GNU General Public
11 * License version 2. This program is licensed "as is" without any
12 * warranty of any kind, whether express or implied.
13 */
14
15#include <linux/delay.h>
16#include <asm/hardware.h>
17
18/*
19 * Shared variables
20 */
21unsigned long iop3xx_pcibios_min_io = 0;
22unsigned long iop3xx_pcibios_min_mem = 0;
diff --git a/arch/arm/mach-iop3xx/iq80331-mm.c b/arch/arm/mach-iop33x/iq80331-mm.c
index 129eb49b0670..eb59445a0fca 100644
--- a/arch/arm/mach-iop3xx/iq80331-mm.c
+++ b/arch/arm/mach-iop33x/iq80331-mm.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/arch/arm/mach-iop3xx/mm.c 2 * linux/arch/arm/mach-iop33x/iq80331-mm.c
3 * 3 *
4 * Low level memory initialization for iq80331 platform 4 * Low level memory initialization for iq80331 platform
5 * 5 *
diff --git a/arch/arm/mach-iop3xx/iq80331-pci.c b/arch/arm/mach-iop33x/iq80331-pci.c
index 40d861002492..71adb12a9421 100644
--- a/arch/arm/mach-iop3xx/iq80331-pci.c
+++ b/arch/arm/mach-iop33x/iq80331-pci.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * arch/arm/mach-iop3xx/iq80331-pci.c 2 * arch/arm/mach-iop33x/iq80331-pci.c
3 * 3 *
4 * PCI support for the Intel IQ80331 reference board 4 * PCI support for the Intel IQ80331 reference board
5 * 5 *
diff --git a/arch/arm/mach-iop3xx/iq80332-mm.c b/arch/arm/mach-iop33x/iq80332-mm.c
index 2feaf7591f53..f7bc73113ea8 100644
--- a/arch/arm/mach-iop3xx/iq80332-mm.c
+++ b/arch/arm/mach-iop33x/iq80332-mm.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/arch/arm/mach-iop3xx/mm.c 2 * linux/arch/arm/mach-iop33x/iq80332-mm.c
3 * 3 *
4 * Low level memory initialization for iq80332 platform 4 * Low level memory initialization for iq80332 platform
5 * 5 *
diff --git a/arch/arm/mach-iop3xx/iq80332-pci.c b/arch/arm/mach-iop33x/iq80332-pci.c
index afc0676318e4..f3010f85b1a2 100644
--- a/arch/arm/mach-iop3xx/iq80332-pci.c
+++ b/arch/arm/mach-iop33x/iq80332-pci.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * arch/arm/mach-iop3xx/iq80332-pci.c 2 * arch/arm/mach-iop33x/iq80332-pci.c
3 * 3 *
4 * PCI support for the Intel IQ80332 reference board 4 * PCI support for the Intel IQ80332 reference board
5 * 5 *
diff --git a/arch/arm/mach-iop3xx/iop331-irq.c b/arch/arm/mach-iop33x/irq.c
index cab11722ced2..029fa78876a5 100644
--- a/arch/arm/mach-iop3xx/iop331-irq.c
+++ b/arch/arm/mach-iop33x/irq.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/arch/arm/mach-iop3xx/iop331-irq.c 2 * linux/arch/arm/mach-iop33x/irq.c
3 * 3 *
4 * Generic IOP331 IRQ handling functionality 4 * Generic IOP331 IRQ handling functionality
5 * 5 *
@@ -119,7 +119,7 @@ void __init iop331_init_irq(void)
119 if(machine_is_iq80331()) // all interrupts are inputs to chip 119 if(machine_is_iq80331()) // all interrupts are inputs to chip
120 *IOP331_PCIIRSR = 0x0f; 120 *IOP331_PCIIRSR = 0x0f;
121 121
122 for(i = IOP331_IRQ_OFS; i < NR_IOP331_IRQS; i++) 122 for(i = IOP331_IRQ_OFS; i < NR_IRQS; i++)
123 { 123 {
124 set_irq_chip(i, (i < 32) ? &iop331_irqchip1 : &iop331_irqchip2); 124 set_irq_chip(i, (i < 32) ? &iop331_irqchip1 : &iop331_irqchip2);
125 set_irq_handler(i, do_level_IRQ); 125 set_irq_handler(i, do_level_IRQ);
diff --git a/arch/arm/mach-iop3xx/iop331-pci.c b/arch/arm/mach-iop33x/pci.c
index 44dd213b48a3..bf6aba91b47d 100644
--- a/arch/arm/mach-iop3xx/iop331-pci.c
+++ b/arch/arm/mach-iop33x/pci.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * arch/arm/mach-iop3xx/iop331-pci.c 2 * arch/arm/mach-iop33x/pci.c
3 * 3 *
4 * PCI support for the Intel IOP331 chipset 4 * PCI support for the Intel IOP331 chipset
5 * 5 *
diff --git a/arch/arm/mach-iop3xx/iop331-setup.c b/arch/arm/mach-iop33x/setup.c
index b2f24931d143..c14c7da5ec4c 100644
--- a/arch/arm/mach-iop3xx/iop331-setup.c
+++ b/arch/arm/mach-iop33x/setup.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/arch/arm/mach-iop3xx/iop331-setup.c 2 * linux/arch/arm/mach-iop33x/setup.c
3 * 3 *
4 * Author: Dave Jiang (dave.jiang@intel.com) 4 * Author: Dave Jiang (dave.jiang@intel.com)
5 * Copyright (C) 2004 Intel Corporation. 5 * Copyright (C) 2004 Intel Corporation.
diff --git a/arch/arm/mach-iop3xx/iop331-time.c b/arch/arm/mach-iop33x/time.c
index 0c09e74c5740..d839cd0d926e 100644
--- a/arch/arm/mach-iop3xx/iop331-time.c
+++ b/arch/arm/mach-iop33x/time.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * arch/arm/mach-iop3xx/iop331-time.c 2 * arch/arm/mach-iop33x/time.c
3 * 3 *
4 * Timer code for IOP331 based systems 4 * Timer code for IOP331 based systems
5 * 5 *
diff --git a/arch/arm/mach-iop3xx/Kconfig b/arch/arm/mach-iop3xx/Kconfig
deleted file mode 100644
index 887c3753727f..000000000000
--- a/arch/arm/mach-iop3xx/Kconfig
+++ /dev/null
@@ -1,66 +0,0 @@
1if ARCH_IOP3XX
2
3menu "IOP3xx Implementation Options"
4
5comment "IOP3xx Platform Types"
6
7config ARCH_IQ80321
8 bool "Enable support for IQ80321"
9 select ARCH_IOP32X
10 help
11 Say Y here if you want to run your kernel on the Intel IQ80321
12 evaluation kit for the IOP321 chipset.
13
14config ARCH_IQ31244
15 bool "Enable support for IQ31244"
16 select ARCH_IOP32X
17 help
18 Say Y here if you want to run your kernel on the Intel IQ31244
19 evaluation kit for the IOP321 chipset.
20
21config ARCH_IQ80331
22 bool "Enable support for IQ80331"
23 select ARCH_IOP33X
24 help
25 Say Y here if you want to run your kernel on the Intel IQ80331
26 evaluation kit for the IOP331 chipset.
27
28config MACH_IQ80332
29 bool "Enable support for IQ80332"
30 select ARCH_IOP33X
31 help
32 Say Y here if you want to run your kernel on the Intel IQ80332
33 evaluation kit for the IOP332 chipset.
34
35config ARCH_EP80219
36 bool "Enable support for EP80219"
37 select ARCH_IOP32X
38 select ARCH_IQ31244
39 help
40 Say Y here if you want to run your kernel on the Intel EP80219
41 evaluation kit for the Intel 80219 chipset (a IOP321 variant).
42
43# Which IOP variant are we running?
44config ARCH_IOP32X
45 bool
46 help
47 The IQ80321 uses the IOP321 variant.
48 The IQ31244 and EP80219 uses the IOP321 variant.
49
50config ARCH_IOP33X
51 bool
52 default ARCH_IQ80331
53 help
54 The IQ80331, IQ80332, and IQ80333 uses the IOP331 variant.
55
56comment "IOP3xx Chipset Features"
57
58config IOP331_STEPD
59 bool "Chip stepping D of the IOP80331 processor or IOP80333"
60 depends on ARCH_IOP33X
61 help
62 Say Y here if you have StepD of the IOP80331 or IOP8033
63 based platforms.
64
65endmenu
66endif
diff --git a/arch/arm/mach-iop3xx/Makefile b/arch/arm/mach-iop3xx/Makefile
deleted file mode 100644
index ad3051524480..000000000000
--- a/arch/arm/mach-iop3xx/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
1#
2# Makefile for the linux kernel.
3#
4
5# Object file lists.
6
7obj-y := common.o
8
9obj-m :=
10obj-n :=
11obj- :=
12
13obj-$(CONFIG_ARCH_IOP32X) += iop321-setup.o iop321-irq.o iop321-pci.o iop321-time.o
14
15obj-$(CONFIG_ARCH_IOP33X) += iop331-setup.o iop331-irq.o iop331-pci.o iop331-time.o
16
17obj-$(CONFIG_ARCH_IQ80321) += iq80321-mm.o iq80321-pci.o
18
19obj-$(CONFIG_ARCH_IQ31244) += iq31244-mm.o iq31244-pci.o
20
21obj-$(CONFIG_ARCH_IQ80331) += iq80331-mm.o iq80331-pci.o
22
23obj-$(CONFIG_MACH_IQ80332) += iq80332-mm.o iq80332-pci.o
diff --git a/arch/arm/mach-iop3xx/Makefile.boot b/arch/arm/mach-iop3xx/Makefile.boot
deleted file mode 100644
index e120c233b706..000000000000
--- a/arch/arm/mach-iop3xx/Makefile.boot
+++ /dev/null
@@ -1,9 +0,0 @@
1 zreladdr-y := 0xa0008000
2params_phys-y := 0xa0000100
3initrd_phys-y := 0xa0800000
4ifeq ($(CONFIG_ARCH_IOP33X),y)
5 zreladdr-y := 0x00008000
6params_phys-y := 0x00000100
7initrd_phys-y := 0x00800000
8endif
9
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index b4f220dd5eb8..b59c74100a84 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -232,7 +232,7 @@ config CPU_SA1100
232# XScale 232# XScale
233config CPU_XSCALE 233config CPU_XSCALE
234 bool 234 bool
235 depends on ARCH_IOP3XX || ARCH_PXA || ARCH_IXP4XX || ARCH_IXP2000 235 depends on ARCH_IOP32X || ARCH_IOP33X || ARCH_PXA || ARCH_IXP4XX || ARCH_IXP2000
236 default y 236 default y
237 select CPU_32v5 237 select CPU_32v5
238 select CPU_ABRT_EV5T 238 select CPU_ABRT_EV5T
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index 884320e70403..a843d6b10a0c 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -196,7 +196,7 @@ config I2C_IBM_IIC
196 196
197config I2C_IOP3XX 197config I2C_IOP3XX
198 tristate "Intel IOP3xx and IXP4xx on-chip I2C interface" 198 tristate "Intel IOP3xx and IXP4xx on-chip I2C interface"
199 depends on (ARCH_IOP3XX || ARCH_IXP4XX) && I2C 199 depends on (ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX) && I2C
200 help 200 help
201 Say Y here if you want to use the IIC bus controller on 201 Say Y here if you want to use the IIC bus controller on
202 the Intel IOP3xx I/O Processors or IXP4xx Network Processors. 202 the Intel IOP3xx I/O Processors or IXP4xx Network Processors.
diff --git a/include/asm-arm/arch-iop32x/debug-macro.S b/include/asm-arm/arch-iop32x/debug-macro.S
new file mode 100644
index 000000000000..75ab2e0d8c67
--- /dev/null
+++ b/include/asm-arm/arch-iop32x/debug-macro.S
@@ -0,0 +1,20 @@
1/* linux/include/asm-arm/arch-iop32x/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
14 .macro addruart,rx
15 mov \rx, #0xfe000000 @ physical
16 orr \rx, \rx, #0x00800000 @ location of the UART
17 .endm
18
19#define UART_SHIFT 0
20#include <asm/hardware/debug-8250.S>
diff --git a/include/asm-arm/arch-iop3xx/dma.h b/include/asm-arm/arch-iop32x/dma.h
index 1e808db8af2a..5be36676e58f 100644
--- a/include/asm-arm/arch-iop3xx/dma.h
+++ b/include/asm-arm/arch-iop32x/dma.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/include/asm-arm/arch-iop3xx/dma.h 2 * linux/include/asm-arm/arch-iop32x/dma.h
3 * 3 *
4 * Copyright (C) 2004 Intel Corp. 4 * Copyright (C) 2004 Intel Corp.
5 * 5 *
diff --git a/include/asm-arm/arch-iop32x/entry-macro.S b/include/asm-arm/arch-iop32x/entry-macro.S
new file mode 100644
index 000000000000..52d9435c6a34
--- /dev/null
+++ b/include/asm-arm/arch-iop32x/entry-macro.S
@@ -0,0 +1,28 @@
1/*
2 * include/asm-arm/arch-iop32x/entry-macro.S
3 *
4 * Low-level IRQ helper macros for IOP32x-based platforms
5 *
6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any
8 * warranty of any kind, whether express or implied.
9 */
10#include <asm/arch/irqs.h>
11
12 .macro disable_fiq
13 .endm
14
15 /*
16 * Note: only deal with normal interrupts, not FIQ
17 */
18 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
19 mov \irqnr, #0
20 mrc p6, 0, \irqstat, c8, c0, 0 @ Read IINTSRC
21 cmp \irqstat, #0
22 beq 1001f
23 clz \irqnr, \irqstat
24 mov \base, #31
25 subs \irqnr,\base,\irqnr
26 add \irqnr,\irqnr,#IRQ_IOP321_DMA0_EOT
271001:
28 .endm
diff --git a/include/asm-arm/arch-iop3xx/hardware.h b/include/asm-arm/arch-iop32x/hardware.h
index 3b138171d086..8fb10134a107 100644
--- a/include/asm-arm/arch-iop3xx/hardware.h
+++ b/include/asm-arm/arch-iop32x/hardware.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/include/asm-arm/arch-iop3xx/hardware.h 2 * linux/include/asm-arm/arch-iop32x/hardware.h
3 */ 3 */
4#ifndef __ASM_ARCH_HARDWARE_H 4#ifndef __ASM_ARCH_HARDWARE_H
5#define __ASM_ARCH_HARDWARE_H 5#define __ASM_ARCH_HARDWARE_H
@@ -44,14 +44,11 @@ extern unsigned int processor_id;
44 * 44 *
45 */ 45 */
46#include "iop321.h" 46#include "iop321.h"
47#include "iop331.h"
48 47
49/* 48/*
50 * Board specific bits 49 * Board specific bits
51 */ 50 */
52#include "iq80321.h" 51#include "iq80321.h"
53#include "iq31244.h" 52#include "iq31244.h"
54#include "iq80331.h"
55#include "iq80332.h"
56 53
57#endif /* _ASM_ARCH_HARDWARE_H */ 54#endif /* _ASM_ARCH_HARDWARE_H */
diff --git a/include/asm-arm/arch-iop3xx/io.h b/include/asm-arm/arch-iop32x/io.h
index 36adbdf5055a..36d05ada12c4 100644
--- a/include/asm-arm/arch-iop3xx/io.h
+++ b/include/asm-arm/arch-iop32x/io.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/include/asm-arm/arch-iop3xx/io.h 2 * linux/include/asm-arm/arch-iop32x/io.h
3 * 3 *
4 * Copyright (C) 2001 MontaVista Software, Inc. 4 * Copyright (C) 2001 MontaVista Software, Inc.
5 * 5 *
diff --git a/include/asm-arm/arch-iop3xx/iop321.h b/include/asm-arm/arch-iop32x/iop321.h
index d198d72a50a4..7ba93faf8da4 100644
--- a/include/asm-arm/arch-iop3xx/iop321.h
+++ b/include/asm-arm/arch-iop32x/iop321.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/include/asm/arch-iop3xx/iop321.h 2 * linux/include/asm/arch-iop32x/iop321.h
3 * 3 *
4 * Intel IOP321 Chip definitions 4 * Intel IOP321 Chip definitions
5 * 5 *
@@ -21,11 +21,7 @@
21 * IOP3xx variants but behave slightly differently on each. 21 * IOP3xx variants but behave slightly differently on each.
22 */ 22 */
23#ifndef __ASSEMBLY__ 23#ifndef __ASSEMBLY__
24#ifdef CONFIG_ARCH_IOP32X 24#define iop_is_321() 1
25#define iop_is_321() (((processor_id & 0xfffff5e0) == 0x69052420))
26#else
27#define iop_is_321() 0
28#endif
29#endif 25#endif
30 26
31/* 27/*
diff --git a/include/asm-arm/arch-iop3xx/iq31244.h b/include/asm-arm/arch-iop32x/iq31244.h
index 4177cfa8100f..f490063d2156 100644
--- a/include/asm-arm/arch-iop3xx/iq31244.h
+++ b/include/asm-arm/arch-iop32x/iq31244.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/include/asm/arch-iop3xx/iq31244.h 2 * linux/include/asm/arch-iop32x/iq31244.h
3 * 3 *
4 * Intel IQ31244 evaluation board registers 4 * Intel IQ31244 evaluation board registers
5 */ 5 */
diff --git a/include/asm-arm/arch-iop3xx/iq80321.h b/include/asm-arm/arch-iop32x/iq80321.h
index cb8725979ffa..7015a605ab64 100644
--- a/include/asm-arm/arch-iop3xx/iq80321.h
+++ b/include/asm-arm/arch-iop32x/iq80321.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/include/asm/arch-iop3xx/iq80321.h 2 * linux/include/asm/arch-iop32x/iq80321.h
3 * 3 *
4 * Intel IQ80321 evaluation board registers 4 * Intel IQ80321 evaluation board registers
5 */ 5 */
diff --git a/include/asm-arm/arch-iop3xx/iop321-irqs.h b/include/asm-arm/arch-iop32x/irqs.h
index 2fcc1654cb9d..4b0c82711f96 100644
--- a/include/asm-arm/arch-iop3xx/iop321-irqs.h
+++ b/include/asm-arm/arch-iop32x/irqs.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/include/asm-arm/arch-iop3xx/irqs.h 2 * linux/include/asm-arm/arch-iop32x/irqs.h
3 * 3 *
4 * Author: Rory Bolt <rorybolt@pacbell.net> 4 * Author: Rory Bolt <rorybolt@pacbell.net>
5 * Copyright: (C) 2002 Rory Bolt 5 * Copyright: (C) 2002 Rory Bolt
@@ -9,8 +9,8 @@
9 * published by the Free Software Foundation. 9 * published by the Free Software Foundation.
10 * 10 *
11 */ 11 */
12#ifndef _IOP321_IRQS_H_ 12#ifndef _IRQS_H_
13#define _IOP321_IRQS_H_ 13#define _IRQS_H_
14 14
15/* 15/*
16 * IOP80321 chipset interrupts 16 * IOP80321 chipset interrupts
@@ -54,9 +54,7 @@
54#define IRQ_IOP321_XINT3 IOP321_IRQ(30) 54#define IRQ_IOP321_XINT3 IOP321_IRQ(30)
55#define IRQ_IOP321_HPI IOP321_IRQ(31) 55#define IRQ_IOP321_HPI IOP321_IRQ(31)
56 56
57#define NR_IOP321_IRQS (IOP321_IRQ(31) + 1) 57#define NR_IRQS (IOP321_IRQ(31) + 1)
58
59#define NR_IRQS NR_IOP321_IRQS
60 58
61 59
62/* 60/*
@@ -97,4 +95,4 @@
97#define IRQ_IQ31244_INTC IRQ_IOP321_XINT2 95#define IRQ_IQ31244_INTC IRQ_IOP321_XINT2
98#define IRQ_IQ31244_INTD IRQ_IOP321_XINT3 96#define IRQ_IQ31244_INTD IRQ_IOP321_XINT3
99 97
100#endif // _IOP321_IRQ_H_ 98#endif // _IRQ_H_
diff --git a/include/asm-arm/arch-iop3xx/memory.h b/include/asm-arm/arch-iop32x/memory.h
index 25666184e8fc..b4073f15b405 100644
--- a/include/asm-arm/arch-iop3xx/memory.h
+++ b/include/asm-arm/arch-iop32x/memory.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/include/asm-arm/arch-iop3xx/memory.h 2 * linux/include/asm-arm/arch-iop32x/memory.h
3 */ 3 */
4 4
5#ifndef __ASM_ARCH_MEMORY_H 5#ifndef __ASM_ARCH_MEMORY_H
@@ -10,11 +10,7 @@
10/* 10/*
11 * Physical DRAM offset. 11 * Physical DRAM offset.
12 */ 12 */
13#ifndef CONFIG_ARCH_IOP33X
14#define PHYS_OFFSET UL(0xa0000000) 13#define PHYS_OFFSET UL(0xa0000000)
15#else
16#define PHYS_OFFSET UL(0x00000000)
17#endif
18 14
19/* 15/*
20 * Virtual view <-> PCI DMA view memory address translations 16 * Virtual view <-> PCI DMA view memory address translations
@@ -23,16 +19,9 @@
23 * bus_to_virt: Used to convert an address for DMA operations 19 * bus_to_virt: Used to convert an address for DMA operations
24 * to an address that the kernel can use. 20 * to an address that the kernel can use.
25 */ 21 */
26#if defined(CONFIG_ARCH_IOP32X)
27 22
28#define __virt_to_bus(x) (((__virt_to_phys(x)) & ~(*IOP321_IATVR2)) | ((*IOP321_IABAR2) & 0xfffffff0)) 23#define __virt_to_bus(x) (((__virt_to_phys(x)) & ~(*IOP321_IATVR2)) | ((*IOP321_IABAR2) & 0xfffffff0))
29#define __bus_to_virt(x) (__phys_to_virt(((x) & ~(*IOP321_IALR2)) | ( *IOP321_IATVR2))) 24#define __bus_to_virt(x) (__phys_to_virt(((x) & ~(*IOP321_IALR2)) | ( *IOP321_IATVR2)))
30 25
31#elif defined(CONFIG_ARCH_IOP33X)
32
33#define __virt_to_bus(x) (((__virt_to_phys(x)) & ~(*IOP331_IATVR2)) | ((*IOP331_IABAR2) & 0xfffffff0))
34#define __bus_to_virt(x) (__phys_to_virt(((x) & ~(*IOP331_IALR2)) | ( *IOP331_IATVR2)))
35
36#endif
37 26
38#endif 27#endif
diff --git a/include/asm-arm/arch-iop3xx/system.h b/include/asm-arm/arch-iop32x/system.h
index a16cbb77a7f6..d4c8d691e1b0 100644
--- a/include/asm-arm/arch-iop3xx/system.h
+++ b/include/asm-arm/arch-iop32x/system.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/include/asm-arm/arch-iop3xx/system.h 2 * linux/include/asm-arm/arch-iop32x/system.h
3 * 3 *
4 * Copyright (C) 2001 MontaVista Software, Inc. 4 * Copyright (C) 2001 MontaVista Software, Inc.
5 * 5 *
@@ -16,13 +16,7 @@ static inline void arch_idle(void)
16 16
17static inline void arch_reset(char mode) 17static inline void arch_reset(char mode)
18{ 18{
19#ifdef CONFIG_ARCH_IOP32X
20 *IOP321_PCSR = 0x30; 19 *IOP321_PCSR = 0x30;
21#endif
22
23#ifdef CONFIG_ARCH_IOP33X
24 *IOP331_PCSR = 0x30;
25#endif
26 20
27 if ( 1 && mode == 's') { 21 if ( 1 && mode == 's') {
28 /* Jump into ROM at address 0 */ 22 /* Jump into ROM at address 0 */
diff --git a/include/asm-arm/arch-iop32x/timex.h b/include/asm-arm/arch-iop32x/timex.h
new file mode 100644
index 000000000000..08badde2e820
--- /dev/null
+++ b/include/asm-arm/arch-iop32x/timex.h
@@ -0,0 +1,8 @@
1/*
2 * linux/include/asm-arm/arch-iop32x/timex.h
3 *
4 * IOP3xx architecture timex specifications
5 */
6#include <asm/hardware.h>
7
8#define CLOCK_TICK_RATE IOP321_TICK_RATE
diff --git a/include/asm-arm/arch-iop32x/uncompress.h b/include/asm-arm/arch-iop32x/uncompress.h
new file mode 100644
index 000000000000..4a85f20c796f
--- /dev/null
+++ b/include/asm-arm/arch-iop32x/uncompress.h
@@ -0,0 +1,38 @@
1/*
2 * linux/include/asm-arm/arch-iop32x/uncompress.h
3 */
4#include <asm/types.h>
5#include <asm/mach-types.h>
6#include <linux/serial_reg.h>
7#include <asm/hardware.h>
8
9static volatile u8 *uart_base;
10
11#define TX_DONE (UART_LSR_TEMT|UART_LSR_THRE)
12
13static inline void putc(char c)
14{
15 while ((uart_base[UART_LSR] & TX_DONE) != TX_DONE)
16 barrier();
17 *uart_base = c;
18}
19
20static inline void flush(void)
21{
22}
23
24static __inline__ void __arch_decomp_setup(unsigned long arch_id)
25{
26 if (machine_is_iq80321())
27 uart_base = (volatile u8 *)IQ80321_UART;
28 else if (machine_is_iq31244())
29 uart_base = (volatile u8 *)IQ31244_UART;
30 else
31 uart_base = (volatile u8 *)0xfe800000;
32}
33
34/*
35 * nothing to do
36 */
37#define arch_decomp_setup() __arch_decomp_setup(arch_id)
38#define arch_decomp_wdog()
diff --git a/include/asm-arm/arch-iop3xx/vmalloc.h b/include/asm-arm/arch-iop32x/vmalloc.h
index 0f2f6847f93c..8492e1708a63 100644
--- a/include/asm-arm/arch-iop3xx/vmalloc.h
+++ b/include/asm-arm/arch-iop32x/vmalloc.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/include/asm-arm/arch-iop3xx/vmalloc.h 2 * linux/include/asm-arm/arch-iop32x/vmalloc.h
3 */ 3 */
4 4
5/* 5/*
diff --git a/include/asm-arm/arch-iop33x/debug-macro.S b/include/asm-arm/arch-iop33x/debug-macro.S
new file mode 100644
index 000000000000..b647edff475d
--- /dev/null
+++ b/include/asm-arm/arch-iop33x/debug-macro.S
@@ -0,0 +1,24 @@
1/* linux/include/asm-arm/arch-iop33x/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
14 .macro addruart,rx
15 mrc p15, 0, \rx, c1, c0
16 tst \rx, #1 @ mmu enabled?
17 moveq \rx, #0xff000000 @ physical
18 movne \rx, #0xfe000000 @ virtual
19 orr \rx, \rx, #0x00ff0000
20 orr \rx, \rx, #0x0000f700
21 .endm
22
23#define UART_SHIFT 2
24#include <asm/hardware/debug-8250.S>
diff --git a/include/asm-arm/arch-iop33x/dma.h b/include/asm-arm/arch-iop33x/dma.h
new file mode 100644
index 000000000000..d577ca59f4b0
--- /dev/null
+++ b/include/asm-arm/arch-iop33x/dma.h
@@ -0,0 +1,9 @@
1/*
2 * linux/include/asm-arm/arch-iop33x/dma.h
3 *
4 * Copyright (C) 2004 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 */
diff --git a/include/asm-arm/arch-iop3xx/entry-macro.S b/include/asm-arm/arch-iop33x/entry-macro.S
index f3db54637ad3..980ec9b1ac83 100644
--- a/include/asm-arm/arch-iop3xx/entry-macro.S
+++ b/include/asm-arm/arch-iop33x/entry-macro.S
@@ -1,7 +1,7 @@
1/* 1/*
2 * include/asm-arm/arch-iop3xx/entry-macro.S 2 * include/asm-arm/arch-iop33x/entry-macro.S
3 * 3 *
4 * Low-level IRQ helper macros for IOP3xx-based platforms 4 * Low-level IRQ helper macros for IOP33x-based platforms
5 * 5 *
6 * This file is licensed under the terms of the GNU General Public 6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any 7 * License version 2. This program is licensed "as is" without any
@@ -9,26 +9,6 @@
9 */ 9 */
10#include <asm/arch/irqs.h> 10#include <asm/arch/irqs.h>
11 11
12#if defined(CONFIG_ARCH_IOP32X)
13 .macro disable_fiq
14 .endm
15
16 /*
17 * Note: only deal with normal interrupts, not FIQ
18 */
19 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
20 mov \irqnr, #0
21 mrc p6, 0, \irqstat, c8, c0, 0 @ Read IINTSRC
22 cmp \irqstat, #0
23 beq 1001f
24 clz \irqnr, \irqstat
25 mov \base, #31
26 subs \irqnr,\base,\irqnr
27 add \irqnr,\irqnr,#IRQ_IOP321_DMA0_EOT
281001:
29 .endm
30
31#elif defined(CONFIG_ARCH_IOP33X)
32 .macro disable_fiq 12 .macro disable_fiq
33 .endm 13 .endm
34 14
@@ -47,11 +27,8 @@
47 rsbs \irqnr,\irqnr,#31 @ recommend by RMK 27 rsbs \irqnr,\irqnr,#31 @ recommend by RMK
48 add \irqnr,\irqnr,#IRQ_IOP331_XINT8 28 add \irqnr,\irqnr,#IRQ_IOP331_XINT8
49 b 1001f 29 b 1001f
501002: clz \irqnr, \irqstat 301002: clz \irqnr, \irqstat
51 rsbs \irqnr,\irqnr,#31 @ recommend by RMK 31 rsbs \irqnr,\irqnr,#31 @ recommend by RMK
52 add \irqnr,\irqnr,#IRQ_IOP331_DMA0_EOT 32 add \irqnr,\irqnr,#IRQ_IOP331_DMA0_EOT
531001: 331001:
54 .endm 34 .endm
55
56#endif
57
diff --git a/include/asm-arm/arch-iop33x/hardware.h b/include/asm-arm/arch-iop33x/hardware.h
new file mode 100644
index 000000000000..4a457084c5c6
--- /dev/null
+++ b/include/asm-arm/arch-iop33x/hardware.h
@@ -0,0 +1,54 @@
1/*
2 * linux/include/asm-arm/arch-iop33x/hardware.h
3 */
4#ifndef __ASM_ARCH_HARDWARE_H
5#define __ASM_ARCH_HARDWARE_H
6
7#include <asm/types.h>
8
9/*
10 * Note about PCI IO space mappings
11 *
12 * To make IO space accesses efficient, we store virtual addresses in
13 * the IO resources.
14 *
15 * The PCI IO space is located at virtual 0xfe000000 from physical
16 * 0x90000000. The PCI BARs must be programmed with physical addresses,
17 * but when we read them, we convert them to virtual addresses. See
18 * arch/arm/mach-iop33x/pci.c
19 */
20
21#define pcibios_assign_all_busses() 1
22
23
24/*
25 * The min PCI I/O and MEM space are dependent on what specific
26 * chipset/platform we are running on, so instead of hardcoding with
27 * #ifdefs, we just fill these in the platform level PCI init code.
28 */
29#ifndef __ASSEMBLY__
30extern unsigned long iop3xx_pcibios_min_io;
31extern unsigned long iop3xx_pcibios_min_mem;
32
33extern unsigned int processor_id;
34#endif
35
36/*
37 * We just set these to zero since they are really bogus anyways
38 */
39#define PCIBIOS_MIN_IO (iop3xx_pcibios_min_io)
40#define PCIBIOS_MIN_MEM (iop3xx_pcibios_min_mem)
41
42/*
43 * Generic chipset bits
44 *
45 */
46#include "iop331.h"
47
48/*
49 * Board specific bits
50 */
51#include "iq80331.h"
52#include "iq80332.h"
53
54#endif /* _ASM_ARCH_HARDWARE_H */
diff --git a/include/asm-arm/arch-iop33x/io.h b/include/asm-arm/arch-iop33x/io.h
new file mode 100644
index 000000000000..a9949d5d4953
--- /dev/null
+++ b/include/asm-arm/arch-iop33x/io.h
@@ -0,0 +1,21 @@
1/*
2 * linux/include/asm-arm/arch-iop33x/io.h
3 *
4 * Copyright (C) 2001 MontaVista Software, Inc.
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_ARM_ARCH_IO_H
12#define __ASM_ARM_ARCH_IO_H
13
14#include <asm/hardware.h>
15
16#define IO_SPACE_LIMIT 0xffffffff
17
18#define __io(p) ((void __iomem *)(p))
19#define __mem_pci(a) (a)
20
21#endif
diff --git a/include/asm-arm/arch-iop3xx/iop331.h b/include/asm-arm/arch-iop33x/iop331.h
index 4d7bcc62cb3e..780b707edb1e 100644
--- a/include/asm-arm/arch-iop3xx/iop331.h
+++ b/include/asm-arm/arch-iop33x/iop331.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/include/asm/arch-iop3xx/iop331.h 2 * linux/include/asm/arch-iop33x/iop331.h
3 * 3 *
4 * Intel IOP331 Chip definitions 4 * Intel IOP331 Chip definitions
5 * 5 *
@@ -20,12 +20,7 @@
20 * IOP3xx variants but behave slightly differently on each. 20 * IOP3xx variants but behave slightly differently on each.
21 */ 21 */
22#ifndef __ASSEMBLY__ 22#ifndef __ASSEMBLY__
23#ifdef CONFIG_ARCH_IOP33X 23#define iop_is_331() 1
24/*#define iop_is_331() ((processor_id & 0xffffffb0) == 0x69054090) */
25#define iop_is_331() ((processor_id & 0xffffff30) == 0x69054010)
26#else
27#define iop_is_331() 0
28#endif
29#endif 24#endif
30 25
31/* 26/*
diff --git a/include/asm-arm/arch-iop3xx/iq80331.h b/include/asm-arm/arch-iop33x/iq80331.h
index 0668e78d483e..bda7ab6d55cf 100644
--- a/include/asm-arm/arch-iop3xx/iq80331.h
+++ b/include/asm-arm/arch-iop33x/iq80331.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/include/asm/arch-iop3xx/iq80331.h 2 * linux/include/asm/arch-iop33x/iq80331.h
3 * 3 *
4 * Intel IQ80331 evaluation board registers 4 * Intel IQ80331 evaluation board registers
5 */ 5 */
diff --git a/include/asm-arm/arch-iop3xx/iq80332.h b/include/asm-arm/arch-iop33x/iq80332.h
index e5fff1775d1a..f728e04378ab 100644
--- a/include/asm-arm/arch-iop3xx/iq80332.h
+++ b/include/asm-arm/arch-iop33x/iq80332.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/include/asm/arch-iop3xx/iq80332.h 2 * linux/include/asm/arch-iop33x/iq80332.h
3 * 3 *
4 * Intel IQ80332 evaluation board registers 4 * Intel IQ80332 evaluation board registers
5 */ 5 */
diff --git a/include/asm-arm/arch-iop3xx/iop331-irqs.h b/include/asm-arm/arch-iop33x/irqs.h
index 7135ad7e335e..45856a12815a 100644
--- a/include/asm-arm/arch-iop3xx/iop331-irqs.h
+++ b/include/asm-arm/arch-iop33x/irqs.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/include/asm-arm/arch-iop3xx/irqs.h 2 * linux/include/asm-arm/arch-iop33x/irqs.h
3 * 3 *
4 * Author: Dave Jiang (dave.jiang@intel.com) 4 * Author: Dave Jiang (dave.jiang@intel.com)
5 * Copyright: (C) 2003 Intel Corp. 5 * Copyright: (C) 2003 Intel Corp.
@@ -9,8 +9,8 @@
9 * published by the Free Software Foundation. 9 * published by the Free Software Foundation.
10 * 10 *
11 */ 11 */
12#ifndef _IOP331_IRQS_H_ 12#ifndef _IRQS_H_
13#define _IOP331_IRQS_H_ 13#define _IRQS_H_
14 14
15/* 15/*
16 * IOP80331 chipset interrupts 16 * IOP80331 chipset interrupts
@@ -86,9 +86,7 @@
86#define IRQ_IOP331_MSG_ERR IOP331_IRQ(62) // 30 86#define IRQ_IOP331_MSG_ERR IOP331_IRQ(62) // 30
87#define IRQ_IOP331_HPI IOP331_IRQ(63) // 31 87#define IRQ_IOP331_HPI IOP331_IRQ(63) // 31
88 88
89#define NR_IOP331_IRQS (IOP331_IRQ(63) + 1) 89#define NR_IRQS (IOP331_IRQ(63) + 1)
90
91#define NR_IRQS NR_IOP331_IRQS
92 90
93 91
94/* 92/*
@@ -129,4 +127,4 @@
129#define IRQ_IQ80332_INTC IRQ_IOP331_XINT2 127#define IRQ_IQ80332_INTC IRQ_IOP331_XINT2
130#define IRQ_IQ80332_INTD IRQ_IOP331_XINT3 128#define IRQ_IQ80332_INTD IRQ_IOP331_XINT3
131 129
132#endif // _IOP331_IRQ_H_ 130#endif // _IRQ_H_
diff --git a/include/asm-arm/arch-iop33x/memory.h b/include/asm-arm/arch-iop33x/memory.h
new file mode 100644
index 000000000000..5e47164934ce
--- /dev/null
+++ b/include/asm-arm/arch-iop33x/memory.h
@@ -0,0 +1,26 @@
1/*
2 * linux/include/asm-arm/arch-iop33x/memory.h
3 */
4
5#ifndef __ASM_ARCH_MEMORY_H
6#define __ASM_ARCH_MEMORY_H
7
8#include <asm/hardware.h>
9
10/*
11 * Physical DRAM offset.
12 */
13#define PHYS_OFFSET UL(0x00000000)
14
15/*
16 * Virtual view <-> PCI DMA view memory address translations
17 * virt_to_bus: Used to translate the virtual address to an
18 * address suitable to be passed to set_dma_addr
19 * bus_to_virt: Used to convert an address for DMA operations
20 * to an address that the kernel can use.
21 */
22#define __virt_to_bus(x) (((__virt_to_phys(x)) & ~(*IOP331_IATVR2)) | ((*IOP331_IABAR2) & 0xfffffff0))
23#define __bus_to_virt(x) (__phys_to_virt(((x) & ~(*IOP331_IALR2)) | ( *IOP331_IATVR2)))
24
25
26#endif
diff --git a/include/asm-arm/arch-iop33x/system.h b/include/asm-arm/arch-iop33x/system.h
new file mode 100644
index 000000000000..43cc787ea629
--- /dev/null
+++ b/include/asm-arm/arch-iop33x/system.h
@@ -0,0 +1,29 @@
1/*
2 * linux/include/asm-arm/arch-iop33x/system.h
3 *
4 * Copyright (C) 2001 MontaVista Software, Inc.
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
11static inline void arch_idle(void)
12{
13 cpu_do_idle();
14}
15
16
17static inline void arch_reset(char mode)
18{
19 *IOP331_PCSR = 0x30;
20
21 if ( 1 && mode == 's') {
22 /* Jump into ROM at address 0 */
23 cpu_reset(0);
24 } else {
25 /* No on-chip reset capability */
26 cpu_reset(0);
27 }
28}
29
diff --git a/include/asm-arm/arch-iop33x/timex.h b/include/asm-arm/arch-iop33x/timex.h
new file mode 100644
index 000000000000..cc8085fa2a1e
--- /dev/null
+++ b/include/asm-arm/arch-iop33x/timex.h
@@ -0,0 +1,8 @@
1/*
2 * linux/include/asm-arm/arch-iop33x/timex.h
3 *
4 * IOP3xx architecture timex specifications
5 */
6#include <asm/hardware.h>
7
8#define CLOCK_TICK_RATE IOP331_TICK_RATE
diff --git a/include/asm-arm/arch-iop33x/uncompress.h b/include/asm-arm/arch-iop33x/uncompress.h
new file mode 100644
index 000000000000..62904ae3b038
--- /dev/null
+++ b/include/asm-arm/arch-iop33x/uncompress.h
@@ -0,0 +1,36 @@
1/*
2 * linux/include/asm-arm/arch-iop33x/uncompress.h
3 */
4#include <asm/types.h>
5#include <asm/mach-types.h>
6#include <linux/serial_reg.h>
7#include <asm/hardware.h>
8
9static volatile u32 *uart_base;
10
11#define TX_DONE (UART_LSR_TEMT|UART_LSR_THRE)
12
13static inline void putc(char c)
14{
15 while ((uart_base[UART_LSR] & TX_DONE) != TX_DONE)
16 barrier();
17 *uart_base = c;
18}
19
20static inline void flush(void)
21{
22}
23
24static __inline__ void __arch_decomp_setup(unsigned long arch_id)
25{
26 if (machine_is_iq80331() || machine_is_iq80332())
27 uart_base = (volatile u32 *)IOP331_UART0_PHYS;
28 else
29 uart_base = (volatile u32 *)0xfe800000;
30}
31
32/*
33 * nothing to do
34 */
35#define arch_decomp_setup() __arch_decomp_setup(arch_id)
36#define arch_decomp_wdog()
diff --git a/include/asm-arm/arch-iop33x/vmalloc.h b/include/asm-arm/arch-iop33x/vmalloc.h
new file mode 100644
index 000000000000..b5092027449e
--- /dev/null
+++ b/include/asm-arm/arch-iop33x/vmalloc.h
@@ -0,0 +1,16 @@
1/*
2 * linux/include/asm-arm/arch-iop33x/vmalloc.h
3 */
4
5/*
6 * Just any arbitrary offset to the start of the vmalloc VM area: the
7 * current 8MB value just means that there will be a 8MB "hole" after the
8 * physical memory until the kernel virtual memory starts. That means that
9 * any out-of-bounds memory accesses will hopefully be caught.
10 * The vmalloc() routines leaves a hole of 4kB between each vmalloced
11 * area for the same reason. ;)
12 */
13//#define VMALLOC_END (0xe8000000)
14/* increase usable physical RAM to ~992M per RMK */
15#define VMALLOC_END (0xfe000000)
16
diff --git a/include/asm-arm/arch-iop3xx/debug-macro.S b/include/asm-arm/arch-iop3xx/debug-macro.S
deleted file mode 100644
index dcc6856d14ff..000000000000
--- a/include/asm-arm/arch-iop3xx/debug-macro.S
+++ /dev/null
@@ -1,35 +0,0 @@
1/* linux/include/asm-arm/arch-iop3xx/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
14 .macro addruart,rx
15 mov \rx, #0xfe000000 @ physical
16#if defined(CONFIG_ARCH_IQ80321) || defined(CONFIG_ARCH_IQ31244)
17 orr \rx, \rx, #0x00800000 @ location of the UART
18#elif defined(CONFIG_ARCH_IOP33X)
19 mrc p15, 0, \rx, c1, c0
20 tst \rx, #1 @ MMU enabled?
21 moveq \rx, #0x000fe000 @ Physical Base
22 movne \rx, #0
23 orr \rx, \rx, #0xfe000000
24 orr \rx, \rx, #0x00f00000 @ Virtual Base
25 orr \rx, \rx, #0x00001700 @ location of the UART
26#else
27#error Unknown IOP3XX implementation
28#endif
29 .endm
30
31#if !defined(CONFIG_ARCH_IQ80321) || !defined(CONFIG_ARCH_IQ31244) || !defined(CONFIG_ARCH_IQ80331)
32#define FLOW_CONTROL
33#endif
34#define UART_SHIFT 0
35#include <asm/hardware/debug-8250.S>
diff --git a/include/asm-arm/arch-iop3xx/irqs.h b/include/asm-arm/arch-iop3xx/irqs.h
deleted file mode 100644
index 4f7c7aa87b4a..000000000000
--- a/include/asm-arm/arch-iop3xx/irqs.h
+++ /dev/null
@@ -1,21 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-iop3xx/irqs.h
3 *
4 * Copyright: (C) 2001-2003 MontaVista Software Inc.
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/*
13 * Chipset-specific bits
14 */
15#ifdef CONFIG_ARCH_IOP32X
16#include "iop321-irqs.h"
17#endif
18
19#ifdef CONFIG_ARCH_IOP33X
20#include "iop331-irqs.h"
21#endif
diff --git a/include/asm-arm/arch-iop3xx/timex.h b/include/asm-arm/arch-iop3xx/timex.h
deleted file mode 100644
index 14ca8d0f7b29..000000000000
--- a/include/asm-arm/arch-iop3xx/timex.h
+++ /dev/null
@@ -1,20 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-iop3xx/timex.h
3 *
4 * IOP3xx architecture timex specifications
5 */
6#include <asm/hardware.h>
7
8#if defined(CONFIG_ARCH_IQ80321) || defined(CONFIG_ARCH_IQ31244)
9
10#define CLOCK_TICK_RATE IOP321_TICK_RATE
11
12#elif defined(CONFIG_ARCH_IQ80331) || defined(CONFIG_MACH_IQ80332)
13
14#define CLOCK_TICK_RATE IOP331_TICK_RATE
15
16#else
17
18#error "No IOP3xx timex information for this architecture"
19
20#endif
diff --git a/include/asm-arm/arch-iop3xx/uncompress.h b/include/asm-arm/arch-iop3xx/uncompress.h
deleted file mode 100644
index 066c16bc1250..000000000000
--- a/include/asm-arm/arch-iop3xx/uncompress.h
+++ /dev/null
@@ -1,48 +0,0 @@
1/*
2 * linux/include/asm-arm/arch-iop3xx/uncompress.h
3 */
4#include <asm/types.h>
5#include <asm/mach-types.h>
6#include <linux/serial_reg.h>
7#include <asm/hardware.h>
8
9#ifdef CONFIG_ARCH_IOP32X
10#define UTYPE unsigned char *
11#elif defined(CONFIG_ARCH_IOP33X)
12#define UTYPE u32 *
13#else
14#error "Missing IOP3xx arch type def"
15#endif
16
17static volatile UTYPE uart_base;
18
19#define TX_DONE (UART_LSR_TEMT|UART_LSR_THRE)
20
21static inline void putc(char c)
22{
23 while ((uart_base[UART_LSR] & TX_DONE) != TX_DONE)
24 barrier();
25 *uart_base = c;
26}
27
28static inline void flush(void)
29{
30}
31
32static __inline__ void __arch_decomp_setup(unsigned long arch_id)
33{
34 if(machine_is_iq80321())
35 uart_base = (volatile UTYPE)IQ80321_UART;
36 else if(machine_is_iq31244())
37 uart_base = (volatile UTYPE)IQ31244_UART;
38 else if(machine_is_iq80331() || machine_is_iq80332())
39 uart_base = (volatile UTYPE)IOP331_UART0_PHYS;
40 else
41 uart_base = (volatile UTYPE)0xfe800000;
42}
43
44/*
45 * nothing to do
46 */
47#define arch_decomp_setup() __arch_decomp_setup(arch_id)
48#define arch_decomp_wdog()