linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Support SC7180 sound card variation without headset
@ 2020-11-12  1:43 xuyuqing
  2020-11-12  1:43 ` [PATCH v2 1/2] ASoC: google: dt-bindings: add new compatible for sc7180-coachz xuyuqing
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: xuyuqing @ 2020-11-12  1:43 UTC (permalink / raw)
  To: linux-kernel
  Cc: Mark Brown, Taniya Das, Rohit kumar, Banajit Goswami,
	Patrick Lai, Andy Gross, Bjorn Andersson, Liam Girdwood,
	Rob Herring, Jaroslav Kysela, Takashi Iwai, Srini Kandagatla,
	Stephan Gerhold, dianders, dgreid, tzungbi, cychiang, judyhsiao,
	linux-arm-kernel, linux-arm-msm, devicetree, alsa-devel,
	zhouguohui, xuyuqing

Use compatible string to let machine driver handle the case
where ALC5682 headset codec is replaced with ADAU7002 dmic codec

xuyuqing (2):
  ASoC: google: dt-bindings: add new compatible for sc7180-coachz
  ASoC: qcom: sc7180: Add machine driver for sound card

 .../bindings/sound/google,sc7180-trogdor.yaml |  4 +-
 sound/soc/qcom/Kconfig                        |  1 +
 sound/soc/qcom/sc7180.c                       | 86 ++++++++++++++++---
 3 files changed, 77 insertions(+), 14 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2 1/2] ASoC: google: dt-bindings: add new compatible for sc7180-coachz
  2020-11-12  1:43 [PATCH v2 0/2] Support SC7180 sound card variation without headset xuyuqing
@ 2020-11-12  1:43 ` xuyuqing
  2020-11-12 15:36   ` Rob Herring
  2020-11-12  1:43 ` [PATCH v2 2/2] ASoC: qcom: sc7180: Modify machine driver for sound card xuyuqing
  2020-11-12 19:38 ` [PATCH v2 0/2] Support SC7180 sound card variation without headset Mark Brown
  2 siblings, 1 reply; 5+ messages in thread
From: xuyuqing @ 2020-11-12  1:43 UTC (permalink / raw)
  To: linux-kernel
  Cc: Mark Brown, Taniya Das, Rohit kumar, Banajit Goswami,
	Patrick Lai, Andy Gross, Bjorn Andersson, Liam Girdwood,
	Rob Herring, Jaroslav Kysela, Takashi Iwai, Srini Kandagatla,
	Stephan Gerhold, dianders, dgreid, tzungbi, cychiang, judyhsiao,
	linux-arm-kernel, linux-arm-msm, devicetree, alsa-devel,
	zhouguohui, xuyuqing

Add devicetree bindings for coachz in documentation file

Signed-off-by: xuyuqing <xuyuqing@huaqin.corp-partner.google.com>
---
 .../devicetree/bindings/sound/google,sc7180-trogdor.yaml      | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/sound/google,sc7180-trogdor.yaml b/Documentation/devicetree/bindings/sound/google,sc7180-trogdor.yaml
index ce050a9dec94..5095b780e2c7 100644
--- a/Documentation/devicetree/bindings/sound/google,sc7180-trogdor.yaml
+++ b/Documentation/devicetree/bindings/sound/google,sc7180-trogdor.yaml
@@ -15,7 +15,9 @@ description:
 
 properties:
   compatible:
-    const: google,sc7180-trogdor
+    enum:
+      - google,sc7180-trogdor
+      - google,sc7180-coachz
 
   audio-routing:
     $ref: /schemas/types.yaml#/definitions/non-unique-string-array
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2 2/2] ASoC: qcom: sc7180: Modify machine driver for sound card
  2020-11-12  1:43 [PATCH v2 0/2] Support SC7180 sound card variation without headset xuyuqing
  2020-11-12  1:43 ` [PATCH v2 1/2] ASoC: google: dt-bindings: add new compatible for sc7180-coachz xuyuqing
@ 2020-11-12  1:43 ` xuyuqing
  2020-11-12 19:38 ` [PATCH v2 0/2] Support SC7180 sound card variation without headset Mark Brown
  2 siblings, 0 replies; 5+ messages in thread
From: xuyuqing @ 2020-11-12  1:43 UTC (permalink / raw)
  To: linux-kernel
  Cc: Mark Brown, Taniya Das, Rohit kumar, Banajit Goswami,
	Patrick Lai, Andy Gross, Bjorn Andersson, Liam Girdwood,
	Rob Herring, Jaroslav Kysela, Takashi Iwai, Srini Kandagatla,
	Stephan Gerhold, dianders, dgreid, tzungbi, cychiang, judyhsiao,
	linux-arm-kernel, linux-arm-msm, devicetree, alsa-devel,
	zhouguohui, xuyuqing

Bypass set jack because there is no jack on coachz.
Create route for dmic.

