aboutsummaryrefslogtreecommitdiff
path: root/arch/powerpc/kernel/setup-common.c
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-04-12 17:52:52 -0400
committerJeff Garzik <jeff@garzik.org>2006-04-12 17:52:52 -0400
commit32ea89ecb25789b1b7db28146558587a42f3b372 (patch)
treec5b3b33523b353f2eab2d8dcd2b3f069826cdc48 /arch/powerpc/kernel/setup-common.c
parent58a7ce64426394a46e80cdc9440cc1e7c195e85d (diff)
parenta145410dccdb44f81d3b56763ef9b6f721f4e47c (diff)
Merge branch 'master'
Diffstat (limited to 'arch/powerpc/kernel/setup-common.c')
-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 c607f3b9ca1..1d93e73a700 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -21,6 +21,7 @@
#include <linux/reboot.h>
#include <linux/delay.h>
#include <linux/initrd.h>
+#include <linux/platform_device.h>
#include <linux/ide.h>
#include <linux/seq_file.h>
#include <linux/ioport.h>
@@ -462,6 +463,29 @@ static int __init early_xmon(char *p)
early_param("xmon", early_xmon);
#endif
+static __init int add_pcspkr(void)
+{
+ struct device_node *np;
+ struct platform_device *pd;
+ int ret;
+
+ np = of_find_compatible_node(NULL, NULL, "pnpPNP,100");
+ of_node_put(np);
+ if (!np)
+ return -ENODEV;
+
+ pd = platform_device_alloc("pcspkr", -1);
+ if (!pd)
+ return -ENOMEM;
+
+ ret = platform_device_add(pd);
+ if (ret)
+ platform_device_put(pd);
+
+ return ret;
+}
+device_initcall(add_pcspkr);
+
void probe_machine(void)
{
extern struct machdep_calls __machine_desc_start;