diff options
author | Peter Ujfalusi <peter.ujfalusi@ti.com> | 2011-09-26 09:05:57 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-09-26 17:23:32 -0400 |
commit | db4aabcc1f2ac32de290510bcc895a960886779d (patch) | |
tree | 1a5d3744df8db68eb8478b5e3c20626add7cc75b | |
parent | f97217f18e99235c374f5ce2cde07072e49b582f (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.c | 9 | ||||
-rw-r--r-- | sound/soc/codecs/twl6040.h | 13 |
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 | } |
1073 | EXPORT_SYMBOL_GPL(twl6040_get_clk_id); | 1073 | EXPORT_SYMBOL_GPL(twl6040_get_clk_id); |
1074 | 1074 | ||
1075 | int 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 | } | ||
1082 | EXPORT_SYMBOL_GPL(twl6040_get_trim_value); | ||
1083 | |||
1075 | static const struct snd_kcontrol_new twl6040_snd_controls[] = { | 1084 | static 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 | ||
25 | enum 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 | |||
25 | void twl6040_hs_jack_detect(struct snd_soc_codec *codec, | 37 | void 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); |
27 | int twl6040_get_clk_id(struct snd_soc_codec *codec); | 39 | int twl6040_get_clk_id(struct snd_soc_codec *codec); |
40 | int 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__ */ |