summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/drivers/soundwire/alc711/Kconfig14
-rw-r--r--src/drivers/soundwire/alc711/Makefile.mk2
-rw-r--r--src/drivers/soundwire/alc711/alc711.c18
-rw-r--r--src/include/mipi/ids.h1
4 files changed, 32 insertions, 3 deletions
diff --git a/src/drivers/soundwire/alc711/Kconfig b/src/drivers/soundwire/alc711/Kconfig
index 0d96fa96bb..96ed819d7f 100644
--- a/src/drivers/soundwire/alc711/Kconfig
+++ b/src/drivers/soundwire/alc711/Kconfig
@@ -1,4 +1,18 @@
## SPDX-License-Identifier: GPL-2.0-only
+config DRIVERS_SOUNDWIRE_ALC_BASE_7XX
+ bool
+ help
+ Base code for Realtek ALC7xxx Codec SoundWire driver.
+
config DRIVERS_SOUNDWIRE_ALC711
bool
+ select DRIVERS_SOUNDWIRE_ALC_BASE_7XX
+ help
+ SoundWire driver for Realtek ALC711 device
+
+config DRIVERS_SOUNDWIRE_ALC722
+ bool
+ select DRIVERS_SOUNDWIRE_ALC_BASE_7XX
+ help
+ SoundWire driver for Realtek ALC722 device
diff --git a/src/drivers/soundwire/alc711/Makefile.mk b/src/drivers/soundwire/alc711/Makefile.mk
index 63e0993435..cdedc41582 100644
--- a/src/drivers/soundwire/alc711/Makefile.mk
+++ b/src/drivers/soundwire/alc711/Makefile.mk
@@ -1,3 +1,3 @@
## SPDX-License-Identifier: GPL-2.0-only
-ramstage-$(CONFIG_DRIVERS_SOUNDWIRE_ALC711) += alc711.c
+ramstage-$(CONFIG_DRIVERS_SOUNDWIRE_ALC_BASE_7XX) += alc711.c
diff --git a/src/drivers/soundwire/alc711/alc711.c b/src/drivers/soundwire/alc711/alc711.c
index 7d1ac4274f..c5e7a8e5b6 100644
--- a/src/drivers/soundwire/alc711/alc711.c
+++ b/src/drivers/soundwire/alc711/alc711.c
@@ -11,10 +11,18 @@
#include "chip.h"
static struct soundwire_address alc711_address = {
+#if CONFIG(DRIVERS_SOUNDWIRE_ALC722)
+ .version = SOUNDWIRE_VERSION_1_2,
+ .part_id = MIPI_DEV_ID_REALTEK_ALC722,
+ .class = MIPI_CLASS_SDCA,
+#elif CONFIG(DRIVERS_SOUNDWIRE_ALC711)
.version = SOUNDWIRE_VERSION_1_1,
- .manufacturer_id = MIPI_MFG_ID_REALTEK,
.part_id = MIPI_DEV_ID_REALTEK_ALC711,
- .class = MIPI_CLASS_NONE
+ .class = MIPI_CLASS_NONE,
+#else
+#error "No Realtek SoundWire codec selected"
+#endif
+ .manufacturer_id = MIPI_MFG_ID_REALTEK,
};
static struct soundwire_slave alc711_slave = {
@@ -150,6 +158,12 @@ static void soundwire_alc711_enable(struct device *dev)
}
struct chip_operations drivers_soundwire_alc711_ops = {
+#if CONFIG(DRIVERS_SOUNDWIRE_ALC711)
.name = "Realtek ALC711 SoundWire Codec",
+#elif CONFIG(DRIVERS_SOUNDWIRE_ALC722)
+ .name = "Realtek ALC722 SoundWire Codec",
+#else
+ .name = "Unknown",
+#endif
.enable_dev = soundwire_alc711_enable
};
diff --git a/src/include/mipi/ids.h b/src/include/mipi/ids.h
index 5aa5a679a8..4e54b62660 100644
--- a/src/include/mipi/ids.h
+++ b/src/include/mipi/ids.h
@@ -21,6 +21,7 @@
#define MIPI_MFG_ID_REALTEK 0x025d
#define MIPI_DEV_ID_REALTEK_ALC5682 0x5682
#define MIPI_DEV_ID_REALTEK_ALC711 0x0711
+#define MIPI_DEV_ID_REALTEK_ALC722 0x0722
#define MIPI_DEV_ID_REALTEK_ALC1308 0x1308
#define MIPI_MFG_ID_MAXIM 0x019f