1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * u_uac1.h - Utility definitions for UAC1 function
4 *
5 * Copyright (C) 2016 Ruslan Bilovol <ruslan.bilovol@gmail.com>
6 */
7
8#ifndef __U_UAC1_H
9#define __U_UAC1_H
10
11#include <linux/usb/composite.h>
12
13#define UAC1_OUT_EP_MAX_PACKET_SIZE	200
14#define UAC1_DEF_CCHMASK	0x3
15#define UAC1_DEF_CSRATE		48000
16#define UAC1_DEF_CSSIZE		2
17#define UAC1_DEF_PCHMASK	0x3
18#define UAC1_DEF_PSRATE		48000
19#define UAC1_DEF_PSSIZE		2
20#define UAC1_DEF_REQ_NUM	2
21
22
23struct f_uac1_opts {
24	struct usb_function_instance	func_inst;
25	int				c_chmask;
26	int				c_srate;
27	int				c_ssize;
28	int				p_chmask;
29	int				p_srate;
30	int				p_ssize;
31	int				req_number;
32	unsigned			bound:1;
33
34	struct mutex			lock;
35	int				refcnt;
36};
37
38#endif /* __U_UAC1_H */
39