summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorBard Liao <bardliao@realtek.com>2017-04-07 05:26:41 +0200
committerMark Brown <broonie@kernel.org>2017-04-10 20:46:09 +0200
commitd7344010d183ad62d1ababca3beb9553cf5e1546 (patch)
treeec8bb158f07de78d0a469040d149837de3982480 /include
parentASoC: jack - check status of GPIO-based pins on resume (diff)
downloadlinux-d7344010d183ad62d1ababca3beb9553cf5e1546.tar.xz
linux-d7344010d183ad62d1ababca3beb9553cf5e1546.zip
ASoC: jack: add snd_soc_codec_set_jack
There are many codecs with the capability of jack detection. Usually, we create a jack on machine driver but there is no common function for machine driver to deliver the jack pointer to codec driver. snd_soc_codec_set_jack can be used for delivering the jack pointer to codec driver and enable the jack detection function. To make it work, codec driver need to define a callback function to receive the jack pointer and do all necessary procedure for enabling jack detection. Signed-off-by: Bard Liao <bardliao@realtek.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'include')
-rw-r--r--include/sound/soc.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 1d20abec4995..a6d589c340df 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -434,6 +434,8 @@ int snd_soc_codec_set_sysclk(struct snd_soc_codec *codec, int clk_id,
int source, unsigned int freq, int dir);
int snd_soc_codec_set_pll(struct snd_soc_codec *codec, int pll_id, int source,
unsigned int freq_in, unsigned int freq_out);
+int snd_soc_codec_set_jack(struct snd_soc_codec *codec,
+ struct snd_soc_jack *jack, void *data);
int snd_soc_register_card(struct snd_soc_card *card);
int snd_soc_unregister_card(struct snd_soc_card *card);
@@ -908,6 +910,8 @@ struct snd_soc_codec_driver {
int clk_id, int source, unsigned int freq, int dir);
int (*set_pll)(struct snd_soc_codec *codec, int pll_id, int source,
unsigned int freq_in, unsigned int freq_out);
+ int (*set_jack)(struct snd_soc_codec *codec,
+ struct snd_soc_jack *jack, void *data);
/* codec IO */
struct regmap *(*get_regmap)(struct device *);