2020-03-28 16:41:15 +05:30
/* SPDX-License-Identifier: GPL-2.0 */
2014-07-22 19:58:30 +02:00
/*
* u_uac2 . h
*
* Utility definitions for UAC2 function
*
* Copyright ( c ) 2014 Samsung Electronics Co . , Ltd .
* http : //www.samsung.com
*
2018-12-13 14:24:57 +01:00
* Author : Andrzej Pietrasiewicz < andrzejtp2010 @ gmail . com >
2014-07-22 19:58:30 +02:00
*/
# ifndef U_UAC2_H
# define U_UAC2_H
# include <linux/usb/composite.h>
2022-01-21 16:53:03 +01:00
# include "uac_common.h"
2014-07-22 19:58:30 +02:00
2014-07-22 19:58:34 +02:00
# define UAC2_DEF_PCHMASK 0x3
# define UAC2_DEF_PSRATE 48000
# define UAC2_DEF_PSSIZE 2
2022-01-27 12:43:30 +01:00
# define UAC2_DEF_PHSBINT 0
2014-07-22 19:58:34 +02:00
# define UAC2_DEF_CCHMASK 0x3
# define UAC2_DEF_CSRATE 64000
# define UAC2_DEF_CSSIZE 2
2022-01-27 12:43:30 +01:00
# define UAC2_DEF_CHSBINT 0
2021-06-04 00:01:03 +02:00
# define UAC2_DEF_CSYNC USB_ENDPOINT_SYNC_ASYNC
2021-07-12 14:55:28 +02:00
# define UAC2_DEF_MUTE_PRESENT 1
# define UAC2_DEF_VOLUME_PRESENT 1
# define UAC2_DEF_MIN_DB (-100*256) /* -100 dB */
# define UAC2_DEF_MAX_DB 0 /* 0 dB */
# define UAC2_DEF_RES_DB (1*256) /* 1 dB */
2017-01-04 10:19:23 +08:00
# define UAC2_DEF_REQ_NUM 2
2021-07-12 14:55:28 +02:00
# define UAC2_DEF_INT_REQ_NUM 10
2014-07-22 19:58:34 +02:00
2014-07-22 19:58:30 +02:00
struct f_uac2_opts {
struct usb_function_instance func_inst ;
int p_chmask ;
2022-01-21 16:53:03 +01:00
int p_srates [ UAC_MAX_RATES ] ;
2014-07-22 19:58:30 +02:00
int p_ssize ;
2022-01-27 12:43:28 +01:00
u8 p_hs_bint ;
2014-07-22 19:58:30 +02:00
int c_chmask ;
2022-01-21 16:53:03 +01:00
int c_srates [ UAC_MAX_RATES ] ;
2014-07-22 19:58:30 +02:00
int c_ssize ;
2021-06-04 00:01:03 +02:00
int c_sync ;
2022-01-27 12:43:28 +01:00
u8 c_hs_bint ;
2021-07-12 14:55:28 +02:00
bool p_mute_present ;
bool p_volume_present ;
s16 p_volume_min ;
s16 p_volume_max ;
s16 p_volume_res ;
bool c_mute_present ;
bool c_volume_present ;
s16 c_volume_min ;
s16 c_volume_max ;
s16 c_volume_res ;
2017-01-04 10:19:23 +08:00
int req_number ;
2021-06-04 00:01:04 +02:00
int fb_max ;
2021-07-12 14:55:28 +02:00
bool bound ;
2014-07-22 19:58:35 +02:00
2022-01-22 19:24:41 +08:00
char function_name [ 32 ] ;
2014-07-22 19:58:35 +02:00
struct mutex lock ;
int refcnt ;
2014-07-22 19:58:30 +02:00
} ;
# endif