All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Update machine driver for audioreach solution
@ 2022-06-22 10:13 Srinivasa Rao Mandadapu
  2022-06-22 10:13 ` [PATCH 1/2] ASoC: google: dt-bindings: Update sc7280-audioreach-herobrine compatible name Srinivasa Rao Mandadapu
  2022-06-22 10:13 ` [PATCH 2/2] ASoC: qcom: Add driver support for audioreach solution Srinivasa Rao Mandadapu
  0 siblings, 2 replies; 7+ messages in thread
From: Srinivasa Rao Mandadapu @ 2022-06-22 10:13 UTC (permalink / raw)
  To: agross, bjorn.andersson, lgirdwood, broonie, robh+dt, quic_plai,
	bgoswami, perex, tiwai, srinivas.kandagatla, quic_rohkumar,
	linux-arm-msm, alsa-devel, linux-kernel, swboyd, judyhsiao,
	devicetree
  Cc: Srinivasa Rao Mandadapu

This patch set is to update sc7280 machine driver for audioreach support.

Srinivasa Rao Mandadapu (2):
  ASoC: google: dt-bindings: Update sc7280-audioreach-herobrine
    compatible name
  ASoC: qcom: Add driver support for audioreach solution

 .../bindings/sound/google,sc7280-herobrine.yaml    |  1 +
 sound/soc/qcom/sc7280.c                            | 34 ++++++++++++++++++++++
 2 files changed, 35 insertions(+)

-- 
2.7.4


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

* [PATCH 1/2] ASoC: google: dt-bindings: Update sc7280-audioreach-herobrine compatible name
  2022-06-22 10:13 [PATCH 0/2] Update machine driver for audioreach solution Srinivasa Rao Mandadapu
@ 2022-06-22 10:13 ` Srinivasa Rao Mandadapu
  2022-06-22 12:46     ` Mark Brown
  2022-06-22 10:13 ` [PATCH 2/2] ASoC: qcom: Add driver support for audioreach solution Srinivasa Rao Mandadapu
  1 sibling, 1 reply; 7+ messages in thread
From: Srinivasa Rao Mandadapu @ 2022-06-22 10:13 UTC (permalink / raw)
  To: agross, bjorn.andersson, lgirdwood, broonie, robh+dt, quic_plai,
	bgoswami, perex, tiwai, srinivas.kandagatla, quic_rohkumar,
	linux-arm-msm, alsa-devel, linux-kernel, swboyd, judyhsiao,
	devicetree
  Cc: Srinivasa Rao Mandadapu

Update audioreach based compatible string for sc7280 based ADSP enabled
platforms.

Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
---
 Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
index 869b403..d3885e5 100644
--- a/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
+++ b/Documentation/devicetree/bindings/sound/google,sc7280-herobrine.yaml
@@ -17,6 +17,7 @@ properties:
   compatible:
     enum:
       - google,sc7280-herobrine
+      - google,sc7280-audioreach-herobrine
 
   audio-routing:
     $ref: /schemas/types.yaml#/definitions/non-unique-string-array
-- 
2.7.4


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

* [PATCH 2/2] ASoC: qcom: Add driver support for audioreach solution
  2022-06-22 10:13 [PATCH 0/2] Update machine driver for audioreach solution Srinivasa Rao Mandadapu
  2022-06-22 10:13 ` [PATCH 1/2] ASoC: google: dt-bindings: Update sc7280-audioreach-herobrine compatible name Srinivasa Rao Mandadapu
