126 lines
3.7 KiB
C
126 lines
3.7 KiB
C
|
/* Copyright (c) 2009-2011, 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_QDSP5AFECMDI_H
|
||
|
#define __MACH_QDSP5_V2_QDSP5AFECMDI_H
|
||
|
|
||
|
#define QDSP5_DEVICE_mI2S_CODEC_RX 1 /* internal codec rx path */
|
||
|
#define QDSP5_DEVICE_mI2S_CODEC_TX 2 /* internal codec tx path */
|
||
|
#define QDSP5_DEVICE_AUX_CODEC_RX 3 /* external codec rx path */
|
||
|
#define QDSP5_DEVICE_AUX_CODEC_TX 4 /* external codec tx path */
|
||
|
#define QDSP5_DEVICE_mI2S_HDMI_RX 5 /* HDMI/FM block rx path */
|
||
|
#define QDSP5_DEVICE_mI2S_HDMI_TX 6 /* HDMI/FM block tx path */
|
||
|
#define QDSP5_DEVICE_ID_MAX 7
|
||
|
|
||
|
#define AFE_CMD_CODEC_CONFIG_CMD 0x1
|
||
|
#define AFE_CMD_CODEC_CONFIG_LEN sizeof(struct afe_cmd_codec_config)
|
||
|
|
||
|
struct afe_cmd_codec_config{
|
||
|
uint16_t cmd_id;
|
||
|
uint16_t device_id;
|
||
|
uint16_t activity;
|
||
|
uint16_t sample_rate;
|
||
|
uint16_t channel_mode;
|
||
|
uint16_t volume;
|
||
|
uint16_t reserved;
|
||
|
} __attribute__ ((packed));
|
||
|
|
||
|
#define AFE_CMD_DEVICE_VOLUME_CTRL 0x2
|
||
|
#define AFE_CMD_DEVICE_VOLUME_CTRL_LEN \
|
||
|
sizeof(struct afe_cmd_device_volume_ctrl)
|
||
|
|
||
|
struct afe_cmd_device_volume_ctrl {
|
||
|
uint16_t cmd_id;
|
||
|
uint16_t device_id;
|
||
|
uint16_t device_volume;
|
||
|
uint16_t reserved;
|
||
|
} __attribute__ ((packed));
|
||
|
|
||
|
#define AFE_CMD_AUX_CODEC_CONFIG_CMD 0x3
|
||
|
#define AFE_CMD_AUX_CODEC_CONFIG_LEN sizeof(struct afe_cmd_aux_codec_config)
|
||
|
|
||
|
struct afe_cmd_aux_codec_config{
|
||
|
uint16_t cmd_id;
|
||
|
uint16_t dma_path_ctl;
|
||
|
uint16_t pcm_ctl;
|
||
|
uint16_t eight_khz_int_mode;
|
||
|
uint16_t aux_codec_intf_ctl;
|
||
|
uint16_t data_format_padding_info;
|
||
|
} __attribute__ ((packed));
|
||
|
|
||
|
#define AFE_CMD_FM_RX_ROUTING_CMD 0x6
|
||
|
#define AFE_CMD_FM_RX_ROUTING_LEN sizeof(struct afe_cmd_fm_codec_config)
|
||
|
|
||
|
struct afe_cmd_fm_codec_config{
|
||
|
uint16_t cmd_id;
|
||
|
uint16_t enable;
|
||
|
uint16_t device_id;
|
||
|
} __attribute__ ((packed));
|
||
|
|
||
|
#define AFE_CMD_FM_PLAYBACK_VOLUME_CMD 0x8
|
||
|
#define AFE_CMD_FM_PLAYBACK_VOLUME_LEN sizeof(struct afe_cmd_fm_volume_config)
|
||
|
|
||
|
struct afe_cmd_fm_volume_config{
|
||
|
uint16_t cmd_id;
|
||
|
uint16_t volume;
|
||
|
uint16_t reserved;
|
||
|
} __attribute__ ((packed));
|
||
|
|
||
|
#define AFE_CMD_FM_CALIBRATION_GAIN_CMD 0x11
|
||
|
#define AFE_CMD_FM_CALIBRATION_GAIN_LEN \
|
||
|
sizeof(struct afe_cmd_fm_calibgain_config)
|
||
|
|
||
|
struct afe_cmd_fm_calibgain_config{
|
||
|
uint16_t cmd_id;
|
||
|
uint16_t device_id;
|
||
|
uint16_t calibration_gain;
|
||
|
} __attribute__ ((packed));
|
||
|
|
||
|
#define AFE_CMD_LOOPBACK 0xD
|
||
|
#define AFE_CMD_EXT_LOOPBACK 0xE
|
||
|
#define AFE_CMD_LOOPBACK_LEN sizeof(struct afe_cmd_loopback)
|
||
|
#define AFE_LOOPBACK_ENABLE_COMMAND 0xFFFF
|
||
|
#define AFE_LOOPBACK_DISABLE_COMMAND 0x0000
|
||
|
|
||
|
struct afe_cmd_loopback {
|
||
|
uint16_t cmd_id;
|
||
|
uint16_t enable_flag;
|
||
|
uint16_t reserved[2];
|
||
|
} __attribute__ ((packed));
|
||
|
|
||
|
struct afe_cmd_ext_loopback {
|
||
|
uint16_t cmd_id;
|
||
|
uint16_t enable_flag;
|
||
|
uint16_t source_id;
|
||
|
uint16_t dst_id;
|
||
|
uint16_t reserved[2];
|
||
|
} __packed;
|
||
|
|
||
|
#define AFE_CMD_CFG_RMC_PARAMS 0x12
|
||
|
#define AFE_CMD_CFG_RMC_LEN \
|
||
|
sizeof(struct afe_cmd_cfg_rmc)
|
||
|
|
||
|
struct afe_cmd_cfg_rmc {
|
||
|
unsigned short cmd_id;
|
||
|
signed short rmc_mode;
|
||
|
unsigned short rmc_ipw_length_ms;
|
||
|
unsigned short rmc_peak_length_ms;
|
||
|
unsigned short rmc_init_pulse_length_ms;
|
||
|
unsigned short rmc_total_int_length_ms;
|
||
|
unsigned short rmc_rampupdn_length_ms;
|
||
|
unsigned short rmc_delay_length_ms;
|
||
|
unsigned short rmc_detect_start_threshdb;
|
||
|
signed short rmc_init_pulse_threshdb;
|
||
|
} __attribute__((packed));
|
||
|
|
||
|
#endif
|