Commit e25f8afd authored by Tzung-Bi Shih's avatar Tzung-Bi Shih Committed by Mark Brown

ASoC: mediatek: mt8183-da7219: support HDMI jack reporting

Supports HDMI jack reporting.
Signed-off-by: default avatarTzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20200710052505.3664118-7-tzungbi@google.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 5bdbe977
...@@ -142,6 +142,7 @@ config SND_SOC_MT8183_DA7219_MAX98357A ...@@ -142,6 +142,7 @@ config SND_SOC_MT8183_DA7219_MAX98357A
select SND_SOC_RT1015 select SND_SOC_RT1015
select SND_SOC_DA7219 select SND_SOC_DA7219
select SND_SOC_BT_SCO select SND_SOC_BT_SCO
select SND_SOC_HDMI_CODEC
help help
This adds ASoC driver for Mediatek MT8183 boards This adds ASoC driver for Mediatek MT8183 boards
with the DA7219 MAX98357A RT1015 audio codec. with the DA7219 MAX98357A RT1015 audio codec.
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_device.h> #include <linux/of_device.h>
#include <linux/pinctrl/consumer.h> #include <linux/pinctrl/consumer.h>
#include <sound/hdmi-codec.h>
#include <sound/jack.h> #include <sound/jack.h>
#include <sound/pcm_params.h> #include <sound/pcm_params.h>
#include <sound/soc.h> #include <sound/soc.h>
...@@ -26,7 +27,7 @@ ...@@ -26,7 +27,7 @@
#define RT1015_DEV1_NAME "rt1015.6-0029" #define RT1015_DEV1_NAME "rt1015.6-0029"
struct mt8183_da7219_max98357_priv { struct mt8183_da7219_max98357_priv {
struct snd_soc_jack headset_jack; struct snd_soc_jack headset_jack, hdmi_jack;
}; };
static int mt8183_mt6358_i2s_hw_params(struct snd_pcm_substream *substream, static int mt8183_mt6358_i2s_hw_params(struct snd_pcm_substream *substream,
...@@ -357,6 +358,21 @@ SND_SOC_DAILINK_DEFS(tdm, ...@@ -357,6 +358,21 @@ SND_SOC_DAILINK_DEFS(tdm,
DAILINK_COMP_ARRAY(COMP_CODEC(NULL, "i2s-hifi")), DAILINK_COMP_ARRAY(COMP_CODEC(NULL, "i2s-hifi")),
DAILINK_COMP_ARRAY(COMP_EMPTY())); DAILINK_COMP_ARRAY(COMP_EMPTY()));
static int mt8183_da7219_max98357_hdmi_init(struct snd_soc_pcm_runtime *rtd)
{
struct mt8183_da7219_max98357_priv *priv =
snd_soc_card_get_drvdata(rtd->card);
int ret;
ret = snd_soc_card_jack_new(rtd->card, "HDMI Jack", SND_JACK_LINEOUT,
&priv->hdmi_jack, NULL, 0);
if (ret)
return ret;
return hdmi_codec_set_jack_detect(asoc_rtd_to_codec(rtd, 0)->component,
&priv->hdmi_jack);
}
static struct snd_soc_dai_link mt8183_da7219_dai_links[] = { static struct snd_soc_dai_link mt8183_da7219_dai_links[] = {
/* FE */ /* FE */
{ {
...@@ -511,6 +527,7 @@ static struct snd_soc_dai_link mt8183_da7219_dai_links[] = { ...@@ -511,6 +527,7 @@ static struct snd_soc_dai_link mt8183_da7219_dai_links[] = {
.dpcm_playback = 1, .dpcm_playback = 1,
.ignore_suspend = 1, .ignore_suspend = 1,
.be_hw_params_fixup = mt8183_i2s_hw_params_fixup, .be_hw_params_fixup = mt8183_i2s_hw_params_fixup,
.init = mt8183_da7219_max98357_hdmi_init,
SND_SOC_DAILINK_REG(tdm), SND_SOC_DAILINK_REG(tdm),
}, },
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment