ARM: S5PC100: Kconfigs and Makefiles
Byungho Min [Tue, 23 Jun 2009 12:39:42 +0000 (21:39 +0900)]
S5PC100 is a new SoC with ARM coretex-A8 and numerous peripherals. This SoC is
successor of S3C64XX. S5PC100 has peripherals which are still similar to S3C
families so some drivers in "arch/arm/plat-s3c" can be shared. S5PC100 specific
drivers will be added in "arch/arm/plat-s5pcxx" or "arch/arm/mach-s5pc100"

Signed-off-by: Byungho Min <bhmin@samsung.com>
[ben-linux@fluff.org: tidy and edit description]
Signed-off-by: Ben Dooks <ben-linux@fluff.org>

arch/arm/Kconfig
arch/arm/Makefile
arch/arm/mach-s5pc100/Kconfig [new file with mode: 0644]
arch/arm/mach-s5pc100/Makefile [new file with mode: 0644]
arch/arm/mach-s5pc100/Makefile.boot [new file with mode: 0644]
arch/arm/mach-s5pc100/include/mach/hardware.h
arch/arm/plat-s5pc1xx/Kconfig [new file with mode: 0644]
arch/arm/plat-s5pc1xx/Makefile [new file with mode: 0644]

index f07a4ba..be89ab3 100644 (file)
@@ -588,6 +588,14 @@ config ARCH_S3C64XX
        help
          Samsung S3C64XX series based systems
 
+config ARCH_S5PC1XX
+       bool "Samsung S5PC1XX"
+       select GENERIC_GPIO
+       select HAVE_CLK
+       select CPU_V7
+       help
+         Samsung S5PC1XX series based systems
+
 config ARCH_SHARK
        bool "Shark"
        select CPU_SA110
@@ -698,6 +706,7 @@ source "arch/arm/mach-kirkwood/Kconfig"
 source "arch/arm/plat-s3c24xx/Kconfig"
 source "arch/arm/plat-s3c64xx/Kconfig"
 source "arch/arm/plat-s3c/Kconfig"
+source "arch/arm/plat-s5pc1xx/Kconfig"
 
 if ARCH_S3C2410
 source "arch/arm/mach-s3c2400/Kconfig"
@@ -715,6 +724,10 @@ endif
 
 source "arch/arm/plat-stmp3xxx/Kconfig"
 
+if ARCH_S5PC1XX
+source "arch/arm/mach-s5pc100/Kconfig"
+endif
+
 source "arch/arm/mach-lh7a40x/Kconfig"
 
 source "arch/arm/mach-h720x/Kconfig"
index c877d6d..9665941 100644 (file)
@@ -150,6 +150,7 @@ machine-$(CONFIG_ARCH_RPC)          := rpc
 machine-$(CONFIG_ARCH_S3C2410)         := s3c2410 s3c2400 s3c2412 s3c2440 s3c2442 s3c2443
 machine-$(CONFIG_ARCH_S3C24A0)         := s3c24a0
 machine-$(CONFIG_ARCH_S3C64XX)         := s3c6400 s3c6410
+machine-$(CONFIG_ARCH_S5PC1XX)         := s5pc100
 machine-$(CONFIG_ARCH_SA1100)          := sa1100
 machine-$(CONFIG_ARCH_SHARK)           := shark
 machine-$(CONFIG_ARCH_STMP378X)                := stmp378x
@@ -168,6 +169,7 @@ plat-$(CONFIG_PLAT_ORION)   := orion
 plat-$(CONFIG_PLAT_PXA)                := pxa
 plat-$(CONFIG_PLAT_S3C24XX)    := s3c24xx s3c
 plat-$(CONFIG_PLAT_S3C64XX)    := s3c64xx s3c
+plat-$(CONFIG_PLAT_S5PC1XX)    := s5pc1xx s3c
 plat-$(CONFIG_ARCH_STMP3XXX)   := stmp3xxx
 
 ifeq ($(CONFIG_ARCH_EBSA110),y)
diff --git a/arch/arm/mach-s5pc100/Kconfig b/arch/arm/mach-s5pc100/Kconfig
new file mode 100644 (file)
index 0000000..b1a4ba5
--- /dev/null
@@ -0,0 +1,22 @@
+# arch/arm/mach-s5pc100/Kconfig
+#
+# Copyright 2009 Samsung Electronics Co.
+#      Byungho Min <bhmin@samsung.com>
+#
+# Licensed under GPLv2
+
+# Configuration options for the S5PC100 CPU
+
+config CPU_S5PC100
+       bool
+       select CPU_S5PC100_INIT
+       select CPU_S5PC100_CLOCK
+       help
+         Enable S5PC100 CPU support
+
+config MACH_SMDKC100
+       bool "SMDKC100"
+       select CPU_S5PC100
+       select S5PC1XX_SETUP_I2C1
+       help
+         Machine support for the Samsung SMDKC100
diff --git a/arch/arm/mach-s5pc100/Makefile b/arch/arm/mach-s5pc100/Makefile
new file mode 100644 (file)
index 0000000..afc89b3
--- /dev/null
@@ -0,0 +1,17 @@
+# arch/arm/mach-s5pc100/Makefile
+#
+# Copyright 2009 Samsung Electronics Co.
+#
+# Licensed under GPLv2
+
+obj-y                          :=
+obj-m                          :=
+obj-n                          :=
+obj-                           :=
+
+# Core support for S5PC100 system
+
+obj-$(CONFIG_CPU_S5PC100)      += cpu.o
+
+# machine support
+obj-$(CONFIG_MACH_SMDKC100)    += mach-smdkc100.o
diff --git a/arch/arm/mach-s5pc100/Makefile.boot b/arch/arm/mach-s5pc100/Makefile.boot
new file mode 100644 (file)
index 0000000..ff90aa1
--- /dev/null
@@ -0,0 +1,2 @@
+   zreladdr-y  := 0x20008000
+params_phys-y  := 0x20000100
index 38ce820..6b38618 100644 (file)
@@ -3,7 +3,7 @@
  * Copyright 2009 Samsung Electronics Co.
  *      Byungho Min <bhmin@samsung.com>
  *
- * S3C6400 - Hardware support
+ * S5PC100 - Hardware support
  */
 
 #ifndef __ASM_ARCH_HARDWARE_H
diff --git a/arch/arm/plat-s5pc1xx/Kconfig b/arch/arm/plat-s5pc1xx/Kconfig
new file mode 100644 (file)
index 0000000..a8a711c
--- /dev/null
@@ -0,0 +1,50 @@
+# arch/arm/plat-s5pc1xx/Kconfig
+#
+# Copyright 2009 Samsung Electronics Co.
+#      Byungho Min <bhmin@samsung.com>
+#
+# Licensed under GPLv2
+
+config PLAT_S5PC1XX
+       bool
+       depends on ARCH_S5PC1XX
+       default y
+       select PLAT_S3C
+       select ARM_VIC
+       select NO_IOPORT
+       select ARCH_REQUIRE_GPIOLIB
+       select S3C_GPIO_TRACK
+       select S3C_GPIO_PULL_UPDOWN
+       help
+         Base platform code for any Samsung S5PC1XX device
+
+if PLAT_S5PC1XX
+
+# Configuration options shared by all S3C64XX implementations
+
+config CPU_S5PC100_INIT
+       bool
+       help
+         Common initialisation code for the S5PC1XX
+
+config CPU_S5PC100_CLOCK
+       bool
+       help
+         Common clock support code for the S5PC1XX
+
+# platform specific device setup
+
+config S5PC100_SETUP_I2C0
+       bool
+       default y
+       help
+         Common setup code for i2c bus 0.
+
+         Note, currently since i2c0 is always compiled, this setup helper
+         is always compiled with it.
+
+config S5PC100_SETUP_I2C1
+       bool
+       help
+         Common setup code for i2c bus 1.
+endif
diff --git a/arch/arm/plat-s5pc1xx/Makefile b/arch/arm/plat-s5pc1xx/Makefile
new file mode 100644 (file)
index 0000000..f1ecb2c
--- /dev/null
@@ -0,0 +1,26 @@
+# arch/arm/plat-s5pc1xx/Makefile
+#
+# Copyright 2009 Samsung Electronics Co.
+#
+# Licensed under GPLv2
+
+obj-y                          :=
+obj-m                          :=
+obj-n                          := dummy.o
+obj-                           :=
+
+# Core files
+
+obj-y                          += dev-uart.o
+obj-y                          += cpu.o
+obj-y                          += irq.o
+
+# CPU support
+
+obj-$(CONFIG_CPU_S5PC100_INIT) += s5pc100-init.o
+obj-$(CONFIG_CPU_S5PC100_CLOCK)        += s5pc100-clock.o
+
+# Device setup
+
+obj-$(CONFIG_S5PC100_SETUP_I2C0) += setup-i2c0.o
+obj-$(CONFIG_S5PC100_SETUP_I2C1) += setup-i2c1.o