/* arch/arm/mach-msm/qdsp6/q6audio_devices.h
 *
 * Copyright (C) 2009 Google, Inc.
 * Author: Brian Swetland <swetland@google.com>
 *
 * This software is licensed under the terms of the GNU General Public
 * License version 2, as published by the Free Software Foundation, and
 * may be copied, distributed, and modified under those terms.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 */

struct q6_device_info {
	uint32_t id;
	uint32_t cad_id;
	uint32_t path;
	uint32_t rate;
	uint8_t dir;
	uint8_t codec;
	uint8_t hw;
};

#define Q6_ICODEC_RX		0
#define Q6_ICODEC_TX		1
#define Q6_ECODEC_RX		2
#define Q6_ECODEC_TX		3
#define Q6_SDAC_RX		6
#define Q6_SDAC_TX		7
#define Q6_CODEC_NONE		255

#define Q6_TX		1
#define Q6_RX		2
#define Q6_TX_RX	3

#define Q6_HW_HANDSET	0
#define Q6_HW_HEADSET	1
#define Q6_HW_SPEAKER	2
#define Q6_HW_TTY	3
#define Q6_HW_BT_SCO	4
#define Q6_HW_BT_A2DP	5

#define Q6_HW_COUNT	6

#define CAD_HW_DEVICE_ID_HANDSET_MIC		0x01
#define CAD_HW_DEVICE_ID_HANDSET_SPKR		0x02
#define CAD_HW_DEVICE_ID_HEADSET_MIC		0x03
#define CAD_HW_DEVICE_ID_HEADSET_SPKR_MONO	0x04
#define CAD_HW_DEVICE_ID_HEADSET_SPKR_STEREO	0x05
#define CAD_HW_DEVICE_ID_SPKR_PHONE_MIC		0x06
#define CAD_HW_DEVICE_ID_SPKR_PHONE_MONO	0x07
#define CAD_HW_DEVICE_ID_SPKR_PHONE_STEREO	0x08
#define CAD_HW_DEVICE_ID_BT_SCO_MIC		0x09
#define CAD_HW_DEVICE_ID_BT_SCO_SPKR		0x0A
#define CAD_HW_DEVICE_ID_BT_A2DP_SPKR		0x0B
#define CAD_HW_DEVICE_ID_TTY_HEADSET_MIC	0x0C
#define CAD_HW_DEVICE_ID_TTY_HEADSET_SPKR	0x0D

#define CAD_HW_DEVICE_ID_DEFAULT_TX		0x0E
#define CAD_HW_DEVICE_ID_DEFAULT_RX		0x0F


#define CAD_HW_DEVICE_ID_SPKR_PHONE_DUAL_MIC_BROADSIDE      0x2B
#define CAD_HW_DEVICE_ID_SPKR_PHONE_DUAL_MIC_ENDFIRE        0x2D
#define CAD_HW_DEVICE_ID_HANDSET_DUAL_MIC_BROADSIDE         0x2C
#define CAD_HW_DEVICE_ID_HANDSET_DUAL_MIC_ENDFIRE           0x2E

/* Logical Device to indicate A2DP routing */
#define CAD_HW_DEVICE_ID_BT_A2DP_TX             0x10
#define CAD_HW_DEVICE_ID_HEADSET_MONO_PLUS_SPKR_MONO_RX		0x11
#define CAD_HW_DEVICE_ID_HEADSET_MONO_PLUS_SPKR_STEREO_RX	0x12
#define CAD_HW_DEVICE_ID_HEADSET_STEREO_PLUS_SPKR_MONO_RX	0x13
#define CAD_HW_DEVICE_ID_HEADSET_STEREO_PLUS_SPKR_STEREO_RX	0x14

#define CAD_HW_DEVICE_ID_VOICE			0x15

#define CAD_HW_DEVICE_ID_I2S_RX                 0x20
#define CAD_HW_DEVICE_ID_I2S_TX                 0x21

/* AUXPGA */
#define CAD_HW_DEVICE_ID_HEADSET_SPKR_STEREO_LB 0x22
#define CAD_HW_DEVICE_ID_HEADSET_SPKR_MONO_LB   0x23
#define CAD_HW_DEVICE_ID_SPEAKER_SPKR_STEREO_LB 0x24
#define CAD_HW_DEVICE_ID_SPEAKER_SPKR_MONO_LB   0x25

#define CAD_HW_DEVICE_ID_NULL_RX		0x2A

#define CAD_HW_DEVICE_ID_MAX_NUM                0x2F

#define CAD_HW_DEVICE_ID_INVALID                0xFF

#define CAD_RX_DEVICE  0x00
#define CAD_TX_DEVICE  0x01

