Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / usb / gadget / u_audio.h
1 /*
2  * u_audio.h -- interface to USB gadget "ALSA AUDIO" utilities
3  *
4  * Copyright (C) 2008 Bryan Wu <cooloney@kernel.org>
5  * Copyright (C) 2008 Analog Devices, Inc
6  *
7  * Enter bugs at http://blackfin.uclinux.org/
8  *
9  * Licensed under the GPL-2 or later.
10  */
11
12 #ifndef __U_AUDIO_H
13 #define __U_AUDIO_H
14
15 #include <linux/device.h>
16 #include <linux/err.h>
17 #include <linux/usb/audio.h>
18 #include <linux/usb/composite.h>
19
20 #include <sound/core.h>
21 #include <sound/pcm.h>
22 #include <sound/pcm_params.h>
23
24 #include "gadget_chips.h"
25
26 /*
27  * This represents the USB side of an audio card device, managed by a USB
28  * function which provides control and stream interfaces.
29  */
30
31 struct gaudio_snd_dev {
32         struct gaudio                   *card;
33         struct file                     *filp;
34         struct snd_pcm_substream        *substream;
35         int                             access;
36         int                             format;
37         int                             channels;
38         int                             rate;
39 };
40
41 struct gaudio {
42         struct usb_function             func;
43         struct usb_gadget               *gadget;
44
45         /* ALSA sound device interfaces */
46         struct gaudio_snd_dev           control;
47         struct gaudio_snd_dev           playback;
48         struct gaudio_snd_dev           capture;
49
50         /* TODO */
51 };
52
53 int gaudio_setup(struct gaudio *card);
54 void gaudio_cleanup(void);
55
56 #endif /* __U_AUDIO_H */