1 /* SPDX-License-Identifier: GPL-2.0 */
5 * Utility definitions for UAC2 function
7 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
8 * http://www.samsung.com
16 #include <linux/usb/composite.h>
17 #include "uac_common.h"
19 #define UAC2_DEF_PCHMASK 0x3
20 #define UAC2_DEF_PSRATE 48000
21 #define UAC2_DEF_PSSIZE 2
22 #define UAC2_DEF_PHSBINT 0
23 #define UAC2_DEF_CCHMASK 0x3
24 #define UAC2_DEF_CSRATE 64000
25 #define UAC2_DEF_CSSIZE 2
26 #define UAC2_DEF_CHSBINT 0
27 #define UAC2_DEF_CSYNC USB_ENDPOINT_SYNC_ASYNC
29 #define UAC2_DEF_MUTE_PRESENT 1
30 #define UAC2_DEF_VOLUME_PRESENT 1
31 #define UAC2_DEF_MIN_DB (-100*256) /* -100 dB */
32 #define UAC2_DEF_MAX_DB 0 /* 0 dB */
33 #define UAC2_DEF_RES_DB (1*256) /* 1 dB */
35 #define UAC2_DEF_REQ_NUM 2
36 #define UAC2_DEF_INT_REQ_NUM 10
38 #define UAC2_DEF_P_TERM_TYPE 0x301
39 /* UAC_OUTPUT_TERMINAL_SPEAKER */
40 #define UAC2_DEF_C_TERM_TYPE 0x201
41 /* UAC_INPUT_TERMINAL_MICROPHONE*/
44 struct usb_function_instance func_inst;
46 int p_srates[UAC_MAX_RATES];
50 int c_srates[UAC_MAX_RATES];
56 bool p_volume_present;
62 bool c_volume_present;
71 char function_name[USB_MAX_STRING_LEN];
72 char if_ctrl_name[USB_MAX_STRING_LEN];
73 char clksrc_in_name[USB_MAX_STRING_LEN];
74 char clksrc_out_name[USB_MAX_STRING_LEN];
76 char p_it_name[USB_MAX_STRING_LEN];
77 char p_it_ch_name[USB_MAX_STRING_LEN];
78 char p_ot_name[USB_MAX_STRING_LEN];
79 char p_fu_vol_name[USB_MAX_STRING_LEN];
81 char c_it_name[USB_MAX_STRING_LEN];
82 char c_it_ch_name[USB_MAX_STRING_LEN];
83 char c_ot_name[USB_MAX_STRING_LEN];
84 char c_fu_vol_name[USB_MAX_STRING_LEN];