From c30163daceb45858aaf5f3824f600d6bdf92696a Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Fri, 5 Sep 2025 11:03:41 -0500 Subject: [PATCH] mb/starlabs/starbook/tgl: Use macros for HDA verb table Rework the HDA verb table using macros. Explicitly disable all pin widgets not used. Use consistent formatting and verbiage in comments. Update verb count. Add HDA verbs for Intel IGD HDMI audio output. TEST=build/boot Win11, ubuntu 25.04 on Starbook TGL, verify all audio inputs/outputs function as expected. Verify verbs loaded via cbmem log. Change-Id: Id9a08c8bd32e0c75f92e8d6b3b8ff6c033608a4f Signed-off-by: Matt DeVillier Reviewed-on: https://review.coreboot.org/c/coreboot/+/89083 Tested-by: build bot (Jenkins) Reviewed-by: Nicholas Sudsgaard Reviewed-by: Elyes Haouas --- .../starlabs/starbook/variants/tgl/hda_verb.c | 73 +++++++++++++++---- 1 file changed, 58 insertions(+), 15 deletions(-) diff --git a/src/mainboard/starlabs/starbook/variants/tgl/hda_verb.c b/src/mainboard/starlabs/starbook/variants/tgl/hda_verb.c index 71b96231e5..60df1a44e2 100644 --- a/src/mainboard/starlabs/starbook/variants/tgl/hda_verb.c +++ b/src/mainboard/starlabs/starbook/variants/tgl/hda_verb.c @@ -1,31 +1,66 @@ /* SPDX-License-Identifier: GPL-2.0-only */ #include +#include const u32 cim_verb_data[] = { /* coreboot specific header */ - 0x10ec0256, /* Codec Vendor / Device ID: Realtek ALC256 */ - 0x10ec1200, /* Subsystem ID */ - 38, /* Number of jacks (NID entries) */ + 0x10ec0256, /* Codec Vendor / Device ID: Realtek ALC256 */ + 0x10ec1200, /* Subsystem ID */ + 36, /* Number of verb entries */ /* Reset Codec First */ AZALIA_RESET(0x1), - /* HDA Codec Subsystem ID: 0x10EC1200 */ + /* HDA Codec Subsystem ID */ AZALIA_SUBVENDOR(0, 0x10ec1200), /* Pin Widget Verb-table */ - AZALIA_PIN_CFG(0, 0x01, 0x00000000), - AZALIA_PIN_CFG(0, 0x12, 0x90a61120), - AZALIA_PIN_CFG(0, 0x13, 0x40000000), - AZALIA_PIN_CFG(0, 0x14, 0x90171110), - AZALIA_PIN_CFG(0, 0x18, AZALIA_PIN_CFG_NC(0)), - AZALIA_PIN_CFG(0, 0x19, 0x04ab1020), - AZALIA_PIN_CFG(0, 0x1a, AZALIA_PIN_CFG_NC(0)), - AZALIA_PIN_CFG(0, 0x1b, 0x40700001), - AZALIA_PIN_CFG(0, 0x1d, AZALIA_PIN_CFG_NC(0)), - AZALIA_PIN_CFG(0, 0x1e, AZALIA_PIN_CFG_NC(0)), - AZALIA_PIN_CFG(0, 0x21, 0x042b1010), + AZALIA_PIN_CFG(0, ALC256_DMIC12, AZALIA_PIN_DESC( + AZALIA_INTEGRATED, + AZALIA_MOBILE_LID_INSIDE, + AZALIA_MIC_IN, + AZALIA_OTHER_DIGITAL, + AZALIA_COLOR_UNKNOWN, + AZALIA_NO_JACK_PRESENCE_DETECT, + 3, + 0 + )), + AZALIA_PIN_CFG(0, ALC256_SPEAKERS, AZALIA_PIN_DESC( + AZALIA_INTEGRATED, + AZALIA_INTERNAL | AZALIA_FRONT, + AZALIA_SPEAKER, + AZALIA_OTHER_ANALOG, + AZALIA_COLOR_UNKNOWN, + AZALIA_NO_JACK_PRESENCE_DETECT, + 1, + 0 + )), + AZALIA_PIN_CFG(0, ALC256_MIC2, AZALIA_PIN_DESC( + AZALIA_JACK, + AZALIA_EXTERNAL_PRIMARY_CHASSIS | AZALIA_RIGHT, + AZALIA_MIC_IN, + AZALIA_STEREO_MONO_1_8, + AZALIA_BLACK, + AZALIA_JACK_PRESENCE_DETECT, + 2, + 0 + )), + AZALIA_PIN_CFG(0, ALC256_HP_OUT, AZALIA_PIN_DESC( + AZALIA_JACK, + AZALIA_EXTERNAL_PRIMARY_CHASSIS | AZALIA_RIGHT, + AZALIA_HP_OUT, + AZALIA_STEREO_MONO_1_8, + AZALIA_BLACK, + AZALIA_JACK_PRESENCE_DETECT, + 1, + 0 + )), + AZALIA_PIN_CFG(0, ALC256_DMIC34, AZALIA_PIN_CFG_NC(0)), + AZALIA_PIN_CFG(0, ALC256_LINE1, AZALIA_PIN_CFG_NC(0)), + AZALIA_PIN_CFG(0, ALC256_LINE2, AZALIA_PIN_CFG_NC(0)), + AZALIA_PIN_CFG(0, ALC256_PC_BEEP, AZALIA_PIN_CFG_NC(0)), + AZALIA_PIN_CFG(0, ALC256_SPDIF_OUT, AZALIA_PIN_CFG_NC(0)), /* Reset to D0 */ 0x00170500, @@ -204,6 +239,14 @@ const u32 cim_verb_data[] = { 0x0204EBC4, 0x02050020, 0x020451FF, + + /* Intel TGL IGD HDMI */ + 0x80862812, /* Codec Vendor / Device ID: Intel */ + 0x80860101, /* Subsystem ID */ + 2, /* Number of 4 dword sets */ + + AZALIA_SUBVENDOR(2, 0x80860101), + AZALIA_PIN_CFG(2, 0x04, 0x18560010), }; const u32 pc_beep_verbs[] = {};