aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-s3c2410/cpu.h1
-rw-r--r--arch/arm/mach-s3c2410/s3c2410.c24
2 files changed, 24 insertions, 1 deletions
diff --git a/arch/arm/mach-s3c2410/cpu.h b/arch/arm/mach-s3c2410/cpu.h
index 40862899b2f1..21c62dc29bb2 100644
--- a/arch/arm/mach-s3c2410/cpu.h
+++ b/arch/arm/mach-s3c2410/cpu.h
@@ -73,5 +73,6 @@ extern struct sys_timer s3c24xx_timer;
73 73
74/* system device classes */ 74/* system device classes */
75 75
76extern struct sysdev_class s3c2410_sysclass;
76extern struct sysdev_class s3c2440_sysclass; 77extern struct sysdev_class s3c2440_sysclass;
77extern struct sysdev_class s3c2442_sysclass; 78extern struct sysdev_class s3c2442_sysclass;
diff --git a/arch/arm/mach-s3c2410/s3c2410.c b/arch/arm/mach-s3c2410/s3c2410.c
index 0852e87a79c4..cb252ddf3c77 100644
--- a/arch/arm/mach-s3c2410/s3c2410.c
+++ b/arch/arm/mach-s3c2410/s3c2410.c
@@ -27,6 +27,7 @@
27#include <linux/list.h> 27#include <linux/list.h>
28#include <linux/timer.h> 28#include <linux/timer.h>
29#include <linux/init.h> 29#include <linux/init.h>
30#include <linux/sysdev.h>
30#include <linux/platform_device.h> 31#include <linux/platform_device.h>
31 32
32#include <asm/mach/arch.h> 33#include <asm/mach/arch.h>
@@ -110,9 +111,30 @@ void __init s3c2410_init_clocks(int xtal)
110 s3c24xx_setup_clocks(xtal, fclk, hclk, pclk); 111 s3c24xx_setup_clocks(xtal, fclk, hclk, pclk);
111} 112}
112 113
114struct sysdev_class s3c2410_sysclass = {
115 set_kset_name("s3c2410-core"),
116};
117
118static struct sys_device s3c2410_sysdev = {
119 .cls = &s3c2410_sysclass,
120};
121
122/* need to register class before we actually register the device, and
123 * we also need to ensure that it has been initialised before any of the
124 * drivers even try to use it (even if not on an s3c2440 based system)
125 * as a driver which may support both 2410 and 2440 may try and use it.
126*/
127
128static int __init s3c2410_core_init(void)
129{
130 return sysdev_class_register(&s3c2410_sysclass);
131}
132
133core_initcall(s3c2410_core_init);
134
113int __init s3c2410_init(void) 135int __init s3c2410_init(void)
114{ 136{
115 printk("S3C2410: Initialising architecture\n"); 137 printk("S3C2410: Initialising architecture\n");
116 138
117 return 0; 139 return sysdev_register(&s3c2410_sysdev);
118} 140}