@ 2022-06-22 10:13 ` Srinivasa Rao Mandadapu
  1 sibling, 0 replies; 7+ messages in thread
From: Srinivasa Rao Mandadapu @ 2022-06-22 10:13 UTC (permalink / raw)
  To: agross, bjorn.andersson, lgirdwood, broonie, robh+dt, quic_plai,
	bgoswami, perex, tiwai, srinivas.kandagatla, quic_rohkumar,
	linux-arm-msm, alsa-devel, linux-kernel, swboyd, judyhsiao,
	devicetree
  Cc: Srinivasa Rao Mandadapu

Add Machine driver support for audioreach solution, which uses
ADSP in SC7280 based paltforms.

Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
---
 sound/soc/qcom/sc7280.c | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/sound/soc/qcom/sc7280.c b/sound/soc/qcom/sc7280.c
index 34cdb99..abe261c 100644
--- a/sound/soc/qcom/sc7280.c
+++ b/sound/soc/qcom/sc7280.c
@@ -19,9 +19,11 @@
 #include "../codecs/rt5682s.h"
 #include "common.h"
 #include "lpass.h"
+#include "qdsp6/q6afe.h"
 
 #define DEFAULT_MCLK_RATE              19200000
 #define RT5682_PLL_FREQ (48000 * 512)
+#define MI2S_BCLK_RATE		1536000
 
 struct sc7280_snd_data {
 	struct snd_soc_card card;
@@ -79,6 +81,7 @@ static int sc7280_headset_init(struct snd_soc_pcm_runtime *rtd)
 	case MI2S_PRIMARY:
 	case LPASS_CDC_DMA_RX0:
 	case LPASS_CDC_DMA_TX3:
+	case TX_CODEC_DMA_TX_3:
 		for_each_rtd_codec_dais(rtd, i, codec_dai) {
 			rval = snd_soc_component_set_jack(component, &pdata->hs_jack, NULL);
 			if (rval != 0 && rval != -ENOTSUPP) {
@@ -164,10 +167,14 @@ static int sc7280_init(struct snd_soc_pcm_runtime *rtd)
 	switch (cpu_dai->id) {
 	case MI2S_PRIMARY:
 	case LPASS_CDC_DMA_TX3:
+	case TX_CODEC_DMA_TX_3:
 		return sc7280_headset_init(rtd);
 	case LPASS_CDC_DMA_RX0:
 	case LPASS_CDC_DMA_VA_TX0:
 	case MI2S_SECONDARY:
+	case RX_CODEC_DMA_RX_0:
+	case SECONDARY_MI2S_RX:
+	case VA_CODEC_DMA_TX_0:
 		return 0;
 	case LPASS_DP_RX:
 		return sc7280_hdmi_init(rtd);
@@ -195,6 +202,10 @@ static int sc7280_snd_hw_params(struct snd_pcm_substream *substream,
 	switch (cpu_dai->id) {
 	case LPASS_CDC_DMA_TX3:
 	case LPASS_CDC_DMA_RX0:
+	case RX_CODEC_DMA_RX_0:
+	case SECONDARY_MI2S_RX:
+	case TX_CODEC_DMA_TX_3:
+	case VA_CODEC_DMA_TX_0:
 		for_each_rtd_codec_dais(rtd, i, codec_dai) {
 			sruntime = snd_soc_dai_get_stream(codec_dai, substream->stream);
 			if (sruntime != ERR_PTR(-ENOTSUPP))
@@ -245,6 +256,9 @@ static int sc7280_snd_prepare(struct snd_pcm_substream *substream)
 	switch (cpu_dai->id) {
 	case LPASS_CDC_DMA_RX0:
 	case LPASS_CDC_DMA_TX3:
+	case RX_CODEC_DMA_RX_0:
+	case TX_CODEC_DMA_TX_3:
+	case VA_CODEC_DMA_TX_0:
 		return sc7280_snd_swr_prepare(substream);
 	default:
 		break;
@@ -263,6 +277,9 @@ static int sc7280_snd_hw_free(struct snd_pcm_substream *substream)
 	switch (cpu_dai->id) {
 	case LPASS_CDC_DMA_RX0:
 	case LPASS_CDC_DMA_TX3:
+	case RX_CODEC_DMA_RX_0:
+	case TX_CODEC_DMA_TX_3:
+	case VA_CODEC_DMA_TX_0:
 		if (sruntime && data->stream_prepared[cpu_dai->id]) {
 			sdw_disable_stream(sruntime);
 			sdw_deprepare_stream(sruntime);
@@ -291,6 +308,10 @@ static void sc7280_snd_shutdown(struct snd_pcm_substream *substream)
 					       SNDRV_PCM_STREAM_PLAYBACK);
 		}
 		break;
+	case SECONDARY_MI2S_RX:
+		snd_soc_dai_set_sysclk(cpu_dai, Q6AFE_LPASS_CLK_ID_SEC_MI2S_IBIT,
+					       0, SNDRV_PCM_STREAM_PLAYBACK);
+		break;
 	default:
 		break;
 	}
@@ -298,14 +319,26 @@ static void sc7280_snd_shutdown(struct snd_pcm_substream *substream)
 
 static int sc7280_snd_startup(struct snd_pcm_substream *substream)
 {
+	unsigned int fmt = SND_SOC_DAIFMT_CBS_CFS;
+	unsigned int codec_dai_fmt = SND_SOC_DAIFMT_CBS_CFS;
 	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);
 	int ret = 0;
 
 	switch (cpu_dai->id) {
 	case MI2S_PRIMARY:
 		ret = sc7280_rt5682_init(rtd);
 		break;
+	case SECONDARY_MI2S_RX:
+		codec_dai_fmt |= SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_I2S;
+
+		snd_soc_dai_set_sysclk(cpu_dai, Q6AFE_LPASS_CLK_ID_SEC_MI2S_IBIT,
+			MI2S_BCLK_RATE, SNDRV_PCM_STREAM_PLAYBACK);
+
+		snd_soc_dai_set_fmt(cpu_dai, fmt);
+		snd_soc_dai_set_fmt(codec_dai, codec_dai_fmt);
+		break;
 	default:
 		break;
 	}
@@ -361,6 +394,7 @@ static int sc7280_snd_platform_probe(struct platform_device *pdev)
 
 static const struct of_device_id sc7280_snd_device_id[]  = {
 	{ .compatible = "google,sc7280-herobrine" },
+	{ .compatible = "google,sc7280-audioreach-herobrine" },
 	{}
 };
 MODULE_DEVICE_TABLE(of, sc7280_snd_device_id);
-- 
2.7.4


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

* Re: [PATCH 1/2] ASoC: google: dt-bindings: Update sc7280-audioreach-herobrine compatible name
  2022-06-22 10:13 ` [PATCH 1/2] ASoC: google: dt-bindings: Update sc7280-audioreach-herobrine compatible name Srinivasa Rao Mandadapu
