diff options
Diffstat (limited to 'arch/powerpc/kernel/setup-common.c')
-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 c607f3b9ca17..1d93e73a7003 100644 --- a/arch/powerpc/kernel/setup-common.c +++ b/arch/powerpc/kernel/setup-common.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/reboot.h> | 21 | #include <linux/reboot.h> |
22 | #include <linux/delay.h> | 22 | #include <linux/delay.h> |
23 | #include <linux/initrd.h> | 23 | #include <linux/initrd.h> |
24 | #include <linux/platform_device.h> | ||
24 | #include <linux/ide.h> | 25 | #include <linux/ide.h> |
25 | #include <linux/seq_file.h> | 26 | #include <linux/seq_file.h> |
26 | #include <linux/ioport.h> | 27 | #include <linux/ioport.h> |
@@ -462,6 +463,29 @@ static int __init early_xmon(char *p) | |||
462 | early_param("xmon", early_xmon); | 463 | early_param("xmon", early_xmon); |
463 | #endif | 464 | #endif |
464 | 465 | ||
466 | static __init int add_pcspkr(void) | ||
467 | { | ||
468 | struct device_node *np; | ||
469 | struct platform_device *pd; | ||
470 | int ret; | ||
471 | |||
472 | np = of_find_compatible_node(NULL, NULL, "pnpPNP,100"); | ||
473 | of_node_put(np); | ||
474 | if (!np) | ||
475 | return -ENODEV; | ||
476 | |||
477 | pd = platform_device_alloc("pcspkr", -1); | ||
478 | if (!pd) | ||
479 | return -ENOMEM; | ||
480 | |||
481 | ret = platform_device_add(pd); | ||
482 | if (ret) | ||
483 | platform_device_put(pd); | ||
484 | |||
485 | return ret; | ||
486 | } | ||
487 | device_initcall(add_pcspkr); | ||
488 | |||
465 | void probe_machine(void) | 489 | void probe_machine(void) |
466 | { | 490 | { |
467 | extern struct machdep_calls __machine_desc_start; | 491 | extern struct machdep_calls __machine_desc_start; |