diff options
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r-- | arch/powerpc/kernel/setup-common.c | 24 |
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 | } |
470 | early_param("xmon", early_xmon); | 471 | early_param("xmon", early_xmon); |
471 | #endif | 472 | #endif |
473 | |||
474 | static __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 | } | ||
495 | device_initcall(add_pcspkr); | ||