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 <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89083
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
This commit is contained in:
Matt DeVillier 2025-09-05 11:03:41 -05:00 committed by Elyes Haouas
commit c30163dace

View file

@ -1,31 +1,66 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <device/azalia_device.h>
#include <device/azalia_codec/realtek.h>
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[] = {};