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:
parent
082ad480d9
commit
98e0ff1e4b
14 changed files with 37 additions and 82 deletions
|
|
@ -8,6 +8,8 @@ config MB_COMMON_DIR
|
|||
string
|
||||
default "starlabs/common"
|
||||
|
||||
source "src/mainboard/starlabs/common/hda/Kconfig"
|
||||
|
||||
endmenu
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
7
src/mainboard/starlabs/common/hda/Kconfig
Normal file
7
src/mainboard/starlabs/common/hda/Kconfig
Normal 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.
|
||||
3
src/mainboard/starlabs/common/hda/Makefile.mk
Normal file
3
src/mainboard/starlabs/common/hda/Makefile.mk
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
ramstage-$(CONFIG_HAVE_HDA_DMIC) += dmic.c
|
||||
21
src/mainboard/starlabs/common/hda/dmic.c
Normal file
21
src/mainboard/starlabs/common/hda/dmic.c
Normal 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);
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue