drivers/soundwire/alc711: Add common Kconfig for ALC7xx soundwire codecs

- Use common config DRIVERS_SOUNDWIRE_ALC_BASE_7XX for ALC7xx variants
- Introduce soundwire codec address in soundwire chip.h to calculate
device address for acpi table based on overridetree.
- Update devicetree and Kconfig to use common config.

BUG=b:368495490
TEST=build coreboot image and boot on Intel RVP board. Disassemble
SSDT and confirm ACPI entries are correct for alc7xx device.

Change-Id: I5953d0fcb7b15368888901f88c5616757ac42877
Signed-off-by: Varun Upadhyay <varun.upadhyay@intel.com>
Signed-off-by: Naveen M <naveen.m@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85282
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
This commit is contained in:
Varun Upadhyay 2024-11-22 18:37:43 +05:30 committed by Subrata Banik
commit 2411942a05
8 changed files with 22 additions and 24 deletions

View file

@ -10,25 +10,6 @@
#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_ALC721)
.version = SOUNDWIRE_VERSION_1_2,
.part_id = MIPI_DEV_ID_REALTEK_ALC721,
.class = MIPI_CLASS_SDCA,
#elif CONFIG(DRIVERS_SOUNDWIRE_ALC711)
.version = SOUNDWIRE_VERSION_1_1,
.part_id = MIPI_DEV_ID_REALTEK_ALC711,
.class = MIPI_CLASS_NONE,
#else
#error "No Realtek SoundWire codec selected"
#endif
.manufacturer_id = MIPI_MFG_ID_REALTEK,
};
static struct soundwire_slave alc711_slave = {
.wake_up_unavailable = false,
.test_mode_supported = false,
@ -123,10 +104,11 @@ static void soundwire_alc711_fill_ssdt(const struct device *dev)
acpigen_write_device(acpi_device_name(dev));
/* Set codec address IDs. */
alc711_address.link_id = dev->path.generic.id;
alc711_address.unique_id = dev->path.generic.subid;
config->alc711_address.link_id = dev->path.generic.id;
config->alc711_address.unique_id = dev->path.generic.subid;
config->alc711_address.manufacturer_id = MIPI_MFG_ID_REALTEK;
acpigen_write_ADR_soundwire_device(&alc711_address);
acpigen_write_ADR_soundwire_device(&config->alc711_address);
acpigen_write_name_string("_DDN", config->desc ? : dev->chip_ops->name);
acpigen_write_STA(acpi_device_status(dev));

View file

@ -3,9 +3,13 @@
#ifndef __DRIVERS_SOUNDWIRE_ALC711_CHIP_H__
#define __DRIVERS_SOUNDWIRE_ALC711_CHIP_H__
#include <device/soundwire.h>
#include <mipi/ids.h>
struct drivers_soundwire_alc711_config {
const char *name;
const char *desc;
struct soundwire_address alc711_address;
};
#endif /* __DRIVERS_SOUNDWIRE_ALC711_CHIP_H__ */

View file

@ -10,7 +10,7 @@ config BOARD_INTEL_ADLRVP_COMMON
select DRIVERS_INTEL_DPTF
select DRIVERS_INTEL_MIPI_CAMERA
select DRIVERS_INTEL_SOUNDWIRE
select DRIVERS_SOUNDWIRE_ALC711
select DRIVERS_SOUNDWIRE_ALC_BASE_7XX
select DRIVERS_SPI_ACPI
select DRIVERS_USB_ACPI
select HAVE_ACPI_RESUME

View file

@ -456,6 +456,9 @@ chip soc/intel/alderlake
chip drivers/soundwire/alc711
# SoundWire Link 0 ID 1
register "desc" = ""Headset Codec""
register "alc711_address.version" = "SOUNDWIRE_VERSION_1_1"
register "alc711_address.class" = "MIPI_CLASS_NONE"
register "alc711_address.part_id" = "MIPI_DEV_ID_REALTEK_ALC711"
device generic 0.1 on end
end
end

View file

@ -393,6 +393,9 @@ chip soc/intel/alderlake
chip drivers/soundwire/alc711
# SoundWire Link 0 ID 1
register "desc" = ""Headset Codec""
register "alc711_address.version" = "SOUNDWIRE_VERSION_1_1"
register "alc711_address.class" = "MIPI_CLASS_NONE"
register "alc711_address.part_id" = "MIPI_DEV_ID_REALTEK_ALC711"
device generic 0.1 on end
end
end

View file

@ -390,6 +390,9 @@ chip soc/intel/alderlake
chip drivers/soundwire/alc711
# SoundWire Link 0 ID 1
register "desc" = ""Headset Codec""
register "alc711_address.version" = "SOUNDWIRE_VERSION_1_1"
register "alc711_address.class" = "MIPI_CLASS_NONE"
register "alc711_address.part_id" = "MIPI_DEV_ID_REALTEK_ALC711"
device generic 0.1 on end
end
end

View file

@ -13,7 +13,7 @@ config BOARD_INTEL_MTLRVP_COMMON
select DRIVERS_INTEL_MIPI_CAMERA
select DRIVERS_INTEL_SOUNDWIRE
select DRIVERS_SOUNDWIRE_ALC5682
select DRIVERS_SOUNDWIRE_ALC711
select DRIVERS_SOUNDWIRE_ALC_BASE_7XX
select DRIVERS_SOUNDWIRE_MAX98373
select DRIVERS_USB_ACPI
select HAVE_ACPI_RESUME

View file

@ -604,6 +604,9 @@ chip soc/intel/meteorlake
chip drivers/soundwire/alc711
# SoundWire Link 0 ID 1
register "desc" = ""Headset Codec""
register "alc711_address.version" = "SOUNDWIRE_VERSION_1_1"
register "alc711_address.class" = "MIPI_CLASS_NONE"
register "alc711_address.part_id" = "MIPI_DEV_ID_REALTEK_ALC711"
device generic 0.1 on
probe AUDIO MTL_ALC711_SNDW
end