public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH v2] ASoC: Intel: sof_rt5682: add jsl_rt5650 board config
  2023-07-10 14:16 [PATCH v2] ASoC: Intel: sof_rt5682: add jsl_rt5650 board config Brent Lu
@ 2023-07-10  7:35 ` Pierre-Louis Bossart
  2023-07-12  1:59   ` Lu, Brent
  0 siblings, 1 reply; 3+ messages in thread
From: Pierre-Louis Bossart @ 2023-07-10  7:35 UTC (permalink / raw)
  To: Brent Lu, alsa-devel
  Cc: Cezary Rojewski, Liam Girdwood, Peter Ujfalusi, Bard Liao,
	Ranjani Sridharan, Kai Vehmanen, Mark Brown, Jaroslav Kysela,
	Takashi Iwai, Yong Zhi, Uday M Bhat, Gongjun Song, Ajye Huang,
	Arnd Bergmann, Terry Cheong, Dharageswari . R, Mac Chiang,
	Kuninori Morimoto, linux-kernel



On 7/10/23 16:16, Brent Lu wrote:
> This configuration supports JSL boards which implement ALC5650 dual
> I2S interface codec. Two DAI links are added: AIF1 (on codec side) for
> headphone and AIF2 for speakers.
> 
> Signed-off-by: Brent Lu <brent.lu@intel.com>
> ---
>  sound/soc/intel/boards/Kconfig                |  5 +-
>  sound/soc/intel/boards/sof_rt5682.c           | 81 ++++++++++++++++++-
>  .../intel/common/soc-acpi-intel-jsl-match.c   | 12 +++
>  3 files changed, 93 insertions(+), 5 deletions(-)
> 
> diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
> index f472f603ab75..1fe830af2b84 100644
> --- a/sound/soc/intel/boards/Kconfig
> +++ b/sound/soc/intel/boards/Kconfig
> @@ -475,7 +475,7 @@ endif ## SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC || SND_SOC_SOF_HDA_AUDIO_CODEC
>  
>  if SND_SOC_SOF_HDA_LINK || SND_SOC_SOF_BAYTRAIL
>  config SND_SOC_INTEL_SOF_RT5682_MACH
> -	tristate "SOF with rt5682 codec in I2S Mode"
> +	tristate "SOF with rt5650/rt5682 codec in I2S Mode"
>  	depends on I2C && ACPI
>  	depends on ((SND_HDA_CODEC_HDMI && SND_SOC_SOF_HDA_AUDIO_CODEC) &&\
>  		    (MFD_INTEL_LPSS || COMPILE_TEST)) ||\
> @@ -485,6 +485,7 @@ config SND_SOC_INTEL_SOF_RT5682_MACH
>  	select SND_SOC_RT1011
>  	select SND_SOC_RT1015
>  	select SND_SOC_RT1015P
> +	select SND_SOC_RT5645
>  	select SND_SOC_RT5682_I2C
>  	select SND_SOC_RT5682S
>  	select SND_SOC_DMIC
> @@ -494,7 +495,7 @@ config SND_SOC_INTEL_SOF_RT5682_MACH
>  	select SND_SOC_INTEL_SOF_REALTEK_COMMON
>  	help
>  	   This adds support for ASoC machine driver for SOF platforms
> -	   with rt5682 codec.
> +	   with rt5650 or rt5682 codec.
>  	   Say Y if you have such a device.
>  	   If unsure select "N".
>  
> diff --git a/sound/soc/intel/boards/sof_rt5682.c b/sound/soc/intel/boards/sof_rt5682.c
> index 7c034d671cf3..53451c1b67f8 100644
> --- a/sound/soc/intel/boards/sof_rt5682.c
> +++ b/sound/soc/intel/boards/sof_rt5682.c
> @@ -22,6 +22,7 @@
>  #include <sound/soc-acpi.h>
>  #include "../../codecs/rt5682.h"
>  #include "../../codecs/rt5682s.h"
> +#include "../../codecs/rt5645.h"
>  #include "../../codecs/hdac_hdmi.h"
>  #include "../common/soc-intel-quirks.h"
>  #include "hda_dsp_common.h"
> @@ -60,6 +61,7 @@
>  #define SOF_MAX98390_SPEAKER_AMP_PRESENT	BIT(24)
>  #define SOF_MAX98390_TWEETER_SPEAKER_PRESENT	BIT(25)
>  #define SOF_RT1019_SPEAKER_AMP_PRESENT	BIT(26)
> +#define SOF_RT5650_HEADPHONE_CODEC_PRESENT	BIT(27)
>  
>  
>  /* Default: MCLK on, MCLK 19.2M, SSP0  */
> @@ -305,7 +307,7 @@ static int sof_rt5682_codec_init(struct snd_soc_pcm_runtime *rtd)
>  	struct sof_card_private *ctx = snd_soc_card_get_drvdata(rtd->card);
>  	struct snd_soc_component *component = asoc_rtd_to_codec(rtd, 0)->component;
>  	struct snd_soc_jack *jack;
> -	int ret;
> +	int ret, extra;

