| /* 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 |
| |