diff --git a/src/mainboard/starlabs/common/Kconfig b/src/mainboard/starlabs/common/Kconfig index 4670672cb7..07239c8904 100644 --- a/src/mainboard/starlabs/common/Kconfig +++ b/src/mainboard/starlabs/common/Kconfig @@ -8,6 +8,8 @@ config MB_COMMON_DIR string default "starlabs/common" +source "src/mainboard/starlabs/common/hda/Kconfig" + endmenu endif diff --git a/src/mainboard/starlabs/common/Makefile.mk b/src/mainboard/starlabs/common/Makefile.mk index 966914673d..07ac8e9640 100644 --- a/src/mainboard/starlabs/common/Makefile.mk +++ b/src/mainboard/starlabs/common/Makefile.mk @@ -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 diff --git a/src/mainboard/starlabs/common/hda/Kconfig b/src/mainboard/starlabs/common/hda/Kconfig new file mode 100644 index 0000000000..984616f94e --- /dev/null +++ b/src/mainboard/starlabs/common/hda/Kconfig @@ -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. diff --git a/src/mainboard/starlabs/common/hda/Makefile.mk b/src/mainboard/starlabs/common/hda/Makefile.mk new file mode 100644 index 0000000000..c6f53539f7 --- /dev/null +++ b/src/mainboard/starlabs/common/hda/Makefile.mk @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0-only + +ramstage-$(CONFIG_HAVE_HDA_DMIC) += dmic.c diff --git a/src/mainboard/starlabs/common/hda/dmic.c b/src/mainboard/starlabs/common/hda/dmic.c new file mode 100644 index 0000000000..cf1b243866 --- /dev/null +++ b/src/mainboard/starlabs/common/hda/dmic.c @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#include +#include +#include + +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); +} diff --git a/src/mainboard/starlabs/starbook/Kconfig b/src/mainboard/starlabs/starbook/Kconfig index 0853c1873d..244bcfb195 100644 --- a/src/mainboard/starlabs/starbook/Kconfig +++ b/src/mainboard/starlabs/starbook/Kconfig @@ -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 diff --git a/src/mainboard/starlabs/starbook/Makefile.mk b/src/mainboard/starlabs/starbook/Makefile.mk index 1a8996f1b2..a51e1d5128 100644 --- a/src/mainboard/starlabs/starbook/Makefile.mk +++ b/src/mainboard/starlabs/starbook/Makefile.mk @@ -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 diff --git a/src/mainboard/starlabs/starbook/hda_verb.c b/src/mainboard/starlabs/starbook/hda_verb.c deleted file mode 100644 index 699ff34102..0000000000 --- a/src/mainboard/starlabs/starbook/hda_verb.c +++ /dev/null @@ -1,27 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#include -#include -#include -#include - -#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); - } -} diff --git a/src/mainboard/starlabs/starfighter/Kconfig b/src/mainboard/starlabs/starfighter/Kconfig index d29427f373..28838aacd4 100644 --- a/src/mainboard/starlabs/starfighter/Kconfig +++ b/src/mainboard/starlabs/starfighter/Kconfig @@ -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 diff --git a/src/mainboard/starlabs/starfighter/Makefile.mk b/src/mainboard/starlabs/starfighter/Makefile.mk index 59e8f76e8f..535c3237a6 100644 --- a/src/mainboard/starlabs/starfighter/Makefile.mk +++ b/src/mainboard/starlabs/starfighter/Makefile.mk @@ -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 diff --git a/src/mainboard/starlabs/starfighter/hda_verb.c b/src/mainboard/starlabs/starfighter/hda_verb.c deleted file mode 100644 index 0aec559a03..0000000000 --- a/src/mainboard/starlabs/starfighter/hda_verb.c +++ /dev/null @@ -1,26 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#include -#include -#include -#include - -#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); - } -} diff --git a/src/mainboard/starlabs/starlite_adl/Kconfig b/src/mainboard/starlabs/starlite_adl/Kconfig index 638fe72d0e..d14b441be1 100644 --- a/src/mainboard/starlabs/starlite_adl/Kconfig +++ b/src/mainboard/starlabs/starlite_adl/Kconfig @@ -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 diff --git a/src/mainboard/starlabs/starlite_adl/Makefile.mk b/src/mainboard/starlabs/starlite_adl/Makefile.mk index 17c1dc2f4d..14842f76e4 100644 --- a/src/mainboard/starlabs/starlite_adl/Makefile.mk +++ b/src/mainboard/starlabs/starlite_adl/Makefile.mk @@ -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 diff --git a/src/mainboard/starlabs/starlite_adl/hda_verb.c b/src/mainboard/starlabs/starlite_adl/hda_verb.c deleted file mode 100644 index 787e55a17b..0000000000 --- a/src/mainboard/starlabs/starlite_adl/hda_verb.c +++ /dev/null @@ -1,26 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#include -#include -#include -#include - -#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); - } -}