aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorMichael Neuling <mikey@neuling.org>2006-03-14 00:11:50 -0500
committerDmitry Torokhov <dtor_core@ameritech.net>2006-03-14 00:11:50 -0500
commite5c6c8e457d16c7cbc12f849ad18d4d508950de2 (patch)
tree25a6342ef5fa5ae19f1fbaed8538290225dba38d /arch/powerpc
parentaaef685d5726768d25cbdc672a59c284d820b82e (diff)
Input: pcspkr - separate device and driver registration
The current pcspkr code combines the device and driver registration. This patch splits these, putting the device registration in the arch specific code. PowerPC and MIPS only have the pcspkr present sometimes. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/kernel/setup-common.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index be12041c0fc5..fc89d009d18d 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -18,6 +18,7 @@
18#include <linux/reboot.h> 18#include <linux/reboot.h>
19#include <linux/delay.h> 19#include <linux/delay.h>
20#include <linux/initrd.h> 20#include <linux/initrd.h>
21#include <linux/platform_device.h>
21#include <linux/ide.h> 22#include <linux/ide.h>
22#include <linux/seq_file.h> 23#include <linux/seq_file.h>
23#include <linux/ioport.h> 24#include <linux/ioport.h>
@@ -469,3 +470,26 @@ static int __init early_xmon(char *p)
469} 470}
470early_param("xmon", early_xmon); 471early_param("xmon", early_xmon);
471#endif 472#endif
473
474static __init int add_pcspkr(void)
475{
476 struct device_node *np;
477 struct platform_device *pd;
478 int ret;
479
480 np = of_find_compatible_node(NULL, NULL, "pnpPNP,100");
481 of_node_put(np);
482 if (!np)
483 return -ENODEV;
484
485 pd = platform_device_alloc("pcspkr", -1);
486 if (!pd)
487 return -ENOMEM;
488
489 ret = platform_device_add(pd);
490 if (ret)
491 platform_device_put(pd);
492
493 return ret;
494}
495device_initcall(add_pcspkr);