efi_loader: Expose ascending efi memory map
[platform/kernel/u-boot.git] / cmd / sound.c
1 /*
2  * Copyright (C) 2012 Samsung Electronics
3  * Rajeshwari Shinde <rajeshwari.s@samsung.com>
4  *
5  * SPDX-License-Identifier:     GPL-2.0+
6  */
7
8 #include <common.h>
9 #include <command.h>
10 #include <fdtdec.h>
11 #include <sound.h>
12
13 DECLARE_GLOBAL_DATA_PTR;
14
15 /* Initilaise sound subsystem */
16 static int do_init(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
17 {
18         int ret;
19
20         ret = sound_init(gd->fdt_blob);
21         if (ret) {
22                 printf("Initialise Audio driver failed\n");
23                 return CMD_RET_FAILURE;
24         }
25
26         return 0;
27 }
28
29 /* play sound from buffer */
30 static int do_play(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
31 {
32         int ret = 0;
33         int msec = 1000;
34         int freq = 400;
35
36         if (argc > 1)
37                 msec = simple_strtoul(argv[1], NULL, 10);
38         if (argc > 2)
39                 freq = simple_strtoul(argv[2], NULL, 10);
40
41         ret = sound_play(msec, freq);
42         if (ret) {
43                 printf("play failed");
44                 return CMD_RET_FAILURE;
45         }
46
47         return 0;
48 }
49
50 static cmd_tbl_t cmd_sound_sub[] = {
51         U_BOOT_CMD_MKENT(init, 0, 1, do_init, "", ""),
52         U_BOOT_CMD_MKENT(play, 2, 1, do_play, "", ""),
53 };
54
55 /* process sound command */
56 static int do_sound(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
57 {
58         cmd_tbl_t *c;
59
60         if (argc < 1)
61                 return CMD_RET_USAGE;
62
63         /* Strip off leading 'sound' command argument */
64         argc--;
65         argv++;
66
67         c = find_cmd_tbl(argv[0], &cmd_sound_sub[0], ARRAY_SIZE(cmd_sound_sub));
68
69         if (c)
70                 return c->cmd(cmdtp, flag, argc, argv);
71         else
72                 return CMD_RET_USAGE;
73 }
74
75 U_BOOT_CMD(
76         sound, 4, 1, do_sound,
77         "sound sub-system",
78         "init - initialise the sound driver\n"
79         "sound play [len] [freq] - play a sound for len ms at freq hz\n"
80 );