@ 2022-06-22 12:46     ` Mark Brown
  0 siblings, 0 replies; 7+ messages in thread
From: Mark Brown @ 2022-06-22 12:46 UTC (permalink / raw)
  To: Srinivasa Rao Mandadapu
  Cc: agross, bjorn.andersson, lgirdwood, robh+dt, quic_plai, bgoswami,
	perex, tiwai, srinivas.kandagatla, quic_rohkumar, linux-arm-msm,
	alsa-devel, linux-kernel, swboyd, judyhsiao, devicetree

[-- Attachment #1: Type: text/plain, Size: 329 bytes --]

On Wed, Jun 22, 2022 at 03:43:18PM +0530, Srinivasa Rao Mandadapu wrote:
> Update audioreach based compatible string for sc7280 based ADSP enabled
> platforms.

>    compatible:
>      enum:
>        - google,sc7280-herobrine
> +      - google,sc7280-audioreach-herobrine

Isn't the DSP firmware selection a purely software one?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

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

* Re: [PATCH 1/2] ASoC: google: dt-bindings: Update sc7280-audioreach-herobrine compatible name
@ 2022-06-22 12:46     ` Mark Brown
  0 siblings, 0 replies; 7+ messages in thread
From: Mark Brown @ 2022-06-22 12:46 UTC (permalink / raw)
  To: Srinivasa Rao Mandadapu
  Cc: devicetree, alsa-devel, quic_rohkumar, linux-arm-msm, swboyd,
	tiwai, lgirdwood, robh+dt, bjorn.andersson, agross,
	srinivas.kandagatla, bgoswami, quic_plai, judyhsiao,
	linux-kernel

