]> git.ipfire.org Git - people/ms/u-boot.git/blob - cmd/sound.c
mmc: omap_hsmmc: Add support to set IODELAY values
[people/ms/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 );