mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
ASoC: amd/sdw_utils: add sof based soundwire generic machine driver
Add sof based Soundwire generic driver for amd platforms. Currently support added for ACP6.3 based platforms. Link: https://github.com/thesofproject/linux/pull/5068 Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://patch.msgid.link/20240801111821.18076-11-Vijendar.Mukunda@amd.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
@@ -119,6 +119,24 @@ config SND_SOC_AMD_SOF_MACH
|
||||
help
|
||||
This option enables SOF sound card support for ACP audio.
|
||||
|
||||
config SND_SOC_AMD_SOF_SDW_MACH
|
||||
tristate "AMD SOF Soundwire Machine Driver Support"
|
||||
depends on X86 && PCI && ACPI
|
||||
depends on SOUNDWIRE
|
||||
select SND_SOC_SDW_UTILS
|
||||
select SND_SOC_DMIC
|
||||
select SND_SOC_RT711_SDW
|
||||
select SND_SOC_RT711_SDCA_SDW
|
||||
select SND_SOC_RT1316_SDW
|
||||
select SND_SOC_RT715_SDW
|
||||
select SND_SOC_RT715_SDCA_SDW
|
||||
help
|
||||
This option enables SOF sound card support for SoundWire enabled
|
||||
AMD platforms along with ACP PDM controller.
|
||||
Say Y if you want to enable SoundWire based machine driver support
|
||||
on AMD platform.
|
||||
If unsure select "N".
|
||||
|
||||
endif # SND_SOC_AMD_ACP_COMMON
|
||||
|
||||
config SND_AMD_SOUNDWIRE_ACPI
|
||||
|
||||
@@ -23,6 +23,7 @@ snd-acp-mach-y := acp-mach-common.o
|
||||
snd-acp-legacy-mach-y := acp-legacy-mach.o acp3x-es83xx/acp3x-es83xx.o
|
||||
snd-acp-sof-mach-y := acp-sof-mach.o
|
||||
snd-soc-acpi-amd-match-y := amd-acp63-acpi-match.o
|
||||
snd-acp-sdw-sof-mach-y += acp-sdw-sof-mach.o
|
||||
|
||||
obj-$(CONFIG_SND_SOC_AMD_ACP_PCM) += snd-acp-pcm.o
|
||||
obj-$(CONFIG_SND_SOC_AMD_ACP_I2S) += snd-acp-i2s.o
|
||||
@@ -40,3 +41,4 @@ obj-$(CONFIG_SND_SOC_AMD_MACH_COMMON) += snd-acp-mach.o
|
||||
obj-$(CONFIG_SND_SOC_AMD_LEGACY_MACH) += snd-acp-legacy-mach.o
|
||||
obj-$(CONFIG_SND_SOC_AMD_SOF_MACH) += snd-acp-sof-mach.o
|
||||
obj-$(CONFIG_SND_SOC_ACPI_AMD_MATCH) += snd-soc-acpi-amd-match.o
|
||||
obj-$(CONFIG_SND_SOC_AMD_SOF_SDW_MACH) += snd-acp-sdw-sof-mach.o
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,44 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only
|
||||
* Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved
|
||||
*/
|
||||
|
||||
/*
|
||||
* soc_amd_sdw_common.h - prototypes for common helpers
|
||||
*/
|
||||
|
||||
#ifndef SOC_AMD_SDW_COMMON_H
|
||||
#define SOC_AMD_SDW_COMMON_H
|
||||
|
||||
#include <linux/bits.h>
|
||||
#include <linux/types.h>
|
||||
#include <sound/soc.h>
|
||||
#include <sound/soc_sdw_utils.h>
|
||||
|
||||
#define ACP63_SDW_MAX_CPU_DAIS 8
|
||||
#define ACP63_SDW_MAX_LINKS 2
|
||||
|
||||
#define AMD_SDW_MAX_GROUPS 9
|
||||
#define ACP63_PCI_REV 0x63
|
||||
#define SOC_JACK_JDSRC(quirk) ((quirk) & GENMASK(3, 0))
|
||||
#define ASOC_SDW_FOUR_SPK BIT(4)
|
||||
#define ASOC_SDW_ACP_DMIC BIT(5)
|
||||
|
||||
#define AMD_SDW0 0
|
||||
#define AMD_SDW1 1
|
||||
#define ACP63_SW0_AUDIO0_TX 0
|
||||
#define ACP63_SW0_AUDIO1_TX 1
|
||||
#define ACP63_SW0_AUDIO2_TX 2
|
||||
|
||||
#define ACP63_SW0_AUDIO0_RX 3
|
||||
#define ACP63_SW0_AUDIO1_RX 4
|
||||
#define ACP63_SW0_AUDIO2_RX 5
|
||||
|
||||
#define ACP63_SW1_AUDIO0_TX 0
|
||||
#define ACP63_SW1_AUDIO0_RX 1
|
||||
|
||||
struct amd_mc_ctx {
|
||||
unsigned int acp_rev;
|
||||
unsigned int max_sdw_links;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user