Unverified Commit cb8ea62e authored by Vijendar Mukunda's avatar Vijendar Mukunda Committed by Mark Brown
Browse files

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: default avatarVijendar Mukunda <Vijendar.Mukunda@amd.com>
Reviewed-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://patch.msgid.link/20240801111821.18076-11-Vijendar.Mukunda@amd.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent b7cdb4a8
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -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
+2 −0
Original line number Diff line number Diff line
@@ -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
+742 −0

File added.

Preview size limit exceeded, changes collapsed.

+44 −0
Original line number Diff line number Diff line
/* 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