two lines, and rename to e.g. extra_jack_data


> +	if (sof_rt5682_quirk & SOF_RT5650_HEADPHONE_CODEC_PRESENT) {
> +		extra = SND_JACK_MICROPHONE | SND_JACK_BTN_0;
> +		ret = snd_soc_component_set_jack(component, jack, &extra);

I am a bit confused on why this wasn't set for rt5682?

> +	} else
> +		ret = snd_soc_component_set_jack(component, jack, NULL);

> +static const struct snd_soc_dapm_route rt5650_spk_dapm_routes[] = {
> +	/* speaker */
> +	{ "Left Spk", NULL, "SPOL" },
> +	{ "Right Spk", NULL, "SPOR" },
> +};
> +
>  static const struct snd_soc_dapm_route dmic_map[] = {
>  	/* digital mics */
>  	{"DMic", NULL, "SoC DMIC"},
>  };
>  
> +static int rt5650_spk_init(struct snd_soc_pcm_runtime *rtd)
> +{
> +	struct snd_soc_card *card = rtd->card;
> +	int ret;
> +
> +	ret = snd_soc_dapm_add_routes(&card->dapm, rt5650_spk_dapm_routes,
> +				      ARRAY_SIZE(rt5650_spk_dapm_routes));
> +	if (ret)
> +		dev_err(rtd->dev, "fail to add dapm routes, ret=%d\n", ret);
> +
> +	return ret;
> +}
> +
>  static int dmic_init(struct snd_soc_pcm_runtime *rtd)
>  {
>  	struct snd_soc_card *card = rtd->card;
> @@ -614,6 +656,17 @@ static struct snd_soc_dai_link_component rt5682s_component[] = {
>  	}
>  };
>  
> +static struct snd_soc_dai_link_component rt5650_components[] = {
> +	{
> +		.name = "i2c-10EC5650:00",
> +		.dai_name = "rt5645-aif1",
> +	},
> +	{
> +		.name = "i2c-10EC5650:00",
> +		.dai_name = "rt5645-aif2",
> +	}
> +};

can we move these definitions to realtek_common.c, chances are other
boards will also use this codec. Thanks!

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

