blob: 423ff5fa62e27ad002c5b0708400d1c776997905 [file] [log] [blame]
Kuirong Wang9bbf6132012-01-10 18:28:49 -08001/* Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -07002 *
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.h>
15
16#define LPASS_BE_PRI_I2S_RX "(Backend) PRIMARY_I2S_RX"
17#define LPASS_BE_PRI_I2S_TX "(Backend) PRIMARY_I2S_TX"
18#define LPASS_BE_SLIMBUS_0_RX "(Backend) SLIMBUS_0_RX"
19#define LPASS_BE_SLIMBUS_0_TX "(Backend) SLIMBUS_0_TX"
20#define LPASS_BE_HDMI "(Backend) HDMI"
21#define LPASS_BE_INT_BT_SCO_RX "(Backend) INT_BT_SCO_RX"
22#define LPASS_BE_INT_BT_SCO_TX "(Backend) INT_BT_SCO_TX"
23#define LPASS_BE_INT_FM_RX "(Backend) INT_FM_RX"
24#define LPASS_BE_INT_FM_TX "(Backend) INT_FM_TX"
Laxminath Kasam32657ec2011-08-01 19:26:57 +053025#define LPASS_BE_AFE_PCM_RX "(Backend) RT_PROXY_DAI_001_RX"
26#define LPASS_BE_AFE_PCM_TX "(Backend) RT_PROXY_DAI_002_TX"
Bhalchandra Gajare0e795c42011-08-15 18:10:30 -070027#define LPASS_BE_AUXPCM_RX "(Backend) AUX_PCM_RX"
28#define LPASS_BE_AUXPCM_TX "(Backend) AUX_PCM_TX"
Helen Zeng0705a5f2011-10-14 15:29:52 -070029#define LPASS_BE_VOICE_PLAYBACK_TX "(Backend) VOICE_PLAYBACK_TX"
Helen Zenge3d716a2011-10-14 16:32:16 -070030#define LPASS_BE_INCALL_RECORD_RX "(Backend) INCALL_RECORD_TX"
31#define LPASS_BE_INCALL_RECORD_TX "(Backend) INCALL_RECORD_RX"
Kuirong Wang9bbf6132012-01-10 18:28:49 -080032#define LPASS_BE_SEC_I2S_RX "(Backend) SECONDARY_I2S_RX"
Helen Zenge3d716a2011-10-14 16:32:16 -070033
Kuirong Wang274f21a2011-12-15 21:29:08 -080034#define LPASS_BE_MI2S_RX "(Backend) MI2S_RX"
Neema Shetty2ced1ba2012-02-16 12:10:05 -080035#define LPASS_BE_STUB_RX "(Backend) STUB_RX"
36#define LPASS_BE_STUB_TX "(Backend) STUB_TX"
Neema Shetty3c9d2862012-03-11 01:25:32 -080037#define LPASS_BE_SLIMBUS_1_RX "(Backend) SLIMBUS_1_RX"
38#define LPASS_BE_SLIMBUS_1_TX "(Backend) SLIMBUS_1_TX"
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070039
Patrick Lai770ca3e42011-12-12 13:44:54 -080040/* For multimedia front-ends, asm session is allocated dynamically.
41 * Hence, asm session/multimedia front-end mapping has to be maintained.
42 * Due to this reason, additional multimedia front-end must be placed before
43 * non-multimedia front-ends.
44 */
45
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070046enum {
47 MSM_FRONTEND_DAI_MULTIMEDIA1 = 0,
48 MSM_FRONTEND_DAI_MULTIMEDIA2,
Patrick Laicf999112011-08-23 11:27:20 -070049 MSM_FRONTEND_DAI_MULTIMEDIA3,
Asish Bhattacharya305d1752011-11-01 20:38:26 +053050 MSM_FRONTEND_DAI_MULTIMEDIA4,
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070051 MSM_FRONTEND_DAI_CS_VOICE,
52 MSM_FRONTEND_DAI_VOIP,
Laxminath Kasam32657ec2011-08-01 19:26:57 +053053 MSM_FRONTEND_DAI_AFE_RX,
54 MSM_FRONTEND_DAI_AFE_TX,
Neema Shetty3c9d2862012-03-11 01:25:32 -080055 MSM_FRONTEND_DAI_VOICE_STUB,
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070056 MSM_FRONTEND_DAI_MAX,
57};
58
Patrick Lai770ca3e42011-12-12 13:44:54 -080059#define MSM_FRONTEND_DAI_MM_SIZE (MSM_FRONTEND_DAI_MULTIMEDIA4 + 1)
60#define MSM_FRONTEND_DAI_MM_MAX_ID MSM_FRONTEND_DAI_MULTIMEDIA4
61
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070062enum {
63 MSM_BACKEND_DAI_PRI_I2S_RX = 0,
64 MSM_BACKEND_DAI_PRI_I2S_TX,
65 MSM_BACKEND_DAI_SLIMBUS_0_RX,
66 MSM_BACKEND_DAI_SLIMBUS_0_TX,
67 MSM_BACKEND_DAI_HDMI_RX,
68 MSM_BACKEND_DAI_INT_BT_SCO_RX,
69 MSM_BACKEND_DAI_INT_BT_SCO_TX,
70 MSM_BACKEND_DAI_INT_FM_RX,
71 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam32657ec2011-08-01 19:26:57 +053072 MSM_BACKEND_DAI_AFE_PCM_RX,
73 MSM_BACKEND_DAI_AFE_PCM_TX,
Bhalchandra Gajare0e795c42011-08-15 18:10:30 -070074 MSM_BACKEND_DAI_AUXPCM_RX,
75 MSM_BACKEND_DAI_AUXPCM_TX,
Helen Zeng0705a5f2011-10-14 15:29:52 -070076 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Helen Zenge3d716a2011-10-14 16:32:16 -070077 MSM_BACKEND_DAI_INCALL_RECORD_RX,
78 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Kuirong Wang274f21a2011-12-15 21:29:08 -080079 MSM_BACKEND_DAI_MI2S_RX,
Kuirong Wang9bbf6132012-01-10 18:28:49 -080080 MSM_BACKEND_DAI_SEC_I2S_RX,
Neema Shetty3c9d2862012-03-11 01:25:32 -080081 MSM_BACKEND_DAI_SLIMBUS_1_RX,
82 MSM_BACKEND_DAI_SLIMBUS_1_TX,
83 MSM_BACKEND_DAI_INVALID,
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070084 MSM_BACKEND_DAI_MAX,
85};
86
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070087/* dai_id: front-end ID,
88 * dspst_id: DSP audio stream ID
89 * stream_type: playback or capture
90 */
91void msm_pcm_routing_reg_phy_stream(int fedai_id, int dspst_id,
92 int stream_type);
93void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type);
94
Asish Bhattacharya0ec76182011-07-29 16:58:11 +053095int lpa_set_volume(unsigned volume);
Tejas Shikhare6fd0e002012-01-31 21:17:29 -080096
97int msm_routing_check_backend_enabled(int fedai_id);
Bryan Huntsman3f2bc4d2011-08-16 17:27:22 -070098#endif /*_MSM_PCM_H*/