/* Copyright (c) 2012, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * 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. * */ #ifndef _MACH_QDSP5_V2_ACDB_COMMANDS_H #define _MACH_QDSP5_V2_ACDB_COMMANDS_H #define ACDB_VOICE_NETWORK_ID_DEFAULT 0x00010037 #define ACDB_INITIALISING 0 #define ACDB_READY 1 /* 4KB */ #define ACDB_PAGE_SIZE 0x1000 #define ACDB_CDMA_NB 0x0108b153 #define ACDB_CDMA_WB 0x0108b154 #define ACDB_GSM_NB 0x0108b155 #define ACDB_GSM_WB 0x0108b156 #define ACDB_WCDMA_NB 0x0108b157 #define ACDB_WCDMA_WB 0x0108b158 /* ACDB commands */ /* struct acdb_cmd_install_device */ #define ACDB_INSTALL_DEVICE 0x0108d245 /* struct acdb_cmd_install_device */ #define ACDB_UNINSTALL_DEVICE 0x0108d246 /* struct acdb_cmd_device */ #define ACDB_GET_DEVICE 0x0108bb92 /* struct acdb_cmd_device */ #define ACDB_SET_DEVICE 0x0108bb93 /* struct acdb_cmd_get_device_table */ #define ACDB_GET_DEVICE_TABLE 0x0108bb97 /* struct acdb_cmd_get_device_capabilities */ #define ACDB_GET_DEVICE_CAPABILITIES 0x0108f5ca /* struct acdb_cmd_get_device_info */ #define ACDB_GET_DEVICE_INFO 0x0108f5cb /*command to intitialize ACDB based on codec type*/ #define ACDB_CMD_INITIALIZE_FOR_ADIE 0x00011283 /* ACDB Error codes */ #define ACDB_RES_SUCCESS 0 #define ACDB_RES_FAILURE -1 #define ACDB_RES_BADPARM -2 #define ACDB_RES_BADSTATE -3 #define TGTVERS_MSM7x30_BRING_UP 0x00010064 /* Algorithm Aspect IDs */ #define IID_ENABLE_FLAG 0x0108b6b9 #define IID_ENABLE_FLAG_SIZE 1 #define IID_ECHO_CANCELLER_VERSION_SIZE 2 #define IID_ECHO_CANCELLER_MODE_SIZE 2 #define IID_ECHO_CANCELLER_NOISE_SUPPRESSOR_ENABLE_SIZE 1 #define IID_ECHO_CANCELLER_PARAMETERS_SIZE 32 #define IID_ECHO_CANCELLER_NEXTGEN_NB_PARAMETERS_SIZE (38 * 2) #define IID_ECHO_CANCELLER_NEXTGEN_WB_PARAMETERS_SIZE (38 * 2) #define IID_FLUENCE_PARAMETERS_SIZE 486 #define IID_AFE_VOLUME_CONTROL_SIZE 6 #define IID_GAIN_SIZE 2 #define IID_VOICE_FIR_FILTER_SIZE 14 #define IID_VOICE_IIR_FILTER_SIZE 114 #define IID_RX_DBM_OFFSET_SIZE 2 #define IID_AGC_SIZE 36 #define IID_AVC_SIZE 80 #define IID_AUDIO_IIR_COEFF_SIZE 100 #define IID_MBADRC_PARAMETERS_SIZE 8 #define IID_MBADRC_EXT_BUFF_SIZE 392 #define IID_MBADRC_BAND_CONFIG_SIZE 100 #define IID_QAFX_PARAMETERS_SIZE 2 #define IID_QCONCERT_PARAMETERS_SIZE 2 #define IID_AUDIO_AGC_PARAMETERS_SIZE 42 #define IID_NS_PARAMETERS_SIZE 14 #define IID_ECHO_CANCELLER_VERSION 0x00010042 #define IID_ECHO_CANCELLER_MODE 0x00010043 #define IID_ECHO_CANCELLER_NOISE_SUPPRESSOR_ENABLE 0x00010044 #define IID_ECHO_CANCELLER_PARAMETERS 0x00010045 #define IID_ECHO_CANCELLER_NEXTGEN_NB_PARAMETERS 0x00010046 #define IID_ECHO_CANCELLER_NEXTGEN_WB_PARAMETERS 0x00010047 #define IID_FLUENCE_PARAMETERS 0x00010048 #define IID_AFE_VOLUME_CONTROL 0x00010049 #define IID_GAIN 0x0001004A #define IID_VOICE_FIR_FILTER 0x0001004B #define IID_VOICE_IIR_FILTER 0x0001004C #define IID_AGC 0x0001004E #define IID_AVC 0x0001004F #define ABID_SIDETONE_GAIN 0x00010050 #define ABID_TX_VOICE_GAIN 0x00010051 #define ABID_TX_DTMF_GAIN 0x00010052 #define ABID_CODEC_TX_GAIN 0x00010053 #define ABID_HSSD 0x00010054 #define ABID_TX_AGC 0x00010055 #define ABID_TX_VOICE_FIR 0x00010056 #define ABID_TX_VOICE_IIR 0x00010057 #define ABID_ECHO_CANCELLER 0x00010058 #define ABID_ECHO_CANCELLER_NB_LVHF 0x00010059 #define ABID_ECHO_CANCELLER_WB_LVHF 0x0001005A #define ABID_FLUENCE 0x0001005B #define ABID_CODEC_RX_GAIN 0x0001005C #define ABID_RX_DBM_OFFSET 0x0001005D #define ABID_RX_AGC 0x0001005E #define ABID_AVC 0x0001005F #define ABID_RX_VOICE_FIR 0x00010060 #define ABID_RX_VOICE_IIR 0x00010061 #define ABID_AFE_VOL_CTRL 0x00010067 /* AUDIO IDs */ #define ABID_AUDIO_AGC_TX 0x00010068 #define ABID_AUDIO_NS_TX 0x00010069 #define ABID_VOICE_NS 0x0001006A #define ABID_AUDIO_IIR_TX 0x0001006B #define ABID_AUDIO_IIR_RX 0x0001006C #define ABID_AUDIO_MBADRC_RX 0x0001006E #define ABID_AUDIO_QAFX_RX 0x0001006F #define ABID_AUDIO_QCONCERT_RX 0x00010070 #define ABID_AUDIO_STF_RX 0x00010071 #define ABID_AUDIO_CALIBRATION_GAIN_RX 0x00011162 #define ABID_AUDIO_CALIBRATION_GAIN_TX 0x00011149 #define ABID_AUDIO_PBE_RX 0x00011197 #define ABID_AUDIO_RMC_TX 0x00011226 #define ABID_AUDIO_FLUENCE_TX 0x00011244 #define IID_AUDIO_AGC_PARAMETERS 0x0001007E #define IID_NS_PARAMETERS 0x00010072 #define IID_AUDIO_IIR_COEFF 0x00010073 #define IID_MBADRC_EXT_BUFF 0x00010075 #define IID_MBADRC_BAND_CONFIG 0x00010076 #define IID_MBADRC_PARAMETERS 0x00010077 #define IID_QAFX_PARAMETERS 0x00010079 #define IID_QCONCERT_PARAMETERS 0x0001007A #define IID_STF_COEFF 0x0001007B #define IID_AUDIO_CALIBRATION_GAIN_RX 0x00011163 #define IID_AUDIO_CALIBRATION_GAIN_TX 0x00011171 #define IID_PBE_CONFIG_PARAMETERS 0x00011198 #define IID_AUDIO_PBE_RX_ENABLE_FLAG 0x00011199 #define IID_AUDIO_RMC_PARAM 0x00011227 #define IID_AUDIO_FLUENCE_TX 0x00011245 #define TOPID_RX_TOPOLOGY_1 0x00010062 #define TOPID_TX_TOPOLOGY_1 0x00010063 #define AFERID_INT_SINK 0x00010065 #define AFERID_INT_SOURCE 0x00010066 #define AFERID_NO_SINK 0x00000000 #define AFERID_NULL_SINK 0x0108ea92 struct acdb_cmd_install_device { u32 command_id; u32 device_id; u32 topology_id; u32 afe_routing_id; u32 cad_routing_id; /* see "Sample Rate Bit Mask" below */ u32 sample_rate_mask; /* represents device direction: Tx, Rx (aux pga - loopback) */ u8 device_type; u8 channel_config; /* Mono or Stereo */ u32 adie_codec_path_id; }; struct acdb_cmd_get_device_capabilities { u32 command_id; u32 total_bytes; /* Length in bytes allocated for buffer */ u32 *phys_buf; /* Physical Address of data */ }; struct acdb_cmd_get_device_info { u32 command_id; u32 device_id; u32 total_bytes; /* Length in bytes allocated for buffer */ u32 *phys_buf; /* Physical Address of data */ }; struct acdb_cmd_device { u32 command_id; u32 device_id; u32 network_id; u32 sample_rate_id; /* Actual sample rate value */ u32 interface_id; /* See interface id's above */ u32 algorithm_block_id; /* See enumerations above */ u32 total_bytes; /* Length in bytes used by buffer */ u32 *phys_buf; /* Physical Address of data */ }; struct acdb_cmd_get_device_table { u32 command_id; u32 device_id; u32 network_id; u32 sample_rate_id; /* Actual sample rate value */ u32 total_bytes; /* Length in bytes used by buffer */ u32 *phys_buf; /* Physical Address of data */ }; struct acdb_result { /* This field is populated in response to the */ /* ACDB_GET_DEVICE_CAPABILITIES command and indicates the total */ /* devices whose capabilities are copied to the physical memory. */ u32 total_devices; u32 *buf; /* Physical Address of data */ u32 used_bytes; /* The size in bytes of the data */ u32 result; /* See ACDB Error codes above */ }; struct acdb_device_capability { u32 device_id; u32 sample_rate_mask; /* See "Sample Rate Bit Mask" below */ }; struct acdb_dev_info { u32 cad_routing_id; u32 sample_rate_mask; /* See "Sample Rate Bit Mask" below */ u32 adsp_device_id; /* QDSP6 device ID */ u32 device_type; /* Tx, Rx (aux pga - loopback) */ u32 channel_config; /* Mono or Stereo */ s32 min_volume; /* Min volume (mB) */ s32 max_volume; /* Max volume (mB) */ }; /*structure is used to intialize ACDB software on modem based on adie type detected*/ struct acdb_cmd_init_adie { u32 command_id; u32 adie_type; }; #define ACDB_CURRENT_ADIE_MODE_UNKNOWN 0 #define ACDB_CURRENT_ADIE_MODE_TIMPANI 1 #define ACDB_CURRENT_ADIE_MODE_MARIMBA 2 /* Sample Rate Bit Mask */ /* AUX PGA devices will have a sample rate mask of 0xFFFFFFFF */ /* 8kHz 0x00000001 */ /* 11.025kHz 0x00000002 */ /* 12kHz 0x00000004 */ /* 16kHz 0x00000008 */ /* 22.5kHz 0x00000010 */ /* 24kHz 0x00000020 */ /* 32kHz 0x00000040 */ /* 44.1kHz 0x00000080 */ /* 48kHz 0x00000100 */ /* Device type enumeration */ enum { RX_DEVICE = 1, TX_DEVICE, AUXPGA_DEVICE, DEVICE_TYPE_MAX }; #ifdef CONFIG_DEBUG_FS /*These are ABID used for RTC*/ #define ABID_AUDIO_RTC_MBADRC_RX 0x0001118A #define ABID_AUDIO_RTC_VOLUME_PAN_RX 0x0001118C #define ABID_AUDIO_RTC_SPA 0x0001118E #define ABID_AUDIO_RTC_EQUALIZER_PARAMETERS 0x0001119F /*These are IID used for RTC*/ #define IID_AUDIO_RTC_MBADRC_PARAMETERS 0x0001118B #define IID_AUDIO_RTC_VOLUME_PAN_PARAMETERS 0x0001118D #define IID_AUDIO_RTC_SPA_PARAMETERS 0x0001118F #define IID_AUDIO_RTC_EQUALIZER_PARAMETERS 0x0001119E #define IID_AUDIO_RTC_AGC_PARAMETERS 0x000111A7 #define IID_AUDIO_RTC_TX_IIR_COEFF 0x000111A8 #endif #endif