blob: 32e18d865936ba7a0fcd4d6f6689973bdbe2d576 [file] [log] [blame]
Bharath Ramachandramurthy4d99b502012-05-04 18:52:52 -07001/* Copyright (c) 2012, Code Aurora Forum. All rights reserved.
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 */
12#ifndef _MSM_PCM_ROUTING_H
13#define _MSM_PCM_ROUTING_H
14#include <sound/apr_audio-v2.h>
15
Phani Kumar Uppalapati4fbf4c42012-05-21 20:35:45 -070016#define LPASS_BE_PRI_I2S_RX "PRIMARY_I2S_RX"
17#define LPASS_BE_PRI_I2S_TX "PRIMARY_I2S_TX"
18#define LPASS_BE_SLIMBUS_0_RX "SLIMBUS_0_RX"
19#define LPASS_BE_SLIMBUS_0_TX "SLIMBUS_0_TX"
20#define LPASS_BE_HDMI "HDMI"
21#define LPASS_BE_INT_BT_SCO_RX "INT_BT_SCO_RX"
22#define LPASS_BE_INT_BT_SCO_TX "INT_BT_SCO_TX"
23#define LPASS_BE_INT_FM_RX "INT_FM_RX"
24#define LPASS_BE_INT_FM_TX "INT_FM_TX"
25#define LPASS_BE_AFE_PCM_RX "RT_PROXY_DAI_001_RX"
26#define LPASS_BE_AFE_PCM_TX "RT_PROXY_DAI_002_TX"
27#define LPASS_BE_AUXPCM_RX "AUX_PCM_RX"
28#define LPASS_BE_AUXPCM_TX "AUX_PCM_TX"
29#define LPASS_BE_VOICE_PLAYBACK_TX "VOICE_PLAYBACK_TX"
30#define LPASS_BE_INCALL_RECORD_RX "INCALL_RECORD_TX"
31#define LPASS_BE_INCALL_RECORD_TX "INCALL_RECORD_RX"
32#define LPASS_BE_SEC_I2S_RX "SECONDARY_I2S_RX"
Bharath Ramachandramurthy4d99b502012-05-04 18:52:52 -070033
Phani Kumar Uppalapati4fbf4c42012-05-21 20:35:45 -070034#define LPASS_BE_MI2S_RX "MI2S_RX"
35#define LPASS_BE_MI2S_TX "MI2S_TX"
36#define LPASS_BE_STUB_RX "STUB_RX"
37#define LPASS_BE_STUB_TX "STUB_TX"
38#define LPASS_BE_SLIMBUS_1_RX "SLIMBUS_1_RX"
39#define LPASS_BE_SLIMBUS_1_TX "SLIMBUS_1_TX"
40#define LPASS_BE_STUB_1_TX "STUB_1_TX"
41#define LPASS_BE_SLIMBUS_3_RX "SLIMBUS_3_RX"
42#define LPASS_BE_SLIMBUS_4_RX "SLIMBUS_4_RX"
43#define LPASS_BE_SLIMBUS_4_TX "SLIMBUS_4_TX"
Bharath Ramachandramurthy4d99b502012-05-04 18:52:52 -070044
45/* For multimedia front-ends, asm session is allocated dynamically.
46 * Hence, asm session/multimedia front-end mapping has to be maintained.
47 * Due to this reason, additional multimedia front-end must be placed before
48 * non-multimedia front-ends.
49 */
50
51enum {
52 MSM_FRONTEND_DAI_MULTIMEDIA1 = 0,
53 MSM_FRONTEND_DAI_MULTIMEDIA2,
54 MSM_FRONTEND_DAI_MULTIMEDIA3,
55 MSM_FRONTEND_DAI_MULTIMEDIA4,
56 MSM_FRONTEND_DAI_CS_VOICE,
57 MSM_FRONTEND_DAI_VOIP,
58 MSM_FRONTEND_DAI_AFE_RX,
59 MSM_FRONTEND_DAI_AFE_TX,
60 MSM_FRONTEND_DAI_VOICE_STUB,
Phani Kumar Uppalapati4fbf4c42012-05-21 20:35:45 -070061 MSM_FRONTEND_DAI_VOLTE,
Bharath Ramachandramurthy4d99b502012-05-04 18:52:52 -070062 MSM_FRONTEND_DAI_MAX,
63};
64
65#define MSM_FRONTEND_DAI_MM_SIZE (MSM_FRONTEND_DAI_MULTIMEDIA4 + 1)
66#define MSM_FRONTEND_DAI_MM_MAX_ID MSM_FRONTEND_DAI_MULTIMEDIA4
67
68enum {
69 MSM_BACKEND_DAI_PRI_I2S_RX = 0,
70 MSM_BACKEND_DAI_PRI_I2S_TX,
71 MSM_BACKEND_DAI_SLIMBUS_0_RX,
72 MSM_BACKEND_DAI_SLIMBUS_0_TX,
73 MSM_BACKEND_DAI_HDMI_RX,
74 MSM_BACKEND_DAI_INT_BT_SCO_RX,
75 MSM_BACKEND_DAI_INT_BT_SCO_TX,
76 MSM_BACKEND_DAI_INT_FM_RX,
77 MSM_BACKEND_DAI_INT_FM_TX,
78 MSM_BACKEND_DAI_AFE_PCM_RX,
79 MSM_BACKEND_DAI_AFE_PCM_TX,
80 MSM_BACKEND_DAI_AUXPCM_RX,
81 MSM_BACKEND_DAI_AUXPCM_TX,
82 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
83 MSM_BACKEND_DAI_INCALL_RECORD_RX,
84 MSM_BACKEND_DAI_INCALL_RECORD_TX,
85 MSM_BACKEND_DAI_MI2S_RX,
Phani Kumar Uppalapati4fbf4c42012-05-21 20:35:45 -070086 MSM_BACKEND_DAI_MI2S_TX,
Bharath Ramachandramurthy4d99b502012-05-04 18:52:52 -070087 MSM_BACKEND_DAI_SEC_I2S_RX,
88 MSM_BACKEND_DAI_SLIMBUS_1_RX,
89 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Phani Kumar Uppalapati4fbf4c42012-05-21 20:35:45 -070090 MSM_BACKEND_DAI_SLIMBUS_4_RX,
91 MSM_BACKEND_DAI_SLIMBUS_4_TX,
92 MSM_BACKEND_DAI_SLIMBUS_3_RX,
93 MSM_BACKEND_DAI_EXTPROC_RX,
94 MSM_BACKEND_DAI_EXTPROC_TX,
95 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Bharath Ramachandramurthy4d99b502012-05-04 18:52:52 -070096 MSM_BACKEND_DAI_MAX,
97};
98
99/* dai_id: front-end ID,
100 * dspst_id: DSP audio stream ID
101 * stream_type: playback or capture
102 */
103void msm_pcm_routing_reg_phy_stream(int fedai_id, int dspst_id,
104 int stream_type);
Phani Kumar Uppalapati4fbf4c42012-05-21 20:35:45 -0700105void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
106 int stream_type);
107
Bharath Ramachandramurthy4d99b502012-05-04 18:52:52 -0700108void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type);
109
110int lpa_set_volume(unsigned volume);
111
112int msm_routing_check_backend_enabled(int fedai_id);
113
114int multi_ch_pcm_set_volume(unsigned volume);
115
116int compressed_set_volume(unsigned volume);
117
118#endif /*_MSM_PCM_H*/