mb/intel/adlrvp: Add support for MAX98373 codec

- Add configurability using FW_CONFIG field in CBI, to enable/disable
I2S codec support for MAX98373 codecs
- AUDIO=ADL_MAX98373_ALC5682I_I2S: enable max98373 codec using expansion
board

Bug=None
Test=With CBI FW_CONFIG set to 0x100, check I2S audio output on
expansion card

Signed-off-by: Usha P <usha.p@intel.com>
Change-Id: I94dfe500b99a669e9b981cdf15e360f22f33d2ac
Reviewed-on: https://review.coreboot.org/c/coreboot/+/61544
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kangheui Won <khwon@chromium.org>
Reviewed-by: Rizwan Qureshi <rizwan.qureshi@intel.com>
This commit is contained in:
Usha P 2022-02-02 11:31:27 +05:30 committed by Felix Held
parent 92c2ccda0c
commit 3ecee3cdd9
3 changed files with 48 additions and 2 deletions

View File

@ -70,6 +70,8 @@ config BOARD_INTEL_ADLRVP_N_EXT_EC
select DRIVERS_INTEL_PMC select DRIVERS_INTEL_PMC
select INTEL_LPSS_UART_FOR_CONSOLE select INTEL_LPSS_UART_FOR_CONSOLE
select SOC_INTEL_ALDERLAKE_PCH_N select SOC_INTEL_ALDERLAKE_PCH_N
select FW_CONFIG
select FW_CONFIG_SOURCE_CHROMEEC_CBI
if BOARD_INTEL_ADLRVP_COMMON if BOARD_INTEL_ADLRVP_COMMON

View File

@ -36,7 +36,7 @@ void __weak variant_devtree_update(void)
/* Override dev tree settings per board */ /* Override dev tree settings per board */
} }
#if CONFIG(BOARD_INTEL_ADLRVP_M_EXT_EC) #if CONFIG(BOARD_INTEL_ADLRVP_M_EXT_EC) || CONFIG(BOARD_INTEL_ADLRVP_N_EXT_EC)
static void add_fw_config_oem_string(const struct fw_config *config, void *arg) static void add_fw_config_oem_string(const struct fw_config *config, void *arg)
{ {
struct smbios_type11 *t; struct smbios_type11 *t;
@ -56,7 +56,7 @@ static void mainboard_smbios_strings(struct device *dev, struct smbios_type11 *t
static void mainboard_enable(struct device *dev) static void mainboard_enable(struct device *dev)
{ {
#if CONFIG(BOARD_INTEL_ADLRVP_M_EXT_EC) #if CONFIG(BOARD_INTEL_ADLRVP_M_EXT_EC) || CONFIG(BOARD_INTEL_ADLRVP_N_EXT_EC)
dev->ops->get_smbios_strings = mainboard_smbios_strings; dev->ops->get_smbios_strings = mainboard_smbios_strings;
#endif #endif
} }

View File

@ -1,6 +1,50 @@
fw_config
field AUDIO 8 10
option NONE 0
option ADL_MAX98373_ALC5682I_I2S 1
end
end
chip soc/intel/alderlake chip soc/intel/alderlake
device domain 0 on device domain 0 on
device ref i2c0 on
chip drivers/i2c/generic
register "hid" = ""10EC5682""
register "name" = ""RT58""
register "desc" = ""Headset Codec""
register "irq" = "ACPI_IRQ_EDGE_HIGH(GPP_H3_IRQ)"
# Set the jd_src to RT5668_JD1 for jack detection
register "property_count" = "1"
register "property_list[0].type" = "ACPI_DP_TYPE_INTEGER"
register "property_list[0].name" = ""realtek,jd-src""
register "property_list[0].integer" = "1"
device i2c 1a on
probe AUDIO ADL_MAX98373_ALC5682I_I2S
end
end
chip drivers/i2c/max98373
register "vmon_slot_no" = "0"
register "imon_slot_no" = "1"
register "uid" = "0"
register "desc" = ""Right Speaker Amp""
register "name" = ""MAXR""
device i2c 31 on
probe AUDIO ADL_MAX98373_ALC5682I_I2S
end
end
chip drivers/i2c/max98373
register "vmon_slot_no" = "2"
register "imon_slot_no" = "3"
register "uid" = "1"
register "desc" = ""Left Speaker Amp""
register "name" = ""MAXL""
device i2c 32 on
probe AUDIO ADL_MAX98373_ALC5682I_I2S
end
end
end
device ref pch_espi on device ref pch_espi on
chip ec/google/chromeec chip ec/google/chromeec
use conn0 as mux_conn[0] use conn0 as mux_conn[0]