mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
ASoC: rockchip_max98090: Add HDMI jack support
In machine driver, create a jack and let hdmi-codec report jack status. Signed-off-by: Cheng-Yi Chiang <cychiang@chromium.org> Link: https://lore.kernel.org/r/20191028071930.145899-5-cychiang@chromium.org Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
05b754f5f4
commit
bf2f64ea65
@ -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"
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user