]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ARM: EXYNOS: Add ARCH_EXYNOS and reorganize arch/arm/mach-exynos
authorKukjin Kim <kgene.kim@samsung.com>
Sun, 6 Nov 2011 04:54:56 +0000 (13:54 +0900)
committerKukjin Kim <kgene.kim@samsung.com>
Sun, 6 Nov 2011 04:54:56 +0000 (13:54 +0900)
The arch/arm/mach-exynos4 directory (CONFIG_ARCH_EXYNOS4) has
made for plaforms based on EXYNOS4 SoCs. But since upcoming
Samsung's SoCs such as EXYNOS5 (ARM Cortex A15) can reuse most
codes in current mach-exynos4, one mach-exynos directory will
be used for them.

This patch changes to CONFIG_ARCH_EXYNOS (arch/arm/mach-exynos)
but keeps original CONFIG_ARCH_EXYNOS4 in mach-exynos/Kconfig to
avoid changing in driver side.

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
76 files changed:
arch/arm/Kconfig
arch/arm/Makefile
arch/arm/configs/exynos4_defconfig
arch/arm/mach-exynos/Kconfig [moved from arch/arm/mach-exynos4/Kconfig with 92% similarity]
arch/arm/mach-exynos/Makefile [moved from arch/arm/mach-exynos4/Makefile with 90% similarity]
arch/arm/mach-exynos/Makefile.boot [moved from arch/arm/mach-exynos4/Makefile.boot with 100% similarity]
arch/arm/mach-exynos/clock-exynos4210.c [moved from arch/arm/mach-exynos4/clock-exynos4210.c with 100% similarity]
arch/arm/mach-exynos/clock-exynos4212.c [moved from arch/arm/mach-exynos4/clock-exynos4212.c with 100% similarity]
arch/arm/mach-exynos/clock.c [moved from arch/arm/mach-exynos4/clock.c with 100% similarity]
arch/arm/mach-exynos/cpu.c [moved from arch/arm/mach-exynos4/cpu.c with 91% similarity]
arch/arm/mach-exynos/cpuidle.c [moved from arch/arm/mach-exynos4/cpuidle.c with 100% similarity]
arch/arm/mach-exynos/dev-ahci.c [moved from arch/arm/mach-exynos4/dev-ahci.c with 100% similarity]
arch/arm/mach-exynos/dev-audio.c [moved from arch/arm/mach-exynos4/dev-audio.c with 100% similarity]
arch/arm/mach-exynos/dev-dwmci.c [moved from arch/arm/mach-exynos4/dev-dwmci.c with 100% similarity]
arch/arm/mach-exynos/dev-pd.c [moved from arch/arm/mach-exynos4/dev-pd.c with 100% similarity]
arch/arm/mach-exynos/dev-sysmmu.c [moved from arch/arm/mach-exynos4/dev-sysmmu.c with 100% similarity]
arch/arm/mach-exynos/dma.c [moved from arch/arm/mach-exynos4/dma.c with 100% similarity]
arch/arm/mach-exynos/headsmp.S [moved from arch/arm/mach-exynos4/headsmp.S with 100% similarity]
arch/arm/mach-exynos/hotplug.c [moved from arch/arm/mach-exynos4/hotplug.c with 100% similarity]
arch/arm/mach-exynos/include/mach/debug-macro.S [moved from arch/arm/mach-exynos4/include/mach/debug-macro.S with 100% similarity]
arch/arm/mach-exynos/include/mach/dma.h [moved from arch/arm/mach-exynos4/include/mach/dma.h with 100% similarity]
arch/arm/mach-exynos/include/mach/dwmci.h [moved from arch/arm/mach-exynos4/include/mach/dwmci.h with 100% similarity]
arch/arm/mach-exynos/include/mach/entry-macro.S [moved from arch/arm/mach-exynos4/include/mach/entry-macro.S with 100% similarity]
arch/arm/mach-exynos/include/mach/exynos4-clock.h [moved from arch/arm/mach-exynos4/include/mach/exynos4-clock.h with 100% similarity]
arch/arm/mach-exynos/include/mach/gpio.h [moved from arch/arm/mach-exynos4/include/mach/gpio.h with 100% similarity]
arch/arm/mach-exynos/include/mach/hardware.h [moved from arch/arm/mach-exynos4/include/mach/hardware.h with 100% similarity]
arch/arm/mach-exynos/include/mach/io.h [moved from arch/arm/mach-exynos4/include/mach/io.h with 100% similarity]
arch/arm/mach-exynos/include/mach/irqs.h [moved from arch/arm/mach-exynos4/include/mach/irqs.h with 100% similarity]
arch/arm/mach-exynos/include/mach/map.h [moved from arch/arm/mach-exynos4/include/mach/map.h with 93% similarity]
arch/arm/mach-exynos/include/mach/memory.h [moved from arch/arm/mach-exynos4/include/mach/memory.h with 100% similarity]
arch/arm/mach-exynos/include/mach/pm-core.h [moved from arch/arm/mach-exynos4/include/mach/pm-core.h with 100% similarity]
arch/arm/mach-exynos/include/mach/pmu.h [moved from arch/arm/mach-exynos4/include/mach/pmu.h with 100% similarity]
arch/arm/mach-exynos/include/mach/regs-audss.h [moved from arch/arm/mach-exynos4/include/mach/regs-audss.h with 100% similarity]
arch/arm/mach-exynos/include/mach/regs-clock.h [moved from arch/arm/mach-exynos4/include/mach/regs-clock.h with 100% similarity]
arch/arm/mach-exynos/include/mach/regs-gpio.h [moved from arch/arm/mach-exynos4/include/mach/regs-gpio.h with 100% similarity]
arch/arm/mach-exynos/include/mach/regs-irq.h [moved from arch/arm/mach-exynos4/include/mach/regs-irq.h with 100% similarity]
arch/arm/mach-exynos/include/mach/regs-mct.h [moved from arch/arm/mach-exynos4/include/mach/regs-mct.h with 100% similarity]
arch/arm/mach-exynos/include/mach/regs-mem.h [moved from arch/arm/mach-exynos4/include/mach/regs-mem.h with 100% similarity]
arch/arm/mach-exynos/include/mach/regs-pmu.h [moved from arch/arm/mach-exynos4/include/mach/regs-pmu.h with 100% similarity]
arch/arm/mach-exynos/include/mach/regs-sysmmu.h [moved from arch/arm/mach-exynos4/include/mach/regs-sysmmu.h with 100% similarity]
arch/arm/mach-exynos/include/mach/regs-usb-phy.h [moved from arch/arm/mach-exynos4/include/mach/regs-usb-phy.h with 100% similarity]
arch/arm/mach-exynos/include/mach/sysmmu.h [moved from arch/arm/mach-exynos4/include/mach/sysmmu.h with 100% similarity]
arch/arm/mach-exynos/include/mach/system.h [moved from arch/arm/mach-exynos4/include/mach/system.h with 100% similarity]
arch/arm/mach-exynos/include/mach/timex.h [moved from arch/arm/mach-exynos4/include/mach/timex.h with 100% similarity]
arch/arm/mach-exynos/include/mach/uncompress.h [moved from arch/arm/mach-exynos4/include/mach/uncompress.h with 100% similarity]
arch/arm/mach-exynos/include/mach/vmalloc.h [moved from arch/arm/mach-exynos4/include/mach/vmalloc.h with 100% similarity]
arch/arm/mach-exynos/init.c [moved from arch/arm/mach-exynos4/init.c with 100% similarity]
arch/arm/mach-exynos/irq-combiner.c [moved from arch/arm/mach-exynos4/irq-combiner.c with 100% similarity]
arch/arm/mach-exynos/irq-eint.c [moved from arch/arm/mach-exynos4/irq-eint.c with 100% similarity]
arch/arm/mach-exynos/mach-armlex4210.c [moved from arch/arm/mach-exynos4/mach-armlex4210.c with 100% similarity]
arch/arm/mach-exynos/mach-nuri.c [moved from arch/arm/mach-exynos4/mach-nuri.c with 100% similarity]
arch/arm/mach-exynos/mach-origen.c [moved from arch/arm/mach-exynos4/mach-origen.c with 100% similarity]
arch/arm/mach-exynos/mach-smdk4x12.c [moved from arch/arm/mach-exynos4/mach-smdk4x12.c with 100% similarity]
arch/arm/mach-exynos/mach-smdkv310.c [moved from arch/arm/mach-exynos4/mach-smdkv310.c with 100% similarity]
arch/arm/mach-exynos/mach-universal_c210.c [moved from arch/arm/mach-exynos4/mach-universal_c210.c with 100% similarity]
arch/arm/mach-exynos/mct.c [moved from arch/arm/mach-exynos4/mct.c with 100% similarity]
arch/arm/mach-exynos/platsmp.c [moved from arch/arm/mach-exynos4/platsmp.c with 100% similarity]
arch/arm/mach-exynos/pm.c [moved from arch/arm/mach-exynos4/pm.c with 100% similarity]
arch/arm/mach-exynos/pmu.c [moved from arch/arm/mach-exynos4/pmu.c with 100% similarity]
arch/arm/mach-exynos/setup-fimc.c [moved from arch/arm/mach-exynos4/setup-fimc.c with 100% similarity]
arch/arm/mach-exynos/setup-fimd0.c [moved from arch/arm/mach-exynos4/setup-fimd0.c with 100% similarity]
arch/arm/mach-exynos/setup-i2c0.c [moved from arch/arm/mach-exynos4/setup-i2c0.c with 100% similarity]
arch/arm/mach-exynos/setup-i2c1.c [moved from arch/arm/mach-exynos4/setup-i2c1.c with 100% similarity]
arch/arm/mach-exynos/setup-i2c2.c [moved from arch/arm/mach-exynos4/setup-i2c2.c with 100% similarity]
arch/arm/mach-exynos/setup-i2c3.c [moved from arch/arm/mach-exynos4/setup-i2c3.c with 100% similarity]
arch/arm/mach-exynos/setup-i2c4.c [moved from arch/arm/mach-exynos4/setup-i2c4.c with 100% similarity]
arch/arm/mach-exynos/setup-i2c5.c [moved from arch/arm/mach-exynos4/setup-i2c5.c with 100% similarity]
arch/arm/mach-exynos/setup-i2c6.c [moved from arch/arm/mach-exynos4/setup-i2c6.c with 100% similarity]
arch/arm/mach-exynos/setup-i2c7.c [moved from arch/arm/mach-exynos4/setup-i2c7.c with 100% similarity]
arch/arm/mach-exynos/setup-keypad.c [moved from arch/arm/mach-exynos4/setup-keypad.c with 100% similarity]
arch/arm/mach-exynos/setup-sdhci-gpio.c [moved from arch/arm/mach-exynos4/setup-sdhci-gpio.c with 100% similarity]
arch/arm/mach-exynos/setup-sdhci.c [moved from arch/arm/mach-exynos4/setup-sdhci.c with 100% similarity]
arch/arm/mach-exynos/setup-usb-phy.c [moved from arch/arm/mach-exynos4/setup-usb-phy.c with 100% similarity]
arch/arm/plat-s5p/Kconfig
arch/arm/plat-s5p/cpu.c
arch/arm/plat-samsung/include/plat/exynos4.h

index 2bda424c1b2bb4b0ef7a74d63fe027d718e1c3b7..44789eff983f444c22cd967cbe418f7e50159358 100644 (file)
@@ -837,8 +837,8 @@ config ARCH_S5PV210
        help
          Samsung S5PV210/S5PC110 series based systems
 
-config ARCH_EXYNOS4
-       bool "Samsung EXYNOS4"
+config ARCH_EXYNOS
+       bool "SAMSUNG EXYNOS"
        select CPU_V7
        select ARCH_SPARSEMEM_ENABLE
        select ARCH_HAS_HOLES_MEMORYMODEL
@@ -852,7 +852,7 @@ config ARCH_EXYNOS4
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
        select NEED_MACH_MEMORY_H
        help
-         Samsung EXYNOS4 series based systems
+         Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
 
 config ARCH_SHARK
        bool "Shark"
@@ -1079,7 +1079,7 @@ source "arch/arm/mach-s5pc100/Kconfig"
 
 source "arch/arm/mach-s5pv210/Kconfig"
 
-source "arch/arm/mach-exynos4/Kconfig"
+source "arch/arm/mach-exynos/Kconfig"
 
 source "arch/arm/mach-shmobile/Kconfig"
 
index b7c2d377a6c2330ed194ff931f0a91ec33b0fce8..dfcf3b033e10b465ff44107c43cfa1141fd989f4 100644 (file)
@@ -180,7 +180,7 @@ machine-$(CONFIG_ARCH_S3C64XX)              := s3c64xx
 machine-$(CONFIG_ARCH_S5P64X0)         := s5p64x0
 machine-$(CONFIG_ARCH_S5PC100)         := s5pc100
 machine-$(CONFIG_ARCH_S5PV210)         := s5pv210
-machine-$(CONFIG_ARCH_EXYNOS4)         := exynos4
+machine-$(CONFIG_ARCH_EXYNOS4)         := exynos
 machine-$(CONFIG_ARCH_SA1100)          := sa1100
 machine-$(CONFIG_ARCH_SHARK)           := shark
 machine-$(CONFIG_ARCH_SHMOBILE)        := shmobile
index cd40bb56e5686c58b5c2ad7beab4a2105842d897..bffe68e190a3d93157886557e1958bde59798648 100644 (file)
@@ -4,19 +4,18 @@ CONFIG_KALLSYMS_ALL=y
 CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 # CONFIG_BLK_DEV_BSG is not set
-CONFIG_ARCH_EXYNOS4=y
+CONFIG_ARCH_EXYNOS=y
 CONFIG_S3C_LOWLEVEL_UART_PORT=1
 CONFIG_MACH_SMDKC210=y
-CONFIG_MACH_SMDKV310=y
 CONFIG_MACH_ARMLEX4210=y
 CONFIG_MACH_UNIVERSAL_C210=y
 CONFIG_MACH_NURI=y
 CONFIG_MACH_ORIGEN=y
+CONFIG_MACH_SMDK4412=y
 CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_SMP=y
 CONFIG_NR_CPUS=2
-CONFIG_HOTPLUG_CPU=y
 CONFIG_PREEMPT=y
 CONFIG_AEABI=y
 CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc mem=256M"
@@ -61,13 +60,9 @@ CONFIG_DETECT_HUNG_TASK=y
 CONFIG_DEBUG_RT_MUTEXES=y
 CONFIG_DEBUG_SPINLOCK=y
 CONFIG_DEBUG_MUTEXES=y
-CONFIG_DEBUG_SPINLOCK_SLEEP=y
 CONFIG_DEBUG_INFO=y
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
 CONFIG_SYSCTL_SYSCALL_CHECK=y
 CONFIG_DEBUG_USER=y
-CONFIG_DEBUG_ERRORS=y
 CONFIG_DEBUG_LL=y
 CONFIG_EARLY_PRINTK=y
-CONFIG_DEBUG_S3C_UART=1
 CONFIG_CRC_CCITT=y
similarity index 92%
rename from arch/arm/mach-exynos4/Kconfig
rename to arch/arm/mach-exynos/Kconfig
index 51cff04795d5748cf6ec1e0553a101ca47db2716..724ec0f3560ddf5cb00cff43147e1ec3f98bfe3d 100644 (file)
@@ -1,4 +1,4 @@
-# arch/arm/mach-exynos4/Kconfig
+# arch/arm/mach-exynos/Kconfig
 #
 # Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
 #              http://www.samsung.com/
@@ -7,10 +7,27 @@
 
 # Configuration options for the EXYNOS4
 
-if ARCH_EXYNOS4
+if ARCH_EXYNOS
+
+menu "SAMSUNG EXYNOS SoCs Support"
+
+choice
+       prompt "EXYNOS System Type"
+       default ARCH_EXYNOS4
+
+config ARCH_EXYNOS4
+       bool "SAMSUNG EXYNOS4"
+       help
+         Samsung EXYNOS4 SoCs based systems
+
+endchoice
+
+comment "EXYNOS SoCs"
 
 config CPU_EXYNOS4210
-       bool
+       bool "SAMSUNG EXYNOS4210"
+       default y
+       depends on ARCH_EXYNOS4
        select SAMSUNG_DMADEV
        select ARM_CPU_SUSPEND if PM
        select S5P_PM if PM
@@ -19,15 +36,18 @@ config CPU_EXYNOS4210
          Enable EXYNOS4210 CPU support
 
 config SOC_EXYNOS4212
-       bool
-       select ARM_CPU_SUSPEND if PM
+       bool "SAMSUNG EXYNOS4212"
+       default y
+       depends on ARCH_EXYNOS4
        select S5P_PM if PM
        select S5P_SLEEP if PM
        help
          Enable EXYNOS4212 SoC support
 
 config SOC_EXYNOS4412
-       bool
+       bool "SAMSUNG EXYNOS4412"
+       default y
+       depends on ARCH_EXYNOS4
        help
          Enable EXYNOS4412 SoC support
 
@@ -125,7 +145,7 @@ config EXYNOS4_SETUP_USB_PHY
 
 # machine support
 
-menu "EXYNOS4 Machines"
+if ARCH_EXYNOS4
 
 comment "EXYNOS4210 Boards"
 
@@ -305,12 +325,11 @@ config MACH_SMDK4412
        select MACH_SMDK4212
        help
          Machine support for Samsung SMDK4412
+endif
 
