2020-05-01 09:58:50 -05:00
/* SPDX-License-Identifier: GPL-2.0-only
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
* Copyright ( c ) 2020 Intel Corporation
*/
/*
* sof_sdw_common . h - prototypes for common helpers
*/
# ifndef SND_SOC_SOF_SDW_COMMON_H
# define SND_SOC_SOF_SDW_COMMON_H
# include <linux/bits.h>
# include <linux/types.h>
2020-07-08 15:32:15 -05:00
# include <sound/soc.h>
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
# define MAX_NO_PROPS 2
# define MAX_HDMI_NUM 4
2021-10-27 10:18:19 +08:00
# define SDW_AMP_DAI_ID 2
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
# define SDW_DMIC_DAI_ID 4
# define SDW_MAX_CPU_DAIS 16
# define SDW_INTEL_BIDIR_PDI_BASE 2
/* 8 combinations with 4 links + unused group 0 */
# define SDW_MAX_GROUPS 9
enum {
SOF_PRE_TGL_HDMI_COUNT = 3 ,
SOF_TGL_HDMI_COUNT = 4 ,
} ;
enum {
SOF_I2S_SSP0 = BIT ( 0 ) ,
SOF_I2S_SSP1 = BIT ( 1 ) ,
SOF_I2S_SSP2 = BIT ( 2 ) ,
SOF_I2S_SSP3 = BIT ( 3 ) ,
SOF_I2S_SSP4 = BIT ( 4 ) ,
SOF_I2S_SSP5 = BIT ( 5 ) ,
} ;
2021-07-12 15:32:38 -05:00
# define SOF_RT711_JDSRC(quirk) ((quirk) & GENMASK(3, 0))
# define SOF_SDW_FOUR_SPK BIT(4)
# define SOF_SDW_TGL_HDMI BIT(5)
# define SOF_SDW_PCH_DMIC BIT(6)
# define SOF_SSP_PORT(x) (((x) & GENMASK(5, 0)) << 7)
# define SOF_SSP_GET_PORT(quirk) (((quirk) >> 7) & GENMASK(5, 0))
# define SOF_SDW_NO_AGGREGATION BIT(14)
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
2021-05-05 11:36:59 -05:00
/* BT audio offload: reserve 3 bits for future */
2021-07-12 15:32:38 -05:00
# define SOF_BT_OFFLOAD_SSP_SHIFT 15
# define SOF_BT_OFFLOAD_SSP_MASK (GENMASK(17, 15))
2021-05-05 11:36:59 -05:00
# define SOF_BT_OFFLOAD_SSP(quirk) \
( ( ( quirk ) < < SOF_BT_OFFLOAD_SSP_SHIFT ) & SOF_BT_OFFLOAD_SSP_MASK )
2021-07-12 15:32:38 -05:00
# define SOF_SSP_BT_OFFLOAD_PRESENT BIT(18)
2021-05-05 11:36:59 -05:00
2021-10-27 10:18:19 +08:00
# define SOF_SDW_CODEC_TYPE_JACK 0
# define SOF_SDW_CODEC_TYPE_AMP 1
# define SOF_SDW_CODEC_TYPE_MIC 2
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
struct sof_sdw_codec_info {
2020-08-21 14:55:56 -05:00
const int part_id ;
2020-08-21 14:55:55 -05:00
const int version_id ;
2021-10-27 10:18:19 +08:00
const int codec_type ;
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
int amp_num ;
const u8 acpi_id [ ACPI_ID_LEN ] ;
const bool direction [ 2 ] ; // playback & capture support
2021-05-05 11:36:56 -05:00
const bool ignore_pch_dmic ;
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
const char * dai_name ;
const struct snd_soc_ops * ops ;
2021-08-13 10:11:12 -05:00
int ( * init ) ( struct snd_soc_card * card ,
const struct snd_soc_acpi_link_adr * link ,
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
struct snd_soc_dai_link * dai_links ,
struct sof_sdw_codec_info * info ,
bool playback ) ;
2020-07-08 15:32:15 -05:00
2021-08-13 10:11:12 -05:00
int ( * exit ) ( struct snd_soc_card * card , struct snd_soc_dai_link * dai_link ) ;
2020-07-08 15:32:15 -05:00
bool late_probe ;
int ( * codec_card_late_probe ) ( struct snd_soc_card * card ) ;
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
} ;
struct mc_private {
struct list_head hdmi_pcm_list ;
2020-07-17 16:13:34 -05:00
bool idisp_codec ;
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
struct snd_soc_jack sdw_headset ;
2021-08-13 10:11:12 -05:00
struct device * headset_codec_dev ; /* only one headset per card */
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
} ;
extern unsigned long sof_sdw_quirk ;
2020-06-25 14:26:20 -05:00
int sdw_startup ( struct snd_pcm_substream * substream ) ;
2020-09-23 11:05:09 +03:00
int sdw_prepare ( struct snd_pcm_substream * substream ) ;
int sdw_trigger ( struct snd_pcm_substream * substream , int cmd ) ;
int sdw_hw_free ( struct snd_pcm_substream * substream ) ;
2020-06-25 14:26:20 -05:00
void sdw_shutdown ( struct snd_pcm_substream * substream ) ;
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
/* generic HDMI support */
int sof_sdw_hdmi_init ( struct snd_soc_pcm_runtime * rtd ) ;
int sof_sdw_hdmi_card_late_probe ( struct snd_soc_card * card ) ;
/* DMIC support */
int sof_sdw_dmic_init ( struct snd_soc_pcm_runtime * rtd ) ;
/* RT711 support */
2021-08-13 10:11:12 -05:00
int sof_sdw_rt711_init ( struct snd_soc_card * card ,
const struct snd_soc_acpi_link_adr * link ,
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
struct snd_soc_dai_link * dai_links ,
struct sof_sdw_codec_info * info ,
bool playback ) ;
2021-08-13 10:11:12 -05:00
int sof_sdw_rt711_exit ( struct snd_soc_card * card , struct snd_soc_dai_link * dai_link ) ;
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
2020-08-21 14:56:01 -05:00
/* RT711-SDCA support */
2021-08-13 10:11:12 -05:00
int sof_sdw_rt711_sdca_init ( struct snd_soc_card * card ,
const struct snd_soc_acpi_link_adr * link ,
2020-08-21 14:56:01 -05:00
struct snd_soc_dai_link * dai_links ,
struct sof_sdw_codec_info * info ,
bool playback ) ;
2021-08-13 10:11:12 -05:00
int sof_sdw_rt711_sdca_exit ( struct snd_soc_card * card , struct snd_soc_dai_link * dai_link ) ;
2020-08-21 14:56:01 -05:00
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
/* RT700 support */
2021-08-13 10:11:12 -05:00
int sof_sdw_rt700_init ( struct snd_soc_card * card ,
const struct snd_soc_acpi_link_adr * link ,
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
struct snd_soc_dai_link * dai_links ,
struct sof_sdw_codec_info * info ,
bool playback ) ;
/* RT1308 support */
extern struct snd_soc_ops sof_sdw_rt1308_i2s_ops ;
2021-08-13 10:11:12 -05:00
int sof_sdw_rt1308_init ( struct snd_soc_card * card ,
const struct snd_soc_acpi_link_adr * link ,
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
struct snd_soc_dai_link * dai_links ,
struct sof_sdw_codec_info * info ,
bool playback ) ;
2020-08-21 14:56:01 -05:00
/* RT1316 support */
2021-08-13 10:11:12 -05:00
int sof_sdw_rt1316_init ( struct snd_soc_card * card ,
const struct snd_soc_acpi_link_adr * link ,
2020-08-21 14:56:01 -05:00
struct snd_soc_dai_link * dai_links ,
struct sof_sdw_codec_info * info ,
bool playback ) ;
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
/* RT715 support */
2021-08-13 10:11:12 -05:00
int sof_sdw_rt715_init ( struct snd_soc_card * card ,
const struct snd_soc_acpi_link_adr * link ,
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
struct snd_soc_dai_link * dai_links ,
struct sof_sdw_codec_info * info ,
bool playback ) ;
2020-08-21 14:56:01 -05:00
/* RT715-SDCA support */
2021-08-13 10:11:12 -05:00
int sof_sdw_rt715_sdca_init ( struct snd_soc_card * card ,
const struct snd_soc_acpi_link_adr * link ,
2020-08-21 14:56:01 -05:00
struct snd_soc_dai_link * dai_links ,
struct sof_sdw_codec_info * info ,
bool playback ) ;
2020-06-25 14:26:20 -05:00
/* MAX98373 support */
2021-08-13 10:11:12 -05:00
int sof_sdw_mx8373_init ( struct snd_soc_card * card ,
const struct snd_soc_acpi_link_adr * link ,
2020-06-25 14:26:20 -05:00
struct snd_soc_dai_link * dai_links ,
struct sof_sdw_codec_info * info ,
bool playback ) ;
2020-07-08 15:32:15 -05:00
int sof_sdw_mx8373_late_probe ( struct snd_soc_card * card ) ;
2020-03-25 17:07:46 -05:00
/* RT5682 support */
2021-08-13 10:11:12 -05:00
int sof_sdw_rt5682_init ( struct snd_soc_card * card ,
const struct snd_soc_acpi_link_adr * link ,
2020-03-25 17:07:46 -05:00
struct snd_soc_dai_link * dai_links ,
struct sof_sdw_codec_info * info ,
bool playback ) ;
ASoC: Intel: boards: add sof_sdw machine driver
This machine driver provides support for different configurations:
RT700, RT711, RT1308 (1x and 2x, I2S or SoundWire mode), and RT715
CometLake, Icelake, TigerLake.
PDM digital microphones
HDMI
To avoid introducing one driver per configuration, this common machine
driver relies on platform-specific information, tables and quirks to
dynamically create the relevant dailinks.
Unlike a lot of machine drivers, we use different DAI links for
SoundWire capture and playback since the Cadence PDIs can do capture
OR playback, not both simultaneously.
For each configuration, the card component string is updated so that UCM
can select the relevant parts.
Signed-off-by: Rander Wang <rander.wang@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200325220746.29601-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2020-03-25 17:07:44 -05:00
# endif