Skip to content

Commit

Permalink
[ARM] 3613/1: S3C2410: Add sysdev and sysclass
Browse files Browse the repository at this point in the history
Patch from Ben Dooks

The S3C2440 and S3C2442 both have their own sysdev
and sysclass for differentiating them from the
currently default S3C2410.

Add a sysdev for the S3C2410 as part of the work
to make the code be non-dependant on the S3C2410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Ben Dooks authored and Russell King committed Jun 22, 2006
1 parent 005b5e4 commit a341305
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
1 change: 1 addition & 0 deletions arch/arm/mach-s3c2410/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,5 +73,6 @@ extern struct sys_timer s3c24xx_timer;

/* system device classes */

extern struct sysdev_class s3c2410_sysclass;
extern struct sysdev_class s3c2440_sysclass;
extern struct sysdev_class s3c2442_sysclass;
24 changes: 23 additions & 1 deletion arch/arm/mach-s3c2410/s3c2410.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
#include <linux/list.h>
#include <linux/timer.h>
#include <linux/init.h>
#include <linux/sysdev.h>
#include <linux/platform_device.h>

#include <asm/mach/arch.h>
Expand Down Expand Up @@ -110,9 +111,30 @@ void __init s3c2410_init_clocks(int xtal)
s3c24xx_setup_clocks(xtal, fclk, hclk, pclk);
}

struct sysdev_class s3c2410_sysclass = {
set_kset_name("s3c2410-core"),
};

static struct sys_device s3c2410_sysdev = {
.cls = &s3c2410_sysclass,
};

/* need to register class before we actually register the device, and
* we also need to ensure that it has been initialised before any of the
* drivers even try to use it (even if not on an s3c2440 based system)
* as a driver which may support both 2410 and 2440 may try and use it.
*/

static int __init s3c2410_core_init(void)
{
return sysdev_class_register(&s3c2410_sysclass);
}

core_initcall(s3c2410_core_init);

int __init s3c2410_init(void)
{
printk("S3C2410: Initialising architecture\n");

return 0;
return sysdev_register(&s3c2410_sysdev);
}

0 comments on commit a341305

Please sign in to comment.