summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/soc/codecs/twl6040.c9
-rw-r--r--sound/soc/codecs/twl6040.h13
2 files changed, 22 insertions, 0 deletions
diff --git a/sound/soc/codecs/twl6040.c b/sound/soc/codecs/twl6040.c
index 7226ae788f2d..0a8728ef1131 100644
--- a/sound/soc/codecs/twl6040.c
+++ b/sound/soc/codecs/twl6040.c
@@ -1072,6 +1072,15 @@ int twl6040_get_clk_id(struct snd_soc_codec *codec)
1072} 1072}
1073EXPORT_SYMBOL_GPL(twl6040_get_clk_id); 1073EXPORT_SYMBOL_GPL(twl6040_get_clk_id);
1074 1074
1075int twl6040_get_trim_value(struct snd_soc_codec *codec, enum twl6040_trim trim)
1076{
1077 if (unlikely(trim >= TWL6040_TRIM_INVAL))
1078 return -EINVAL;
1079
1080 return twl6040_read_reg_cache(codec, TWL6040_REG_TRIM1 + trim);
1081}
1082EXPORT_SYMBOL_GPL(twl6040_get_trim_value);
1083
1075static const struct snd_kcontrol_new twl6040_snd_controls[] = { 1084static const struct snd_kcontrol_new twl6040_snd_controls[] = {
1076 /* Capture gains */ 1085 /* Capture gains */
1077 SOC_DOUBLE_TLV("Capture Preamplifier Volume", 1086 SOC_DOUBLE_TLV("Capture Preamplifier Volume",
diff --git a/sound/soc/codecs/twl6040.h b/sound/soc/codecs/twl6040.h
index d8de67869dd9..a83277bdb851 100644
--- a/sound/soc/codecs/twl6040.h
+++ b/sound/soc/codecs/twl6040.h
@@ -22,8 +22,21 @@
22#ifndef __TWL6040_H__ 22#ifndef __TWL6040_H__
23#define __TWL6040_H__ 23#define __TWL6040_H__
24 24
25enum twl6040_trim {
26 TWL6040_TRIM_TRIM1 = 0,
27 TWL6040_TRIM_TRIM2,
28 TWL6040_TRIM_TRIM3,
29 TWL6040_TRIM_HSOTRIM,
30 TWL6040_TRIM_HFOTRIM,
31 TWL6040_TRIM_INVAL,
32};
33
34#define TWL6040_HSF_TRIM_LEFT(x) (x & 0x0f)
35#define TWL6040_HSF_TRIM_RIGHT(x) ((x >> 4) & 0x0f)
36
25void twl6040_hs_jack_detect(struct snd_soc_codec *codec, 37void twl6040_hs_jack_detect(struct snd_soc_codec *codec,
26 struct snd_soc_jack *jack, int report); 38 struct snd_soc_jack *jack, int report);
27int twl6040_get_clk_id(struct snd_soc_codec *codec); 39int twl6040_get_clk_id(struct snd_soc_codec *codec);
40int twl6040_get_trim_value(struct snd_soc_codec *codec, enum twl6040_trim trim);
28 41
29#endif /* End of __TWL6040_H__ */ 42#endif /* End of __TWL6040_H__ */