blob: 25225ec742e2546166e1e1cc2e92379175cee7d1 [file] [log] [blame]
/*
* u_audio.h -- interface to USB gadget "ALSA AUDIO" utilities
*
* Copyright (C) 2008 Bryan Wu <cooloney@kernel.org>
* Copyright (C) 2008 Analog Devices, Inc
* Copyright (c) 2013 Qualcomm Atheros, Inc.
*
* Enter bugs at http://blackfin.uclinux.org/
*
* Licensed under the GPL-2 or later.
*/
#ifndef __U_AUDIO_H
#define __U_AUDIO_H
#include <linux/device.h>
#include <linux/err.h>
#include <linux/usb/audio.h>
#include <linux/usb/composite.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include "gadget_chips.h"
#ifdef CONFIG_AOW_USB_SUPPORT
#define WLAN_AOW_ENABLED (1)
/* Note: Driver debugging not yet fully supported for 24-bit operation. */
#define USB_24BIT_AUDIO_ENABLED (1)
#endif /* CONFIG_AOW_USB_SUPPORT */
/*
* This represents the USB side of an audio card device, managed by a USB
* function which provides control and stream interfaces.
*/
struct gaudio_snd_dev {
struct gaudio *card;
struct file *filp;
struct snd_pcm_substream *substream;
int access;
int format;
int channels;
int rate;
};
struct gaudio {
struct usb_function func;
struct usb_gadget *gadget;
/* ALSA sound device interfaces */
struct gaudio_snd_dev control;
struct gaudio_snd_dev playback;
struct gaudio_snd_dev capture;
/* TODO */
};
int gaudio_setup(struct gaudio *card);
void gaudio_cleanup(struct gaudio *card);
#endif /* __U_AUDIO_H */