mb/starlabs/*: Move DMIC disabling code to common dir

Move the code that disables the DMIC based on the option table
to the common directory, as it's pretty much the same for all
boards.

Drop the check for the codec ID, as it's pointless.

Change-Id: I55dd8f5f65908f5c4605001893003209f85cb139
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89777
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
This commit is contained in:
Sean Rhodes 2025-10-27 20:07:32 +00:00
commit 98e0ff1e4b
14 changed files with 37 additions and 82 deletions

View file

@ -8,6 +8,8 @@ config MB_COMMON_DIR
string
default "starlabs/common"
source "src/mainboard/starlabs/common/hda/Kconfig"
endmenu
endif

View file

@ -1,6 +1,7 @@
# SPDX-License-Identifier: GPL-2.0-only
subdirs-$(CONFIG_VENDOR_STARLABS) += cfr
subdirs-$(CONFIG_VENDOR_STARLABS) += hda
subdirs-$(CONFIG_VENDOR_STARLABS) += pin_mux
subdirs-$(CONFIG_VENDOR_STARLABS) += smbios

View file

@ -0,0 +1,7 @@
## SPDX-License-Identifier: GPL-2.0-only
config HAVE_HDA_DMIC
bool
help
Select if the board has a DMIC and to allow disabling it via
the option API.

View file

@ -0,0 +1,3 @@
# SPDX-License-Identifier: GPL-2.0-only
ramstage-$(CONFIG_HAVE_HDA_DMIC) += dmic.c

View file

@ -0,0 +1,21 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <device/azalia_codec/realtek.h>
#include <device/azalia_device.h>
#include <option.h>
#include <types.h>
static const uint32_t override_verb[] = {
AZALIA_PIN_CFG(0, ALC269_DMIC12, AZALIA_PIN_CFG_NC(0)),
};
static void disable_microphone(uint8_t *base)
{
azalia_program_verb_table(base, override_verb, ARRAY_SIZE(override_verb));
}
void mainboard_azalia_program_runtime_verbs(uint8_t *base, uint32_t viddid)
{
if (get_uint_option("microphone", 1) == 0)
disable_microphone(base);
}

View file

@ -12,6 +12,7 @@ config BOARD_STARLABS_STARBOOK_SERIES
select HAVE_ACPI_RESUME
select HAVE_ACPI_TABLES
select HAVE_CMOS_DEFAULT
select HAVE_HDA_DMIC
select HAVE_OPTION_TABLE
select INTEL_GMA_HAVE_VBT
select INTEL_LPSS_UART_FOR_CONSOLE

View file

@ -11,6 +11,5 @@ verstage-$(CONFIG_VBOOT) += vboot.c
romstage-$(CONFIG_VBOOT) += vboot.c
ramstage-$(CONFIG_DRIVERS_OPTION_CFR) += cfr.c
ramstage-y += hda_verb.c
ramstage-y += mainboard.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += variants/$(VARIANT_DIR)/gma-mainboard.ads

View file

@ -1,27 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <console/console.h>
#include <device/azalia_device.h>
#include <option.h>
#include <types.h>
#define AZALIA_CODEC_ALC256 0x10ec0256
#define AZALIA_CODEC_ALC269 0x10ec0269
static const u32 override_verb[] = {
AZALIA_PIN_CFG(0, 0x12, AZALIA_PIN_CFG_NC(0)),
};
static void disable_microphone(u8 *base)
{
azalia_program_verb_table(base, override_verb, ARRAY_SIZE(override_verb));
}
void mainboard_azalia_program_runtime_verbs(u8 *base, u32 viddid)
{
if (viddid == AZALIA_CODEC_ALC256 || viddid == AZALIA_CODEC_ALC269) {
printk(BIOS_DEBUG, "CMOS: viddid = %08x\n", viddid);
if (get_uint_option("microphone", 1) == 0)
disable_microphone(base);
}
}

View file

@ -21,6 +21,7 @@ config BOARD_STARLABS_STARFIGHTER_SERIES
select HAVE_ACPI_RESUME
select HAVE_ACPI_TABLES
select HAVE_CMOS_DEFAULT
select HAVE_HDA_DMIC
select HAVE_OPTION_TABLE
select HAVE_SPD_IN_CBFS
select INTEL_GMA_HAVE_VBT

View file

@ -7,6 +7,5 @@ subdirs-y += variants/$(VARIANT_DIR)
bootblock-y += bootblock.c
ramstage-$(CONFIG_DRIVERS_OPTION_CFR) += cfr.c
ramstage-y += hda_verb.c
ramstage-y += mainboard.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += variants/$(VARIANT_DIR)/gma-mainboard.ads

View file

@ -1,26 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <console/console.h>
#include <device/azalia_device.h>
#include <option.h>
#include <types.h>
#define AZALIA_CODEC_ALC256 0x10ec0256
static const u32 override_verb[] = {
AZALIA_PIN_CFG(0, 0x12, 0x411111f0),
};
static void disable_microphone(u8 *base)
{
azalia_program_verb_table(base, override_verb, ARRAY_SIZE(override_verb));
}
void mainboard_azalia_program_runtime_verbs(u8 *base, u32 viddid)
{
if (viddid == AZALIA_CODEC_ALC256) {
printk(BIOS_DEBUG, "CMOS: viddid = %08x\n", viddid);
if (get_uint_option("microphone", 1) == 0)
disable_microphone(base);
}
}

View file

@ -17,6 +17,7 @@ config BOARD_STARLABS_STARLITE_SERIES
select EC_STARLABS_POWER_LED
select HAVE_ACPI_RESUME
select HAVE_ACPI_TABLES
select HAVE_HDA_DMIC
select HAVE_INTEL_PTT
select HAVE_OPTION_TABLE
select HAVE_SPD_IN_CBFS

View file

@ -11,5 +11,4 @@ verstage-$(CONFIG_VBOOT) += vboot.c
romstage-$(CONFIG_VBOOT) += vboot.c
ramstage-$(CONFIG_DRIVERS_OPTION_CFR) += cfr.c
ramstage-y += hda_verb.c
ramstage-y += mainboard.c

View file

@ -1,26 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <console/console.h>
#include <device/azalia_device.h>
#include <option.h>
#include <types.h>
#define AZALIA_CODEC_ALC269 0x10ec0269
static const u32 override_verb[] = {
AZALIA_PIN_CFG(0, 0x12, 0x00000000),
};
static void disable_microphone(u8 *base)
{
azalia_program_verb_table(base, override_verb, ARRAY_SIZE(override_verb));
}
void mainboard_azalia_program_runtime_verbs(u8 *base, u32 viddid)
{
if (viddid == AZALIA_CODEC_ALC269) {
printk(BIOS_DEBUG, "CMOS: viddid = %08x\n", viddid);
if (get_uint_option("microphone", 1) == 0)
disable_microphone(base);
}
}