Signed-off-by: xuyuqing <xuyuqing@huaqin.corp-partner.google.com>
---
 sound/soc/qcom/Kconfig  |  1 +
 sound/soc/qcom/sc7180.c | 86 ++++++++++++++++++++++++++++++++++-------
 2 files changed, 74 insertions(+), 13 deletions(-)

diff --git a/sound/soc/qcom/Kconfig b/sound/soc/qcom/Kconfig
index 41cb08bd5588..27f93006be96 100644
--- a/sound/soc/qcom/Kconfig
+++ b/sound/soc/qcom/Kconfig
@@ -145,6 +145,7 @@ config SND_SOC_SC7180
 	select SND_SOC_LPASS_SC7180
 	select SND_SOC_MAX98357A
 	select SND_SOC_RT5682_I2C
+	select SND_SOC_ADAU7002
 	help
 	  To add support for audio on Qualcomm Technologies Inc.
 	  SC7180 SoC-based systems.
diff --git a/sound/soc/qcom/sc7180.c b/sound/soc/qcom/sc7180.c
index 878fd0169aab..e2e6567566af 100644
--- a/sound/soc/qcom/sc7180.c
+++ b/sound/soc/qcom/sc7180.c
@@ -221,16 +221,69 @@ static void sc7180_snd_shutdown(struct snd_pcm_substream *substream)
 	}
 }
 
+static int sc7180_adau7002_init(struct snd_soc_pcm_runtime *rtd)
+{
+	struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0);
+
+	switch (cpu_dai->id) {
+	case MI2S_PRIMARY:
+		return 0;
+	case MI2S_SECONDARY:
+		return 0;
+	case LPASS_DP_RX:
+		return sc7180_hdmi_init(rtd);
+	default:
+		dev_err(rtd->dev, "%s: invalid dai id 0x%x\n", __func__,
+			cpu_dai->id);
+		return -EINVAL;
+	}
+	return 0;
+}
+
+static int sc7180_adau7002_snd_startup(struct snd_pcm_substream *substream)
+{
+	struct snd_soc_pcm_runtime *rtd = substream->private_data;
+	struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0);
+	struct snd_soc_dai *codec_dai = asoc_rtd_to_codec(rtd, 0);
+
+	switch (cpu_dai->id) {
+	case MI2S_PRIMARY:
+		snd_soc_dai_set_fmt(codec_dai,
+				    SND_SOC_DAIFMT_CBS_CFS |
+				    SND_SOC_DAIFMT_NB_NF |
+				    SND_SOC_DAIFMT_I2S);
+
+		break;
+	case MI2S_SECONDARY:
+		break;
+	case LPASS_DP_RX:
+		break;
+	default:
+		dev_err(rtd->dev, "%s: invalid dai id 0x%x\n", __func__,
+			cpu_dai->id);
+		return -EINVAL;
+	}
+	return 0;
+}
+
 static const struct snd_soc_ops sc7180_ops = {
 	.startup = sc7180_snd_startup,
 	.shutdown = sc7180_snd_shutdown,
 };
 
+static const struct snd_soc_ops sc7180_adau7002_ops = {
+	.startup = sc7180_adau7002_snd_startup,
+};
+
 static const struct snd_soc_dapm_widget sc7180_snd_widgets[] = {
 	SND_SOC_DAPM_HP("Headphone Jack", NULL),
 	SND_SOC_DAPM_MIC("Headset Mic", NULL),
 };
 
+static const struct snd_soc_dapm_widget sc7180_adau7002_snd_widgets[] = {
+	SND_SOC_DAPM_MIC("DMIC", NULL),
+};
+
 static const char * const dmic_mux_text[] = {
 	"Front Mic",
 	"Rear Mic",
@@ -255,23 +308,15 @@ static const struct snd_soc_dapm_route sc7180_snd_dual_mic_audio_route[] = {
 	{"Dmic Mux", "Rear Mic", "DMIC"},
 };
 
-static void sc7180_add_ops(struct snd_soc_card *card)
-{
-	struct snd_soc_dai_link *link;
-	int i;
-
-	for_each_card_prelinks(card, i, link) {
-		link->ops = &sc7180_ops;
-		link->init = sc7180_init;
-	}
-}
-
 static int sc7180_snd_platform_probe(struct platform_device *pdev)
 {
 	struct snd_soc_card *card;
 	struct sc7180_snd_data *data;
 	struct device *dev = &pdev->dev;
+	struct snd_soc_dai_link *link;
 	int ret;
+	int i;
+	bool no_headphone;
 
 	/* Allocate the private data */
 	data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
@@ -299,17 +344,32 @@ static int sc7180_snd_platform_probe(struct platform_device *pdev)
 		}
 	}
 