static struct q6_device_info q6_audio_devices[] = {
	{
		.id	= ADSP_AUDIO_DEVICE_ID_HANDSET_SPKR,
		.cad_id	= CAD_HW_DEVICE_ID_HANDSET_SPKR,
		.path	= ADIE_PATH_HANDSET_RX,
		.rate   = 48000,
		.dir	= Q6_RX,
		.codec	= Q6_ICODEC_RX,
		.hw	= Q6_HW_HANDSET,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_HEADSET_SPKR_MONO,
		.cad_id	= CAD_HW_DEVICE_ID_HEADSET_SPKR_MONO,
		.path	= ADIE_PATH_HEADSET_MONO_RX,
		.rate   = 48000,
		.dir	= Q6_RX,
		.codec	= Q6_ICODEC_RX,
		.hw	= Q6_HW_HEADSET,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_HEADSET_SPKR_STEREO,
		.cad_id	= CAD_HW_DEVICE_ID_HEADSET_SPKR_STEREO,
		.path	= ADIE_PATH_HEADSET_STEREO_RX,
		.rate   = 48000,
		.dir	= Q6_RX,
		.codec	= Q6_ICODEC_RX,
		.hw	= Q6_HW_HEADSET,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_SPKR_PHONE_MONO,
		.cad_id	= CAD_HW_DEVICE_ID_SPKR_PHONE_MONO,
		.path	= ADIE_PATH_SPEAKER_RX,
		.rate   = 48000,
		.dir	= Q6_RX,
		.codec	= Q6_ICODEC_RX,
		.hw	= Q6_HW_SPEAKER,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_SPKR_PHONE_STEREO,
		.cad_id	= CAD_HW_DEVICE_ID_SPKR_PHONE_STEREO,
		.path	= ADIE_PATH_SPEAKER_STEREO_RX,
		.rate   = 48000,
		.dir	= Q6_RX,
		.codec	= Q6_ICODEC_RX,
		.hw	= Q6_HW_SPEAKER,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_SPKR_PHONE_MONO_W_MONO_HEADSET,
		.cad_id	= CAD_HW_DEVICE_ID_HEADSET_MONO_PLUS_SPKR_MONO_RX,
		.path	= ADIE_PATH_SPKR_MONO_HDPH_MONO_RX,
		.rate   = 48000,
		.dir	= Q6_RX,
		.codec	= Q6_ICODEC_RX,
		.hw	= Q6_HW_SPEAKER,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_SPKR_PHONE_MONO_W_STEREO_HEADSET,
		.cad_id	= CAD_HW_DEVICE_ID_HEADSET_STEREO_PLUS_SPKR_MONO_RX,
		.path	= ADIE_PATH_SPKR_MONO_HDPH_STEREO_RX,
		.rate   = 48000,
		.dir	= Q6_RX,
		.codec	= Q6_ICODEC_RX,
		.hw	= Q6_HW_SPEAKER,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_SPKR_PHONE_STEREO_W_MONO_HEADSET,
		.cad_id	= CAD_HW_DEVICE_ID_HEADSET_MONO_PLUS_SPKR_STEREO_RX,
		.path	= ADIE_PATH_SPKR_STEREO_HDPH_MONO_RX,
		.rate   = 48000,
		.dir	= Q6_RX,
		.codec	= Q6_ICODEC_RX,
		.hw	= Q6_HW_SPEAKER,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_SPKR_PHONE_STEREO_W_STEREO_HEADSET,
		.cad_id	= CAD_HW_DEVICE_ID_HEADSET_STEREO_PLUS_SPKR_STEREO_RX,
		.path	= ADIE_PATH_SPKR_STEREO_HDPH_STEREO_RX,
		.rate   = 48000,
		.dir	= Q6_RX,
		.codec	= Q6_ICODEC_RX,
		.hw	= Q6_HW_SPEAKER,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_TTY_HEADSET_SPKR,
		.cad_id	= CAD_HW_DEVICE_ID_TTY_HEADSET_SPKR,
		.path	= ADIE_PATH_TTY_HEADSET_RX,
		.rate   = 48000,
		.dir	= Q6_RX,
		.codec	= Q6_ICODEC_RX,
		.hw	= Q6_HW_TTY,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_HANDSET_MIC,
		.cad_id	= CAD_HW_DEVICE_ID_HANDSET_MIC,
		.path	= ADIE_PATH_HANDSET_TX,
		.rate   = 8000,
		.dir	= Q6_TX,
		.codec	= Q6_ICODEC_TX,
		.hw	= Q6_HW_HANDSET,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_HEADSET_MIC,
		.cad_id	= CAD_HW_DEVICE_ID_HEADSET_MIC,
		.path	= ADIE_PATH_HEADSET_MONO_TX,
		.rate   = 8000,
		.dir	= Q6_TX,
		.codec	= Q6_ICODEC_TX,
		.hw	= Q6_HW_HEADSET,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_SPKR_PHONE_MIC,
		.cad_id	= CAD_HW_DEVICE_ID_SPKR_PHONE_MIC,
		.path	= ADIE_PATH_SPEAKER_TX,
		.rate   = 8000,
		.dir	= Q6_TX,
		.codec	= Q6_ICODEC_TX,
		.hw	= Q6_HW_SPEAKER,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_HANDSET_DUAL_MIC,
		.cad_id	= CAD_HW_DEVICE_ID_HANDSET_DUAL_MIC_ENDFIRE,
		.path	= ADIE_CODEC_HANDSET_SPKR_EF_TX,
		.rate	= 8000,
		.dir	= Q6_TX,
		.codec	= Q6_ICODEC_TX,
		.hw	= Q6_HW_HANDSET,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_HANDSET_DUAL_MIC,
		.cad_id	= CAD_HW_DEVICE_ID_HANDSET_DUAL_MIC_BROADSIDE,
		.path	= ADIE_CODEC_HANDSET_SPKR_BS_TX,
		.rate	= 8000,
		.dir	= Q6_TX,
		.codec	= Q6_ICODEC_TX,
		.hw	= Q6_HW_HANDSET,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_SPKR_PHONE_DUAL_MIC,
		.cad_id	= CAD_HW_DEVICE_ID_SPKR_PHONE_DUAL_MIC_ENDFIRE,
		.path	= ADIE_CODEC_HANDSET_SPKR_EF_TX,
		.rate	= 8000,
		.dir	= Q6_TX,
		.codec	= Q6_ICODEC_TX,
		.hw	= Q6_HW_SPEAKER,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_SPKR_PHONE_DUAL_MIC,
		.cad_id	= CAD_HW_DEVICE_ID_SPKR_PHONE_DUAL_MIC_BROADSIDE,
		.path	= ADIE_CODEC_HANDSET_SPKR_BS_TX,
		.rate	= 8000,
		.dir	= Q6_TX,
		.codec	= Q6_ICODEC_TX,
		.hw	= Q6_HW_SPEAKER,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_TTY_HEADSET_MIC,
		.cad_id	= CAD_HW_DEVICE_ID_TTY_HEADSET_MIC,
		.path	= ADIE_PATH_TTY_HEADSET_TX,
		.rate   = 8000,
		.dir	= Q6_TX,
		.codec	= Q6_ICODEC_TX,
		.hw	= Q6_HW_HEADSET,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_BT_SCO_SPKR,
		.cad_id	= CAD_HW_DEVICE_ID_BT_SCO_SPKR,
		.path	= 0, /* XXX */
		.rate   = 48000,
		.dir	= Q6_RX,
		.codec	= Q6_ECODEC_RX,
		.hw	= Q6_HW_BT_SCO,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_BT_A2DP_SPKR,
		.cad_id	= CAD_HW_DEVICE_ID_BT_A2DP_SPKR,
		.path	= 0, /* XXX */
		.rate   = 48000,
		.dir	= Q6_RX,
		.codec	= Q6_ECODEC_RX,
		.hw	= Q6_HW_BT_A2DP,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_BT_SCO_MIC,
		.cad_id	= CAD_HW_DEVICE_ID_BT_SCO_MIC,
		.path	= 0, /* XXX */
		.rate   = 8000,
		.dir	= Q6_TX,
		.codec	= Q6_ECODEC_TX,
		.hw	= Q6_HW_BT_SCO,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_I2S_SPKR,
		.cad_id	= CAD_HW_DEVICE_ID_I2S_RX,
		.path	= 0, /* XXX */
		.rate   = 48000,
		.dir	= Q6_RX,
		.codec	= Q6_SDAC_RX,
		.hw	= Q6_HW_SPEAKER,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_I2S_MIC,
		.cad_id	= CAD_HW_DEVICE_ID_I2S_TX,
		.path	= 0, /* XXX */
		.rate   = 16000,
		.dir	= Q6_TX,
		.codec	= Q6_SDAC_TX,
		.hw	= Q6_HW_SPEAKER,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_AUXPCM_RX,
		.cad_id	= CAD_HW_DEVICE_ID_BT_SCO_SPKR,
		.path	= 0, /* XXX */
		.rate   = 8000,
		.dir	= Q6_RX,
		.codec	= Q6_ECODEC_RX,
		.hw	= Q6_HW_BT_SCO,
	},
	{
		.id	= ADSP_AUDIO_DEVICE_ID_AUXPCM_TX,
		.cad_id	= CAD_HW_DEVICE_ID_BT_SCO_MIC,
		.path	= 0, /* XXX */
		.rate   = 8000,
		.dir	= Q6_TX,
		.codec	= Q6_ECODEC_TX,
		.hw	= Q6_HW_BT_SCO,
	},
	{
		.id	= 0,
		.cad_id	= 0,
		.path	= 0,
		.rate   = 8000,
		.dir	= 0,
		.codec	= Q6_CODEC_NONE,
		.hw	= 0,
	},
};

