u_uac2.h 2.1 KB

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