[-- Attachment #1: Type: text/plain, Size: 329 bytes --]

On Wed, Jun 22, 2022 at 03:43:18PM +0530, Srinivasa Rao Mandadapu wrote:
> Update audioreach based compatible string for sc7280 based ADSP enabled
> platforms.

>    compatible:
>      enum:
>        - google,sc7280-herobrine
> +      - google,sc7280-audioreach-herobrine

Isn't the DSP firmware selection a purely software one?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

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

* Re: [PATCH 1/2] ASoC: google: dt-bindings: Update sc7280-audioreach-herobrine compatible name
  2022-06-22 12:46     ` Mark Brown
@ 2022-06-27  3:59       ` Srinivasa Rao Mandadapu
  -1 siblings, 0 replies; 7+ messages in thread
From: Srinivasa Rao Mandadapu @ 2022-06-27  3:59 UTC (permalink / raw)
  To: Mark Brown
  Cc: agross, bjorn.andersson, lgirdwood, robh+dt, quic_plai, bgoswami,
	perex, tiwai, srinivas.kandagatla, quic_rohkumar, linux-arm-msm,
	alsa-devel, linux-kernel, swboyd, judyhsiao, devicetree


On 6/22/2022 6:16 PM, Mark Brown wrote:
Thanks for Your Time Mark Brown!!
> On Wed, Jun 22, 2022 at 03:43:18PM +0530, Srinivasa Rao Mandadapu wrote:
>> Update audioreach based compatible string for sc7280 based ADSP enabled
>> platforms.
>>     compatible:
>>       enum:
>>         - google,sc7280-herobrine
>> +      - google,sc7280-audioreach-herobrine
> Isn't the DSP firmware selection a purely software one?
Yes. It's purely software related. will discard this additional 
compatible string, and re-spin the patch.

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

* Re: [PATCH 1/2] ASoC: google: dt-bindings: Update sc7280-audioreach-herobrine compatible name
@ 2022-06-27  3:59       ` Srinivasa Rao Mandadapu
  0 siblings, 0 replies; 7+ messages in thread
From: Srinivasa Rao Mandadapu @ 2022-06-27  3:59 UTC (permalink / raw)
  To: Mark Brown
  Cc: devicetree, alsa-devel, quic_rohkumar, linux-arm-msm, swboyd,
	tiwai, lgirdwood, robh+dt, bjorn.andersson, agross,
	srinivas.kandagatla, bgoswami, quic_plai, judyhsiao,
	linux-kernel


On 6/22/2022 6:16 PM, Mark Brown wrote:
Thanks for Your Time Mark Brown!!
> On Wed, Jun 22, 2022 at 03:43:18PM +0530, Srinivasa Rao Mandadapu wrote:
>> Update audioreach based compatible string for sc7280 based ADSP enabled
>> platforms.
>>     compatible:
>>       enum:
>>         - google,sc7280-herobrine
>> +      - google,sc7280-audioreach-herobrine
> Isn't the DSP firmware selection a purely software one?
Yes. It's purely software related. will discard this additional 
compatible string, and re-spin the patch.

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

end of thread, other threads:[~2022-06-27  4:01 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-22 10:13 [PATCH 0/2] Update machine driver for audioreach solution Srinivasa Rao Mandadapu
2022-06-22 10:13 ` [PATCH 1/2] ASoC: google: dt-bindings: Update sc7280-audioreach-herobrine compatible name Srinivasa Rao Mandadapu
2022-06-22 12:46   ` Mark Brown
2022-06-22 12:46     ` Mark Brown
2022-06-27  3:59     ` Srinivasa Rao Mandadapu
2022-06-27  3:59       ` Srinivasa Rao Mandadapu
2022-06-22 10:13 ` [PATCH 2/2] ASoC: qcom: Add driver support for audioreach solution Srinivasa Rao Mandadapu

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.