Other Parts Discussed in Thread: WL1281
Our software is based on 4AJ2.1 release and we are using omap4430 and wilink7 WL1281. Our device will behave as HFP HF role after it establishes connection with the mobile phone. Our speaker using I2S is connected to MM_EXT_OUT and microphone connected to DMIC0. They all work fine.
All BT up/down link work fine too(http://e2e.ti.com/support/wireless_connectivity/f/307/p/349528/1230646.aspx#1230646).
During a phone call, I need:
1. Capture BT-VX-UL back end, and send to MM_EXT_OUT(where is our speak connected using I2S master interface) back end.
2. Meanwhile, I need to capture DMIC0 back end, and then send to the wilink, which is BT-VX-DL.
From the http://www.omappedia.com/wiki/Audio_Drive_Arch, I notice MM_EXT_OUT and BT-VX-DL come from the same source. I'm wondering the possibility to do the two audio routing above in parallel.
I did some digging and know I need to modify audio_hw.c to route audio properly. I'm kind of new to the tinyalsa. Do you have any guide to know how to direct routing DMIC0 data to BT_VX_DL port and routing BT_VX_UL to MM_EXT_OUT?
For instance, in the tinymix:
Number of controls: 54
ctl type num name value
0 ENUM 1 DL1 Equalizer 4Khz LPF 0dB
1 ENUM 1 Sidetone Equalizer Flat response
2 ENUM 1 AMIC Equalizer High-pass 0dB
3 ENUM 1 DMIC Equalizer High-pass 0dB
4 INT 1 DL1 Media Playback Volume 115
5 INT 1 DL1 Tones Playback Volume 115
6 INT 1 DL1 Voice Playback Volume 145
7 INT 1 DL1 Capture Playback Volume 0
8 INT 1 VXREC Media Volume 0
9 INT 1 VXREC Tones Volume 0
10 INT 1 VXREC Voice DL Volume 0
11 INT 1 VXREC Voice UL Volume 0
12 INT 1 AUDUL Media Volume 0
13 INT 1 AUDUL Tones Volume 0
14 INT 1 AUDUL Voice UL Volume 120
15 INT 1 AUDUL Voice DL Volume 0
16 INT 1 SDT UL Volume 120
17 INT 1 SDT DL Volume 130
18 INT 2 DMIC1 UL Volume 140 140
19 INT 2 DMIC2 UL Volume 120 120
20 INT 2 DMIC3 UL Volume 120 120
21 INT 2 AMIC UL Volume 120 120
22 INT 2 BT UL Volume 120 120
23 BOOL 1 DL1 Mono Mixer On
24 BOOL 1 AUDUL Mono Mixer On
25 BOOL 1 DL1 MM_EXT Switch On
26 BOOL 1 DL1 BT_VX Switch On
27 BOOL 1 DL1 PDM_DL2 Switch Off
28 BOOL 1 DL1 PDM Switch Off
29 BOOL 1 Sidetone Mixer Capture On
30 BOOL 1 Sidetone Mixer Playback On
31 BOOL 1 Capture Mixer Tones Off
32 BOOL 1 Capture Mixer Voice Playback Off
33 BOOL 1 Capture Mixer Voice Capture Off
34 BOOL 1 Capture Mixer Media Playback Off
35 BOOL 1 Voice Capture Mixer Tones Playback Off
36 BOOL 1 Voice Capture Mixer Media Playback Off
37 BOOL 1 Voice Capture Mixer Capture On
38 BOOL 1 DL1 Mixer Tones On
39 BOOL 1 DL1 Mixer Voice On
40 BOOL 1 DL1 Mixer Capture Off
41 BOOL 1 DL1 Mixer Multimedia Off
42 ENUM 1 MUX_VX1 BT Right
43 ENUM 1 MUX_VX0 BT Left
44 ENUM 1 MUX_UL11 None
45 ENUM 1 MUX_UL10 DMic0L
46 ENUM 1 MUX_UL07 None
47 ENUM 1 MUX_UL06 None
48 ENUM 1 MUX_UL05 None
49 ENUM 1 MUX_UL04 None
50 ENUM 1 MUX_UL03 None
51 ENUM 1 MUX_UL02 None
52 ENUM 1 MUX_UL01 None
53 ENUM 1 MUX_UL00 None
For the loopback test,how can I send MUX_VX0/MUX_VX1 data to the BT_VX_DL port by enabling "Sidestone MIxer Capture" path? Should I open any frontend port from audio_hw.c to active such path, or have to modify kernel code?
Thanks!