From 6140f780837726a24d6c473ac50a62fdd5ee8f2d Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 6 Oct 2024 17:25:27 +0100 Subject: [PATCH 2/4] dell/optiplex_3050: add hda_verb.c Configured for the line jack at the front of the machine. Based on dumps from the vendor BIOS. Signed-off-by: Leah Rowe --- src/mainboard/dell/optiplex_3050/Kconfig | 1 + src/mainboard/dell/optiplex_3050/Makefile.mk | 3 +- src/mainboard/dell/optiplex_3050/hda_verb.c | 90 ++++++++++++++++++++ 3 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 src/mainboard/dell/optiplex_3050/hda_verb.c diff --git a/src/mainboard/dell/optiplex_3050/Kconfig b/src/mainboard/dell/optiplex_3050/Kconfig index 2f0dccb98d..eab6034158 100644 --- a/src/mainboard/dell/optiplex_3050/Kconfig +++ b/src/mainboard/dell/optiplex_3050/Kconfig @@ -16,6 +16,7 @@ config BOARD_SPECIFIC_OPTIONS select SKYLAKE_SOC_PCH_H select SOC_INTEL_KABYLAKE select SUPERIO_SMSC_SCH555x + select SOC_INTEL_COMMON_BLOCK_HDA_VERB config CBFS_SIZE default 0x900000 diff --git a/src/mainboard/dell/optiplex_3050/Makefile.mk b/src/mainboard/dell/optiplex_3050/Makefile.mk index d50ea40879..90b3cc4c48 100644 --- a/src/mainboard/dell/optiplex_3050/Makefile.mk +++ b/src/mainboard/dell/optiplex_3050/Makefile.mk @@ -5,5 +5,6 @@ bootblock-y += sch5555_ec.c romstage-y += romstage.c -ramstage-y += ramstage.c sch5555_ec.c +ramstage-y += ramstage.c sch5555_ec.c hda_verb.c + ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads diff --git a/src/mainboard/dell/optiplex_3050/hda_verb.c b/src/mainboard/dell/optiplex_3050/hda_verb.c new file mode 100644 index 0000000000..621e4f7a52 --- /dev/null +++ b/src/mainboard/dell/optiplex_3050/hda_verb.c @@ -0,0 +1,90 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include + +const u32 cim_verb_data[] = { + /* coreboot specific header, codec 0 */ + 0x10ec0255, /* Realtek ALC3234 */ + 0x102807a3, /* Subsystem ID */ + 11, /* Number of entries */ + + /* Pin Widget Verb Table */ + + AZALIA_SUBVENDOR(0, 0x102807a3), + + AZALIA_PIN_CFG(0, 0x12, 0x40000000), // does not describe a jack or internal device + AZALIA_PIN_CFG(0, 0x14, AZALIA_PIN_DESC( + AZALIA_INTEGRATED, + AZALIA_INTERNAL, + AZALIA_SPEAKER, + AZALIA_OTHER_ANALOG, + AZALIA_COLOR_UNKNOWN, + AZALIA_NO_JACK_PRESENCE_DETECT, + 5, 0 + )), + AZALIA_PIN_CFG(0, 0x17, AZALIA_PIN_CFG_NC(0)), + AZALIA_PIN_CFG(0, 0x18, AZALIA_PIN_CFG_NC(0)), + AZALIA_PIN_CFG(0, 0x19, AZALIA_PIN_CFG_NC(0)), + AZALIA_PIN_CFG(0, 0x1a, AZALIA_PIN_CFG_NC(0)), + AZALIA_PIN_CFG(0, 0x1b, AZALIA_PIN_DESC( + AZALIA_JACK, + AZALIA_EXTERNAL_PRIMARY_CHASSIS | AZALIA_FRONT, + AZALIA_LINE_OUT, + AZALIA_STEREO_MONO_1_8, + AZALIA_BLACK, + AZALIA_JACK_PRESENCE_DETECT, + 2, 0 + )), + AZALIA_PIN_CFG(0, 0x1d, 0x4054c029), // does not describe a jack or internal device + AZALIA_PIN_CFG(0, 0x1e, AZALIA_PIN_CFG_NC(0)), + AZALIA_PIN_CFG(0, 0x21, AZALIA_PIN_DESC( + AZALIA_JACK, + AZALIA_EXTERNAL_PRIMARY_CHASSIS | AZALIA_FRONT, + AZALIA_HP_OUT, + AZALIA_STEREO_MONO_1_8, + AZALIA_BLACK, + AZALIA_JACK_PRESENCE_DETECT, + 5, 15 + )), + + /* coreboot specific header, codec 2 */ + 0x80862809, /* Intel Skylake HDMI */ + 0x80860101, /* Subsystem ID */ + 4, /* Number of entries */ + + /* Pin Widget Verb Table */ + + AZALIA_SUBVENDOR(2, 0x80860101), + + AZALIA_PIN_CFG(2, 0x05, AZALIA_PIN_DESC( + AZALIA_JACK, + AZALIA_DIGITAL_DISPLAY, + AZALIA_DIGITAL_OTHER_OUT, + AZALIA_OTHER_DIGITAL, + AZALIA_COLOR_UNKNOWN, + AZALIA_JACK_PRESENCE_DETECT, + 1, 0 + )), + AZALIA_PIN_CFG(2, 0x06, AZALIA_PIN_DESC( + AZALIA_JACK, + AZALIA_DIGITAL_DISPLAY, + AZALIA_DIGITAL_OTHER_OUT, + AZALIA_OTHER_DIGITAL, + AZALIA_COLOR_UNKNOWN, + AZALIA_JACK_PRESENCE_DETECT, + 1, 0 + )), + AZALIA_PIN_CFG(2, 0x07, AZALIA_PIN_DESC( + AZALIA_JACK, + AZALIA_DIGITAL_DISPLAY, + AZALIA_DIGITAL_OTHER_OUT, + AZALIA_OTHER_DIGITAL, + AZALIA_COLOR_UNKNOWN, + AZALIA_JACK_PRESENCE_DETECT, + 1, 0 + )), +}; + +const u32 pc_beep_verbs[] = {}; + +AZALIA_ARRAY_SIZES; -- 2.39.5