-endmenu
-
-comment "Configuration for HSMMC bus width"
+if ARCH_EXYNOS4
 
-menu "Use 8-bit bus width"
+comment "Configuration for HSMMC 8-bit bus width"
 
 config EXYNOS4_SDHCI_CH0_8BIT
        bool "Channel 0 with 8-bit bus"
@@ -323,6 +342,7 @@ config EXYNOS4_SDHCI_CH2_8BIT
        help
          Support HSMMC Channel 2 8-bit bus.
          If selected, Channel 3 is disabled.
+endif
 
 endmenu
 
similarity index 90%
rename from arch/arm/mach-exynos4/Makefile
rename to arch/arm/mach-exynos/Makefile
index 2bb18f431db9e9552f7e924689c8def0faf0f741..59069a35e40b922a11d3b93ac1dafdb250da92c5 100644 (file)
@@ -1,4 +1,4 @@
-# arch/arm/mach-exynos4/Makefile
+# arch/arm/mach-exynos/Makefile
 #
 # Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
 #              http://www.samsung.com/
@@ -12,8 +12,8 @@ obj-                          :=
 
 # Core support for EXYNOS4 system
 
-obj-$(CONFIG_ARCH_EXYNOS4)     += cpu.o init.o clock.o irq-combiner.o
-obj-$(CONFIG_ARCH_EXYNOS4)     += setup-i2c0.o irq-eint.o dma.o pmu.o
+obj-$(CONFIG_ARCH_EXYNOS4)     += cpu.o init.o clock.o irq-combiner.o setup-i2c0.o
+obj-$(CONFIG_ARCH_EXYNOS4)     += irq-eint.o dma.o pmu.o
 obj-$(CONFIG_CPU_EXYNOS4210)   += clock-exynos4210.o
 obj-$(CONFIG_SOC_EXYNOS4212)   += clock-exynos4212.o
 obj-$(CONFIG_PM)               += pm.o
@@ -39,11 +39,11 @@ obj-$(CONFIG_MACH_SMDK4412)         += mach-smdk4x12.o
 
 # device support
 
-obj-y                                  += dev-audio.o
+obj-$(CONFIG_ARCH_EXYNOS4)             += dev-audio.o
 obj-$(CONFIG_EXYNOS4_DEV_AHCI)         += dev-ahci.o
 obj-$(CONFIG_EXYNOS4_DEV_PD)           += dev-pd.o
 obj-$(CONFIG_EXYNOS4_DEV_SYSMMU)       += dev-sysmmu.o
-obj-$(CONFIG_EXYNOS4_DEV_DWMCI)        += dev-dwmci.o
+obj-$(CONFIG_EXYNOS4_DEV_DWMCI)                += dev-dwmci.o
 
 obj-$(CONFIG_EXYNOS4_SETUP_FIMC)       += setup-fimc.o
 obj-$(CONFIG_EXYNOS4_SETUP_FIMD0)      += setup-fimd0.o
@@ -57,5 +57,4 @@ obj-$(CONFIG_EXYNOS4_SETUP_I2C7)      += setup-i2c7.o
 obj-$(CONFIG_EXYNOS4_SETUP_KEYPAD)     += setup-keypad.o
 obj-$(CONFIG_EXYNOS4_SETUP_SDHCI)      += setup-sdhci.o
 obj-$(CONFIG_EXYNOS4_SETUP_SDHCI_GPIO) += setup-sdhci-gpio.o
-
 obj-$(CONFIG_EXYNOS4_SETUP_USB_PHY)    += setup-usb-phy.o
similarity index 91%
rename from arch/arm/mach-exynos4/cpu.c
rename to arch/arm/mach-exynos/cpu.c
index 5b1765b37f75bb6c89acd6b121aed27409a204e5..90ec247f3b375f498e20f46c20e25fe2c943b54a 100644 (file)
@@ -1,4 +1,4 @@
-/* linux/arch/arm/mach-exynos4/cpu.c
+/* linux/arch/arm/mach-exynos/cpu.c
  *
  * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
  *             http://www.samsung.com
@@ -40,27 +40,46 @@ extern int combiner_init(unsigned int combiner_nr, void __iomem *base,
 extern void combiner_cascade_irq(unsigned int combiner_nr, unsigned int irq);
 
 /* Initial IO mappings */
-static struct map_desc exynos4_iodesc[] __initdata = {
+static struct map_desc exynos_iodesc[] __initdata = {
        {
                .virtual        = (unsigned long)S5P_VA_SYSTIMER,
-               .pfn            = __phys_to_pfn(EXYNOS4_PA_SYSTIMER),
+               .pfn            = __phys_to_pfn(EXYNOS_PA_SYSTIMER),
                .length         = SZ_4K,
-               .type           = MT_DEVICE,
-       }, {
-               .virtual        = (unsigned long)S5P_VA_CMU,
-               .pfn            = __phys_to_pfn(EXYNOS4_PA_CMU),
-               .length         = SZ_128K,
                .type           = MT_DEVICE,
        }, {
                .virtual        = (unsigned long)S5P_VA_PMU,
-               .pfn            = __phys_to_pfn(EXYNOS4_PA_PMU),
+               .pfn            = __phys_to_pfn(EXYNOS_PA_PMU),
                .length         = SZ_64K,
                .type           = MT_DEVICE,
        }, {
                .virtual        = (unsigned long)S5P_VA_COMBINER_BASE,
-               .pfn            = __phys_to_pfn(EXYNOS4_PA_COMBINER),
+               .pfn            = __phys_to_pfn(EXYNOS_PA_COMBINER),
                .length         = SZ_4K,
                .type           = MT_DEVICE,
+       }, {
+               .virtual        = (unsigned long)S5P_VA_GIC_CPU,
+               .pfn            = __phys_to_pfn(EXYNOS_PA_GIC_CPU),
+               .length         = SZ_64K,
+               .type           = MT_DEVICE,
+       }, {
+               .virtual        = (unsigned long)S5P_VA_GIC_DIST,
+               .pfn            = __phys_to_pfn(EXYNOS_PA_GIC_DIST),
+               .length         = SZ_64K,
+               .type           = MT_DEVICE,
+       }, {
+               .virtual        = (unsigned long)S3C_VA_UART,
+               .pfn            = __phys_to_pfn(S3C_PA_UART),
+               .length         = SZ_512K,
+               .type           = MT_DEVICE,
+       },
+};
+
+static struct map_desc exynos4_iodesc[] __initdata = {
+       {
+               .virtual        = (unsigned long)S5P_VA_CMU,
+               .pfn            = __phys_to_pfn(EXYNOS4_PA_CMU),
+               .length         = SZ_128K,
+               .type           = MT_DEVICE,
        }, {
                .virtual        = (unsigned long)S5P_VA_COREPERI_BASE,
                .pfn            = __phys_to_pfn(EXYNOS4_PA_COREPERI),
@@ -91,11 +110,6 @@ static struct map_desc exynos4_iodesc[] __initdata = {
                .pfn            = __phys_to_pfn(EXYNOS4_PA_DMC0),
                .length         = SZ_4K,
                .type           = MT_DEVICE,
-       }, {
-               .virtual        = (unsigned long)S3C_VA_UART,
-               .pfn            = __phys_to_pfn(S3C_PA_UART),
-               .length         = SZ_512K,
-               .type           = MT_DEVICE,
        }, {
                .virtual        = (unsigned long)S5P_VA_SROMC,
                .pfn            = __phys_to_pfn(EXYNOS4_PA_SROMC),
@@ -106,16 +120,6 @@ static struct map_desc exynos4_iodesc[] __initdata = {
                .pfn            = __phys_to_pfn(EXYNOS4_PA_HSPHY),
                .length         = SZ_4K,
                .type           = MT_DEVICE,
-       }, {
-               .virtual        = (unsigned long)S5P_VA_GIC_CPU,
-               .pfn            = __phys_to_pfn(EXYNOS4_PA_GIC_CPU),
-               .length         = SZ_64K,
-               .type           = MT_DEVICE,
-       }, {
-               .virtual        = (unsigned long)S5P_VA_GIC_DIST,
-               .pfn            = __phys_to_pfn(EXYNOS4_PA_GIC_DIST),
-               .length         = SZ_64K,
-               .type           = MT_DEVICE,
        },
 };
 
@@ -137,7 +141,7 @@ static struct map_desc exynos4_iodesc1[] __initdata = {
        },
 };
 
-static void exynos4_idle(void)
+static void exynos_idle(void)
 {
        if (!need_resched())
                cpu_do_idle();
@@ -151,12 +155,13 @@ static void exynos4_sw_reset(void)
 }
 
 /*
- * exynos4_map_io
+ * exynos_map_io
  *
  * register the standard cpu IO areas
  */
 void __init exynos4_map_io(void)
 {
+       iotable_init(exynos_iodesc, ARRAY_SIZE(exynos_iodesc));
        iotable_init(exynos4_iodesc, ARRAY_SIZE(exynos4_iodesc));
 
        if (soc_is_exynos4210() && samsung_rev() == EXYNOS4210_REV_0)
@@ -250,7 +255,6 @@ static int __init exynos4_core_init(void)
 {
        return sysdev_class_register(&exynos4_sysclass);
 }
-
 core_initcall(exynos4_core_init);
 
 #ifdef CONFIG_CACHE_L2X0
@@ -279,15 +283,16 @@ static int __init exynos4_l2x0_cache_init(void)
 early_initcall(exynos4_l2x0_cache_init);
 #endif
 
-int __init exynos4_init(void)
+int __init exynos_init(void)
 {
-       printk(KERN_INFO "EXYNOS4: Initializing architecture\n");
+       printk(KERN_INFO "EXYNOS: Initializing architecture\n");
 
        /* set idle function */
-       pm_idle = exynos4_idle;
+       pm_idle = exynos_idle;
 
        /* set sw_reset function */
-       s5p_reset_hook = exynos4_sw_reset;
+       if (soc_is_exynos4210() || soc_is_exynos4212() || soc_is_exynos4412())
+               s5p_reset_hook = exynos4_sw_reset;
 
        return sysdev_register(&exynos4_sysdev);
 }
similarity index 93%
rename from arch/arm/mach-exynos4/include/mach/map.h
rename to arch/arm/mach-exynos/include/mach/map.h
index 918a979181af9a786c439720cc8f970ec651f6eb..058541d45af0906692eb9c6850beb0e903892efe 100644 (file)
@@ -1,4 +1,4 @@
-/* linux/arch/arm/mach-exynos4/include/mach/map.h
+/* linux/arch/arm/mach-exynos/include/mach/map.h
  *
  * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
  *             http://www.samsung.com/
 #define S3C_PA_IIC5                    EXYNOS4_PA_IIC(5)
 #define S3C_PA_IIC6                    EXYNOS4_PA_IIC(6)
 #define S3C_PA_IIC7                    EXYNOS4_PA_IIC(7)
-#define SAMSUNG_PA_ADC                 EXYNOS4_PA_ADC
-#define SAMSUNG_PA_ADC1                        EXYNOS4_PA_ADC1
 #define S3C_PA_RTC                     EXYNOS4_PA_RTC
 #define S3C_PA_WDT                     EXYNOS4_PA_WATCHDOG
+#define S3C_PA_UART                    EXYNOS4_PA_UART
 
 #define S5P_PA_CHIPID                  EXYNOS4_PA_CHIPID
+#define S5P_PA_EHCI                    EXYNOS4_PA_EHCI
 #define S5P_PA_FIMC0                   EXYNOS4_PA_FIMC0
 #define S5P_PA_FIMC1                   EXYNOS4_PA_FIMC1
 #define S5P_PA_FIMC2                   EXYNOS4_PA_FIMC2
 #define S5P_PA_FIMC3                   EXYNOS4_PA_FIMC3
+#define S5P_PA_FIMD0                   EXYNOS4_PA_FIMD0
+#define S5P_PA_HDMI                    EXYNOS4_PA_HDMI
+#define S5P_PA_IIC_HDMIPHY             EXYNOS4_PA_IIC_HDMIPHY
+#define S5P_PA_MFC                     EXYNOS4_PA_MFC
 #define S5P_PA_MIPI_CSIS0              EXYNOS4_PA_MIPI_CSIS0
 #define S5P_PA_MIPI_CSIS1              EXYNOS4_PA_MIPI_CSIS1
-#define S5P_PA_FIMD0                   EXYNOS4_PA_FIMD0
+#define S5P_PA_MIXER                   EXYNOS4_PA_MIXER
 #define S5P_PA_ONENAND                 EXYNOS4_PA_ONENAND
 #define S5P_PA_ONENAND_DMA             EXYNOS4_PA_ONENAND_DMA
+#define S5P_PA_SDO                     EXYNOS4_PA_SDO
 #define S5P_PA_SDRAM                   EXYNOS4_PA_SDRAM
 #define S5P_PA_SROMC                   EXYNOS4_PA_SROMC
-#define S5P_PA_MFC                     EXYNOS4_PA_MFC
 #define S5P_PA_SYSCON                  EXYNOS4_PA_SYSCON
 #define S5P_PA_TIMER                   EXYNOS4_PA_TIMER
-#define S5P_PA_EHCI                    EXYNOS4_PA_EHCI
-
-#define S5P_PA_SDO                     EXYNOS4_PA_SDO
 #define S5P_PA_VP                      EXYNOS4_PA_VP
-#define S5P_PA_MIXER                   EXYNOS4_PA_MIXER
-#define S5P_PA_HDMI                    EXYNOS4_PA_HDMI
-#define S5P_PA_IIC_HDMIPHY             EXYNOS4_PA_IIC_HDMIPHY
 
+#define SAMSUNG_PA_ADC                 EXYNOS4_PA_ADC
+#define SAMSUNG_PA_ADC1                        EXYNOS4_PA_ADC1
 #define SAMSUNG_PA_KEYPAD              EXYNOS4_PA_KEYPAD
 
-/* UART */
+#define EXYNOS_PA_COMBINER             EXYNOS4_PA_COMBINER
+#define EXYNOS_PA_GIC_CPU              EXYNOS4_PA_GIC_CPU
+#define EXYNOS_PA_GIC_DIST             EXYNOS4_PA_GIC_DIST
+#define EXYNOS_PA_PMU                  EXYNOS4_PA_PMU
+#define EXYNOS_PA_SYSTIMER             EXYNOS4_PA_SYSTIMER
 
-#define S3C_PA_UART                    EXYNOS4_PA_UART
+/* Compatibility UART */
+
+#define S3C_VA_UARTx(x)                        (S3C_VA_UART + ((x) * S3C_UART_OFFSET))
 
 #define S5P_PA_UART(x)                 (S3C_PA_UART + ((x) * S3C_UART_OFFSET))
 #define S5P_PA_UART0                   S5P_PA_UART(0)
index ab16e5568c4c526db5fb90865bd7b1e97609305f..9b9968fa8695b05b0fa4edb3784dc90fd000126f 100644 (file)
@@ -7,7 +7,7 @@
 
 config PLAT_S5P
        bool
-       depends on (ARCH_S5P64X0 || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_EXYNOS4)
+       depends on (ARCH_S5P64X0 || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_EXYNOS)
        default y
        select ARM_VIC if !ARCH_EXYNOS4
        select ARM_GIC if ARCH_EXYNOS4
index 7b0a28f73a68a2f47601d6ece39edac6547827b6..a56959e83516706a4fc016888813ec2feb9ad70c 100644 (file)
@@ -75,7 +75,7 @@ static struct cpu_table cpu_ids[] __initdata = {
                .map_io         = exynos4_map_io,
                .init_clocks    = exynos4_init_clocks,
                .init_uarts     = exynos4_init_uarts,
-               .init           = exynos4_init,
+               .init           = exynos_init,
                .name           = name_exynos4210,
        }, {
                .idcode         = EXYNOS4212_CPU_ID,
@@ -83,7 +83,7 @@ static struct cpu_table cpu_ids[] __initdata = {
                .map_io         = exynos4_map_io,
                .init_clocks    = exynos4_init_clocks,
                .init_uarts     = exynos4_init_uarts,
-               .init           = exynos4_init,
+               .init           = exynos_init,
                .name           = name_exynos4212,
        }, {
                .idcode         = EXYNOS4412_CPU_ID,
@@ -91,7 +91,7 @@ static struct cpu_table cpu_ids[] __initdata = {
                .map_io         = exynos4_map_io,
                .init_clocks    = exynos4_init_clocks,
                .init_uarts     = exynos4_init_uarts,
-               .init           = exynos4_init,
+               .init           = exynos_init,
                .name           = name_exynos4412,
        },
 };
index 20d73bf77537574066ad4e21564b67e0f979fbcb..f546e88ebc949db36a41672c9efffd9b13e85171 100644 (file)
@@ -18,8 +18,8 @@ extern void exynos4210_register_clocks(void);
 extern void exynos4212_register_clocks(void);
 extern void exynos4_setup_clocks(void);
 
-#ifdef CONFIG_ARCH_EXYNOS4
-extern  int exynos4_init(void);
+#ifdef CONFIG_ARCH_EXYNOS
+extern  int exynos_init(void);
 extern void exynos4_init_irq(void);
 extern void exynos4_map_io(void);
 extern void exynos4_init_clocks(int xtal);
@@ -31,5 +31,5 @@ extern struct sys_timer exynos4_timer;
 #define exynos4_init_clocks NULL
 #define exynos4_init_uarts NULL
 #define exynos4_map_io NULL
-#define exynos4_init NULL
+#define exynos_init NULL
 #endif