Unverified Commit bf2f64ea authored by Cheng-Yi Chiang's avatar Cheng-Yi Chiang Committed by Mark Brown
Browse files

ASoC: rockchip_max98090: Add HDMI jack support



In machine driver, create a jack and let hdmi-codec report jack status.

Signed-off-by: default avatarCheng-Yi Chiang <cychiang@chromium.org>
Link: https://lore.kernel.org/r/20191028071930.145899-5-cychiang@chromium.org


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 05b754f5
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -40,9 +40,10 @@ config SND_SOC_ROCKCHIP_MAX98090
	select SND_SOC_ROCKCHIP_I2S
	select SND_SOC_MAX98090
	select SND_SOC_TS3A227E
	select SND_SOC_HDMI_CODEC
	help
	  Say Y or M here if you want to add support for SoC audio on Rockchip
	  boards using the MAX98090 codec, such as Veyron.
	  boards using the MAX98090 codec and HDMI codec, such as Veyron.

config SND_SOC_ROCKCHIP_RT5645
	tristate "ASoC support for Rockchip boards using a RT5645/RT5650 codec"
+22 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@
#include <linux/gpio.h>
#include <linux/of_gpio.h>
#include <sound/core.h>
#include <sound/hdmi-codec.h>
#include <sound/jack.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
@@ -218,6 +219,25 @@ enum {
	DAILINK_HDMI,
};

static struct snd_soc_jack rk_hdmi_jack;

static int rk_hdmi_init(struct snd_soc_pcm_runtime *runtime)
{
	struct snd_soc_card *card = runtime->card;
	struct snd_soc_component *component = runtime->codec_dai->component;
	int ret;

	/* enable jack detection */
	ret = snd_soc_card_jack_new(card, "HDMI Jack", SND_JACK_LINEOUT,
				    &rk_hdmi_jack, NULL, 0);
	if (ret) {
		dev_err(card->dev, "Can't new HDMI Jack %d\n", ret);
		return ret;
	}

	return hdmi_codec_set_jack_detect(component, &rk_hdmi_jack);
}

/* max98090 dai_link */
static struct snd_soc_dai_link rk_max98090_dailinks[] = {
	{
@@ -237,6 +257,7 @@ static struct snd_soc_dai_link rk_hdmi_dailinks[] = {
	{
		.name = "HDMI",
		.stream_name = "HDMI",
		.init = rk_hdmi_init,
		.ops = &rk_aif1_ops,
		.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
			SND_SOC_DAIFMT_CBS_CFS,
@@ -259,6 +280,7 @@ static struct snd_soc_dai_link rk_max98090_hdmi_dailinks[] = {
	[DAILINK_HDMI] = {
		.name = "HDMI",
		.stream_name = "HDMI",
		.init = rk_hdmi_init,
		.ops = &rk_aif1_ops,
		.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
			SND_SOC_DAIFMT_CBS_CFS,