aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorBen Dooks <ben-linux@fluff.org>2008-10-21 09:06:50 -0400
committerBen Dooks <ben-linux@fluff.org>2008-12-15 16:51:04 -0500
commitd626aeedc96e21a048f1a300cd6360f3a7be10f2 (patch)
tree80db0444654d2c171e5c8b3c095d6015506d83a6 /arch
parentbeda30f6a9c5f8e1eebd195019a537057cc556fd (diff)
[ARM] S3C6410: Initial CPU support code
Initial support for the Samsung S3C6410 SoC. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/Makefile2
-rw-r--r--arch/arm/mach-s3c6410/Kconfig6
-rw-r--r--arch/arm/mach-s3c6410/Makefile16
-rw-r--r--arch/arm/mach-s3c6410/cpu.c81
4 files changed, 104 insertions, 1 deletions
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index fed7753ff7e2..3ce88d719ced 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -123,7 +123,7 @@ endif
123 machine-$(CONFIG_ARCH_S3C2410) := s3c2410 s3c2400 s3c2412 s3c2440 s3c2442 s3c2443 123 machine-$(CONFIG_ARCH_S3C2410) := s3c2410 s3c2400 s3c2412 s3c2440 s3c2442 s3c2443
124 machine-$(CONFIG_ARCH_S3C24A0) := s3c24a0 124 machine-$(CONFIG_ARCH_S3C24A0) := s3c24a0
125 plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx s3c 125 plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx s3c
126 machine-$(CONFIG_ARCH_S3C64XX) := s3c6400 126 machine-$(CONFIG_ARCH_S3C64XX) := s3c6400 s3c6410
127 plat-$(CONFIG_PLAT_S3C64XX) := s3c64xx s3c 127 plat-$(CONFIG_PLAT_S3C64XX) := s3c64xx s3c
128 machine-$(CONFIG_ARCH_LH7A40X) := lh7a40x 128 machine-$(CONFIG_ARCH_LH7A40X) := lh7a40x
129 machine-$(CONFIG_ARCH_VERSATILE) := versatile 129 machine-$(CONFIG_ARCH_VERSATILE) := versatile
diff --git a/arch/arm/mach-s3c6410/Kconfig b/arch/arm/mach-s3c6410/Kconfig
index 6ef4c94d622d..c473ba998b3d 100644
--- a/arch/arm/mach-s3c6410/Kconfig
+++ b/arch/arm/mach-s3c6410/Kconfig
@@ -6,3 +6,9 @@
6# Licensed under GPLv2 6# Licensed under GPLv2
7 7
8# Configuration options for the S3C6410 CPU 8# Configuration options for the S3C6410 CPU
9
10config CPU_S3C6410
11 bool
12 help
13 Enable S3C6410 CPU support
14
diff --git a/arch/arm/mach-s3c6410/Makefile b/arch/arm/mach-s3c6410/Makefile
new file mode 100644
index 000000000000..b35e04d8151e
--- /dev/null
+++ b/arch/arm/mach-s3c6410/Makefile
@@ -0,0 +1,16 @@
1# arch/arm/plat-s3c6410/Makefile
2#
3# Copyright 2008 Openmoko, Inc.
4# Copyright 2008 Simtec Electronics
5#
6# Licensed under GPLv2
7
8obj-y :=
9obj-m :=
10obj-n :=
11obj- :=
12
13# Core support for S3C6410 system
14
15obj-$(CONFIG_CPU_S3C6410) += cpu.o
16
diff --git a/arch/arm/mach-s3c6410/cpu.c b/arch/arm/mach-s3c6410/cpu.c
new file mode 100644
index 000000000000..fbca763fa486
--- /dev/null
+++ b/arch/arm/mach-s3c6410/cpu.c
@@ -0,0 +1,81 @@
1/* linux/arch/arm/mach-s3c6410/cpu.c
2 *
3 * Copyright 2008 Simtec Electronics
4 * Copyright 2008 Simtec Electronics
5 * Ben Dooks <ben@simtec.co.uk>
6 * http://armlinux.simtec.co.uk/
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/kernel.h>
14#include <linux/types.h>
15#include <linux/interrupt.h>
16#include <linux/list.h>
17#include <linux/timer.h>
18#include <linux/init.h>
19#include <linux/clk.h>
20#include <linux/io.h>
21#include <linux/sysdev.h>
22#include <linux/serial_core.h>
23#include <linux/platform_device.h>
24
25#include <asm/mach/arch.h>
26#include <asm/mach/map.h>
27#include <asm/mach/irq.h>
28
29#include <mach/hardware.h>
30#include <asm/irq.h>
31
32#include <plat/cpu-freq.h>
33#include <plat/regs-serial.h>
34
35#include <plat/cpu.h>
36#include <plat/devs.h>
37#include <plat/clock.h>
38#include <plat/s3c6410.h>
39
40/* Initial IO mappings */
41
42static struct map_desc s3c6410_iodesc[] __initdata = {
43};
44
45/* s3c6410_map_io
46 *
47 * register the standard cpu IO areas
48*/
49
50void __init s3c6410_map_io(void)
51{
52 iotable_init(s3c6410_iodesc, ARRAY_SIZE(s3c6410_iodesc));
53}
54
55void __init s3c6410_init_clocks(int xtal)
56{
57 printk(KERN_INFO "%s: initialising clocks\n", __func__);
58 s3c24xx_register_baseclocks(xtal);
59}
60
61struct sysdev_class s3c6410_sysclass = {
62 .name = "s3c6410-core",
63};
64
65static struct sys_device s3c6410_sysdev = {
66 .cls = &s3c6410_sysclass,
67};
68
69static int __init s3c6410_core_init(void)
70{
71 return sysdev_class_register(&s3c6410_sysclass);
72}
73
74core_initcall(s3c6410_core_init);
75
76int __init s3c6410_init(void)
77{
78 printk("S3C6410: Initialising architecture\n");
79
80 return sysdev_register(&s3c6410_sysdev);
81}