All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthias Brugger <matthias.bgg@gmail.com>
To: Philipp Zabel <p.zabel@pengutronix.de>, alsa-devel@alsa-project.org
Cc: Jean-Francois Moine <moinejf@free.fr>,
	Koro Chen <koro.chen@mediatek.com>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Russell King - ARM Linux <linux@arm.linux.org.uk>,
	Arnaud Pouliquen <arnaud.pouliquen@st.com>,
	Liam Girdwood <lgirdwood@gmail.com>, Jyri Sarha <jsarha@ti.com>,
	Cawa Cheng <cawa.cheng@mediatek.com>,
	Mark Brown <broonie@kernel.org>,
	linux-mediatek@lists.infradead.org,
	Daniel Kurtz <djkurtz@chromium.org>,
	kernel@pengutronix.de
Subject: Re: [PATCH v5 3/9] ASoC: mediatek: Add HDMI dai-links in the mt8173-rt5650-rt5676 machine driver
Date: Tue, 15 Mar 2016 00:36:27 +0100	[thread overview]
Message-ID: <56E74AFB.6070105@gmail.com> (raw)
In-Reply-To: <1456930153-11853-4-git-send-email-p.zabel@pengutronix.de>



On 02/03/16 15:49, Philipp Zabel wrote:
> From: Koro Chen <koro.chen@mediatek.com>
>
> This creates pcmC0D2p for the HDMI playback in the same card.
>
> Signed-off-by: Koro Chen <koro.chen@mediatek.com>
> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
> ---
>   .../bindings/sound/mt8173-rt5650-rt5676.txt        |  5 ++-
>   sound/soc/mediatek/mt8173-rt5650-rt5676.c          | 48 ++++++++++++++++++++++
>   2 files changed, 51 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/sound/mt8173-rt5650-rt5676.txt b/Documentation/devicetree/bindings/sound/mt8173-rt5650-rt5676.txt
> index f205ce9..ac28cdb 100644
> --- a/Documentation/devicetree/bindings/sound/mt8173-rt5650-rt5676.txt
> +++ b/Documentation/devicetree/bindings/sound/mt8173-rt5650-rt5676.txt
> @@ -1,15 +1,16 @@
> -MT8173 with RT5650 RT5676 CODECS
> +MT8173 with RT5650 RT5676 CODECS and HDMI via I2S
>
>   Required properties:
>   - compatible : "mediatek,mt8173-rt5650-rt5676"
>   - mediatek,audio-codec: the phandles of rt5650 and rt5676 codecs
> +			and of the hdmi encoder node
>   - mediatek,platform: the phandle of MT8173 ASoC platform
>
>   Example:
>
>   	sound {
>   		compatible = "mediatek,mt8173-rt5650-rt5676";
> -		mediatek,audio-codec = <&rt5650 &rt5676>;
> +		mediatek,audio-codec = <&rt5650 &rt5676 &hdmi0>;
>   		mediatek,platform = <&afe>;
>   	};
>
> diff --git a/sound/soc/mediatek/mt8173-rt5650-rt5676.c b/sound/soc/mediatek/mt8173-rt5650-rt5676.c
> index 5c4c58c..def9d95 100644
> --- a/sound/soc/mediatek/mt8173-rt5650-rt5676.c
> +++ b/sound/soc/mediatek/mt8173-rt5650-rt5676.c
> @@ -18,6 +18,7 @@
>   #include <linux/gpio.h>
>   #include <linux/of_gpio.h>
>   #include <sound/soc.h>
> +#include <sound/hdmi-codec.h>
>   #include <sound/jack.h>
>   #include "../codecs/rt5645.h"
>   #include "../codecs/rt5677.h"
> @@ -131,10 +132,31 @@ static struct snd_soc_dai_link_component mt8173_rt5650_rt5676_codecs[] = {
>   	},
>   };
>
> +static struct snd_soc_jack mt8173_hdmi_card_jack;
> +
> +static int mt8173_hdmi_init(struct snd_soc_pcm_runtime *runtime)
> +{
> +	struct snd_soc_card *card = runtime->card;
> +	struct snd_soc_codec *codec = runtime->codec;
> +	int ret;
> +
> +	/* enable jack detection */
> +	ret = snd_soc_card_jack_new(card, "HDMI Jack", SND_JACK_LINEOUT,
> +				    &mt8173_hdmi_card_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(codec, &mt8173_hdmi_card_jack);
> +}
> +
>   enum {
>   	DAI_LINK_PLAYBACK,
>   	DAI_LINK_CAPTURE,
> +	DAI_LINK_HDMI,
>   	DAI_LINK_CODEC_I2S,
> +	DAI_LINK_HDMI_I2S,
>   	DAI_LINK_INTERCODEC
>   };
>
> @@ -161,6 +183,16 @@ static struct snd_soc_dai_link mt8173_rt5650_rt5676_dais[] = {
>   		.dynamic = 1,
>   		.dpcm_capture = 1,
>   	},
> +	[DAI_LINK_HDMI] = {
> +		.name = "HDMI",
> +		.stream_name = "HDMI PCM",
> +		.cpu_dai_name = "HDMI",
> +		.codec_name = "snd-soc-dummy",
> +		.codec_dai_name = "snd-soc-dummy-dai",
> +		.trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
> +		.dynamic = 1,
> +		.dpcm_playback = 1,
> +	},
>
>   	/* Back End DAI links */
>   	[DAI_LINK_CODEC_I2S] = {
> @@ -177,6 +209,14 @@ static struct snd_soc_dai_link mt8173_rt5650_rt5676_dais[] = {
>   		.dpcm_playback = 1,
>   		.dpcm_capture = 1,
>   	},
> +	[DAI_LINK_HDMI_I2S] = {
> +		.name = "HDMI BE",
> +		.cpu_dai_name = "HDMIO",
> +		.no_pcm = 1,
> +		.codec_dai_name = "i2s-hifi",
> +		.dpcm_playback = 1,
> +		.init = mt8173_hdmi_init,
> +	},
>   	/* rt5676 <-> rt5650 intercodec link: Sets rt5676 I2S2 as master */
>   	[DAI_LINK_INTERCODEC] = {
>   		.name = "rt5650_rt5676 intercodec",
> @@ -251,6 +291,14 @@ static int mt8173_rt5650_rt5676_dev_probe(struct platform_device *pdev)
>   	mt8173_rt5650_rt5676_dais[DAI_LINK_INTERCODEC].codec_of_node =
>   		mt8173_rt5650_rt5676_codecs[1].of_node;
>
> +	mt8173_rt5650_rt5676_dais[DAI_LINK_HDMI_I2S].codec_of_node =
> +		of_parse_phandle(pdev->dev.of_node, "mediatek,audio-codec", 2);
> +	if (!mt8173_rt5650_rt5676_dais[DAI_LINK_HDMI_I2S].codec_of_node) {
> +		dev_err(&pdev->dev,
> +			"Property 'audio-codec' missing or invalid\n");
> +		return -EINVAL;

Do we really need to break the old dts binding?
Can't we just drop the return and keep add the audio-codec as optional?

Regards,
Matthias

> +	}
> +
>   	card->dev = &pdev->dev;
>   	platform_set_drvdata(pdev, card);
>
>

  reply	other threads:[~2016-03-14 23:36 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-02 14:49 [PATCH v5 0/9] ASoC: Add mediatek HDMI codec support Philipp Zabel
2016-03-02 14:49 ` [PATCH v5 2/9] ASoC: mediatek: address dai link array entries by enum Philipp Zabel
     [not found] ` <1456930153-11853-1-git-send-email-p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2016-03-02 14:49   ` [PATCH v5 1/9] drm/mediatek: hdmi: Add audio interface to the hdmi-codec driver Philipp Zabel
2016-03-02 14:49   ` [PATCH v5 3/9] ASoC: mediatek: Add HDMI dai-links in the mt8173-rt5650-rt5676 machine driver Philipp Zabel
2016-03-14 23:36     ` Matthias Brugger [this message]
2016-03-15  3:22       ` PC Liao
2016-03-02 14:49   ` [PATCH v5 4/9] video: rmk's HDMI notification prototype Philipp Zabel
2016-03-02 14:49   ` [PATCH v5 5/9] drm/mediatek: hdmi: issue notifications Philipp Zabel
2016-03-02 14:49   ` [PATCH v5 6/9] ASoC: hdmi-codec: Use HDMI notifications to add jack support Philipp Zabel
2016-03-07 22:31     ` Jyri Sarha
2016-03-08  8:31       ` Philipp Zabel
2016-03-02 14:49   ` [PATCH v5 7/9] ASoC: hdmi-codec: Add ELD control Philipp Zabel
2016-03-02 14:49   ` [PATCH v5 8/9] drm/mediatek: hdmi: use helper function for N and CTS calculation Philipp Zabel
2016-03-02 14:49   ` [PATCH v5 9/9] ASoC: mediatek: Add HDMI dai-links to the mt8173-rt5650 machine driver Philipp Zabel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56E74AFB.6070105@gmail.com \
    --to=matthias.bgg@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=arnaud.pouliquen@st.com \
    --cc=broonie@kernel.org \
    --cc=cawa.cheng@mediatek.com \
    --cc=djkurtz@chromium.org \
    --cc=jsarha@ti.com \
    --cc=kernel@pengutronix.de \
    --cc=koro.chen@mediatek.com \
    --cc=lars@metafoo.de \
    --cc=lgirdwood@gmail.com \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux@arm.linux.org.uk \
    --cc=moinejf@free.fr \
    --cc=p.zabel@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.