1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
/* SPDX-License-Identifier: GPL-2.0 */ /* * u_uac2.h * * Utility definitions for UAC2 function * * Copyright (c) 2014 Samsung Electronics Co., Ltd. * http://www.samsung.com * * Author: Andrzej Pietrasiewicz <andrzejtp2010@gmail.com> */ #ifndef U_UAC2_H #define U_UAC2_H #include <linux/usb/composite.h> #include "uac_common.h" #define UAC2_DEF_PCHMASK 0x3 #define UAC2_DEF_PSRATE 48000 #define UAC2_DEF_PSSIZE 2 #define UAC2_DEF_PHSBINT 0 #define UAC2_DEF_CCHMASK 0x3 #define UAC2_DEF_CSRATE 64000 #define UAC2_DEF_CSSIZE 2 #define UAC2_DEF_CHSBINT 0 #define UAC2_DEF_CSYNC USB_ENDPOINT_SYNC_ASYNC #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 */ #define UAC2_DEF_REQ_NUM 2 #define UAC2_DEF_INT_REQ_NUM 10 #define UAC2_DEF_P_TERM_TYPE 0x301 /* UAC_OUTPUT_TERMINAL_SPEAKER */ #define UAC2_DEF_C_TERM_TYPE 0x201 /* UAC_INPUT_TERMINAL_MICROPHONE*/ struct f_uac2_opts { struct usb_function_instance func_inst; int p_chmask; int p_srates[UAC_MAX_RATES]; int p_ssize; u8 p_hs_bint; int c_chmask; int c_srates[UAC_MAX_RATES]; int c_ssize; int c_sync; u8 c_hs_bint; 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; int req_number; int fb_max; bool bound; char function_name[USB_MAX_STRING_LEN]; char if_ctrl_name[USB_MAX_STRING_LEN]; char clksrc_in_name[USB_MAX_STRING_LEN]; char clksrc_out_name[USB_MAX_STRING_LEN]; char p_it_name[USB_MAX_STRING_LEN]; char p_it_ch_name[USB_MAX_STRING_LEN]; char p_ot_name[USB_MAX_STRING_LEN]; char p_fu_vol_name[USB_MAX_STRING_LEN]; char c_it_name[USB_MAX_STRING_LEN]; char c_it_ch_name[USB_MAX_STRING_LEN]; char c_ot_name[USB_MAX_STRING_LEN]; char c_fu_vol_name[USB_MAX_STRING_LEN]; s16 p_terminal_type; s16 c_terminal_type; struct mutex lock; int refcnt; }; #endif