diff options
author | Ben Dooks <ben-linux@fluff.org> | 2008-12-12 00:24:31 +0000 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2009-05-07 11:04:56 +0100 |
commit | 1deb507dc7612e6c81b7953e827d1c859c1d8c0b (patch) | |
tree | 7ef632398ff6b1391a21b2892e82d0cce52e5f23 /arch | |
parent | 0abfe9aab1867abd96b44a425ad27ce021891e4f (diff) | |
download | talos-op-linux-1deb507dc7612e6c81b7953e827d1c859c1d8c0b.tar.gz talos-op-linux-1deb507dc7612e6c81b7953e827d1c859c1d8c0b.zip |
[ARM] S3C64XX: Add generic s3c64xx sys device.
Add an s3c64xx_sysclass and device for items that currently
want to bind to any s3c64xx processor. The first user of this
will be parts of the s3c64xx suspend support which need to
save device state over suspend/resume.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/plat-s3c/include/plat/cpu.h | 2 | ||||
-rw-r--r-- | arch/arm/plat-s3c64xx/cpu.c | 19 |
2 files changed, 21 insertions, 0 deletions
diff --git a/arch/arm/plat-s3c/include/plat/cpu.h b/arch/arm/plat-s3c/include/plat/cpu.h index f878cf6673ce..be541cbba070 100644 --- a/arch/arm/plat-s3c/include/plat/cpu.h +++ b/arch/arm/plat-s3c/include/plat/cpu.h @@ -70,3 +70,5 @@ extern struct sysdev_class s3c2440_sysclass; extern struct sysdev_class s3c2442_sysclass; extern struct sysdev_class s3c2443_sysclass; extern struct sysdev_class s3c6410_sysclass; +extern struct sysdev_class s3c64xx_sysclass; + diff --git a/arch/arm/plat-s3c64xx/cpu.c b/arch/arm/plat-s3c64xx/cpu.c index 91f49a3a665d..f9fdaab32ab4 100644 --- a/arch/arm/plat-s3c64xx/cpu.c +++ b/arch/arm/plat-s3c64xx/cpu.c @@ -16,6 +16,7 @@ #include <linux/module.h> #include <linux/interrupt.h> #include <linux/ioport.h> +#include <linux/sysdev.h> #include <linux/serial_core.h> #include <linux/platform_device.h> #include <linux/io.h> @@ -104,6 +105,16 @@ static struct map_desc s3c_iodesc[] __initdata = { }, }; + +struct sysdev_class s3c64xx_sysclass = { + .name = "s3c64xx-core", +}; + +static struct sys_device s3c64xx_sysdev = { + .cls = &s3c64xx_sysclass, +}; + + /* read cpu identification code */ void __init s3c64xx_init_io(struct map_desc *mach_desc, int size) @@ -117,3 +128,11 @@ void __init s3c64xx_init_io(struct map_desc *mach_desc, int size) idcode = __raw_readl(S3C_VA_SYS + 0x118); s3c_init_cpu(idcode, cpu_ids, ARRAY_SIZE(cpu_ids)); } + +static __init int s3c64xx_sysdev_init(void) +{ + sysdev_class_register(&s3c64xx_sysclass); + return sysdev_register(&s3c64xx_sysdev); +} + +core_initcall(s3c64xx_sysdev_init); |