mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 13:49:24 -04:00
ASoC: wcd937x: Add function to get wcd937x codec variant
Add function to get wcd937x codec variant. Also add wcd937x support in msm dailinks for yupik. Change-Id: Id794a12da0f5aa771727d9f03ef949ae1d32b9da Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
This commit is contained in:
parent
2725c63926
commit
9cc1d0d01d
4 changed files with 66 additions and 9 deletions
|
|
@ -27,8 +27,6 @@
|
|||
#include "internal.h"
|
||||
#include "asoc/bolero-slave-internal.h"
|
||||
|
||||
#define WCD9370_VARIANT 0
|
||||
#define WCD9375_VARIANT 5
|
||||
#define WCD937X_VARIANT_ENTRY_SIZE 32
|
||||
|
||||
#define NUM_SWRS_DT_PARAMS 5
|
||||
|
|
@ -2624,6 +2622,30 @@ static struct snd_info_entry_ops wcd937x_variant_ops = {
|
|||
.read = wcd937x_variant_read,
|
||||
};
|
||||
|
||||
/*
|
||||
* wcd937x_get_codec_variant
|
||||
* @component: component instance
|
||||
*
|
||||
* Return: codec variant or -EINVAL in error.
|
||||
*/
|
||||
int wcd937x_get_codec_variant(struct snd_soc_component *component)
|
||||
{
|
||||
struct wcd937x_priv *priv = NULL;
|
||||
|
||||
if (!component)
|
||||
return -EINVAL;
|
||||
|
||||
priv = snd_soc_component_get_drvdata(component);
|
||||
if (!priv) {
|
||||
dev_err(component->dev,
|
||||
"%s:wcd937x not probed\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return priv->variant;
|
||||
}
|
||||
EXPORT_SYMBOL(wcd937x_get_codec_variant);
|
||||
|
||||
/*
|
||||
* wcd937x_info_create_codec_entry - creates wcd937x module
|
||||
* @codec_root: The parent directory
|
||||
|
|
|
|||
|
|
@ -17,6 +17,11 @@ struct wcd937x_swr_slave_ch_map {
|
|||
u8 index;
|
||||
};
|
||||
|
||||
enum {
|
||||
WCD9370_VARIANT = 0,
|
||||
WCD9375_VARIANT = 5,
|
||||
};
|
||||
|
||||
static const struct wcd937x_swr_slave_ch_map wcd937x_swr_slv_tx_ch_idx[] = {
|
||||
{ADC1, 0},
|
||||
{ADC2, 1},
|
||||
|
|
@ -51,6 +56,8 @@ static int wcd937x_swr_master_ch_map[] = {
|
|||
extern int wcd937x_info_create_codec_entry(struct snd_info_entry *codec_root,
|
||||
struct snd_soc_component *component);
|
||||
|
||||
extern int wcd937x_get_codec_variant(struct snd_soc_component *component);
|
||||
|
||||
static inline int wcd937x_slave_get_master_ch_val(int ch)
|
||||
{
|
||||
int i;
|
||||
|
|
@ -94,6 +101,10 @@ static inline int wcd937x_slave_get_slave_ch_val(int ch)
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
static inline int wcd937x_get_codec_variant(struct snd_soc_component *component)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_SND_SOC_WCD937X */
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -96,6 +96,12 @@ static struct port_params tx_frame_params_shima_0p6MHz[SWR_MSTR_PORT_LEN] = {
|
|||
{1, 1, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0x00, 0x00}, /* TX3 */
|
||||
};
|
||||
|
||||
static struct port_params tx_frame_params_wcd937x[SWR_MSTR_PORT_LEN] = {
|
||||
{3, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 1, 0x00, 0x00}, /* TX1 */
|
||||
{3, 1, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0x00, 0x00}, /* TX2 */
|
||||
{3, 2, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0x00, 0x00}, /* TX3 */
|
||||
};
|
||||
|
||||
static struct swr_mstr_port_map sm_port_map[] = {
|
||||
{TX_MACRO, SWR_UC0, tx_frame_params_default},
|
||||
{TX_MACRO, SWR_UC1, tx_frame_params_4p8MHz},
|
||||
|
|
@ -116,4 +122,14 @@ static struct swr_mstr_port_map sm_port_map_shima[] = {
|
|||
{WSA_MACRO, SWR_UC0, wsa_frame_params_default},
|
||||
};
|
||||
|
||||
static struct swr_mstr_port_map sm_port_map_wcd937x[] = {
|
||||
{TX_MACRO, SWR_UC0, tx_frame_params_wcd937x},
|
||||
{TX_MACRO, SWR_UC1, tx_frame_params_wcd937x},
|
||||
{TX_MACRO, SWR_UC2, tx_frame_params_wcd937x},
|
||||
{RX_MACRO, SWR_UC0, rx_frame_params_default},
|
||||
{RX_MACRO, SWR_UC1, rx_frame_params_dsd},
|
||||
{RX_MACRO, SWR_UC2, rx_frame_params_44p1KHz},
|
||||
{WSA_MACRO, SWR_UC0, wsa_frame_params_default},
|
||||
};
|
||||
|
||||
#endif /* _LAHAINA_PORT_CONFIG */
|
||||
|
|
|
|||
|
|
@ -209,7 +209,8 @@ SND_SOC_DAILINK_DEFS(slimbus8_hostless,
|
|||
SND_SOC_DAILINK_DEFS(tx_cdcdma5_tx,
|
||||
DAILINK_COMP_ARRAY(COMP_CPU("msm-dai-cdc-dma-dev.45115")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("bolero_codec", "tx_macro_tx3"),
|
||||
COMP_CODEC("wcd938x_codec", "wcd938x_cdc")),
|
||||
COMP_CODEC("wcd938x_codec", "wcd938x_cdc"),
|
||||
COMP_CODEC("wcd937x_codec", "wcd937x_cdc")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("msm-pcm-hostless")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(multimedia31,
|
||||
|
|
@ -662,31 +663,36 @@ SND_SOC_DAILINK_DEFS(wsa_dma_tx1,
|
|||
SND_SOC_DAILINK_DEFS(rx_dma_rx0,
|
||||
DAILINK_COMP_ARRAY(COMP_CPU("msm-dai-cdc-dma-dev.45104")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("bolero_codec", "rx_macro_rx1"),
|
||||
COMP_CODEC("wcd938x_codec", "wcd938x_cdc")),
|
||||
COMP_CODEC("wcd938x_codec", "wcd938x_cdc"),
|
||||
COMP_CODEC("wcd937x_codec", "wcd937x_cdc")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("msm-pcm-routing")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(rx_dma_rx1,
|
||||
DAILINK_COMP_ARRAY(COMP_CPU("msm-dai-cdc-dma-dev.45106")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("bolero_codec", "rx_macro_rx2"),
|
||||
COMP_CODEC("wcd938x_codec", "wcd938x_cdc")),
|
||||
COMP_CODEC("wcd938x_codec", "wcd938x_cdc"),
|
||||
COMP_CODEC("wcd937x_codec", "wcd937x_cdc")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("msm-pcm-routing")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(rx_dma_rx2,
|
||||
DAILINK_COMP_ARRAY(COMP_CPU("msm-dai-cdc-dma-dev.45108")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("bolero_codec", "rx_macro_rx3"),
|
||||
COMP_CODEC("wcd938x_codec", "wcd938x_cdc")),
|
||||
COMP_CODEC("wcd938x_codec", "wcd938x_cdc"),
|
||||
COMP_CODEC("wcd937x_codec", "wcd937x_cdc")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("msm-pcm-routing")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(rx_dma_rx3,
|
||||
DAILINK_COMP_ARRAY(COMP_CPU("msm-dai-cdc-dma-dev.45110")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("bolero_codec", "rx_macro_rx4"),
|
||||
COMP_CODEC("wcd938x_codec", "wcd938x_cdc")),
|
||||
COMP_CODEC("wcd938x_codec", "wcd938x_cdc"),
|
||||
COMP_CODEC("wcd937x_codec", "wcd937x_cdc")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("msm-pcm-routing")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(rx_dma_rx5,
|
||||
DAILINK_COMP_ARRAY(COMP_CPU("msm-dai-cdc-dma-dev.45114")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("bolero_codec", "rx_macro_rx5"),
|
||||
COMP_CODEC("wcd938x_codec", "wcd938x_cdc")),
|
||||
COMP_CODEC("wcd938x_codec", "wcd938x_cdc"),
|
||||
COMP_CODEC("wcd937x_codec", "wcd937x_cdc")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("msm-pcm-routing")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(rx_dma_rx6,
|
||||
|
|
@ -698,13 +704,15 @@ SND_SOC_DAILINK_DEFS(rx_dma_rx6,
|
|||
SND_SOC_DAILINK_DEFS(tx_dma_tx3,
|
||||
DAILINK_COMP_ARRAY(COMP_CPU("msm-dai-cdc-dma-dev.45111")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("bolero_codec", "tx_macro_tx1"),
|
||||
COMP_CODEC("wcd938x_codec", "wcd938x_cdc")),
|
||||
COMP_CODEC("wcd938x_codec", "wcd938x_cdc"),
|
||||
COMP_CODEC("wcd937x_codec", "wcd937x_cdc")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("msm-pcm-routing")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(tx_dma_tx4,
|
||||
DAILINK_COMP_ARRAY(COMP_CPU("msm-dai-cdc-dma-dev.45113")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("bolero_codec", "tx_macro_tx2"),
|
||||
COMP_CODEC("wcd938x_codec", "wcd938x_cdc"),
|
||||
COMP_CODEC("wcd937x_codec", "wcd937x_cdc"),
|
||||
COMP_CODEC("swr-dmic.01", "swr_dmic_tx0"),
|
||||
COMP_CODEC("swr-dmic.02", "swr_dmic_tx1"),
|
||||
COMP_CODEC("swr-dmic.03", "swr_dmic_tx2"),
|
||||
|
|
|
|||
Loading…
Reference in a new issue