summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@ti.com>2011-09-26 09:05:57 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-09-26 17:23:32 -0400
commitdb4aabcc1f2ac32de290510bcc895a960886779d (patch)
tree1a5d3744df8db68eb8478b5e3c20626add7cc75b
parentf97217f18e99235c374f5ce2cde07072e49b582f (diff)
ASoC: twl6040: Function to fetch the TRIM values
Provide API to fetch the TRIM values (for machine drivers) Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-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__ */