+	if (of_device_is_compatible(dev->of_node, "google,sc7180-coachz")) {
+		no_headphone = true;
+		card->dapm_widgets = sc7180_adau7002_snd_widgets;
+		card->num_dapm_widgets = ARRAY_SIZE(sc7180_adau7002_snd_widgets);
+	}
+
 	ret = qcom_snd_parse_of(card);
 	if (ret)
 		return ret;
 
-	sc7180_add_ops(card);
+	for_each_card_prelinks(card, i, link) {
+		if (no_headphone) {
+			link->ops = &sc7180_adau7002_ops;
+			link->init = sc7180_adau7002_init;
+		} else {
+			link->ops = &sc7180_ops;
+			link->init = sc7180_init;
+		}
+	}
 
 	return devm_snd_soc_register_card(dev, card);
 }
 
 static const struct of_device_id sc7180_snd_device_id[]  = {
-	{ .compatible = "google,sc7180-trogdor"},
+	{.compatible = "google,sc7180-trogdor"},
+	{.compatible = "google,sc7180-coachz"},
 	{},
 };
 MODULE_DEVICE_TABLE(of, sc7180_snd_device_id);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 1/2] ASoC: google: dt-bindings: add new compatible for sc7180-coachz
  2020-11-12  1:43 ` [PATCH v2 1/2] ASoC: google: dt-bindings: add new compatible for sc7180-coachz xuyuqing
@ 2020-11-12 15:36   ` Rob Herring
  0 siblings, 0 replies; 5+ messages in thread
From: Rob Herring @ 2020-11-12 15:36 UTC (permalink / raw)
  To: xuyuqing
  Cc: alsa-devel, Rob Herring, linux-arm-kernel, tzungbi,
	Liam Girdwood, Mark Brown, dgreid, cychiang, Rohit kumar,
	Bjorn Andersson, Patrick Lai, devicetree, Srini Kandagatla,
	Takashi Iwai, linux-arm-msm, judyhsiao, Andy Gross,
	Banajit Goswami, linux-kernel, zhouguohui, dianders,
	Stephan Gerhold, Taniya Das

On Thu, 12 Nov 2020 09:43:27 +0800, xuyuqing wrote:
> Add devicetree bindings for coachz in documentation file
> 
> Signed-off-by: xuyuqing <xuyuqing@huaqin.corp-partner.google.com>
> ---
>  .../devicetree/bindings/sound/google,sc7180-trogdor.yaml      | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 


Please add Acked-by/Reviewed-by tags when posting new versions. However,
there's no need to repost patches *only* to add the tags. The upstream
maintainer will do that for acks received on the version they apply.

If a tag was not added on purpose, please state why and what changed.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 0/2] Support SC7180 sound card variation without headset
  2020-11-12  1:43 [PATCH v2 0/2] Support SC7180 sound card variation without headset xuyuqing
  2020-11-12  1:43 ` [PATCH v2 1/2] ASoC: google: dt-bindings: add new compatible for sc7180-coachz xuyuqing
  2020-11-12  1:43 ` [PATCH v2 2/2] ASoC: qcom: sc7180: Modify machine driver for sound card xuyuqing
@ 2020-11-12 19:38 ` Mark Brown
  2 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2020-11-12 19:38 UTC (permalink / raw)
  To: xuyuqing, linux-kernel
  Cc: Liam Girdwood, cychiang, Bjorn Andersson, tzungbi,
	Banajit Goswami, judyhsiao, linux-arm-msm, Takashi Iwai,
	Rob Herring, Andy Gross, Rohit kumar, Srini Kandagatla,
	linux-arm-kernel, Stephan Gerhold, Taniya Das, devicetree,
	zhouguohui, Patrick Lai, alsa-devel, dianders, dgreid

On Thu, 12 Nov 2020 09:43:26 +0800, xuyuqing wrote:
> Use compatible string to let machine driver handle the case
> where ALC5682 headset codec is replaced with ADAU7002 dmic codec
> 
> xuyuqing (2):
>   ASoC: google: dt-bindings: add new compatible for sc7180-coachz
>   ASoC: qcom: sc7180: Add machine driver for sound card
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/2] ASoC: google: dt-bindings: add new compatible for sc7180-coachz
      commit: 80e2b1208d87fc46b6980da99a173130082c7af4
[2/2] ASoC: qcom: sc7180: Modify machine driver for sound card
      commit: e936619b7ce784c808a8e2524f712a89ef245920

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-11-12 19:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-12  1:43 [PATCH v2 0/2] Support SC7180 sound card variation without headset xuyuqing
2020-11-12  1:43 ` [PATCH v2 1/2] ASoC: google: dt-bindings: add new compatible for sc7180-coachz xuyuqing
2020-11-12 15:36   ` Rob Herring
2020-11-12  1:43 ` [PATCH v2 2/2] ASoC: qcom: sc7180: Modify machine driver for sound card xuyuqing
2020-11-12 19:38 ` [PATCH v2 0/2] Support SC7180 sound card variation without headset Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).