mb/starlabs/starbook/cml: 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 the verb count.

TEST=build/boot Win11, Ubuntu 25.04 on Starbook CML, verify all audio
inputs/outputs working as expected. Verify verbs loaded via cbmem log.

Change-Id: I1ee05afe9805ca6531d49150f1ead8722c4393b2
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89079
Reviewed-by: Nicholas Sudsgaard <devel+coreboot@nsudsgaard.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
This commit is contained in:
Matt DeVillier 2025-09-05 12:21:02 -05:00 committed by Elyes Haouas
commit 6d7c8f5477

View file

@ -1,12 +1,13 @@
/* 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),
@ -15,17 +16,51 @@ const u32 cim_verb_data[] = {
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,
@ -205,9 +240,10 @@ const u32 cim_verb_data[] = {
0x02050020,
0x020451FF,
0x8086280b, /* Codec Vendor / Device ID: Intel */
0x80860101, /* Subsystem ID */
4, /* Number of 4 dword sets */
/* Intel CML IGD HDMI */
0x8086280b, /* Codec Vendor / Device ID: Intel */
0x80860101, /* Subsystem ID */
4, /* Number of verb entries */
AZALIA_SUBVENDOR(2, 0x80860101),