* [PATCH v2] ASoC: Intel: sof_rt5682: add jsl_rt5650 board config
@ 2023-07-10 14:16 Brent Lu
  2023-07-10  7:35 ` Pierre-Louis Bossart
  0 siblings, 1 reply; 3+ messages in thread
From: Brent Lu @ 2023-07-10 14:16 UTC (permalink / raw)
  To: alsa-devel
  Cc: Cezary Rojewski, Pierre-Louis Bossart, Liam Girdwood,
	Peter Ujfalusi, Bard Liao, Ranjani Sridharan, Kai Vehmanen,
	Mark Brown, Jaroslav Kysela, Takashi Iwai, Yong Zhi, Uday M Bhat,
	Gongjun Song, Ajye Huang, Arnd Bergmann, Brent Lu, Terry Cheong,
	Dharageswari . R, Mac Chiang, Kuninori Morimoto, linux-kernel

This configuration supports JSL boards which implement ALC5650 dual
I2S interface codec. Two DAI links are added: AIF1 (on codec side) for
headphone and AIF2 for speakers.

Signed-off-by: Brent Lu <brent.lu@intel.com>
---
 sound/soc/intel/boards/Kconfig                |  5 +-
 sound/soc/intel/boards/sof_rt5682.c           | 81 ++++++++++++++++++-
 .../intel/common/soc-acpi-intel-jsl-match.c   | 12 +++
 3 files changed, 93 insertions(+), 5 deletions(-)

diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
index f472f603ab75..1fe830af2b84 100644
--- a/sound/soc/intel/boards/Kconfig
+++ b/sound/soc/intel/boards/Kconfig
@@ -475,7 +475,7 @@ endif ## SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC || SND_SOC_SOF_HDA_AUDIO_CODEC
 
 if SND_SOC_SOF_HDA_LINK || SND_SOC_SOF_BAYTRAIL
 config SND_SOC_INTEL_SOF_RT5682_MACH
-	tristate "SOF with rt5682 codec in I2S Mode"
+	tristate "SOF with rt5650/rt5682 codec in I2S Mode"
 	depends on I2C && ACPI
 	depends on ((SND_HDA_CODEC_HDMI && SND_SOC_SOF_HDA_AUDIO_CODEC) &&\
 		    (MFD_INTEL_LPSS || COMPILE_TEST)) ||\
@@ -485,6 +485,7 @@ config SND_SOC_INTEL_SOF_RT5682_MACH
 	select SND_SOC_RT1011
 	select SND_SOC_RT1015
 	select SND_SOC_RT1015P
+	select SND_SOC_RT5645
 	select SND_SOC_RT5682_I2C
 	select SND_SOC_RT5682S
 	select SND_SOC_DMIC
@@ -494,7 +495,7 @@ config SND_SOC_INTEL_SOF_RT5682_MACH
 	select SND_SOC_INTEL_SOF_REALTEK_COMMON
 	help
 	   This adds support for ASoC machine driver for SOF platforms
-	   with rt5682 codec.
+	   with rt5650 or rt5682 codec.
 	   Say Y if you have such a device.
 	   If unsure select "N".
 
diff --git a/sound/soc/intel/boards/sof_rt5682.c b/sound/soc/intel/boards/sof_rt5682.c
index 7c034d671cf3..53451c1b67f8 100644
--- a/sound/soc/intel/boards/sof_rt5682.c
+++ b/sound/soc/intel/boards/sof_rt5682.c
@@ -22,6 +22,7 @@
 #include <sound/soc-acpi.h>
 #include "../../codecs/rt5682.h"
 #include "../../codecs/rt5682s.h"
+#include "../../codecs/rt5645.h"
 #include "../../codecs/hdac_hdmi.h"
 #include "../common/soc-intel-quirks.h"
 #include "hda_dsp_common.h"
@@ -60,6 +61,7 @@
 #define SOF_MAX98390_SPEAKER_AMP_PRESENT	BIT(24)
 #define SOF_MAX98390_TWEETER_SPEAKER_PRESENT	BIT(25)
 #define SOF_RT1019_SPEAKER_AMP_PRESENT	BIT(26)
+#define SOF_RT5650_HEADPHONE_CODEC_PRESENT	BIT(27)
 
 
 /* Default: MCLK on, MCLK 19.2M, SSP0  */
@@ -305,7 +307,7 @@ static int sof_rt5682_codec_init(struct snd_soc_pcm_runtime *rtd)
 	struct sof_card_private *ctx = snd_soc_card_get_drvdata(rtd->card);
 	struct snd_soc_component *component = asoc_rtd_to_codec(rtd, 0)->component;
 	struct snd_soc_jack *jack;
-	int ret;
+	int ret, extra;
 
 	/* need to enable ASRC function for 24MHz mclk rate */
 	if ((sof_rt5682_quirk & SOF_RT5682_MCLK_EN) &&
@@ -315,7 +317,16 @@ static int sof_rt5682_codec_init(struct snd_soc_pcm_runtime *rtd)
 						 RT5682S_DA_STEREO1_FILTER |
 						 RT5682S_AD_STEREO1_FILTER,
 						 RT5682S_CLK_SEL_I2S1_ASRC);
-		else
+		else if (sof_rt5682_quirk & SOF_RT5650_HEADPHONE_CODEC_PRESENT) {
+			rt5645_sel_asrc_clk_src(component,
+						RT5645_DA_STEREO_FILTER |
+						RT5645_AD_STEREO_FILTER,
+						RT5645_CLK_SEL_I2S1_ASRC);
+			rt5645_sel_asrc_clk_src(component,
+						RT5645_DA_MONO_L_FILTER |
+						RT5645_DA_MONO_R_FILTER,
+						RT5645_CLK_SEL_I2S2_ASRC);
+		} else
 			rt5682_sel_asrc_clk_src(component,
 						RT5682_DA_STEREO1_FILTER |
 						RT5682_AD_STEREO1_FILTER,
@@ -365,7 +376,12 @@ static int sof_rt5682_codec_init(struct snd_soc_pcm_runtime *rtd)
 	snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND);
 	snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP);
 	snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN);
-	ret = snd_soc_component_set_jack(component, jack, NULL);
+
+	if (sof_rt5682_quirk & SOF_RT5650_HEADPHONE_CODEC_PRESENT) {
+		extra = SND_JACK_MICROPHONE | SND_JACK_BTN_0;
+		ret = snd_soc_component_set_jack(component, jack, &extra);
+	} else
+		ret = snd_soc_component_set_jack(component, jack, NULL);
 
 	if (ret) {
 		dev_err(rtd->dev, "Headset Jack call-back failed: %d\n", ret);
@@ -402,6 +418,8 @@ static int sof_rt5682_hw_params(struct snd_pcm_substream *substream,
 
 		if (sof_rt5682_quirk & SOF_RT5682S_HEADPHONE_CODEC_PRESENT)
 			pll_source = RT5682S_PLL_S_MCLK;
+		else if (sof_rt5682_quirk & SOF_RT5650_HEADPHONE_CODEC_PRESENT)
+			pll_source = RT5645_PLL1_S_MCLK;
 		else
 			pll_source = RT5682_PLL1_S_MCLK;
 
@@ -422,6 +440,8 @@ static int sof_rt5682_hw_params(struct snd_pcm_substream *substream,
 	} else {
 		if (sof_rt5682_quirk & SOF_RT5682S_HEADPHONE_CODEC_PRESENT)
 			pll_source = RT5682S_PLL_S_BCLK1;
+		else if (sof_rt5682_quirk & SOF_RT5650_HEADPHONE_CODEC_PRESENT)
+			pll_source = RT5645_PLL1_S_BCLK1;
 		else
 			pll_source = RT5682_PLL1_S_BCLK1;
 
@@ -431,6 +451,9 @@ static int sof_rt5682_hw_params(struct snd_pcm_substream *substream,
 	if (sof_rt5682_quirk & SOF_RT5682S_HEADPHONE_CODEC_PRESENT) {
 		pll_id = RT5682S_PLL2;
 		clk_id = RT5682S_SCLK_S_PLL2;
+	} else if (sof_rt5682_quirk & SOF_RT5650_HEADPHONE_CODEC_PRESENT) {
+		pll_id = 0; /* not used in codec driver */
+		clk_id = RT5645_SCLK_S_PLL1;
 	} else {
 		pll_id = RT5682_PLL1;
 		clk_id = RT5682_SCLK_S_PLL1;
@@ -559,11 +582,30 @@ static const struct snd_soc_dapm_route sof_map[] = {
 	{ "IN1P", NULL, "Headset Mic" },
 };
 
+static const struct snd_soc_dapm_route rt5650_spk_dapm_routes[] = {
+	/* speaker */
+	{ "Left Spk", NULL, "SPOL" },
+	{ "Right Spk", NULL, "SPOR" },
+};
+
 static const struct snd_soc_dapm_route dmic_map[] = {
 	/* digital mics */
 	{"DMic", NULL, "SoC DMIC"},
 };
 
+static int rt5650_spk_init(struct snd_soc_pcm_runtime *rtd)
+{
+	struct snd_soc_card *card = rtd->card;
+	int ret;
+
+	ret = snd_soc_dapm_add_routes(&card->dapm, rt5650_spk_dapm_routes,
+				      ARRAY_SIZE(rt5650_spk_dapm_routes));
+	if (ret)
+		dev_err(rtd->dev, "fail to add dapm routes, ret=%d\n", ret);
+
+	return ret;
+}
+
 static int dmic_init(struct snd_soc_pcm_runtime *rtd)
 {
 	struct snd_soc_card *card = rtd->card;
@@ -614,6 +656,17 @@ static struct snd_soc_dai_link_component rt5682s_component[] = {
 	}
 };
 
+static struct snd_soc_dai_link_component rt5650_components[] = {
+	{
+		.name = "i2c-10EC5650:00",
+		.dai_name = "rt5645-aif1",
+	},
+	{
+		.name = "i2c-10EC5650:00",
+		.dai_name = "rt5645-aif2",
+	}
+};
+
 static struct snd_soc_dai_link_component dmic_component[] = {
 	{
 		.name = "dmic-codec",
@@ -652,6 +705,9 @@ static struct snd_soc_dai_link *sof_card_dai_links_create(struct device *dev,
 	if (sof_rt5682_quirk & SOF_RT5682S_HEADPHONE_CODEC_PRESENT) {
 		links[id].codecs = rt5682s_component;
 		links[id].num_codecs = ARRAY_SIZE(rt5682s_component);
+	} else if (sof_rt5682_quirk & SOF_RT5650_HEADPHONE_CODEC_PRESENT) {
+		links[id].codecs = &rt5650_components[0];
+		links[id].num_codecs = 1;
 	} else {
 		links[id].codecs = rt5682_component;
 		links[id].num_codecs = ARRAY_SIZE(rt5682_component);
@@ -804,6 +860,11 @@ static struct snd_soc_dai_link *sof_card_dai_links_create(struct device *dev,
 			links[id].init = max_98390_spk_codec_init;
 			links[id].ops = &max_98390_ops;
 
+		} else if (sof_rt5682_quirk & SOF_RT5650_HEADPHONE_CODEC_PRESENT) {
+			links[id].codecs = &rt5650_components[1];
+			links[id].num_codecs = 1;
+			links[id].init = rt5650_spk_init;
+			links[id].ops = &sof_rt5682_ops;
 		} else {
 			max_98357a_dai_link(&links[id]);
 		}
@@ -890,6 +951,12 @@ static int sof_audio_probe(struct platform_device *pdev)
 	/* Detect the headset codec variant */
 	if (acpi_dev_present("RTL5682", NULL, -1))
 		sof_rt5682_quirk |= SOF_RT5682S_HEADPHONE_CODEC_PRESENT;
+	else if (acpi_dev_present("10EC5650", NULL, -1)) {
+		sof_rt5682_quirk |= SOF_RT5650_HEADPHONE_CODEC_PRESENT;
+
+		sof_audio_card_rt5682.name = devm_kstrdup(&pdev->dev, "rt5650",
+							  GFP_KERNEL);
+	}
 
 	if (soc_intel_is_byt() || soc_intel_is_cht()) {
 		is_legacy_cpu = 1;
@@ -1178,6 +1245,14 @@ static const struct platform_device_id board_ids[] = {
 					SOF_RT5682_SSP_AMP(0) |
 					SOF_RT5682_NUM_HDMIDEV(3)),
 	},
+	{
+		.name = "jsl_rt5650",
+		.driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN |
+					SOF_RT5682_MCLK_24MHZ |
+					SOF_RT5682_SSP_CODEC(0) |
+					SOF_SPEAKER_AMP_PRESENT |
+					SOF_RT5682_SSP_AMP(1)),
+	},
 	{ }
 };
 MODULE_DEVICE_TABLE(platform, board_ids);
diff --git a/sound/soc/intel/common/soc-acpi-intel-jsl-match.c b/sound/soc/intel/common/soc-acpi-intel-jsl-match.c
index f5c7e1bbded0..36ea2bacbe7d 100644
--- a/sound/soc/intel/common/soc-acpi-intel-jsl-match.c
+++ b/sound/soc/intel/common/soc-acpi-intel-jsl-match.c
@@ -34,6 +34,11 @@ static const struct snd_soc_acpi_codecs mx98360a_spk = {
 	.codecs = {"MX98360A"}
 };
 
+static struct snd_soc_acpi_codecs rt5650_spk = {
+	.num_codecs = 1,
+	.codecs = {"10EC5650"}
+};
+
 static const struct snd_soc_acpi_codecs rt5682_rt5682s_hp = {
 	.num_codecs = 2,
 	.codecs = {"10EC5682", "RTL5682"},
@@ -98,6 +103,13 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_jsl_machines[] = {
 					SND_SOC_ACPI_TPLG_INTEL_SSP_MSB |
 					SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER,
 	},
+	{
+		.id = "10EC5650",
+		.drv_name = "jsl_rt5650",
+		.machine_quirk = snd_soc_acpi_codec_list,
+		.quirk_data = &rt5650_spk,
+		.sof_tplg_filename = "sof-jsl-rt5650-dual.tplg",
+	},
 	{},
 };
 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_jsl_machines);
-- 
2.34.1


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

* RE: [PATCH v2] ASoC: Intel: sof_rt5682: add jsl_rt5650 board config
  2023-07-10  7:35 ` Pierre-Louis Bossart
