Merge "ASoC: msm8952-slimbus: add mixer control for btsco sampling rate"
This commit is contained in:
commit
67ce3a92da
|
@ -34,6 +34,8 @@
|
|||
|
||||
#define DRV_NAME "msm8952-slimbus-wcd"
|
||||
|
||||
#define BTSCO_RATE_8KHZ 8000
|
||||
#define BTSCO_RATE_16KHZ 16000
|
||||
#define SAMPLING_RATE_8KHZ 8000
|
||||
#define SAMPLING_RATE_16KHZ 16000
|
||||
#define SAMPLING_RATE_32KHZ 32000
|
||||
|
@ -58,6 +60,11 @@
|
|||
|
||||
#define Q6AFE_LPASS_OSR_CLK_9_P600_MHZ 0x927C00
|
||||
|
||||
enum btsco_rates {
|
||||
RATE_8KHZ_ID,
|
||||
RATE_16KHZ_ID,
|
||||
};
|
||||
|
||||
static int slim0_rx_sample_rate = SAMPLING_RATE_48KHZ;
|
||||
static int slim0_tx_sample_rate = SAMPLING_RATE_48KHZ;
|
||||
static int slim0_rx_bit_format = SNDRV_PCM_FORMAT_S16_LE;
|
||||
|
@ -629,9 +636,32 @@ static int slim0_tx_sample_rate_put(struct snd_kcontrol *kcontrol,
|
|||
return rc;
|
||||
}
|
||||
|
||||
static int msm_btsco_rate_get(struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
{
|
||||
pr_debug("%s: msm_btsco_rate = %d", __func__, msm_btsco_rate);
|
||||
ucontrol->value.integer.value[0] = msm_btsco_rate;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int msm_btsco_rate_put(struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
{
|
||||
switch (ucontrol->value.integer.value[0]) {
|
||||
case RATE_8KHZ_ID:
|
||||
msm_btsco_rate = BTSCO_RATE_8KHZ;
|
||||
break;
|
||||
case RATE_16KHZ_ID:
|
||||
msm_btsco_rate = BTSCO_RATE_16KHZ;
|
||||
break;
|
||||
default:
|
||||
msm_btsco_rate = BTSCO_RATE_8KHZ;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
pr_debug("%s: msm_btsco_rate = %d\n", __func__, msm_btsco_rate);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const char *const spk_function[] = {"Off", "On"};
|
||||
static const char *const slim0_rx_ch_text[] = {"One", "Two"};
|
||||
|
@ -652,6 +682,12 @@ static const struct soc_enum msm_snd_enum[] = {
|
|||
SOC_ENUM_SINGLE_EXT(2, vi_feed_ch_text),
|
||||
};
|
||||
|
||||
static const char *const btsco_rate_text[] = {"BTSCO_RATE_8KHZ",
|
||||
"BTSCO_RATE_16KHZ"};
|
||||
static const struct soc_enum msm_btsco_enum[] = {
|
||||
SOC_ENUM_SINGLE_EXT(2, btsco_rate_text),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new msm_snd_controls[] = {
|
||||
SOC_ENUM_EXT("Speaker Function", msm_snd_enum[0], msm8952_get_spk,
|
||||
msm8952_set_spk),
|
||||
|
@ -671,6 +707,8 @@ static const struct snd_kcontrol_new msm_snd_controls[] = {
|
|||
slim0_tx_sample_rate_get, slim0_tx_sample_rate_put),
|
||||
SOC_ENUM_EXT("SLIM_0_TX Format", msm_snd_enum[3],
|
||||
slim0_tx_bit_format_get, slim0_tx_bit_format_put),
|
||||
SOC_ENUM_EXT("Internal BTSCO SampleRate", msm_btsco_enum[0],
|
||||
msm_btsco_rate_get, msm_btsco_rate_put),
|
||||
};
|
||||
|
||||
int msm_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
|
||||
|
|
Loading…
Reference in New Issue