Lines Matching +full:mt8186 +full:- +full:sound
1 // SPDX-License-Identifier: GPL-2.0
9 #include <linux/dma-mapping.h>
12 #include <sound/soc.h>
14 #include "../common/mtk-afe-fe-dai.h"
15 #include "../common/mtk-afe-platform-driver.h"
16 #include "mt8186-afe-common.h"
40 14, -1, 18, 20,
50 166, -1, 168, 170,
53 194, 196, -1, -1,
79 struct mt8186_afe_private *afe_priv = afe->platform_priv; in mt8186_sgen_get()
81 ucontrol->value.integer.value[0] = afe_priv->sgen_mode; in mt8186_sgen_get()
91 struct mt8186_afe_private *afe_priv = afe->platform_priv; in mt8186_sgen_set()
92 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value; in mt8186_sgen_set()
96 if (ucontrol->value.enumerated.item[0] >= e->items) in mt8186_sgen_set()
97 return -EINVAL; in mt8186_sgen_set()
99 mode = ucontrol->value.integer.value[0]; in mt8186_sgen_set()
102 dev_dbg(afe->dev, "%s(), mode %d, mode_idx %d\n", in mt8186_sgen_set()
105 if (mode == afe_priv->sgen_mode) in mt8186_sgen_set()
109 regmap_update_bits(afe->regmap, AFE_SINEGEN_CON2, in mt8186_sgen_set()
112 regmap_update_bits(afe->regmap, AFE_SINEGEN_CON0, in mt8186_sgen_set()
116 regmap_update_bits(afe->regmap, AFE_SINEGEN_CON0, in mt8186_sgen_set()
118 regmap_update_bits(afe->regmap, AFE_SINEGEN_CON2, in mt8186_sgen_set()
123 afe_priv->sgen_mode = mode; in mt8186_sgen_set()
133 struct mt8186_afe_private *afe_priv = afe->platform_priv; in mt8186_sgen_rate_get()
135 ucontrol->value.integer.value[0] = afe_priv->sgen_rate; in mt8186_sgen_rate_get()
145 struct mt8186_afe_private *afe_priv = afe->platform_priv; in mt8186_sgen_rate_set()
146 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value; in mt8186_sgen_rate_set()
149 if (ucontrol->value.enumerated.item[0] >= e->items) in mt8186_sgen_rate_set()
150 return -EINVAL; in mt8186_sgen_rate_set()
152 rate = ucontrol->value.integer.value[0]; in mt8186_sgen_rate_set()
154 dev_dbg(afe->dev, "%s(), rate %d\n", __func__, rate); in mt8186_sgen_rate_set()
156 if (rate == afe_priv->sgen_rate) in mt8186_sgen_rate_set()
159 regmap_update_bits(afe->regmap, AFE_SINEGEN_CON0, in mt8186_sgen_rate_set()
163 regmap_update_bits(afe->regmap, AFE_SINEGEN_CON0, in mt8186_sgen_rate_set()
167 afe_priv->sgen_rate = rate; in mt8186_sgen_rate_set()
177 struct mt8186_afe_private *afe_priv = afe->platform_priv; in mt8186_sgen_amplitude_get()
179 ucontrol->value.integer.value[0] = afe_priv->sgen_amplitude; in mt8186_sgen_amplitude_get()
188 struct mt8186_afe_private *afe_priv = afe->platform_priv; in mt8186_sgen_amplitude_set()
189 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value; in mt8186_sgen_amplitude_set()
192 if (ucontrol->value.enumerated.item[0] >= e->items) in mt8186_sgen_amplitude_set()
193 return -EINVAL; in mt8186_sgen_amplitude_set()
195 amplitude = ucontrol->value.integer.value[0]; in mt8186_sgen_amplitude_set()
197 dev_err(afe->dev, "%s(), amplitude %d invalid\n", in mt8186_sgen_amplitude_set()
199 return -EINVAL; in mt8186_sgen_amplitude_set()
202 dev_dbg(afe->dev, "%s(), amplitude %d\n", __func__, amplitude); in mt8186_sgen_amplitude_set()
204 if (amplitude == afe_priv->sgen_amplitude) in mt8186_sgen_amplitude_set()
207 regmap_update_bits(afe->regmap, AFE_SINEGEN_CON0, in mt8186_sgen_amplitude_set()
210 regmap_update_bits(afe->regmap, AFE_SINEGEN_CON0, in mt8186_sgen_amplitude_set()
214 afe_priv->sgen_amplitude = amplitude; in mt8186_sgen_amplitude_set()