@ 2023-07-12  1:59   ` Lu, Brent
  0 siblings, 0 replies; 3+ messages in thread
From: Lu, Brent @ 2023-07-12  1:59 UTC (permalink / raw)
  To: Pierre-Louis Bossart, alsa-devel@alsa-project.org
  Cc: Rojewski, Cezary, Liam Girdwood, Peter Ujfalusi, Bard Liao,
	Ranjani Sridharan, Kai Vehmanen, Mark Brown, Jaroslav Kysela,
	Takashi Iwai, Zhi, Yong, Bhat, Uday M, Song, Gongjun, Ajye Huang,
	Arnd Bergmann, Terry Cheong, R, Dharageswari, Chiang, Mac,
	Kuninori Morimoto, linux-kernel@vger.kernel.org

> > int sof_rt5682_codec_init(struct snd_soc_pcm_runtime *rtd)
> >  	struct sof_card_private *ctx = snd_soc_card_get_drvdata(rtd->card);
> >  	struct snd_soc_component *component = asoc_rtd_to_codec(rtd,
> 0)->component;
> >  	struct snd_soc_jack *jack;
> > -	int ret;
> > +	int ret, extra;
> 
> two lines, and rename to e.g. extra_jack_data
> 
> 
Will do.

> > +	if (sof_rt5682_quirk & SOF_RT5650_HEADPHONE_CODEC_PRESENT) {
> > +		extra = SND_JACK_MICROPHONE | SND_JACK_BTN_0;
> > +		ret = snd_soc_component_set_jack(component, jack,
> &extra);
> 
> I am a bit confused on why this wasn't set for rt5682?
> 
Rt5650's driver needs this parameter to specify whether button detection is
required while rt5682's driver does not need it.

> >
> > +static struct snd_soc_dai_link_component rt5650_components[] = {
> > +	{
> > +		.name = "i2c-10EC5650:00",
> > +		.dai_name = "rt5645-aif1",
> > +	},
> > +	{
> > +		.name = "i2c-10EC5650:00",
> > +		.dai_name = "rt5645-aif2",
> > +	}
> > +};
> 
> can we move these definitions to realtek_common.c, chances are other
> boards will also use this codec. Thanks!

Rt5650 is a all-in-one codec which supports headphone and speaker output. It's
unlikely to be paired with other headphone codec. Suggest keeping it in sof_rt5682.c


Regards,
Brent


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

end of thread, other threads:[~2023-07-12  1:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-10 14:16 [PATCH v2] ASoC: Intel: sof_rt5682: add jsl_rt5650 board config Brent Lu
2023-07-10  7:35 ` Pierre-Louis Bossart
2023-07-12  1:59   ` Lu, Brent

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox