aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel')
-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);